Ограничаване на достъпа на приложение: Предоставяне на разрешения само за конкретни снимки.

  • Android 14 въвежда ограничен достъп с READ_MEDIA_VISUAL_USER_SELECTED за избор на конкретни снимки.
  • Ако приложението не приеме новото разрешение, ограниченият достъп е временен и предупреждението се повтаря.
  • Google Play изисква използването на селектора на снимки за специфични цели; широк достъп се предоставя само с обосновка.
  • Google Photos може да споделя достъп с галерията на производителя; управлявайте и отменяйте тази връзка, когато пожелаете.

Ограничаване на достъпа на приложение

Ако използвате Android и се появи опцията за „Разрешаване на ограничен достъп“ до вашите снимкиИзправени сте пред една от най-значимите промени в поверителността на платформата. Започвайки с Android 14, системата позволява на приложенията да имат достъп само до избраните от вас изображения и видеоклипове, без да отварят цялата ви галерия наведнъж. Тази промяна подобрява поверителността ви и променя начина, по който разработчиците и потребителите управляват разрешенията.

В тези редове обясняваме подробно как работи ограниченият достъп в Android, какви разрешения са включени (като например ПРОЧЕТЕНИ_МЕДИА_ИЗОБРАЖЕНИЯ, ПРОЧЕТЕНИ_МЕДИА_ВИДЕО и ПРОЧЕТЕНИ_МЕДИА_ВИЗУАЛНИ_ИЗОБРАЖЕНИЯ_ОТ_ПОТРЕБИТЕЛ), какви последици има това за приложенията, как да се действа, ако дадено приложение многократно иска разрешение, какво препоръчва Google Play на разработчиците и как всичко се интегрира с приложението Google Photos и галериите на производителите.

Какво означава ограничен достъп до снимки в Android 14?

Android 14 предлага „Достъп до избрани снимки“ - функция, която позволява на потребителите да предоставят на приложението достъп само до избрани снимки. конкретни изображения и видеоклипове от вашата библиотека. Това замества стария подход „всичко или нищо“ и намалява риска от изтичане на данни, ако дадено приложение има проблем със сигурността или се държи неправилно.

Това поведение се задейства, когато приложението е насочено към Android 14 (ниво на API 34) или по-нова версия. Ако приложението използва системния инструмент за избор на снимки, то може да предложи съгласуван и личен опит без да се изискват разрешения за съхранение. Ако, от друга страна, приложението поддържа собствена галерия, то трябва да приеме разрешението READ_MEDIA_VISUAL_USER_SELECTED за управление на повторния избор и частичния достъп.

Ако приложението не приеме новото разрешение, Android го изпълнява в режим на съвместимостВ този режим, когато изберете „Избор на снимки и видеоклипове“, предоставеният достъп е временен по време на сесията; когато излезете от приложението, системата може да отмени тези разрешения по-късно, което обяснява защо някои потребители виждат известието повтарящо се.

Как приложенията трябва да се адаптират: разрешения и потоци

Приложенията със собствен селектор трябва да поискат съответните разрешения в манифеста, като се адаптират към версията на Android на всяко устройство. Накратко, говорим за READ_EXTERNAL_STORAGE (до Android 12L), от ПРОЧЕТЕНИ_МЕДИЙНИ_ИЗОБРАЖЕНИЯ y ПРОЧЕТЕТЕ_МЕДИА_ВИДЕО (от Android 13) и от READ_MEDIA_VISUAL_USER_SELECTED за контрол на повторния избор и частичния достъп в Android 14+, когато приложението е насочено към API 34 или по-нова версия.

Заявката по време на изпълнение също трябва да варира. В Android 14+ е препоръчително да се поискат всички необходими разрешения с една операция, за да се избегне множество системни диалозиОсвен това, ако приложението работи само с видео, то може да изисква само ПРОЧЕТЕТЕ_МЕДИА_ВИДЕО до READ_MEDIA_VISUAL_USER_SELECTED така че диалоговият прозорец за избор да показва само видеоклипове.

