该模块向应用提供端云同步能力,包括启动/停止端云同步以及启动/停止原图下载功能。

说明:

  • 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
  • 本模块接口为系统接口,三方应用不支持调用。

导入模块

import cloudSync from '@ohos.file.cloudSync';

SyncState

端云同步状态,为枚举类型。

说明:

以下同步状态发生变更时,如果应用注册了同步过程事件监听,则通过回调通知应用。

系统能力: SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

名称说明
UPLOADING0上行同步中
UPLOAD_FAILED1上行同步失败
DOWNLOADING2下行同步中
DOWNLOAD_FAILED3下行同步失败
COMPLETED4同步成功
STOPPED5同步已停止

ErrorType

端云同步失败类型,为枚举类型。

  • 当前阶段,同步过程中,当移动数据网络和WIFI均不可用时,才会返回NETWORK_UNAVAILABLE;若有一种类型网络可用,则能正常同步。
  • 同步过程中,非充电场景下,电量低于15%,完成当前批上行同步后停止同步,返回低电量;电量低于10%,完成当前批上行同步后停止同步,返回告警电量。
  • 触发同步时,非充电场景下,若电量低于15%,则不允许同步,start接口返回对应错误。
  • 上行时,若云端空间不足,则文件上行失败,云端无该文件记录。
  • 下行时,若本地空间不足,则文件下行失败,本地空间释放后再次同步会重新下行。

系统能力: SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

名称说明
NO_ERROR0没有错误
NETWORK_UNAVAILABLE1所有网络不可用
WIFI_UNAVAILABLE2WIFI不可用
BATTERY_LEVEL_LOW3低电量(低于15%)
BATTERY_LEVEL_WARNING4告警电量(低于10%)
CLOUD_STORAGE_FULL5云端空间不足
LOCAL_STORAGE_FULL6本地空间不足

SyncProgress

端云同步过程。

系统能力: SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

名称类型必填说明
stateSyncState枚举值,端云同步状态
errorErrorType枚举值,同步失败错误类型

GallerySync

云图同步对象,用来支撑图库应用媒体资源端云同步流程。在使用前,需要先创建GallerySync实例。

constructor

constructor()

端云同步流程的构造函数,用于获取GallerySync类的实例。

系统能力:SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

示例:

let gallerySync = new cloudSync.GallerySync()

on

on(evt: 'progress', callback: (pg: SyncProgress) => void): void

添加同步过程事件监听。

需要权限:ohos.permission.CLOUDFILE_SYNC

系统能力:SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

参数:

参数名类型必填说明
evtstring订阅的事件类型,取值为'progress'(同步过程事件)
callback(pg: SyncProgress) => void同步过程事件回调,回调入参为SyncProgress, 返回值为void

错误码:

以下错误码的详细介绍请参见文件管理子系统错误码

错误码ID错误信息
201Permission verification failed.
202The caller is not a system application.
401The input parameter is invalid.
13600001IPC error.

示例:

let gallerySync = new cloudSync.GallerySync();

gallerySync.on('progress', (pg: cloudSync.SyncProgress) => {
  console.info("syncState:" + pg.state);
});

off

off(evt: 'progress', callback: (pg: SyncProgress) => void): void

移除同步过程事件监听。

需要权限:ohos.permission.CLOUDFILE_SYNC

系统能力:SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

参数:

参数名类型必填说明
evtstring取消订阅的事件类型,取值为'progress'(同步过程事件)
callback(pg: SyncProgress) => void同步过程事件回调,回调入参为SyncProgress, 返回值为void

错误码:

以下错误码的详细介绍请参见文件管理子系统错误码

错误码ID错误信息
201Permission verification failed.
202The caller is not a system application.
401The input parameter is invalid.
13600001IPC error.

示例:

let gallerySync = new cloudSync.GallerySync();

let callback = (pg: cloudSync.SyncProgress) => {
  console.info("gallery sync state:" + pg.state + "error type:" + pg.error);
}

gallerySync.on('progress', callback);

gallerySync.off('progress', callback);

