0

意図的にアプリを選択するときにデフォルトの(独自のアプリを作成したくない)アプリチューザーを使用する方法...チューザーが表示され、ユーザーが1つのアプリを選択し、特定のURIで明示的に呼び出しますか?

Intent intent = new Intent(Intent.ACTION_SEND);
// Create and start the chooser
Intent chooser = Intent.createChooser(intent, "title");
startActivity(chooser); //I dont want to start the intent ... just to know which one user chose
4

1 に答える 1

1

セレクターが表示され、ユーザーが 1 つのアプリを選択し、特定の URI で明示的に呼び出しますか?

Android には、要件を満たすものは何も組み込まれていません。

「geo:」タグを使用する必要があります...一部のアプリは、Googleが実装した構文を理解せず、特定の形式が必要です...ユーザーが実行したいものを知り、適切なURIを送信する必要があります

ユーザーが使用できるアプリのリストは に依存するため、これは不可能ですUri。リストに入力するエントリがわからないため、アクティビティを開始するのではなく、選択肢を返す「チューザー」ダイアログを手動で作成することさえできません。

あなたの目的が次の場合:

  • Intentそれをサポートするアクティビティが 1 つ以上ある場合は、特定のものを使用します。または

  • Intentあなたの最初の活動をサポートする活動がない場合は、他のものを使用してくださいIntent

次に、できることは次のとおりです。

  • 最初の を作成し、それをon にIntent渡します。これが空でない を返す場合、それを呼び出すことができますqueryIntentActivities()PackageManagerListstartActivity()Intent

  • Intent呼び出すことができる構造が見つかるまで、すべての候補構造に対して上記の手順を繰り返しますstartActivity()

または、次のことができます。

  • あなたの最初のものIntentを作り、それを呼び出し、その呼び出しを/ブロックstartActivity()でラップして監視しますtrycatchActivityNotFoundException

  • startActivity()例外なく呼び出しが成功するまで、またはIntent試行する構造がなくなるまで、上記の手順を繰り返します。

より複雑なオプションもあります (たとえば、1 つだけではなく、考えられるすべての構造からの結果を使用して独自のチューザーを作成するなど)。Intent

于 2013-06-23T13:17:37.730 に答える