He leído sobre la API del proveedor de contactos, pero no me queda claro cómo se regulan las interacciones de las aplicaciones. Si una aplicación almacena los contactos en una cuenta específica para esa aplicación, ¿puede cualquier otra aplicación a la que se le dé permiso para acceder a los contactos seguir leyendo la información de esos contactos (es decir, de la otra aplicación)? ¿O cada aplicación tiene acceso sólo a sus propias cuentas y a los contactos introducidos manualmente a través de la aplicación (por defecto) de Contactos?
Respuestas
¿Demasiados anuncios?Sí, todos los datos almacenados en el Proveedor de Contactos son visibles para todas las aplicaciones con READ_CONTACTS
y si el usuario ha dado el permiso. De la documentación oficial de Android Developers - Recuperar una lista de contactos ,
Solicitar permiso para leer al proveedor
Para realizar cualquier tipo de búsqueda en el proveedor de contactos, su aplicación debe tener
READ_CONTACTS
permiso. [...]
Por ello, las aplicaciones de contactos pueden mostrar generalmente varios tipos de cuentas para la misma persona (por ejemplo, Google, WhatsApp, Microsoft), y también por qué las aplicaciones de mensajería social (por ejemplo, WhatsApp) y las aplicaciones de redes sociales (por ejemplo, Facebook, Twitter, Instagram) pueden detectar las cuentas registradas basándose en los números de teléfono y/o los correos electrónicos almacenados en el proveedor de contactos.
Cada vez que empiezas a usar una aplicación, te pide permisos para realizar las tareas que se supone que debe hacer la aplicación, como el acceso a la cámara, a los contactos, etc. Estos permisos son específicos de la aplicación. Puedes ver los permisos cuando vas a la página de tu teléfono configuración -> privacidad -> gestionar permisos .
Si lo deseas, puedes revocar los permisos de cualquier aplicación que creas que no debería tener ese permiso específico: no perjudicará a la aplicación en sí, y cuando la aplicación necesite ese acceso de nuevo, te lo pedirá.