2011-01-09 2 views
0

を表示する方法を知りたいと思っています。これは、一部のアプリケーションをcreateChooser dlgのデフォルトの のデフォルトにするチェックボックスです。Androidデフォルトアプリケーション

ありがとうございます。


はいDavid私はデフォルトからアプリをクリアする方法を知りたいと思います。私はそのアクション、カテゴリ、パッケージ、および "クラス名"を知っていれば、私はどんな意図も呼ぶことができるかどうかを知りたいですか?

私は実際に私が以前にその意図の内容はいくつかのセキュリティEXPを置く知られ、いくつかの活動を呼び出そうとしました。育った。どうして?

答えて

2

あなたの質問は私には100%明確ではないので、私は間違った質問に答えるよなら、私を許して。あなたはどちらかにしたいように聞こえる:

  1. は、ユーザが何らかの意図を処理するために、デフォルトとして、あなたの活動を選択するダイアログをポップアップ。または
  2. アクティビティがインテントのデフォルトであることを確認してください。

私は両方をお答えします。

は、ユーザが何らかの意図を処理するために、デフォルトとして、あなたの活動を選択するダイアログをポップアップ表示するには、単にその意図を持って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を使用してください。

ユーザーが別のアプリをデフォルトからクリアする方法を簡単に知りたい場合は、教えてください。

+0

どうもありがとうデビッド、これは私のために役に立ちました。私はこれを書くあなたの努力に感謝します。 –

関連する問題