Permisos que solo se usan en controladores predeterminados

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.

Captura de pantalla de la configuración de apps predeterminadas
Figura 1: Pantalla de configuración del sistema que muestra la lista de controladores predeterminados de un dispositivo.
Captura de pantalla de la configuración de la app de SMS predeterminada
Figura 2: Pantalla de configuración del sistema que muestra cómo cambiar el controlador predeterminado de SMS.

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 función 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.

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.

Captura de pantalla que muestra un diálogo para el usuario
Figura 3: Mensaje en el que se le pregunta al usuario si quiere cambiar el controlador de SMS predeterminado de su dispositivo.

En el siguiente código de ejemplo, se muestra 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);