-

场景介绍

为了给用户展示存储设备信息,开发者可以使用数据存储管理接口获取存储设备视图信息,也可以根据用户提供的文件名获取对应存储设备的视图信息。

开放能力介绍

数据存储管理为开发者提供下面几种功能,具体的API参考。

功能分类 类名 接口名 描述
查询设备视图 ohos.data.usage.DataUsage getVolumes() 获取当前用户可用的设备列表视图。
getVolume(File file) 获取存储该文件的存储设备视图。
getVolume(Context context, Uri uri) 获取该URI对应文件所在的存储设备视图。
getDiskMountedStatus() 获取默认存储设备的挂载状态。
getDiskMountedStatus(File path) 获取存储该文件设备的挂载状态。
isDiskPluggable() 默认存储设备是否为可插拔设备。
isDiskPluggable(File path) 存储该文件的设备是否为可插拔设备。
isDiskEmulated() 默认存储设备是否为虚拟设备。
isDiskEmulated(File path) 存储该文件的设备是否为虚拟设备。
查询设备视图属性 ohos.data.usage.Volume isEmulated() 该设备是否是虚拟存储设备。
isPluggable() 该设备是否支持插拔。
getDescription() 获取设备描述信息。
getState() 获取设备挂载状态。
getVolUuid() 获取设备唯一标识符。

开发步骤

查询设备视图

调用查询设备视图接口。

// 获取默认存储设备挂载状态
MountState status = DataUsage.getDiskMountedStatus();
// 获取存储设备列表
Optional<List<Volume>> list = DataUsage.getVolumes();
// 默认存储设备是否为可插拔设备
boolean pluggable = DataUsage.isDiskPluggable();

查询设备视图属性

  1. 调用查询设备视图接口获取某个设备视图 Volume。

  1. 调用 Volume 的接口即可查询视图属性。

   // 获取example.txt 文件所在的存储设备的视图属性
   Optional<Volume> volume = DataUsage.getVolume(new File("/sdcard/example.txt"));
   volume.ifPresent(theVolume -> { 
           System.out.println(theVolume.isEmulated());
           System.out.println(theVolume.isPluggable());
           System.out.println(theVolume.getDescription());
           System.out.println(theVolume.getVolUuid());
       }
   );