Cómo probar el comportamiento de visibilidad de paquetes

Si tu app depende de interacciones con otras apps para completar sus casos de uso, es útil probar cómo la afectan los cambios en la visibilidad de paquetes en Android 11 (nivel de API 30) y versiones posteriores.

Esta guía también brinda algunas sugerencias sobre cómo probar los cambios de comportamiento y te ayuda a configurar mensajes de registro para determinar, con un nivel más detallado, cómo podría verse afectada tu app.

Cómo probar los cambios de comportamiento

Para probar si este cambio de comportamiento afecta tu app, sigue estos pasos:

  1. Instala Android Studio 3.6.1 o una versión posterior.
  2. Instala la versión más reciente de Gradle que admita Android Studio.
  3. Establece el elemento targetSdkVersion de tu app en 30 o un valor superior.
  4. No incluyas el elemento <queries> en el archivo de manifiesto de tu app.
  5. Llama al método getInstalledApplications() o getInstalledPackages(). Ambos métodos muestran una lista filtrada cuando funcionan.
  6. Descubre qué funciones de tu app no funcionan.
  7. Ingresa entradas <queries> apropiadas para corregir esas funciones.

Cómo configurar mensajes de registro para filtrar paquetes

A fin de descubrir más detalles sobre la manera en la que la visibilidad predeterminada de las apps afecta la tuya, puedes habilitar los mensajes de registro para filtrar paquetes. Si estás desarrollando una app de prueba o depurable en Android Studio, el registro del sistema te brinda esta capacidad. De lo contrario, puedes ejecutar el siguiente comando en una ventana de terminal para habilitarla de forma manual:

adb shell pm log-visibility --enable PACKAGE_NAME

Luego, cada vez que se filtran paquetes de los valores que se muestran de un objeto PackageManager, aparece un mensaje similar al siguiente en Logcat:

I/AppsFilter: interaction: PackageSetting{7654321 \
  com.example.myapp/12345} -> PackageSetting{...} BLOCKED