off

off(evt: 'progress'): void

移除同步过程事件监听。

需要权限:ohos.permission.CLOUDFILE_SYNC

系统能力:SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

参数:

参数名类型必填说明
evtstring取消订阅的事件类型,取值为'progress'(同步过程事件)

错误码:

以下错误码的详细介绍请参见文件管理子系统错误码

错误码ID错误信息
201Permission verification failed.
202The caller is not a system application.
401The input parameter is invalid.
13600001IPC error.

示例:

let gallerySync = new cloudSync.GallerySync();

gallerySync.on('progress', (pg: cloudSync.SyncProgress) => {
    console.info("syncState:" + pg.state);
});

gallerySync.off('progress');

开始

start(): Promise<void>

异步方法启动端云同步, 以Promise形式返回结果。

需要权限:ohos.permission.CLOUDFILE_SYNC

系统能力:SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

返回值:

类型说明
承诺<无效>使用Promise形式返回启动端云同步的结果

错误码:

以下错误码的详细介绍请参见文件管理子系统错误码

错误码ID错误信息
201Permission verification failed.
202The caller is not a system application.
401The input parameter is invalid.
22400001Cloud status not ready.
22400002Network unavailable.
22400003Battery level warning.

示例:

import { BusinessError } from '@ohos.base';
let gallerySync = new cloudSync.GallerySync();

gallerySync.on('progress', (pg: cloudSync.SyncProgress) => {
    console.info("syncState:" + pg.state);
});

gallerySync.start().then(() => {
    console.info("start sync successfully");
}).catch((err: BusinessError) => {
    console.info("start sync failed with error message: " + err.message + ", error code: " + err.code);
});

开始

start(callback: AsyncCallback<void>): void

异步方法启动端云同步, 以callback形式返回结果。

需要权限:ohos.permission.CLOUDFILE_SYNC

系统能力:SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

参数:

参数名类型必填说明
回调AsyncCallback<void>异步启动端云同步的回调

错误码:

以下错误码的详细介绍请参见文件管理子系统错误码

错误码ID错误信息
201Permission verification failed.
202The caller is not a system application.
401The input parameter is invalid.
22400001Cloud status not ready.
22400002Network unavailable.
22400003Battery level warning.

示例:

import { BusinessError } from '@ohos.base';
let gallerySync = new cloudSync.GallerySync();

