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:
- Zainstaluj Androida Studio w wersji 3.6.1 lub nowszej.
- Zainstaluj najnowszą wersję Gradle obsługiwaną przez Android Studio.
- Ustaw parametr
targetSdkVersion
aplikacji na wartość30
lub wyższą. - Nie umieszczaj elementu
<queries>
w pliku manifestu aplikacji. - Zadzwoń pod numer
getInstalledApplications()
lubgetInstalledPackages()
. Jeśli obie metody zakończą sukces, zwróci przefiltrowaną listę. - Zobacz, które funkcje aplikacji nie działają.
- 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