系統設定

您可以使用 FIRERPA 的 Settings 相關介面,來進行一些安卓系統的參數設置,或者系統設定的讀取。這個功能能夠做到的具體項目很多, 比如透過此功能設置螢幕亮度、開關開發者模式,甚至鈴聲音量等。我們這裡只做一些簡單的範例。

呼叫介面

在開始之前,您需要先取得一個 Settings 實例,您可以像下面這樣呼叫。

settings = d.stub("Settings")

將系統螢幕的亮度設為手動模式,這樣您裝置的螢幕亮度就不會跟隨環境光的改變而改變,您才可以為螢幕設定一個固定的亮度。

settings.put_system("screen_brightness_mode", "0")

取得目前螢幕的亮度,隨後將螢幕的亮度降低為 5。

settings.get_system("screen_brightness")
settings.put_system("screen_brightness", "5")

得知是否已開啟開發者模式,隨後關閉開發者模式。

settings.get_global("development_settings_enabled")
settings.put_global("development_settings_enabled", "0")

得知是否已開啟螢幕保護程式,隨後關閉螢幕保護程式。

settings.get_secure("screensaver_enabled")
settings.put_secure("screensaver_enabled", "0")

以下範例將會設定螢幕亮度為手動,亮度為 64,並且永不息屏。

settings.put_system("screen_brightness", "64")
settings.put_system("screen_brightness_mode", "1")
settings.put_system("screen_off_timeout", "604800000")

可用參數

如果您對 screen_brightness 等字串表示疑惑,本節就是為您準備的。此介面的可用參數完全取決於系統支援哪些。請注意,有些常數在不同版本的安卓上可能不相容,而且部分廠商會有自訂的變數。您可以在以下安卓官方文件中找到相關可用參數,然後配合以上介面進行系統設定。

小撇步

我們在下面列出官方定義的可用欄位,但是實際系統中的可用欄位遠不止這些,您可以使用指令 settings list [system|global|secure] 來查看不同分類裡面實際都有哪些可用設定。

官方文件

分類連結
全域系統設定(Global Settings),包含所有使用者均可存取的系統級偏好設定https://developer.android.com/reference/android/provider/Settings.Global
系統設定(System Settings),包含歷史遺留的系統偏好設定,主要用於鈴聲、亮度等裝置相關配置https://developer.android.com/reference/android/provider/Settings.System
安全設定(Secure Settings),包含與隱私和安全相關的系統設定https://developer.android.com/reference/android/provider/Settings.Secure

Global

