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 inoltre alcuni suggerimenti su come testare le modifiche del 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.

Testa le modifiche del comportamento

Per verificare se questa modifica del comportamento influisce sulla tua app, procedi nel seguente modo:

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

Configurazione dei messaggi di log per il filtro dei pacchetti

Per ulteriori dettagli su come la visibilità predefinita delle app influisce sulla tua app, puoi abilitare 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 fornisce questa funzionalità. Altrimenti, puoi eseguire questo comando in una finestra del terminale per abilitarlo manualmente:

adb shell pm log-visibility --enable PACKAGE_NAME

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

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