Testowanie widoczności pakietu

Jeśli Twoja aplikacja wymaga interakcji z innymi aplikacjami, aby realizować swoje przypadki użycia, warto przetestować, jak wpływają na nią zmiany widoczności pakietów w Androidzie 11 (API na poziomie 30) i nowszych wersjach.

W tym przewodniku znajdziesz też sugestie dotyczące testowania zmian w zachowaniu oraz wskazówki, jak skonfigurować komunikaty logu, aby określić na bardziej szczegółowym poziomie, jak może to wpłynąć na aplikację.

Testowanie zmian w działaniu

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

  1. Zainstaluj Android 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 wyższą.
  4. Nie dodawaj elementu <queries> do pliku manifestu aplikacji.
  5. Zadzwoń pod numer getInstalledApplications() lub getInstalledPackages(). Obie metody zwracają przefiltrowaną listę, gdy zakończą się powodzeniem.
  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 logu dotyczące filtrowania pakietów. Jeśli tworzysz aplikację testową lub aplikację z możliwością debugowania w Android Studio, log systemowy zapewnia tę funkcję. W przeciwnym razie możesz uruchomić w oknie terminala to polecenie, aby włączyć go ręcznie:

adb shell pm log-visibility --enable PACKAGE_NAME

Następnie, gdy pakiety zostaną odfiltrowane z wartości zwracanych przez obiekt PackageManager, w Logcat pojawi się komunikat podobny do tego:

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