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

Android 10 (Android Q):如何因外部存储更改而解压缩文件(没有android:requestLegacyExternalStorage)

Android 10引入了一项新的存储权限策略,即Scoped Storage(作用域存储),以提高应用数据的安全性和隐私保护。在Android 10中,如果应用需要访问外部存储(例如SD卡)上的文件,应该使用Scoped Storage来进行文件操作。

在Android 10中,如果应用没有声明android:requestLegacyExternalStorage权限,即不使用传统的外部存储权限模式,那么应用将无法直接访问外部存储上的文件。但是,仍然有一些方法可以通过Scoped Storage来解压缩文件。

一种方法是使用ACTION_OPEN_DOCUMENT_TREE意图来请求用户授予应用对外部存储的访问权限。通过此意图,应用可以让用户选择一个目录,然后应用将能够访问该目录及其子目录中的文件。然后,应用可以使用标准的Java文件操作API来解压缩文件。

另一种方法是使用ContentResolverDocumentFile类来进行文件操作。首先,应用可以使用ContentResolveropenOutputStream()方法创建一个输出流,然后使用标准的Java文件操作API将解压缩的文件写入该输出流。类似地,应用可以使用ContentResolveropenInputStream()方法创建一个输入流,然后使用标准的Java文件操作API从输入流中读取文件。

需要注意的是,以上方法都需要在AndroidManifest.xml文件中声明适当的权限,例如<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云对象存储(COS):提供安全、稳定、低成本的云端存储服务,适用于存储和处理大规模非结构化数据。详情请参考:https://cloud.tencent.com/product/cos
  • 腾讯云移动推送(TPNS):为移动应用提供高效、稳定、可靠的消息推送服务,帮助开发者实现消息推送功能。详情请参考:https://cloud.tencent.com/product/tpns
  • 腾讯云云服务器(CVM):提供弹性、安全、稳定的云端服务器,适用于各种应用场景。详情请参考:https://cloud.tencent.com/product/cvm
  • 腾讯云人工智能(AI):提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等,帮助开发者构建智能化应用。详情请参考:https://cloud.tencent.com/product/ai
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券