系统设置

您可以使用 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