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

2020-09-18 15:58 更新

場(chǎng)景介紹

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

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

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

點(diǎn)擊放大

接口說(shuō)明

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

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

開(kāi)發(fā)步驟

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

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

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

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

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

   
   表1 AppSettings的主要接口
   接口名

   
   描述

   
   canShowOverlays(Context context)

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

   
   checkSetPermission(Context context)

   
   通過(guò)應(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)語(yǔ)音引擎的默認(rèn)音調(diào)。

   
   DEFAULT_TTS_RATE

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

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

   
   字段描述

   
   BLUETOOTH_STATUS

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

   
   WIFI_STATUS

   
   WLAN是否啟用。

   
   WIFI_TO_MOBILE_DATA_AWAKE_TIMEOUT

   
   從WLAN斷開(kāi)連接后等待建立移動(dòng)數(shù)據(jù)連接時(shí)保持喚醒鎖的最長(zhǎng)時(shí)間。

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

   
   字段描述

   
   DATA_ROAMING_STATUS

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

   
   NETWORK_PREFERENCE_USAGE

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

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

   
   字段描述

   
   DEFAULT_INPUT_METHOD

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

   
   ACTIVATED_INPUT_METHODS

   
   已激活的輸入法列表。

   
   AUTO_CAPS_TEXT_INPUT

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

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

   
   字段描述

   
   HAPTIC_FEEDBACK_STATUS

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

   
   VIBRATE_WHILE_RINGING

   
   設(shè)置來(lái)電響鈴時(shí)是否震動(dòng)。

   
   DEFAULT_NOTIFICATION_SOUND

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

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

   
   字段描述

   
   FONT_SCALE

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

   
   SCREEN_BRIGHTNESS_STATUS

   
   設(shè)置屏幕亮度。

   
   AUTO_SCREEN_BRIGHTNESS

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

   
   SCREEN_OFF_TIMEOUT

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

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

   
   字段描述

   
   DATE_FORMAT

   
   設(shè)置日期格式。

   
   TIME_FORMAT

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

   
   AUTO_GAIN_TIME

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

   
   AUTO_GAIN_TIME_ZONE

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

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

   
   字段描述

   
   SETUP_WIZARD_FINISHED

   
   識(shí)別開(kāi)機(jī)向?qū)欠褚呀?jīng)運(yùn)行過(guò)。

   
   AIRPLANE_MODE_STATUS

   
   飛行模式是否開(kāi)啟。

   
   DEVICE_NAME

   
   設(shè)備名稱(chēng)。

   
   ACCESSIBILITY_STATUS

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

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

   
   字段描述

   
   RTT_CALLING_STATUS

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

   
   開(kāi)發(fā)步驟
   應(yīng)用程序打開(kāi)某個(gè)Slice時(shí),在OnStart()時(shí),注冊(cè)相關(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()時(shí),解除回調(diào)注冊(cè)。
   dataAbilityHelper.unregisterObserver(SystemSettings.getUri(SystemSettings.Date.TIME_FORMAT), dataAbilityObserver);

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)