未验证 提交 fd488872 编写于 作者: O openharmony_ci 提交者: Gitee

!4556 添加启动远端service及格式问题

Merge pull request !4556 from ql/master
...@@ -102,16 +102,16 @@ ability支持单实例和多实例两种启动模式。 ...@@ -102,16 +102,16 @@ ability支持单实例和多实例两种启动模式。
console.info('onStartRemoteAbility begin'); console.info('onStartRemoteAbility begin');
let params; let params;
let wantValue = { let wantValue = {
bundleName: 'ohos.samples.etsDemo', bundleName: 'ohos.samples.etsDemo',
abilityName: 'ohos.samples.etsDemo.RemoteAbility', abilityName: 'ohos.samples.etsDemo.RemoteAbility',
deviceId: getRemoteDeviceId(), deviceId: getRemoteDeviceId(),
parameters: params parameters: params
}; };
console.info('onStartRemoteAbility want=' + JSON.stringify(wantValue)); console.info('onStartRemoteAbility want=' + JSON.stringify(wantValue));
featureAbility.startAbility({ featureAbility.startAbility({
want: wantValue want: wantValue
}).then((data) => { }).then((data) => {
console.info('onStartRemoteAbility finished, ' + JSON.stringify(data)); console.info('onStartRemoteAbility finished, ' + JSON.stringify(data));
}); });
console.info('onStartRemoteAbility end'); console.info('onStartRemoteAbility end');
} }
...@@ -123,17 +123,17 @@ ability支持单实例和多实例两种启动模式。 ...@@ -123,17 +123,17 @@ ability支持单实例和多实例两种启动模式。
import deviceManager from '@ohos.distributedHardware.deviceManager'; import deviceManager from '@ohos.distributedHardware.deviceManager';
let dmClass; let dmClass;
function getRemoteDeviceId() { function getRemoteDeviceId() {
if (typeof dmClass === 'object' && dmClass != null) { if (typeof dmClass === 'object' && dmClass != null) {
let list = dmClass.getTrustedDeviceListSync(); let list = dmClass.getTrustedDeviceListSync();
if (typeof (list) == 'undefined' || typeof (list.length) == 'undefined') { if (typeof (list) == 'undefined' || typeof (list.length) == 'undefined') {
console.log("MainAbility onButtonClick getRemoteDeviceId err: list is null"); console.log("MainAbility onButtonClick getRemoteDeviceId err: list is null");
return; return;
} }
console.log("MainAbility onButtonClick getRemoteDeviceId success:" + list[0].deviceId); console.log("MainAbility onButtonClick getRemoteDeviceId success:" + list[0].deviceId);
return list[0].deviceId; return list[0].deviceId;
} else { } else {
console.log("MainAbility onButtonClick getRemoteDeviceId err: dmClass is null"); console.log("MainAbility onButtonClick getRemoteDeviceId err: dmClass is null");
} }
} }
``` ```
...@@ -143,35 +143,34 @@ ability支持单实例和多实例两种启动模式。 ...@@ -143,35 +143,34 @@ ability支持单实例和多实例两种启动模式。
import abilityAccessCtrl from "@ohos.abilityAccessCtrl"; import abilityAccessCtrl from "@ohos.abilityAccessCtrl";
import bundle from '@ohos.bundle'; import bundle from '@ohos.bundle';
async function RequestPermission() { async function RequestPermission() {
console.info('RequestPermission begin'); console.info('RequestPermission begin');
let array: Array<string> = ["ohos.permission.DISTRIBUTED_DATASYNC"]; let array: Array<string> = ["ohos.permission.DISTRIBUTED_DATASYNC"];
let bundleFlag = 0; let bundleFlag = 0;
let tokenID = undefined; let tokenID = undefined;
let userID = 100; let userID = 100;
let appInfo = await bundle.getApplicationInfo('ohos.samples.etsDemo', bundleFlag, userID); let appInfo = await bundle.getApplicationInfo('ohos.samples.etsDemo', bundleFlag, userID);
tokenID = appInfo.accessTokenId; tokenID = appInfo.accessTokenId;
let atManager = abilityAccessCtrl.createAtManager(); let atManager = abilityAccessCtrl.createAtManager();
let requestPermissions: Array<string> = []; let requestPermissions: Array<string> = [];
for (let i = 0;i < array.length; i++) { for (let i = 0;i < array.length; i++) {
let result = await atManager.verifyAccessToken(tokenID, array[i]); let result = await atManager.verifyAccessToken(tokenID, array[i]);
console.info("verifyAccessToken result:" + JSON.stringify(result)); console.info("verifyAccessToken result:" + JSON.stringify(result));
if (result == abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) { if (result != abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) {
} else { requestPermissions.push(array[i]);
requestPermissions.push(array[i]); }
} }
} console.info("requestPermissions:" + JSON.stringify(requestPermissions));
console.info("requestPermissions:" + JSON.stringify(requestPermissions)); if (requestPermissions.length == 0 || requestPermissions == []) {
if (requestPermissions.length == 0 || requestPermissions == []) { return;
return; }
} let context = featureAbility.getContext();
let context = featureAbility.getContext(); context.requestPermissionsFromUser(requestPermissions, 1, (data)=>{
context.requestPermissionsFromUser(requestPermissions, 1, (data)=>{ console.info("data:" + JSON.stringify(data));
console.info("data:" + JSON.stringify(data)); console.info("data requestCode:" + data.requestCode);
console.info("data requestCode:" + data.requestCode); console.info("data permissions:" + data.permissions);
console.info("data permissions:" + data.permissions); console.info("data authResults:" + data.authResults);
console.info("data authResults:" + data.authResults); });
}); console.info('RequestPermission end');
console.info('RequestPermission end');
} }
``` ```
......
...@@ -94,6 +94,21 @@ let promise = featureAbility.startAbility( ...@@ -94,6 +94,21 @@ let promise = featureAbility.startAbility(
- 如果Service尚未运行,则系统会先调用onStart()来初始化Service,再回调Service的onCommand()方法来启动Service。 - 如果Service尚未运行,则系统会先调用onStart()来初始化Service,再回调Service的onCommand()方法来启动Service。
- 如果Service正在运行,则系统会直接回调Service的onCommand()方法来启动Service。 - 如果Service正在运行,则系统会直接回调Service的onCommand()方法来启动Service。
启动远端设备Service的代码示例如下,getRemoteDeviceId()方法详见[连接远程Service](#连接远程service当前仅对系统应用开放)
```javascript
import featureAbility from '@ohos.ability.featureAbility';
let promise = featureAbility.startAbility(
{
want:
{
deviceId: getRemoteDeviceId(), //远端设备Id
bundleName: "com.jstest.service",
abilityName: "com.jstest.service.ServiceAbility",
},
}
);
```
### 停止Service ### 停止Service
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册