在我的应用程序中,我尝试使用位置信息(如果可用)。因此,我的清单中有这些权限:
e.g.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
注意:我没有 for 位置,据我所知,该标签用于在 Android Market 中进行过滤。
当我上传到 Android 市场时,我收到以下报告:
这个 apk 需要 4 个功能
用于Android Market过滤
android.hardware.location.network
android.hardware.location
android.hardware.location.gps
android.hardware.touchscreen
对我来说,这表明它只会显示具有位置和位置网络和 GPS 硬件的设备。
但我对位置的使用是可选的,如果位置不可用,该应用程序也可以运行。
我是否应该从清单中删除这些权限(当我尝试使用它时会遇到异常吗?)?
有没有办法保留权限并避免基于它们的 Android Market 过滤?
我的应用程序也有同样的问题。我想这是因为minSdkVersion
是4,即Android 1.6。来自<uses-feature>文档:
一般来说,如果您的应用程序设计为在 Android 1.6 及更早版本上运行,则 android:required 属性在 API 中不可用,并且 Android Market 假定所有声明都是必需的。
这是有道理的,因为当您将某个功能声明为optional,你应该使用hasSystemFeature()方法从PackageManager
检查当前设备是否具有该特定功能。但是,此方法本身仅适用于 API 级别 5!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)