2011-02-03 4 views
2

私はアンドロイドのインテントフィルタを読んでいて、いくつかの質問をする必要があります。インテントフィルタ

  1. 同じアプリケーション内またはすべてのアプリケーション内のフィルタと一致しますか?

  2. データタグ内のスキームは、私はアンドロイドSDKウェブサイトのドキュメントを見てきましたが、それがどういう意味か分かりません。それは、スキームを言う://ホスト:ポート/パスまたはPathprefixはまたはpathPattern

パスが何に関係しています....ホストポートおよびパスは何ですか?

答えて

1

1)要求されたインテントのタイプによって異なります。ドキュメントの「意図解像度」セクションの明示的な意図対暗黙的に参照してください:

http://developer.android.com/guide/topics/intents/intents-filters.html

あなたがコンポーネントに名前を付ける場合は、正確に、あなたが起動しますどの活動を知っています。他のインテントは、一般的なアクションの名前を付け、複数のアクティビティで一致させることができます。ユーザーは、アクションを正常に完了するためにどのアプリを使用するかを尋ねるメニューを取得します。たとえば、マーケットプレイスからFirefoxアプリケーションをダウンロードし、電子メールのリンクをクリックすると、ブラウザまたはFirefoxを使用してURLを開くかどうかを確認するプロンプトが表示されます。

2)これは、カスタムURLスキームをインターセプトしたり、HTTPリクエストをオーバーレイするためのものです。あなたがやりたいことではないような音ですが、使用する必要がなければ無視しても問題ありません。あなたはそれについての詳細情報を希望した場合は、いくつかの良い答えと質問がすでにあります:

Launch custom android application from android browser

+0

カスタムオブジェクトまたは文字列を他のアクティビティに送信する場合は、スキームにどのような設定をしますか? – LittleFunny

+0

データを渡すためにURLフォームを使用する必要はなく、単にIntentに追加することができます。myIntent.putExtra( "com.android.samples.SpecialValue"、 "Hello、Joe!"); // [http://developer.android.com/guide/appendix/faq/commontasks.html](http://developer.android.com/guide/appendix/faq/commontasks.html)も参照してください。 – mikerowehl

1

1)

2 @mikerowehl答えを参照)のデータが統一資源Indentifiers(URIの)を介して参照されます。 Androidでは、スキームはhttptelfilecontent(その他についてはわかりません)、フィルタに特定のスキームを指定することで、コンポーネントがそのように提供されたデータを処理できると言っています。

host + port = authority。スキームがhttpであるデータの場合、ホストはもちろんstackoverflow.comのようなものになりますが、ポートはおそらく指定されていません(プロキシにアクセスする場合は8080かもしれません)。コンテンツプロバイダの場合、権限は、慣習的に "ポートのないコンテンツプロバイダの完全修飾クラス名(小文字)"である。

これは一般的な考えです。このフィールドの文書はかなり散らばっていますが、必要なときに特定のタスクに関する情報(電子メール添付ファイルを開くなど)を見つけることができます。

関連する問題