3

私は Open Mobile API を使用して開発していますが、これまでのところ、デフォルトで API をサポートするデバイスのリストを見つけていません (デフォルトでは OEM ROM を使用しています)。

API レベル 21 以降、Android テレフォニーは、TelephonyManager を介して、基本チャネルと論理チャネルを介して直接 APDU を送信することをサポートしていることに気付きました。しかし、プレ API レベル 21 を実行しているデバイスについても知りたいです。

それで、サポートが組み込まれているデバイスのリストはすでにコンパイルされていますか、それとも自分で調べる方法はありますか?

4

2 に答える 2

5

完全なリストは知りません。ただし、私たちのレポートOpen Mobile API: Accessing the UICC on Android Devicesにはそれほど包括的なものではなく、 SEEK-for-Android Wikiには別のもの (現在はメンテナンスされていません) があります。

関心のある各デバイスにアクセスできる場合は、もちろん、スマートカード システム サービスがそれらで利用可能かどうかを確認できます。

final String SMARTCARD_SERVICE_PACKAGE = "org.simalliance.openmobileapi.service";
try {
    PackageInfo pi = getPackageManager().getPackageInfo(SMARTCARD_SERVICE_PACKAGE, 0);
    // smartcard service present
} catch (PackageManager.NameNotFoundException ex) {
    // smartcard service NOT present
}

または、AndroidManifest.xml に次の uses-library エントリを追加して、Open Mobile API ライブラリを要求することを宣言するアプリを作成することもできます。

<uses-library android:name="org.simalliance.openmobileapi" android:required="true" />

そのアプリをデバイスにインストールできる場合、これはデバイスに Open Mobile API ライブラリが含まれていることを示します。

これは、サポートされているデバイスのより包括的なリストを取得する方法でもあります。そのようなアプリを作成して、Google Play で公開することができます。Google Play は、required 属性が( )<uses-library />に設定されているエントリに基づいてフィルタリングします。およびGoogle Play のフィルターも参照してください。つまり、このようなアプリを Google Play にアップロードすると、Open Mobile API ライブラリが利用可能なすべてのデバイスと基本的に一致する、サポートされているデバイスのリストを取得できるはずです。trueandroid:required="true"<uses-library>

于 2016-08-08T06:48:32.573 に答える