分布式媒体库 在 API6+ 开始 OpenHarmony (后续称ohos) 拥有了新的系统能力 multimedialibrary (分布式媒体库)
分支 - 分布式相册 而在目前的相册应用中通过 HarmonyOS 的超级终端功能 我们可以访问第二台 HarmonyOS 设备上的相册 而下面将演示如何使应用快速使用分布式相册这个能力
媒体库访问鉴权 在 DevEco Studio 中打开应用目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 magoo@hyperv-ubuntu > ~/share/OpenHarmony/Lava/entry/src > tree . ├─main │ ├─config.json │ ├─java │ │ └─cn │ │ └─magicst │ │ └─lava │ │ ├─MainAbility.java │ │ ├─MyApplication.java │ │ └─slice │ │ └─MainAbilitySlice.java │ └─resources │ ├─icon.png │ ├─base │ │ ├─element │ │ ├─color.json │ │ ├─float.json │ │ ├─string.json │ │ ├─graphic │ │ ├─background_ability_main.xml │ │ ├─layout │ │ ├─land_main.xml │ │ ├─port_main.xml │ │ ├─media │ │ ├─icon.png │ │ ├─pic1.png │ │ └─profile │ └─rawfile ├─ohosTest └─test
在 main
目录中找到 config.json
申明权限
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 "module" : { ... "reqPermissions" : [ { "name" : "ohos.permission.MEDIA_LOCATION" , "reason" : "request permission" } , { "name" : "ohos.permission.READ_MEDIA" , "reason" : "request permission" } , { "name" : "ohos.permission.WRITE_MEDIA" , "reason" : "request permission" } , ... ] ... }
接入分布式媒体库 分支 - 接入分布式相册 现在开始就可以正式让应用使用ohos的分布式相册
引用媒体库接口 1 import MediaLib from '@ohos.multimedia.mediaLibrary' ;
获取媒体库实例 1 MediaLibraryAccess .media = MediaLib .getMediaLibrary (this .context );
获取周围设备(有效的)信息 1 let devices =await MediaLibraryAccess .media .getActivePeers ();
获取文件列表 1 2 let fileResult = await MediaLibraryAccess .media .getFileAssets (AlbumDDefine .getFetchOpt (AlbumDefine .ALBUM_NAME_ALL , dev.networkId ));
这样就完成对 ohos 分布式媒体库的接入和访问
分布式媒体库的API获取 1 2 3 4 5 6 7 8 9 10 11 12 13 interface MediaLibrary { ... getActivePeers (): Promise <Array <Peerlnfo >>;} interface Peerlnfo { readonly deviceName : string; readonly networkld : string; readonly deviceType : DeviceType ; readonly isOnline : boolean; }
以上就是 ohos 应用对分布式媒体库的分支 分布式相册能力的访问和读取了