日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Android官方开发文档Training系列课程中文版:分享文件之配置文件共享

發布時間:2024/7/5 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android官方开发文档Training系列课程中文版:分享文件之配置文件共享 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:http://android.xsoftlab.net/training/secure-file-sharing/index.html

導言

APP經常需要給其它的APP提供一個或多個文件。舉個例子,相冊APP可能需要提供文件以供編輯,或者一個文件管理的APP可能希望用戶在外部存儲器中的兩個區域之間復制粘貼文件。其中一種方式就是發送端的APP可以分享文件來響應接收端APP的請求。

在所有的例子中,使一個文件從你的APP到另一個APP的唯一安全方式就是發送這個文件內容的URI地址到接收端APP,并且授予一個臨時的訪問權限給這個URI。帶有臨時URI訪問權限的內容URI是安全的,因為它只會被應用于接收這個URI的那個APP,并且會這個權限會自動終止。Android的FileProvider組件提供了getUriForFile()方法來生成該文件的內容URI地址。

如果你想分享少量的文本或者數字型數據,你應該發送一個Intent,使這個Intent攜帶這些數據給其它APP。有關學習如何使用Intent來發送簡單的數據,參見訓練課程Sharing Simple Data。

這節課解釋了如何使用Android FileProvider組件生成的內容URI安全的在APP之間共享文件。

設置文件共享

為了從你的APP安全的提供文件給其它APP,你需要配置你的APP以便對文件提供安全的防護。Android的FileProvider組件會基于在XML中提供的參數對文件的相應URI地址,。這節課展示了如何給APP添加默認的FileProvider實現,以及展示如何指定你要分享給其它APP的文件。

Note:FileProvider是v4支持包的一部分。有關程序中包含該庫的更多信息,請參見:Support Library Setup。

指定FileProvider

給APP定義FileProvider需要在清單文件中登記。在被登記的條目需要指定URI的權限,和指定XML文件的文件名一樣,這里也需要指定被分享文件的目錄。

下面這一小段代碼展示了如何在清單文件中添加< provider>元素,在這個元素中指明了FileProvider類,權限和XML文件名:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.myapp"><application ...><provider android:name="android.support.v4.content.FileProvider"android:authorities="com.example.myapp.fileprovider"android:grantUriPermissions="true"android:exported="false"><meta-data android:name="android.support.FILE_PROVIDER_PATHS"android:resource="@xml/filepaths" /></provider>...</application> </manifest>

在這個例子中,屬性android:authorities指明了由FileProvider生成的URI的權限,這里的權限值是com.example.myapp.fileprovider。在自己的APP中,權限是由APP的android:package值以及跟隨的”fileprovider”字符串組成。有關學習更多權限值的課程,請參見話題:Content URIs以及android:authorities的屬性文檔。

< provider>的子元素< meta-data>指向了一個XML文件,這個XML文件指定了你想要分享出去的目錄。屬性android:resource的值是要分享文件的路徑與名稱,只是這個文件名不帶.xml后綴。文件的內容會在下節課描述。

指定可搜索目錄

一旦在清單文件中添加了FileProvider,那么你還需要指定將要分享的文件目錄。如果要指定,首先需要在工程的res/xml/子目錄中創建一個名為filepaths.xml的文件。在這個文件中,通過給每個目錄添加相應的XML元素來指定它們的目錄。下面代碼展示了res/xml/filepaths.xml文件中的樣例,這段代碼中還演示了如何分享內部存儲器中files/目錄下的子目錄:

<paths><files-path path="images/" name="myimages" /> </paths>

在這個例子中,標簽分享了一些目錄,這個目錄位于APP在內部存儲器中的files/目錄下。屬性path分享了files/目錄的子目錄images/目錄,屬性name則用于告訴FileProvider給文件的URI添加files/images/子目錄下的路徑段 myimages。

< paths>元素可以擁有多個子元素,每一個元素分別指向相應的分享目錄。在附加的元素中,你可以使用元素來分享外部存儲器上的目錄,使用 元素分享內部存儲器上的目錄。學習更多有關分享指定目錄的子元素,請參見FileProvider的引用文檔。

Note:使用XML文件是分享指定目錄的唯一方式,你不可以動態的添加目錄。

你現在有了使用FileProvider對文件生成相關URI的完整說明。當你的APP需要為文件產生URI的時候,它包含了< provider>元素指定的權限,以及文件的路徑myimages/,還有文件的名稱。

舉個例子,如果你通過這節課中的所有片段定義了一個FileProvider,以及你要請求一個default_image.jpg文件的URI地址,那么FileProvider會返回如下的URI:

content://com.example.myapp.fileprovider/myimages/default_image.jpg

總結

以上是生活随笔為你收集整理的Android官方开发文档Training系列课程中文版:分享文件之配置文件共享的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。