系統設定¶
您可以使用 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_enabled | int | 是否啟用透過 USB 連接的 ADB(Android 偵錯橋)。 | 17 | |
| airplane_mode_on | int | 是否開啟飛航模式。 | 17 | |
| airplane_mode_radios | string | 飛航模式開啟時需要停用的無線電列表,以逗號分隔。 | 17 | |
| always_finish_activities | int | 若不為 0,活動管理器會在不再需要時立刻結束活動和程序;為 0 則使用正常的延長生命週期。 | 17 | |
| animator_duration_scale | float | 基於 Animator 的動畫的縮放因子。 | 17 | |
| apply_ramping_ringer | int | 是否在來電鈴聲上套用漸強響鈴。 | 29 | 33 |
| auto_time | int | 是否自動設定裝置 UTC 系統時鐘(例如使用 NITZ 等蜂巢式訊號或其他來源)。 | 17 | |
| auto_time_zone | int | 是否自動設定裝置時區系統屬性(例如使用 MCC、NITZ 等蜂巢式訊號或位置等其他機制)。 | 17 | |
| bluetooth_on | int | 藍牙是否啟用(0=停用,1=啟用)。 | 17 | |
| boot_count | int | 自裝置啟動 API 級別 24 以來的啟動次數。 | 24 | |
| contact_metadata_sync_enabled | int | 是否啟用聯絡人中繼資料同步(1=啟用,0=停用)。 | 24 | |
| data_roaming | int | 是否啟用數據漫遊(0=否,1=是)。 | 17 | |
| debug_app | string | 要偵錯的應用程式套件名稱。 | 17 | |
| development_settings_enabled | int | 使用者是否已啟用開發者選項(0=否,1=是)。 | 17 | |
| device_name | string | 裝置名稱。 | 25 | |
| device_provisioned | int | 裝置是否已完成配置(0=否,1=是)。 | 17 | |
| http_proxy | string | 全域 HTTP 代理伺服器的主機名稱和埠(使用冒號分隔)。 | 17 | |
| install_non_market_apps | int | 是否允許安裝非市場應用程式。 | 17 | 21 |
| mode_ringer | int | 響鈴模式(內部使用,變更此值不會改變實際響鈴模式,請參見 AudioManager)。 | 17 | |
| network_preference | int | 使用者對應使用哪個網路的偏好(僅限連線服務修改)。 | 17 | |
| radio_bluetooth | string | 用於飛航模式或衛星模式無線電列表中指定藍牙無線電的常數。 | 17 | |
| radio_cell | string | 用於飛航模式無線電列表中指定蜂巢式無線電的常數。 | 17 | |
| radio_nfc | string | 用於飛航模式或衛星模式無線電列表中指定 NFC 無線電的常數。 | 17 | |
| radio_wifi | string | 用於飛航模式或衛星模式無線電列表中指定 Wi‑Fi 無線電的常數。 | 17 | |
| secure_frp_mode | int | 指示裝置是否處於受限的安全 FRP(恢復原廠設定保護)模式下。 | 34 | |
| show_processes | int | 控制是否顯示程序 CPU 使用率計量器。 | 17 | 25 |
| stay_on_while_plugged_in | int | 裝置插入電源時是否保持喚醒狀態(可組合值:AC、USB、無線、底座充電器)。 | 17 | |
| transition_animation_scale | float | 活動轉場動畫的縮放因子。 | 17 | |
| usb_mass_storage_enabled | int | USB 大容量儲存是否啟用。 | 17 | |
| use_google_mail | int | 若此設定被設定(任意值),則裝置上所有對 Gmail 的引用都必須改為 Google Mail。 | 17 | |
| wait_for_debugger | int | 若為 1,啟動 DEBUG_APP 時會等候偵錯器連線後再執行使用者程式碼;為 0 則正常啟動。 | 17 | |
| wifi_device_owner_configs_lockdown | int | 控制由裝置擁有者應用程式建立的 Wi‑Fi 設定是否應被鎖定(僅裝置擁有者應用程式可編輯或刪除)。 | 23 | |
| wifi_max_dhcp_retry_count | int | 在取得 DHCP IP 位址失敗後,重試連線存取點的最大次數(N 表示總共嘗試 N+1 次)。 | 17 | |
| wifi_mobile_data_transition_wakelock_timeout_ms | int | 從 Wi‑Fi 中斷連線後,等待行動數據連線建立時持有喚醒鎖的最大毫秒數。 | 17 | |
| wifi_networks_available_notification_on | int | 是否在有可用開放網路時通知使用者。 | 17 | 26 |
| wifi_networks_available_repeat_delay | int | 重複顯示 Wi‑Fi 可用網路通知的延遲時間(秒)。 | 17 | 30 |
| wifi_num_open_networks_kept | int | 當開放網路數量超過此值時,將移除最近最少使用的多餘網路。 | 17 | 30 |
| wifi_on | int | Wi‑Fi 是否應開啟(僅限 Wi‑Fi 服務修改)。 | 17 | |
| wifi_sleep_policy | int | 決定 Wi‑Fi 何時進入休眠的策略。 | 17 | 30 |
| wifi_sleep_policy_default | int | 使用預設 Wi‑Fi 休眠策略的值(根據 STAY_ON_WHILE_PLUGGED_IN 設定)。 | 17 | 30 |
| wifi_sleep_policy_never | int | 從不進入休眠的值。 | 17 | 30 |
| wifi_sleep_policy_never_while_plugged | int | 在電池供電時使用預設策略,插入電源時從不休眠的值。 | 17 | 30 |
| wifi_watchdog_on | int | Wi‑Fi 看門狗是否啟用。 | 17 | |
| window_animation_scale | float | 一般視窗動畫的縮放因子。 | 17 |
System¶
| 欄位名稱(小寫) | 型別 | 描述 | 加入版本 | 移除版本 |
|---|---|---|---|---|
| accelerometer_rotation | int | 控制是否使用加速度計自動旋轉螢幕(0=停用,1=啟用) | 3 | |
| alarm_alert | string | 系統預設鬧鐘提示音的 URI | 5 | |
| bluetooth_discoverability | int | 藍牙可被發現設定(2=可被發現且可連接,1=可連接不可被發現,0=兩者都不可) | 1 | |
| bluetooth_discoverability_timeout | int | 藍牙可被發現狀態的逾時時間(秒) | 1 | |
| date_format | string | 日期格式(已棄用,不再使用) | 1 | 31 |
| dtmf_tone | int | 撥號時是否播放 DTMF 音(1=是,0=否) | 1 | |
| dtmf_tone_type | int | CDMA 撥號時的 DTMF 音類型(0=正常,1=長音) | 23 | |
| end_button_behavior | int | 非通話時按下結束鍵的行為(0=無操作,1=回到首頁,2=休眠鎖定螢幕,3=回到首頁或休眠) | 1 | |
| font_scale | float | 字型縮放比例 | 1 | |
| haptic_feedback_enabled | int | 是否啟用觸覺回饋(點擊振動,1=啟用,0=停用) | 3 | 33 |
| mode_ringer_streams_affected | int | 受響鈴模式影響的音訊串流位元遮罩 | 1 | |
| mute_streams_affected | int | 受靜音影響的音訊串流位元遮罩 | 1 | |
| notification_sound | string | 系統預設通知提示音的 URI | 1 | |
| ringtone | string | 系統預設來電鈴聲的 URI | 1 | |
| screen_brightness | int | 螢幕亮度值(1~255) | 1 | |
| screen_brightness_mode | int | 亮度模式(0=手動,1=自動) | 8 | |
| screen_off_timeout | int | 螢幕逾時休眠時間(毫秒) | 1 | |
| setup_wizard_has_run | int | 設定精靈是否已執行(非零表示已執行) | 1 | |
| show_gtalk_service_status | int | 是否顯示 GTalk 服務狀態 | 1 | |
| sound_effects_enabled | int | 是否啟用聲音效果(按鍵音等,1=啟用) | 1 | |
| text_auto_caps | int | 文字編輯器是否自動大寫(1=開) | 1 | |
| text_auto_punctuate | int | 文字編輯器是否自動標點(1=開) | 1 | |
| text_auto_replace | int | 文字編輯器是否自動替換(1=開) | 1 | |
| text_show_password | int | 文字編輯器是否顯示密碼字元(1=顯示) | 1 | |
| time_12_24 | string | 時間顯示格式("12" 或 "24",未設定則使用地區預設) | 1 | |
| user_rotation | int | 預設螢幕旋轉角度(Surface 旋轉常數) | 11 | |
| vibrate_on | int | 是否啟用振動(內部使用,實際振動由 AudioManager 控制) | 1 | |
| vibrate_when_ringing | int | 來電時是否振動(1=振動,0=不振動) | 23 | 33 |
Secure¶
| 欄位名稱(小寫) | 型別 | 描述 | 加入版本 | 移除版本 |
|---|---|---|---|---|
| accessibility_display_inversion_enabled | int | 是否啟用顯示色彩反轉。 | 21 | |
| accessibility_enabled | int | 是否啟用無障礙功能。 | 4 | |
| accessibility_speak_password | int | 是否在無障礙模式下朗讀密碼(已棄用,由各無障礙服務控制)。 | 15 | 26 |
| allowed_geolocation_origins | string | 瀏覽器預設允許地理位置的原址列表(空格分隔)。 | 8 | |
| allow_mock_location | int | 是否允許模擬位置(已棄用,不再使用)。 | 3 | 23 |
| android_id | string | 裝置唯一的 Android ID(64 位元十六進位字串,Android 8.0+ 作用域變化)。 | 3 | |
| default_input_method | string | 目前預設輸入法的元件名稱(ComponentName 扁平化字串)。 | 3 | |
| enabled_accessibility_services | string | 已啟用的無障礙服務列表(字串格式)。 | 4 | |
| enabled_input_methods | string | 已啟用的輸入法列表(冒號分隔,格式包含子類型)。 | 3 | |
| input_method_selector_visibility | int | 輸入法選擇器的可見性記錄。 | 11 | |
| install_non_market_apps | int | 是否允許安裝非市場應用程式(1=允許,0=禁止;API 26+ 應使用 PackageManager.canRequestPackageInstalls())。 | 3 | 26 |
| location_mode | int | 目前位置模式(整數值;API 28+ 建議使用 LocationManager.isLocationEnabled())。 | 19 | 28 |
| lock_pattern_enabled | int | 是否啟用鎖定螢幕圖案(0=否,1=是;API 23+ 建議使用 KeyguardManager)。 | 8 | 23 |
| lock_pattern_visible | int | 是否顯示鎖定螢幕圖案連線(0=否,1=是;API 23+ 讀取會擲出 SecurityException)。 | 8 | 23 |
| parental_control_enabled | int | 是否啟用家長控制(已不再支援)。 | 3 | |
| parental_control_last_update | string | 家長控制最後更新時間(已不再支援)。 | 3 | |
| parental_control_redirect_url | string | 家長控制重導向 URL(已不再支援)。 | 3 | |
| rtt_calling_mode | int | 是否啟用 RTT 通話模式(0=關閉,1=開啟)。 | 28 | |
| secure_frp_mode | int | 是否處於受限的 FRP(恢復原廠設定保護)模式(0=否,1=是)。 | 30 | 34 |
| selected_input_method_subtype | string | 選中的輸入法子類型 ID。 | 11 | |
| settings_classname | string | 設定應用程式的類別名稱。 | 3 | |
| skip_first_use_hints | int | 是否跳過首次使用提示(0=顯示提示,1=跳過)。 | 21 | |
| touch_exploration_enabled | int | 是否啟用觸控探索(無障礙功能)。 | 14 | |
| tts_default_pitch | int | 預設 TTS 音調(100 = 1x)。 | 4 | |
| tts_default_rate | int | 預設 TTS 語速(100 = 1x)。 | 4 | |
| tts_default_synth | string | 預設 TTS 引擎(套件名稱)。 | 4 | |
| tts_enabled_plugins | string | 啟用的 TTS 外掛列表(空格分隔)。 | 8 |