暗黙的なIntentの例と注意事項
2893 ワード
暗黙的なIntentは、対応する操作を実行できるデバイス上でアプリケーションの操作を呼び出すことができることを指定します.アプリケーションがこの操作を実行できず、他のアプリケーションが可能で、ユーザーが使用するアプリケーションを選択したい場合は、暗黙的なIntentを使用すると便利です.
たとえば、ユーザーが他のユーザーとコンテンツを共有する場合は、
注:
注意:この場合、システムはURIを使用していませんが、extraが携帯するコンテンツを指定するためにIntentのデータ型を宣言しました.
たとえば、ユーザーが他のユーザーとコンテンツを共有する場合は、
ACTION_SEND
操作を使用してIntentを作成し、指定した共有コンテンツのextraを追加します.このIntent呼び出しstartActivity()
を使用すると、ユーザは共有コンテンツに使用されるアプリケーションを選択することができる.注:
startActivity()
に送信した暗黙的なIntentを処理するアプリケーションはありません.この場合、呼び出しは失敗し、アプリケーションがクラッシュします.ActivityがIntentを受信するかどうかを確認するには、Intent
オブジェクトに対してresolveActivity()
を呼び出します.結果が空でない場合、少なくとも1つのアプリケーションは、Intentを処理することができ、startActivity()
を安全に呼び出すことができる.結果が空の場合は、このIntentは使用しないでください.可能な場合は、Intentを発行する機能を無効にする必要があります.// Create the text message with a string
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
sendIntent.setType("text/plain");
// Verify that the intent will resolve to an activity
if (sendIntent.resolveActivity(getPackageManager()) != null) {
startActivity(sendIntent);
}
注意:この場合、システムはURIを使用していませんが、extraが携帯するコンテンツを指定するためにIntentのデータ型を宣言しました.
startActivity()
が呼び出されると、インストールされたすべてのアプリケーションがチェックされ、このようなIntent(すなわち、ACTION_SEND
の操作を含み、「text/plain」データを携帯するIntent)を処理できるアプリケーションが特定されます.1つのアプリケーションしか処理できない場合、アプリケーションはすぐに開き、Intentを提供します.複数のActivityがIntentを受け入れると、使用するアプリケーションを選択できるダイアログボックスが表示されます.