如何在Android中启动我的APP的辅助功能设置页面?

时间:2015-03-31 11:01:16

标签: android settings accessibility

我正在开发基于Android功能的Accessibility APP。由于无法以编程方式Enable/Disable Accessibility Android中的服务(请参阅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)?

4 个答案:

答案 0 :(得分:13)

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

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

有关详细信息,请查看以下资源:

答案 1 :(得分: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"欲获得更多信息; 看看这个链接,它对你有用:

答案 2 :(得分:0)

尝试一下:

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

答案 3 :(得分:-1)

您可以使用android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS的“意图”从设置应用程序直接打开辅助功能设置页面 为此,您可以通过以下方式传递意图来启动“辅助功能”设置,

startActivityForResult(new Intent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS), INTENT_CODE);

,它将通过结果代码作为onActivityResult()返回呼叫者活动的INTENT_CODE中的设置结果。您可以检查是否允许应用程序的辅助功能设置。