particleAbility模块
particleAbility模块提供了Service类型Ability的能力,包括启动、停止指定的particleAbility,获取dataAbilityHelper,连接、断开当前Ability与指定ServiceAbility等。
说明:
本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块接口仅可在FA模型下使用。
使用限制
particleAbility模块用来对Data和Service类型的Ability进行操作。
导入模块
import particleAbility from '@ohos.ability.particleAbility'
开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。
particleAbility.startAbility
startAbility(parameter: StartAbilityParameter, callback: AsyncCallback<void>): void
使用此方法启动指定的particleAbility(callback形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
parameter | StartAbilityParameter | 是 | 指示启动的ability |
callback | AsyncCallback<void> | 是 | 被指定的回调方法 |
示例:
import particleAbility from '@ohos.ability.particleAbility'
import wantConstant from '@ohos.ability.wantConstant'
particleAbility.startAbility({want:{action: "action.system.home",entities: ["entity.system.home"],type: "MIMETYPE",flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,deviceId: "",bundleName: "com.example.Data",abilityName: "com.example.Data.MainAbility",uri:""},},(error, result) => {console.log('particleAbility startAbility errCode:' + error + 'result:' + result)},
)
particleAbility.startAbility
startAbility(parameter: StartAbilityParameter): Promise<void>;
使用此方法启动指定的particleAbility(Promise形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
parameter | StartAbilityParameter | 是 | 指示启动的ability |
返回值:
类型 | 说明 |
---|---|
Promise<void> | 使用Promise形式返回结果。 |
示例:
import particleAbility from '@ohos.ability.particleAbility'
import wantConstant from '@ohos.ability.wantConstant'
particleAbility.startAbility({want:{action: "action.system.home",entities: ["entity.system.home"],type: "MIMETYPE",flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,deviceId: "",bundleName: "com.example.Data",abilityName: "com.example. Data.MainAbility",uri:""},},
).then((data) => {console.info("particleAbility startAbility");
});
particleAbility.terminateSelf
terminateSelf(callback: AsyncCallback<void>): void
终止particleAbility(callback形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 表示被指定的回调方法 |
示例:
import particleAbility from '@ohos.ability.particleAbility'
particleAbility.terminateSelf((error, result) => {console.log('particleAbility terminateSelf errCode:' + error + 'result:' + result)}
)
particleAbility.terminateSelf
terminateSelf(): Promise<void>
终止particleAbility(Promise形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
返回值:
类型 | 说明 |
---|---|
Promise<void> | 使用Promise形式返回结果。 |
示例:
import particleAbility from '@ohos.ability.particleAbility'
particleAbility.terminateSelf().then((data) => {console.info("particleAbility terminateSelf");
});
particleAbility.acquireDataAbilityHelper
acquireDataAbilityHelper(uri: string): DataAbilityHelper
获取dataAbilityHelper。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
uri | string | 是 | 指示要打开的文件的路径。 |
返回值:
类型 | 说明 |
---|---|
DataAbilityHelper | 用来协助其他Ability访问DataAbility的工具类。 |
示例:
import particleAbility from '@ohos.ability.particleAbility'
var uri = "";
particleAbility.acquireDataAbilityHelper(uri)
particleAbility.startBackgroundRunning
startBackgroundRunning(id: number, request: NotificationRequest, callback: AsyncCallback<void>): void;
向系统申请长时任务,使用callback形式返回结果,建议使用新接口backgroundTaskManager.startBackgroundRunning)。
需要权限: ohos.permission.KEEP_BACKGROUND_RUNNING
系统能力:SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
id | number | 是 | 长时任务通知id号 |
request | NotificationRequest | 是 | 通知参数,用于显示通知栏的信息 |
callback | AsyncCallback<void> | 是 | callback形式返回启动长时任务的结果 |
示例:
import notification from '@ohos.notification';
import particleAbility from '@ohos.ability.particleAbility';
import wantAgent from '@ohos.wantAgent';function callback(err, data) {if (err) {console.error("Operation failed Cause: " + err);} else {console.info("Operation succeeded");}
}let wantAgentInfo = {wants: [{bundleName: "com.example.myapplication",abilityName: "com.example.myapplication.MainAbility"}],operationType: wantAgent.OperationType.START_ABILITY,requestCode: 0,wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
};wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {let basicContent = {title: "title",text: "text"};let notificationContent = {contentType: notification.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,normal: basicContent};let request = {content: notificationContent,wantAgent: wantAgentObj};let id = 1;particleAbility.startBackgroundRunning(id, request, callback);
});
particleAbility.startBackgroundRunning
startBackgroundRunning(id: number, request: NotificationRequest): Promise<void>
需要权限: ohos.permission.KEEP_BACKGROUND_RUNNING
系统能力:SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
向系统申请长时任务,使用promise形式返回结果,建议使用新接口backgroundTaskManager.startBackgroundRunning)。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
id | number | 是 | 长时任务通知id号 |
request | NotificationRequest | 是 | 通知参数,用于显示通知栏的信息 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | 使用Promise形式返回结果。 |
示例:
import notification from '@ohos.notification';
import particleAbility from '@ohos.ability.particleAbility';
import wantAgent from '@ohos.wantAgent';let wantAgentInfo = {wants: [{bundleName: "com.example.myapplication",abilityName: "com.example.myapplication.MainAbility"}],operationType: wantAgent.OperationType.START_ABILITY,requestCode: 0,wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
};wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {let basicContent = {title: "title",text: "text"};let notificationContent = {contentType: notification.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,normal: basicContent};let request = {content: notificationContent,wantAgent: wantAgentObj};let id = 1;particleAbility.startBackgroundRunning(id, request).then(() => {console.info("Operation succeeded");}).catch((err) => {console.error("Operation failed Cause: " + err);});
});
particleAbility.cancelBackgroundRunning
cancelBackgroundRunning(callback: AsyncCallback<void>): void;
向系统申请取消长时任务,使用callback形式返回结果,建议使用新接口backgroundTaskManager.stopBackgroundRunning)。
系统能力:SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | callback形式返回启动长时任务的结果 |
示例:
import particleAbility from '@ohos.ability.particleAbility';function callback(err, data) {if (err) {console.error("Operation failed Cause: " + err);} else {console.info("Operation succeeded");}
}
particleAbility.cancelBackgroundRunning(callback);
particleAbility.cancelBackgroundRunning
cancelBackgroundRunning(): Promise<void>;
向系统申请取消长时任务,使用promise形式返回结果,建议使用新接口backgroundTaskManager.stopBackgroundRunning)。
系统能力:SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
返回值:
类型 | 说明 |
---|---|
Promise<void> | 使用Promise形式返回结果。 |
示例:
import particleAbility from '@ohos.ability.particleAbility';particleAbility.cancelBackgroundRunning().then(() => {console.info("Operation succeeded");
}).catch((err) => {console.error("Operation failed Cause: " + err);
});
particleAbility.connectAbility
connectAbility(request: Want, options:ConnectOptions): number
将当前ability连接到指定ServiceAbility(callback形式)。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
request | Want) | 是 | 表示被连接的ServiceAbility。 |
options | ConnectOptions | 是 | 被指定的回调方法。 |
ConnectOptions类型说明:
系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
名称 | 读写属性 | 类型 | 必填 | 描述 |
---|---|---|---|---|
onConnect | 只读 | function | 是 | 连接成功时的回调函数。 |
onDisconnect | 只读 | function | 是 | 连接失败时的回调函数。 |
onFailed | 只读 | function | 是 | ConnectAbility调用失败时的回调函数。 |
示例:
import rpc from '@ohos.rpc'function onConnectCallback(element, remote){console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));}function onDisconnectCallback(element){console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)}function onFailedCallback(code){console.log('particleAbilityTest ConnectAbility onFailed errCode : ' + code)}var connId = particleAbility.connectAbility({bundleName: "com.ix.ServiceAbility",abilityName: "ServiceAbilityA",},{onConnect: onConnectCallback,onDisconnect: onDisconnectCallback,onFailed: onFailedCallback,},);particleAbility.disconnectAbility(connId).then((data)=>{console.log( " data: " + data);}).catch((error)=>{console.log('particleAbilityTest result errCode : ' + error.code )});
particleAbility.disconnectAbility
disconnectAbility(connection: number, callback:AsyncCallback<void>): void;
将功能与服务功能断开连接。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | callback形式返回断开连接的结果 |
示例:
import rpc from '@ohos.rpc'function onConnectCallback(element, remote){console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));}function onDisconnectCallback(element){console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)}function onFailedCallback(code){console.log('particleAbilityTest ConnectAbility onFailed errCode : ' + code)}var connId = particleAbility.connectAbility({bundleName: "com.ix.ServiceAbility",abilityName: "ServiceAbilityA",},{onConnect: onConnectCallback,onDisconnect: onDisconnectCallback,onFailed: onFailedCallback,},);var result = particleAbility.disconnectAbility(connId).then((data)=>{console.log( " data: " + data);}).catch((error)=>{console.log('particleAbilityTest result errCode : ' + error.code )});
particleAbility.disconnectAbility
disconnectAbility(connection: number): Promise<void>;
将功能与服务功能断开连接。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
返回值:
类型 | 说明 | |
---|---|---|
Promise<void> | 使用Promise形式返回结果。 | HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿 |
示例:
import rpc from '@ohos.rpc'
function onConnectCallback(element, remote){console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));}function onDisconnectCallback(element){console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)}function onFailedCallback(code){console.log('particleAbilityTest ConnectAbility onFailed errCode : ' + code)}var connId = particleAbility.connectAbility({bundleName: "com.ix.ServiceAbility",abilityName: "ServiceAbilityA",},{onConnect: onConnectCallback,onDisconnect: onDisconnectCallback,onFailed: onFailedCallback,},);particleAbility.disconnectAbility(connId).then((data)=>{console.log( " data: " + data);}).catch((error)=>{console.log('particleAbilityTest result errCode : ' + error.code )});
ErrorCode
获取错误代码。
系统能力:SystemCapability.Ability.AbilityRuntime.FAModel
变量 | 值 | 说明 |
---|---|---|
INVALID_PARAMETER | -1 | 无效的参数。 |
鸿蒙开发岗位需要掌握那些核心要领?
目前还有很多小伙伴不知道要学习哪些鸿蒙技术?不知道重点掌握哪些?为了避免学习时频繁踩坑,最终浪费大量时间的。
自己学习时必须要有一份实用的鸿蒙(Harmony NEXT)资料非常有必要。 这里我推荐,根据鸿蒙开发官网梳理与华为内部人员的分享总结出的开发文档。内容包含了:【ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战】等技术知识点。
废话就不多说了,接下来好好看下这份资料。
如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。鸿蒙OpenHarmony知识←前往。下面是鸿蒙开发的学习路线图。
针对鸿蒙成长路线打造的鸿蒙学习文档。鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,帮助大家在技术的道路上更进一步。
其中内容包含:
《鸿蒙开发基础》鸿蒙OpenHarmony知识←前往
- ArkTS语言
- 安装DevEco Studio
- 运用你的第一个ArkTS应用
- ArkUI声明式UI开发
- .……
《鸿蒙开发进阶》鸿蒙OpenHarmony知识←前往
- Stage模型入门
- 网络管理
- 数据管理
- 电话服务
- 分布式应用开发
- 通知与窗口管理
- 多媒体技术
- 安全技能
- 任务管理
- WebGL
- 国际化开发
- 应用测试
- DFX面向未来设计
- 鸿蒙系统移植和裁剪定制
- ……
《鸿蒙开发实战》鸿蒙OpenHarmony知识←前往
- ArkTS实践
- UIAbility应用
- 网络案例
- ……
最后
鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!