从API版本26.0.0开始,若应用内关怀模式希望跟随系统关怀模式变化,应用可通过以下两种方式获取或监听系统关怀模式的状态,让长辈看得更清楚,操控得更顺畅。
查询系统关怀模式状态:应用启动时,可通过isSeniorModeEnabled接口查询系统设置中的关怀模式开关状态。若系统关怀模式已开启,则应用应跟随系统开启关怀模式,若系统关怀模式未开启,则应用应跟随系统关闭关怀模式。
监听系统的关怀模式状态:应用进程存在时,可通过AccessibilityKit提供的接口onSeniorModeStateChange监听系统关怀模式开关状态,当监听到系统关怀模式变化时,应用可跟随进行关怀模式状态切换。
以下是应用与系统关怀模式的相关接口说明。
| 接口名 | 描述 |
|---|---|
| isSeniorModeEnabled(): Promise<boolean> | 异步接口,获取关怀模式的开关状态。 |
| onSeniorModeStateChange(callback: Callback<boolean>): void | 注册系统关怀模式状态变化事件的监听回调。 |
| offSeniorModeStateChange(callback?: Callback<boolean>): void | 取消注册系统关怀模式状态变化事件的监听回调。 |
导入accessibility模块及相关公共模块。
import { accessibility } from '@kit.AccessibilityKit';
import { BusinessError } from '@kit.BasicServicesKit'; 对系统关怀模式状态进行监听。
在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界面。
}
} 查询系统关怀模式状态。
@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界面。
}
}