当设备不支持时,NFC权限是否会导致错误?
Does NFC permission result in an error when the device has no support?
我在 AndroidManifest.xml
中获得了 NFC 许可,并将我的应用程序上传到了 PlayStore。现在我的问题是,如果设备不支持 NFC,我尝试从 Playstore 安装 app
。它会给出任何类型的错误吗? app
是否至少安装在该设备上。我没有任何不支持的 NFC 设备来测试这种情况。
有:
<uses-permission android:name="android.permission.NFC"/>
还有:
<uses-feature android:name="android.hardware.nfc" android:required="true"/>
uses-feature
可用于控制行为(例如,仅允许在具有 NFC 的设备上安装)。
如果您需要没有 NFC
支持的测试设备,只需使用模拟器图像即可。
只有相当过时的硬件设备不支持它 - 最优雅的解决方案可能是设置 android:required="false"
然后在运行时检查传感器是否存在 - 以使其成为可选的功能,以防它有意义,基于应用程序的实际操作。
device doesn't not support NFC and I try to install app from
playstore. Does it give any kind of error?
如果您没有在清单文件中提及相关的 uses-feature
标签,Play 商店将不会给出任何错误并让用户安装该应用程序。现在,一旦安装,在尝试获取 NfcManager
实例时,它将是 null。请参阅此 doc 了解如何请求 NFC 访问。
NfcManager manager = (NfcManager) context.getSystemService(Context.NFC_SERVICE); // null
这里更好的做法是,我们应该在清单文件中包含 uses-feature
,让 Play Store 知道我们的应用程序具有一定的硬件依赖性,我们不希望该应用程序可用于设备不包含这组硬件(在 uses-feature
标签中定义)。
例如:
<uses-feature
android:name="android.hardware.nfc"
android:required="true"/>
我在 AndroidManifest.xml
中获得了 NFC 许可,并将我的应用程序上传到了 PlayStore。现在我的问题是,如果设备不支持 NFC,我尝试从 Playstore 安装 app
。它会给出任何类型的错误吗? app
是否至少安装在该设备上。我没有任何不支持的 NFC 设备来测试这种情况。
有:
<uses-permission android:name="android.permission.NFC"/>
还有:
<uses-feature android:name="android.hardware.nfc" android:required="true"/>
uses-feature
可用于控制行为(例如,仅允许在具有 NFC 的设备上安装)。
如果您需要没有 NFC
支持的测试设备,只需使用模拟器图像即可。
只有相当过时的硬件设备不支持它 - 最优雅的解决方案可能是设置 android:required="false"
然后在运行时检查传感器是否存在 - 以使其成为可选的功能,以防它有意义,基于应用程序的实际操作。
device doesn't not support NFC and I try to install app from playstore. Does it give any kind of error?
如果您没有在清单文件中提及相关的 uses-feature
标签,Play 商店将不会给出任何错误并让用户安装该应用程序。现在,一旦安装,在尝试获取 NfcManager
实例时,它将是 null。请参阅此 doc 了解如何请求 NFC 访问。
NfcManager manager = (NfcManager) context.getSystemService(Context.NFC_SERVICE); // null
这里更好的做法是,我们应该在清单文件中包含 uses-feature
,让 Play Store 知道我们的应用程序具有一定的硬件依赖性,我们不希望该应用程序可用于设备不包含这组硬件(在 uses-feature
标签中定义)。
例如:
<uses-feature
android:name="android.hardware.nfc"
android:required="true"/>