如果设备不支持NFC权限,是否会导致错误?

时间:2018-10-08 05:27:10

标签: android nfc

我已在AndroidManifest.xml中获得NFC许可,然后将我的应用升级到PlayStore。现在,我的问题是,如果设备不支持NFC,我尝试从playstore安装app。它会产生任何错误吗? app是否至少已在该设备上安装。我没有任何不受支持的NFC设备来测试这种情况。

2 个答案:

答案 0 :(得分:1)

  

设备不支持NFC,我尝试从以下位置安装应用   应用商店。它会产生任何错误吗?

如果您未在清单文件中提及相关的uses-feature标记,则Play Store不会给出任何错误,并将允许用户安装该应用。现在,一旦安装,在尝试获取NfcManager实例时,它会为 null 。有关如何请求NFC访问的信息,请参阅此doc

NfcManager manager = (NfcManager) context.getSystemService(Context.NFC_SERVICE); // null

一种更好的做法是在清单文件中添加uses-feature,以使Play商店知道我们的应用具有一定的硬件依赖性,并且我们不希望该应用可用于具有以下功能的设备不包含这组硬件(在uses-feature标签中定义)。

例如:

<uses-feature 
     android:name="android.hardware.nfc" 
     android:required="true"/>

答案 1 :(得分:0)

有:

<uses-permission android:name="android.permission.NFC"/>

有:

<uses-feature android:name="android.hardware.nfc" android:required="true"/>

uses-feature可用于控制行为(例如,仅允许在具有NFC的设备上安装)。

如果您需要不支持NFC的测试设备,只需使用仿真器映像即可。

只有相当过时的硬件设备不支持它-最优雅的解决方案可能是设置android:required="false",然后在运行时检查传感器是否甚至存在-为了使其成为可选功能,如果有可能,则根据应用程序实际在做什么。