Google препоръчва показването на ясен бутон в потребителския интерфейс, за да може потребителят разширете или променете селекцията Когато изберете ограничен достъп, няма да се изненадате да видите отново диалоговия прозорец за системни разрешения.

Създайте или персонализирайте свой собствен селектор за галерии с MediaStore

Ограничен достъп до снимки на Android

Ако предпочитате да запазите свой собствен селектор, трябва да имате предвид, че това включва по-нататъшно развитие и поддръжкаПриложението ви ще трябва да поиска разрешения за съхранение, съответстващи на версията на системата, и да управлява повторния избор с READ_MEDIA_VISUAL_USER_SELECTED в Android 14+ и актуализирайте интерфейса, така че потребителят да може да предоставя достъп до различен набор от снимки и видеоклипове, когато пожелае.

В манифеста, a типичен пример Това би разграничавало устройства с Android 12L или по-стара версия, Android 13+ и Android 14+ с новата възможност на ограничен достъп:

<!-- Hasta Android 12L (API 32) -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
<!-- Desde Android 13 (API 33) -->
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
<!-- Para reselección y control de acceso limitado en Android 14+ (API 34+) -->
<uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED"/>

По време на изпълнение приложението трябва да поиска правилните разрешения съгласно Build.VERSION.SDK_INTЗа Android 14+ бихте попитали ПРОЧЕТЕНИ_МЕДИЙНИ_ИЗОБРАЖЕНИЯ, ПРОЧЕТЕТЕ_МЕДИА_ВИДЕО y READ_MEDIA_VISUAL_USER_SELECTED, като коригирате списъка въз основа на съдържанието, от което действително се нуждаете (само изображения, само видео или и двете).

Приложения, които не се нуждаят от разрешение за запис в споделеното хранилище

От Android 10 (API 29) насам, приложенията вече не се нуждаят от разрешение за съхранение, за да създават файлове в споделено хранилище. С други думи, вашето приложение може запазвайте снимки, записвайте видеоклипове или изтегляйте PDF файлове без да се изисква разрешение за четене. Ако вашият случай на употреба само „пише“ и не отправя заявки към галерията, премахнете заявката за разрешение и ограничете обхвата ѝ с maxSdkVersion=28 за READ_EXTERNAL_STORAGE в манифеста.

Контрол на нов частичен достъп: статуси и проверки

Вашето приложение трябва да разграничава дали има пълен, частичен или отказан достъп и да действа съответно. В Android 13 (API 33), ако потребителят предостави ПРОЧЕТЕНИ_МЕДИЙНИ_ИЗОБРАЖЕНИЯ/ВИДЕОГоворим за пълен достъп. На Android 14+, ако беше предоставен само пълен достъп READ_MEDIA_VISUAL_USER_SELECTEDДостъпът е частичен до избраните елементи. До Android 12 (API 32), имащ READ_EXTERNAL_STORAGE Това предполага пълен достъп до публичната част на хранилището.

Важно е да се помни, че потребителят може да промени състоянието на разрешението от настройките по всяко време, дори между при стартиране и при възобновяванеЕто защо, избягвайте запазването на състоянието на разрешенията в постоянно хранилище: проверявайте го в реално време всеки път, когато ще работите.

Как да разглеждате библиотеката с MediaStore

След като съответното разрешение (пълно или частично) бъде потвърдено, можете да използвате Медийно хранилище и разрешаване на съдържание За преглед на изображения или видеоклипове. Започвайки с Android Q, се препоръчва да използвате контрола за сила на звука. ВЪНШЕН_ОБЕМ да обхванат всички томове за съхранение и да сортират по дата на добавяне, за да се покаже първо най-новото съдържание.

Типичен модел включва изпълнение на заявката в I/O нишка и, за производство, добавяне пейджинг с библиотеката за пейджинг За да поддържате приложението да работи гладко, когато броят на елементите е много висок, запазете резултата в паметта, докато приложението е на преден план, и го опреснете след `onResume`, в случай че потребителят е променил разрешенията.

Как да проверя последния избор на потребителя (Android 15 и backport)

В Android 15 и Android 14 с последните системни актуализации на Google Play има флаг за заявка, който извлича само последен избор от потребителя, когато достъпът е частичен. Активиране QUERY_ARG_LATEST_SELECTION_ONLY В аргументите на заявката, приложението ви може да се фокусира върху новопредоставените елементи, оптимизирайки зареждането и потребителското изживяване.

Този подход зависи от версията на разширението на рамката, така че е препоръчително да проверите дали отговаряте на необходимото ниво (например, getExtensionVersion(U) ≥ 12) преди да използвате флага, за да избегнете нарушаване на съвместимостта с устройства, които все още не го притежават.

Какво се случва, когато устройството се актуализира до Android 14

Ако вече е инсталирано приложение и устройството Актуализира се до Android 14Системата запазва пълен достъп до снимки и видеоклипове, които са били предоставени преди това. Например, ако разрешенията READ_MEDIA_IMAGES и READ_MEDIA_VIDEO са били предоставени в Android 13, тези разрешения се запазват при надстройване до Android 14.

Същото важи и за предишни инсталации с по-стари разрешителни, като например READ_EXTERNAL_STORAGE или дори WRITE_EXTERNAL_STORAGE (на устройства с Android 12 или по-стара версия): след актуализацията и когато приложението вече сочи към API 34, системата автоматично предоставя разрешения READ_MEDIA_IMAGES и READ_MEDIA_VIDEO за запазване на достъпаРазрешенията обаче могат да бъдат отменени по всяко време от правилата на потребителя или устройството.

Най-добри практики за работа с ограничен достъп

Не съхранявайте постоянно състоянието на разрешението (или в Споделени предпочитания, нито в DataStoreТова състояние може да се разсинхронизира поради автоматично нулиране на разрешенията, хибернация на приложения или промени в настройките. Винаги проверявайте в реално време с ContextCompat.checkSelfPermission() преди достъп.

Не приемайте, че приложението има пълен достъп. Ако кеширате резултати от Медиен магазинТези настройки може да остареят, ако потребителят промени достъпа си от пълен на ограничен. Проверявайте ги, когато е необходимо, и ги актуализирайте, когато се върнете на преден план, за да отразят новото ниво на достъп.

Става въпрос за достъпа до URI като временен Когато потребителят избере „Избор на снимки и видеоклипове“. При ограничен достъп системата може да изтече; приложението ви трябва коректно да обработва загубата на достъп до конкретен URI адрес, независимо от неговия авторитет.

Заявете само това, от което се нуждаете: ако вашият работен процес изисква само видео, попитайте ПРОЧЕТЕТЕ_МЕДИА_ВИДЕО плюс разрешението за избор. Ако имате нужда от изображения и видео, тогава заявете и двете; системният диалогов прозорец ще показва само заявените типове съдържание, което ще подобри яснотата и доверието на потребителите.

За да избегнете множество диалози, заявете го в една и съща транзакция. READ_MEDIA_VISUAL_USER_SELECTED, съответното разрешение за „четене на медийни файлове“ (ИЗОБРАЖЕНИЯ/ВИДЕО) и, ако е приложимо, МЕСТОПОЛОЖЕНИЕ_ЗА_ДОСТЪП_ДО_МЕДИИДобавете изричен достъп до интерфейса, така че потребителят да може да разшири или промени селекцията си, когато пожелае.

Режим на съвместимост: защо понякога ви пита всеки ден

Ограничен достъп до снимки на Android

Ако дадено приложение продължава да използва собствен селектор и не е приело READ_MEDIA_VISUAL_USER_SELECTEDAndroid го превключва в режим на съвместимост. При първоначалния избор, ако изберете „Избор на снимки и видеоклипове“, системата предоставя временни разрешения, валидни за времето на сесията. Когато приложението премине във фонов режим, тези разрешения се отменят. в крайна сметка изтича И при повторно отваряне приложението трябва да ги поиска отново.

Това обяснява типичния случай на потребител, който избира „Разрешаване на ограничен достъп“ и вижда прозореца всеки път, когато отвори приложението галерия. Ако приложението не е подготвено за новия работен процес, този ограничен достъп няма да бъде поддържан. упоритАлтернативите са: актуализиране до версия на приложението, която вече поддържа новото разрешение, използване на Избор на снимки от системата в приложението (когато е налично) или предоставете пълен достъп, ако имате доверие на приложението и трябва да избегнете напомнянето.

Google Photos и галерията по подразбиране на производителя

Google Photos може да споделя достъп с приложението за галерия по подразбиране на марки като Xiaomi, OPPO, OnePlus или RealmeКато разрешите това, галерията може да показва всички снимки, които са архивирани във вашия акаунт, а „Снимки“ получава ограничени данни, като например вашия имейл адрес или състоянието на архивирането (както се случва, когато Facebook иска достъп до мобилните ви снимки).

Този достъп се изисква чрез изскачащо известие и можете да го промените от настройките на Google Photos или от приложението галерия. Ако премахнете достъпа, за да го активирате отново, ще трябва да го направите в самата галерия (понякога се показва като...). „синхронизация в облака“ или подобно). Имайте предвид, че в зависимост от галерията, изтриването от това приложение може да изтрие и елементи от Google Photos.

