如何解决是否可以与其他应用程序共享使用存储访问框架存储的文件
我使用存储访问框架将文档保存到光盘。有什么方法可以使用 Intent 与其他应用共享该特定文档文件吗?
我使用以下方法分享:
fun Activity.sharePdf(pdfUri: Uri) {
var intent = Intent(Intent.ACTION_SEND)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
val uri =
FileProvider.getUriForFile(
this,this.packageName.toString() + ".provider",File(pdfUri.toString())
)
intent.type = "application/pdf";
intent.putExtra(Intent.EXTRA_STREAM,uri);
intent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
} else {
intent.type = "application/pdf";
intent.putExtra(Intent.EXTRA_STREAM,pdfUri.toString())
intent = Intent.createChooser(intent,"Open File")
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
}
startActivity(intent)
}
这不适用于使用 SAF 存储的文件。
解决方法
这对我有用
fun Activity.sharePdf(pdfUri: Uri) {
val intent = Intent(Intent.ACTION_SEND)
intent.type = "application/pdf"
intent.putExtra(Intent.EXTRA_STREAM,pdfUri)
intent.clipData = ClipData("fileName",arrayOf("application/pdf"),ClipData.Item(pdfUri))
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
startActivity(Intent.createChooser(intent,"chooserTitle"))
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。