美文网首页
使用FileProvider分享文件异常

使用FileProvider分享文件异常

作者: 魔鬼王中王 | 来源:发表于2021-06-09 14:34 被阅读0次

第一步:

在Androidmanifest中声明FileProvider

···

       <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="包名.fileProvider"
            android:exported="false"
            android:grantUriPermissions="true">

        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_path" />

        </provider>

···
第二步:
在xml文件中新建一个名为 file_path.xml 的文件,内容如下:

···

 <?xml version="1.0" encoding="utf-8"?>
<paths>

<files-path
    name="name"
    path="/" />

<external-files-path
    name="name"
    path="/" />

<root-path
    name="name"
    path="/" />

<external-path
    name="external_storage_root"
    path="." />


<external-path
    name="app_update_external"
    path="/" />

<external-cache-path
    name="app_update_cache"
    path="/" />

 </paths>

···

第三步:
找到你需要分享的文件然后分享:
···

                     File file = new File(path);//需要分享文件
                     Uri uriForFile = FileProvider.getUriForFile(mContext,                   
                       "包名.fileProvider", file);//通过file provider拿到可供外部读取的URI链接
                     Intent intent1 = new Intent(Intent.ACTION_SEND);//设置意图为ACTION_SEND
                     intent1.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);//授权外部应用通过URI读取你的File(非常重要)
                     intent1.putExtra(Intent.EXTRA_STREAM,uriForFile);//Intent.EXTRA_STREAM分享一个文件流,uriForFile文件的URI
                     intent1.setType("application/*");
                     startActivity(Intent.createChooser(intent1,"选择分享"));//创建分享选择器

···
完美!!!

相关文章

网友评论

      本文标题:使用FileProvider分享文件异常

      本文链接:https://www.haomeiwen.com/subject/dorosltx.html