Partajarea fișierelor de aplicații Android

În acest tutorial:

Ar trebui să citiți, de asemenea,

Pentru a oferi siguranță depune aplicația la o altă aplicație, trebuie să configurați programul astfel încât acesta oferă un descriptor de fișier securizat ca un conținut de URI. Componenta Android FileProvider generează un URI pentru fișierele de conținut pe baza specificațiilor pe care le furnizați XML. Acest tutorial vă va arăta cum să adăugați implementarea standard pentru FileProvider cererea dumneavoastră, și cum să specificați fișierele pe care doriți să le ofere alte aplicații.

Notă: clasa FileProvider face parte din v4 de sprijin Biblioteca. Pentru informații cu privire la modul de a adăuga la biblioteca aplicației, consultați. Configurarea Biblioteca Support.

Specificați furnizorul de fișiere

Determinarea FileProvider pentru aplicația dvs. necesită intrarea în manifest. Această intrare specifică competențele care vor fi utilizate în formarea conținutului URI, precum și numele unui fișier XML care definește directorul aplicației dvs., care va fi folosit pentru accesul publicului.

Codul de mai jos arată cum să le adăugați în manifest dvs. Element, care specifică clasa FileProvider, autoritate, și numele fișierului XML:

În acest exemplu, Android: autoritățile definește autoritatea URI pe care doriți să îl utilizați pentru URI-ul generat FileProvider conținut. În exemplul, autoritatea este com.example.myapp.fileprovider. Pentru propria aplicație, specificați acreditările, constând în valori de elemente Android: pachet cu un șir de caractere «fileprovider», a adăugat la acesta. Pentru a afla mai multe despre importanța autorității, a se vedea conținutul URI și documentația pentru Android :. atribut Autoritățile.

Element copil Aceasta indică un fișier XML care definește directoarele partajate. Android: atribut resursă este calea și numele fișierului, fără extensia .xml. Conținutul acestui fișier este descris în secțiunea următoare.

Specificarea directoarelor de partajare

După adăugarea FileProvider manifestul cererii dumneavoastră, trebuie să specificați directoarele care conțin fișiere partajate. Pentru a specifica directoarele, începe prin a crea fișier filepaths.xml în res / XML / subdirector al proiectului. În acest fișier, specificați directorul prin adăugarea unui element XML pentru fiecare director. Următorul fragment prezintă un exemplu de conținuturi res / xml / filepaths.xml. Fragment demonstrează, de asemenea, modul de a deschide accesul la fișiere subdirector / director în spațiul de stocare internă:

În acest exemplu, tag-ul oferă acces la directoare în fișierele / directorul de stocare internă a aplicației. atribut cale se deschide pentru partajarea imaginilor / fișierelor subdirectorul / atribut nume spune FileProvider adăuga un myimages segment din calea către URI pentru conținutul fișierelor în fișiere / imagini / subdirector.

element poate avea mai multe elemente copil, fiecare dintre acestea definind un director partajat diferit. În plus față de Element, puteți utiliza Element pentru directorul partajat în stocarea externă, și Element pentru cache-ul director în memoria internă. Pentru a afla mai multe despre elemente copil care definesc directoarele partajate. Consultați documentația pentru FileProvider.

Notă: fișierul XML este singura modalitate de a specifica folderele pe care doriți să le deschidă accesul public; nu puteți adăuga directorul de software.

De exemplu, dacă definiți FileProvider în conformitate cu fragmentele de cod din acest tutorial, și solicitați URI pentru un default_image.jpg fișier de conținut. FileProvider returnează următorul URI: