请求用户授权
======

为保护用户隐私，Wear Engine的API需要用户授权才可以正常访问。建议开发者在用户首次调用Wear Engine开放能力的时候执行本章节操作。

#### 申请用户穿戴设备权限

应用拉起华为账号登录和授权界面，由用户授权相应的数据访问权限。用户可以自主选择授权的数据类型，可以只授权部分数据权限。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/64/v3/4iRnxIuITBWAzJb-aZ4DOA/zh-cn_image_0000002625108255.png?HW-CC-KV=V1&HW-CC-Date=20260612T073450Z&HW-CC-Expire=86400&HW-CC-Sign=224D3E7802CFFC19483F6911FBEE649A0DA835A6D9493036343D98284F61E4E2)

1.  应用调用[wearEngine](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/wearengine_api)中的[getAuthClient](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/wearengine_api#wearenginegetauthclient)方法，获取[AuthClient](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/wearengine_api#authclient)对象。
    
2.  定义需要用户授权的权限请求类[AuthorizationRequest](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/wearengine_api#authorizationrequest)。
    
3.  调用[requestAuthorization](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/wearengine_api#requestauthorization)方法，向用户请求权限。执行成功后，会弹出授权界面，让用户选择授予权限（若未登录华为账号则会先弹出登录界面）。当用户允许后才能正常使用接口，否则会遇到错误码为201的提示。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/7d/v3/ERpTuRaRS9yoDg5ZDsQXSw/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073450Z&HW-CC-Expire=86400&HW-CC-Sign=01853E3A03B3D2BC4BE57F393BC6DC1D5D700F8E15DA5571F7921A18A5C96C2B)
    
    *   请确保向用户请求的权限已在[申请接入Wear Engine服务](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/wearengine_apply)中审批通过，否则会遇到错误码为1008500004的提示。
        
    *   该功能可以多次调用，如果申请的权限之前已经授予了，不会再弹出授权页面，接口会返回已经授权的权限。
        
    *   通过入参的[AuthorizationRequest](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/wearengine_api#authorizationrequest)对象，获取应用需要的权限。参见步骤3中[权限说明](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/wearengine_apply)了解应用所需请求的权限类型。
        
    *   通过[AuthorizationResponse](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/wearengine_api#authorizationresponse)对象，返回用户的授权结果。
        
    
    // 在使用Wear Engine服务前，请导入WearEngine与相关模块
    import { wearEngine } from '@kit.WearEngine';
    import { BusinessError } from '@kit.BasicServicesKit';
    
    // 步骤1：获取AuthClient对象
    let authClient: wearEngine.AuthClient = wearEngine.getAuthClient(this.getUIContext().getHostContext());
    
    // 步骤2：基于需要用户授权的权限定义权限请求类
    let request: wearEngine.AuthorizationRequest = {
      permissions: \[wearEngine.Permission.USER\_STATUS\]
    }
    
    // 步骤3：请求用户授权
    authClient.requestAuthorization(request).then(result => {
      console.info(\`Succeeded in requesting authorize, authorized permissions is ${result.permissions}\`);
    }).catch((error: BusinessError) => {
      console.error(\`Failed to request authorize. Code is ${error.code}, message is ${error.message}\`);
    })
    

#### 查询用户授权结果

用于查询已被用户授予的应用权限。如果所需权限用户未授权，请参见上一节[申请用户穿戴设备权限](#申请用户穿戴设备权限)向用户请求权限。建议在请求用户授权前，先使用该接口查询应用是否已有相关权限。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/17/v3/sNJPeb6eTqeYlfAe-jqhjQ/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073450Z&HW-CC-Expire=86400&HW-CC-Sign=5D023914C2FF0A6949F172E7A63FCBBEF16B3EBA4F7CB6BF1F95B1EFDE840B5B)

请确保权限已在[申请接入Wear Engine服务](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/wearengine_apply)中审批通过，否则会遇到错误码为1008500004的提示。

1.  应用调用[wearEngine](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/wearengine_api)中的[getAuthClient](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/wearengine_api#wearenginegetauthclient)方法，获取[AuthClient](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/wearengine_api#authclient)对象。
    
2.  调用[getAuthorization](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/wearengine_api#getauthorization)方法，查询用户已授权的权限。
    
    // 在使用Wear Engine服务前，请导入WearEngine与相关模块
    import { wearEngine } from '@kit.WearEngine';
    import { BusinessError } from '@kit.BasicServicesKit';
    
    // 步骤1：获取AuthClient对象
    let authClient: wearEngine.AuthClient = wearEngine.getAuthClient(this.getUIContext().getHostContext());
    
    // 步骤2：调用API查询已授权权限
    authClient.getAuthorization().then(result => {
      console.info(\`Succeeded in getting authorized permissions, authorized permissions is ${result.permissions}\`);
    }).catch((error: BusinessError) => {
      console.error(\`Failed to get authorized permissions. Code is ${error.code}, message is ${error.message}\`);
    })