首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Android中以编程方式启用/禁用辅助功能

如何在Android中以编程方式启用/禁用辅助功能
EN

Stack Overflow用户
提问于 2012-04-08 15:28:12
回答 11查看 59.9K关注 0票数 37

我想以编程方式启用/禁用“设置”->“辅助功能选项”下列出的辅助功能服务。

我可以像下面这样开始辅助功能意图:

代码语言:javascript
运行
复制
Intent intent = new Intent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivityForResult(intent, 0);

但是我不知道如何通过我的代码启用视图中列出的服务。

请给我提供你的观点。

EN

回答 11

Stack Overflow用户

发布于 2015-01-29 16:24:09

我发现一个解决方案对我很有效,方法是

代码语言:javascript
运行
复制
Settings.Secure.putString(getContentResolver(), 
    Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "pkgname/classname");
Settings.Secure.putString(getContentResolver(), 
    Settings.Secure.ACCESSIBILITY_ENABLED, "1");

其中pkgname是您的包名,classname是您的辅助功能服务的类名。

如果您需要启用多个服务,或者您不想销毁以前的设置,那么您可能希望使用:来分离其他服务。

此外,您可能需要以system应用程序的身份运行,并且可能需要以下权限

代码语言:javascript
运行
复制
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

然而,根据@Rupert Rawnsley的说法,这可能在某些版本的安卓上不起作用,我正在安卓4.0.4上工作,希望它能为你工作。

PS。如果它不能工作,也许你可以在/data/data/com.android.providers.settings/databases/settings.db/secure找到一些运气,这是Android存储安全设置的地方。

票数 26
EN

Stack Overflow用户

发布于 2016-08-14 13:01:37

在Android 6.0中,您可以使用:

代码语言:javascript
运行
复制
adb shell settings put secure enabled_accessibility_services packagname/servicename

旧版本中的settings.db不再出现在Android6.0上。

票数 15
EN

Stack Overflow用户

发布于 2016-11-07 17:10:39

在Android7(API24)中,AccessibilityService可以通过调用disableSelf()方法以编程方式禁用自身。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10061154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档