use*_*092 0 android file sharing
任何人都可以建议我们如何在n个Android应用程序之间共享文件?建议我任何链接,代码等?提前致谢 !!
看看android.support.v4.content.FileProvider.该组件可以通过内容URI将文件从一个应用程序共享到系统中的任何其他应用程序,这允许托管应用程序使用URI(而不仅仅是文件)权限来控制文件.这意味着托管应用程序可以设置临时访问权限,而不是永久更改文件的权限.没有性能损失,因此每次应用程序需要文件时,它都可以获得内容URI和临时权限.非常安全.
FileProvider是ContentProvider的子类,其工作方式大致相同.
目前的参考文档有点模糊.我会试着总结一下:
托管应用程序需要在清单中声明提供程序:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities=authority
android:exported="false"
android:grantUriPermissions="true">
<meta-data>
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/some_name" />
</provider>
Run Code Online (Sandbox Code Playgroud)
xml/子目录中).内容some_name.xml是
<paths>
<files-path name="path-segment" path="filepath"/>
...
</paths
Run Code Online (Sandbox Code Playgroud)
文件路径
共享私有文件区域中的文件(Context.getFilesDir()返回的值),但您也可以共享外部区域和缓存区域中的文件.
filepath
Run Code Online (Sandbox Code Playgroud)
例如,是私有文件区域中的子目录images/.path-segment是进入内容URI的相应路径.例如,如果您使用权限
com.example.myapp.fileprovider
Run Code Online (Sandbox Code Playgroud)
并投入
<files-path name="images" path="images/">
Run Code Online (Sandbox Code Playgroud)
然后生成的内容URI以
content://com.example.myapp.fileprovider/images
Run Code Online (Sandbox Code Playgroud)
如果要共享文件images/myimage.jpg,则生成的内容URI为
content://com.example.myapp.fileprovider/images/myimage.jpg
Run Code Online (Sandbox Code Playgroud)
托管应用程序通过调用`FileProvider.getUriForFile()生成内容URI
什么是好的,你不必在代码中实现FileProvider的子类; 它的默认行为足以满足大多数人的需求.
有关更多信息,请参阅javadoc.
| 归档时间: |
|
| 查看次数: |
4466 次 |
| 最近记录: |