位置:GPS /networking权限:想要的话

我希望我的应用程序访问GPS /networking位置,如果它们是可用的。 我不希望Google Play过滤掉没有GPS /networking定位器的设备。

我应该怎么做?

目前我的清单上有这个:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-feature android:name="android.hardware.telephony" android:required="false" /> <uses-feature android:name="android.hardware.location" android:required="false" /> 

但是,我不确定这是否足够,因为http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions-features指出:

– 权限ACCESS_COARSE_LOCATION意味着android.hardware.location.networkandroid.hardware.locationfunction要求

– 许可* ACCESS_FINE_LOCATION意味着android.hardware.location.gpsandroid.hardware.location

我还必须添加<uses-feature android:name="android.hardware.location.network" android:required="false" /><uses-feature android:name="android.hardware.location.gps" android:required="false" />

为什么?

不应该<uses-feature android:name="android.hardware.location" android:required="false" />足够了吗?

Solutions Collecting From Web of "位置:GPS /networking权限:想要的话"

是的,您必须将其全部包含在内,因为权限存储在API中。 它们作为string存储在PackageManager类中 。 举个例子,你担心的是android.hardware.location 。 看看这个string是如何与你在Manifest中input的完全一样的。 Google Play会在过滤时查找这些完全匹配的内容。 所以android.hardware.location.gps实际上并不是android.hardware.location.gps的孩子,它只是为了组织而performance的。