web-dev-qa-db-ja.com

Android IntentのURLに応答する

ユーザーが特定のURLにアクセスしたときにインテントが起動されるようにします。たとえば、Androidマーケットは http://market.Android.com/ urlsでこれを行います。 youtubeも同様です。私もそれをやりたいです。

151
Isaac Waller

やったよ! <intent-filter> を使用します。次をマニフェストファイルに追加します。

<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:Host="www.youtube.com" Android:scheme="http" />
</intent-filter>

これは完璧に機能します!

190
Isaac Waller

さまざまなケース(http/https/ect)で機能させるには、さまざまな順列をインテントフィルターに追加する必要がある場合があります。

たとえば、ユーザーがGoogleドライブフォームへのリンクを開いたときに開くアプリに対して、www.docs.google.com/formsを実行する必要がありました

パスプレフィックスはオプションです。

        <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="docs.google.com"
                Android:pathPrefix="/forms"/>
            <data
                Android:scheme="http"
                Android:Host="www.docs.google.com"
                Android:pathPrefix="/forms" />

            <data
                Android:scheme="https"
                Android:Host="www.docs.google.com"
                Android:pathPrefix="/forms" />

            <data
                Android:scheme="https"
                Android:Host="docs.google.com"
                Android:pathPrefix="/forms" />
        </intent-filter>
9
Jordan Réjaud