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:
- Zainstaluj Android Studio w wersji 3.6.1 lub nowszej.
- Zainstaluj najnowszą wersję Gradle obsługiwaną przez Android Studio.
- Ustaw
targetSdkVersionaplikacji na30lub wyższą. - Nie dodawaj elementu
<queries>do pliku manifestu aplikacji. - Zadzwoń pod numer
getInstalledApplications()lubgetInstalledPackages(). Obie metody zwracają przefiltrowaną listę, gdy zakończą się powodzeniem. - Sprawdź, które funkcje aplikacji nie działają.
- 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