Paketsichtbarkeit testen

Wenn deine App auf Interaktionen mit anderen Apps angewiesen ist, um ihre Anwendungsfälle abzuschließen, solltest du testen, wie sich Änderungen an der Paketsichtbarkeit in Android 11 (API-Level 30) und höher auf deine App auswirken.

Dieser Leitfaden enthält auch einige Vorschläge zum Testen der Verhaltensänderungen und hilft Ihnen, Lognachrichten zu konfigurieren, um genauer zu ermitteln, wie sich dies auf Ihre Anwendung auswirken könnte.

Verhaltensänderungen testen

Mit den folgenden Schritten können Sie testen, 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. Setze targetSdkVersion deiner App auf 30 oder höher.
  4. Füge das <queries>-Element nicht in die Manifestdatei deiner App ein.
  5. Rufen Sie getInstalledApplications() oder getInstalledPackages() an. Bei beiden Methoden wird nach Erfolg eine gefilterte Liste zurückgegeben.
  6. Du kannst prüfen, welche Funktionen deiner App nicht funktionieren.
  7. Fügen Sie geeignete <queries>-Einträge ein, um diese Features zu korrigieren.

Logeinträge für die Paketfilterung konfigurieren

Wenn Sie mehr darüber erfahren möchten, wie sich die Standardsichtbarkeit von Anwendungen auf Ihre Anwendung auswirkt, können Sie Lognachrichten für die Paketfilterung aktivieren. Wenn Sie eine Test-App oder eine debugfähige App in Android Studio entwickeln, können Sie diese Funktion im Systemlog nutzen. Andernfalls können Sie den folgenden Befehl in einem Terminalfenster ausführen, um ihn 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