我正在开发基于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)?
答案 0 :(得分:13)
您可以使用以下Intent手动打开辅助功能设置(导入android.content.Intent
和android.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
中的设置结果。您可以检查是否允许应用程序的辅助功能设置。