유튜브 앱의 공유에 인 텐트 필터를 독점적으로 등록하려고합니다.안드로이드에서 유튜브에 사용하는 인 텐트 필터 스키마
지금까지 Youtube에서 의도를 성공적으로 수신 할 수있었습니다. 문제는 필자의 의도가 충분하지 않다는 것입니다. 내 앱은 다른 앱의 다른 공유 기능 (Youtube뿐 아니라)에서 사용할 수있는 것으로 표시됩니다.
<data android:host="www.youtube.com" ... />
: 나는 몇 가지 질문을 검토 한
<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 documentation에 따르면, scheme
이 가장 유효하여 host
이 유효합니다. 따라서 호스트를 추가하기 만하면 scheme
이 없으므로 intent-filter
이 Youtube 전용이 아니므로 host
은 무시됩니다.
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()));
그래서 의도에서 사용할 수있는 정보가 확인 될 때, 모든 것 같습니다 : 활동이 시작될 때
그래서 나는intent
의 가능한 방법을 사용하여이 문제를 알아 내기 위해 노력 해왔다 순서대로
이지만 스키마는이 아닙니다. 이 앱이 더 이상 선택기에서 사용할 수 없습니다,
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 : 나는 그것을 유튜브 URL을 일치하는지 확인하기 위해 URL을 확인할 수 있습니다 알고 있지만, 사용자 친화적하지 않는 것 SEND
일치하는 모든 츄 내 응용 프로그램을 가지고
내 앱이 Youtube에서 명시적인 의도를 수신하도록하고 싶습니다. 내 앱에서 Youtube로 보내고 싶지 않습니다. YouTube에서 인 텐트를받을 수 있습니다. 내 앱은 사용 가능하고 Intent-Filter로 등록되어 있습니다. 사용자가 유튜브 프레스에있을 때 공유 버튼 my app는 선택기에서 사용할 수 있습니다. 지금 내가해야 할 일은 SEND 암시 적 의도를 유발할 수있는 다른 앱의 코퍼에서 사용할 수 있기 때문에 Youtube에서만 사용할 수 있도록하는 것입니다. Youtube에서만 사용할 수 있도록하고 다른 필터는 사용하지 않으려면 필자의 의도 필터를보다 구체적으로 만들어야합니다. – cutiko