Testowanie widoczności pakietu

Jeśli Twoja aplikacja opiera się na interakcjach z innymi aplikacjami w celu realizacji przypadków użycia, warto sprawdzić, jak zmiany w widoczności pakietów w Androidzie 11 (API na poziomie 30) i nowszych wpływają na Twoją aplikację.

W tym przewodniku znajdziesz też sugestie dotyczące testowania zmian w zachowaniu aplikacji oraz informacje o konfigurowaniu wiadomości w dzienniku, które pomogą Ci dokładniej określić, jak zmiany mogą wpłynąć na Twoją aplikację.

Testowanie zmian w działaniu

Aby sprawdzić, czy ta zmiana w działaniu ma wpływ na Twoją aplikację, wykonaj te czynności:

  1. Zainstaluj Androida Studio w wersji 3.6.1 lub nowszej.
  2. Zainstaluj najnowszą wersję Gradle obsługiwaną przez Android Studio.
  3. Ustaw targetSdkVersion aplikacji na 30 lub nowszą.
  4. Nie umieszczaj elementu <queries> w pliku manifestu aplikacji.
  5. Zadzwoń pod numer getInstalledApplications() lub getInstalledPackages(). Obie metody zwracają odfiltrowaną listę, jeśli operacja się powiedzie.
  6. Sprawdź, które funkcje aplikacji nie działają.
  7. Wprowadź odpowiednie wpisy <queries>, aby naprawić te funkcje.

Konfigurowanie komunikatów logu na potrzeby filtrowania pakietów

Aby dowiedzieć się więcej o tym, jak domyślna widoczność aplikacji wpływa na Twoją aplikację, możesz włączyć komunikaty dziennika dotyczące filtrowania pakietów. Jeśli tworzysz aplikację testową lub aplikację z możliwością debugowania w Android Studio, dziennik systemowy zapewnia tę funkcję. W przeciwnym razie możesz włączyć go ręcznie, uruchamiając to polecenie w oknie terminala:

adb shell pm log-visibility --enable PACKAGE_NAME

Gdy pakiety zostaną odfiltrowane z wartości zwracanych obiektu PackageManager, w Logcat zobaczysz komunikat podobny do tego:

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