に応答する必要がある 2 つのアクティビティを含むアプリケーションがありますandroid.intent.action.VIEW
。それらはマニフェストのように定義されています
<activity android:name=".FirstActivity">
<intent_filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="my_callback1"/>
</intent_filter>
</activity>
<activity android:name=".SecondActivity">
<intent_filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="my_callback2"/>
</intent_filter>
</activity>
my_callback1
デフォルトのブラウザ アクティビティによって起動されます。Twitterの認可コールバックなので多分こんな感じ
ブラウザは URL にリダイレクトされますmy_callback1://callback?token=0123456789abcdef
my_callback2
Linkify
そのようなカスタムフィルターによって起動されます:
Linkify.addLinks(textView, pattern, null, matcher, new Linkify.TransformFilter() {
@Override
public String transformUrl(Matcher match, String url) {
return "my_callback2://".concat(url);
}
});
両方のコールバックが機能しておらず、IFandroid.intent.category.DEFAULT
がインテント フィルターに追加されていません。いずれDEFAULT
かのインテント フィルターに を追加すると、対応するコールバックが正常に動作し始めます。同時に両方に設定されていない場合 - コールバックは機能しません (私は受け取りますandroid.content.ActivityNotFoundException
)