当前位置:   article > 正文

Android将文件保存在本地,并且打开文件_android 下载保存文件 fileprovider

android 下载保存文件 fileprovider

前言

思路:文件类型是String类型的Base64字符串,然后将其转成byte[]类型后保存在本地,最后调用Intent方法打开文件。

保存文件的方法

private void saveFile(String base64Data, String fileName) {
    // 解码base64Data为字节数组
    byte[] data = Base64.decode(base64Data, Base64.DEFAULT);

    // 将字节数组转换为Excel文件并保存到本地
    try {
		String path = Environment.getExternalStorageDirectory() // 文件保存的路径
        File file = new File(path, fileName);
        FileOutputStream fos = new FileOutputStream(file);
        fos.write(data);
        fos.close();
        toastMsg("文件保存成功!");
        openFile(file);
    } catch (IOException e) {
        e.printStackTrace();
        toastMsg("文件保存失败!");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

打开文件的方法

// 应用程序的FileProvider授权
String provider = "com.pft.smartwater.fileProvider";
Uri uri = FileProvider.getUriForFile(this, provider, file);

try {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(uri, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
} catch (ActivityNotFoundException e) {
    toastMsg("未查找到能打开该文件的应用程序,请手动前往打开文件。文件目录:" + file.getPath());
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

引用程序的授权

这个是在AndroidManifest.xml中定义的FileProvider的授权名称(authorities的内容)。

<provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="com.pft.smartwater.fileProvider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/filepath" />
</provider>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/669218
推荐阅读
相关标签
  

闽ICP备14008679号