Jeśli Twoja aplikacja korzysta z interakcji z innymi aplikacjami, aby realizować swoje przypadki użycia, warto przetestować, jak zmiany w widoczności pakietu w Androidzie 11 (poziom API 30) i wyższych wpływają na Twoją aplikację.
Ten przewodnik zawiera też sugestie dotyczące testowania zmian w działaniu i pomaga skonfigurować komunikaty logu w celu dokładniejszego określenia, jak może to wpłynąć na Twoją aplikację.
Testowanie zmian zachowania
Aby sprawdzić, czy ta zmiana zachowania ma wpływ na Twoją aplikację, wykonaj te czynności:
- Zainstaluj Android Studio 3.6.1 lub nowszą wersję.
- Zainstaluj najnowszą wersję Gradle obsługiwaną przez Android Studio.
- Ustaw wartość
targetSdkVersion
aplikacji na30
lub wyższą. - Nie dodawaj elementu
<queries>
do pliku manifestu aplikacji. - Zadzwoń pod numer
getInstalledApplications()
lubgetInstalledPackages()
. Obie metody zwracają odfiltrowaną listę, jeśli operacja się powiedzie. - Zobacz, 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ć wiadomości dziennika do filtrowania pakietów. Jeśli w Android Studio tworzysz aplikację testową lub aplikację z możliwością debugowania, dziennik systemowy zapewnia tę funkcję. Możesz też uruchomić to polecenie w oknie terminala, by włączyć je ręcznie:
adb shell pm log-visibility --enable PACKAGE_NAME
Następnie, 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