以下来自 AndroidManifest.xml 文件。
<permission
android:name="com.kivi.kividoctors.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.telephony" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-feature android:name="android.hardware.camera.flash" android:required="false" />
但是,当我更新应用程序时,Google会继续向我展示列表中的3个功能。它只是忽略了摄像头功能的 android:required 属性。它适用于电话功能。
android.hardware.CAMERA
android.hardware.camera.AUTOFOCUS
android.hardware.camera.FLASH
我已经尝试了所有可能的方法,但是找不到解决方案。
是否有任何我想要从列表中删除上述3个功能的内容?
更新
还尝试使用 android:name 属性中的大写功能。
(我知道这不对,但我仍然尝试过,但也没有运气)
<uses-feature android:name="android.hardware.CAMERA" android:required="false" />
<uses-feature android:name="android.hardware.camera.AUTOFOCUS" android:required="false" />
<uses-feature android:name="android.hardware.camera.FLASH" android:required="false" />
答案 0 :(得分:6)
显然,图书馆有<uses-feature>
这些并按要求标记。如果清单的任何贡献者根据需要标记了某个功能,它将根据最终合并清单中的要求结束。
当您遇到此问题时,首先尝试确定正在执行此操作的库(或库)。清单合并报告(应该在您的应用模块的build/output/logs/
中)很难读,但应该指出谁是罪魁祸首。
接下来,将tools:replace="required"
添加到清单中的<uses-feature>
元素,以表明您要否决任何优先级较低的清单,例如来自库的清单。
最后,要非常小心使用之前确定的库。他们期待您明确不需要的功能。在那些没有满足这些功能的设备上使用这些库是有风险的。