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
        }

アクティビティを開始し、Logcat で使用されているインテントを検索することで、他のアクティビティの名前を見つけることができます。私にとっての出力は次のとおりです。

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 に答える