鴻蒙OS 開發(fā)指導(dǎo)

2020-09-18 15:58 更新

場景介紹

TTS、Wireless、Network、Input、Sound、Display、Date、Call、General 九類定義了表征終端設(shè)備狀態(tài)的相關(guān)字段,如屏幕亮度、日期格式、字體顯示大小等,應(yīng)用程序可以根據(jù)自身所擁有的權(quán)限對其進(jìn)行增、刪、改、查等操作,并進(jìn)行相應(yīng)的場景適配。

例如:TIME_FORMAT——表示日期格式,應(yīng)用程序可進(jìn)行讀寫。

圖1 數(shù)據(jù)表更新過程

點(diǎn)擊放大

接口說明

SystemSettings 提供系統(tǒng)設(shè)置的相關(guān)接口,包括 TTS、Wireless、Network、Input、Sound、Display、Date、Call、General 九類字段的存儲和檢索接口。應(yīng)用程序通過 AppSettings 類提供的方法對其自身的能力進(jìn)行查詢。

接口名 描述
canShowOverlays(Context context) 檢查指定應(yīng)用程序是否可以顯示在其他應(yīng)用之上。
checkSetPermission(Context context) 通過應(yīng)用上下文檢查指定的應(yīng)用是否具有修改系統(tǒng)設(shè)置的權(quán)限。
接口名 描述
getUri(String name) 為特定的字段構(gòu)造URI,用于DataAbility的數(shù)據(jù)監(jiān)視。
getValue(DataAbilityHelper dataAbilityHelper, String name) 獲取指定字段的值。
setValue(DataAbilityHelper dataAbilityHelper, String name, String value) 設(shè)置指定字段的值。
字段名 字段描述
DEFAULT_TTS_PITCH 文本轉(zhuǎn)語音引擎的默認(rèn)音調(diào)。
DEFAULT_TTS_RATE 文本轉(zhuǎn)語音引擎的默認(rèn)語速。
字段名 字段描述
BLUETOOTH_STATUS 藍(lán)牙開啟狀態(tài)。
WIFI_STATUS WLAN是否啟用。
WIFI_TO_MOBILE_DATA_AWAKE_TIMEOUT 從WLAN 斷開連接后等待建立移動數(shù)據(jù)連接時保持喚醒鎖的最長時間。
字段名 字段描述
DATA_ROAMING_STATUS 數(shù)據(jù)漫游開啟狀態(tài)。
NETWORK_PREFERENCE_USAGE 設(shè)置用戶經(jīng)常使用的網(wǎng)絡(luò)。
字段名 字段描述
DEFAULT_INPUT_METHOD 設(shè)置默認(rèn)的輸入法,并記錄此輸入法的ID。
ACTIVATED_INPUT_METHODS 已激活的輸入法列表。
AUTO_CAPS_TEXT_INPUT 設(shè)置文本編輯器是否啟用自動大寫。
字段名 字段描述
HAPTIC_FEEDBACK_STATUS 設(shè)置是否開啟觸摸反饋。
VIBRATE_WHILE_RINGING 設(shè)置來電響鈴時是否震動。
DEFAULT_NOTIFICATION_SOUND 系統(tǒng)默認(rèn)通知鈴聲的存儲區(qū)。
字段名 字段描述
FONT_SCALE 設(shè)置字體大小因子。
SCREEN_BRIGHTNESS_STATUS 設(shè)置屏幕亮度。
AUTO_SCREEN_BRIGHTNESS 設(shè)置是否打開屏幕亮度自動調(diào)節(jié)模式。
SCREEN_OFF_TIMEOUT 設(shè)置設(shè)備屏幕自動休眠時間。
字段名 字段描述
DATE_FORMAT 設(shè)置日期格式。
TIME_FORMAT 設(shè)置以12或24小時制顯示時間。
AUTO_GAIN_TIME 是否從網(wǎng)絡(luò)(NITZ)自動獲取日期,時間和時區(qū)的值。
AUTO_GAIN_TIME_ZONE 是否從網(wǎng)絡(luò)(NITZ)自動獲取時區(qū)的值。
字段名 字段描述
SETUP_WIZARD_FINISHED 識別開機(jī)向?qū)欠褚呀?jīng)運(yùn)行過。
AIRPLANE_MODE_STATUS 飛行模式是否開啟。
DEVICE_NAME 設(shè)備名稱。
ACCESSIBILITY_STATUS 設(shè)置輔助功能是否可用。
字段名 字段描述
RTT_CALLING_STATUS 設(shè)置來去電是否啟動RTT模式進(jìn)行應(yīng)答。

