Android 系统 JavaScriptApi
Android 系统相关接口,JavaScript 对应对象为 window.Native
获取设备唯一标识符
String getDeviceId()
对应系统的 Settings.Secure.ANDROID_ID,设备恢复出厂设置后会重置
返回值
设备唯一标识符, 16 进制字符串, 例如:29ece4bb42d3ba57
window.Native.getDeviceId();
获取应用数据根目录
String getRootPath()
获取应用根目录,默认为 /sdcard/shine/
返回值
应用数据根目录绝对路径
window.Native.getRootPath();
获取通话状态
int getCallState()
获取通话状态
返回值
- 0: 无通话
- 1: 来电
- 2: 接通
window.Native.getCallState();
拨打电话
void callPhone(String phoneNumber)
拨打电话
参数
| Param | Description |
|---|---|
| phoneNumber | 电话号码 |
window.Native.phoneNumber('123456789');
批量添加联系人
void batchAddContact(String contacts)
批量添加联系人
参数
window.Native.batchAddContact('[{"name":"张三","phone":12345678901}]');
获取所有通话记录
String getCallLog()
获取所有通话记录
返回值
json 格式的通话记录列表,例如:
{"name":" 张三 ","number":"138001380001","date":1652064237221,"type":2,"duration":0}
- name: 联系人姓名
- number: 联系人号码
- date: 通话时间,毫秒数
- type: 通话类型,1: 呼入,2: 呼出,3: 未接
- duration: 通话时长,单位秒
window.Native.getCallLog();
删除所有联系人
void deleteAllContacts()
删除所有联系人
window.Native.deleteAllContacts();
重启应用
void relaunchApp()
重启应用
window.Native.relaunchApp();
获取屏幕宽度
int getScreenWidth()
获取屏幕宽度
返回值
屏幕宽度,单位像素
window.Native.getScreenWidth();
获取屏幕高度
int getScreenHeight()
获取屏幕高度
返回值
屏幕高度,单位像素
window.Native.getScreenHeight();
获取屏幕方向
int getScreenOrientation()
获取屏幕方向
返回值
屏幕方向,1: 横屏 2: 竖屏
window.Native.getScreenOrientation();
设置屏幕方向
void setScreenOrientation(int orientation)
设置屏幕方向
参数
| Param | Description |
|---|---|
| orientation | 屏幕方向,0: 横屏 1: 竖屏 |
window.Native.setScreenOrientation(0);
立即关屏
void closeScreen()
立即关屏
window.Native.closeScreen();
立即开屏
void openScreen()
立即开屏
window.Native.openScreen();
立即关机
void shutdown()
立即关机
window.Native.shutdown();
重启设备
boolean reboot()
重启设备
返回值
是否重启成功
window.Native.reboot();
设置开机时间
void setWakeUpTimeMillis(long millis)
设置开机时间
参数
| Param | Description |
|---|---|
| millis | 开机时间,毫秒数 |
window.Native.setWakeUpTimeMillis(1652680442000);
获取 IP 地址
String getIpAddress()
获取 IP 地址
返回值
有线网卡 IP 地址
window.Native.getIpAddress();
获取 mac 地址
String getMacAddress()
获取 mac 地址
返回值
有线网卡 mac 地址,例如:
12:34:56:78:90:AA
window.Native.getMacAddress();
设置音量
void setStreamVolume(int streamType, int num)
设置音量
参数
| Param | Description |
|---|---|
| streamType | 声音类型,0:voice 1:system 2:ring 3:music 4:alarm |
| num | 0~100,0 表示静音 |
window.Native.setStreamVolume(1, 90);
获取音量
int getStreamVolume(int streamType)
获取音量
参数
| Param | Description |
|---|---|
| streamType | 声音类型,0:voice 1:system 2:ring 3:music 4:alarm |
返回值
0~100,0 表示静音
window.Native.getStreamVolume();
设置系统时间
void setSystemTime(long millis)
设置系统时间
参数
| Param | Description |
|---|---|
| millis | 时间戳,单位毫秒 |
window.Native.setSystemTime(1652680442000);
设置屏幕亮度
void setScreenBrightness(int value)
设置屏幕亮度
参数
| Param | Description |
|---|---|
| value | 亮度值,0~100 |
window.Native..setScreenBrightness(80);
打开设置界面
void launchSetting()
打开设置界面
window.Native.launchSetting();
打开默认桌面
void launchLauncher3()
打开默认桌面
window.Native.launchLauncher3();
退出程序
void exitApp()
退出程序
window.Native.exitApp();
获取 SD 卡信息
String getSDCardInfo()
获取 SD 卡信息
返回值
SD 卡信息,例如:
[{"totalSize": "100", "availableSize": "90","isRemovable": true,
"state": "mounted", "path": "/storage/emulated/0"}]
- totalSize: 总空间,单位 byte
- availableSize: 可用空间,单位 byte
- isRemovable: 可移除
- state: 状态
- path: 路径
window.Native.getSDCardInfo();
获取设备名称
String getDeviceName()
获取设备名称
返回值
设备名称
window.Native.getDeviceName();
获取软件版本
String getSoftwareVersion()
获取软件版本
返回值
软件版本
window.Native.getSoftwareVersion();
获取内核版本
String getKernelVersion()
获取内核版本
返回值
内核版本
window.Native.getKernelVersion();
获取屏幕分辨率
String getScreenResolution()
获取屏幕分辨率
返回值
屏幕分辨率,例如:1920*1080
window.Native.getScreenResolution();
获取 android 版本
String getAndroidVersion()
获取 android 版本
返回值
android 版本
window.Native.getAndroidVersion();
获取 CPU 信息
String getCpu()
获取 CPU 信息
返回值
CPU 信息
window.Native.getCpu();
获取运行内存
String getRunMemory()
获取运行内存
返回值
运行内存
window.Native.getRunMemory();
获取主板类型
String getMotherBoard()
获取主板类型
返回值
主板类型
window.Native.getMotherBoard();
发送广播
void sendBroadcast(String action)
发送广播
参数
| Param | Description |
|---|---|
| action | 广播名称 |
window.Native.sendBroadcast("com.example.broadcast");
发送广播带参数
void sendBroadcastWithParams(String action, String params)
发送带参数广播
参数
| Param | Description |
|---|---|
| action | 广播名称 |
| params | 参数 |
const extraData = {
stringValue: "Hello",
intValue: 123,
boolValue: true,
floatValue: 3.14
};
window.Native.sendBroadcastWithParams("com.example.ACTION_NAME", JSON.stringify(extraData));
// 双屏异显控制左灯条亮
window.Native.sendBroadcastWithParams("com.android.yf_set_gpio", JSON.stringify({
gpio: "gpio1",
value: 1
}));
// 双屏异显控制右灯条亮
window.Native.sendBroadcastWithParams("com.android.yf_set_gpio", JSON.stringify({
gpio: "gpio2",
value: 1
}));
// 双屏异显控制左灯条灭
window.Native.sendBroadcastWithParams("com.android.yf_set_gpio", JSON.stringify({
gpio: "gpio1",
value: 0
}));
// 双屏异显控制右灯条灭
window.Native.sendBroadcastWithParams("com.android.yf_set_gpio", JSON.stringify({
gpio: "gpio2",
value: 0
}));
检测 url 是否可以访问
int checkConnectivity(String url)
检测 url 是否可以访问
参数
| Param | Description |
|---|---|
| url | url 地址 |
返回值
0: 可以访问,非 0: 不可以访问
window.Native.checkConnectivity("http://172.168.32.22:1883");
获取网络类型
int getNetworkType()
获取网络类型
返回值
- 0: 有线网络
- 1: WIFI
- 2: 5G
- 3: 4G
- 4: 3G
- 5: 2G
- 6: 其他
- 7: 无网络
window.Native.getNetworkType();
设置 GPIO 状态
String setGpioValue(int gpioNum, int value)
设置 GPIO 状态, 用于控制 GPIO 相关硬件
参数
| Param | Description |
|---|---|
| gpioNum | gpio 编号 |
| value | 电平值 0:低电平 1:高电平 |
window.Native.setGpioValue(0, 1);
// 双屏异显YF3568设备控制灯条
// 左边亮灯
window.Native.setGpioValue(1, 1);
// 右边亮灯
window.Native.setGpioValue(2, 1);
// 左边灭灯
window.Native.setGpioValue(1, 0);
// 右边灭灯
window.Native.setGpioValue(2, 0);
静默安装apk
boolean installSilent(String apkFilePath)
静默安装apk,如果识别到无法静默安装,则采用普通显式安装方式
参数
| Param | Description |
|---|---|
| apkFilePath | apk 文件路径 |
window.Native.installSilent("/sdcard/test.apk");
截图
void screenCap(String filePath, SimpleCallBack callBack)
截图,并保存到指定路径
参数
| Param | Description |
|---|---|
| filePath | 截图保存路径 |
| callBack | 回调函数 |
window.Native.screenCap("/sdcard/test.png", function (result) {
// result: {"code":0,"data":"/sdcard/test.png"}
// code: 0-成功,其他-失败,data: 截图保存路径
var data = JSON.parse(result);
if (data.code === 0) {
console.log("screenCap success");
} else {
var errorMsg = data.data;
console.log("screenCap fail: " + errorMsg);
}
});
// 搭配文件API使用,获取截图base64数据
window.NativeFile.encode2Base64("/sdcard/test.png");