Paketsichtbarkeit testen

Wenn Ihre App für die Ausführung ihrer Anwendungsfälle auf Interaktionen mit anderen Apps angewiesen ist, sollten Sie testen, wie sich die Änderungen an der Paketsichtbarkeit in Android 11 (API-Level 30) und höher auf Ihre App auswirken.

Außerdem finden Sie hier einige Vorschläge dazu, wie Sie die Verhaltensänderungen testen und Protokollmeldungen konfigurieren können, um genauer zu ermitteln, wie sich die Änderungen auf Ihre App auswirken könnten.

Verhaltensänderungen testen

So testen Sie, ob sich diese Verhaltensänderung auf Ihre App auswirkt:

  1. Installieren Sie Android Studio 3.6.1 oder höher.
  2. Installieren Sie die neueste Version von Gradle, die von Android Studio unterstützt wird.
  3. Legen Sie für Ihre App targetSdkVersion auf 30 oder höher fest.
  4. Fügen Sie das <queries>-Element nicht in die Manifestdatei Ihrer App ein.
  5. Rufen Sie getInstalledApplications() oder getInstalledPackages() auf. Bei beiden Methoden wird eine gefilterte Liste zurückgegeben, wenn der Vorgang erfolgreich war.
  6. Hier siehst du, welche Funktionen deiner App nicht funktionieren.
  7. Fügen Sie die entsprechenden <queries>-Einträge hinzu, um diese Funktionen zu korrigieren.

Logeinträge für die Paketfilterung konfigurieren

Wenn Sie mehr darüber erfahren möchten, wie sich die Standardsichtbarkeit von Apps auf Ihre App auswirkt, können Sie Protokollmeldungen für das Paketfiltern aktivieren. Wenn Sie eine Test-App oder eine debugfähige App in Android Studio entwickeln, ist diese Funktion im Systemprotokoll verfügbar. Alternativ können Sie den folgenden Befehl in einem Terminalfenster ausführen, um die Funktion manuell zu aktivieren:

adb shell pm log-visibility --enable PACKAGE_NAME

Wenn dann Pakete aus den Rückgabewerten eines PackageManager-Objekts herausgefiltert werden, wird in Logcat eine Meldung ähnlich der folgenden angezeigt:

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