2012-07-12 17 views
9

Quiero que mi aplicación acceda a las ubicaciones de GPS/red si están disponibles. No quiero que Google Play filtre dispositivos sin GPS/Localizador de red.Ubicación: GPS/permisos de red: si está disponible

¿Cómo debo hacer esto?

Actualmente tengo esto en mi manifiesta:

<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" /> 

Sin embargo, no estoy seguro de que eso es suficiente, porque http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions-features establece que:

-permission ACCESS_COARSE_LOCATION implica android.hardware.location.network y android.hardware.location características requisito

-permission * ACCESS_FINE_LOCATION implica android.hardware.location.gps y android.hardware.location

¿También tengo que añadir <uses-feature android:name="android.hardware.location.network" android:required="false" /> y <uses-feature android:name="android.hardware.location.gps" android:required="false" />?

¿Por qué?

¿No debería ser suficiente <uses-feature android:name="android.hardware.location" android:required="false" />?

+0

explícitamente dice y enfatiza el "y", así que supongo que necesitaría poner todas las funciones de usos. –

Respuesta

3

Sí, debe incluirlos todos debido a la forma en que se almacenan los permisos en la API. Se almacenan como cadenas en el PackageManager class. Tomemos, por ejemplo, el que le preocupa, android.hardware.location. Vea cómo la cadena es exactamente igual a la que escribe en el Manifiesto. Google Play busca estas coincidencias exactas al filtrar. Por lo tanto, android.hardware.location.gps no es un hijo de android.hardware.location, solo se representa así por el bien de la organización.

Cuestiones relacionadas