Android閲覧可能なインテントAPIレベル
-
15-11-2019 - |
質問
AndroidアクティビティをAndroid 2.3(APIレベル10)および以前のバージョンの閲覧可能な意図として登録するためのさまざまなステップがありますか?
カスタムスキームを使用するインテントフィルタでアクティビティを設定しました:
<intent-filter>
<action name="android.intent.action.VIEW"/>
<category name="android.intent.category.DEFAULT"/>
<category name="android.intent.category.BROWSABLE"/>
<data scheme="@string/myCallbackProtocol"/>
</intent-filter>
.
2.3を実行している物理デバイスで、SDKのシミュレータが2.3に設定されている場合、ブラウザアプリケーションはマイカスタムプロトコルを使用してアプリをアプリに指示します。
しかし、シミュレータを2.2または2.1にスケールバックすると、ブラウザはリダイレクトされず、代わりにサーバが見つからないことを示します。これらのAPIレベルを実行している実際のデバイスがありません。
私のアプリをリリースしたいので、2.1以上を実行しているデバイスと互換性があります。これが可能なと仮定するのは間違っていますか? android docs Intent.CATEGORY_BROWSABLE
は、1.0以降に利用可能です。
ありがとう!
解決 2
Solved. BROWSABLE
works back at least as far as Android 2.1. Before 2.3 it seems that loading the <data scheme="">
from a string resource leads to the Activity not being registered correctly.
Changing the @string/
reference to a hard-coded value yields the desired result.
<intent-filter>
<action name="android.intent.action.VIEW"/>
<category name="android.intent.category.DEFAULT"/>
<category name="android.intent.category.BROWSABLE"/>
<data scheme="my-custom-protocol"/>
</intent-filter>
他のヒント
I have had no problems using BROWSABLE
going back at least to 2.1 if not earlier. However, I have not implemented a custom scheme, let alone one defined in a string resource. Here is a sample project demonstrating the use of BROWSABLE
.