Testowanie widoczności pakietu

Jeśli do obsługi przypadków użycia Twoja aplikacja wymaga interakcji z innymi aplikacjami, warto sprawdzić, jak zmienia się widoczność pakietu w Androidzie 11 (poziom interfejsu API 30) i nowszych wersjach.

Ten przewodnik zawiera też sugestie dotyczące testowania zmian w działaniu i pomaga skonfigurować komunikaty logu w celu dokładniejszego określenia, jak może to wpłynąć na Twoją aplikację.

Testowanie zmian w działaniu

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

  1. Zainstaluj Android Studio 3.6.1 lub nowszą wersję.
  2. Zainstaluj najnowszą wersję Gradle obsługiwaną przez Android Studio.
  3. Ustaw wartość targetSdkVersion aplikacji na 30 lub wyższą.
  4. Nie umieszczaj elementu <queries> w pliku manifestu aplikacji.
  5. Zadzwoń pod numer getInstalledApplications() lub getInstalledPackages(). Obie metody, które okażą się skuteczne, zwracają przefiltrowaną listę.
  6. Zobacz, 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ć wiadomości logu na potrzeby filtrowania pakietów. Jeśli tworzysz w Android Studio aplikację testową lub aplikację możliwą do debugowania, o tym pomoże dziennik systemowy. Możesz też uruchomić to polecenie w oknie terminala, by włączyć je ręcznie:

adb shell pm log-visibility --enable PACKAGE_NAME

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

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