【问题标题】:How can I start the Accessibility Settings Page of my APP in Android?如何在 Android 中启动我的 APP 的辅助功能设置页面?
【发布时间】:2015-06-04 16:49:42
【问题描述】:

我正在开发一个基于Accessibility 功能的Android APP。由于它不能在 Android 中以编程方式 Enable/Disable Accessibility 服务(参见 How to Programmatically Enable/Disable Accessibility Service in Android),所以我通过下面的代码引导用户到 Accessibility Settings 页面(图 1):

public static boolean gotoAccessibilitySettings(Context context) {
    Intent settingsIntent = new Intent(
            Settings.ACTION_ACCESSIBILITY_SETTINGS);
    if (!(context instanceof Activity)) {
        settingsIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    }
    boolean isOk = true;
    try {
        context.startActivity(settingsIntent);
    } catch (ActivityNotFoundException e) {
        isOk = false;
    }
    return isOk;
}

然后用户需要找到我的APP的子设置标签,点击它,现在我的APP显示Accessibility Settings页面(图2)。

我怀疑是否可以直接启动我的APP的Accessibility Settings页面(图2)?

【问题讨论】:

  • 您找到解决方案了吗?我为此而疯狂
  • @kalok 你有解决办法吗?
  • 大家好,有人找到这个解决方案吗?我也有同样的问题

标签: android settings accessibility


【解决方案1】:

您可以使用以下 Intent 手动打开辅助功能设置(当 android.content.Intentandroid.app.Intent 都已导入时):

Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivity(intent);

查看以下资源了解更多信息:

【讨论】:

  • 感谢您的回答,@timgws。但是我的问题是直接打开我自己应用的辅助功能设置,而不是辅助功能设置的主页:(
  • 最终这样做了。在我找到更好的访问页面的方法之前,我只是告诉用户点击我的应用并从设置中启用该服务。
【解决方案2】:

也许下面的代码可以帮助你:

Intent intent = new Intent();
        intent.setClassName("com.android.settings",
                "com.android.settings.Settings");
        intent.setAction(Intent.ACTION_MAIN);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                | Intent.FLAG_ACTIVITY_CLEAR_TASK
                | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
        intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT,
                "the fragment which you want show");
        intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS,
                extras);
       startActivity(intent);

或者您可以搜索关键词“Fragment Injection”获取更多信息; 查看此链接,它对您的情况很有用:

【讨论】:

  • @money zhang 我应该在“你想显示的片段”中输入什么?我想输入我自己的无障碍服务设置..
  • 我尝试了我的应用程序名称、包名称服务类名称等,而不是“您要显示的片段”。请告诉我应该输入什么?
  • 根据该链接,此方法不再有效,因为该漏洞已在 Android 4.4 Kitkat 中修复
【解决方案3】:

试试这个:

Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

【讨论】:

    猜你喜欢
    • 2022-01-12
    • 2022-11-02
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多