В Android 11 є прихований кошик для викинутих фотографій і відео

В Android 11 програми можуть пропонувати перемістити видалені фотографії та відео до прихованого кошика. Це тимчасово зберігає викинуті елементи на пристрої.

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

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

Джерело: Google

Одна з найцікавіших змін у доступі до сховища, яка поки що не була помічена, — це введення нового механізму «сміття». Ця функція детально описана в Google "Доступ до сховища з Android 11

" відео. По суті, програми, що використовують API MediaStore може викинути файл у смітник замість його видалення, щоб дати користувачеві можливість відновити файл пізніше. Google порівнює цю функцію з кошиком на ПК, за винятком того, що кошик Android приховано за замовчуванням. Google заявляє, що програми з доступом до редагування файлів у смітник або які запитують згоду користувача можуть відображати елементи з кошика. Елементи, поміщені в кошик, автоматично видаляються Android через 30 днів.

Android 11 також вимагає, щоб додатки отримували згоду від користувача перед зміною медіафайлів, які не належать додатку. Ще однією новою функцією, яку було додано, є «вибране», що дозволяє медіапрограмам додавати «вибраний» файл статус призначених медіа-елементів, щоб інші медіа-програми знали, як користувач переглядає ці елементи важливо. Наприклад, якщо користувач позначає елемент зірочкою в програмі-галереї, інші медіа-програми бачать, що цей елемент додано до вибраного.

Хоча в розмові Google немає прикладу нової концепції смітника MediaStore, API доступний з першої попередньої версії Android 11 Developer Preview. Розробник Юрій Мисоченко опублікував ан стаття на Medium ще в лютому, де розглядається цей новий API, і він продемонстрував API у прикладі програми, як показано нижче:

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

У цій демонстрації програма запитала користувача, чи хоче він перемістити фотографію в кошик, що призведе до тимчасового видалення фотографії з галереї. Через 7 днів фото буде назавжди видалено зі сховища. Співробітник Google Роксана Аліабаді зазначає, що ОС зберігає елементи в смітнику протягом 30 днів, тому 7-денний ліміт пам’яті, ймовірно, було збільшено після першого попереднього перегляду для розробників.

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

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