I want my application to access GPS/Network locations if they are availabe. I don't want Google Play to filter out devices without GPS/Network locator.
How should I do this?
Currently I have this on my manifest:
<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" />
However, I am not sure it that is enough, because http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions-features states that:
-permission ACCESS_COARSE_LOCATION implies android.hardware.location.network
and
android.hardware.location
features requirement
-permission *ACCESS_FINE_LOCATION implies android.hardware.location.gps
and
android.hardware.location
Do I also have to add
<uses-feature android:name="android.hardware.location.network" android:required="false" />
and
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
?
Why?
Shouldn't <uses-feature android:name="android.hardware.location" android:required="false" />
be enough?
Yes, you must include them all because of the way that the permissions are stored in the API. They are stored as Strings in the PackageManager class. Take for example the one you're concerned about, android.hardware.location. See how it the string is exactly the same as what you type in the Manifest. Google Play looks for these exact matches when filtering. So android.hardware.location.gps
is not actually a child of android.hardware.location
, it is just represented like that for the sake of organization.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With