我在 AndroidManifest 中编写了 NFC 相关声明,如下所示:
<uses-feature android:name="android.hardware.nfc.hce" android:required="false"/>
<uses-permission android:name="android.permission.NFC" />
我希望通过这种方式,google play不会在没有NFC功能的手机中过滤我的应用程序。但不幸的是,我检查了安装的应用程序,发现仍然需要 NFC....只是不知道为什么
PackageManager pm = getPackageManager();
try {
PackageInfo packageInfo1 = pm.getPackageInfo("My pakcage name", PackageManager.GET_CONFIGURATIONS);
if(packageInfo1 != null && packageInfo1.reqFeatures != null) {
for(FeatureInfo featureInfo : packageInfo1.reqFeatures) {
Log.d("TAG", "name:"+featureInfo.name + ", flag:" + featureInfo.flags+",version:"+featureInfo.version);
}
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
输出:
03-15 12:21:56.673 17052-17052/mapbox1.myapplication D/TAG: name:android.hardware.nfc.hce, flag:1,version:0
FeatureInfo 中的标志为 1,表示需要....
和完整的输出:
03-15 12:41:02.982 17052-17052/mapbox1.myapplication D/TAG:名称:android.hardware.bluetooth_le,标志:1,版本:0
03-15 12:41:02.982 17052-17052/mapbox1.myapplication D/TAG:名称:android.hardware.nfc.hce,标志:1,版本:0
03-15 12:41:02.982 17052-17052/mapbox1.myapplication D/TAG:名称:android.hardware.camera,标志:1,版本:0
03-15 12:41:02.982 17052-17052/mapbox1.myapplication D/TAG:名称:android.hardware.camera.autofocus,标志:0,版本:0
自动对焦按需要工作,但 NFC的required=false
required 属性不起作用。(android.hardware.camera
需要不工作,可能是因为android.permission.CAMERA
)