Ponieważ pakiet SDK Android 23 daje użytkownikom możliwość odmowy dostępu aplikacji do niektórych funkcji, chciałem zaktualizować jedną z moich aplikacji, aby uzyskać uprawnienia, jak opisano tutaj: https://developer.android.com/preview/features/runtime-permissions.html.Powielanie prośby o zgodę po zmianie orientacji
W jednej z czynności umieszczam SupportMapFragment. Aby to zadziałało, musisz mieć uprawnienie WRITE_EXTERNAL_STORAGE
, dlatego żądam go, gdy uruchomię działanie, co spowoduje utworzenie okna żądania uprawnień.
Problem polega na tym, że gdy okno dialogowe jest nadal otwarte i obracam urządzenie, działanie zostanie ponownie uruchomione i zostanie otwarte nowe okno dialogowe żądania uprawnień, podczas gdy stare nadal będzie dostępne. Rezultatem są dwa z tych dialogów jeden na drugim i tylko jeden z nich jest użyteczny.
Czy istnieje sposób na pozbycie się pierwszego okna dialogowego?
Ponieważ nie utworzyłeś okna dialogowego, nie jestem świadomy żadnego sposobu, aby się go pozbyć. Umieść 'boolean' w twoim zapisanym stanie instancji' Bundle', wskazując, że prośba o uprawnienia jest wyjątkowa i nie ponawiaj ponownie żądania pozwolenia. Lub czekaj, aby poprosić o pozwolenie, aż do wprowadzenia jakiejś formy danych użytkownika (np. Dotknięcie elementu paska czynności, który uruchamia 'SupportMapFragment'), w takim przypadku powinieneś być bezpieczny, ponieważ użytkownik nie może ponownie dotknąć tego elementu, podczas gdy okno dialogowe jest widoczny. – CommonsWare
Tak, to prawda. Nie sądziłem, że będzie to opcja, ponieważ "stary" dialog byłby związany tylko ze "starą" działalnością, ale po prostu wypróbowałem ją, a wynik został odebrany przez "nową" aktywność. – Thorben