# 获取关怀模式状态

#### 场景介绍

从API版本26.0.0开始，若应用内关怀模式希望跟随系统关怀模式变化，应用可通过以下两种方式获取或监听系统关怀模式的状态，让长辈看得更清楚，操控得更顺畅。

1.  查询系统关怀模式状态：应用启动时，可通过isSeniorModeEnabled接口查询系统设置中的关怀模式开关状态。若系统关怀模式已开启，则应用应跟随系统开启关怀模式，若系统关怀模式未开启，则应用应跟随系统关闭关怀模式。
    
2.  监听系统的关怀模式状态：应用进程存在时，可通过AccessibilityKit提供的接口onSeniorModeStateChange监听系统关怀模式开关状态，当监听到系统关怀模式变化时，应用可跟随进行关怀模式状态切换。
    

#### 接口说明

以下是应用与系统关怀模式的相关接口说明。

| 接口名 | 描述 |
| --- | --- |
| isSeniorModeEnabled(): Promise<boolean> | 异步接口，获取关怀模式的开关状态。 |
| onSeniorModeStateChange(callback: Callback<boolean>): void | 注册系统关怀模式状态变化事件的监听回调。 |
| offSeniorModeStateChange(callback?: Callback<boolean>): void | 取消注册系统关怀模式状态变化事件的监听回调。 |

#### 开发实例

1.  导入accessibility模块及相关公共模块。
    
    ```
    import { accessibility } from '@kit.AccessibilityKit';
    import { BusinessError } from '@kit.BasicServicesKit';
    ```
    
2.  对系统关怀模式状态进行监听。
    
    在aboutToAppear进行对系统关怀模式状态注册监听，在aboutToDisappear取消对系统关怀模式状态注册监听。
    
    ```
    @Entry
    @Component
    struct SeniorModeDemo1 {
    
     // 关怀模式状态变化的回调，回调值为true时，代表系统关怀模式已打开，否则代表系统关怀模式已关闭。
     callBack = (data: boolean) => {
       console.info(`subscribe senior mode state change, result: ${JSON.stringify(data)}`);
     }
    
      aboutToAppear(): void {
        // 注册系统关怀模式状态变化监听。
        accessibility.onSeniorModeStateChange(this.callback);
      }
    
    
      aboutToDisappear(): void {
        // 取消注册系统关怀模式状态变化监听。
        accessibility.offSeniorModeStateChange(this.callback);
      }
    
      build() {
        // 开发者自行展示UX界面。
      }
    }
    ```
    
3.  查询系统关怀模式状态。
    
    ```
    @Entry
    @Component
    struct SeniorModeDemo2 {
      aboutToAppear(): void {
        // 调用异步接口isSeniorModeEnabled查询当前系统关怀模式状态，返回值为true时，代表系统关怀模式已打开，否则代表系统关怀模式已关闭。
        accessibility.isSeniorModeEnabled().then((data: boolean) => {
          console.info(`success data:isSeniorModeEnabled : ${JSON.stringify(data)}`);
        }).catch((err: BusinessError) => {
          console.error(`failed to call isSeniorModeEnabled, Code is ${err.code}, message is ${err.message}`);
        });
      }
    
      build() {
        // 开发者自行展示UX界面。
      }
    }
    ```