欄位名稱(小寫)型別描述加入版本移除版本
adb_enabledint是否啟用透過 USB 連接的 ADB(Android 偵錯橋)。17
airplane_mode_onint是否開啟飛航模式。17
airplane_mode_radiosstring飛航模式開啟時需要停用的無線電列表,以逗號分隔。17
always_finish_activitiesint若不為 0,活動管理器會在不再需要時立刻結束活動和程序;為 0 則使用正常的延長生命週期。17
animator_duration_scalefloat基於 Animator 的動畫的縮放因子。17
apply_ramping_ringerint是否在來電鈴聲上套用漸強響鈴。2933
auto_timeint是否自動設定裝置 UTC 系統時鐘(例如使用 NITZ 等蜂巢式訊號或其他來源)。17
auto_time_zoneint是否自動設定裝置時區系統屬性(例如使用 MCC、NITZ 等蜂巢式訊號或位置等其他機制)。17
bluetooth_onint藍牙是否啟用(0=停用,1=啟用)。17
boot_countint自裝置啟動 API 級別 24 以來的啟動次數。24
contact_metadata_sync_enabledint是否啟用聯絡人中繼資料同步(1=啟用,0=停用)。24
data_roamingint是否啟用數據漫遊(0=否,1=是)。17
debug_appstring要偵錯的應用程式套件名稱。17
development_settings_enabledint使用者是否已啟用開發者選項(0=否,1=是)。17
device_namestring裝置名稱。25
device_provisionedint裝置是否已完成配置(0=否,1=是)。17
http_proxystring全域 HTTP 代理伺服器的主機名稱和埠(使用冒號分隔)。17
install_non_market_appsint是否允許安裝非市場應用程式。1721
mode_ringerint響鈴模式(內部使用,變更此值不會改變實際響鈴模式,請參見 AudioManager)。17
network_preferenceint使用者對應使用哪個網路的偏好(僅限連線服務修改)。17
radio_bluetoothstring用於飛航模式或衛星模式無線電列表中指定藍牙無線電的常數。17
radio_cellstring用於飛航模式無線電列表中指定蜂巢式無線電的常數。17
radio_nfcstring用於飛航模式或衛星模式無線電列表中指定 NFC 無線電的常數。17
radio_wifistring用於飛航模式或衛星模式無線電列表中指定 Wi‑Fi 無線電的常數。17
secure_frp_modeint指示裝置是否處於受限的安全 FRP(恢復原廠設定保護)模式下。34
show_processesint控制是否顯示程序 CPU 使用率計量器。1725
stay_on_while_plugged_inint裝置插入電源時是否保持喚醒狀態(可組合值:AC、USB、無線、底座充電器)。17
transition_animation_scalefloat活動轉場動畫的縮放因子。17
usb_mass_storage_enabledintUSB 大容量儲存是否啟用。17
use_google_mailint若此設定被設定(任意值),則裝置上所有對 Gmail 的引用都必須改為 Google Mail。17
wait_for_debuggerint若為 1,啟動 DEBUG_APP 時會等候偵錯器連線後再執行使用者程式碼;為 0 則正常啟動。17
wifi_device_owner_configs_lockdownint控制由裝置擁有者應用程式建立的 Wi‑Fi 設定是否應被鎖定(僅裝置擁有者應用程式可編輯或刪除)。23
wifi_max_dhcp_retry_countint在取得 DHCP IP 位址失敗後,重試連線存取點的最大次數(N 表示總共嘗試 N+1 次)。17
wifi_mobile_data_transition_wakelock_timeout_msint從 Wi‑Fi 中斷連線後,等待行動數據連線建立時持有喚醒鎖的最大毫秒數。17
wifi_networks_available_notification_onint是否在有可用開放網路時通知使用者。1726
wifi_networks_available_repeat_delayint重複顯示 Wi‑Fi 可用網路通知的延遲時間(秒)。1730
wifi_num_open_networks_keptint當開放網路數量超過此值時,將移除最近最少使用的多餘網路。1730
wifi_onintWi‑Fi 是否應開啟(僅限 Wi‑Fi 服務修改)。17
wifi_sleep_policyint決定 Wi‑Fi 何時進入休眠的策略。1730
wifi_sleep_policy_defaultint使用預設 Wi‑Fi 休眠策略的值(根據 STAY_ON_WHILE_PLUGGED_IN 設定)。1730
wifi_sleep_policy_neverint從不進入休眠的值。1730
wifi_sleep_policy_never_while_pluggedint在電池供電時使用預設策略,插入電源時從不休眠的值。1730
wifi_watchdog_onintWi‑Fi 看門狗是否啟用。17
window_animation_scalefloat一般視窗動畫的縮放因子。17

System

欄位名稱(小寫)型別描述加入版本移除版本
accelerometer_rotationint控制是否使用加速度計自動旋轉螢幕(0=停用,1=啟用)3
alarm_alertstring系統預設鬧鐘提示音的 URI5
bluetooth_discoverabilityint藍牙可被發現設定(2=可被發現且可連接,1=可連接不可被發現,0=兩者都不可)1
bluetooth_discoverability_timeoutint藍牙可被發現狀態的逾時時間(秒)1
date_formatstring日期格式(已棄用,不再使用)131
dtmf_toneint撥號時是否播放 DTMF 音(1=是,0=否)1
dtmf_tone_typeintCDMA 撥號時的 DTMF 音類型(0=正常,1=長音)23
end_button_behaviorint非通話時按下結束鍵的行為(0=無操作,1=回到首頁,2=休眠鎖定螢幕,3=回到首頁或休眠)1
font_scalefloat字型縮放比例1
haptic_feedback_enabledint是否啟用觸覺回饋(點擊振動,1=啟用,0=停用)333
mode_ringer_streams_affectedint受響鈴模式影響的音訊串流位元遮罩1
mute_streams_affectedint受靜音影響的音訊串流位元遮罩1
notification_soundstring系統預設通知提示音的 URI1
ringtonestring系統預設來電鈴聲的 URI1
screen_brightnessint螢幕亮度值(1~255)1
screen_brightness_modeint亮度模式(0=手動,1=自動)8
screen_off_timeoutint螢幕逾時休眠時間(毫秒)1
setup_wizard_has_runint設定精靈是否已執行(非零表示已執行)1
show_gtalk_service_statusint是否顯示 GTalk 服務狀態1
sound_effects_enabledint是否啟用聲音效果(按鍵音等,1=啟用)1
text_auto_capsint文字編輯器是否自動大寫(1=開)1
text_auto_punctuateint文字編輯器是否自動標點(1=開)1
text_auto_replaceint文字編輯器是否自動替換(1=開)1
text_show_passwordint文字編輯器是否顯示密碼字元(1=顯示)1
time_12_24string時間顯示格式("12" 或 "24",未設定則使用地區預設)1
user_rotationint預設螢幕旋轉角度(Surface 旋轉常數)11
vibrate_onint是否啟用振動(內部使用,實際振動由 AudioManager 控制)1
vibrate_when_ringingint來電時是否振動(1=振動,0=不振動)2333

Secure

欄位名稱(小寫)型別描述加入版本移除版本
accessibility_display_inversion_enabledint是否啟用顯示色彩反轉。21
accessibility_enabledint是否啟用無障礙功能。4
accessibility_speak_passwordint是否在無障礙模式下朗讀密碼(已棄用,由各無障礙服務控制)。1526
allowed_geolocation_originsstring瀏覽器預設允許地理位置的原址列表(空格分隔)。8
allow_mock_locationint是否允許模擬位置(已棄用,不再使用)。323
android_idstring裝置唯一的 Android ID(64 位元十六進位字串,Android 8.0+ 作用域變化)。3
default_input_methodstring目前預設輸入法的元件名稱(ComponentName 扁平化字串)。3
enabled_accessibility_servicesstring已啟用的無障礙服務列表(字串格式)。4
enabled_input_methodsstring已啟用的輸入法列表(冒號分隔,格式包含子類型)。3
input_method_selector_visibilityint輸入法選擇器的可見性記錄。11
install_non_market_appsint是否允許安裝非市場應用程式(1=允許,0=禁止;API 26+ 應使用 PackageManager.canRequestPackageInstalls())。326
location_modeint目前位置模式(整數值;API 28+ 建議使用 LocationManager.isLocationEnabled())。1928
lock_pattern_enabledint是否啟用鎖定螢幕圖案(0=否,1=是;API 23+ 建議使用 KeyguardManager)。823
lock_pattern_visibleint是否顯示鎖定螢幕圖案連線(0=否,1=是;API 23+ 讀取會擲出 SecurityException)。823
parental_control_enabledint是否啟用家長控制(已不再支援)。3
parental_control_last_updatestring家長控制最後更新時間(已不再支援)。3
parental_control_redirect_urlstring家長控制重導向 URL(已不再支援)。3
rtt_calling_modeint是否啟用 RTT 通話模式(0=關閉,1=開啟)。28
secure_frp_modeint是否處於受限的 FRP(恢復原廠設定保護)模式(0=否,1=是)。3034
selected_input_method_subtypestring選中的輸入法子類型 ID。11
settings_classnamestring設定應用程式的類別名稱。3
skip_first_use_hintsint是否跳過首次使用提示(0=顯示提示,1=跳過)。21
touch_exploration_enabledint是否啟用觸控探索(無障礙功能)。14
tts_default_pitchint預設 TTS 音調(100 = 1x)。4
tts_default_rateint預設 TTS 語速(100 = 1x)。4
tts_default_synthstring預設 TTS 引擎(套件名稱)。4
tts_enabled_pluginsstring啟用的 TTS 外掛列表(空格分隔)。8