用于读取和写入原始传感器数据的范围存储强制

问题描述

目前,我们有一款面向 Android 10 的应用,目前使用的是旧版存储 API。我们的应用通过蓝牙传感器进行通信,并在主目录的子文件夹中读取和写入 CSV 文件中的原始数据,该子文件夹为每个用户提供子文件夹。

我知道 Android 11 将强制实施范围存储。我想知道,我们的用例是否超出了范围存储要求? MediaStore 似乎不支持我们的用例。如果没有,我们将如何处理?

解决方法

MediaStore API 仅适用于媒体文件 - 图片、视频和音频。
您可以将所有文件存储在应用程序的私有文件夹中,并为您的应用程序添加一个导出选项(可能将整个结构压缩为一个存档)。因此,用户将能够将其存储或发送到任何他们想要的地方。
在这种情况下,您需要使用 FileProvider 从私有目录中公开文件。

,

在主目录下的子文件夹中读取和写入 CSV 文件中的原始数据,

对于 Android 11 设备,您可以在您称为“主文件夹”的 Documents 目录中创建自己的文件夹和子文件夹。

对于使用 MediaStore:您还可以将任何文件写入该 Documents 目录。如果不是直接在子文件夹中。