Testowanie widoczności pakietu

Jeśli Twoja aplikacja korzysta z interakcji z innymi aplikacjami, aby realizować przypadki użycia, warto sprawdzić, jak zmiany widoczności pakietów w Androidzie 11 (poziom API 30) i nowszych wpływają na Twoją aplikację.

W tym przewodniku znajdziesz też kilka sugestii dotyczących testowania zmian w działaniu aplikacji oraz informacje o konfigurowaniu komunikatów logu, aby dokładniej określić, jak te zmiany mogą wpływać na Twoją aplikację.

Testowanie zmian w działaniu aplikacji

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

  1. Zainstaluj Androida Studio w wersji 3.6.1 lub nowszej.
  2. Zainstaluj najnowszą wersję Gradle obsługiwaną przez Androida Studio.
  3. Ustaw targetSdkVersion aplikacji na 30 lub wyższy.
  4. Nie dodawaj elementu <queries> do pliku manifestu aplikacji.
  5. Wywołaj getInstalledApplications() lub getInstalledPackages(). Jeśli operacja się powiedzie, obie metody zwrócą przefiltrowaną listę.
  6. Sprawdź, które funkcje aplikacji nie działają.
  7. Aby naprawić te funkcje, dodaj odpowiednie <queries> wpisy.

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 na potrzeby filtrowania pakietów. Jeśli tworzysz aplikację testową lub aplikację z możliwością debugowania w Androidzie Studio, log systemowy zapewnia tę funkcję. W przeciwnym razie możesz ręcznie włączyć tę funkcję, uruchamiając to polecenie w oknie terminala:

adb shell pm log-visibility --enable PACKAGE_NAME

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

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