我的应用从手机收集诊断数据。当然,它需要android.permission.ACCESS_WIFI_STATE
等权限才能访问硬件。 Android因此假定需要android.hardware.WIFI
功能。虽然在大多数情况下这确实是一个有效的猜测,但在我的情况下,Wi-Fi并不是正常操作所必需的。该应用程序检查实际存在的模块,如果没有Wi-Fi,它将跳转到下一个模块。
在文档之后,我宣布了
<uses-feature android:required="false" android:name="android.hardware.WIFI"/>
在我的AndroidManifest中。不幸的是,它没有按预期工作!该功能仍然按要求列出。
以下是免除aapt
检查。虽然我的声明有初步效果,但它被权限立即覆盖:
uses-feature-not-required: name='android.hardware.WIFI'
uses-feature: name='android.hardware.wifi'
uses-implied-feature: name='android.hardware.wifi' reason='requested android.permission.ACCESS_WIFI_STATE permission'
有谁知道如何使该功能成为可选功能?真的很感谢你的帮助,伙计们!
感谢CommonsWare的回答,问题确实是我的声明中的大写(facepalm)。
为:
<uses-feature android:required="false" android:name="android.hardware.WIFI"/>
好:
<uses-feature android:required="false" android:name="android.hardware.wifi"/>
对于小写字母,一切都按照文档记录。
现在,最令人沮丧的是:我怎么最终得到大写字母? - 我只是将其从Google Play列表中复制出来。所以,伙计们,在那里检查时要小心。你通常做什么? - 你建立APK,你上传到谷歌播放,你检查版本/权限/功能 - NOPE,这是陷阱!你在那里看到它是大写的。不要堕落:)
答案 0 :(得分:2)
<uses-feature android:required="false" android:name="android.hardware.wifi"/>