5

在 Android 中,我可以使用以下意图启动键盘和输入设置对话框:ACTION_INPUT_METHOD_SETTINGS

getPresenter().startActivity(new Intent(Settings.ACTION_INPUT_METHOD_SETTINGS));

问题: 如何打开“拼写检查器”设置对话框(在 Jelly Bean+ 中可用)以便用户启用我的服务?

示例: 我可以从语言和输入设置中获取它: 语言和输入设置

但我想将用户直接带到这个屏幕: 拼写检查器设置

4

2 回答 2

9

干得好:

ComponentName componentToLaunch = new ComponentName("com.android.settings", 
        "com.android.settings.Settings$SpellCheckersSettingsActivity");

        Intent intent = new Intent();
        intent.addCategory(Intent.CATEGORY_LAUNCHER);
        intent.setComponent(componentToLaunch);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        try {
            this.startActivity(intent);
        } catch (ActivityNotFoundException e) {
            //TODO
        }

您可以通过启动 Activity 并查找 Logcat 中使用的 Intent 来查找其他 Activity 的名称。我的输出是:

I/ActivityManager(  589): START u0 {act=android.intent.action.MAIN cmp=com.android.settings/.Settings$SpellCheckersSettingsActivity} from pid 13084
于 2013-09-18T11:46:20.900 回答
2

对的,这是可能的..:)

Intent intent = new Intent();
intent.setComponent(new ComponentName("com.android.settings","com.android.settings.Settings$SpellCheckersSettingsActivity"));
startActivityForResult(intent);

我们创建了一个明确的意图,我们必须启动 com.android.settings.Settings$SpellCheckersSettingsActivity 组件。对于未来参考,您可以在 eclipse 中使用 LogCat 来查找您尝试启动的任何包或组件。只需查看 ActivityManager 的启动活动消息,您就会看到任何活动的包和组件名称。

于 2013-09-18T11:59:09.843 回答