工具函数
说明
- 工具类模块函数主要是跟Android常用的信息相关联
- 工具类模块的对象前缀是utils,例如 utils.requestShowLogPermission()这样调用
打开App相关
utils.openApp 打开APP
- 打开APP
- @param packageName 程序的包名
- @return 布尔型 true 代表成功,false 代表失败
function main() {
utils.openApp("com.xx");
}
main();
utils.getStartAppCmd 命令打开app
- 拼接打开APP命令
- 适合EC6.8.0+
- @param packageName 程序的包名
- @return
{string}
命令字符串
function main() {
startEnv()
let pkg = "com.youdao.translator";
//获取命令
let d = utils.getStartAppCmd(pkg);
logd(d);
//激活命令执行
//let result = shell.execCommand(d);
//logd("result ="+result);
//root方式执行
//var result = shell.sudo(d);
//logd("result ="+result);
//开启代理服务,使用代理服务执行命令
var result = shell.execAgentCommand(d);
logd("result =" + result);
}
main();
utils.openAppByName 打开APP(应用名称)
- 打开APP,通过应用名称
- @param appName 程序名称,比如今日头条
- @return 布尔型 true 代表成功,false 代表失败
function main() {
utils.openAppByName("xx");
}
main();
utils.openActivity 打开activity
- 打开一个activity,通过map参数
- @param map 例如
{"action":""}
,key的固定只有 - action: 标准的android action字符串
- uri: uri可以是http网址,也可以是文件file:///地址,也可以是 URLSchema语法
- type: uri对应的type,等同于MIME类型,例如安装apk包的type是 application/vnd.android.package-archive
- pkg: 要打开的activity对应的包名
- className: 要打开的 className 对应的类名
- flag: androi打开activity 标准的flag标志位,特殊情况下可以填写
- 其他的都是属于intent参数了
- @param map 例如
- @return 布尔型 true 代表成功,false 代表失败
function main() {
//打开安装包界面
var m = {
"action": "android.intent.action.VIEW",
"uri": "file:///sdcard/a.apk",
"type": "application/vnd.android.package-archive"
};
var x = utils.openActivity(m);
logd("x " + x);
var map = {
"uri": "xx://xx/live/6701887916223941379",
};
utils.openActivity(map);
}
main();
utils.getStartActivityCmd命令 打开activity
- 适合EC6.8.0+
- 打开一个activity,通过map参数
- @param map 例如
{"action":""}
,key的固定只有 - action: 标准的android action字符串
- uri: uri可以是http网址,也可以是文件file:///地址,也可以是 URLSchema语法
- type: uri对应的type,等同于MIME类型,例如安装apk包的type是 application/vnd.android.package-archive
- pkg: 要打开的activity对应的包名
- className: 要打开的 className 对应的类名
- flag: androi打开activity 标准的flag标志位,特殊情况下可以填写
- 其他的都是属于intent参数了
- @param map 例如
- @return 布尔型 true 代表成功,false 代表失败
function main() {
startEnv()
//let pkg = "com.youdao.translator";
let map1 = {
"action": "android.intent.action.VIEW",
"pkg": "com.youdao.translator"
}
//uri演示打电话 这里的uri可以是其他
let map2 = {
"action": "android.intent.action.CALL",
"uri": "tel:1000"
}
//获取命令
let d = utils.getStartActivityCmd(map1);
logd(d);
//激活命令执行
//let result = shell.execCommand(d);
//logd("result ="+result);
//root方式执行
//var result = shell.sudo(d);
//logd("result ="+result);
//开启代理服务,使用代理 服务执行命令
var result = shell.execAgentCommand(d);
logd("result =" + result);
}
main()
utils.openIntentAction 通过Action打开某个界面
- 通过Action打开某个界面
- @param action action动作,例如 android.settings.ACCESSIBILITY_SETTINGS = 辅助功能,
- 如果改方法不满足要求,可以直接使用intent进行打开:
- 常用的action有:
- android.settings.ACCESSIBILITY_SETTINGS //辅助功能
- android.settings.ADD_ACCOUNT_SETTINGS //添加账户
- android.settings.AIRPLANE_MODE_SETTINGS //系统设置首页
- android.settings.APN_SETTINGS //APN设置
- android.settings.APPLICATION_SETTINGS //应用管理
- android.settings.BATTERY_SAVER_SETTINGS //节电助手
- android.settings.BLUETOOTH_SETTINGS //蓝牙
- android.settings.CAPTIONING_SETTINGS //字幕
- android.settings.CAST_SETTINGS //无线显示
- android.settings.DATA_ROAMING_SETTINGS //移动网络
- android.settings.DATE_SETTINGS //日期和时间设置
- android.settings.DEVICE_INFO_SETTINGS //关于手机
- android.settings.DISPLAY_SETTINGS //显示设置
- android.settings.DREAM_SETTINGS //互动屏保设置
- android.settings.HARD_KEYBOARD_SETTINGS //实体键盘
- android.settings.HOME_SETTINGS //应用权限,默认应用设置,特殊权限
- android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS //忽略电池优化设置
- android.settings.INPUT_METHOD_SETTINGS //可用虚拟键盘设置
- android.settings.INPUT_METHOD_SUBTYPE_SETTINGS //安卓键盘语言设置(AOSP)
- android.settings.INTERNAL_STORAGE_SETTINGS //内存和存储
- android.settings.LOCALE_SETTINGS //语言偏好设置
- android.settings.LOCATION_SOURCE_SETTINGS //定位服务设置
- android.settings.MANAGE_ALL_APPLICATIONS_SETTINGS //所有应用
- android.settings.MANAGE_APPLICATIONS_SETTINGS //应用管理
- android.settings.MANAGE_DEFAULT_APPS_SETTINGS //与ACTION_HOME_SETTINGS相同
- android.settings.action.MANAGE_OVERLAY_PERMISSION //在其他应用上层显示,悬浮窗
- android.settings.MANAGE_UNKNOWN_APP_SOURCES //安装未知应用 安卓8.0
- android.settings.action.MANAGE_WRITE_SETTINGS //可修改系统设置 权限
- android.settings.MEMORY_CARD_SETTINGS //内存与存储
- android.settings.NETWORK_OPERATOR_SETTINGS //可用网络选择
- android.settings.NFCSHARING_SETTINGS //NFC设置
- android.settings.NFC_SETTINGS //网络中的 更多设置
- android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS //通知权限设置
- android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS //勿扰权限设置
- android.settings.ACTION_PRINT_SETTINGS //打印服务设置
- android.settings.PRIVACY_SETTINGS //备份和重置
- android.settings.SECURITY_SETTINGS //安全设置
- android.settings.SHOW_REGULATORY_INFO //监管信息
- android.settings.SOUND_SETTINGS //声音设置
- android.settings.SYNC_SETTINGS //添加账户设置
- android.settings.USAGE_ACCESS_SETTINGS //有权查看使用情况的应用
- android.settings.USER_DICTIONARY_SETTINGS //个人词典
- android.settings.VOICE_INPUT_SETTINGS //辅助应用和语音输入
- android.settings.VPN_SETTINGS //VPN设置
- android.settings.VR_LISTENER_SETTINGS //VR助手
- android.settings.WEBVIEW_SETTINGS //选择webview
- android.settings.WIFI_IP_SETTINGS //高级WLAN设置
- android.settings.WIFI_SETTINGS //选择WIFI,连接WIFI
- com.android.settings.Settings$DevelopmentSettingsActivity
- @return null|boolean|*
function main() {
utils.openIntentAction("android.settings.ACCESSIBILITY_SETTINGS");
}
main();
- 直接使用Intent打开方式
importClass(android.content.Intent);
importClass(android.net.Uri)
var intent = new Intent();
intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
intent.setData(Uri.parse("package:com.gibb.easyclick"))
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
context.startActivity(intent);
} catch (e) {
loge(e)
}