美文网首页
使用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