2012-05-22 18 views
8

Mi aplicación proporciona al usuario opcional acceso a SMS y llamadas telefónicas. He utilizado:Permiso de Android, requerido = "falso", error

<uses-permission android:name="android.permission.READ_PHONE_STATE" android:required="false"></uses-permission> 
<uses-permission android:name="android.permission.SEND_SMS" android:required="false"></uses-permission> 
<uses-permission android:name="android.permission.CALL_PHONE" android:required="false"></uses-permission> 

Google Play no expone esta aplicación a dispositivos que no tienen acceso a la red celular. Parece que el parámetro required = false no está haciendo su trabajo.

¿Esto es un error? ¿Hay algo más que pueda hacer?

Respuesta

18

¿Por qué está poniendo el parámetro requerido dentro de un permiso? El androide: necesaria parámetro se utiliza cuando se declara una función, que yo sepa ... Por ejemplo:

<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" /> 

Creo que lo que quería hacer es añadir uses-feature declaraciones con android:required="false".

Utilice esta tabla para actualizar su manifiesto: http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions-features

<uses-feature android:name="android.hardware.telephony" android:required="false" /> 
+0

porque algunos usos-featu Es porque google play genera permisos de uso que afectan el filtrado de algunos dispositivos. énfasis en algunos. –

+0

@IncrediApp Gracias por compartir el enlace. Esa tabla tiene un número limitado de mapeo de características de permisos. ¿Qué pasa con los permisos en el manifiesto que no figuran en la tabla de su enlace? – LoveForDroid

4

se puede ver todos los permisos en la ficha permisos en el archivo AndroidManifest.xml.

0

No necesitas utilizar la propiedad android:required en <uses-permission sólo funciona para <uses-feature, véase la definición de

utiliza en funciones: Para controlar el filtro, siempre declarar explícitamente las características de hardware en elementos , en lugar de confiar en Google Play en , "descubre" los requisitos en los elementos <uses-permission>. Luego, si desea deshabilitar el filtrado de una característica en particular, puede agregar un atributo android:required="false" a la declaración.

Ésta es la lista de permisos que implica características de hardware:

https://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions-features

Sobre la base de sus elementos:

es probable que tenga que añadir solamente:

<uses-feature android:name="android.hardware.telephony" android:required="false" /> 
Cuestiones relacionadas