首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Intent.ACTION_OPEN_DOCUMENT在安卓Q中不起作用

的原因是,安卓Q引入了Scoped Storage机制,对应用访问外部存储进行了限制。在此版本中,应用默认只能访问自身的沙盒目录,并且无法直接访问外部存储的文件。因此,使用Intent.ACTION_OPEN_DOCUMENT无法成功打开文档。

为了解决这个问题,可以通过使用新的API来适配安卓Q的Scoped Storage机制。以下是一些解决方案:

  1. 使用Document API:安卓Q引入了Document API,它允许应用通过DocumentProvider访问外部存储中的文件。通过使用Document API,可以使应用能够与外部存储进行交互并打开文档。具体的实现可以参考安卓官方文档:Scoped Storage
  2. 请求Legacy External Storage权限:通过在应用的清单文件中声明请求Legacy External Storage权限,可以将应用切换回旧的外部存储访问方式,即非Scoped Storage模式。这样做的话,应用将能够使用Intent.ACTION_OPEN_DOCUMENT来打开文档。但是需要注意的是,这种解决方案可能会受到安卓未来版本的限制,因为Scoped Storage是Google推荐的存储模式。

综上所述,通过使用Document API或请求Legacy External Storage权限,可以解决在安卓Q中Intent.ACTION_OPEN_DOCUMENT无法起作用的问题。具体选择哪种解决方案取决于应用的需求和迁移策略。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

3分0秒

软件测试|安卓与iOS在APP测试有哪些区别

-

苹果迎来出头之日,反超安卓夺回第一,华为已在榜单中消失

10分27秒

20_数据存储(中)_总结.avi

18分28秒

09_应用练习1_在Activity中播放音乐.avi

10分16秒

10_应用练习1_在Service中播放音乐.avi

8分0秒

01_SQLite数据库存储_说明.avi

9分52秒

11_应用练习2_界面布局.avi

7分42秒

15_应用练习2_显示列表.avi

10分42秒

02_SQLite数据库存储_Sqlite介绍.avi

11分31秒

03_SQLite数据库存储_Sql语法.avi

14分26秒

04_SQLite数据库存储_相关API.avi

7分14秒

06_数据库存储测试_插入数据.avi

领券