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:
- Zainstaluj Androida Studio w wersji 3.6.1 lub nowszej.
- Zainstaluj najnowszą wersję Gradle obsługiwaną przez Androida Studio.
- Ustaw
targetSdkVersionaplikacji na30lub wyższy. - Nie dodawaj elementu
<queries>do pliku manifestu aplikacji. - Wywołaj
getInstalledApplications()lubgetInstalledPackages(). Jeśli operacja się powiedzie, obie metody zwrócą przefiltrowaną listę. - Sprawdź, które funkcje aplikacji nie działają.
- 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