Paketsichtbarkeit testen

Wenn Ihre App auf Interaktionen mit anderen Apps angewiesen ist, um ihre Anwendungsfälle zu erfüllen, ist es sinnvoll zu testen, wie sich die Änderungen an der Paketsichtbarkeit in Android 11 (API‑Level 30) und höher auf Ihre App auswirken.

Dieser Leitfaden enthält auch einige Vorschläge zum Testen der Verhaltensänderungen und hilft Ihnen, Logmeldungen so zu konfigurieren, dass Sie genauer nachvollziehen können, wie sich die Änderungen auf Ihre App auswirken.

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 aktuelle 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() an. Beide Methoden geben bei Erfolg eine gefilterte Liste zurück.
  6. Sehen Sie nach, welche Funktionen Ihrer App nicht funktionieren.
  7. Fügen Sie entsprechende <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 Standard-Sichtbarkeit von Apps auf Ihre App auswirkt, können Sie Logmeldungen für die Paketfilterung aktivieren. Wenn Sie eine Test-App oder eine App mit Debugging-Funktion in Android Studio entwickeln, bietet das Systemlog diese Möglichkeit. Andernfalls können Sie den folgenden Befehl in einem Terminalfenster ausführen, um sie manuell zu aktivieren:

adb shell pm log-visibility --enable PACKAGE_NAME

Wenn Pakete aus den Rückgabewerten eines PackageManager-Objekts herausgefiltert werden, wird in Logcat eine Meldung wie die folgende angezeigt:

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