Як відкрити доступ до сховища на андроїд
Внутрішнє сховище (internal storage) розташовується завжди в пам'яті смартфона незалежно від того, чи є можливість встановлення карти пам'яті (і тим більше, чи вставлена вона). Ця область пам'яті захищена. Знаходиться у системному розділі / data.
Як дозволити доступ до мікрофону на Андроїді?
- Відкрийте програму Chrome. на пристрої Android.
- Праворуч від адресного рядка клацніть на піктограмі "Ще" Установки.
- Виберіть Установки сайтів.
- Натисніть Мікрофон або Камера.
- Увімкніть або вимкніть мікрофон або камеру.
Як дозволити встановлення програм із невідомих джерел?
Старі версії Android
Відкрийте «Параметри» та перейдіть до розділу «Безпека». Потім перейдіть сторінку вниз, активуйте перемикач навпроти пункту «Невідомі джерела» і підтвердіть свій вибір, натиснувши «OK».
Як дати дозвіл програмі?
Виберіть Пуск > Установки > Конфіденційність. Виберіть програму (наприклад, "Календар") і вкажіть, які дозволи для програми увімкнути або вимкнути.
Де знаходиться сховище на самсунг?
Знайдіть програму Мої файли в меню пристрою та відкрийте його. Часто воно знаходиться у папці Samsung. На стартовому екрані виберіть Пам'ять пристрою. Відобразяться папки та файли, як вони зберігаються в пам'яті пристрою.
Як звільнити у телефоні сховище?
- Відкрийте установки телефону.
- Виберіть Сховище.
- Натисніть Керування сховищем.
- Щоб вибрати об'єкт для видалення, встановіть прапорець праворуч. Якщо список порожній, натисніть кнопку Огляд.
- Щоб видалити вибрані елементи, натисніть Звільнити в нижній частині екрана.
Що зберігається в телефоні?
У сховищі знаходяться ваші дані (наприклад, музика та фотографії). Оперативна пам'ять використовується для виконання процесів, що забезпечують роботу системи Android та додатків.
Як дозволити доступ до сховища на Хонор? Хмара Huawei Cloud прив'язана до індивідуального облікового запису користувача, тому для перегляду особистої інформації необхідний логін та пароль. Для входу на інший пристрій, наприклад, комп'ютер / ноутбук, можна сканувати QR-код на мобільному. Щодо програм, всі налаштування виконуються через обліковий запис Huawei у розділі Конфіденційність та Контроль доступу.
Як дозволити доступ до сховища
Huawei Mobile Cloud на Хонор - спеціальний сервіс, призначений для зберігання даних та створення резервних копій. У його функції входить:
Багато хто запитує, як відкрити доступ до сховища на Хонор іншим користувачам. Як зазначалося, Cloud прив'язується до персонального профілю, тому дозволити користування іншим вдається лише шляхом передачі даних для входу.
За бажанням можна дозволити доступ до сховища Хонор на Андроїд різних програм. Для отримання інформації з цього питання зробіть такі кроки:
Тут можна дозволити певним програмам користуватися інформацією з облікового запису та диска з даними.
Навіщо це потрібно
Як зазначалося, дозволити вхід до диску Хонор іншій людині не вдасться. Єдиний метод – передача особистих даних, але це небезпечно. Якщо потрібно подивитися якусь інформацію, краще зробити це разом, у присутності власника.
Реальний шлях – дозволити певні дії іншим програмам. Це може знадобитися в таких випадках:
- налаштування сховища Хонор;
- користування його можливостями через спеціальну програму;
- дистанційне внесення змін тощо.
Іншими словами, можна схвалити керування відомостями у сховищі Хонор і тим самим зробити користування зручнішим.
Як закрити доступ
Щоб підвищити конфіденційність, відкличте права в сторонній програмі.
Тепер ви знаєте, як дозволити шлях до сховища на Хонор для додатків та людей, у яких випадках це необхідно, та як правильно перекрити конфіденційні відомості.
Безпека даних в операційній системі є дуже важливим завданням, і Android тут не є винятком.
До Android 10 все працювало досить просто: програма запитувала доступ до сховища, використовуючи одне з дозволів (WRITE_EXTERNAL_STORAGE або READ_EXTERNAL_STORAGE), і, після того як користувач надавав дозвіл, програма отримувала можливість прочитати і змінити практично будь-який файл, що зберігається на пристрої, файлів та папок, а також папок інших додатків Інакше кажучи, програма просто отримувала доступ до всієї файлової системи.При цьому повний доступ додаток має тільки до тих файлів, які знаходяться безпосередньо в папці програми, розташованої в Android/data/. Якщо програму потрібно змінити або видалити файл, що знаходиться поза цією папкою, програма має запросити у користувача дозвіл на конкретну операцію за допомогою MediaStore API (для медіа-файлів) або через Storage Access Framework (для всіх інших файлів). Однак цей спосіб дуже незручний, якщо ми розробляємо файловий менеджер або програму, яка має працювати не з медіа-файлами.
Оскільки частина програм все ж таки вимагає для своєї роботи повний доступ до сховища, а не обмежений, Google додали новий дозвіл MANAGE_EXTERNAL_STORAGE для таких випадків. Ця роздільна здатність, як і раніше, дозволяє отримати доступ до всієї файлової системи, проте для його використання в програмі потрібне підтвердження з боку Google. У цій статті ми розберемо, як використовувати дозвіл у програмі, а також розглянемо процес заповнення заявки в консолі Google Play.
Для початку створимо новий проект із порожньою активністю. Для початку нам потрібно визначити в маніфесті, що додатку потрібні такі дозволи для роботи. Додамо їх у файл AndroidManifest.xml.
Оскільки MANAGE_EXTERNAL_STORAGE використовується в обов'язковому порядку тільки починаючи з API 30, нам все ще потрібно обробляти запит дозволів на попередніх версіях так, як ми це робили раніше. Для цього ми додаємо також WRITE_EXTERNAL_STORAGE, але обмежуємо його використання API 29. Таким чином, ми щоразу перевірятимемо рівень API пристрою і, залежно від цього, використовувати або стару роздільну здатність, або нову.
Як вже згадувалося вище, у випадку з Android 10 для роботи з файловою системою нам також потрібно додати до маніфесту наступний прапор в елемент .
У файлі розмітки activity_main.xml додамо кілька елементів для тестування:
Перейдемо до написання коду. Створимо клас PermissionUtils, в якому перебуватиме перевірка дозволів та їх запит.
Потім у класі активності MainActivity.java визначимо елементи із розмітки.
Текстове поле відображатиметься, якщо програма має дозволи. Для цього після оголошення змінних додамо перевірку.
Додамо обробник для кнопки, який надсилатиме запит на надання дозволу.
Нам також необхідно задати код запиту, щоб ми могли визначити, що відповідь надійшла саме для цього запиту.
Коли користувач натисне кнопку, у нього відкриється нова активність із налаштуваннями програми, в якій буде запропоновано дати повний доступ до цієї програми. Користувач може як погодитись, так і відхилити запит.
Оскільки це також працює і для старих версій Android, у випадку з ними користувачу замість активності буде запропоновано старий діалог із запитом на надання дозволів.
Будь-який результат дій користувача повертається в нашу активність. Оскільки для API 30 ми запускаємо окрему активність, результат роботи ми повинні відстежувати в методі onActivityResult(). Перевизначимо його та додамо наступний код.
Тут ми знову перевіряємо, чи користувач дав дозвіл чи ні, і оновлюємо текстове поле відповідно до результату.
Аналогічно перевіряємо результат операції для старих рівнів API, але вже перевизначаємо метод onRequestPermissionResult().
Тепер у нашого додатка є повний доступ до файлової системи, і технічно цього вже достатньо. створено випуск і завантажено туди нову версію програми, нам потрібно перейти до розділу Контент програми і вибрати пункт Важливі дозволи, що з'явився, і API.
У формі, що з'явилася, потрібно описати докладно, навіщо додатку потрібен доступ до всіх файлів, чи відноситься це до основного функціоналу програми, а також пояснити з технічної точки зору чому неможливо використовувати в додатку альтернативні способи.
Також, якщо показати роботу програми простіше, ніж пояснити, можна записати демо-ролик роботи програми, завантажити його на Youtube і прикріпити в даній формі посилання на відео В деяких випадках це може прискорити отримання доступу.
Коли Google схвалив доступ до програми, нова версія успішно публікується, а в розділі Контент програми вказано дозвіл, який було схвалено.
Однак, Google також можуть і не схвалити заявку, якщо вважають, що це не є обов'язковою функцією або якщо ви можете обмежитися MediaStore\Storage Access Framework.
Таким чином, за допомогою пари рядків коду можна оновити свої програми для роботи з файловою системою на нових версіях Android.
Всі останні покращення в Android на рівні ОС стосуються захисту додатків і даних користувача, а також більш впорядкованого надання доступу.Незважаючи на переваги змін, вони також передбачають додаткову роботу для розробників.
З метою підвищення конфіденційності користувачів Android 11 додано деякі суттєві зміни та обмеження.
Примусове використання сховища з обмеженою областю видимості (Scoped storage): доступ до каталогів зовнішніх сховищ обмежений каталогом конкретної програми та певними типами носіїв, створених програмою.
Автоматичне скидання дозволів: якщо користувачі не взаємодіяли з програмою протягом декількох місяців, система автоматично скидає конфіденційні дозволи програми.
Фоновий доступ до розташування: користувачі повинні бути спрямовані в системні налаштування, щоб надати програмам дозвіл на фонове визначення розташування.
Видимість пакета: коли програма запитує список встановлених програм на пристрої, повернутий список фільтрується.
Нещодавно я глибоко поринув у концепцію Scoped storage, щоб зрозуміти, чого очікувати в майбутньому, і відповідно підготувати свій Android додаток до змін.
Перш ніж перейти до того, що стосується реалізації, спочатку розберемося, як було організовано сховище даних до Android 10:
- Приватне сховище (Private Storage): всі програми мають власний приватний каталог у внутрішньому сховищі, тобто Android/data/, невидимий для інших програм.
- Загальне сховище (Shared Storage): решта сховища, крім приватних розділів, називалася загальним сховищем. Воно включає всі медіа- і немедійні файли, збережені в системі, і додаток з дозволом на зберігання може легко отримати до них доступ.
Чи є, на вашу думку, якісь проблеми в структурі, яку ми розглянули вище? Чи не хотілося б вам, щоб Google щось тут змінив?
Зупинімося докладніше на деяких проблемах.
- Припустимо, ми маємо додаток для електронної комерції, якому потрібен доступ до сховища тільки для того, щоб користувач зміг завантажити фото профілю. Отже, йому потрібно надати доступ до певного файлу або файлової системи. Інший приклад: нам потрібно завантажити або зберегти медіа-файл з програми чату, а для цього потрібен доступ до одного медіа-файлу. То навіщо ж надавати доступ до сховища?
- Може виявитися, що конфіденційні дані, такі як медичні рецепти або банківські чеки, будуть доступні всім програмам, встановленим на пристрої.
- Після видалення програми неможливо переконатися, що всі пов'язані з ним дані та файли повністю очищені.
Впевнений, це має змусити вас задуматися про безпеку додатків та даних, а також про конфіденційність та організацію. Не хвилюйтеся, що нещодавнє оновлення Google для Android вже поспішає на допомогу.
Google наводить дві важливі причини, з яких вводиться ця зміна: безпека і зменшення даних, що залишилися після видалення.
Пісочниця додатків, що ізолює додатки один від одного, - це ключова частина дизайну Android. Взявши за основу той самий основний принцип, в Android Q компанія Google представила сховище з обмеженою областю видимості.
Ці зміни спочатку планувалося застосувати до кожної програми на телефоні під керуванням Android 10 або пізнішої версії, але через негативну реакцію розробників Google змінив курс і зажадав використовувати сховище з обмеженою областю видимості тільки для додатків, орієнтованих на Android API рівня 29, тобто Android 10. Але з Android 11 Scoped Storage повернувся, і цього разу Google навряд чи передумає.
- Покращена атрибуція: програма буде надано доступ до блоків зберігання, які містять відповідні дані програми.
Подивіться на структуру зберігання даних в Android 10 і вище:
Приватне сховище залишається без змін, але спільне сховище додатково поділяється на колекцію медіа та завантажень (немедійних файлів).
- Зменшення безладу у файлах: система зв'яже сховище з програмами-власниками, щоб системі було легше знаходити файли, що стосуються програми. Таким чином, при видаленні програми всі пов'язані з ним дані також будуть видалені.
- Запобігання зловживання дозволом READ_EXTERNAL_STORAGE: надання цього дозволу на сьогоднішній день дає застосунку доступ до всього зовнішнього сховища, де зберігаються особисті фотографії, документи, відео та інші потенційно конфіденційні файли. Однак при застосуванні Scoped storage програми зможуть бачити лише власні папки даних та певні типи носіїв, такі як музичні файли, використовуючи інші API сховища.
З цими оновленнями користувачі зможуть краще контролювати файли та надання доступу до них. Крім того, на пристрої звільниться додатковий простір, оскільки непотрібні файли видалятимуться разом із програмою.
- Необмежений доступ до індивідуального сховища програм: програма матиме необмежений доступ до внутрішнього та зовнішнього сховища як для читання, так і для запису. В Android 10 не потрібно надавати дозвіл на зберігання для запису файлів до каталогу програм на SD-карті.
- Необмежений доступ до колекцій медіафайлів та завантажень (доданих власноруч): ви отримуєте необмежений доступ для додавання файлів до колекції та завантаження програми. При збереженні зображення, відео або іншого медіафайлу з колекції не потрібно запитувати дозвіл (якщо файл зберігається в організованій колекції.)
- Доступ до колекції медіафайлів інших програм можна отримати за допомогою роздільної здатності READ_STORAGE_PERMISSION. Дозвіл WRITE_STORAGE_PERMISSION з наступної версії стане застарілим і працюватиме так само, як і READ_STORAGE_PERMISSION.
- Для запису та читання немедійних файлів, що додаються іншими програмами, знадобляться API-інтерфейси доступу до сховища.
Примітка з документації по оновленню сховища в Android 11: Якщо програма використовує застарілу модель зберігання і раніше призначалася для Android 10 або нижче, можливо, дані зберігаються в каталозі, до якого програма не може отримати доступ, коли задіяна модель сховища з областю видимості. Перш ніж перейти на Android 11, перенесіть дані до каталогу, сумісного із сховищем обмеженої області видимості. У більшості випадків перенести дані можна до каталогу конкретної програми.
Щоб дати розробникам додатковий час для тестування, програми, орієнтовані на Android 10 (рівень API 29), все ще можуть вимагати атрибут requestLegacyExternalStorage.Цей прапор дозволяє програмам тимчасово відмовитися від змін, пов'язаних із областю зберігання, таких як надання доступу до різних каталогів та різних типів медіафайлів.
Будь-яка програма, призначена для Android 11 або пізнішої версії, має використовувати нові API сховища, включаючи сховище з обмеженою областю видимості. Зміни в угоді розробника Google Play свідчать, що, починаючи з 1 серпня 2020 року, нові програми, представлені в Google Play, повинні бути націлені на Android 10 або пізнішу версію, а всі оновлення існуючих додатків повинні бути орієнтовані на Android 10 або більше пізню версію з 1 листопада 2020 року. Якщо все продовжиться в тому ж дусі, то наступного року програми, швидше за все, обов'язково буде орієнтувати вже на Android 11.
Зараз найкращий час для того, щоб вивчити і реалізувати нові зміни.
Коротко розглянемо деякі операції зберігання, що часто виконуються, та способи їх виконання:
- Вибір файлу: використовуйте ACTION_OPEN_DOCUMENT — він відкриває системну програму для вибору файлів, надаючи користувачеві можливість вибрати файл, який потрібно відкрити. Щоб відобразити лише типи файлів, які підтримуються програмою, вкажіть тип MIME.
- Вибір папки: Інтент ACTION_OPEN_DOCUMENT можна замінити на ACTION_OPEN_DOCUMENT_TREE .
Примітка: цей доступ буде дійсним, доки користувач не перезавантажить пристрій. Якщо програма хоче зберегти доступ, отримуючи доступ до URI за допомогою перетворювача вмісту, перетворювач вмісту повинен викликати метод такс PersistableUriPermission .
Крім того, якщо ви перебираєте велику кількість файлів у каталозі, доступ до якого здійснюється за допомогою ACTION_OPEN_DOCUMENT_TREE, продуктивність програми може знизитися.
- Створення файлу: щоб зберегти файл у певному місці, використовуйте ACTION_CREATE_DOCUMENT .
Примітка з документації Android розробників: ACTION_CREATE_DOCUMENT не може перезаписати існуючий файл. Якщо програма намагається зберегти файл з тим самим ім'ям, система додає число в дужках наприкінці імені файлу.
Якщо програма призначена для Android 10 (рівень API 29) або вище, то для того, щоб вона могла вилучати невідредаговані метадані Exif з фотографій, необхідно оголосити дозвіл ACCESS_MEDIA_LOCATION у маніфесті програми, а потім запросити цей дозвіл під час виконання.
Увага: оскільки ви запитуєте дозвіл ACCESS_MEDIA_LOCATION під час виконання, немає жодної гарантії, що програма має доступ до невідредагованих метаданих Exif з фотографій. Програма вимагає явної згоди користувача, щоб отримати доступ до цієї інформації.
Існує обхідний шлях для додатків типу файлових менеджерів, які теж повинні мати повний доступ до всього. Потрібно виконати такі прості кроки, наведені в інструкції з оновлення сховища в Android 11:
Додаткам, які діють згідно із законом, ці дозволи необхідні.
Як тільки користувач надасть дозвіл на широкий доступ, він отримає нефільтровану виставу MediaStore, яка включає немедійні файли.
Тільки програми, яким Google надасть таку можливість, матимуть повний доступ до сховища.Для цього надішліть форму декларації в Google Play та отримайте місце у затвердженому списку.
Що робити, якщо програма використовує кастомний вибір файлів, який відображає точні каталоги даних? І тут нічого не можна зробити. Можливо варто перейти на системний засіб вибору файлів.
Як дати доступ до сховища на андроїд додатку
У багатьох сучасних програм для пристроїв на ОС Андроїд потрібен доступ до сховища, щоб зберігати та отримувати дані. Це може бути необхідним для збереження фотографій, файлів, налаштувань або іншої інформації, важливої для роботи програми. У цьому посібнику ми розповімо про способи надання доступу до сховища на Андроїд-додатку.
Перший спосіб – це використання дозволів. Програма має запросити дозвіл користувача для доступу до сховища. Для цього необхідно додати відповідний код до файлу маніфесту програми. Потім, при першому запуску програми, користувач побачить діалогове вікно із запитом дозволу доступу до сховища. Якщо користувач надасть дозвіл, програма зможе отримати доступ до сховища.
Другий спосіб – використання системного провідника. Користувач може самостійно вибрати файли або папки, до яких програма матиме доступ. Для цього програма має відкрити системний провідник за допомогою відповідного інтенту. Потім користувач може вибрати потрібні файли або папки, і програма отримає доступ до них.
Який спосіб використовувати - залежить від вимог та функціональності програми. Але в будь-якому випадку важливо пам'ятати про безпеку та конфіденційність даних користувачів, тому дозволи на доступ до сховища слід вимагати лише у разі реальної необхідності.
Доступ до сховища на Android-додатку - це важливий аспект розробки додатків. Правильне надання доступу до сховища допоможе застосуванню працювати більш ефективно та зручно для користувача.