За да изтриете елемент от устройството си, без да се засяга резервното копие, отидете в Google Photos, изберете изображението или видеото и използвайте „Премахване от устройството“Също така имате функцията „Освободете място“, за да изтриете от локалното хранилище, като същевременно запазите копия в облака.

Ако редактирате или изтривате от photos.google.com или друго устройство, промените може да не се отразят незабавно в галерията на телефона ви. Google Photos включва пряк път, наречен „Преглед на несинхронизираните промени“ за да ви помогне да подравните двете страни.

Относно албумите: преименуването им в галерията на производителя не създава еквивалентен албум в Google Photos. При някои производители на оригинално оборудване (например, VivoМетаданните на албума могат да бъдат архивирани, ако е активирано архивирането на снимки. Ако спрете да използвате устройства от един и същ производител в продължение на 6 месеца, тези данни може да бъдат изтрити (ще получите известие по имейл).

Дубликатите също са важни. Галерията на производителя може да показва множество локални копия на снимка, докато Google Photos показва само едно. Ако изтриете снимка от Google Photos, ще бъдете попитани дали искате да я премахнете. всички локални копияАко изтриете от галерията, може да изтриете локално копие и това от „Снимки“, но другите локални копия може да останат непокътнати.

Конфигуриране и преглед на разрешенията от Настройки на Android

От Настройки > Приложения > > разрешения Можете да предоставите или отмените достъп до камерата, микрофона, снимките и видеоклиповете, местоположението и други. За чувствителни разрешения, като например достъп до камерата или местоположението, Android предлага опции като „Само докато се използва“ или „Винаги питай“.

Мениджърът на разрешенията (Настройки > Сигурност и поверителност > Поверителност > Мениджър на разрешенияТова ви позволява да видите кои приложения имат всяко разрешение и да го промените централно. Можете също така да активирате Android автоматично отменяне разрешения за приложения, които не сте използвали от известно време.

Потенциално опасни разрешения: достъпност, администратор и други

Някои разрешителни изискват специално внимание. Това за достъпност Позволява ви да наблюдавате и извършвате действия от името на потребителя; това е от съществено значение за тези, които се нуждаят от него, но също така е много привлекателно за злонамерен софтуер, който се опитва да шпионира или контролира устройството. Google все повече ограничава използването и активирането му. За да разберете кои приложения да избягвате, вижте черен списък с измамни приложения.

Разрешението на мениджър на устройства Позволява прилагането на мощни политики (блокиране, нулиране, предотвратяване на деинсталиране). Употребата му е по-рядка днес извън бизнес средата, но в неправилни ръце може да бъде опустошителна, тъй като може да изтрие всички данни от мобилното устройство.

Разрешението на Показване върху други приложения (draw over) позволява полезни балончета и наслагвания, но също така и атаки с наслагване за кражба на идентификационни данни, ако се използват злонамерено. Предоставяйте го само когато разбирате защо приложението се нуждае от него.

Достъп до всички файлове (Достъп до всички файлове) и управление на медиите Разрешенията (Управление на медии) имат широк обхват. Google Play ги ограничава до много специфични случаи (файлови мениджъри, архивиране, антивирусна програма, редактори, миграция и др.). Предоставянето им безразборно позволява обширно четене, промяна и изтриване на файлове.

Разрешението за инсталиране на приложения от неизвестни източници Това разрешение се предоставя на приложението, което инициира инсталирането. То не е автоматично (трябва да потвърдите), но когато се комбинира с наслагвания или други трикове, може да доведе до инсталиране на нежелан софтуер. Използвайте го разумно.

Правила на Google Play за разрешения за снимки и видеоклипове

Google Play затегна политиката си относно широко разпространения достъп до снимки и видеоклипове в споделеното хранилище. Приложенията, които се използват от време на време или рядко, вече трябва да използват селектор на системни снимки; READ_MEDIA_IMAGES/VIDEO е разрешено да се съхранява само при наличие на солидно основание за първична употреба или широк достъп (мениджъри/галерии, редактори, UGC платформи...).

Ключова дата: политиката беше обявена на 28 Октомври 2023Между 18 септември 2024 г. и 22 януари 2025 г. разработчиците, използващи READ_MEDIA_IMAGES/VIDEO, трябва да подадат декларация до Play Console или да премахнат тези разрешения и да мигрират към селектор. От 28 май 2025 г. всички приложения трябва да спазват правилата, в противен случай рискуват да бъдат предприети допълнителни действия. премахване от Google Play.

ЧЗВ за политиката: Качването на профилна снимка или снимка за конкретна процедура се счита за „еднократна употреба“; социалните медии, комуникационните или мултимедийните редактори не са. Наличието на собствен филтър не оправдава общ достъп, тъй като имате достъп само до това, което потребителят избере. Има изключение за управление на корпоративни устройства.

Практически съвети, ако изберете „Разрешаване на ограничен достъп“ и ви пита всеки път

Ако изберете ограничен достъп и приложението продължава да иска разрешение ежедневно, много е вероятно приложението да е в режим на съвместимост (не имплементира READ_MEDIA_VISUAL_USER_SELECTED). В този режим разрешението е временно и изтича, когато приложението бъде затворено или след определен период от време във фонов режим.

Какво можете да направите? Актуализирайте приложението до последната му версия (разработчиците мигрират към новите разрешения), използвайте Избор на снимки от системата, когато приложението го предлага, или да предоставите пълен достъп, ако имате доверие на системата и трябва да избягвате постоянни известия. За разработчиците решението е да внедрят новото разрешение и да предложат Контрол на потребителския интерфейс да избира отново съдържание, когато потребителят желае.

Тази промяна не е системен провал; това е еволюция за защита на вашата поверителност. В замяна приложенията трябва да се адаптират към този ограничен достъп. бъдете упорити и удобни за ежедневно носене. Ако искате допълнителни размери, научете как да използвайте временни изображения.

Всичко гореизброено се вписва в ясна тенденция: Android е движещата сила на минимален необходим достъпПрозрачността и вземането на решения от потребителите са ключови. С инструмента за избор на снимки, приложенията, които се нуждаят само от конкретни файлове, вече не оправдават широките разрешения; с разрешението за избор от потребителя в Android 14+, галериите и редакторите могат да направят скока към добре проектиран ограничен достъп, без да жертват функционалността.

Android приложения с опасни разрешения
Свързана статия:
Реалният риск от опасни разрешения в приложенията за Android: как те влияят на вашата поверителност