Jeśli Twoja aplikacja opiera się na interakcjach z innymi aplikacjami w celu realizacji przypadków użycia, warto sprawdzić, jak zmiany w widoczności pakietów w Androidzie 11 (API na poziomie 30) i nowszych wpływają na Twoją aplikację.
W tym przewodniku znajdziesz też sugestie dotyczące testowania zmian w zachowaniu aplikacji oraz informacje o konfigurowaniu wiadomości w dzienniku, które pomogą Ci dokładniej określić, jak zmiany mogą wpłynąć na Twoją aplikację.
Testowanie zmian w działaniu
Aby sprawdzić, czy ta zmiana w działaniu ma wpływ na Twoją aplikację, wykonaj te czynności:
- Zainstaluj Androida Studio w wersji 3.6.1 lub nowszej.
- Zainstaluj najnowszą wersję Gradle obsługiwaną przez Android Studio.
- Ustaw
targetSdkVersion
aplikacji na30
lub nowszą. - Nie umieszczaj elementu
<queries>
w pliku manifestu aplikacji. - Zadzwoń pod numer
getInstalledApplications()
lubgetInstalledPackages()
. Obie metody zwracają odfiltrowaną listę, jeśli operacja się powiedzie. - 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 dziennika dotyczące filtrowania pakietów. Jeśli tworzysz aplikację testową lub aplikację z możliwością debugowania w Android Studio, dziennik systemowy zapewnia tę funkcję. W przeciwnym razie możesz włączyć go ręcznie, uruchamiając to polecenie w oknie terminala:
adb shell pm log-visibility --enable PACKAGE_NAME
Gdy pakiety zostaną odfiltrowane z wartości zwracanych obiektu PackageManager
, w Logcat zobaczysz komunikat podobny do tego:
I/AppsFilter: interaction: PackageSetting{7654321 \ com.example.myapp/12345} -> PackageSetting{...} BLOCKED