Testare il comportamento di visibilità del pacchetto

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

Questa guida fornisce anche alcuni suggerimenti su come testare le modifiche del comportamento e consente di configurare i messaggi di log per determinare l'impatto sulla tua app.

Testa le modifiche del comportamento

Per verificare se questa modifica del comportamento influisce sulla tua app, completa la seguenti passaggi:

  1. Installa Android Studio 3.6.1 o versioni successive.
  2. Installa la versione più recente di Gradle supportata da Android Studio.
  3. Imposta targetSdkVersion dell'app su 30 o versioni successive.
  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 funzionano.
  7. Inserisci voci <queries> appropriate per correggere queste funzionalità.

Configurazione dei messaggi di log per il filtro dei pacchetti

Per scoprire ulteriori dettagli su come la visibilità predefinita delle app influisce sulle tue puoi abilitare i messaggi di log per il filtro dei pacchetti. Se stai sviluppando un'app di test o un'app di debug in Android Studio, il log di sistema fornisce questa funzionalità. In caso contrario, puoi eseguire il seguente comando in una finestra del terminale per attivarlo manualmente:

adb shell pm log-visibility --enable PACKAGE_NAME

Quindi, ogni volta che i pacchetti vengono esclusi dal reso di un oggetto PackageManager , viene visualizzato un messaggio simile al seguente in Logcat:

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