为什么NFC功能仍然需要,即使我声明android:required =" false"属性?

时间:2018-03-15 04:19:04

标签: android uses-feature

我在AndroidManifest中写下NFC相关声明,如下所示:

<uses-feature android:name="android.hardware.nfc.hce" android:required="false"/>
<uses-permission android:name="android.permission.NFC" />

我希望通过这种方式,谷歌播放不会在没有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,表示必需....

我在下面粘贴我的Manifest,删除活动和服务等: enter image description here

完整输出:

  

03-15 12:41:02.982 17052-17052 / mapbox1.myapplication D / TAG:name:android.hardware.bluetooth_le,flag:1,version:0

     

03-15 12:41:02.982 17052-17052 / mapbox1.myapplication D / TAG:name:android.hardware.nfc.hce,flag:1,version:0

     

03-15 12:41:02.982 17052-17052 / mapbox1.myapplication D / TAG:name:android.hardware.camera,flag:1,version:0

     

03-15 12:41:02.982 17052-17052 / mapbox1.myapplication D / TAG:name:android.hardware.camera.autofocus,flag:0,version:0

自动对焦中的required=false按预期工作,但NFC必需属性无法正常工作。 (android.hardware.camera要求不起作用,可能是因为android.permission.CAMERA

1 个答案:

答案 0 :(得分:1)

我怀疑有第三个库覆盖了这个,所以我只需要添加工具:replace =&#34; android:required&#34; 来使用应用程序机器人:需要=&#34;假&#34; 。这解决了我的问题