あなたの質問は私には100%明確ではないので、私は間違った質問に答えるよなら、私を許して。あなたはどちらかにしたいように聞こえる:
- は、ユーザが何らかの意図を処理するために、デフォルトとして、あなたの活動を選択するダイアログをポップアップ。または
- アクティビティがインテントのデフォルトであることを確認してください。
私は両方をお答えします。
は、ユーザが何らかの意図を処理するために、デフォルトとして、あなたの活動を選択するダイアログをポップアップ表示するには、単にその意図を持ってstartActivity()
を呼び出します。たとえば、あなたがデフォルトのホーム画面として登録したい場合、次のようにすれば簡単です:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
1の3つのことが起こります。
- は、いずれかの指定されたデフォルトはありません(と、ユーザーは自分のアプリをインストールしている場合、それはデフォルト値がクリアされます)ので、ポップアップが表示されます、またはあなたはすでにデフォルトしているか、他の誰かがデフォルトであります。
- 既にデフォルトの状態になっている場合は、これを一度処理する方法を理解してください(
EXTRA
を追加すると、これは単なるテストであったため、アクティビティはすぐにfinish()
になります)。
他の誰かが、あなたがそのアプリのデフォルト値をクリアして、ユーザーを歩く必要がありますデフォルトである場合。誰もデフォルトでない場合は、ユーザが何をすべきかを説明する通知をToast
までスローすることができます。
Toast.makeText(this,
"Please check 'Use by default for this action' and then press 'MyActivity'",
Toast.LENGTH_LONG).show();
これらは、処理するための厄介な状況のすべての並べ替えであり、startActivity()
を呼び出す前に、最初にチェックする方が良いだろう。これを行うには、ResolveInfo
を使用してください。
ユーザーが別のアプリをデフォルトからクリアする方法を簡単に知りたい場合は、教えてください。
どうもありがとうデビッド、これは私のために役に立ちました。私はこれを書くあなたの努力に感謝します。 –