開發(fā)步驟

  1. 應(yīng)用程序打開某個 Slice 時,在 OnStart()時,注冊相關(guān)設(shè)置項(xiàng)的回調(diào),并讀取一次該設(shè)置項(xiàng)的值,進(jìn)行初始化適配。

   場景介紹
   TTS、Wireless、Network、Input、Sound、Display、Date、Call、General九類定義了表征終端設(shè)備狀態(tài)的相關(guān)字段,如屏幕亮度、日期格式、字體顯示大小等,應(yīng)用程序可以根據(jù)自身所擁有的權(quán)限對其進(jìn)行增、刪、改、查等操作,并進(jìn)行相應(yīng)的場景適配。

   
   例如:TIME_FORMAT——表示日期格式,應(yīng)用程序可進(jìn)行讀寫。

   
   圖1 數(shù)據(jù)表更新過程
   點(diǎn)擊放大

   
   接口說明
   SystemSettings 提供系統(tǒng)設(shè)置的相關(guān)接口,包括TTS、Wireless、Network、Input、Sound、Display、Date、Call、General 九類字段的存儲和檢索接口。應(yīng)用程序通過 AppSettings 類提供的方法對其自身的能力進(jìn)行查詢。

   
   表1 AppSettings的主要接口
   接口名

   
   描述

   
   canShowOverlays(Context context)

   
   檢查指定應(yīng)用程序是否可以顯示在其他應(yīng)用之上。

   
   checkSetPermission(Context context)

   
   通過應(yīng)用上下文檢查指定的應(yīng)用是否具有修改系統(tǒng)設(shè)置的權(quán)限。

   
   表2 SystemSettings的主要接口
   接口名

   
   描述

   
   getUri(String name)

   
   為特定的字段構(gòu)造URI,用于DataAbility的數(shù)據(jù)監(jiān)視。

   
   getValue(DataAbilityHelper dataAbilityHelper, String name)

   
   獲取指定字段的值。

   
   setValue(DataAbilityHelper dataAbilityHelper, String name, String value)

   
   設(shè)置指定字段的值。

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

   
   字段描述

   
   DEFAULT_TTS_PITCH

   
   文本轉(zhuǎn)語音引擎的默認(rèn)音調(diào)。

   
   DEFAULT_TTS_RATE

   
   文本轉(zhuǎn)語音引擎的默認(rèn)語速。

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

   
   字段描述

   
   BLUETOOTH_STATUS

   
   藍(lán)牙開啟狀態(tài)。

   
   WIFI_STATUS

   
   WLAN是否啟用。

   
   WIFI_TO_MOBILE_DATA_AWAKE_TIMEOUT

   
   從WLAN斷開連接后等待建立移動數(shù)據(jù)連接時保持喚醒鎖的最長時間。

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

   
   字段描述

   
   DATA_ROAMING_STATUS

   
   數(shù)據(jù)漫游開啟狀態(tài)。

   
   NETWORK_PREFERENCE_USAGE

   
   設(shè)置用戶經(jīng)常使用的網(wǎng)絡(luò)。

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

   
   字段描述

   
   DEFAULT_INPUT_METHOD

   
   設(shè)置默認(rèn)的輸入法,并記錄此輸入法的ID。

   
   ACTIVATED_INPUT_METHODS

   
   已激活的輸入法列表。

   
   AUTO_CAPS_TEXT_INPUT

   
   設(shè)置文本編輯器是否啟用自動大寫。

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

   
   字段描述

   
   HAPTIC_FEEDBACK_STATUS

   
   設(shè)置是否開啟觸摸反饋。

   
   VIBRATE_WHILE_RINGING

   
   設(shè)置來電響鈴時是否震動。

   
   DEFAULT_NOTIFICATION_SOUND

   
   系統(tǒng)默認(rèn)通知鈴聲的存儲區(qū)。

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

   
   字段描述

   
   FONT_SCALE

   
   設(shè)置字體大小因子。

   
   SCREEN_BRIGHTNESS_STATUS

   
   設(shè)置屏幕亮度。

   
   AUTO_SCREEN_BRIGHTNESS

   
   設(shè)置是否打開屏幕亮度自動調(diào)節(jié)模式。

   
   SCREEN_OFF_TIMEOUT

   
   設(shè)置設(shè)備屏幕自動休眠時間。

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

   
   字段描述

   
   DATE_FORMAT

   
   設(shè)置日期格式。

   
   TIME_FORMAT

   
   設(shè)置以12或24小時制顯示時間。

   
   AUTO_GAIN_TIME

   
   是否從網(wǎng)絡(luò)(NITZ)自動獲取日期,時間和時區(qū)的值。

   
   AUTO_GAIN_TIME_ZONE

   
   是否從網(wǎng)絡(luò)(NITZ)自動獲取時區(qū)的值。

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

   
   字段描述

   
   SETUP_WIZARD_FINISHED

   
   識別開機(jī)向?qū)欠褚呀?jīng)運(yùn)行過。

   
   AIRPLANE_MODE_STATUS

   
   飛行模式是否開啟。

   
   DEVICE_NAME

   
   設(shè)備名稱。

   
   ACCESSIBILITY_STATUS

   
   設(shè)置輔助功能是否可用。

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

   
   字段描述

   
   RTT_CALLING_STATUS

   
   設(shè)置來去電是否啟動RTT模式進(jìn)行應(yīng)答。

   
   開發(fā)步驟
   應(yīng)用程序打開某個Slice時,在OnStart()時,注冊相關(guān)設(shè)置項(xiàng)的回調(diào),并讀取一次該設(shè)置項(xiàng)的值,進(jìn)行初始化適配。
   @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()時,解除回調(diào)注冊。
   dataAbilityHelper.unregisterObserver(SystemSettings.getUri(SystemSettings.Date.TIME_FORMAT), dataAbilityObserver);

  1. 在 onStop() 時,解除回調(diào)注冊。

   dataAbilityHelper.unregisterObserver(SystemSettings.getUri(SystemSettings.Date.TIME_FORMAT), dataAbilityObserver);
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號