2012-10-19 9 views
11

Kiedy Android 4.1 Jellybean (API 16) zostało ogłoszone na konferencji Google I/O, to wprowadza następujące uprawnienia:Google Play pokazuje dorozumianej zgody READ_EXTERNAL_STORAGE

READ_EXTERNAL_STORAGE

Zapewnia chroniony odczytu do pamięci zewnętrznej . W Androidzie 4.1 domyślnie wszystkie aplikacje nadal mają dostęp do odczytu. Zostanie to zmienione w przyszłej wersji, aby aplikacje wymagały jawnie żądania odczytu przy użyciu tego uprawnienia. Jeśli twoja aplikacja już prosi o dostęp do zapisu, automatycznie otrzyma również dostęp do odczytu. Dostępna jest nowa opcja programisty, która umożliwia ograniczenie dostępu do odczytu, aby programiści mogli przetestować swoje aplikacje pod kątem zachowania Androida w przyszłości.

http://developer.android.com/about/versions/android-4.1.html#Permissions

mam aplikację, która tagets API 16 i wymaga zgody WRITE_EXTERNAL_STORAGE. Przygotowuję się do wdrożenia aktualizacji i zauważyłem, że uprawnienie READ_EXTERNAL_STORAGE jest teraz wyświetlane jako wymagane uprawnienie w portalu dla programistów. Nie było to wymagane w Google Play dla aktualizacji wdrożonej w zeszłym tygodniu. Ta aplikacja nie wymaga jawnie uprawnienia READ_EXTERNAL_STORAGE.

Czy użytkownicy, którzy już udzielone pozwolenie WRITE_EXTERNAL_STORAGE dla tej aplikacji zostać poproszony o przyznaniu dodatkowego, niejawny pozwolenie READ_EXTERNAL_STORAGE gdy zaktualizować aplikację?

Aktualizacja:

Mamy ponieważ wydała aplikację i urządzenia Jellybean są automatycznie uaktualnianie bez uzyskania zgody READ_EXTERNAL_STORAGE. Czy w przyszłej wersji, gdy jawnie zadeklaruję wymaganie READ_EXTERNAL_STORAGE, użytkownicy, którzy już udzielili uprawnienia WRITE_EXTERNAL_STORAGE, zostaną poproszeni o przyznanie uprawnień READ_EXTERNAL_STORAGE?

Odpowiedz

2

Nie musisz jednoznacznie deklarować READ_EXTERNAL_STORAGE, o ile masz WRITE_EXTERNAL_STORAGE. Wcześniej system operacyjny nie wymuszał dostępu do pamięci zewnętrznej tylko do odczytu, który się zmienia i należy go teraz zażądać. Ale jeśli masz dostęp do zapisu, niejawnie uzyskasz dostęp do odczytu.

Od http://developer.android.com/training/basics/data-storage/files.html

Jeśli Twoja aplikacja potrzebuje do zapoznania się z zewnętrznej pamięci masowej (ale nie pisać do niego), a następnie trzeba będzie zadeklarować zgodę READ_EXTERNAL_STORAGE ...

Jeśli jednak Aplikacja używa uprawnienia WRITE_EXTERNAL_STORAGE, a następnie domyślnie ma uprawnienia do odczytu również pamięci zewnętrznej.

3

Od czasu interfejsu API 19 (Android 4.4) należy jednoznacznie określić uprawnienie READ_EXTERNAL_STORAGE. Tak, jeśli masz uprawnienie WRITE_EXTERNAL_STORAGE, zostaniesz domyślnie przyznany READ_EXTERNAL_STORAGE, ale jeśli potrzebujesz dostępu w trybie tylko do odczytu do pamięci zewnętrznej, musisz podać READ_EXTERNAL_STORAGE.

Prooflink: http://developer.android.com/reference/android/Manifest.permission.html#READ_EXTERNAL_STORAGE

+1

Uwaga: Wydaje nadal automatycznie dodać READ_EXTERNAL_STORAGE jeśli masz WRITE_EXTERNAL_STORAGE określone w manifeście, ale z maxSdkVersion = 18 dodaje.Oznacza to, że w przypadku uaktualnień aplikacji, w których nie dotknąłeś pól "pozwolenia-pozwolenia", Google Play nadal będzie skarżyć się, że to się zmieniło. Rozwiązaniem, aby Google Play nie skarżyło się, jest jawne ustawienie READ_EXTERNAL_STORAGE. –

Powiązane problemy