一、基本概念
- 应用程序可以对系统各类设置项进行查询,例如,三方应用提前注册飞行模式设置项的回调。当用户通过系统设置修改终端的飞行模式状态时,三方应用会检测到此设置项发生变化并进行适配,如检测到飞行模式开启,将进入离线状态;检测到飞行模式关闭,其将重新获取在线数据。
- 系统设置数据项分为 TTS(Text To Speech)、Wireless、Network、Input、Sound、Display、Date、Call、General 九类,应用程序可以根据自身拥有的权限对其进行操作。
- TTS、Wireless、Network、Input、Sound、Display、Date、Call、General 九类定义了表征终端设备状态的相关字段,如屏幕亮度、日期格式、字体显示大小等,应用程序可以对其进行查询,并进行相应的场景适配。
二、API
- SystemSettings 提供系统设置的相关接口,包括 TTS、Wireless、Network、Input、Sound、Display、Date、Call、General 九类字段的存储和检索接口,应用程序通过 AppSettings 类提供的方法对其自身的能力进行查询。
- SystemSettings 的主要接口:
接口名 |
描述 |
getUri(String name) |
为特定的字段构造URI,用于DataAbility的数据监视 |
getValue(DataAbilityHelper dataAbilityHelper, String name) |
获取指定字段的值 |
- SystemSettings.TTS 提供的典型字段:
字段名 |
字段描述 |
DEFAULT_TTS_PITCH |
文本转语音引擎的默认音调 |
DEFAULT_TTS_RATE |
文本转语音引擎的默认语速 |
- SystemSettings.Wireless 提供的典型字段:
字段名 |
字段描述 |
BLUETOOTH_STATUS |
蓝牙开启状态 |
WIFI_STATUS |
WLAN是否启用 |
WIFI_TO_MOBILE_DATA_AWAKE_TIMEOUT |
从WLAN断开连接后等待建立移动数据连接时保持唤醒锁的最长时间 |
- SystemSettings.Network 提供的典型字段:
字段名 |
字段描述 |
DATA_ROAMING_STATUS |
数据漫游开启状态 |
NETWORK_PREFERENCE_USAGE |
设置用户经常使用的网络 |
- SystemSettings.Input 提供的典型字段:
字段名 |
字段描述 |
DEFAULT_INPUT_METHOD |
设置默认的输入法,并记录此输入法的ID |
ACTIVATED_INPUT_METHODS |
已激活的输入法列表 |
AUTO_CAPS_TEXT_INPUT |
设置文本编辑器是否启用自动大写 |
- SystemSettings.Sound 提供的字段:
字段名 |
字段描述 |
HAPTIC_FEEDBACK_STATUS |
设置是否开启触摸反馈 |
VIBRATE_WHILE_RINGING |
设置来电响铃时是否震动 |
DEFAULT_NOTIFICATION_SOUND |
系统默认通知铃声的存储区 |
- SystemSettings.Display 提供的典型字段:
字段名 |
字段描述 |
FONT_SCALE |
设置字体大小因子 |
SCREEN_BRIGHTNESS_STATUS |
设置屏幕亮度 |
AUTO_SCREEN_BRIGHTNESS |
设置是否打开屏幕亮度自动调节模式 |
SCREEN_OFF_TIMEOUT |
设置设备屏幕自动休眠时间 |
- SystemSettings.Date 提供的典型字段:
字段名 |
字段描述 |
DATE_FORMAT |
设置日期格式 |
TIME_FORMAT |
设置以12或24小时制显示时间 |
AUTO_GAIN_TIME |
是否从网络(NITZ)自动获取日期,时间和时区的值 |
AUTO_GAIN_TIME_ZONE |
是否从网络(NITZ)自动获取时区的值 |
- SystemSettings.General 提供的典型字段:
字段名 |
字段描述 |
SETUP_WIZARD_FINISHED |
识别开机向导是否已经运行过 |
AIRPLANE_MODE_STATUS |
飞行模式是否开启 |
DEVICE_NAME |
设备名称 |
ACCESSIBILITY_STATUS |
设置辅助功能是否可用 |
- SystemSettings.Call 提供的典型字段:
字段名 |
字段描述 |
RTT_CALLING_STATUS |
设置来去电是否启动RTT模式进行应答 |
三、使用流程
- 应用程序打开某个 Slice 时,在 OnStart() 时,注册相关设置项的回调,并读取一次该设置项的值,进行初始化适配。
@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) {
String timeStr = "12";
if (timeStr.equals(timeFormat)) {
} else {
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
dataAbilityHelper.unregisterObserver(SystemSettings.getUri(SystemSettings.Date.TIME_FORMAT), dataAbilityObserver);
文章来源: blog.csdn.net,作者:Serendipity·y,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/Forever_wj/article/details/118545288
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
评论(0)