Nowa grupa uprawnień w Androidzie P wyraźnie pokazuje, kiedy aplikacje chcą czytać Twój rejestr połączeń lub numery telefonów, dzięki czemu wiesz, co dokładnie robią.
Android Developer Preview 3 (Android P Beta 2) właśnie spadło, a wraz z nim pojawia się szereg zmian – głównie pod maską. Chociaż wprowadzono pewne zmiany skierowane do użytkowników, prawie wszystkie są w przygotowaniu do ostatecznej wersji. Największą częścią aktualizacji są sfinalizowane interfejsy API, co oznacza, że można teraz zbudować aplikację obsługującą API 28, Android P. W Developer Preview 3 dodano nową grupę uprawnień. Ta grupa uprawnień dotyczy konkretnie rejestru połączeń Androida, co oznacza, że aplikacja chce odczytać Twój rejestr połączeń lub numery telefonów, wyświetli się wyraźna wiadomość skierowana do użytkownika, informująca dokładnie, jakiego rodzaju dostęp przyznają aplikacji.
Po pierwsze, są to nowe ciągi znaków, które użytkownik zobaczy, gdy zażąda dowolnego uprawnienia w nowej grupie uprawnień CALL_LOG.
<stringname="permgroupdesc_calllog">read and write phone call logstring>
<stringname="permgrouprequest_calllog">Allow <b>%1$s</b> to access your phone call logs?string>
Jak wpłynie to na istniejące aplikacje? Android używa grupowania uprawnień dla uprawnień oznaczonych jako „niebezpieczne”, aby zarządzać poziomem dostępu przyznanym aplikacji i wybierać komunikat, który będzie wyświetlany użytkownikowi. Wcześniej uprawnienia READ_CALL_LOG i inne uprawnienia związane z rejestrem połączeń były wyświetlane w ramach ogólnego okna dialogowego „dostęp do funkcji telefonu na urządzeniu”, ale ten komunikat jest wyjątkowo niejasny. Co więcej, można argumentować, że nie ma to znaczenia dla rejestru połączeń Twojego urządzenia. W wersji Android P Developer Preview 3 wszystkie uprawnienia związane z rejestrem połączeń zostały zgrupowane w zupełnie nowej grupie odpowiednio nazwany CALL_LOG, dzięki czemu, gdy aplikacja zażąda, pojawi się bardziej odpowiedni komunikat To.
Aplikacje będą musiały jawnie zażądać uprawnień CALL_LOG, READ_CALL_LOG, WRITE_CALL_LOG lub PROCESS_OUTGOING_CALLS od CALL_LOG, jeśli muszą uzyskać dostęp do rejestru połączeń lub przetwarzać połączenia wychodzące, zgodnie z dokumentacją podglądu dla programistów Androida P. Ponadto programiści będą musieli wziąć pod uwagę sytuację, w której użytkownik odmówi aplikacji dostępu do informacji z dziennika połączeń.
Możesz także sprawdzić nowe grupowanie uprawnień pobrane z dekompilowanego środowiska Android Framework poniżej.
<permission-groupandroid: description="@string/permgroupdesc_calllog"android: icon="@drawable/perm_group_phone_calls"android: label="@string/permgrouplab_calllog"android: name="android.permission-group.CALL_LOG"android: priority="450"android: request="@string/permgrouprequest_calllog"/>
<permissionandroid: description="@string/permdesc_accessImsCallService"android: label="@string/permlab_accessImsCallService"android: name="android.permission.ACCESS_IMS_CALL_SERVICE"android: protectionLevel="privileged|signature"/>
<permissionandroid: description="@string/permdesc_readCallLog"android: label="@string/permlab_readCallLog"android: name="android.permission.READ_CALL_LOG"android: permissionGroup="android.permission-group.CALL_LOG"android: protectionLevel="dangerous"/>
<permissionandroid: description="@string/permdesc_writeCallLog"android: label="@string/permlab_writeCallLog"android: name="android.permission.WRITE_CALL_LOG"android: permissionGroup="android.permission-group.CALL_LOG"android: protectionLevel="dangerous"/>
<permissionandroid: description="@string/permdesc_processOutgoingCalls"android: label="@string/permlab_processOutgoingCalls"android: name="android.permission.PROCESS_OUTGOING_CALLS"android: permissionGroup="android.permission-group.CALL_LOG"android: protectionLevel="dangerous"/>
Źródło: dokumentacja programisty Androida P