2011-05-17 4 views
7

En mi aplicación, intento utilizar la información de ubicación si está disponible. Por lo tanto, tengo esos permisos en mi manifiesto:Evite el filtrado de Android Market en el uso opcional de la ubicación

p.

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

NOTA: NO tengo una ubicación, que es la que entendí que se utilizó para filtrar en Android Market.

Cuando subo al mercado Android consigo este informó:

Este apk requiere 4 características que ser utilizados para el filtrado de Android Market android.hardware.location.network android.hardware.location android.hardware.location.gps android.hardware.touchscreen

la que me sugiere que sólo se mostrará a los dispositivos que tienen ubicación y location.network y gps ja rdware.

Pero mi uso de la ubicación es opcional y la aplicación funcionará si no está disponible.

¿Debo eliminar esos permisos de mi manifiesto (obtendré excepciones cuando intento usarlo?)?

¿Hay alguna manera de dejar los permisos y evitar el filtrado de Android Market basado en ellos?

+0

He intentado agregar una función explícita de usos, pero haciéndola opcional así: pero eso no fue así Cambia cualquier cosa. –

Respuesta

3

Mi aplicación tiene el mismo problema. Supongo que esto se debe a que el minSdkVersion es 4, es decir, Android 1.6. Desde el <uses-feature> documentation:

En general, si la aplicación está diseñada para funcionar con Android 1.6 y versiones anteriores, el androide: necesaria atributo no está disponible en la API y Android Market asume que se requieren cualquiera y todas las declaraciones.

Esto tiene sentido porque cuando se declara como una característica opcional , que se supone que utilizar el método de la hasSystemFeature()PackageManager para comprobar si el dispositivo actual tiene esa característica particular. Sin embargo, ¡este método en sí solo está disponible desde el nivel 5 de la API!

+0

Buen descubrimiento. Problema molesto Ojalá hubieran dicho más claramente que el atributo 'android: required' no se introdujo hasta API5 en lugar de tener que profundizar en los documentos para encontrar esa cita. En la parte superior de la página, solo dicen que la etiqueta '' fue introducida en API4, pero no mencionan que el atributo 'required' no fue hasta API5. –

Cuestiones relacionadas