监听HiCar的连接状态
============

#### 场景介绍

生态应用可以通过监听智慧出行连接状态接口获取连接信息，适配HiCar业务（如：应用流转）。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/aa/v3/vJcxJDi9TwKjjSu8Hz_TUw/zh-cn_image_0000002625108237.png?HW-CC-KV=V1&HW-CC-Date=20260612T073446Z&HW-CC-Expire=86400&HW-CC-Sign=54A61B54C09B5A6A75111E2B30B8DD5F1DCF51E53A66189A0EC8AADF491B7BB1)

#### 接口说明

监听HiCar的连接状态使用接口如下：

| 接口名 | 描述 |
| :-- | :-- |
| [on('smartMobilityStatus')](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/car-smartmobilitycommon#onsmartmobilitystatus) | 注册智慧出行连接状态的监听。 |
| [off('smartMobilityStatus')](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/car-smartmobilitycommon#offsmartmobilitystatus) | 取消注册智慧出行连接状态的监听。 |

#### 开发流程

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/2a/v3/OeFSm7cOSKWVXYCvSLhI5A/zh-cn_image_0000002594668720.png?HW-CC-KV=V1&HW-CC-Date=20260612T073446Z&HW-CC-Expire=86400&HW-CC-Sign=D57092594357C37E61504B9B007D0498B1E06B342006BB1C88DFAA1BAD23E512)

#### 开发步骤

1.  导入相关模块。
    
    import { smartMobilityCommon } from '@kit.CarKit';
    import { hilog } from '@kit.PerformanceAnalysisKit';
    
2.  监听HiCar连接状态。
    
    应用在适配HiCar时，需要注册智慧出行连接状态的监听，用于对应的业务逻辑处理。
    
    try {
      // 获取SmartMobilityAwareness实例
      let awareness: smartMobilityCommon.SmartMobilityAwareness = smartMobilityCommon.getSmartMobilityAwareness();
    
      // 业务类型
      let types: smartMobilityCommon.SmartMobilityType\[\] = \[smartMobilityCommon.SmartMobilityType.HICAR\];
    
      // 智慧出行连接状态回调函数
      const callBack = (info: smartMobilityCommon.SmartMobilityInfo) => {
        hilog.info(0x0000, 'testTag', 'Received smart mobility info: ', JSON.stringify(info));
        if (info.status === smartMobilityCommon.SmartMobilityStatus.RUNNING) {
          // 连接成功通知
        } else if (info.status === smartMobilityCommon.SmartMobilityStatus.IDLE) {
          // 断开连接通知
        }
      };
    
      // 注册智慧出行连接状态的监听
      awareness.on('smartMobilityStatus', types, callBack);
    } catch (e) {
      // 捕获接口调用异常时的错误码并做相应处理
      hilog.error(0x0000, 'testTag', \`on smart mobility status listener error, error code: ${e?.code}\`);
    }
    
3.  取消监听。
    
    在应用退出时，需要取消之前注册的监听，减少系统不必要的资源消耗。
    
    try {
      // 获取SmartMobilityAwareness实例
      let awareness: smartMobilityCommon.SmartMobilityAwareness = smartMobilityCommon.getSmartMobilityAwareness();
      // 业务类型
      let types: smartMobilityCommon.SmartMobilityType\[\] = \[smartMobilityCommon.SmartMobilityType.HICAR\];
      // 取消注册智慧出行连接状态的监听
      awareness.off('smartMobilityStatus', types);
    } catch (e) {
      // 捕获接口调用异常时的错误码并做相应处理
      hilog.error(0x0000, 'testTag', \`off smart mobility status listener error, error code: ${e?.code}\`);
    }