android 探索怎么代码打开辅助功能

经常有人问我怎么用代开辅助功能

一 先放结论

需要使用adb命令,非常重要

adb shell pm grant 包名 android.permission.WRITE_SECURE_SETTINGS

然后代码调用

Settings.Secure.putInt(getContentResolver(),
    Settings.Secure.ACCESSIBILITY_ENABLED, 1);

注意,AndroidManiferst.xm需要添加权限



二 思路

辅助功能的简单使用就不在描述了,网上特别多。但是有一个缺陷,在应用被杀后,辅助功能会自动关闭,那么代码打开的方法是

Settings.Secure.putInt(getContentResolver(),
    Settings.Secure.ACCESSIBILITY_ENABLED, 1);

但是实际调用后会提示没有WRITE_SECURE_SETTINGS权限。我尝试在AndroidManiferst中添加权限申明,运行后依然提示缺少权限。那么说明直接在AndroidManiferst中申明无效。当我尝试把targetSdkVersion调整为21还是不生效。

网上查了资料,大致就是WRITE_SECURE_SETTINGS在android6.0以后变为了系统级权限,普通手段无法获取。那么系统级权限一些可以通过adb命令获取。
输入

adb shell pm grant 包名 android.permission.WRITE_SECURE_SETTINGS

再次调用Settings.Secure.putInt。。。果然成功了。

三 总结

此种方法依然有很大限制,自己使用无所谓,但如果是客户不是每人都会使用adb的。或许可以打包adb工具做成一个小u盘的东西,连上手机就主动授权。

你可能感兴趣的:(android 探索怎么代码打开辅助功能)