避免在可选使用位置的情况下过滤Android电子市场
在我的应用程序中,如果可用,我尝试使用位置信息。 因此,我在清单中拥有这些权限:
例如
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
注意:我没有位置信息,这是我了解的标签用于Android电子市场中的过滤。
当我上传到Android市场时,我得到这个报告:
这个apk请求4个将用于Android Market过滤的功能android.hardware.location.network android.hardware.location android.hardware.location.gps android.hardware.touchscreen
对我来说这表明它只会显示具有位置和location.network和gps硬件的设备。
但我使用的位置是可选的,如果它不是可用的,该应用程序将工作。
我是否应该从清单中删除这些权限(当我尝试使用它时是否会收到异常?)?
有没有办法让他们离开权限并避免基于他们的Android Market过滤?
我的应用程序有同样的问题。 我想这是因为minSdkVersion
是4,即Android 1.6。 从<uses-feature>
文档中:
通常,如果您的应用程序设计为在Android 1.6及更早版本上运行,则android:required属性在API中不可用,Android Market假定需要任何和所有声明。
这是有道理的,因为当你声明一个特性为可选时,你应该使用PackageManager
的hasSystemFeature()
方法来检查当前设备是否具有该特性。 但是,此方法本身仅适用于API Level 5!
上一篇: Avoid Android Market filtering on optional use of location