次のような URI を定義したいとします。
myapp://path/to/what/i/want?d=This%20is%20a%20test
独自のアプリケーションまたはサービスで処理する必要があります。スキームは であり、 または で"myapp"
はないことに注意してください。これがまさに私が意図していることです。Android OS 用に独自の URI スキーマをグローバルに定義することです。これは可能ですか?"http"
"ftp"
skype://
これは、Skype ( ) や任意のトレント ダウンローダー プログラム ( torrent://
)など、Windows システム上で一部のプログラムが既に実行している動作と多少似ています。
ベストアンサー1
これは可能です。AndroidManifest.xmlでURIスキームを定義します。<data>
要素。要素を入力してインテント フィルターを設定すると<data>
、独自のスキームを作成できるようになります。(インテントフィルタとインテント解決の詳細については、こちらをご覧ください。。
以下に簡単な例を示します。
<activity android:name=".MyUriActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="myapp" android:host="path" />
</intent-filter>
</activity>
暗黙的インテントがどのように機能するかに応じて、少なくとも 1 つのアクションと 1 つのカテゴリも定義する必要があります。ここでは、アクションとして VIEW を選択し (何でもかまいません)、DEFAULT カテゴリを追加しました (これはすべての暗黙的インテントで必須であるため)。また、BROWSABLE カテゴリを追加したことにも注意してください。これは必須ではありませんが、URI をブラウザーから開くことができるようになります (便利な機能です)。