当前位置: 首页 > 知识库问答 >
问题:

如何在Android中以编程方式启用/禁用可访问性服务

齐栋
2023-03-14

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

我可以像下面这样开始可访问性意图:

Intent intent = new Intent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivityForResult(intent, 0);

但是对于如何通过我的代码启用视图中列出的服务,我没有任何想法。

请把你的观点告诉我。

共有2个答案

阎知
2023-03-14

在Android6.0中,您可以使用:

adb shell settings put secure enabled_accessibility_services packagname/servicename

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

越英韶
2023-03-14

我找到了一个对我有效的解决办法

Settings.Secure.putString(getContentResolver(), 
    Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "pkgname/classname");
Settings.Secure.putString(getContentResolver(), 
    Settings.Secure.ACCESSIBILITY_ENABLED, "1");

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

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

此外,您可能需要作为系统应用程序运行,并且可能需要以下权限

<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

然而,根据@Rupert Rawnsley的说法,这可能在某些版本的Android上行不通,我正在开发Android4.0.4,希望它能为你服务。

如果它不起作用,也许您可以在/data/data/com.Android.providers.settings/database/settings.db/secure中找到一些运气,这是Android存储安全设置的地方。

 类似资料:
  • 我正在开发与地图相关的android应用程序,如果未启用位置服务,我需要在客户端开发中检查是否启用位置访问显示对话框提示。 如何在android中以编程方式启用“位置访问”?

  • 我有一个要求,我有一个通过蓝牙连接到手机的配对设备列表。在某个时候,我必须禁用/启用媒体或联系方式共享到我的配对设备。我的要求是在android中以编程方式做到这一点。我找过了,但是找不到解决办法。 请让我知道是否可能?

  • 本文向大家介绍如何以编程方式在iOS中启用/禁用数据连接?,包括了如何以编程方式在iOS中启用/禁用数据连接?的使用技巧和注意事项,需要的朋友参考一下 用户可以通过iOS设备的设置打开或关闭移动数据,但是实际上不可能以编程方式禁用或启用相同功能。仅当您越狱iOS设备时才有可能。Apple不允许任何应用程序开发人员访问wifi或蓝牙。 有一些私有API可能会帮助您解决此问题,但最终会导致应用商店拒绝

  • 我们有一个应用程序可以扫描蓝牙设备。负责扫描的代码应仅在启用蓝牙时运行。此外,我们希望在任何时间点禁用/启用此功能。 我们选择实现为BluetoothAdapter注册的BroadcastRecector。ACTION_STATE_CHANGED广播。 以下是我们遇到的一些问题: 以编程方式启用BroadcastRecector: 当应用程序被终止时,BroadcastReceiver也不再处于活

  • 问题内容: 我需要从Windows XP中的脚本启用/禁用完全网络接口。我正在寻找python解决方案,但是任何通用的方式(例如WMI,某些命令行ànetsh,某些Windows调用)都是受欢迎的,并且会进行调整。谢谢。 问题答案: 使用netsh接口用法设置接口[name =] IfName [[admin =] ENABLED | DISABLED [connect =] CONNECTED