鸿蒙操作系统(HarmonyOS)是华为技术有限公司开发的一款新型操作系统,它旨在为手机、智能家居、汽车、PC等多个平台提供一体化的跨平台应用体验。
鸿蒙OS开发指导主要集中在华为开发者联盟官网上,该官网是华为公司专门为开发者准备的一站式服务平台。在这里,开发者们不仅能够找到各种关于鸿蒙OS的开发文档和教程,还能够找到各种工具和SDK来帮助他们快速上手。
// 在华为开发者联盟官网上,我们能够找到如下内容: 1. 鸿蒙OS快速入门 2. 鸿蒙OS应用开发 3. 鸿蒙OS应用测试 4. 鸿蒙OS应用部署 5. 鸿蒙OS应用优化 6. 鸿蒙OS应用运行时 7. 鸿蒙OS应用性能优化 8. 鸿蒙OS应用安全性优化 9. 鸿蒙OS SDK 工具使用说明 10. 其他相关文档和教程。
此外,华为也在不断加大对面向开发者的力度,不断优化面向开发者的体验。例如:华为在2020年6月正式启动了“Harmony OS Developer Challenge”大赛(也就是“鸿蒙 OS 公测大师赛”)。该大师赛既是对已有的 Harmony OS 公测版本进行测试和优化的一次考核,也是对 Harmony OS 的生态体系进行考核和优化的一次考核。
TTS、Wireless、Network、Input、Sound、Display、Date、Call、General 九类定义了表征终端设备状态的相关字段,如屏幕亮度、日期格式、字体显示大小等,应用程序可以根据自身所拥有的权限对其进行增、删、改、查等操作,并进行相应的场景适配。
例如:TIME_FORMAT——表示日期格式,应用程序可进行读写。
图1 数据表更新过程
SystemSettings 提供系统设置的相关接口,包括 TTS、Wireless、Network、Input、Sound、Display、Date、Call、General 九类字段的存储和检索接口。应用程序通过 AppSettings 类提供的方法对其自身的能力进行查询。
接口名 | 描述 |
---|---|
canShowOverlays(Context context) | 检查指定应用程序是否可以显示在其他应用之上。 |
checkSetPermission(Context context) | 通过应用上下文检查指定的应用是否具有修改系统设置的权限。 |
接口名 | 描述 |
---|---|
getUri(String name) | 为特定的字段构造URI,用于DataAbility的数据监视。 |
getValue(DataAbilityHelper dataAbilityHelper, String name) | 获取指定字段的值。 |
setValue(DataAbilityHelper dataAbilityHelper, String name, String value) | 设置指定字段的值。 |
字段名 | 字段描述 |
---|---|
DEFAULT_TTS_PITCH | 文本转语音引擎的默认音调。 |
DEFAULT_TTS_RATE | 文本转语音引擎的默认语速。 |
字段名 | 字段描述 |
---|---|
BLUETOOTH_STATUS | 蓝牙开启状态。 |
WIFI_STATUS | WLAN是否启用。 |
WIFI_TO_MOBILE_DATA_AWAKE_TIMEOUT | 从WLAN 断开连接后等待建立移动数据连接时保持唤醒锁的最长时间。 |
字段名 | 字段描述 |
---|---|
DATA_ROAMING_STATUS | 数据漫游开启状态。 |
NETWORK_PREFERENCE_USAGE | 设置用户经常使用的网络。 |
字段名 | 字段描述 |
---|---|
DEFAULT_INPUT_METHOD | 设置默认的输入法,并记录此输入法的ID。 |
ACTIVATED_INPUT_METHODS | 已激活的输入法列表。 |
AUTO_CAPS_TEXT_INPUT | 设置文本编辑器是否启用自动大写。 |
字段名 | 字段描述 |
---|---|
HAPTIC_FEEDBACK_STATUS | 设置是否开启触摸反馈。 |
VIBRATE_WHILE_RINGING | 设置来电响铃时是否震动。 |
DEFAULT_NOTIFICATION_SOUND | 系统默认通知铃声的存储区。 |
字段名 | 字段描述 |
---|---|
FONT_SCALE | 设置字体大小因子。 |
SCREEN_BRIGHTNESS_STATUS | 设置屏幕亮度。 |
AUTO_SCREEN_BRIGHTNESS | 设置是否打开屏幕亮度自动调节模式。 |
SCREEN_OFF_TIMEOUT | 设置设备屏幕自动休眠时间。 |
字段名 | 字段描述 |
---|---|
DATE_FORMAT | 设置日期格式。 |
TIME_FORMAT | 设置以12或24小时制显示时间。 |
AUTO_GAIN_TIME | 是否从网络(NITZ)自动获取日期,时间和时区的值。 |
AUTO_GAIN_TIME_ZONE | 是否从网络(NITZ)自动获取时区的值。 |
字段名 | 字段描述 |
---|---|
SETUP_WIZARD_FINISHED | 识别开机向导是否已经运行过。 |
AIRPLANE_MODE_STATUS | 飞行模式是否开启。 |
DEVICE_NAME | 设备名称。 |
ACCESSIBILITY_STATUS | 设置辅助功能是否可用。 |
字段名 | 字段描述 |
---|---|
RTT_CALLING_STATUS | 设置来去电是否启动RTT模式进行应答。 |
场景介绍
TTS、Wireless、Network、Input、Sound、Display、Date、Call、General九类定义了表征终端设备状态的相关字段,如屏幕亮度、日期格式、字体显示大小等,应用程序可以根据自身所拥有的权限对其进行增、删、改、查等操作,并进行相应的场景适配。
例如:TIME_FORMAT——表示日期格式,应用程序可进行读写。
图1 数据表更新过程
点击放大
接口说明
SystemSettings 提供系统设置的相关接口,包括TTS、Wireless、Network、Input、Sound、Display、Date、Call、General 九类字段的存储和检索接口。应用程序通过 AppSettings 类提供的方法对其自身的能力进行查询。
表1 AppSettings的主要接口
接口名
描述
canShowOverlays(Context context)
检查指定应用程序是否可以显示在其他应用之上。
checkSetPermission(Context context)
通过应用上下文检查指定的应用是否具有修改系统设置的权限。
表2 SystemSettings的主要接口
接口名
描述
getUri(String name)
为特定的字段构造URI,用于DataAbility的数据监视。
getValue(DataAbilityHelper dataAbilityHelper, String name)
获取指定字段的值。
setValue(DataAbilityHelper dataAbilityHelper, String name, String value)
设置指定字段的值。
表3 SystemSettings.TTS提供的典型字段
字段名
字段描述
DEFAULT_TTS_PITCH
文本转语音引擎的默认音调。
DEFAULT_TTS_RATE
文本转语音引擎的默认语速。
表4 SystemSettings.Wireless提供的典型字段
字段名
字段描述
BLUETOOTH_STATUS
蓝牙开启状态。
WIFI_STATUS
WLAN是否启用。
WIFI_TO_MOBILE_DATA_AWAKE_TIMEOUT
从WLAN断开连接后等待建立移动数据连接时保持唤醒锁的最长时间。
表5 SystemSettings.Network提供的典型字段
字段名
字段描述
DATA_ROAMING_STATUS
数据漫游开启状态。
NETWORK_PREFERENCE_USAGE
设置用户经常使用的网络。
表6 SystemSettings.Input提供的典型字段
字段名
字段描述
DEFAULT_INPUT_METHOD
设置默认的输入法,并记录此输入法的ID。
ACTIVATED_INPUT_METHODS
已激活的输入法列表。
AUTO_CAPS_TEXT_INPUT
设置文本编辑器是否启用自动大写。
表7 SystemSettings.Sound提供的字段
字段名
字段描述
HAPTIC_FEEDBACK_STATUS
设置是否开启触摸反馈。
VIBRATE_WHILE_RINGING
设置来电响铃时是否震动。
DEFAULT_NOTIFICATION_SOUND
系统默认通知铃声的存储区。
表8 SystemSettings.Display提供的典型字段
字段名
字段描述
FONT_SCALE
设置字体大小因子。
SCREEN_BRIGHTNESS_STATUS
设置屏幕亮度。
AUTO_SCREEN_BRIGHTNESS
设置是否打开屏幕亮度自动调节模式。
SCREEN_OFF_TIMEOUT
设置设备屏幕自动休眠时间。
表9 SystemSettings.Date提供的典型字段
字段名
字段描述
DATE_FORMAT
设置日期格式。
TIME_FORMAT
设置以12或24小时制显示时间。
AUTO_GAIN_TIME
是否从网络(NITZ)自动获取日期,时间和时区的值。
AUTO_GAIN_TIME_ZONE
是否从网络(NITZ)自动获取时区的值。
表10 SystemSettings.General提供的典型字段
字段名
字段描述
SETUP_WIZARD_FINISHED
识别开机向导是否已经运行过。
AIRPLANE_MODE_STATUS
飞行模式是否开启。
DEVICE_NAME
设备名称。
ACCESSIBILITY_STATUS
设置辅助功能是否可用。
表11 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) {
if ("12".equals(timeFormat)) {
// Display in 12-hour format
} else {
// Display in 24-hour format
}
}
在 onStop()时,解除回调注册。
dataAbilityHelper.unregisterObserver(SystemSettings.getUri(SystemSettings.Date.TIME_FORMAT), dataAbilityObserver);
dataAbilityHelper.unregisterObserver(SystemSettings.getUri(SystemSettings.Date.TIME_FORMAT), dataAbilityObserver);
风暴最初是由Nathan马兹和团队BackType创建。 BackType是一个社交分析公司。后来,风暴被收购和被Twitter开源。在很短的时间,阿...
AttrSetpublic interface AttrSet定义如何存储、读取和使用与 Component 控件相关的属性,以及其他需要使用属性集的类。字段摘要...
Component.DrawTaskpublic static interface Component.DrawTask实现绘图任务。您可以使用 Component.addDrawTask(ohos.agp.comp...
Component.LayoutRefreshedListenerpublic static interface Component.LayoutRefreshedListener提供在再次布局组件时调用的回调...
Component.SpeechEventListenerpublic static interface Component.SpeechEventListener提供当语音事件绑定到组件时要调用的回调...
Picker.Formatterpublic static interface Picker.Formatter格式化 Picker 的值并将其转换为字符串。您必须实现 format(int) 接...
SlideDrawer.SlideDisablepublic static interface SlideDrawer.SlideDisable允许实时禁用幻灯片。方法总结修饰符和类型方法描述...
Buttonjava.lang.Object |---ohos.agp.components.Component |---|---ohos.agp.components.Text |---|---|---ohos.agp.component...
Component.DefSpeechEventListenerjava.lang.Object |---ohos.agp.components.Component.DefSpeechEventListenerpublic static c...
DatePickerjava.lang.Object |---ohos.agp.components.Component |---|---ohos.agp.components.ComponentContainer |---|---|---...