Filtrado de visibilidad de paquetes en Android

Cuando una app se orienta a Android 11 (nivel de API 30) o versiones posteriores y busca información sobre las otras apps que se instalaron en un dispositivo, el sistema filtra esta información de forma predeterminada. La visibilidad limitada de paquetes reduce la cantidad de apps que se muestran como instaladas en un dispositivo desde la perspectiva de tu app.

Este comportamiento de filtrado permite minimizar la cantidad de información potencialmente sensible que tu app no necesita para entregar sus casos de uso, pero a los que todavía puede acceder. Además, la visibilidad filtrada de paquetes permite que las tiendas de aplicaciones, como Google Play, evalúen la privacidad y la seguridad que tu app les brinda a los usuarios. Por ejemplo, Google Play considera que la lista de apps instaladas son datos personales y sensibles del usuario.

La visibilidad limitada de la app afecta los resultados que se muestran de los métodos que proporcionan información sobre otras apps, como queryIntentActivities(), getPackageInfo() y getInstalledApplications(). La visibilidad limitada también afecta las interacciones explícitas con otras apps, como cuando se pretende iniciar su servicio.

Algunos paquetes todavía son visibles automáticamente. Tu app siempre puede ver estos paquetes en sus búsquedas de otras apps instaladas. Si deseas ver otros paquetes, declara la necesidad de tu app para aumentar la visibilidad de paquetes con el elemento <queries>. En la página de casos de uso, se proporcionan ejemplos de situaciones comunes de interacción con la app.

En los casos poco comunes en los que el elemento <queries> no brinda la visibilidad adecuada de paquetes, puedes usar el permiso QUERY_ALL_PACKAGES. Si publicas tu app en Google Play, su uso de este permiso está sujeto a aprobación en función de una política futura.

Recursos adicionales

Para obtener más información sobre la visibilidad de paquetes en Android, consulta los siguientes materiales:

Entradas de blog