gallerySync.start((err: BusinessError) => {
  if (err) {
    console.info("start sync failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("start sync successfully");
  }
});

stop

stop(): Promise<void>

异步方法停止端云同步, 以Promise形式返回结果。

说明:

调用stop接口,同步流程会停止。再次调用start接口会继续同步。

需要权限:ohos.permission.CLOUDFILE_SYNC

系统能力:SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

返回值:

类型说明
Promise<void>使用Promise形式返回停止端云同步的结果

错误码:

以下错误码的详细介绍请参见文件管理子系统错误码

错误码ID错误信息
201Permission verification failed.
202The caller is not a system application.
401The input parameter is invalid.

示例:

import { BusinessError } from '@ohos.base';
let gallerySync = new cloudSync.GallerySync();

gallerySync.stop().then(() => {
    console.info("stop sync successfully");
}).catch((err: BusinessError) => {
    console.info("stop sync failed with error message: " + err.message + ", error code: " + err.code);
});

stop

stop(callback: AsyncCallback<void>): void

异步方法停止端云同步, 以callback形式返回结果。

说明:

调用stop接口,同步流程会停止。再次调用start接口会继续同步。

需要权限:ohos.permission.CLOUDFILE_SYNC

系统能力:SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

参数:

参数名类型必填说明
callbackAsyncCallback<void>异步停止端云同步的回调

错误码:

以下错误码的详细介绍请参见文件管理子系统错误码

错误码ID错误信息
201Permission verification failed.
202The caller is not a system application.
401The input parameter is invalid.

示例:

import { BusinessError } from '@ohos.base';
let gallerySync = new cloudSync.GallerySync();

gallerySync.stop((err: BusinessError) => {
  if (err) {
    console.info("stop sync failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("stop sync successfully");
  }
});

State

云文件下载状态,为枚举类型。

系统能力: SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

名称说明
RUNNING0云文件正在下载中
COMPLETED1云文件下载完成
FAILED2云文件下载失败
STOPPED3云文件下载已停止

DownloadProgress

云文件下载过程。

系统能力: SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

名称类型必填说明
stateState枚举值,云文件下载状态
processed已下载数据大小
size当前云文件大小
uri字符串当前云文件uri

Download

云文件下载对象,用来支撑图库应用原图文件下载流程。在使用前,需要先创建Download实例。

constructor

构造函数()

云文件下载流程的构造函数,用于获取Download类的实例。

系统能力:SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

示例:

let download = new cloudSync.Download()

on(evt: 'progress', callback: (pg: DownloadProgress) => void): void

添加云文件下载过程事件监听。

需要权限:ohos.permission.CLOUDFILE_SYNC

系统能力:SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

参数:

参数名类型必填说明
evt字符串订阅的事件类型,取值为'progress'(下载过程事件)
回调(pg: DownloadProgress) => void云文件下载过程事件回调,回调入参为DownloadProgress, 返回值为void

错误码:

以下错误码的详细介绍请参见文件管理子系统错误码

错误码ID错误信息
201Permission verification failed.
202The caller is not a system application.
401The input parameter is invalid.
13600001IPC error.

示例:

let download = new cloudSync.Download();

download.on('progress', (pg: cloudSync.DownloadProgress) => {
  console.info("download state:" + pg.state);
});

off

off(evt: 'progress', callback: (pg: DownloadProgress) => void): void

移除云文件下载过程事件监听。

需要权限:ohos.permission.CLOUDFILE_SYNC

系统能力:SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

参数:

参数名类型必填说明
evtstring取消订阅的事件类型,取值为'progress'(同步过程事件)
callback(pg: DownloadProgress) => void云文件下载过程事件回调,回调入参为DownloadProgress, 返回值为void

错误码:

以下错误码的详细介绍请参见文件管理子系统错误码

错误码ID错误信息
201Permission verification failed.
202The caller is not a system application.
401The input parameter is invalid.
13600001IPC error.

示例:

let download = new cloudSync.Download();

let callback = (pg: cloudSync.DownloadProgress) => {
  console.info("download state:" + pg.state);
}

download.on('progress', callback);

download.off('progress', callback);

off

off(evt: 'progress'): void

移除云文件下载过程事件监听。

需要权限:ohos.permission.CLOUDFILE_SYNC

系统能力:SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

参数:

参数名类型必填说明
evtstring取消订阅的事件类型,取值为'progress'(下载过程事件)

错误码:

以下错误码的详细介绍请参见文件管理子系统错误码

错误码ID错误信息
201Permission verification failed.
202The caller is not a system application.
401The input parameter is invalid.
13600001IPC error.

示例:

let download = new cloudSync.Download();

download.on('progress', (pg: cloudSync.DownloadProgress) => {
    console.info("download state:" + pg.state);
});

download.off('progress');

开始

start(uri: string): Promise<void>

异步方法启动云文件下载, 以Promise形式返回结果。

需要权限:ohos.permission.CLOUDFILE_SYNC

系统能力:SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

参数:

参数名类型必填说明
uri字符串待下载文件uri

返回值:

类型说明
承诺<无效>使用Promise形式返回启动云文件下载的结果

示例:

import { BusinessError } from '@ohos.base';
let download = new cloudSync.Download();
let uri: string = "file:///media/Photo/1";

download.on('progress', (pg: cloudSync.DownloadProgress) => {
    console.info("download state:" + pg.state);
});

download.start(uri).then(() => {
    console.info("start download successfully");
}).catch((err: BusinessError) => {
    console.info("start download failed with error message: " + err.message + ", error code: " + err.code);
});

错误码:

以下错误码的详细介绍请参见文件管理子系统错误码

错误码ID错误信息
201Permission verification failed.
202The caller is not a system application.
401The input parameter is invalid.
13900002No such file or directory.
13900025No space left on device.

开始

start(uri: string, callback: AsyncCallback<void>): void

异步方法启动云文件下载, 以callback形式返回结果。

需要权限:ohos.permission.CLOUDFILE_SYNC

系统能力:SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

参数:

参数名类型必填说明
uri字符串待下载文件uri
回调AsyncCallback<void>异步启动云文件下载的回调

错误码:

以下错误码的详细介绍请参见文件管理子系统错误码

错误码ID错误信息
201Permission verification failed.
202The caller is not a system application.
401The input parameter is invalid.
13900002No such file or directory.
13900025No space left on device.

示例:

import { BusinessError } from '@ohos.base';
let download = new cloudSync.Download();
let uri: string = "file:///media/Photo/1";

download.start(uri, (err: BusinessError) => {
  if (err) {
    console.info("start download failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("start download successfully");
  }
});

stop

stop(uri: string): Promise<void>

异步方法停止云文件下载, 以Promise形式返回结果。

说明:

调用stop接口, 当前文件下载流程会终止, 缓存文件会被删除,再次调用start接口会重新开始下载

需要权限:ohos.permission.CLOUDFILE_SYNC

系统能力:SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

参数:

参数名类型必填说明
uristring待下载文件uri

返回值:

类型说明
Promise<void>使用Promise形式返回停止云文件下载的结果

错误码:

以下错误码的详细介绍请参见文件管理子系统错误码

错误码ID错误信息
201Permission verification failed.
202The caller is not a system application.
401The input parameter is invalid.

示例:

import { BusinessError } from '@ohos.base';
let download = new cloudSync.Download();
let uri: string = "file:///media/Photo/1";

download.stop(uri).then(() => {
    console.info("stop download successfully");
}).catch((err: BusinessError) => {
    console.info("stop download failed with error message: " + err.message + ", error code: " + err.code);
});

stop

stop(uri: string, callback: AsyncCallback<void>): void

异步方法停止云文件下载, 以callback形式返回结果。

说明:

调用stop接口, 当前文件下载流程会终止, 缓存文件会被删除, 再次调用start接口会重新开始下载

需要权限:ohos.permission.CLOUDFILE_SYNC

系统能力:SystemCapability.FileManagement.DistributedFileService.CloudSync.Core

参数:

参数名类型必填说明
uristring待下载文件uri
回调AsyncCallback<void>异步停止云文件下载的回调

错误码:

以下错误码的详细介绍请参见文件管理子系统错误码

错误码ID错误信息
201Permission verification failed.
202The caller is not a system application.
401The input parameter is invalid.

示例:

import { BusinessError } from '@ohos.base';
let download = new cloudSync.Download();
let uri: string = "file:///media/Photo/1";

download.stop(uri, (err: BusinessError) => {
  if (err) {
    console.info("stop download failed with error message: " + err.message + ", error code: " + err.code);
  } else {
    console.info("stop download successfully");
  }
});

最后

有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。 

这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。

希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!

获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

鸿蒙(HarmonyOS NEXT)最新学习路线

  •  HarmonOS基础技能

  • HarmonOS就业必备技能 
  •  HarmonOS多媒体技术

  • 鸿蒙NaPi组件进阶

  • HarmonOS高级技能

  • 初识HarmonOS内核 
  • 实战就业级设备开发

有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。

获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

《鸿蒙 (OpenHarmony)开发入门教学视频》

《鸿蒙生态应用开发V2.0白皮书》

图片

《鸿蒙 (OpenHarmony)开发基础到实战手册》

OpenHarmony北向、南向开发环境搭建

图片

 《鸿蒙开发基础》

  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……

图片

 《鸿蒙开发进阶》

  • Stage模型入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 通知与窗口管理
  • 多媒体技术
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向未来设计
  • 鸿蒙系统移植和裁剪定制
  • ……

图片

《鸿蒙进阶实战》

  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

图片

 获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

总结

总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