particleAbility模塊
particleAbility模塊提供了Service類(lèi)型Ability的能力,包括啟動(dòng)、停止指定的particleAbility,獲取dataAbilityHelper,連接、斷開(kāi)當(dāng)前Ability與指定ServiceAbility等。
說(shuō)明:
本模塊首批接口從API version 7開(kāi)始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。
本模塊接口僅可在FA模型下使用。
使用限制
particleAbility模塊用來(lái)對(duì)Data和Service類(lèi)型的Ability進(jìn)行操作。
導(dǎo)入模塊
import particleAbility from '@ohos.ability.particleAbility'
開(kāi)發(fā)前請(qǐng)熟悉鴻蒙開(kāi)發(fā)指導(dǎo)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
particleAbility.startAbility
startAbility(parameter: StartAbilityParameter, callback: AsyncCallback): void
使用此方法啟動(dòng)指定的particleAbility(callback形式)。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.FAModel
名稱(chēng) | 類(lèi)型 | 必填 | 描述 |
---|---|---|---|
parameter | [StartAbilityParameter] | 是 | 指示啟動(dòng)的ability |
callback | AsyncCallback | 是 | 被指定的回調(diào)方法 |
示例:
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;
使用此方法啟動(dòng)指定的particleAbility(Promise形式)。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.FAModel
參數(shù):
名稱(chēng) | 類(lèi)型 | 必填 | 描述 |
---|---|---|---|
parameter | [StartAbilityParameter] | 是 | 指示啟動(dòng)的ability |
返回值:
類(lèi)型 | 說(shuō)明 |
---|---|
Promise | 使用Promise形式返回結(jié)果。 |
示例:
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
終止particleAbility(callback形式)。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.FAModel
參數(shù):
名稱(chēng) | 類(lèi)型 | 必填 | 描述 |
---|---|---|---|
callback | AsyncCallback | 是 | 表示被指定的回調(diào)方法 |
示例:
import particleAbility from '@ohos.ability.particleAbility'
particleAbility.terminateSelf(
(error, result) = > {
console.log('particleAbility terminateSelf errCode:' + error + 'result:' + result)
}
)
particleAbility.terminateSelf
terminateSelf(): Promise
終止particleAbility(Promise形式)。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.FAModel
返回值:
類(lèi)型 | 說(shuō)明 |
---|---|
Promise | 使用Promise形式返回結(jié)果。 |
示例:
import particleAbility from '@ohos.ability.particleAbility'
particleAbility.terminateSelf().then((data) = > {
console.info("particleAbility terminateSelf");
});
particleAbility.acquireDataAbilityHelper
acquireDataAbilityHelper(uri: string): DataAbilityHelper
獲取dataAbilityHelper。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.FAModel
參數(shù):
名稱(chēng) | 類(lèi)型 | 必填 | 描述 |
---|---|---|---|
uri | string | 是 | 指示要打開(kāi)的文件的路徑。 |
返回值:
類(lèi)型 | 說(shuō)明 |
---|---|
DataAbilityHelper | 用來(lái)協(xié)助其他Ability訪問(wèn)DataAbility的工具類(lèi)。 |
示例:
import particleAbility from '@ohos.ability.particleAbility'
var uri = "";
particleAbility.acquireDataAbilityHelper(uri)
particleAbility.startBackgroundRunning
startBackgroundRunning(id: number, request: NotificationRequest, callback: AsyncCallback): void;
向系統(tǒng)申請(qǐng)長(zhǎng)時(shí)任務(wù),使用callback形式返回結(jié)果,建議使用新接口[backgroundTaskManager.startBackgroundRunning]
需要權(quán)限: ohos.permission.KEEP_BACKGROUND_RUNNING
系統(tǒng)能力 :SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
參數(shù):
參數(shù)名 | 類(lèi)型 | 必填 | 說(shuō)明 |
---|---|---|---|
id | number | 是 | 長(zhǎng)時(shí)任務(wù)通知id號(hào) |
request | NotificationRequest | 是 | 通知參數(shù),用于顯示通知欄的信息 |
callback | AsyncCallback | 是 | callback形式返回啟動(dòng)長(zhǎng)時(shí)任務(wù)的結(jié)果 |
示例 :
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
需要權(quán)限: ohos.permission.KEEP_BACKGROUND_RUNNING
系統(tǒng)能力 :SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
向系統(tǒng)申請(qǐng)長(zhǎng)時(shí)任務(wù),使用promise形式返回結(jié)果,建議使用新接口[backgroundTaskManager.startBackgroundRunning]
參數(shù):
參數(shù)名 | 類(lèi)型 | 必填 | 說(shuō)明 |
---|---|---|---|
id | number | 是 | 長(zhǎng)時(shí)任務(wù)通知id號(hào) |
request | NotificationRequest | 是 | 通知參數(shù),用于顯示通知欄的信息 |
返回值:
類(lèi)型 | 說(shuō)明 |
---|---|
Promise | 使用Promise形式返回結(jié)果。 |
示例 :
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;
向系統(tǒng)申請(qǐng)取消長(zhǎng)時(shí)任務(wù),使用callback形式返回結(jié)果,建議使用新接口[backgroundTaskManager.stopBackgroundRunning]
系統(tǒng)能力 :SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
參數(shù):
參數(shù)名 | 類(lèi)型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback | 是 | callback形式返回啟動(dòng)長(zhǎng)時(shí)任務(wù)的結(jié)果 |
示例 :
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;
向系統(tǒng)申請(qǐng)取消長(zhǎng)時(shí)任務(wù),使用promise形式返回結(jié)果,建議使用新接口[backgroundTaskManager.stopBackgroundRunning]
系統(tǒng)能力 :SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
返回值:
類(lèi)型 | 說(shuō)明 |
---|---|
Promise | 使用Promise形式返回結(jié)果。 |
示例 :
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
將當(dāng)前ability連接到指定ServiceAbility(callback形式)。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.FAModel
參數(shù):
名稱(chēng) | 類(lèi)型 | 必填 | 描述 |
---|---|---|---|
request | [Want]) | 是 | 表示被連接的ServiceAbility。 |
options | ConnectOptions | 是 | 被指定的回調(diào)方法。 |
ConnectOptions類(lèi)型說(shuō)明:
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Ability.AbilityRuntime.Core
名稱(chēng) | 讀寫(xiě)屬性 | 類(lèi)型 | 必填 | 描述 |
---|---|---|---|---|
onConnect | 只讀 | function | 是 | 連接成功時(shí)的回調(diào)函數(shù)。 |
onDisconnect | 只讀 | function | 是 | 連接失敗時(shí)的回調(diào)函數(shù)。 |
onFailed | 只讀 | function | 是 | ConnectAbility調(diào)用失敗時(shí)的回調(diào)函數(shù)。 |
示例 :
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;
將功能與服務(wù)功能斷開(kāi)連接。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.FAModel
參數(shù):
參數(shù)名 | 類(lèi)型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback | 是 | callback形式返回?cái)嚅_(kāi)連接的結(jié)果 |
示例 :
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;
將功能與服務(wù)功能斷開(kāi)連接。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.FAModel
返回值:
類(lèi)型 | 說(shuō)明 |
---|---|
Promise | 使用Promise形式返回結(jié)果。 |
示例 :
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
獲取錯(cuò)誤代碼。
系統(tǒng)能力 :SystemCapability.Ability.AbilityRuntime.FAModel
變量 | 值 | 說(shuō)明 |
---|---|---|
INVALID_PARAMETER | -1 | 無(wú)效的參數(shù)。 |
審核編輯 黃宇
-
接口
+關(guān)注
關(guān)注
33文章
8598瀏覽量
151159 -
框架
+關(guān)注
關(guān)注
0文章
403瀏覽量
17488 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2352瀏覽量
42858
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論