Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
fd488872
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
fd488872
编写于
5月 30, 2022
作者:
O
openharmony_ci
提交者:
Gitee
5月 30, 2022
浏览文件
操作
浏览文件
下载
差异文件
!4556 添加启动远端service及格式问题
Merge pull request !4556 from ql/master
上级
d766db7a
4d9effe4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
58 addition
and
44 deletion
+58
-44
zh-cn/application-dev/ability/fa-pageability.md
zh-cn/application-dev/ability/fa-pageability.md
+43
-44
zh-cn/application-dev/ability/fa-serviceability.md
zh-cn/application-dev/ability/fa-serviceability.md
+15
-0
未找到文件。
zh-cn/application-dev/ability/fa-pageability.md
浏览文件 @
fd488872
...
...
@@ -102,16 +102,16 @@ ability支持单实例和多实例两种启动模式。
console
.
info
(
'
onStartRemoteAbility begin
'
);
let
params
;
let
wantValue
=
{
bundleName
:
'
ohos.samples.etsDemo
'
,
abilityName
:
'
ohos.samples.etsDemo.RemoteAbility
'
,
deviceId
:
getRemoteDeviceId
(),
parameters
:
params
bundleName
:
'
ohos.samples.etsDemo
'
,
abilityName
:
'
ohos.samples.etsDemo.RemoteAbility
'
,
deviceId
:
getRemoteDeviceId
(),
parameters
:
params
};
console
.
info
(
'
onStartRemoteAbility want=
'
+
JSON
.
stringify
(
wantValue
));
featureAbility
.
startAbility
({
want
:
wantValue
want
:
wantValue
}).
then
((
data
)
=>
{
console
.
info
(
'
onStartRemoteAbility finished,
'
+
JSON
.
stringify
(
data
));
console
.
info
(
'
onStartRemoteAbility finished,
'
+
JSON
.
stringify
(
data
));
});
console
.
info
(
'
onStartRemoteAbility end
'
);
}
...
...
@@ -123,17 +123,17 @@ ability支持单实例和多实例两种启动模式。
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmClass
;
function
getRemoteDeviceId
()
{
if
(
typeof
dmClass
===
'
object
'
&&
dmClass
!=
null
)
{
let
list
=
dmClass
.
getTrustedDeviceListSync
();
if
(
typeof
(
list
)
==
'
undefined
'
||
typeof
(
list
.
length
)
==
'
undefined
'
)
{
if
(
typeof
dmClass
===
'
object
'
&&
dmClass
!=
null
)
{
let
list
=
dmClass
.
getTrustedDeviceListSync
();
if
(
typeof
(
list
)
==
'
undefined
'
||
typeof
(
list
.
length
)
==
'
undefined
'
)
{
console
.
log
(
"
MainAbility onButtonClick getRemoteDeviceId err: list is null
"
);
return
;
}
console
.
log
(
"
MainAbility onButtonClick getRemoteDeviceId success:
"
+
list
[
0
].
deviceId
);
return
list
[
0
].
deviceId
;
}
else
{
console
.
log
(
"
MainAbility onButtonClick getRemoteDeviceId err: dmClass is null
"
);
}
}
console
.
log
(
"
MainAbility onButtonClick getRemoteDeviceId success:
"
+
list
[
0
].
deviceId
);
return
list
[
0
].
deviceId
;
}
else
{
console
.
log
(
"
MainAbility onButtonClick getRemoteDeviceId err: dmClass is null
"
);
}
}
```
...
...
@@ -143,35 +143,34 @@ ability支持单实例和多实例两种启动模式。
import
abilityAccessCtrl
from
"
@ohos.abilityAccessCtrl
"
;
import
bundle
from
'
@ohos.bundle
'
;
async
function
RequestPermission
()
{
console
.
info
(
'
RequestPermission begin
'
);
let
array
:
Array
<
string
>
=
[
"
ohos.permission.DISTRIBUTED_DATASYNC
"
];
let
bundleFlag
=
0
;
let
tokenID
=
undefined
;
let
userID
=
100
;
let
appInfo
=
await
bundle
.
getApplicationInfo
(
'
ohos.samples.etsDemo
'
,
bundleFlag
,
userID
);
tokenID
=
appInfo
.
accessTokenId
;
let
atManager
=
abilityAccessCtrl
.
createAtManager
();
let
requestPermissions
:
Array
<
string
>
=
[];
for
(
let
i
=
0
;
i
<
array
.
length
;
i
++
)
{
let
result
=
await
atManager
.
verifyAccessToken
(
tokenID
,
array
[
i
]);
console
.
info
(
"
verifyAccessToken result:
"
+
JSON
.
stringify
(
result
));
if
(
result
==
abilityAccessCtrl
.
GrantStatus
.
PERMISSION_GRANTED
)
{
}
else
{
requestPermissions
.
push
(
array
[
i
]);
}
}
console
.
info
(
"
requestPermissions:
"
+
JSON
.
stringify
(
requestPermissions
));
if
(
requestPermissions
.
length
==
0
||
requestPermissions
==
[])
{
return
;
}
let
context
=
featureAbility
.
getContext
();
context
.
requestPermissionsFromUser
(
requestPermissions
,
1
,
(
data
)
=>
{
console
.
info
(
"
data:
"
+
JSON
.
stringify
(
data
));
console
.
info
(
"
data requestCode:
"
+
data
.
requestCode
);
console
.
info
(
"
data permissions:
"
+
data
.
permissions
);
console
.
info
(
"
data authResults:
"
+
data
.
authResults
);
});
console
.
info
(
'
RequestPermission end
'
);
console
.
info
(
'
RequestPermission begin
'
);
let
array
:
Array
<
string
>
=
[
"
ohos.permission.DISTRIBUTED_DATASYNC
"
];
let
bundleFlag
=
0
;
let
tokenID
=
undefined
;
let
userID
=
100
;
let
appInfo
=
await
bundle
.
getApplicationInfo
(
'
ohos.samples.etsDemo
'
,
bundleFlag
,
userID
);
tokenID
=
appInfo
.
accessTokenId
;
let
atManager
=
abilityAccessCtrl
.
createAtManager
();
let
requestPermissions
:
Array
<
string
>
=
[];
for
(
let
i
=
0
;
i
<
array
.
length
;
i
++
)
{
let
result
=
await
atManager
.
verifyAccessToken
(
tokenID
,
array
[
i
]);
console
.
info
(
"
verifyAccessToken result:
"
+
JSON
.
stringify
(
result
));
if
(
result
!=
abilityAccessCtrl
.
GrantStatus
.
PERMISSION_GRANTED
)
{
requestPermissions
.
push
(
array
[
i
]);
}
}
console
.
info
(
"
requestPermissions:
"
+
JSON
.
stringify
(
requestPermissions
));
if
(
requestPermissions
.
length
==
0
||
requestPermissions
==
[])
{
return
;
}
let
context
=
featureAbility
.
getContext
();
context
.
requestPermissionsFromUser
(
requestPermissions
,
1
,
(
data
)
=>
{
console
.
info
(
"
data:
"
+
JSON
.
stringify
(
data
));
console
.
info
(
"
data requestCode:
"
+
data
.
requestCode
);
console
.
info
(
"
data permissions:
"
+
data
.
permissions
);
console
.
info
(
"
data authResults:
"
+
data
.
authResults
);
});
console
.
info
(
'
RequestPermission end
'
);
}
```
...
...
zh-cn/application-dev/ability/fa-serviceability.md
浏览文件 @
fd488872
...
...
@@ -94,6 +94,21 @@ let promise = featureAbility.startAbility(
-
如果Service尚未运行,则系统会先调用onStart()来初始化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
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录