Споделянето на файлове с Android приложения

В този урок:

Вие също трябва да се чете

За безопасно предлагат да подаде молбата си към друго приложение, трябва да конфигурирате програмата така, че да предлага сигурен файлов дескриптор като съдържание URI. Компонентът за Android FileProvider генерира URI за файлове със съдържание на базата на спецификации, които предоставяте на XML. Този урок ще ви покаже как да добавите изпълнението по подразбиране за FileProvider кандидатурата си, и как да се уточни на файловете, които искате да предлагате други приложения.

Забележка: FileProvider клас е част от Библиотека V4 подкрепа. За информация как да добавите библиотеката за вашето приложение, вижте. Библиотека Подкрепа конфигуриране.

Посочете доставчика на файл

Определяне FileProvider за вашето приложение изисква влизане в манифеста. Този запис указва силите, които ще бъдат използвани при формирането на съдържание URI на, както и името на XML файл, който дефинира директория на вашата кандидатура, която ще бъде използвана за публичен достъп.

Следният код показва как да ги добавите към вашия манифест елемент, който определя FileProvider клас, власт и името на XML файл:

В този пример, Android: власти определя органа, URI, който искате да използвате за URI генерирано съдържание FileProvider. В примера, органът е com.example.myapp.fileprovider. За свое собствено приложение, уточни акредитивите, състоящ се от елементите ценности андроид: пакет с поредица «fileprovider», добавя към него. За да научите повече за значението на власт, вижте URI съдържание и документация за андроид :. Властите атрибут.

дете елемент Това сочи към XML файл, който определя общите директории. Android: ресурс атрибут е пътя и името на файла, без разширението за .xml. Съдържанието на този файл е описано в следващия раздел.

Посочете директории за споделяне

След добавяне FileProvider манифеста на кандидатурата си, трябва да се уточни в директориите които съдържат споделени файлове. За да укажете директориите, започнете чрез създаване filepaths.xml файл в RES / XML / поддиректория на вашия проект. В този файл, укажете директорията, чрез добавяне на XML елемент за всяка директория. Следният фрагмент показва пример на съдържанието RES / XML / filepaths.xml. Фрагмент също показва как да се отвори достъпа до файлове в поддиректорията / директория на вашия вътрешна памет:

В този пример, етикет осигурява достъп до директории в рамките на файлове / директория на вътрешната памет на вашето приложение. път атрибут се отваря за споделяне на снимки / файлове в поддиректорията / име на атрибут разказва FileProvider добавите сегмент от пътя myimages към URI за съдържанието на файлове във файлове / изображения / поддиректория.

елемент може да има няколко дъщерни елементи, всеки от които определя различен споделена папка. В допълнение на елемент, можете да използвате елемент за поделената директория в Външното хранилище, и елемент за кеш директория във вътрешната памет. За да научите повече за дъщерните елементи, които определят общите директории. Вижте документацията за FileProvider.

Забележка: XML файл е единственият начин да се уточни папките, които искате да се отварят за обществен достъп; не можете да добавяте софтуерната директория.

Например, ако дефинирате FileProvider в съответствие с кодовите фрагменти от този урок и те молим URI за файлово съдържание default_image.jpg а. FileProvider връща следната URI: