2017-08-29 6 views
0

特定のリンクが他のアプリから共有されている場合、私のアプリはインテントを受け取りたいです。たとえば、リンクはyoutubeです。 youtubeのためのいくつかのリンクがあります。特定のWebサイトのインテント - Android

www.youtube.com/...

m.youtube.com/...

youtu.be/...これらのリンクのいずれかが共有されている場合は

、どちらかYouTubeのアプリやクロームなどのアプリから、自分のアプリが共有リストに登録されます。それ以外の場合は、共有リストに表示させたくありません。私はいくつかのアプリがこれをやっているのを見たことがあると思うが、どうすればよいかわからない。

マニフェストファイルにこれらのコードを追加しましたが、すべてのリンクを私のアプリケーションに共有することができます。

<intent-filter> 
    <action android:name="android.intent.action.SEND" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:host="www.youtube.com" android:mimeType="text/*" /> 
</intent-filter> 
<intent-filter> 
    <action android:name="android.intent.action.SEND" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:host="m.youtube.com" android:mimeType="text/plain" /> 
</intent-filter> 
<intent-filter> 
    <action android:name="android.intent.action.SEND" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:host="youtu.be" 
      android:mimeType="text/plain" /> 
</intent-filter> 

私は、活動ファイルのコードとのリンクを扱うことができますが、私は特に与えるものとのリンクを制限する別の方法を探しています。

私はAndroidの初心者ですので、この質問が少し聞こえたら私を許してください。

ありがとう、

+0

@CommonsWareの回答の助けによって、Android Studioにマニフェストファイルに必要なコードを追加するApp Links Assistantがあることが分かりました。 – MeCe

答えて

1

お望みのものはありません。余分な値(たとえば、EXTRA_TEXTまたはEXTRA_STREAM)の値はフィルタリングできません。

+0

こんにちは、あなたの答えに感謝します。他の方法はありますか?あなたがYouTubeのリンクをクリックすると、私のアプリを開くときなどのように? – MeCe

+0

@MeCe:それは 'ACTION_VIEW'、またはマニフェストの' 'の意味では 'android.intent.action.VIEW'です。これはうまくいきます(あなたの ''要素に 'android:scheme'属性を追加する必要があります)(https://developer.android.com/guide/topics/manifest/data-element.html) MIMEタイプを削除します(ビデオはテキストではありません)。 – CommonsWare

+0

ありがとうございました。 – MeCe

関連する問題