对于一个依赖无障碍服务的应用来说,App关闭的时候就会关闭无障碍服务权限,以至于每次启动都需要去手动打开一次无障碍服务,这无疑会让人很抓狂.但是这对于用户来说这又是安全的,否则各种流氓岂不是可以随意操控你的手机了,有限制才会有安全...
今天的这篇文章呢,是利用一个系统的权限
android.permission.WRITE_SECURE_SETTINGS
这个权限对于开发安装的人来说,都应该明白,如果我们直接在AndroidMainifast.xml中声明,会报错,原因就是我们不是系统应用,属于第三方,所以没有权限使用这个权限.但是如果我们使用adb调试来针对某一个app来授权,那就可以拿到这个权限了,授权的命令为:
adb shell pm grant PACKAGE_NAME android.permission.WRITE_SECURE_SETTINGS
其中PACKAGE_NAME为你要授权的应用包名.例如: org.autojs.autojspro
adb命令如何安装到你的电脑上,如何使用我就不教了,自行百度吧.其他的废话,我也不多说了,直接上我们今天的脚本代码.
importClass(android.content.Context);
importClass(android.provider.Settings);
importClass(android.content.pm.PackageManager);
if (!checkSelfPermission("android.permission.WRITE_SECURE_SETTINGS")) {
toastLog("出错了,请查看日志界面内容");
console.error("\\n您没有为autojs/autojsPro授予WRITE_SECURE_SETTINGS权限!\\n"+
"授权方法: 您需要打开USB调试并连接一台电脑,使用adb命令给autojs授权,命令为:\\n"+
"adb shell pm grant "+context.getPackageName()+" android.permission.WRITE_SECURE_SETTINGS");
setClip("adb shell pm grant "+context.getPackageName()+" android.permission.WRITE_SECURE_SETTINGS");
toastLog("命令已写入到剪贴板");
exit();
}
if (auto.service == null) {
//这里没有启动无障碍服务 这里我启动了autojs免费版和pro版的无障碍服务
try {
var enabledServices = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
var Services = enabledServices + ":org.autojs.autojspro/com.stardust.autojs.core.accessibility.AccessibilityService"+
":org.autojs.autojs/com.stardust.autojs.core.accessibility.AccessibilityService";
Settings.Secure.putString(context.getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, Services);
Settings.Secure.putString(context.getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, '1');
} catch (e) {
toastLog("您没有为autojs/autojsPro授予WRITE_SECURE_SETTINGS权限");
exit();
}
}
/**
* 检查自身是否开启某权限
* @param {string} permission 权限名称
*/
function checkSelfPermission(permission) {
return context.checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网
网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
APP
+关注
关注
33文章
1573浏览量
72437 -
系统应用
+关注
关注
0文章
3浏览量
5130 -
adb
+关注
关注
1文章
35浏览量
10420
发布评论请先 登录
相关推荐
HarmonyOS NEXT应用元服务开发Accessibility(信息无障碍)介绍
方面的数字鸿沟,使其更加方便地参与社会生活,享受数字发展带来的便利。
Accessibility Kit(无障碍服务)提供应用适配无障碍的开放能力,以便应用可以更好的服务于
发表于 10-09 10:29
MIUI发布MIUI12.5无障碍触感功能
12月30日,MIUI官方微博线上发布MIUI12.5无障碍触感功能。无障碍触感是通过手机线性振动马达,向无障碍用户传递准确信息的一种全新交互方式,可以有效提升视障用户的操作效率。 小米是首家把触感
工信部:年底将授予首批无障碍标识
今年一月,工业和信息化部正式启动了“互联网应用适老化及无障碍改造专项行动”,同时还发布了老年人一键呼入人工客服、电信服务营业厅爱心通道以及主流手机“老人模式”等三项重要适老化措施成果。首批公共
迅远RFID无障碍通道门实现无障碍通道人员及物品的跟踪管控
开放式无障碍快速门禁通道系统是一种新型的安防管理系统,可实现无障碍通道人员及物品的跟踪管控。
让每一个人受益,收获更大的成功 | 一文了解无障碍体验
的问题: 什么是无障碍? 它为什么重要?或者说,打造无障碍产品对团队有何好处? Google 怎么帮助开发者打造无障碍体验? 我的团队该如何长期确保 "无障碍氛围"? 本文接下来会一一
为应用打造更好的无障碍体验
Android 应用的目标应该是让所有人都可以使用,包括具有无障碍功能需求的人。 视力受损、色盲、听力受损、精细动作失能的人、以及有认知障碍和许多其他残疾的人可以使用 Android 设备来处
测试应用无障碍功能,助力构建适合更多人的精彩应用
效果,请使用本文档中介绍的所有方法: 手动测试 : 使用 Android 无障碍服务与您的应用互动。 使用分析工具进行测试 : 使用各种工具发现改进应用无障碍功能的机会。 自动化测试 : 在 Espresso 和 Robole
最佳实践 | 助您提升应用的无障碍功能
某些使用 Android 设备的用户具有不同于他人的无障碍功能需求。为了帮助具有共同的无障碍功能需求的特定人群,Android 框架为开发者创建无障碍服务提供了相关功能,这种
借助 Material Design,帮助您打造更好的无障碍应用 (上篇)
随着时代的发展,"无障碍体验" 对开发者的意义也愈发重大。我们准备了无障碍设计文章,帮助您为更多用户打造精彩应用。本文是第一篇内容,将为您介绍辅助技术,层次结构,颜色和对比度等
借助 Material Design,帮助您打造更好的无障碍应用 (下篇)
随着时代的发展,"无障碍体验" 对开发者的意义也愈发重大,在 上一篇文章 中,我们为您介绍了无障碍布局和排版、文案等相关内容。本文将进一步为您介绍图片、声音和运动、实现无障碍
Google 无障碍功能更新 | 第二期
为了让每个人都能体验精彩世界,Google 无障碍团队始终致力于打造更舒适的日常生活、更完善的无障碍体验。我们希望通过专题系列视频 "Google 无障碍功能更新" 与您分享近期无障碍
自启动电路的工作原理 自启动电路需要输入吗
自启动电路(Auto Start Circuit)是一种用于自动启动设备或系统的电路,其原理基于控制自动化技术和电子电路等基础知识。在本文中将详细解释自启动电路的工作原理以及所需的输入。 自启
评论