В Android 11 есть скрытая корзина для удаленных фотографий и видео.

В Android 11 приложения могут предлагать переместить удаленные фотографии и видео в скрытую корзину. При этом выброшенные предметы временно останутся на устройстве.

Google пытается обуздать ситуацию с неконтролируемым хранилищем приложений с помощью «Scoped Storage». Ограниченное хранилище было представлено в Android 10. но с тех пор несколько раз менялся с момента своего дебюта из-за того, насколько сильно это влияет на доступ к хранилищу для многих Android. Приложения. Google применяет Scoped Storage для приложений, ориентированных на уровень API 30, который является последним уровнем API, совпадающим с Android 11.

Вместо того, чтобы пытаться объясните хранилище с ограниченной областью действия еще раз, вот рисунок от Google "Все о конфиденциальности в Android 11доклад, в котором резюмируется, как Scoped Storage повлияет на доступ к хранилищу для приложений в Android 11.

Источник: Гугл

Одним из наиболее интересных изменений в доступе к хранилищу, которое до сих пор оставалось незамеченным, является введение нового механизма «мусорки». Эта функция подробно описана в Google "

Доступ к хранилищу с Android 11" видео. По сути, приложения, использующие Медиасторе API может уничтожить файл вместо его удаления, чтобы дать пользователю возможность восстановить файл позже. Google сравнивает эту функцию с корзиной на ПК, за исключением того, что корзина Android по умолчанию скрыта. Однако Google заявляет, что приложения, имеющие доступ к редактированию удаленных файлов или запрашивающие согласие пользователя, могут отображать элементы из корзины. Выброшенные в корзину элементы автоматически удаляются Android через 30 дней.

Android 11 также требует, чтобы приложения получали согласие пользователя перед изменением медиафайлов, которыми приложение не владеет. Еще одна новая добавленная функция — «Избранное», которая позволяет мультимедийным приложениям добавлять «любимый» файл. статус назначенных мультимедийных элементов, чтобы другие мультимедийные приложения знали, что пользователь рассматривает эти элементы как важный. Например, если пользователь отмечает элемент в приложении галереи, другие мультимедийные приложения увидят, что этот элемент добавлен в избранное.

Хотя в докладе Google не показан пример новой концепции мусора MediaStore, API доступен с момента выхода первой версии Android 11 Developer Preview. Разработчик Юрий Мысоченко опубликовал статья на Медиуме еще в феврале речь шла об этом новом API, и он продемонстрировал API в примере приложения, как показано ниже:

Новый API-интерфейс MediaStore Trash API в Android 11. Кредиты: Юрий Мысоченко.

В этой демонстрации приложение спросило пользователя, хотят ли они переместить фотографию в корзину, что временно удалит фотографию из галереи. Через 7 дней фотография будет удалена из хранилища навсегда. Сотрудница Google Роксанна Алиабади упоминает, что ОС хранит удаленные элементы в течение 30 дней, поэтому 7-дневный лимит хранения, вероятно, был увеличен со времени первой версии Developer Preview.

Разработчики, заинтересованные во внедрении этого API, могут прямо сейчас ознакомиться с документацией на веб-сайте разработчиков Android. Медиа-приложения могут создавать PendingIntent под названием создатьTrashRequest предложить пользователю удалить элемент, после чего добавляется флаг IS_TRASHED указывая, что элемент мультимедиа был удален. Удаленные элементы сохраняются ОС до тех пор, пока DATE_EXPIRES, после чего они безвозвратно удаляются из хранилища. Мультимедийные приложения, запрашивающие MediaStore, должны явно запрашивать удаленные элементы, используя QUERY_ARG_MATCH_TRASHED поскольку удаленные элементы по умолчанию отфильтровываются из операций.

Вы можете (и должны) прослушать полный доклад о Scoped Storage, если ваше приложение занимается доступом к хранилищу: