阅读(3494) (10)

鸿蒙OS 开发指导

2020-09-17 10:20:38 更新

场景介绍

TTS、Wireless、Network、Input、Sound、Display、Date、Call、General 九类定义了表征终端设备状态的相关字段,如屏幕亮度、日期格式、字体显示大小等,应用程序可以根据自身所拥有的权限对其进行增、删、改、查等操作,并进行相应的场景适配。

例如:TIME_FORMAT——表示日期格式,应用程序可进行读写。

图1 数据表更新过程

点击放大

接口说明

SystemSettings 提供系统设置的相关接口,包括 TTS、Wireless、Network、Input、Sound、Display、Date、Call、General 九类字段的存储和检索接口。应用程序通过 AppSettings 类提供的方法对其自身的能力进行查询。

接口名 描述
canShowOverlays(Context context) 检查指定应用程序是否可以显示在其他应用之上。
checkSetPermission(Context context) 通过应用上下文检查指定的应用是否具有修改系统设置的权限。
接口名 描述
getUri(String name) 为特定的字段构造URI,用于DataAbility的数据监视。
getValue(DataAbilityHelper dataAbilityHelper, String name) 获取指定字段的值。
setValue(DataAbilityHelper dataAbilityHelper, String name, String value) 设置指定字段的值。
字段名 字段描述
DEFAULT_TTS_PITCH 文本转语音引擎的默认音调。
DEFAULT_TTS_RATE 文本转语音引擎的默认语速。
字段名 字段描述
BLUETOOTH_STATUS 蓝牙开启状态。
WIFI_STATUS WLAN是否启用。
WIFI_TO_MOBILE_DATA_AWAKE_TIMEOUT 从WLAN 断开连接后等待建立移动数据连接时保持唤醒锁的最长时间。
字段名 字段描述
DATA_ROAMING_STATUS 数据漫游开启状态。
NETWORK_PREFERENCE_USAGE 设置用户经常使用的网络。
字段名 字段描述
DEFAULT_INPUT_METHOD 设置默认的输入法,并记录此输入法的ID。
ACTIVATED_INPUT_METHODS 已激活的输入法列表。
AUTO_CAPS_TEXT_INPUT 设置文本编辑器是否启用自动大写。
字段名 字段描述
HAPTIC_FEEDBACK_STATUS 设置是否开启触摸反馈。
VIBRATE_WHILE_RINGING 设置来电响铃时是否震动。
DEFAULT_NOTIFICATION_SOUND 系统默认通知铃声的存储区。
字段名 字段描述
FONT_SCALE 设置字体大小因子。
SCREEN_BRIGHTNESS_STATUS 设置屏幕亮度。
AUTO_SCREEN_BRIGHTNESS 设置是否打开屏幕亮度自动调节模式。
SCREEN_OFF_TIMEOUT 设置设备屏幕自动休眠时间。
字段名 字段描述
DATE_FORMAT 设置日期格式。
TIME_FORMAT 设置以12或24小时制显示时间。
AUTO_GAIN_TIME 是否从网络(NITZ)自动获取日期,时间和时区的值。
AUTO_GAIN_TIME_ZONE 是否从网络(NITZ)自动获取时区的值。
字段名 字段描述
SETUP_WIZARD_FINISHED 识别开机向导是否已经运行过。
AIRPLANE_MODE_STATUS 飞行模式是否开启。
DEVICE_NAME 设备名称。
ACCESSIBILITY_STATUS 设置辅助功能是否可用。
字段名 字段描述
RTT_CALLING_STATUS 设置来去电是否启动RTT模式进行应答。

