Youtubeアプリで共有用にのみインテントフィルタを登録したいと考えています。AndroidでYoutubeに使用するインテントフィルタの設定方法
これまでのところ、私はYoutubeからインテントを正常に受け取ることができました。問題は、私の意図ファイラーが十分ではないということです。私のアプリは他のアプリの他の共有機能(Youtubeだけでなく)で利用できるように表示されます。
これは私が今使っているものです:
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
私は問題が答えのようなタイプで不正確があるある(ほとんどがthis one似ています)いくつかの質問を検討している:
<data android:host="www.youtube.com" ... />
data documentationによれば、scheme
は、host
が有効であるために最も多く提供されます。したがって、ホストを追加するだけの回答では、scheme
が存在しないため、intent-filter
はYoutube固有のものではないため、host
は無視されます。
だから私は活動が開始されたときintent
の利用可能な方法を使って、これを理解しようとしている:意図で利用可能な情報がチェックされているときに
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
for (String key : bundle.keySet()) {
Log.d("KEY", key);
}
//The above loop will log
//... D/KEY: android.intent.extra.SUBJECT
//... D/KEY: android.intent.extra.TEXT
//This is are the same keys than above, but using the available constants
String subject = getIntent().getStringExtra(Intent.EXTRA_SUBJECT);
String text = getIntent().getStringExtra(Intent.EXTRA_TEXT);
//The subject is the video title
Log.d("SUBJECT", subject);
//The text is the video url, example: https://youtu.be/p6qX_lg4wTc
Log.d("TEXT", text);
//Action is consistent with the intent-filter android.intent.action.SEND
Log.d("ACTION", intent.getAction());
//This is consistent with the intent-filter data mime type text/plain
Log.d("TYPE", intent.getType());
/*
This is the problem.
The scheme is null (that is why I'm using String value of).
*/
Log.d("scheme", String.valueOf(intent.getScheme()));
、すべてがあると思われます順番にはですが、スキームはありません。それはアプリがもはやチューで提供されて行うものではありません、http
またはhttps
が動作しません追加
<data android:scheme="http" android:mimeType="text/plain"/>
//I'm adding youtu.be here because is the url format in the text extra
<data android:scheme="http" android:host="youtu.be" android:mimeType="text/plain"/>
:だから、得ているものに基づいて、私はそれを把握するためにいくつかブラインド試みを行っています。つまり、host
を追加してもう一方の試みを実行することはできません。
Doeの誰もがYoutubeシェア専用にintent-filter
を作成する方法を知っていますか?
PS:私は、私はそれがYouTubeのURLと一致するかどうかを確認するために、URLを確認でき知っているが、ユーザーフレンドリーにいないようですSEND
に一致するすべてのチューに私のアプリを持っ
私のアプリがYoutubeから明示的なインテントを受け取るようにしたい、私のアプリからYoutubeにインテントを送信したくない。私はYoutubeからインテントを受け取ることができます、私のアプリはインテントフィルターを使って利用可能なものとして登録されています。ユーザーがYoutube pressを押すと、共有ボタンmy appがチューザーで利用可能になります。私が今必要とするのは、SEND暗黙のインテントを引き起こすことができる他のアプリのためにコソサーで利用できるので、Youtube専用にすることです。 Youtubeのみで利用できるようにするために、私のインテントフィルタをより具体的にする必要があります。 – cutiko