Testowanie widoczności pakietu

Jeśli do realizacji swoich celów Twoja aplikacja bazuje na interakcjach z innymi aplikacjami, warto sprawdzić, jak zmiany widoczności pakietów na Androidzie 11 (poziom interfejsu API 30) i nowszym wpływają na aplikację.

Ten przewodnik zawiera też kilka sugestii na temat testowania zmian w działaniu usługi oraz pomaga skonfigurować komunikaty logu w celu bardziej szczegółowego określenia, jak może to wpłynąć na aplikację.

Testowanie zmian w działaniu

Aby sprawdzić, czy ta zmiana działania wpływa 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 parametr targetSdkVersion aplikacji na wartość 30 lub wyższą.
  4. Nie umieszczaj elementu <queries> w pliku manifestu aplikacji.
  5. Zadzwoń pod numer getInstalledApplications() lub getInstalledPackages(). Jeśli obie metody zakończą sukces, zwróci przefiltrowaną listę.
  6. Zobacz, które funkcje aplikacji nie działają.
  7. Aby naprawić te funkcje, wpisz odpowiednie wpisy <queries>.

Skonfiguruj komunikaty logu dotyczące 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ę z możliwością debugowania, odpowiednią funkcję znajdziesz w dzienniku systemowym. Możesz też uruchomić poniższe polecenie w oknie terminala, aby włączyć je ręcznie:

adb shell pm log-visibility --enable PACKAGE_NAME

Potem za każdym razem, gdy pakiety zostaną odfiltrowane z wartości zwracanych obiektu PackageManager, w Logcat pojawi się komunikat podobny do tego:

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