OpenHarmony开发者论坛
标题:
调用用户管理授权模块时,报获取分布式库管理器服务失败
[打印本页]
作者:
哄哄
时间:
2025-1-11 11:49
标题:
调用用户管理授权模块时,报获取分布式库管理器服务失败
[md]### 【问题描述】
1. 介绍问题现象和发生的背景
调用系统接口osAccount registerInputer时,报错,查看系统日志显示
C02404/PIN_AUTH_SDK: [
GetProxy@pinauth_register_impl.cpp
:78] get distributed gallery manager service fail
C02404/PIN_AUTH_SDK: [
RegisterInputer@pinauth_register_impl.cpp
:44] get proxy failed
2. 相关的代码(请勿使用截图)
```
sptr<
inAuthInterface> PinAuthRegisterImpl::GetProxy()
{
IAM_LOGI("start");
if (proxy_ != nullptr) {
return proxy_;
}
sptr<ISystemAbilityManager> sam = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
if (sam == nullptr) {
IAM_LOGE("get system ability manager fail");
return nullptr;
}
sptr<IRemoteObject> obj = sam->CheckSystemAbility(SUBSYS_USERIAM_SYS_ABILITY_PINAUTH);
if (obj == nullptr) {
IAM_LOGE("get distributed gallery manager service fail");
return nullptr;
}
sptr<IRemoteObject:
eathRecipient> dr(new (std::nothrow) PinAuthDeathRecipient());
if ((obj->IsProxyObject()) && (!obj->AddDeathRecipient(dr))) {
IAM_LOGE("add death recipient fail");
return nullptr;
}
proxy_ = iface_cast<
inAuthInterface>(obj);
deathRecipient_ = dr;
IAM_LOGI("succeed to connect distributed gallery manager service");
return proxy_;
}
```
```
this.pinAuth.registerInputer({
onGetData: (authSubType, inputData) => {
let u8aPwd = this.encodeToU8A(this.password);
LogUtil.info(`${this.TAG} before set data, type: ${this.pinSubType}. authSubType: ${authSubType}`);
inputData.onSetData(this.pinSubType, u8aPwd);
}
});
```
3. 运行结果、错误截图
A00500/[Settings]: Settings PasswordModel#registerInputer failed, error:{"code":201}}
通过查看系统源码发现 `SUBSYS_USERIAM_SYS_ABILITY_PINAUTH`没有这个系统能力
4. 我尝试过的解决方法和结果
在moudule.json中已经对接口权限申请
```
"name": "ohos.permission.ACCESS_PIN_AUTH",
```
5. 我想要达到的结果
### 【运行环境】
硬件:loongson 3a6000
ROM版本:
DevEvoStudio版本:5.0.3.910
SDK版本:Ohos_sdk_public 5.0.0.71
[/md]
作者:
kuaile
时间:
7 天前
pls
1、为啥用到了c++接口,什么场景要这么使用
2、获取分布式数据管理服务的code是DISTRIBUTED_KV_DATA_SERVICE_ABILITY_ID,而不是SUBSYS_USERIAM_SYS_ABILITY_PINAUTH
作者:
kuaile
时间:
7 天前
为啥用到了c++接口,最好能用js
作者:
哄哄
时间:
6 天前
回复
kuaile
: 我现在用的是账号管理模块调用系统接口函数registerInputer ,上面贴的代码是我查询系统源码时找到的调用系统接口时报的错误,我用的也是系统提供的JS接口没有自己用C++实现,我不太清楚账号管理模块报错信息和分布式管理服务有什么关系。我看了深开鸿王石的帖子,可能是系统镜像没有集成selinux的问题。
https://forums.openharmony.cn/fo ... &page=1#pid9965
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5