Varias funciones principales del dispositivo, como leer registros de llamadas y enviar mensajes SMS, dependen del acceso a información sensible del usuario. Para proteger la privacidad y brindarles a los usuarios más control sobre la información que proporcionan a las apps que tienen en sus dispositivos, Google Play restringe el acceso de las apps a los grupos de permisos relacionados con llamadas y mensajes.
Si distribuyes tu app en Google Play Store y quieres acceder a información sensible del usuario relacionada con registros de llamadas y mensajes SMS, es necesario que tu app esté registrada como el controlador predeterminado del usuario para la función principal del dispositivo relacionada con ese permiso, a menos que la app esté incluida en uno de los casos de excepción que aparecen en el Centro de ayuda de Play Console. Por ejemplo, para acceder a los permisos relacionados con llamadas, tu app debe estar registrada como el controlador predeterminado del teléfono o de Asistente del usuario, a menos que cumpla un caso de excepción.
En esta guía se proporciona una breve descripción general de cómo los usuarios acceden a los controladores predeterminados en dispositivos con tecnología de Android. También se revisan los requisitos que una app debe cumplir a fin de ser apta para funcionar como un controlador predeterminado. Finalmente se describe paso a paso el proceso para obtener el consentimiento del usuario y convertirse así en un controlador predeterminado.
Para obtener más información sobre los controladores predeterminados y cómo manejar los permisos en una app que está disponible en Play Store, consulta la guía de políticas de permisos.
Consulta y cambia el conjunto de controladores predeterminados
Android permite a los usuarios configurar controladores predeterminados para varios casos de uso principales, como realizar llamadas telefónicas, enviar mensajes SMS y proporcionar capacidades de tecnología de accesibilidad.
En Android, la app de Configuración incluye una pantalla que muestra a los usuarios qué apps funcionan actualmente como controladores predeterminados para las funciones principales del dispositivo, como se muestra en la Figura 1. Desde esta pantalla, los usuarios pueden cambiar el controlador predeterminado para una función determinada, como se muestra en la Figura 2.
Sigue los requisitos para los controladores predeterminados
Dada la información sensible del usuario a la que acceden las apps cuando se usan como controlador predeterminado, tu app no puede convertirse en un controlador predeterminado si no cumple con los siguientes requisitos de ficha y funciones principales de Play Store:
- Tu app debe poder realizar la función para la que es un controlador predeterminado. Por ejemplo, un controlador de SMS predeterminado debería poder enviar mensajes de texto.
- Tu app debe proporcionar una política de privacidad.
- Tu app debe dejar en claro cuál es su funcionalidad principal en la descripción de Play Store. Por ejemplo, un controlador de teléfono predeterminado debe describir las funciones relacionadas con el teléfono en la descripción.
- Tu app debe declarar permisos que sean apropiados para su caso de uso. Para obtener más detalles sobre qué permisos puedes declarar como un controlador determinado, consulta la guía sobre el uso de SMS o grupos de permisos de registro de llamadas en el Centro de ayuda de Play Console.
- Tu app debe solicitar convertirse en un controlador predeterminado antes de solicitar los permisos asociados. Por ejemplo, una app debe solicitar convertirse en el controlador de SMS predeterminado antes de solicitar el permiso
READ_SMS
.
Solicita el consentimiento del usuario
Luego de asegurarte de que tu app cumpla con cada uno de los requisitos necesarios para convertirse en un controlador predeterminado, puedes agregar lógica para mostrar el diálogo que aparece en la Figura 3. En este diálogo, se le pide al usuario que configure tu app como controlador predeterminado para un caso de uso específico.
En el siguiente código de ejemplo, se incluye la lógica necesaria para mostrar un mensaje que le pide al usuario que cambie el controlador de SMS predeterminado de su dispositivo:
Kotlin
val setSmsAppIntent = Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT) setSmsAppIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, packageName) startActivityForResult(setSmsAppIntent, your-result-code)
Java
Intent setSmsAppIntent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT); setSmsAppIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, getPackageName()); startActivityForResult(setSmsAppIntent, your-result-code);