我正在使用Open Mobile API进行开发,但到目前为止还没有找到默认支持API的设备列表(默认情况下使用的是OEM ROM)。OMAPI支持的设备列表
我意识到,自API级别21以来,Android电话支持通过TelephonyManager直接通过基本和逻辑通道发送APDU。但我想知道有关运行预API级别21的设备。
那么,有一个列表已经编译了内置支持的设备,还是有办法找出我自己的?
我正在使用Open Mobile API进行开发,但到目前为止还没有找到默认支持API的设备列表(默认情况下使用的是OEM ROM)。OMAPI支持的设备列表
我意识到,自API级别21以来,Android电话支持通过TelephonyManager直接通过基本和逻辑通道发送APDU。但我想知道有关运行预API级别21的设备。
那么,有一个列表已经编译了内置支持的设备,还是有办法找出我自己的?
我不知道任何完整列表。然而,在我们的报告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要求开放移动API库:
<uses-library android:name="org.simalliance.openmobileapi" android:required="true" />
如果该应用程序可以在设备上安装,这表明设备包含开放移动API库。
这也可能是获取更全面的受支持设备列表的一种方式:您可以创建此类应用并将其发布到Google Play上。 Google Play将根据<uses-library />
条目进行过滤,这些条目的必填属性设置为true
(android:required="true"
);另请参阅<uses-library>
和Filters on Google Play。这意味着,一旦您将这样的应用上传到Google Play,您应该能够获得与所有拥有Open Mobile API库的设备基本匹配的suuported设备列表。
非常感谢,您的报告是我遇到的第一个来源之一,并得到了很大的帮助。我决定创建一个Google Play开发者控制台帐户(一次性收费25美元),目前看起来像支持API级别16〜1/4的设备(3099/13128)。 – AReubens
@AReubens请注意,我不确定Google Play侦测机制的可靠程度如何... –