Testare il comportamento di visibilità del pacchetto

Se la tua app si basa sulle interazioni con altre app per completare i suoi casi d'uso, è utile testare in che modo le modifiche alla visibilità dei pacchetti in Android 11 (livello API 30) e versioni successive influiscono sulla tua app.

Questa guida fornisce anche alcuni suggerimenti su come testare le modifiche al comportamento e ti aiuta a configurare i messaggi di log per determinare a un livello più granulare in che modo la tua app potrebbe essere interessata.

Testare le modifiche al comportamento

Per verificare se questa modifica al comportamento influisce sulla tua app, completa i seguenti passaggi:

  1. Installa Android Studio 3.6.1 o versioni successive.
  2. Installa l'ultima versione di Gradle supportata da Android Studio.
  3. Imposta targetSdkVersion della tua app su 30 o versioni successive.
  4. Non includere l'elemento <queries> nel file manifest dell'app.
  5. Chiama getInstalledApplications() o getInstalledPackages(). Entrambi i metodi restituiscono un elenco filtrato se hanno esito positivo.
  6. Scopri quali funzionalità della tua app non funzionano.
  7. Inserisci le voci <queries> appropriate per correggere queste funzionalità.

Configurare i messaggi di log per il filtro dei pacchetti

Per scoprire maggiori dettagli su come la visibilità predefinita delle app influisce sulla tua app, puoi attivare i messaggi di log per il filtro dei pacchetti. Se stai sviluppando un'app di test o un'app di cui è possibile eseguire il debug in Android Studio, il log di sistema ti offre questa funzionalità per te. In caso contrario, puoi eseguire il seguente comando in una finestra del terminale per attivarlo manualmente:

adb shell pm log-visibility --enable PACKAGE_NAME

Dopodiché, ogni volta che i pacchetti vengono esclusi dai valori restituiti di un oggetto PackageManager, in Logcat viene visualizzato un messaggio simile al seguente:

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