开发步骤

  1. 应用程序打开某个 Slice 时,在 OnStart()时,注册相关设置项的回调,并读取一次该设置项的值,进行初始化适配。

   场景介绍
   TTS、Wireless、Network、Input、Sound、Display、Date、Call、General九类定义了表征终端设备状态的相关字段,如屏幕亮度、日期格式、字体显示大小等,应用程序可以根据自身所拥有的权限对其进行增、删、改、查等操作,并进行相应的场景适配。

   
   例如:TIME_FORMAT——表示日期格式,应用程序可进行读写。

   
   图1 数据表更新过程
   点击放大

   
   接口说明
   SystemSettings 提供系统设置的相关接口,包括TTS、Wireless、Network、Input、Sound、Display、Date、Call、General 九类字段的存储和检索接口。应用程序通过 AppSettings 类提供的方法对其自身的能力进行查询。

   
   表1 AppSettings的主要接口
   接口名

   
   描述

   
   canShowOverlays(Context context)

   
   检查指定应用程序是否可以显示在其他应用之上。

   
   checkSetPermission(Context context)

   
   通过应用上下文检查指定的应用是否具有修改系统设置的权限。

   
   表2 SystemSettings的主要接口
   接口名

   
   描述

   
   getUri(String name)

   
   为特定的字段构造URI,用于DataAbility的数据监视。

   
   getValue(DataAbilityHelper dataAbilityHelper, String name)

   
   获取指定字段的值。

   
   setValue(DataAbilityHelper dataAbilityHelper, String name, String value)

   
   设置指定字段的值。

   
   表3 SystemSettings.TTS提供的典型字段
   字段名

   
   字段描述

   
   DEFAULT_TTS_PITCH

   
   文本转语音引擎的默认音调。

   
   DEFAULT_TTS_RATE

   
   文本转语音引擎的默认语速。

   
   表4 SystemSettings.Wireless提供的典型字段
   字段名

   
   字段描述

   
   BLUETOOTH_STATUS

   
   蓝牙开启状态。

   
   WIFI_STATUS

   
   WLAN是否启用。

   
   WIFI_TO_MOBILE_DATA_AWAKE_TIMEOUT

   
   从WLAN断开连接后等待建立移动数据连接时保持唤醒锁的最长时间。

   
   表5 SystemSettings.Network提供的典型字段
   字段名

   
   字段描述

   
   DATA_ROAMING_STATUS

   
   数据漫游开启状态。

   
   NETWORK_PREFERENCE_USAGE

   
   设置用户经常使用的网络。

   
   表6 SystemSettings.Input提供的典型字段
   字段名

   
   字段描述

   
   DEFAULT_INPUT_METHOD

   
   设置默认的输入法,并记录此输入法的ID。

   
   ACTIVATED_INPUT_METHODS

   
   已激活的输入法列表。

   
   AUTO_CAPS_TEXT_INPUT

   
   设置文本编辑器是否启用自动大写。

   
   表7 SystemSettings.Sound提供的字段
   字段名

   
   字段描述

   
   HAPTIC_FEEDBACK_STATUS

   
   设置是否开启触摸反馈。

   
   VIBRATE_WHILE_RINGING

   
   设置来电响铃时是否震动。

   
   DEFAULT_NOTIFICATION_SOUND

   
   系统默认通知铃声的存储区。

   
   表8 SystemSettings.Display提供的典型字段
   字段名

   
   字段描述

   
   FONT_SCALE

   
   设置字体大小因子。

   
   SCREEN_BRIGHTNESS_STATUS

   
   设置屏幕亮度。

   
   AUTO_SCREEN_BRIGHTNESS

   
   设置是否打开屏幕亮度自动调节模式。

   
   SCREEN_OFF_TIMEOUT

   
   设置设备屏幕自动休眠时间。

   
   表9 SystemSettings.Date提供的典型字段
   字段名

   
   字段描述

   
   DATE_FORMAT

   
   设置日期格式。

   
   TIME_FORMAT

   
   设置以12或24小时制显示时间。

   
   AUTO_GAIN_TIME

   
   是否从网络(NITZ)自动获取日期,时间和时区的值。

   
   AUTO_GAIN_TIME_ZONE

   
   是否从网络(NITZ)自动获取时区的值。

   
   表10 SystemSettings.General提供的典型字段
   字段名

   
   字段描述

   
   SETUP_WIZARD_FINISHED

   
   识别开机向导是否已经运行过。

   
   AIRPLANE_MODE_STATUS

   
   飞行模式是否开启。

   
   DEVICE_NAME

   
   设备名称。

   
   ACCESSIBILITY_STATUS

   
   设置辅助功能是否可用。

   
   表11 SystemSettings.Call提供的典型字段
   字段名

   
   字段描述

   
   RTT_CALLING_STATUS

   
   设置来去电是否启动RTT模式进行应答。

   
   开发步骤
   应用程序打开某个Slice时,在OnStart()时,注册相关设置项的回调,并读取一次该设置项的值,进行初始化适配。
   @Override
   public void onStart(Intent intent) {
       // ...
       dataAbilityHelper = DataAbilityHelper.creator(this);
       IDataAbilityObserver dataAbilityObserver = new IDataAbilityObserver() {
           @Override    
           public void onChange() {
               String timeFormat = SystemSettings.getValue(dataAbilityHelper, SystemSettings.Date.TIME_FORMAT);
               setTimeFormat(timeFormat);
           }
       };
       dataAbilityHelper.registerObserver(SystemSettings.getUri(SystemSettings.Date.TIME_FORMAT), dataAbilityObserver);
   }

    
   void setTimeFormat(String timeFormat) {
       if ("12".equals(timeFormat)) {        
           // Display in 12-hour format
       } else {
           // Display in 24-hour format
       }
   }
   在 onStop()时,解除回调注册。
   dataAbilityHelper.unregisterObserver(SystemSettings.getUri(SystemSettings.Date.TIME_FORMAT), dataAbilityObserver);

  1. 在 onStop() 时,解除回调注册。

   dataAbilityHelper.unregisterObserver(SystemSettings.getUri(SystemSettings.Date.TIME_FORMAT), dataAbilityObserver);