そのような独自のカスタムスキームを使用しないでください!!! URI スキームは、ネットワークのグローバルな名前空間です。世界中で「anton:」スキームを所有していますか? いいえ?その後、使用しないでください。
1 つのオプションは、Web サイトを持ち、その Web サイトの特定の URI にインテント フィルターを設定することです。たとえば、Market がその Web サイトで URI を傍受するために行うことは次のとおりです。
<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="http" android:host="market.android.com"
android:path="/search" />
</intent-filter>
別の方法として、"intent:" スキームがあります。これにより、ほぼすべてのインテントを URI として記述することができ、クリックするとブラウザが起動しようとします。このようなスキームを構築するための最善の方法は、起動するインテントを構築するコードを記述し、intent.toUri(Intent.URI_INTENT_SCHEME) の結果を出力することです。
この目的でアクションを使用して、そのアクションをサポートするアクティビティを見つけることができます。ブラウザは、セキュリティ上の理由から、インテントを起動する前に自動的に BROWSABLE カテゴリをインテントに追加します。また、同じ理由で指定した明示的なコンポーネントを削除します。
アプリのみを確実に起動する場合、これを使用する最善の方法は、独自のスコープ アクションを使用し、Intent.setPackage() を使用して、Intent がアプリ パッケージのみに一致することを示すことです。
2 つの間のトレードオフ:
http URI では、所有しているドメインが必要です。ユーザーは常に、ブラウザーに URI を表示するオプションを取得します。アプリがインストールされていない場合、アプリが Web サイトに表示されるという非常に優れたフォールバック プロパティがあります。
インテント URI では、アプリが Android スマートフォンにのみインストールされている必要があります。ほとんどすべてのインテントを許可します (ただし、常に BROWSABLE カテゴリが含まれており、明示的なコンポーネントはサポートされていません)。これにより、ユーザーが代わりにブラウザーや他のアプリに移動するオプションを使用せずに、アプリのみを起動するように指示できます。