2012-02-15 12 views
35

Muchas características de Android requieren un permiso de uso para establecerse en el manifiesto. Estos valores luego determinan qué dispositivos los verán en Market. Sin embargo, ¿qué se debe hacer si la característica es opcional ... si pudiera ejecutarse en muchos dispositivos, pero solo requeriría el permiso de unos pocos?Permisos opcionales para que una aplicación pueda mostrarse en todos los dispositivos y habilitar funciones opcionales en algunos?

Un ejemplo: digamos una aplicación con múltiples funciones y una buena cantidad de contenido, y proporciona un botón para llamar a la empresa. Esa es una buena característica conveniente, en lugar de anotar el número o copiarlo y pegarlo en la aplicación del teléfono. Sin embargo, no es esencial.

Si se utiliza esa característica y se agrega el permiso de telefonía a la aplicación, entonces eso está muy bien para los teléfonos, pero ninguna tableta vería la aplicación en Market.

¿Qué es una solución general para este problema?

Se pueden hacer varias aplicaciones con diferentes permisos, pero hay un mundo de problemas con ese enfoque (tiempo de desarrollo adicional, dificultad para mantener el mantenimiento constante, revisiones y clasificaciones divididas en diferentes aplicaciones, y si hay varios tipos diferentes de opciones opcionales permisos que una aplicación diferente pueden ser necesarios para cada combinación).

La aplicación podría verificar mediante programación si la característica está disponible y habilitarla o deshabilitarla según el dispositivo. El problema con eso es que si la aplicación no tiene el permiso, se bloqueará si intenta usar esa característica, y si tiene el permiso, algunos dispositivos no podrán encontrar la aplicación en el Mercado.

En algunos casos, es posible que se eliminen por completo las características no esenciales de la aplicación para evitar el problema. Tampoco es una gran solución, ya que esas características SERÍAN "agradables de tener" en los dispositivos que lo soportan.

Sí, soy consciente Is it possible to have "optional" permissions in Android? es una pregunta similar. Espero información más reciente y otras soluciones alternativas que la gente ha encontrado, si hay alguna ... ¿cuál es la solución a este problema? ¿Alguien tiene otros enfoques además de los que he enumerado anteriormente?

Respuesta

73

¿Qué es una solución general para este problema?

Para ese problema específico, agregue <uses-feature android:name="android.hardware.telephony" android:required="false"/> a su manifiesto, para indicar que this feature is optional. Luego puede usar PackageManager y hasSystemFeature() para determinar si un dispositivo tiene la característica no requerida en tiempo de ejecución.

+3

Así que el permiso de usos no se puede hacer opcional, pero en muchos casos se usa, se puede agregar, que se puede hacer opcional y que es la principal fuente de información del mercado para el filtrado. ¡Excelente! Todo tiene mucho más sentido después de leer el enlace que proporcionó, gracias. –

+0

@ChadSchultz: su análisis es directo. Solo desearía que el material al que me había vinculado fuese un poco más prominente que su ubicación actual ... :-( – CommonsWare

+3

Para las personas que buscan saber si una función está disponible, sigan ese hilo: http://stackoverflow.com/a/ 5264328/693752 – Snicolas

Cuestiones relacionadas