首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >支持OMAPI的设备列表

支持OMAPI的设备列表
EN

Stack Overflow用户
提问于 2016-07-29 19:24:42
回答 2查看 2.2K关注 0票数 3

我正在使用Open Mobile API进行开发,但到目前为止还没有找到默认支持该API的设备列表(默认情况下是使用OEM ROM)。

我意识到,从API21级开始,安卓电话就支持通过基本和逻辑通道直接通过TelephonyManager发送APDU。但我也想知道运行API之前版本21的设备。

那么,是否已经有了内置支持的设备列表,或者有没有办法自己找出答案?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-08 14:48:33

我不知道有什么完整的清单。然而,在我们的报告Open Mobile API: Accessing the UICC on Android Devices中有一个不是那么全面的,在SEEK-for-Android Wiki中有另一个(尽管现在没有维护)。

如果您有权访问您感兴趣的每个设备,当然,您可以检查这些设备上是否有智能卡系统服务:

代码语言:javascript
运行
复制
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
}

或者,您可以简单地创建一个应用程序,该应用程序声明需要Open Mobile API库,方法是向其AndroidManifest.xml添加以下uses-library条目:

代码语言:javascript
运行
复制
<uses-library android:name="org.simalliance.openmobileapi" android:required="true" />

如果该应用程序可以安装在设备上,则表明该设备包含Open Mobile API库。

这也可能是获得更全面的支持设备列表的一种方式:您可以创建这样的应用程序并将其发布到Google Play上。Google Play将根据所需属性设置为true (android:required="true")的<uses-library />条目进行过滤;另请参阅和Filters on Google Play。这意味着,一旦你将这样的应用程序上传到Google Play,你应该能够获得一个支持的设备列表,这些设备基本上与所有具有Open Mobile API库的设备相匹配。

票数 5
EN

Stack Overflow用户

发布于 2018-09-12 00:21:46

虽然@Michael Roland的回复仍然有效,但也值得注意的是,自从Android 9 Pie, Open Mobile API is part of the Android以来。

因此,对于API级别28和更高级别,默认情况下每个电话都有OMAPI,不需要显式检查。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38657627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档