当前位置: 首页 > news >正文

分享文件

private fun openFile(file: File) {
try {
val uri = FileProvider.getUriForFile(
this,
"${packageName}.fileprovider",
file
)

val mimeType = when (file.extension.lowercase()) {
"xlsx" -> "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
"xls" -> "application/vnd.ms-excel"
"csv" -> "text/csv"
else -> "*/*"
}

val intent = Intent(Intent.ACTION_VIEW).apply {
setDataAndType(uri, mimeType)
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
}

if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
} else {
// 没有可以打开的应用 → 尝试分享
val shareIntent = Intent(Intent.ACTION_SEND).apply {
type = mimeType
putExtra(Intent.EXTRA_STREAM, uri)
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
}
startActivity(Intent.createChooser(shareIntent, "打开文件"))
}
} catch (e: Exception) {
Log.e("BenchmarkActivity", "Failed to open file", e)
Toast.makeText(this, "无法打开文件: ${e.message}", Toast.LENGTH_LONG).show()
}
}

<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
http://www.jsqmd.com/news/670262/

相关文章:

  • Java服务端集成ZXing:从基础二维码生成到Web动态响应的完整实践
  • 连续三年抽检合格的沙发厂家推荐,河北软体沙发源头工厂怎么选 - mypinpai
  • NaViL-9B效果实测:复杂布局图片文字识别+语义描述对比
  • 2.3 LED闪灯实验
  • G-Helper终极指南:如何用10MB软件替代臃肿的华硕控制中心
  • Stable Yogi Leather-Dress-Collection生成控制进阶:使用ControlNet精确约束服饰轮廓
  • SQL连接查询中处理NULL值的技巧_利用COALESCE处理JOIN结果
  • 雷达原理笔记6
  • 别再硬啃文档了!用Matlab R2020a+读取gprMax的out文件,这份避坑指南帮你搞定HDF5数据
  • OBS多平台直播插件:一站式解决多平台同时直播的技术方案
  • Sonic数字人商业案例:打造低成本虚拟客服播报系统
  • 2026年靠谱的GEO优化企业推荐,教你如何选择高性价比服务公司 - 工业推荐榜
  • 告别裸机调试:在Zynq上为AD9361移植Linux并配置IIO驱动的完整流程(基于Vivado 2022.1和Petalinux)
  • MySQL从库出现数据同步异常中断_重新获取binlog坐标同步
  • 《B4065 [GESP202412 二级] 数位和》
  • AIACC荷兰投资移民后续服务如何,信息透明度是关键 - myqiye
  • 51单片机实战:TTP229矩阵触摸模块的16键单键有效模式配置与防误触优化
  • HsMod深度解析:55项功能打造终极炉石传说游戏体验
  • MAA明日方舟助手:3分钟解放双手的智能游戏自动化神器
  • Phi-4-reasoning-vision-15B应用场景:法律文书截图→当事人/案由/判决结果三要素抽取
  • Elsevier投稿监控插件:科研工作者的智能审稿助手终极指南
  • Qwen3-ASR语音识别常见问题:端口冲突与显存不够用快速修复
  • Pixel Fashion Atelier应用场景:独立游戏开发者像素服装资产批量生成
  • 剖析考研机构如何选择,盘点口碑好、靠谱的品牌推荐 - 工业设备
  • 2026年3月AI动画制作公司推荐,设计公司/CG动画/广告设计/护肤品设计/品牌设计,AI动画制作公司口碑推荐 - 品牌推荐师
  • RK3568 Android系统下移远EC20 4G模块的驱动适配与网络调试实战
  • 为什么92%的AGI实验项目在分布式阶段失败?——揭秘跨节点推理一致性断点与5步修复框架(内附开源验证工具链)
  • 如何3分钟学会从视频智能提取PPT:新手终极指南
  • 保姆级教程:用Miniconda为Isaac Lab创建独立Python环境(DGX Spark实测)
  • Qwen-Image-Layered快速上手:无需PS基础,5分钟玩转图像分层