我已在AndroidManifest.xml
中获得NFC许可,然后将我的应用升级到PlayStore。现在,我的问题是,如果设备不支持NFC,我尝试从playstore安装app
。它会产生任何错误吗? app
是否至少已在该设备上安装。我没有任何不受支持的NFC设备来测试这种情况。
答案 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"
,然后在运行时检查传感器是否甚至存在-为了使其成为可选功能,如果有可能,则根据应用程序实际在做什么。