我建立了一个应用程序,可以从我们学校使用的学生证中读取某些数据。目前,它仅读取用户数据,但将来的计划是增加支持以读取剩余的余额。
问题在于我们使用的卡是Mifare Classic。 Nexus 4和Nexus 10(可能还有更多设备)不支持这些卡,因为它们具有Broadcom NFC Controller 。如果我是对的,则该应用程序不会崩溃或在这些设备上出现问题,但是它什么也没做。
是否可以通过某种方式排除没有NXP Controller 的这些设备? (基本上类似于MifareClassic类所需的use-features。)我可以通过Play商店排除Nexus 4和Nexus 10,但这并不是一个好的解决方案-甚至更多,因为其他设备可能会开始使用Broadcom Controller ,而且它们都必须手动排除。
谢谢!
-安布罗斯
最佳答案
您可以按以下方式在应用程序中 checkin MIFARE Classic支持:
boolean hasMifare(Context ctx) {
return ctx.getPackageManager().hasSystemFeature("com.nxp.mifare");
}
在安装应用程序之前,无法进行任何检查。但是在安装后,由于缺少MIFARE Classic支持,您可以警告用户您的应用程序功能将受到限制。