From 488baf8d792289aed8301751765ca35e0ac3e38a Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Thu, 7 Jul 2022 10:03:06 +0800 Subject: [PATCH 001/868] HDI api Signed-off-by: duangavin123 --- .../api/public_sys-resources/icon-caution.gif | Bin 0 -> 580 bytes .../api/public_sys-resources/icon-danger.gif | Bin 0 -> 580 bytes .../api/public_sys-resources/icon-note.gif | Bin 0 -> 394 bytes .../api/public_sys-resources/icon-notice.gif | Bin 0 -> 406 bytes .../api/public_sys-resources/icon-tip.gif | Bin 0 -> 253 bytes .../api/public_sys-resources/icon-warning.gif | Bin 0 -> 580 bytes .../api/toctopics/____attribute____.md | 78 + zh-cn/device-dev/api/toctopics/_alignment.md | 58 + zh-cn/device-dev/api/toctopics/_alloc_info.md | 51 + zh-cn/device-dev/api/toctopics/_audio.md | 2319 +++++++ .../api/toctopics/_audio_adapter.md | 527 ++ .../toctopics/_audio_adapter_descriptor.md | 41 + .../api/toctopics/_audio_attribute.md | 427 ++ .../api/toctopics/_audio_capture.md | 149 + .../api/toctopics/_audio_control.md | 316 + .../api/toctopics/_audio_dev_ext_info.md | 41 + .../api/toctopics/_audio_device_descriptor.md | 41 + .../api/toctopics/_audio_manager.md | 223 + .../api/toctopics/_audio_mix_ext_info.md | 36 + .../_audio_mmap_buffer_descripter.md | 51 + zh-cn/device-dev/api/toctopics/_audio_port.md | 41 + .../api/toctopics/_audio_port_cap.md | 88 + .../api/toctopics/_audio_port_capability.md | 86 + .../device-dev/api/toctopics/_audio_render.md | 485 ++ .../device-dev/api/toctopics/_audio_route.md | 46 + .../api/toctopics/_audio_route_node.md | 56 + .../api/toctopics/_audio_sample_attributes.md | 91 + .../device-dev/api/toctopics/_audio_scene.md | 140 + .../api/toctopics/_audio_scene_descriptor.md | 53 + .../api/toctopics/_audio_session_ext_info.md | 31 + .../toctopics/_audio_sub_port_capability.md | 41 + .../api/toctopics/_audio_time_stamp.md | 38 + .../device-dev/api/toctopics/_audio_volume.md | 367 ++ .../api/toctopics/_auth_result_info.md | 111 + .../api/toctopics/_auth_solution.md | 111 + .../device-dev/api/toctopics/_battery_info.md | 257 + .../device-dev/api/toctopics/_buffer_data.md | 36 + zh-cn/device-dev/api/toctopics/_camera.md | 2825 ++++++++ zh-cn/device-dev/api/toctopics/_codec.md | 2595 ++++++++ .../api/toctopics/_codec_callback_type.md | 54 + .../api/toctopics/_codec_comp_capability.md | 178 + .../api/toctopics/_codec_component_manager.md | 211 + .../api/toctopics/_codec_component_type.md | 125 + .../api/toctopics/_comp_ver_info.md | 88 + .../api/toctopics/_credential_info.md | 141 + zh-cn/device-dev/api/toctopics/_d_a_c.md | 240 + zh-cn/device-dev/api/toctopics/_dac_io_msg.md | 36 + .../device-dev/api/toctopics/_device_funcs.md | 211 + .../device-dev/api/toctopics/_device_info.md | 223 + zh-cn/device-dev/api/toctopics/_display.md | 5817 +++++++++++++++++ .../api/toctopics/_display_capability.md | 71 + .../device-dev/api/toctopics/_display_info.md | 41 + .../api/toctopics/_display_mode_info.md | 46 + .../device-dev/api/toctopics/_enroll_param.md | 81 + .../api/toctopics/_enrolled_info.md | 66 + zh-cn/device-dev/api/toctopics/_event_info.md | 118 + .../api/toctopics/_event_package.md | 88 + .../api/toctopics/_executor_info.md | 173 + .../api/toctopics/_executor_register_info.md | 126 + .../api/toctopics/_executor_send_msg.md | 64 + .../api/toctopics/_face_auth_types_8idl.md | 94 + .../_get_buffer_handle_usage_params.md | 88 + zh-cn/device-dev/api/toctopics/_gfx_funcs.md | 380 ++ zh-cn/device-dev/api/toctopics/_gfx_opt.md | 81 + .../api/toctopics/_gralloc_funcs.md | 422 ++ .../api/toctopics/_h_d_r_capability.md | 51 + .../api/toctopics/_h_d_r_meta_data.md | 36 + .../api/toctopics/_hdf_face_auth.md | 401 ++ .../device-dev/api/toctopics/_hdf_pin_auth.md | 299 + .../toctopics/_hdf_thermal_callback_info.md | 43 + .../api/toctopics/_hdf_user_auth.md | 275 + .../api/toctopics/_i_battery_callback_8idl.md | 58 + .../toctopics/_i_battery_interface_8idl.md | 54 + zh-cn/device-dev/api/toctopics/_i_circle.md | 46 + .../toctopics/_i_face_auth_interface_8idl.md | 52 + .../api/toctopics/_i_input_interface.md | 73 + zh-cn/device-dev/api/toctopics/_i_line.md | 51 + .../toctopics/_i_pin_auth_interface_8idl.md | 52 + .../toctopics/_i_power_hdi_callback_8idl.md | 58 + .../api/toctopics/_i_power_interface_8idl.md | 58 + zh-cn/device-dev/api/toctopics/_i_rect.md | 46 + zh-cn/device-dev/api/toctopics/_i_surface.md | 91 + .../api/toctopics/_i_thermal_callback_8idl.md | 58 + .../toctopics/_i_thermal_interface_8idl.md | 58 + .../toctopics/_i_user_auth_interface_8idl.md | 52 + zh-cn/device-dev/api/toctopics/_i_wi_fi.md | 577 ++ zh-cn/device-dev/api/toctopics/_i_wi_fi_ap.md | 152 + .../api/toctopics/_i_wi_fi_base_feature.md | 420 ++ .../device-dev/api/toctopics/_i_wi_fi_sta.md | 142 + .../api/toctopics/_identify_result_info.md | 81 + zh-cn/device-dev/api/toctopics/_input.md | 462 ++ .../api/toctopics/_input_controller.md | 452 ++ .../api/toctopics/_input_extra_cmd.md | 58 + .../api/toctopics/_input_manager.md | 240 + .../api/toctopics/_input_report_event_cb.md | 102 + .../api/toctopics/_input_reporter.md | 191 + .../device-dev/api/toctopics/_layer_alpha.md | 51 + .../device-dev/api/toctopics/_layer_buffer.md | 61 + .../device-dev/api/toctopics/_layer_funcs.md | 2160 ++++++ zh-cn/device-dev/api/toctopics/_layer_info.md | 53 + zh-cn/device-dev/api/toctopics/_light.md | 295 + .../device-dev/api/toctopics/_light_effect.md | 64 + .../api/toctopics/_light_flash_effect.md | 79 + zh-cn/device-dev/api/toctopics/_light_info.md | 64 + .../api/toctopics/_light_interface.md | 158 + ...h_o_s_1_1_camera_1_1_capture_ended_info.md | 36 + ...h_o_s_1_1_camera_1_1_capture_error_info.md | 36 + .../_o_h_o_s_1_1_camera_1_1_capture_info.md | 41 + ..._o_h_o_s_1_1_camera_1_1_i_camera_device.md | 66 + ...1_1_camera_1_1_i_camera_device_callback.md | 41 + .../_o_h_o_s_1_1_camera_1_1_i_camera_host.md | 73 + ...s_1_1_camera_1_1_i_camera_host_callback.md | 46 + ..._1_camera_1_1_i_offline_stream_operator.md | 46 + ..._h_o_s_1_1_camera_1_1_i_stream_operator.md | 81 + ...1_camera_1_1_i_stream_operator_callback.md | 51 + ...o_h_o_s_1_1_camera_1_1_stream_attribute.md | 71 + .../_o_h_o_s_1_1_camera_1_1_stream_info.md | 76 + ...o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md | 41 + ...o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md | 51 + .../_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md | 36 + .../_o_h_o_s_1_1_u_s_b_1_1_usb_info.md | 56 + .../_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md | 36 + .../_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md | 204 + .../_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md | 37 + .../api/toctopics/_omx_codec_buffer.md | 223 + .../api/toctopics/_power_types_8idl.md | 68 + .../api/toctopics/_present_timestamp.md | 36 + .../api/toctopics/_property_object.md | 41 + .../device-dev/api/toctopics/_range_value.md | 58 + zh-cn/device-dev/api/toctopics/_rect.md | 58 + zh-cn/device-dev/api/toctopics/_rectangle.md | 36 + .../api/toctopics/_schedule_info.md | 126 + zh-cn/device-dev/api/toctopics/_sensor.md | 742 +++ .../api/toctopics/_sensor_events.md | 139 + .../api/toctopics/_sensor_information.md | 170 + .../api/toctopics/_sensor_interface.md | 369 ++ zh-cn/device-dev/api/toctopics/_sta_info.md | 51 + .../api/toctopics/_support_buffer_type.md | 88 + .../api/toctopics/_template_info.md | 96 + .../api/toctopics/_thermal_types_8idl.md | 63 + .../api/toctopics/_thermal_zone_info.md | 62 + zh-cn/device-dev/api/toctopics/_types_8idl.md | 85 + zh-cn/device-dev/api/toctopics/_u_s_b.md | 2664 ++++++++ .../api/toctopics/_use_buffer_type.md | 88 + .../api/toctopics/_user_auth_types_8idl.md | 124 + .../api/toctopics/_verify_alloc_info.md | 46 + zh-cn/device-dev/api/toctopics/_vibrator.md | 188 + .../api/toctopics/_vibrator_interface.md | 148 + .../api/toctopics/_video_port_cap.md | 133 + zh-cn/device-dev/api/toctopics/_w_l_a_n.md | 537 ++ zh-cn/device-dev/api/toctopics/annotated.md | 261 + .../api/toctopics/audio__adapter_8h.md | 39 + .../api/toctopics/audio__attribute_8h.md | 39 + .../api/toctopics/audio__capture_8h.md | 39 + .../api/toctopics/audio__control_8h.md | 39 + .../api/toctopics/audio__manager_8h.md | 56 + .../api/toctopics/audio__render_8h.md | 39 + .../api/toctopics/audio__scene_8h.md | 39 + .../api/toctopics/audio__types_8h.md | 215 + .../api/toctopics/audio__volume_8h.md | 39 + zh-cn/device-dev/api/toctopics/battery.md | 280 + .../api/toctopics/codec__callback__if_8h.md | 63 + .../api/toctopics/codec__common__type_8h.md | 88 + .../api/toctopics/codec__component__if_8h.md | 63 + .../toctopics/codec__component__manager_8h.md | 63 + .../toctopics/codec__component__type_8h.md | 180 + zh-cn/device-dev/api/toctopics/dac__if_8h.md | 62 + .../api/toctopics/display__device_8h.md | 88 + .../api/toctopics/display__gfx_8h.md | 61 + .../api/toctopics/display__gralloc_8h.md | 61 + .../api/toctopics/display__layer_8h.md | 61 + .../api/toctopics/display__type_8h.md | 258 + .../toctopics/face__auth_2_i_executor_8idl.md | 52 + .../face__auth_2_i_executor_callback_8idl.md | 52 + zh-cn/device-dev/api/toctopics/files.md | 131 + .../api/toctopics/icamera__device_8h.md | 39 + .../toctopics/icamera__device__callback_8h.md | 39 + .../api/toctopics/icamera__host_8h.md | 39 + .../toctopics/icamera__host__callback_8h.md | 39 + zh-cn/device-dev/api/toctopics/index.md | 37 + .../api/toctopics/input__controller_8h.md | 39 + .../api/toctopics/input__manager_8h.md | 61 + .../api/toctopics/input__reporter_8h.md | 39 + .../api/toctopics/input__type_8h.md | 128 + .../toctopics/interface_i_battery_callback.md | 72 + .../interface_i_battery_interface.md | 609 ++ .../api/toctopics/interface_i_executor.md | 764 +++ .../interface_i_executor_callback.md | 165 + .../interface_i_face_auth_interface.md | 74 + .../interface_i_pin_auth_interface.md | 74 + .../interface_i_power_hdi_callback.md | 68 + .../toctopics/interface_i_power_interface.md | 239 + .../toctopics/interface_i_thermal_callback.md | 72 + .../interface_i_thermal_interface.md | 241 + .../interface_i_user_auth_interface.md | 982 +++ .../ioffline__stream__operator_8h.md | 39 + .../api/toctopics/istream__operator_8h.md | 39 + .../istream__operator__callback_8h.md | 39 + .../device-dev/api/toctopics/light_8typeh.md | 45 + .../device-dev/api/toctopics/light__if_8h.md | 57 + .../toctopics/pin__auth_2_i_executor_8idl.md | 52 + .../pin__auth_2_i_executor_callback_8idl.md | 56 + zh-cn/device-dev/api/toctopics/power.md | 245 + .../device-dev/api/toctopics/sensor__if_8h.md | 61 + .../api/toctopics/sensor__type_8h.md | 125 + zh-cn/device-dev/api/toctopics/thermal.md | 94 + zh-cn/device-dev/api/toctopics/total.md | 7 + zh-cn/device-dev/api/toctopics/types_8h.md | 153 + ...n_audio_scene_descriptor_1_1_scene_desc.md | 36 + .../api/toctopics/union_port_cap.md | 58 + .../device-dev/api/toctopics/usb__info_8h.md | 44 + .../api/toctopics/usbd__client_8h.md | 39 + .../api/toctopics/usbd__subscriber_8h.md | 39 + .../device-dev/api/toctopics/usbd__type_8h.md | 112 + .../api/toctopics/vibrator__if_8h.md | 61 + .../api/toctopics/vibrator__type_8h.md | 39 + .../device-dev/api/toctopics/wifi__hal_8h.md | 78 + .../toctopics/wifi__hal__ap__feature_8h.md | 61 + .../toctopics/wifi__hal__base__feature_8h.md | 100 + .../toctopics/wifi__hal__sta__feature_8h.md | 56 + .../api/zh-cn_bookmap_0000001343320953.md | 219 + 221 files changed, 44599 insertions(+) create mode 100644 zh-cn/device-dev/api/public_sys-resources/icon-caution.gif create mode 100644 zh-cn/device-dev/api/public_sys-resources/icon-danger.gif create mode 100644 zh-cn/device-dev/api/public_sys-resources/icon-note.gif create mode 100644 zh-cn/device-dev/api/public_sys-resources/icon-notice.gif create mode 100644 zh-cn/device-dev/api/public_sys-resources/icon-tip.gif create mode 100644 zh-cn/device-dev/api/public_sys-resources/icon-warning.gif create mode 100644 zh-cn/device-dev/api/toctopics/____attribute____.md create mode 100644 zh-cn/device-dev/api/toctopics/_alignment.md create mode 100644 zh-cn/device-dev/api/toctopics/_alloc_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_adapter.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_adapter_descriptor.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_attribute.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_capture.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_control.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_dev_ext_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_device_descriptor.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_manager.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_mix_ext_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_mmap_buffer_descripter.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_port.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_port_cap.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_port_capability.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_render.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_route.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_route_node.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_sample_attributes.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_scene.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_scene_descriptor.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_session_ext_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_sub_port_capability.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_time_stamp.md create mode 100644 zh-cn/device-dev/api/toctopics/_audio_volume.md create mode 100644 zh-cn/device-dev/api/toctopics/_auth_result_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_auth_solution.md create mode 100644 zh-cn/device-dev/api/toctopics/_battery_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_buffer_data.md create mode 100644 zh-cn/device-dev/api/toctopics/_camera.md create mode 100644 zh-cn/device-dev/api/toctopics/_codec.md create mode 100644 zh-cn/device-dev/api/toctopics/_codec_callback_type.md create mode 100644 zh-cn/device-dev/api/toctopics/_codec_comp_capability.md create mode 100644 zh-cn/device-dev/api/toctopics/_codec_component_manager.md create mode 100644 zh-cn/device-dev/api/toctopics/_codec_component_type.md create mode 100644 zh-cn/device-dev/api/toctopics/_comp_ver_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_credential_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_d_a_c.md create mode 100644 zh-cn/device-dev/api/toctopics/_dac_io_msg.md create mode 100644 zh-cn/device-dev/api/toctopics/_device_funcs.md create mode 100644 zh-cn/device-dev/api/toctopics/_device_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_display.md create mode 100644 zh-cn/device-dev/api/toctopics/_display_capability.md create mode 100644 zh-cn/device-dev/api/toctopics/_display_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_display_mode_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_enroll_param.md create mode 100644 zh-cn/device-dev/api/toctopics/_enrolled_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_event_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_event_package.md create mode 100644 zh-cn/device-dev/api/toctopics/_executor_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_executor_register_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_executor_send_msg.md create mode 100644 zh-cn/device-dev/api/toctopics/_face_auth_types_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/_get_buffer_handle_usage_params.md create mode 100644 zh-cn/device-dev/api/toctopics/_gfx_funcs.md create mode 100644 zh-cn/device-dev/api/toctopics/_gfx_opt.md create mode 100644 zh-cn/device-dev/api/toctopics/_gralloc_funcs.md create mode 100644 zh-cn/device-dev/api/toctopics/_h_d_r_capability.md create mode 100644 zh-cn/device-dev/api/toctopics/_h_d_r_meta_data.md create mode 100644 zh-cn/device-dev/api/toctopics/_hdf_face_auth.md create mode 100644 zh-cn/device-dev/api/toctopics/_hdf_pin_auth.md create mode 100644 zh-cn/device-dev/api/toctopics/_hdf_thermal_callback_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_hdf_user_auth.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_battery_callback_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_battery_interface_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_circle.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_face_auth_interface_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_input_interface.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_line.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_pin_auth_interface_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_power_hdi_callback_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_power_interface_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_rect.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_surface.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_thermal_callback_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_thermal_interface_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_user_auth_interface_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_wi_fi.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_wi_fi_ap.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_wi_fi_base_feature.md create mode 100644 zh-cn/device-dev/api/toctopics/_i_wi_fi_sta.md create mode 100644 zh-cn/device-dev/api/toctopics/_identify_result_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_input.md create mode 100644 zh-cn/device-dev/api/toctopics/_input_controller.md create mode 100644 zh-cn/device-dev/api/toctopics/_input_extra_cmd.md create mode 100644 zh-cn/device-dev/api/toctopics/_input_manager.md create mode 100644 zh-cn/device-dev/api/toctopics/_input_report_event_cb.md create mode 100644 zh-cn/device-dev/api/toctopics/_input_reporter.md create mode 100644 zh-cn/device-dev/api/toctopics/_layer_alpha.md create mode 100644 zh-cn/device-dev/api/toctopics/_layer_buffer.md create mode 100644 zh-cn/device-dev/api/toctopics/_layer_funcs.md create mode 100644 zh-cn/device-dev/api/toctopics/_layer_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_light.md create mode 100644 zh-cn/device-dev/api/toctopics/_light_effect.md create mode 100644 zh-cn/device-dev/api/toctopics/_light_flash_effect.md create mode 100644 zh-cn/device-dev/api/toctopics/_light_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_light_interface.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_error_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_stream_attribute.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_stream_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md create mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md create mode 100644 zh-cn/device-dev/api/toctopics/_omx_codec_buffer.md create mode 100644 zh-cn/device-dev/api/toctopics/_power_types_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/_present_timestamp.md create mode 100644 zh-cn/device-dev/api/toctopics/_property_object.md create mode 100644 zh-cn/device-dev/api/toctopics/_range_value.md create mode 100644 zh-cn/device-dev/api/toctopics/_rect.md create mode 100644 zh-cn/device-dev/api/toctopics/_rectangle.md create mode 100644 zh-cn/device-dev/api/toctopics/_schedule_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_sensor.md create mode 100644 zh-cn/device-dev/api/toctopics/_sensor_events.md create mode 100644 zh-cn/device-dev/api/toctopics/_sensor_information.md create mode 100644 zh-cn/device-dev/api/toctopics/_sensor_interface.md create mode 100644 zh-cn/device-dev/api/toctopics/_sta_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_support_buffer_type.md create mode 100644 zh-cn/device-dev/api/toctopics/_template_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_thermal_types_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/_thermal_zone_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_types_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/_u_s_b.md create mode 100644 zh-cn/device-dev/api/toctopics/_use_buffer_type.md create mode 100644 zh-cn/device-dev/api/toctopics/_user_auth_types_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/_verify_alloc_info.md create mode 100644 zh-cn/device-dev/api/toctopics/_vibrator.md create mode 100644 zh-cn/device-dev/api/toctopics/_vibrator_interface.md create mode 100644 zh-cn/device-dev/api/toctopics/_video_port_cap.md create mode 100644 zh-cn/device-dev/api/toctopics/_w_l_a_n.md create mode 100644 zh-cn/device-dev/api/toctopics/annotated.md create mode 100644 zh-cn/device-dev/api/toctopics/audio__adapter_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/audio__attribute_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/audio__capture_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/audio__control_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/audio__manager_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/audio__render_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/audio__scene_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/audio__types_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/audio__volume_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/battery.md create mode 100644 zh-cn/device-dev/api/toctopics/codec__callback__if_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/codec__common__type_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/codec__component__if_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/codec__component__manager_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/codec__component__type_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/dac__if_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/display__device_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/display__gfx_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/display__gralloc_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/display__layer_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/display__type_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/face__auth_2_i_executor_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/face__auth_2_i_executor_callback_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/files.md create mode 100644 zh-cn/device-dev/api/toctopics/icamera__device_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/icamera__device__callback_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/icamera__host_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/icamera__host__callback_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/index.md create mode 100644 zh-cn/device-dev/api/toctopics/input__controller_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/input__manager_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/input__reporter_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/input__type_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/interface_i_battery_callback.md create mode 100644 zh-cn/device-dev/api/toctopics/interface_i_battery_interface.md create mode 100644 zh-cn/device-dev/api/toctopics/interface_i_executor.md create mode 100644 zh-cn/device-dev/api/toctopics/interface_i_executor_callback.md create mode 100644 zh-cn/device-dev/api/toctopics/interface_i_face_auth_interface.md create mode 100644 zh-cn/device-dev/api/toctopics/interface_i_pin_auth_interface.md create mode 100644 zh-cn/device-dev/api/toctopics/interface_i_power_hdi_callback.md create mode 100644 zh-cn/device-dev/api/toctopics/interface_i_power_interface.md create mode 100644 zh-cn/device-dev/api/toctopics/interface_i_thermal_callback.md create mode 100644 zh-cn/device-dev/api/toctopics/interface_i_thermal_interface.md create mode 100644 zh-cn/device-dev/api/toctopics/interface_i_user_auth_interface.md create mode 100644 zh-cn/device-dev/api/toctopics/ioffline__stream__operator_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/istream__operator_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/istream__operator__callback_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/light_8typeh.md create mode 100644 zh-cn/device-dev/api/toctopics/light__if_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/pin__auth_2_i_executor_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/pin__auth_2_i_executor_callback_8idl.md create mode 100644 zh-cn/device-dev/api/toctopics/power.md create mode 100644 zh-cn/device-dev/api/toctopics/sensor__if_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/sensor__type_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/thermal.md create mode 100644 zh-cn/device-dev/api/toctopics/total.md create mode 100644 zh-cn/device-dev/api/toctopics/types_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/union_audio_scene_descriptor_1_1_scene_desc.md create mode 100644 zh-cn/device-dev/api/toctopics/union_port_cap.md create mode 100644 zh-cn/device-dev/api/toctopics/usb__info_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/usbd__client_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/usbd__subscriber_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/usbd__type_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/vibrator__if_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/vibrator__type_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/wifi__hal_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/wifi__hal__ap__feature_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/wifi__hal__base__feature_8h.md create mode 100644 zh-cn/device-dev/api/toctopics/wifi__hal__sta__feature_8h.md create mode 100644 zh-cn/device-dev/api/zh-cn_bookmap_0000001343320953.md diff --git a/zh-cn/device-dev/api/public_sys-resources/icon-caution.gif b/zh-cn/device-dev/api/public_sys-resources/icon-caution.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571 GIT binary patch literal 580 zcmV-K0=xZ3Nk%w1VIu$?0Hp~4{QBgqmQ+MG9K51r{QB&)np^||1PlfQ%(86!{`~yv zv{XhUWKt}AZaiE{EOcHp{O-j3`t;<+eEiycJT4p@77X;(jQsMfB$R?oG%6hQ z+MMLZbQBH@)Vg&1^3?qHb(5!%>3r0+`eq=&V&E}0Dypi0000000000 z00000A^8LW000R9EC2ui03!e$000L5z=Uu}ED8YtqjJd<+B}(9bIOb$3-31_h|V>=0A{ z1Hh0#H30>fNT})^fRU_83uewx9oRr{f{Sx1Ml`t)EQ zGkHZ67&~y{W5Jpq4H_WfuLxp*3<7O}GEl;1ESe36fLNs=B0&LQM1Buf(R)qg(BRd`t1OPjI1m_q4 literal 0 HcmV?d00001 diff --git a/zh-cn/device-dev/api/public_sys-resources/icon-danger.gif b/zh-cn/device-dev/api/public_sys-resources/icon-danger.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571 GIT binary patch literal 580 zcmV-K0=xZ3Nk%w1VIu$?0Hp~4{QBgqmQ+MG9K51r{QB&)np^||1PlfQ%(86!{`~yv zv{XhUWKt}AZaiE{EOcHp{O-j3`t;<+eEiycJT4p@77X;(jQsMfB$R?oG%6hQ z+MMLZbQBH@)Vg&1^3?qHb(5!%>3r0+`eq=&V&E}0Dypi0000000000 z00000A^8LW000R9EC2ui03!e$000L5z=Uu}ED8YtqjJd<+B}(9bIOb$3-31_h|V>=0A{ z1Hh0#H30>fNT})^fRU_83uewx9oRr{f{Sx1Ml`t)EQ zGkHZ67&~y{W5Jpq4H_WfuLxp*3<7O}GEl;1ESe36fLNs=B0&LQM1Buf(R)qg(BRd`t1OPjI1m_q4 literal 0 HcmV?d00001 diff --git a/zh-cn/device-dev/api/public_sys-resources/icon-note.gif b/zh-cn/device-dev/api/public_sys-resources/icon-note.gif new file mode 100644 index 0000000000000000000000000000000000000000..6314297e45c1de184204098efd4814d6dc8b1cda GIT binary patch literal 394 zcmZ?wbhEHblx7fPSjxcg=ii?@_wH=jwxy=7CMGH-B`L+l$wfv=#>UF#$gv|VY%C^b zCQFtrnKN(Bo_%|sJbO}7RAORe!otL&qo<>yq_Sq+8Xqqo5h0P3w3Lvb5E(g{p01vl zxR@)KuDH0l^z`+-dH3eaw=XqSH7aTIx{kzVBN;X&hha0dQSgWuiw0NWUvMRmkD|> literal 0 HcmV?d00001 diff --git a/zh-cn/device-dev/api/public_sys-resources/icon-notice.gif b/zh-cn/device-dev/api/public_sys-resources/icon-notice.gif new file mode 100644 index 0000000000000000000000000000000000000000..86024f61b691400bea99e5b1f506d9d9aef36e27 GIT binary patch literal 406 zcmV;H0crk6Nk%w1VIu$@0J8u9|NsB@_xJDb@8;&_*4Ea}&d#;9wWXz{jEszHYim+c zQaU<1At50E0000000000A^8Le000gEEC2ui03!e%000R7038S%NU)&51O^i-Tu6`s z0)`MFE@;3YqD6xSC^kTNu_J>91{PH8XfZ(p1pp2-SU@u3#{mEUC}_}tg3+I#{z}{Ok@D_ZUDg- zt0stin4;pC8M{WLSlRH*1pzqEw1}3oOskyNN?j;7HD{BBZ*OEcv4HK!6Bk6beR+04 z&8}k>SkTusVTDmkyOz#5fCA$JTPGJVQvr3uZ?QzzPQFvD0rGf_PdrcF`pMs}p^BcF zKtKTd`0wipR%nKN&Wj+V}pX;WC3SdJV!a_8Qi zE7z`U*|Y^H0^}fB$R?oG%6hQ z+MMLZbQBH@)Vg&1^3?qHb(5!%>3r0+`eq=&V&E}0Dypi0000000000 z00000A^8LW000R9EC2ui03!e$000L5z=Uu}ED8YtqjJd<+B}(9bIOb$3-31_h|V>=0A{ z1Hh0#H30>fNT})^fRU_83uewx9oRr{f{Sx1Ml`t)EQ zGkHZ67&~y{W5Jpq4H_WfuLxp*3<7O}GEl;1ESe36fLNs=B0&LQM1Buf(R)qg(BRd`t1OPjI1m_q4 literal 0 HcmV?d00001 diff --git a/zh-cn/device-dev/api/toctopics/____attribute____.md b/zh-cn/device-dev/api/toctopics/____attribute____.md new file mode 100644 index 0000000000..787544c744 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/____attribute____.md @@ -0,0 +1,78 @@ +# \_\_attribute\_\_ + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

fd

+

句柄 fd, -1代表不支持。

+

reserveInts

+

reserve数组的个数。

+

reserve [0]

+

reserve数组。

+

baseAddr

+

内存的初始地址。

+

yOffset

+

Y的偏移量。

+

uOffset

+

U的偏移量。

+

vOffset

+

V的偏移量。

+

yStride

+

Y的stride信息。

+

uvStride

+

UV的stride信息。

+

uvStep

+

UV的step信息。

+
+ +## **详细描述** + +扩展数据句柄结构体定义 + +YUV描述信息结构体定义 + diff --git a/zh-cn/device-dev/api/toctopics/_alignment.md b/zh-cn/device-dev/api/toctopics/_alignment.md new file mode 100644 index 0000000000..1f150f18e6 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_alignment.md @@ -0,0 +1,58 @@ +# Alignment + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

widthAlignment

+

宽的对齐值。

+

heightAlignment

+

高的对齐值。

+
+ +## **详细描述** + +对齐结构定义,包含宽高的对齐值。 + +## **类成员变量说明** + +## heightAlignment + +``` +int32_t Alignment::heightAlignment +``` + +**描述:** + +高的对齐值。 + +## widthAlignment + +``` +int32_t Alignment::widthAlignment +``` + +**描述:** + +宽的对齐值。 + diff --git a/zh-cn/device-dev/api/toctopics/_alloc_info.md b/zh-cn/device-dev/api/toctopics/_alloc_info.md new file mode 100644 index 0000000000..b2b1e5f71e --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_alloc_info.md @@ -0,0 +1,51 @@ +# AllocInfo + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

width

+

申请内存宽度

+

height

+

申请内存高度

+

usage

+

申请内存的使用场景

+

format

+

申请内存格式

+

expectedSize

+

申请内存大小

+
+ +## **详细描述** + +定义关于要分配的内存的信息。 + diff --git a/zh-cn/device-dev/api/toctopics/_audio.md b/zh-cn/device-dev/api/toctopics/_audio.md new file mode 100644 index 0000000000..df7d991c84 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio.md @@ -0,0 +1,2319 @@ +# Audio + +## **汇总** + +## 文件 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

文件

+

描述

+

audio_adapter.h

+

Audio适配器的接口定义文件

+

audio_attribute.h

+

Audio属性的接口定义文件

+

audio_capture.h

+

Audio录音的接口定义文件

+

audio_control.h

+

Audio控制的接口定义文件

+

audio_manager.h

+

Audio适配器管理及加载的接口定义文件

+

audio_render.h

+

Audio播放的接口定义文件

+

audio_scene.h

+

Audio场景的接口定义文件

+

audio_types.h

+

Audio模块接口定义中使用的自定义数据类型

+

audio_volume.h

+

Audio音量的接口定义文件

+
+ +## 类 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

描述

+

AudioAdapter

+

AudioAdapter音频适配器接口 更多...

+

AudioAttribute

+

AudioAttribute音频属性接口 更多...

+

AudioCapture

+

AudioCapture音频录音接口 更多...

+

AudioControl

+

AudioControl音频控制接口 更多...

+

AudioManager

+

AudioManager音频适配器管理接口 更多...

+

AudioRender

+

AudioRender音频播放接口 更多...

+

AudioScene

+

AudioScene音频场景接口 更多...

+

AudioPort

+

音频端口 更多...

+

AudioAdapterDescriptor

+

音频适配器描述符 更多...

+

AudioDeviceDescriptor

+

音频设备描述符 更多...

+

AudioSceneDescriptor

+

音频场景描述符 更多...

+

AudioSceneDescriptor::SceneDesc

+

音频场景描述 更多...

+

AudioSampleAttributes

+

音频采样属性 更多...

+

AudioTimeStamp

+

音频时间戳 更多...

+

AudioSubPortCapability

+

音频子端口的支持能力 更多...

+

AudioPortCapability

+

音频端口的支持能力 更多...

+

AudioMmapBufferDescripter

+

mmap缓冲区描述符 更多...

+

AudioDevExtInfo

+

音频设备拓展信息 更多...

+

AudioMixExtInfo

+

音轨拓展信息 更多...

+

AudioSessionExtInfo

+

会话拓展信息 更多...

+

AudioRouteNode

+

音频路由节点 更多...

+

AudioRoute

+

音频路由信息 更多...

+

AudioVolume

+

AudioVolume音频音量接口 更多...

+
+ +## 类型定义 + + + + + + + + + + + + + +

类型定义

+

描述

+

AudioHandle

+

音频句柄

+

(RenderCallback) (enum AudioCallbackType, void *reserved, void *cookie)

+

回调函数指针 更多...

+
+ +## 枚举 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举

+

描述

+

AudioPortDirection { PORT_OUT = 0x1u, PORT_IN = 0x2u, PORT_OUT_IN = 0x3u }

+

音频端口的类型 更多...

+

AudioPortPin { PIN_NONE = 0x0u, PIN_OUT_SPEAKER = 0x1u, PIN_OUT_HEADSET = 0x2u, PIN_OUT_LINEOUT = 0x4u, PIN_OUT_HDMI = 0x8u, PIN_OUT_USB = 0x10u, PIN_OUT_USB_EXT = 0x20u, PIN_IN_MIC = 0x8000001u, PIN_IN_HS_MIC = 0x8000002u, PIN_IN_LINEIN = 0x8000004u, PIN_IN_USB_EXT = 0x8000008u }

+

音频适配器端口的PIN脚 更多...

+

AudioCategory { AUDIO_IN_MEDIA = 0, AUDIO_IN_COMMUNICATION, AUDIO_IN_RINGTONE, AUDIO_IN_CALL }

+

音频类型(category) 更多...

+

AudioFormat { AUDIO_FORMAT_PCM_8_BIT = 0x1u, AUDIO_FORMAT_PCM_16_BIT = 0x2u, AUDIO_FORMAT_PCM_24_BIT = 0x3u, AUDIO_FORMAT_PCM_32_BIT = 0x4u, AUDIO_FORMAT_AAC_MAIN = 0x1000001u, AUDIO_FORMAT_AAC_LC = 0x1000002u, AUDIO_FORMAT_AAC_LD = 0x1000003u, AUDIO_FORMAT_AAC_ELD = 0x1000004u, AUDIO_FORMAT_AAC_HE_V1 = 0x1000005u, AUDIO_FORMAT_AAC_HE_V2 = 0x1000006u, AUDIO_FORMAT_G711A = 0x2000001u, AUDIO_FORMAT_G711U = 0x2000002u, AUDIO_FORMAT_G726 = 0x2000003u }

+

音频格式 更多...

+

AudioChannelMask { AUDIO_CHANNEL_FRONT_LEFT = 0x1, AUDIO_CHANNEL_FRONT_RIGHT = 0x2, AUDIO_CHANNEL_MONO = 0x1u, AUDIO_CHANNEL_STEREO = 0x3u }

+

音频通道掩码(mask) 更多...

+

AudioSampleRatesMask { AUDIO_SAMPLE_RATE_MASK_8000 = 0x1u, AUDIO_SAMPLE_RATE_MASK_12000 = 0x2u, AUDIO_SAMPLE_RATE_MASK_11025 = 0x4u, AUDIO_SAMPLE_RATE_MASK_16000 = 0x8u, AUDIO_SAMPLE_RATE_MASK_22050 = 0x10u, AUDIO_SAMPLE_RATE_MASK_24000 = 0x20u, AUDIO_SAMPLE_RATE_MASK_32000 = 0x40u, AUDIO_SAMPLE_RATE_MASK_44100 = 0x80u, AUDIO_SAMPLE_RATE_MASK_48000 = 0x100u, AUDIO_SAMPLE_RATE_MASK_64000 = 0x200u, AUDIO_SAMPLE_RATE_MASK_96000 = 0x400u, AUDIO_SAMPLE_RATE_MASK_INVALID = 0xFFFFFFFFu }

+

音频采样频率MASK 更多...

+

AudioPortPassthroughMode { PORT_PASSTHROUGH_LPCM = 0x1, PORT_PASSTHROUGH_RAW = 0x2, PORT_PASSTHROUGH_HBR2LBR = 0x4, PORT_PASSTHROUGH_AUTO = 0x8 }

+

音频端口的数据透传模式 更多...

+

AudioSampleFormat { AUDIO_SAMPLE_FORMAT_S8, AUDIO_SAMPLE_FORMAT_S8P, AUDIO_SAMPLE_FORMAT_U8, AUDIO_SAMPLE_FORMAT_U8P, AUDIO_SAMPLE_FORMAT_S16, AUDIO_SAMPLE_FORMAT_S16P, AUDIO_SAMPLE_FORMAT_U16, AUDIO_SAMPLE_FORMAT_U16P, AUDIO_SAMPLE_FORMAT_S24, AUDIO_SAMPLE_FORMAT_S24P, AUDIO_SAMPLE_FORMAT_U24, AUDIO_SAMPLE_FORMAT_U24P, AUDIO_SAMPLE_FORMAT_S32, AUDIO_SAMPLE_FORMAT_S32P, AUDIO_SAMPLE_FORMAT_U32, AUDIO_SAMPLE_FORMAT_U32P, AUDIO_SAMPLE_FORMAT_S64, AUDIO_SAMPLE_FORMAT_S64P, AUDIO_SAMPLE_FORMAT_U64, AUDIO_SAMPLE_FORMAT_U64P, AUDIO_SAMPLE_FORMAT_F32, AUDIO_SAMPLE_FORMAT_F32P, AUDIO_SAMPLE_FORMAT_F64, AUDIO_SAMPLE_FORMAT_F64P, AUDIO_SAMPLE_FMT_U8, AUDIO_SAMPLE_FMT_S16, AUDIO_SAMPLE_FMT_S32, AUDIO_SAMPLE_FMT_FLOAT, AUDIO_SAMPLE_FMT_DOUBLE, AUDIO_SAMPLE_FMT_U8P, AUDIO_SAMPLE_FMT_S16P, AUDIO_SAMPLE_FMT_S32P, AUDIO_SAMPLE_FMT_FLOATP, AUDIO_SAMPLE_FMT_DOUBLEP, AUDIO_SAMPLE_FMT_INVALID }

+

原始音频样本格式 更多...

+

AudioChannelMode { AUDIO_CHANNEL_NORMAL = 0, AUDIO_CHANNEL_BOTH_LEFT, AUDIO_CHANNEL_BOTH_RIGHT, AUDIO_CHANNEL_EXCHANGE, AUDIO_CHANNEL_MIX, AUDIO_CHANNEL_LEFT_MUTE, AUDIO_CHANNEL_RIGHT_MUTE, AUDIO_CHANNEL_BOTH_MUTE }

+

音频播放的通道模式 更多...

+

AudioDrainNotifyType { AUDIO_DRAIN_NORMAL_MODE, AUDIO_DRAIN_EARLY_MODE }

+

DrainBuffer函数结束类型 更多...

+

AudioCallbackType { AUDIO_NONBLOCK_WRITE_COMPELETED, AUDIO_DRAIN_COMPELETED, AUDIO_FLUSH_COMPLETED, AUDIO_RENDER_FULL, AUDIO_ERROR_OCCUR }

+

回调函数通知事件类型 更多...

+

AudioPortRole { AUDIO_PORT_UNASSIGNED_ROLE = 0, AUDIO_PORT_SOURCE_ROLE = 1, AUDIO_PORT_SINK_ROLE = 2 }

+

音频端口角色 更多...

+

AudioPortType { AUDIO_PORT_UNASSIGNED_TYPE = 0, AUDIO_PORT_DEVICE_TYPE = 1, AUDIO_PORT_MIX_TYPE = 2, AUDIO_PORT_SESSION_TYPE = 3 }

+

音频端口类型. 更多...

+

AudioSessionType { AUDIO_OUTPUT_STAGE_SESSION = 0, AUDIO_OUTPUT_MIX_SESSION, AUDIO_ALLOCATE_SESSION, AUDIO_INVALID_SESSION }

+

端口会话类型 更多...

+
+ +## 函数 + + + + + + + + + + +

函数

+

描述

+

GetAudioManagerFuncs (void)

+

获取音频适配器管理接口的操作函数列表,详情参考AudioManager 更多...

+
+ +## 变量 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

变量 名称

+

描述

+

AudioPort::dir

+

音频端口的类型。

+

AudioPort::portId

+

音频端口的ID。

+

AudioPort::portName

+

音频端口的名称。

+

AudioAdapterDescriptor::adapterName

+

音频适配器的名称。

+

AudioAdapterDescriptor::portNum

+

一个音频适配器支持的端口数目。

+

AudioAdapterDescriptor::ports

+

一个音频适配器支持的端口列表。

+

AudioDeviceDescriptor::portId

+

音频端口ID。

+

AudioDeviceDescriptor::pins

+

音频端口上的PIN脚(输出、输入)。

+

AudioDeviceDescriptor::desc

+

以字符串命名的音频设备。

+

AudioSceneDescriptor::SceneDesc::id

+

音频场景的ID。

+

AudioSceneDescriptor::SceneDesc::desc

+

以字符串命名的音频场景。

+

AudioSceneDescriptor::scene

+

音频场景的名称。

+

AudioSceneDescriptor::desc

+

音频设备描述符。

+

AudioSampleAttributes::type

+

音频类型。

+

AudioSampleAttributes::interleaved

+

音频数据交织的标记。

+

AudioSampleAttributes::format

+

音频数据格式。

+

AudioSampleAttributes::sampleRate

+

音频采样频率。

+

AudioSampleAttributes::channelCount

+

音频通道数目,如单通道(mono)为1、立体声(stereo)为2。

+

AudioSampleAttributes::period

+

音频采样周期。

+

AudioSampleAttributes::frameSize

+

音频数据的帧大小。

+

AudioSampleAttributes::isBigEndian

+

音频数据的大端标志。

+

AudioSampleAttributes::isSignedData

+

音频数据的有符号或无符号标志。

+

AudioSampleAttributes::startThreshold

+

音频渲染开始阈值。

+

AudioSampleAttributes::stopThreshold

+

音频渲染停止阈值。

+

AudioSampleAttributes::silenceThreshold

+

音频捕获缓冲区阈值。

+

AudioSampleAttributes::streamId

+

渲染或捕获的音频标识符。

+

AudioTimeStamp::tvSec

+

tvSec时间,单位:秒。

+

AudioTimeStamp::tvNSec

+

tvNSec时间,单位:纳秒。

+

AudioSubPortCapability::portId

+

子端口ID。

+

AudioSubPortCapability::desc

+

以字符串命名的子端口。

+

AudioSubPortCapability::mask

+

数据透传模式。

+

AudioPortCapability::deviceType

+

设备输出、输入类型。

+

AudioPortCapability::deviceId

+

绑定(bind)设备ID,唯一的设备识别符。

+

AudioPortCapability::hardwareMode

+

是否支持设备绑定处理。

+

AudioPortCapability::formatNum

+

支持的音频格式数目。

+

AudioPortCapability::formats

+

支持的音频格式。

+

AudioPortCapability::sampleRateMasks

+

支持的音频采样频率(8k、16k、32k、48k)。

+

AudioPortCapability::channelMasks

+

设备的声道布局掩码(mask)。

+

AudioPortCapability::channelCount

+

支持的最大声道总数。

+

AudioPortCapability::subPortsNum

+

支持的子端口数目(仅用于输出设备)。

+

AudioPortCapability::subPorts

+

支持的子端口列表。

+

AudioPortCapability::supportSampleFormatNum

+

支持的音频样本格式数量。

+

AudioPortCapability::supportSampleFormats

+

支持的音频样本格式。

+

AudioMmapBufferDescripter::memoryAddress

+

指向mmap缓冲区的指针。

+

AudioMmapBufferDescripter::memoryFd

+

mmap缓冲区的文件描述符。

+

AudioMmapBufferDescripter::totalBufferFrames

+

缓冲区总大小,单位:帧。

+

AudioMmapBufferDescripter::transferFrameSize

+

传输大小,单位:帧。

+

AudioMmapBufferDescripter::isShareable

+

mmap缓冲区是否可以在进程间共享。

+

AudioDevExtInfo::moduleId

+

音频流绑定的模块ID。

+

AudioDevExtInfo::type

+

音频端口上的PIN脚(输出、输入)。

+

AudioDevExtInfo::desc

+

地址描述。

+

AudioMixExtInfo::moduleId

+

流所属模块标识符。

+

AudioMixExtInfo::streamId

+

由调用者传递的Render或Capture标识符。

+

AudioSessionExtInfo::sessionType

+

音频会话类型。

+

AudioRouteNode::portId

+

音频端口ID。

+

AudioRouteNode::role

+

指定端口角色为sink或source。

+

AudioRouteNode::type

+

指定端口类型。

+

AudioRouteNode::device

+

设备特定信息。

+

AudioRouteNode::mix

+

音轨特定信息。

+

AudioRouteNode::session

+

会话特定信息。

+

AudioRoute::sourcesNum

+

发送端节点数量。

+

AudioRoute::sources

+

发送端列表。

+

AudioRoute::sinksNum

+

接受端节点数量。

+

AudioRoute::sinks

+

接受端列表。

+
+ +## **详细描述** + +Audio模块接口定义。 + +音频接口涉及自定义类型、驱动加载接口、驱动适配器接口、音频播放(render)接口、音频录音(capture)接口等。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **类型定义说明** + +## RenderCallback + +``` +typedef int32_t(* RenderCallback) (enum AudioCallbackType, void *reserved, void *cookie) +``` + +**描述:** + +回调函数指针 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

AudioCallbackType

+

回调函数响应类型

+

reserved

+

保留字段

+

cookie

+

用于传递数据

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +RegCallback + +## **枚举类型说明** + +## AudioCallbackType + +``` +enum AudioCallbackType +``` + +**描述:** + +回调函数通知事件类型 + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

AUDIO_NONBLOCK_WRITE_COMPELETED

+

非阻塞式写完成

+

+

AUDIO_DRAIN_COMPELETED

+

DrainBuffer完成

+

+

AUDIO_FLUSH_COMPLETED

+

Flush完成

+

+

AUDIO_RENDER_FULL

+

Render缓冲区已满

+

+

AUDIO_ERROR_OCCUR

+

发生了错误

+

+
+ +## AudioCategory + +``` +enum AudioCategory +``` + +**描述:** + +音频类型(category) + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

AUDIO_IN_MEDIA

+

媒体

+

+

AUDIO_IN_COMMUNICATION

+

通信

+

+

AUDIO_IN_RINGTONE

+

铃声

+

+

AUDIO_IN_CALL

+

呼叫

+

+
+ +## AudioChannelMask + +``` +enum AudioChannelMask +``` + +**描述:** + +音频通道掩码(mask) + +定义音频声道的位置 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

AUDIO_CHANNEL_FRONT_LEFT

+

声道布局前左

+

+

AUDIO_CHANNEL_FRONT_RIGHT

+

声道布局前右

+

+

AUDIO_CHANNEL_MONO

+

单声道

+

+

AUDIO_CHANNEL_STEREO

+

立体声,由左右声道组成(FRONT_LEFT | FRONT_RIGHT)

+

+
+ +## AudioChannelMode + +``` +enum AudioChannelMode +``` + +**描述:** + +音频播放的通道模式 + +>![](../public_sys-resources/icon-notice.gif) **须知:** +>下面的模式是针对双通道立体声的音频播放而设置,其他不支持。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

AUDIO_CHANNEL_NORMAL

+

正常模式,不做处理

+

+

AUDIO_CHANNEL_BOTH_LEFT

+

两个声道全部为左声道声音

+

+

AUDIO_CHANNEL_BOTH_RIGHT

+

两个声道全部为右声道声音

+

+

AUDIO_CHANNEL_EXCHANGE

+

左右声道数据互换,左声道为右声道声音,右声道为左声道声音

+

+

AUDIO_CHANNEL_MIX

+

左右两个声道输出为左右声道相加(混音)

+

+

AUDIO_CHANNEL_LEFT_MUTE

+

左声道静音,右声道播放原右声道声音

+

+

AUDIO_CHANNEL_RIGHT_MUTE

+

右声道静音,左声道播放原左声道声音

+

+

AUDIO_CHANNEL_BOTH_MUTE

+

左右声道均静音

+

+
+ +## AudioDrainNotifyType + +``` +enum AudioDrainNotifyType +``` + +**描述:** + +DrainBuffer函数结束类型 + + + + + + + + + + + + + +

枚举值

+

描述

+

AUDIO_DRAIN_NORMAL_MODE

+

DrainBuffer在所有数据播放结束后返回

+

+

AUDIO_DRAIN_EARLY_MODE

+

DrainBuffer()在当前曲目的所有数据播放完之前返回,以便留出时间给音频服务做连续性曲目切换

+

+
+ +## AudioFormat + +``` +enum AudioFormat +``` + +**描述:** + +音频格式 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

AUDIO_FORMAT_PCM_8_BIT

+

8bit位宽pcm格式

+

+

AUDIO_FORMAT_PCM_16_BIT

+

16bit位宽pcm格式

+

+

AUDIO_FORMAT_PCM_24_BIT

+

24bit位宽pcm格式

+

+

AUDIO_FORMAT_PCM_32_BIT

+

32bit位宽pcm格式

+

+

AUDIO_FORMAT_AAC_MAIN

+

AAC MAIN格式

+

+

AUDIO_FORMAT_AAC_LC

+

AAC LC格式

+

+

AUDIO_FORMAT_AAC_LD

+

AAC LD格式

+

+

AUDIO_FORMAT_AAC_ELD

+

AAC ELD格式

+

+

AUDIO_FORMAT_AAC_HE_V1

+

AAC HE_V1格式

+

+

AUDIO_FORMAT_AAC_HE_V2

+

AAC HE_V2格式

+

+

AUDIO_FORMAT_G711A

+

G711A格式

+

+

AUDIO_FORMAT_G711U

+

G711u格式

+

+

AUDIO_FORMAT_G726

+

G726格式

+

+
+ +## AudioPortDirection + +``` +enum AudioPortDirection +``` + +**描述:** + +音频端口的类型 + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

PORT_OUT

+

音频输出端口。

+

+

PORT_IN

+

音频输入端口。

+

+

PORT_OUT_IN

+

音频输出/入端口,同时支持输出和输入能力(OUT | IN)。

+

+
+ +## AudioPortPassthroughMode + +``` +enum AudioPortPassthroughMode +``` + +**描述:** + +音频端口的数据透传模式 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

PORT_PASSTHROUGH_LPCM

+

立体声pcm

+

+

PORT_PASSTHROUGH_RAW

+

HDMI透传

+

+

PORT_PASSTHROUGH_HBR2LBR

+

蓝光次世代音频降规格输出

+

+

PORT_PASSTHROUGH_AUTO

+

根据HDMI EDID能力自动匹配

+

+
+ +## AudioPortPin + +``` +enum AudioPortPin +``` + +**描述:** + +音频适配器端口的PIN脚 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

PIN_NONE

+

无效PIN

+

+

PIN_OUT_SPEAKER

+

喇叭输出

+

+

PIN_OUT_HEADSET

+

有线耳机输出

+

+

PIN_OUT_LINEOUT

+

Lineout输出

+

+

PIN_OUT_HDMI

+

HDMI输出

+

+

PIN_OUT_USB

+

USB设备输出

+

+

PIN_OUT_USB_EXT

+

扩展 USB 设备输出

+

+

PIN_IN_MIC

+

Mic输入

+

+

PIN_IN_HS_MIC

+

有线耳机Mic输入

+

+

PIN_IN_LINEIN

+

Linein输入

+

+

PIN_IN_USB_EXT

+

扩展 USB 设备输入

+

+
+ +## AudioPortRole + +``` +enum AudioPortRole +``` + +**描述:** + +音频端口角色 + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

AUDIO_PORT_UNASSIGNED_ROLE

+

未指定端口角色

+

+

AUDIO_PORT_SOURCE_ROLE

+

指定端口为发送端角色

+

+

AUDIO_PORT_SINK_ROLE

+

指定端口为接受端角色

+

+
+ +## AudioPortType + +``` +enum AudioPortType +``` + +**描述:** + +音频端口类型。 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

AUDIO_PORT_UNASSIGNED_TYPE

+

未指定端口类型

+

+

AUDIO_PORT_DEVICE_TYPE

+

指定端口为设备类型

+

+

AUDIO_PORT_MIX_TYPE

+

指定端口类型为复合类型

+

+

AUDIO_PORT_SESSION_TYPE

+

指定端口为会话类型

+

+
+ +## AudioSampleFormat + +``` +enum AudioSampleFormat +``` + +**描述:** + +原始音频样本格式 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

AUDIO_SAMPLE_FORMAT_S8

+

8bit位宽有符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_S8P

+

8bit位宽有符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_U8

+

8bit位宽无符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_U8P

+

8bit位宽无符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_S16

+

16bit位宽有符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_S16P

+

16bit位宽有符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_U16

+

16bit位宽无符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_U16P

+

16bit位宽无符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_S24

+

24bit位宽有符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_S24P

+

24bit位宽有符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_U24

+

24bit位宽无符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_U24P

+

24bit位宽无符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_S32

+

32bit位宽有符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_S32P

+

32bit位宽有符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_U32

+

32bit位宽无符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_U32P

+

32bit位宽无符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_S64

+

64bit位宽有符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_S64P

+

64bit位宽有符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_U64

+

64bit位宽无符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_U64P

+

64bit位宽无符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_F32

+

32bit位宽浮点型交织样本

+

+

AUDIO_SAMPLE_FORMAT_F32P

+

64bit位宽浮点型非交织样本

+

+

AUDIO_SAMPLE_FORMAT_F64

+

64bit位宽双精度浮点型交织样本

+

+

AUDIO_SAMPLE_FORMAT_F64P

+

64bit位宽双精度浮点型非交织样本

+

+

AUDIO_SAMPLE_FMT_U8

+

无符号8位整型,打包格式

+

+

AUDIO_SAMPLE_FMT_S16

+

带符号16位整型,打包格式

+

+

AUDIO_SAMPLE_FMT_S32

+

带符号32位整型,打包格式

+

+

AUDIO_SAMPLE_FMT_FLOAT

+

浮点型,打包格式

+

+

AUDIO_SAMPLE_FMT_DOUBLE

+

双精度浮点型,打包格式

+

+

AUDIO_SAMPLE_FMT_U8P

+

无符号8位整型,平面格式

+

+

AUDIO_SAMPLE_FMT_S16P

+

带符号16位整型,平面格式

+

+

AUDIO_SAMPLE_FMT_S32P

+

带符号32位整型,平面格式

+

+

AUDIO_SAMPLE_FMT_FLOATP

+

浮点型,平面格式

+

+

AUDIO_SAMPLE_FMT_DOUBLEP

+

双精度浮点型,平面格式

+

+

AUDIO_SAMPLE_FMT_INVALID

+

无效采样格式

+

+
+ +## AudioSampleRatesMask + +``` +enum AudioSampleRatesMask +``` + +**描述:** + +音频采样频率MASK + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

AUDIO_SAMPLE_RATE_MASK_8000

+

8K 采样频率

+

+

AUDIO_SAMPLE_RATE_MASK_12000

+

12K 采样频率

+

+

AUDIO_SAMPLE_RATE_MASK_11025

+

11.025K 采样频率

+

+

AUDIO_SAMPLE_RATE_MASK_16000

+

16K 采样频率

+

+

AUDIO_SAMPLE_RATE_MASK_22050

+

22.050K 采样频率

+

+

AUDIO_SAMPLE_RATE_MASK_24000

+

24K 采样频率

+

+

AUDIO_SAMPLE_RATE_MASK_32000

+

32K 采样频率

+

+

AUDIO_SAMPLE_RATE_MASK_44100

+

44.1K 采样频率

+

+

AUDIO_SAMPLE_RATE_MASK_48000

+

48K 采样频率

+

+

AUDIO_SAMPLE_RATE_MASK_64000

+

64K 采样频率

+

+

AUDIO_SAMPLE_RATE_MASK_96000

+

96K 采样频率

+

+

AUDIO_SAMPLE_RATE_MASK_INVALID

+

无效的采样频率

+

+
+ +## AudioSessionType + +``` +enum AudioSessionType +``` + +**描述:** + +端口会话类型 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

AUDIO_OUTPUT_STAGE_SESSION

+

会话绑定到指定输出流

+

+

AUDIO_OUTPUT_MIX_SESSION

+

会话绑定到特定音轨

+

+

AUDIO_ALLOCATE_SESSION

+

会话ID需重新申请

+

+

AUDIO_INVALID_SESSION

+

无效会话类型

+

+
+ +## **函数说明** + +## GetAudioManagerFuncs\(\) + +``` +struct AudioManager* GetAudioManagerFuncs (void ) +``` + +**描述:** + +获取音频适配器管理接口的操作函数列表,详情参考[AudioManager](_audio_manager.md)。 + +**返回:** + +成功返回一个音频适配器管理接口的对象,失败返回NULL。 + +## **变量说明** + +## adapterName + +``` +const char* AudioAdapterDescriptor::adapterName +``` + +**描述:** + +音频适配器的名称。 + +## channelCount \[1/2\] + +``` +uint32_t AudioSampleAttributes::channelCount +``` + +**描述:** + +音频通道数目,如单通道(mono)为1、立体声(stereo)为2。 + +## channelCount \[2/2\] + +``` +unsigned int AudioPortCapability::channelCount +``` + +**描述:** + +支持的最大声道总数。 + +## channelMasks + +``` +enum AudioChannelMask AudioPortCapability::channelMasks +``` + +**描述:** + +设备的声道布局掩码(mask),详情参考[AudioChannelMask](_audio.md#ga137eb03027d5947ea294b32f5095b83c)。 + +## desc \[1/5\] + +``` +const char* AudioDeviceDescriptor::desc +``` + +**描述:** + +以字符串命名的音频设备。 + +## desc \[2/5\] + +``` +struct AudioDeviceDescriptor AudioSceneDescriptor::desc +``` + +**描述:** + +音频设备描述符。 + +## desc \[3/5\] + +``` +const char* AudioSceneDescriptor::SceneDesc::desc +``` + +**描述:** + +以字符串命名的音频场景。 + +## desc \[4/5\] + +``` +const char* AudioSubPortCapability::desc +``` + +**描述:** + +以字符串命名的子端口。 + +## desc \[5/5\] + +``` +const char* AudioDevExtInfo::desc +``` + +**描述:** + +地址描述。 + +## deviceId + +``` +unsigned int AudioPortCapability::deviceId +``` + +**描述:** + +绑定(bind)设备ID,唯一的设备识别符。 + +## deviceType + +``` +unsigned int AudioPortCapability::deviceType +``` + +**描述:** + +设备输出、输入类型。 + +## dir + +``` +enum AudioPortDirection AudioPort::dir +``` + +**描述:** + +音频端口的类型,详情参考[AudioPortDirection](_audio.md#ga68ff7140b15790debbac4bbc62f8e9f8)。 + +## format + +``` +enum AudioFormat AudioSampleAttributes::format +``` + +**描述:** + +音频数据格式,详情参考[AudioFormat](_audio.md#ga98d5d077cca088ddf77314871474fe59)。 + +## formatNum + +``` +unsigned int AudioPortCapability::formatNum +``` + +**描述:** + +支持的音频格式数目。 + +## formats + +``` +enum AudioFormat* AudioPortCapability::formats +``` + +**描述:** + +支持的音频格式,详情参考[AudioFormat](_audio.md#ga98d5d077cca088ddf77314871474fe59)。 + +## frameSize + +``` +uint32_t AudioSampleAttributes::frameSize +``` + +**描述:** + +音频数据的帧大小。 + +## hardwareMode + +``` +bool AudioPortCapability::hardwareMode +``` + +**描述:** + +是否支持设备绑定处理。 + +## id + +``` +unsigned int AudioSceneDescriptor::SceneDesc::id +``` + +**描述:** + +音频场景的ID。 + +## interleaved + +``` +bool AudioSampleAttributes::interleaved +``` + +**描述:** + +音频数据交织的标记。 + +## isBigEndian + +``` +bool AudioSampleAttributes::isBigEndian +``` + +**描述:** + +音频数据的大端标志。 + +## isShareable + +``` +int32_t AudioMmapBufferDescripter::isShareable +``` + +**描述:** + +mmap缓冲区是否可以在进程间共享。 + +## isSignedData + +``` +bool AudioSampleAttributes::isSignedData +``` + +**描述:** + +音频数据的有符号或无符号标志 + +## mask + +``` +enum AudioPortPassthroughMode AudioSubPortCapability::mask +``` + +**描述:** + +数据透传模式,详情参考[AudioPortPassthroughMode](_audio.md#ga186d2d4f9a2ecacb80cd2cce2bd26f0e)。 + +## memoryAddress + +``` +void* AudioMmapBufferDescripter::memoryAddress +``` + +**描述:** + +指向mmap缓冲区的指针。 + +## memoryFd + +``` +int32_t AudioMmapBufferDescripter::memoryFd +``` + +**描述:** + +mmap缓冲区的文件描述符。 + +## moduleId \[1/2\] + +``` +int32_t AudioDevExtInfo::moduleId +``` + +**描述:** + +音频流绑定的模块ID。 + +## moduleId \[2/2\] + +``` +int32_t AudioMixExtInfo::moduleId +``` + +**描述:** + +流所属模块标识符。 + +## period + +``` +uint32_t AudioSampleAttributes::period +``` + +**描述:** + +音频采样周期。 + +## pins + +``` +enum AudioPortPin AudioDeviceDescriptor::pins +``` + +**描述:** + +音频端口上的PIN脚(输出、输入),详情参考[AudioPortPin](_audio.md#gaa7114aeeccf3ac4f5f7e1d880bcfa835)。 + +## portId \[1/4\] + +``` +unsigned int AudioPort::portId +``` + +**描述:** + +音频端口的ID。 + +## portId \[2/4\] + +``` +unsigned int AudioDeviceDescriptor::portId +``` + +**描述:** + +音频端口ID。 + +## portId \[3/4\] + +``` +unsigned int AudioSubPortCapability::portId +``` + +**描述:** + +子端口ID。 + +## portId \[4/4\] + +``` +int32_t AudioRouteNode::portId +``` + +**描述:** + +音频端口ID。 + +## portName + +``` +const char* AudioPort::portName +``` + +**描述:** + +音频端口的名称。 + +## portNum + +``` +unsigned int AudioAdapterDescriptor::portNum +``` + +**描述:** + +一个音频适配器支持的端口数目。 + +## ports + +``` +struct AudioPort* AudioAdapterDescriptor::ports +``` + +**描述:** + +一个音频适配器支持的端口列表。 + +## role + +``` +enum AudioPortRole AudioRouteNode::role +``` + +**描述:** + +指定端口角色为sink或source。 + +## sampleRate + +``` +unsigned int AudioSampleAttributes::sampleRate +``` + +**描述:** + +音频采样频率。 + +## sampleRateMasks + +``` +unsigned int AudioPortCapability::sampleRateMasks +``` + +**描述:** + +支持的音频采样频率(8k、16k、32k、48k)。 + +## scene + +``` +union AudioSceneDescriptor::SceneDesc AudioSceneDescriptor::scene +``` + +**描述:** + +音频场景的名称。 + +## sessionType + +``` +enum AudioSessionType AudioSessionExtInfo::sessionType +``` + +**描述:** + +音频会话类型。 + +## silenceThreshold + +``` +uint32_t AudioSampleAttributes::silenceThreshold +``` + +**描述:** + +音频捕获缓冲区阈值。 + +## sinks + +``` +const struct AudioRouteNode* AudioRoute::sinks +``` + +**描述:** + +接受端列表。 + +## sinksNum + +``` +uint32_t AudioRoute::sinksNum +``` + +**描述:** + +接受端节点数量。 + +## sources + +``` +const struct AudioRouteNode* AudioRoute::sources +``` + +**描述:** + +发送端列表。 + +## sourcesNum + +``` +uint32_t AudioRoute::sourcesNum +``` + +**描述:** + +发送端节点数量。 + +## startThreshold + +``` +uint32_t AudioSampleAttributes::startThreshold +``` + +**描述:** + +音频渲染开始阈值。 + +## stopThreshold + +``` +uint32_t AudioSampleAttributes::stopThreshold +``` + +**描述:** + +音频渲染停止阈值。 + +## streamId \[1/2\] + +``` +int32_t AudioSampleAttributes::streamId +``` + +**描述:** + +渲染或捕获的音频标识符。 + +## streamId \[2/2\] + +``` +int32_t AudioMixExtInfo::streamId +``` + +**描述:** + +由调用者传递的Render或Capture标识符。 + +## subPorts + +``` +struct AudioSubPortCapability* AudioPortCapability::subPorts +``` + +**描述:** + +支持的子端口列表。 + +## subPortsNum + +``` +unsigned int AudioPortCapability::subPortsNum +``` + +**描述:** + +支持的子端口数目(仅用于输出设备)。 + +## supportSampleFormatNum + +``` +uint32_t AudioPortCapability::supportSampleFormatNum +``` + +**描述:** + +支持的音频样本格式数量。 + +## supportSampleFormats + +``` +enum AudioSampleFormat* AudioPortCapability::supportSampleFormats +``` + +**描述:** + +支持的音频样本格式,详请参考[AudioSampleFormat](_codec.md#ga97cfd5633b2133e7ebe42dbb9b03e757)。 + +## totalBufferFrames + +``` +int32_t AudioMmapBufferDescripter::totalBufferFrames +``` + +**描述:** + +缓冲区总大小,单位:帧。 + +## transferFrameSize + +``` +int32_t AudioMmapBufferDescripter::transferFrameSize +``` + +**描述:** + +传输大小,单位:帧。 + +## tvNSec + +``` +int64_t AudioTimeStamp::tvNSec +``` + +**描述:** + +tvNSec时间,单位:纳秒。 + +## tvSec + +``` +int64_t AudioTimeStamp::tvSec +``` + +**描述:** + +tvSec时间,单位:秒。 + +## type \[1/3\] + +``` +enum AudioCategory AudioSampleAttributes::type +``` + +**描述:** + +音频类型,详情参考[AudioCategory](_audio.md#gaf210d41d152890f3aaf2aaac99bd28d5)。 + +## type \[2/3\] + +``` +enum AudioPortPin AudioDevExtInfo::type +``` + +**描述:** + +音频端口上的PIN脚(输出、输入),详情参考[AudioPortPin](_audio.md#gaa7114aeeccf3ac4f5f7e1d880bcfa835)。 + +## type \[3/3\] + +``` +enum AudioPortType AudioRouteNode::type +``` + +**描述:** + +指定端口类型。 + +## device + +``` + struct AudioDevExtInfo AudioRouteNode::device +``` + +**描述:** + +设备特定信息。 + +## mix + +``` + struct AudioMixExtInfo AudioRouteNode::mix +``` + +**描述:** + +音轨特定信息。 + +## session + +``` + struct AudioSessionExtInfo AudioRouteNode::session +``` + +**描述:** + +会话特定信息。 + diff --git a/zh-cn/device-dev/api/toctopics/_audio_adapter.md b/zh-cn/device-dev/api/toctopics/_audio_adapter.md new file mode 100644 index 0000000000..6f9ef63af6 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_adapter.md @@ -0,0 +1,527 @@ +# AudioAdapter + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

( InitAllPorts )(struct AudioAdapter *adapter)

+

初始化一个音频适配器所有的端口驱动 更多...

+

( CreateRender )(struct AudioAdapter *adapter, const struct AudioDeviceDescriptor *desc, const struct AudioSampleAttributes *attrs, struct AudioRender **render)

+

创建一个音频播放(render)接口的对象 更多...

+

( DestroyRender )(struct AudioAdapter *adapter, struct AudioRender *render)

+

销毁一个音频播放(render)接口的对象 更多...

+

( CreateCapture )(struct AudioAdapter *adapter, const struct AudioDeviceDescriptor *desc, const struct AudioSampleAttributes *attrs, struct AudioCapture **capture)

+

创建一个音频录音(capture)接口的对象 更多...

+

( DestroyCapture )(struct AudioAdapter *adapter, struct AudioCapture *capture)

+

销毁一个音频录音(capture)接口的对象 更多...

+

( GetPortCapability )(struct AudioAdapter *adapter, struct AudioPort *port, struct AudioPortCapability *capability)

+

获取一个音频适配器的端口驱动的能力集 更多...

+

( SetPassthroughMode )(struct AudioAdapter *adapter, struct AudioPort *port, enum AudioPortPassthroughMode mode)

+

设置音频端口驱动的数据透传模式 更多...

+

( GetPassthroughMode )(struct AudioAdapter *adapter, struct AudioPort *port, enum AudioPortPassthroughMode *mode)

+

获取音频端口驱动的数据透传模式 更多...

+

( UpdateAudioRoute )(struct AudioAdapter *adapter, const struct AudioRoute *route, int32_t *routeHandle)

+

更新一个或多个发送端和接受端之间的路由 更多...

+

( ReleaseAudioRoute )(struct AudioAdapter *adapter, int32_t routeHandle)

+

释放一个音频路由. 更多...

+
+ +## **详细描述** + +AudioAdapter音频适配器接口 + +提供音频适配器(声卡)对外支持的驱动能力,包括初始化端口、创建render、创建capture、获取端口能力集等 + +**参见:** + +[AudioRender](_audio_render.md) + +[AudioCapture](_audio_capture.md) + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **类成员变量说明** + +## CreateCapture + +``` +int32_t(* AudioAdapter::CreateCapture) (struct AudioAdapter *adapter, const struct AudioDeviceDescriptor *desc, const struct AudioSampleAttributes *attrs, struct AudioCapture **capture) +``` + +**描述:** + +创建一个音频录音(capture)接口的对象 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

adapter

+

待操作的音频适配器的指针

+

desc

+

指向要启动的音频适配器的描述符的指针

+

attrs

+

指向要打开的音频采样属性的指针

+

capture

+

指向AudioCapture对象的二级指针

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetPortCapability](_audio_adapter.md#a8f86fe208c18df58654f183f5b440f1f) + +[DestroyCapture](_audio_adapter.md#a1175a27c5273dab1acf8f8f3c4967637) + +## CreateRender + +``` +int32_t(* AudioAdapter::CreateRender) (struct AudioAdapter *adapter, const struct AudioDeviceDescriptor *desc, const struct AudioSampleAttributes *attrs, struct AudioRender **render) +``` + +**描述:** + +创建一个音频播放(render)接口的对象 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

adapter

+

待操作的音频适配器对象

+

desc

+

待打开的音频设备描述符

+

attrs

+

待打开的音频采样属性

+

render

+

获取的音频播放接口的对象实例保存到render中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetPortCapability](_audio_adapter.md#a8f86fe208c18df58654f183f5b440f1f) + +[DestroyRender](_audio_adapter.md#a070a8d60f88134c58c4439d4419af913) + +## DestroyCapture + +``` +int32_t(* AudioAdapter::DestroyCapture) (struct AudioAdapter *adapter, struct AudioCapture *capture) +``` + +**描述:** + +销毁一个音频录音(capture)接口的对象 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

adapter

+

待操作的音频适配器对象

+

capture

+

待操作的音频录音接口对象

+
+ +**注意:** + +在音频录音过程中,不能销毁该接口对象 + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[CreateCapture](_audio_adapter.md#a8a46358cdad8e0a9d15ac079713535f2) + +## DestroyRender + +``` +int32_t(* AudioAdapter::DestroyRender) (struct AudioAdapter *adapter, struct AudioRender *render) +``` + +**描述:** + +销毁一个音频播放(render)接口的对象 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

adapter

+

待操作的音频适配器对象

+

render

+

待操作的音频播放接口对象

+
+ +**注意:** + +在音频播放过程中,不能销毁该接口对象 + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[CreateRender](_audio_adapter.md#a284ea2ad18ebac562ca7283652e61b50) + +## GetPassthroughMode + +``` +int(* AudioAdapter::GetPassthroughMode) (struct AudioAdapter *adapter, struct AudioPort *port, enum AudioPortPassthroughMode *mode) +``` + +**描述:** + +获取音频端口驱动的数据透传模式 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

adapter

+

待操作的音频适配器对象

+

port

+

待获取的端口

+

mode

+

获取的传输模式保存到mode中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[SetPassthroughMode](_audio_adapter.md#a115fb7b21a1fe1b8412d24c380717bde) + +## GetPortCapability + +``` +int(* AudioAdapter::GetPortCapability) (struct AudioAdapter *adapter, struct AudioPort *port, struct AudioPortCapability *capability) +``` + +**描述:** + +获取一个音频适配器的端口驱动的能力集 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

adapter

+

待操作的音频适配器对象

+

port

+

待获取的端口

+

capability

+

获取的端口能力保存到capability中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +## InitAllPorts + +``` +int(* AudioAdapter::InitAllPorts) (struct AudioAdapter *adapter) +``` + +**描述:** + +初始化一个音频适配器所有的端口驱动 + +在音频服务中,调用其他驱动接口前需要首先调用该接口检查端口是否已经初始化完成,如果端口驱动初始化完成,则函数返回值0, 否则返回负值,如果端口没有初始化完成,则需要等待一段时间(例如100ms)后重新进行检查,直到端口初始化完成后再继续操作 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

adapter

+

待操作的音频适配器对象

+
+ +**返回:** + +成功返回值0,失败返回负值 + +## ReleaseAudioRoute + +``` +int32_t(* AudioAdapter::ReleaseAudioRoute) (struct AudioAdapter *adapter, int32_t routeHandle) +``` + +**描述:** + +释放一个音频路由. + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

adapter

+

待操作的音频适配器对象

+

routeHandle

+

待释放的路由句柄.

+
+ +**返回:** + +成功返回值0,失败返回负值 + +## SetPassthroughMode + +``` +int(* AudioAdapter::SetPassthroughMode) (struct AudioAdapter *adapter, struct AudioPort *port, enum AudioPortPassthroughMode mode) +``` + +**描述:** + +设置音频端口驱动的数据透传模式 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

adapter

+

待操作的音频适配器对象

+

port

+

待设置的端口

+

mode

+

待设置的传输模式

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetPassthroughMode](_audio_adapter.md#abd8f7f086993cb4ce34d01190db6cc11) + +## UpdateAudioRoute + +``` +int32_t(* AudioAdapter::UpdateAudioRoute) (struct AudioAdapter *adapter, const struct AudioRoute *route, int32_t *routeHandle) +``` + +**描述:** + +更新一个或多个发送端和接受端之间的路由 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

adapter

+

待操作的音频适配器对象

+

route

+

路由信息

+

routeHandle

+

生成的路由句柄

+
+ +**返回:** + +成功返回值0,失败返回负值 + diff --git a/zh-cn/device-dev/api/toctopics/_audio_adapter_descriptor.md b/zh-cn/device-dev/api/toctopics/_audio_adapter_descriptor.md new file mode 100644 index 0000000000..e099ef9867 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_adapter_descriptor.md @@ -0,0 +1,41 @@ +# AudioAdapterDescriptor + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

adapterName

+

音频适配器的名称。

+

portNum

+

一个音频适配器支持的端口数目。

+

ports

+

一个音频适配器支持的端口列表。

+
+ +## **详细描述** + +音频适配器描述符。 + diff --git a/zh-cn/device-dev/api/toctopics/_audio_attribute.md b/zh-cn/device-dev/api/toctopics/_audio_attribute.md new file mode 100644 index 0000000000..20f30a4395 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_attribute.md @@ -0,0 +1,427 @@ +# AudioAttribute + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

( GetFrameSize )(AudioHandle handle, uint64_t *size)

+

获取音频帧(frame)的大小 更多...

+

( GetFrameCount )(AudioHandle handle, uint64_t *count)

+

获取音频buffer中的音频帧数 更多...

+

( SetSampleAttributes )(AudioHandle handle, const struct AudioSampleAttributes *attrs)

+

设置音频采样的属性参数 更多...

+

( GetSampleAttributes )(AudioHandle handle, struct AudioSampleAttributes *attrs)

+

获取音频采样的属性参数 更多...

+

( GetCurrentChannelId )(AudioHandle handle, uint32_t *channelId)

+

获取音频的数据通道ID 更多...

+

( SetExtraParams )(AudioHandle handle, const char *keyValueList)

+

设置音频拓展参数 更多...

+

( GetExtraParams )(AudioHandle handle, char *keyValueList)

+

获取音频拓展参数 更多...

+

( ReqMmapBuffer )(AudioHandle handle, int32_t reqSize, struct AudioMmapBufferDescripter *desc)

+

请求mmap缓冲区 更多...

+

( GetMmapPosition )(AudioHandle handle, uint64_t *frames, struct AudioTimeStamp *time)

+

获取当前mmap的读/写位置 更多...

+
+ +## **详细描述** + +AudioAttribute音频属性接口 + +提供音频播放(render)或录音(capture)需要的公共属性驱动能力,包括获取帧(frame)信息、设置采样属性等。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **类成员变量说明** + +## GetCurrentChannelId + +``` +int32_t(* AudioAttribute::GetCurrentChannelId) (AudioHandle handle, uint32_t *channelId) +``` + +**描述:** + +获取音频的数据通道ID + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

channelId

+

获取的通道ID保存到channelId中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +## GetExtraParams + +``` +int32_t(* AudioAttribute::GetExtraParams) (AudioHandle handle, char *keyValueList) +``` + +**描述:** + +获取音频拓展参数。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

keyValueList

+

拓展参数键值对字符串列表,格式为key=value,多个键值对通过分号分割

+
+ +**返回:** + +成功返回值0,失败返回负值。 + +## GetFrameCount + +``` +int32_t(* AudioAttribute::GetFrameCount) (AudioHandle handle, uint64_t *count) +``` + +**描述:** + +获取音频buffer中的音频帧数。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

count

+

一个音频buffer中包含的音频帧数,获取后保存到count中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +## GetFrameSize + +``` +int32_t(* AudioAttribute::GetFrameSize) (AudioHandle handle, uint64_t *size) +``` + +**描述:** + +获取音频帧(frame)的大小 + +获取一帧音频数据的长度(字节数) + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

size

+

获取的音频帧大小(字节数)保存到size中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +## GetMmapPosition + +``` +int32_t(* AudioAttribute::GetMmapPosition) (AudioHandle handle, uint64_t *frames, struct AudioTimeStamp *time) +``` + +**描述:** + +获取当前mmap的读/写位置 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

frames

+

获取的音频帧计数保存到frames中

+

time

+

获取的关联时间戳保存到time中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +## GetSampleAttributes + +``` +int32_t(* AudioAttribute::GetSampleAttributes) (AudioHandle handle, struct AudioSampleAttributes *attrs) +``` + +**描述:** + +获取音频采样的属性参数。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

attrs

+

获取的音频采样属性(例如采样频率、采样精度、通道)保存到attrs中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[SetSampleAttributes](_audio_attribute.md#a502fe4e4b97cd253244debcc67d45c4d) + +## ReqMmapBuffer + +``` +int32_t(* AudioAttribute::ReqMmapBuffer) (AudioHandle handle, int32_t reqSize, struct AudioMmapBufferDescripter *desc) +``` + +**描述:** + +请求mmap缓冲区 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

reqSize

+

请求缓冲区的大小

+

desc

+

缓冲区描述符

+
+ +**返回:** + +成功返回值0,失败返回负值 + +## SetExtraParams + +``` +int32_t(* AudioAttribute::SetExtraParams) (AudioHandle handle, const char *keyValueList) +``` + +**描述:** + +设置音频拓展参数。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

keyValueList

+

拓展参数键值对字符串列表,格式为key=value,多个键值对通过分号分割

+
+ +**返回:** + +成功返回值0,失败返回负值 + +## SetSampleAttributes + +``` +int32_t(* AudioAttribute::SetSampleAttributes) (AudioHandle handle, const struct AudioSampleAttributes *attrs) +``` + +**描述:** + +设置音频采样的属性参数。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

attrs

+

待设置的音频采样属性,例如采样频率、采样精度、通道

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetSampleAttributes](_audio_attribute.md#a2f92d8704ef677a07d664c33342e4318) + diff --git a/zh-cn/device-dev/api/toctopics/_audio_capture.md b/zh-cn/device-dev/api/toctopics/_audio_capture.md new file mode 100644 index 0000000000..381b0738cb --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_capture.md @@ -0,0 +1,149 @@ +# AudioCapture + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

control

+

音频控制能力接口,详情参考AudioControl

+

attr

+

音频属性能力接口,详情参考AudioAttribute

+

scene

+

音频场景能力接口,详情参考AudioScene

+

volume

+

音频音量能力接口,详情参考AudioVolume

+

( CaptureFrame )(struct AudioCapture *capture, void *frame, uint64_t requestBytes, uint64_t *replyBytes)

+

从音频驱动中录制(capture)一帧输入数据(录音,音频上行数据) 更多...

+

( GetCapturePosition )(struct AudioCapture *capture, uint64_t *frames, struct AudioTimeStamp *time)

+

获取音频输入帧数的上一次计数 更多...

+
+ +## **详细描述** + +AudioCapture音频录音接口。 + +## **类成员变量说明** + +## CaptureFrame + +``` +int32_t(* AudioCapture::CaptureFrame) (struct AudioCapture *capture, void *frame, uint64_t requestBytes, uint64_t *replyBytes) +``` + +**描述:** + +从音频驱动中录制(capture)一帧输入数据(录音,音频上行数据) + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

capture

+

待操作的音频录音接口对象

+

frame

+

待存放输入数据的音频frame

+

requestBytes

+

待存放输入数据的音频frame大小(字节数)

+

replyBytes

+

实际读取到的音频数据长度(字节数),获取后保存到replyBytes中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +## GetCapturePosition + +``` +int32_t(* AudioCapture::GetCapturePosition) (struct AudioCapture *capture, uint64_t *frames, struct AudioTimeStamp *time) +``` + +**描述:** + +获取音频输入帧数的上一次计数 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

capture

+

待操作的音频录音接口对象

+

frames

+

获取的音频帧计数保存到frames中

+

time

+

获取的关联时间戳保存到time中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[CaptureFrame](_audio_capture.md#a89f1baf4b6177f91b9135e86cc8681da) + diff --git a/zh-cn/device-dev/api/toctopics/_audio_control.md b/zh-cn/device-dev/api/toctopics/_audio_control.md new file mode 100644 index 0000000000..38693eebd7 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_control.md @@ -0,0 +1,316 @@ +# AudioControl + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

( Start )(AudioHandle handle)

+

启动一个音频播放(render)或录音(capture)处理 更多...

+

( Stop )(AudioHandle handle)

+

停止一个音频播放(render)或录音(capture)处理 更多...

+

( Pause )(AudioHandle handle)

+

暂停一个音频播放(render)或录音(capture)处理 更多...

+

( Resume )(AudioHandle handle)

+

恢复一个音频播放(render)或录音(capture)处理 更多...

+

( Flush )(AudioHandle handle)

+

刷新音频缓冲区buffer中的数据 更多...

+

( TurnStandbyMode )(AudioHandle handle)

+

设置或去设置设备的待机模式 更多...

+

( AudioDevDump )(AudioHandle handle, int32_t range, int32_t fd)

+

Dump音频设备信息 更多...

+
+ +## **详细描述** + +AudioControl音频控制接口。 + +提供音频播放(render)或录音(capture)需要的公共控制驱动能力,包括Start、Stop、Pause、Resume、Flush等。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **类成员变量说明** + +## AudioDevDump + +``` +int32_t(* AudioControl::AudioDevDump) (AudioHandle handle, int32_t range, int32_t fd) +``` + +**描述:** + +Dump音频设备信息 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

range

+

Dump信息范围,分为简要信息、全量信息

+

fd

+

指定Dump目标文件

+
+ +**返回:** + +成功返回值0,失败返回负值 + +## Flush + +``` +int32_t(* AudioControl::Flush) (AudioHandle handle) +``` + +**描述:** + +刷新音频缓冲区buffer中的数据 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+
+ +**返回:** + +成功返回值0,失败返回负值 + +## Pause + +``` +int32_t(* AudioControl::Pause) (AudioHandle handle) +``` + +**描述:** + +暂停一个音频播放(render)或录音(capture)处理 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[Resume](_audio_control.md#ac59c3e9a5ff9041989871f67253a1e8d) + +## Resume + +``` +int32_t(* AudioControl::Resume) (AudioHandle handle) +``` + +**描述:** + +恢复一个音频播放(render)或录音(capture)处理 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[Pause](_audio_control.md#a16a26deffa17b9f143f602763a260908) + +## Start + +``` +int32_t(* AudioControl::Start) (AudioHandle handle) +``` + +**描述:** + +启动一个音频播放(render)或录音(capture)处理 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[Stop](_audio_control.md#a62e385e391ba1efed35021ee67ab9449) + +## Stop + +``` +int32_t(* AudioControl::Stop) (AudioHandle handle) +``` + +**描述:** + +停止一个音频播放(render)或录音(capture)处理 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[Start](_audio_control.md#a80ddae13819bb1eb348ad4b57597e930) + +## TurnStandbyMode + +``` +int32_t(* AudioControl::TurnStandbyMode) (AudioHandle handle) +``` + +**描述:** + +设置或去设置设备的待机模式 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+
+ +**返回:** + +设置设备待机模式成功返回值0,再次执行后去设置待机模式成功返回正值,失败返回负值 + diff --git a/zh-cn/device-dev/api/toctopics/_audio_dev_ext_info.md b/zh-cn/device-dev/api/toctopics/_audio_dev_ext_info.md new file mode 100644 index 0000000000..9a2baf9208 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_dev_ext_info.md @@ -0,0 +1,41 @@ +# AudioDevExtInfo + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

moduleId

+

音频流绑定的模块ID。

+

type

+

音频端口上的PIN脚(输出、输入),详情参考AudioPortPin

+

desc

+

地址描述。

+
+ +## **详细描述** + +音频设备拓展信息。 + diff --git a/zh-cn/device-dev/api/toctopics/_audio_device_descriptor.md b/zh-cn/device-dev/api/toctopics/_audio_device_descriptor.md new file mode 100644 index 0000000000..d14a42323a --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_device_descriptor.md @@ -0,0 +1,41 @@ +# AudioDeviceDescriptor + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

portId

+

频端口ID。

+

pins

+

音频端口上的PIN脚(输出、输入),详情参考AudioPortPin

+

desc

+

以字符串命名的音频设备。

+
+ +## **详细描述** + +音频场景描述符。 + diff --git a/zh-cn/device-dev/api/toctopics/_audio_manager.md b/zh-cn/device-dev/api/toctopics/_audio_manager.md new file mode 100644 index 0000000000..ebb49ff164 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_manager.md @@ -0,0 +1,223 @@ +# AudioManager + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

( GetAllAdapters )(struct AudioAdapterManager *manager, struct AudioAdapterDescriptor **descs, int *size)

+

获取音频驱动中支持的所有适配器的列表 更多...

+

( LoadAdapter )(struct AudioAdapterManager *manager, const struct AudioAdapterDescriptor *desc, struct AudioAdapter **adapter)

+

加载一个音频适配器(声卡)的驱动 更多...

+

( UnloadAdapter )(struct AudioAdapterManager *manager, struct AudioAdapter *adapter)

+

卸载音频适配器(声卡)的驱动 更多...

+

( ReleaseAudioManagerObject )(struct AudioManager *object)

+

释放音频管理接口对象 更多...

+
+ +## **详细描述** + +AudioManager音频适配器管理接口 + +按照音频服务下发的音频适配器(声卡)描述符加载一个具体的音频适配器驱动程序 + +参见: + +[AudioAdapter](_audio_adapter.md) + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **类成员变量说明** + +## GetAllAdapters + +``` +int(* AudioManager::GetAllAdapters) (struct AudioAdapterManager *manager, struct AudioAdapterDescriptor **descs, int *size) +``` + +**描述:** + +获取音频驱动中支持的所有适配器的列表 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

manager

+

待操作的音频管理接口对象

+

descs

+

获取到的音频适配器列表保存到descs中

+

size

+

获取到的音频适配器列表的长度保存到size中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[LoadAdapter](_audio_manager.md#a94e701aaf2952efac2369688b0704e4d) + +## LoadAdapter + +``` +int(* AudioManager::LoadAdapter) (struct AudioAdapterManager *manager, const struct AudioAdapterDescriptor *desc, struct AudioAdapter **adapter) +``` + +**描述:** + +加载一个音频适配器(声卡)的驱动 + +加载一个具体的音频驱动,例如usb驱动,在具体实现中可能加载的是一个动态链接库(\*.so) + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

manager

+

待操作的音频管理接口对象

+

desc

+

待加载的音频适配器描述符

+

adapter

+

获取的音频适配器接口的对象实例保存到adapter中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetAllAdapters](_audio_manager.md#a385ae18dad8e513fcfc49c3384cdf030) + +[UnloadAdapter](_audio_manager.md#a2e6760aa74554355b0379c9594937b3a) + +## ReleaseAudioManagerObject + +``` +bool(* AudioManager::ReleaseAudioManagerObject) (struct AudioManager *object) +``` + +**描述:** + +释放音频管理接口对象 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

object

+

待操作的音频管理接口对象

+
+ +**返回:** + +成功返回ture,失败返回false + +## UnloadAdapter + +``` +void(* AudioManager::UnloadAdapter) (struct AudioAdapterManager *manager, struct AudioAdapter *adapter) +``` + +**描述:** + +卸载音频适配器(声卡)的驱动 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

manager

+

待操作的音频管理接口对象

+

adapter

+

待卸载的音频适配器接口的对象

+
+ +**参见:** + +[LoadAdapter](_audio_manager.md#a94e701aaf2952efac2369688b0704e4d) + diff --git a/zh-cn/device-dev/api/toctopics/_audio_mix_ext_info.md b/zh-cn/device-dev/api/toctopics/_audio_mix_ext_info.md new file mode 100644 index 0000000000..0c99533157 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_mix_ext_info.md @@ -0,0 +1,36 @@ +# AudioMixExtInfo + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

moduleId

+

流所属模块标识符。

+

streamId

+

由调用者传递的Render或Capture标识符。

+
+ +## **详细描述** + +音轨拓展信息。 + diff --git a/zh-cn/device-dev/api/toctopics/_audio_mmap_buffer_descripter.md b/zh-cn/device-dev/api/toctopics/_audio_mmap_buffer_descripter.md new file mode 100644 index 0000000000..62c026ba4e --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_mmap_buffer_descripter.md @@ -0,0 +1,51 @@ +# AudioMmapBufferDescripter + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

memoryAddress

+

指向mmap缓冲区的指针。

+

memoryFd

+

mmap缓冲区的文件描述符。

+

totalBufferFrames

+

缓冲区总大小,单位:帧。

+

transferFrameSize

+

传输大小,单位:帧。

+

isShareable

+

mmap缓冲区是否可以在进程间共享。

+
+ +## **详细描述** + +mmap缓冲区描述符。 + diff --git a/zh-cn/device-dev/api/toctopics/_audio_port.md b/zh-cn/device-dev/api/toctopics/_audio_port.md new file mode 100644 index 0000000000..7c2297ff07 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_port.md @@ -0,0 +1,41 @@ +# AudioPort + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

dir

+

音频端口的类型,详情参考AudioPortDirection

+

portId

+

音频端口的ID。

+

portName

+

音频端口的名称。

+
+ +## **详细描述** + +音频端口。 + diff --git a/zh-cn/device-dev/api/toctopics/_audio_port_cap.md b/zh-cn/device-dev/api/toctopics/_audio_port_cap.md new file mode 100644 index 0000000000..5a41e710be --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_port_cap.md @@ -0,0 +1,88 @@ +# AudioPortCap + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

sampleFormats [SAMPLE_FMT_NUM]

+

支持的音频采样格式,详见AudioSampleFormat

+

sampleRate [SAMPLE_RATE_NUM]

+

支持的音频采样率,详见AudioSampleRate

+

channelLayouts [CHANNEL_NUM]

+

支持的音频通道数channel layouts。

+

channelCount [CHANNEL_NUM]

+

支持的音频通道数。

+
+ +## **详细描述** + +定义音频编解码能力。 + +## **类成员变量说明** + +## channelCount + +``` +int32_t AudioPortCap::channelCount[CHANNEL_NUM] +``` + +**描述:** + +支持的音频通道数 + +## channelLayouts + +``` +int32_t AudioPortCap::channelLayouts[CHANNEL_NUM] +``` + +**描述:** + +支持的音频通道数channel layouts + +## sampleFormats + +``` +int32_t AudioPortCap::sampleFormats[SAMPLE_FMT_NUM] +``` + +**描述:** + +支持的音频采样格式,详见[AudioSampleFormat](_codec.md#ga97cfd5633b2133e7ebe42dbb9b03e757) + +## sampleRate + +``` +int32_t AudioPortCap::sampleRate[SAMPLE_RATE_NUM] +``` + +**描述:** + +支持的音频采样率,详见[AudioSampleRate](_codec.md#gaa0280074adafe6d2581d31f71512b842) + diff --git a/zh-cn/device-dev/api/toctopics/_audio_port_capability.md b/zh-cn/device-dev/api/toctopics/_audio_port_capability.md new file mode 100644 index 0000000000..62bf864522 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_port_capability.md @@ -0,0 +1,86 @@ +# AudioPortCapability + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

deviceType

+

设备输出、输入类型。

+

deviceId

+

绑定(bind)设备ID,唯一的设备识别符。

+

hardwareMode

+

是否支持设备绑定处理。

+

formatNum

+

支持的音频格式数目。

+

formats

+

支持的音频格式,详情参考AudioFormat

+

sampleRateMasks

+

支持的音频采样频率(8k、16k、32k、48k)。

+

channelMasks

+

设备的声道布局掩码(mask),详情参考AudioChannelMask

+

channelCount

+

支持的最大声道总数。

+

subPortsNum

+

支持的子端口数目(仅用于输出设备)。

+

subPorts

+

支持的子端口列表。

+

supportSampleFormatNum

+

支持的音频样本格式数量。

+

supportSampleFormats

+

支持的音频样本格式,详请参考AudioSampleFormat

+
+ +## **详细描述** + +音频端口的支持能力。 + diff --git a/zh-cn/device-dev/api/toctopics/_audio_render.md b/zh-cn/device-dev/api/toctopics/_audio_render.md new file mode 100644 index 0000000000..5b8a9476aa --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_render.md @@ -0,0 +1,485 @@ +# AudioRender + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

control

+

音频控制能力接口,详情参考AudioControl

+

attr

+

音频属性能力接口,详情参考AudioAttribute

+

scene

+

音频场景能力接口,详情参考AudioScene

+

volume

+

音频音量能力接口,详情参考AudioVolume

+

( GetLatency )(struct AudioRender *render, uint32_t *ms)

+

获取音频硬件驱动估计的延迟时间 更多...

+

( RenderFrame )(struct AudioRender *render, const void *frame, uint64_t requestBytes, uint64_t *replyBytes)

+

往音频驱动中播放(render)一帧输出数据(放音,音频下行数据) 更多...

+

( GetRenderPosition )(struct AudioRender *render, uint64_t *frames, struct AudioTimeStamp *time)

+

获取音频输出帧数的上一次计数 更多...

+

( SetRenderSpeed )(struct AudioRender *render, float speed)

+

设置一个音频的播放速度 更多...

+

( GetRenderSpeed )(struct AudioRender *render, float *speed)

+

获取一个音频当前的播放速度 更多...

+

( SetChannelMode )(struct AudioRender *render, enum AudioChannelMode mode)

+

设置音频播放的通道模式 更多...

+

( GetChannelMode )(struct AudioRender *render, enum AudioChannelMode *mode)

+

获取音频播放当前的通道模式 更多...

+

( RegCallback )(struct AudioRender *render, RenderCallback callback, void *cookie)

+

注册音频回调函数,用于放音过程中缓冲区数据写、DrainBuffer完成通知 更多...

+

( DrainBuffer )(struct AudioRender *render, enum AudioDrainNotifyType *type)

+

排空缓冲区中的数据 更多...

+
+ +## **详细描述** + +AudioRender音频播放接口 + +提供音频播放支持的驱动能力,包括音频控制、音频属性、音频场景、音频音量、获取硬件延迟时间、播放音频帧数据(render frame)等 + +**参见:** + +[AudioControl](_audio_control.md) + +[AudioAttribute](_audio_attribute.md) + +[AudioScene](_audio_scene.md) + +[AudioVolume](_audio_volume.md) + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **类成员变量说明** + +## DrainBuffer + +``` +int32_t(* AudioRender::DrainBuffer) (struct AudioRender *render, enum AudioDrainNotifyType *type) +``` + +**描述:** + +排空缓冲区中的数据 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

render

+

待操作的音频播放接口对象

+

type

+

DrainBuffer的操作类型,详情请参考AudioDrainNotifyType

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[RegCallback](_audio_render.md#acb40275d0f402e8e38539e71f89f31a1) + +## GetChannelMode + +``` +int32_t(* AudioRender::GetChannelMode) (struct AudioRender *render, enum AudioChannelMode *mode) +``` + +**描述:** + +获取音频播放当前的通道模式 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

render

+

待操作的音频播放接口对象

+

mode

+

获取的通道模式保存到mode中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[SetChannelMode](_audio_render.md#ae5aad5b26ccdd65ba501620851c5ecec) + +## GetLatency + +``` +int32_t(* AudioRender::GetLatency) (struct AudioRender *render, uint32_t *ms) +``` + +**描述:** + +获取音频硬件驱动估计的延迟时间 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

render

+

待操作的音频播放接口对象

+

ms

+

获取的延迟时间(单位:毫秒)保存到ms中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +## GetRenderPosition + +``` +int32_t(* AudioRender::GetRenderPosition) (struct AudioRender *render, uint64_t *frames, struct AudioTimeStamp *time) +``` + +**描述:** + +获取音频输出帧数的上一次计数 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

render

+

待操作的音频播放接口对象

+

frames

+

获取的音频帧计数保存到frames中

+

time

+

获取的关联时间戳保存到time中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[RenderFrame](_audio_render.md#a463cab04d0805a5c7b3ba5884c468246) + +## GetRenderSpeed + +``` +int32_t(* AudioRender::GetRenderSpeed) (struct AudioRender *render, float *speed) +``` + +**描述:** + +获取一个音频当前的播放速度 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

render

+

待操作的音频播放接口对象

+

speed

+

获取的播放速度保存到speed中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[SetRenderSpeed](_audio_render.md#a5589427ae5a4ba6a8d2a19dd8eddbcd8) + +## RegCallback + +``` +int32_t(* AudioRender::RegCallback) (struct AudioRender *render, RenderCallback callback, void *cookie) +``` + +**描述:** + +注册音频回调函数,用于放音过程中缓冲区数据写、DrainBuffer完成通知 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

render

+

待操作的音频播放接口对象

+

callback

+

注册的回调函数

+

cookie

+

回调函数的入参

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[RegCallback](_audio_render.md#acb40275d0f402e8e38539e71f89f31a1) + +## RenderFrame + +``` +int32_t(* AudioRender::RenderFrame) (struct AudioRender *render, const void *frame, uint64_t requestBytes, uint64_t *replyBytes) +``` + +**描述:** + +往音频驱动中播放(render)一帧输出数据(放音,音频下行数据) + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

render

+

待操作的音频播放接口对象

+

frame

+

待写入的输出数据的音频frame

+

requestBytes

+

待写入的输出数据的音频frame大小(字节数)

+

replyBytes

+

实际写入的音频数据长度(字节数),获取后保存到replyBytes中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +## SetChannelMode + +``` +int32_t(* AudioRender::SetChannelMode) (struct AudioRender *render, enum AudioChannelMode mode) +``` + +**描述:** + +设置音频播放的通道模式 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

render

+

待操作的音频播放接口对象

+

speed

+

待设置的通道模式

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetChannelMode](_audio_render.md#aad3d5e4104167620eacb2ba23edce50e) + +## SetRenderSpeed + +``` +int32_t(* AudioRender::SetRenderSpeed) (struct AudioRender *render, float speed) +``` + +**描述:** + +设置一个音频的播放速度 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

render

+

待操作的音频播放接口对象

+

speed

+

待设置的播放速度

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetRenderSpeed](_audio_render.md#af0a19dacb293d3fbe600902b93af1ee9) + diff --git a/zh-cn/device-dev/api/toctopics/_audio_route.md b/zh-cn/device-dev/api/toctopics/_audio_route.md new file mode 100644 index 0000000000..a98417b8fe --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_route.md @@ -0,0 +1,46 @@ +# AudioRoute + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

sourcesNum

+

发送端节点数量。

+

sources

+

发送端列表。

+

sinksNum

+

接受端节点数量。

+

sinks

+

接受端列表。

+
+ +## **详细描述** + +音频路由信息。 + diff --git a/zh-cn/device-dev/api/toctopics/_audio_route_node.md b/zh-cn/device-dev/api/toctopics/_audio_route_node.md new file mode 100644 index 0000000000..58bbd422d5 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_route_node.md @@ -0,0 +1,56 @@ +# AudioRouteNode + +## **述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

portId

+

音频端口ID。

+

role

+

指定端口角色为sink或source。

+

type

+

指定端口类型。

+

device

+

设备特定信息。

+

mix

+

音轨特定信息。

+

session

+

会话特定信息。

+
+ +## **详细描述** + +音频路由节点。 + diff --git a/zh-cn/device-dev/api/toctopics/_audio_sample_attributes.md b/zh-cn/device-dev/api/toctopics/_audio_sample_attributes.md new file mode 100644 index 0000000000..3ef1f782a5 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_sample_attributes.md @@ -0,0 +1,91 @@ +# AudioSampleAttributes + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

type

+

音频类型,详情参考AudioCategory

+

interleaved

+

音频数据交织的标记。

+

format

+

音频数据格式,详情参考AudioFormat

+

sampleRate

+

音频采样频率。

+

channelCount

+

音频通道数目,如单通道(mono)为1、立体声(stereo)为2。

+

period

+

音频采样周期。

+

frameSize

+

音频数据的帧大小。

+

isBigEndian

+

音频数据的大端标志。

+

isSignedData

+

音频数据的有符号或无符号标志。

+

startThreshold

+

音频渲染开始阈值。

+

stopThreshold

+

音频渲染停止阈值。

+

silenceThreshold

+

音频捕获缓冲区阈值。

+

streamId

+

渲染或捕获的音频标识符。

+
+ +## **详细描述** + +音频采样属性。 + diff --git a/zh-cn/device-dev/api/toctopics/_audio_scene.md b/zh-cn/device-dev/api/toctopics/_audio_scene.md new file mode 100644 index 0000000000..8590da5c80 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_scene.md @@ -0,0 +1,140 @@ +# AudioScene + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

( CheckSceneCapability )(AudioHandle handle, const struct AudioSceneDescriptor *scene, bool *supported)

+

是否支持某个音频场景的配置 更多...

+

( SelectScene )(AudioHandle handle, const struct AudioSceneDescriptor *scene)

+

选择音频场景 更多...

+
+ +## **详细描述** + +AudioScene音频场景接口。 + +提供音频播放(render)或录音(capture)需要的公共场景驱动能力,包括选择音频场景等。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **类成员变量说明** + +## CheckSceneCapability + +``` +int32_t(* AudioScene::CheckSceneCapability) (AudioHandle handle, const struct AudioSceneDescriptor *scene, bool *supported) +``` + +**描述:** + +是否支持某个音频场景的配置 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

scene

+

待获取的音频场景描述符

+

supported

+

是否支持的状态保存到supported中,true表示支持,false表示不支持

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[SelectScene](_audio_scene.md#aacdbf3a9f488a7e71f3a5a23c68c0068) + +## SelectScene + +``` +int32_t(* AudioScene::SelectScene) (AudioHandle handle, const struct AudioSceneDescriptor *scene) +``` + +**描述:** + +选择音频场景 + +1. 选择一个非常具体的音频场景(应用场景和输出设备的组合),例如同样是使用手机中的喇叭作为输出设备 + - 在媒体播放场景scene为media\_speaker + - 在语音通话免提场景scene为voice\_speaker + +2. 只是选择一个音频场景,例如使用场景为媒体播放(media)、电影播放(movie)、游戏播放(game) +3. 只是选择一个音频输出设备,例如输出设备为听筒(receiver)、喇叭(speaker)、有线耳机(headset) + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

scene

+

待设置的音频场景描述符

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[CheckSceneCapability](_audio_scene.md#a9b485404b2ec3b8bc2b8d1b73401d45c) + diff --git a/zh-cn/device-dev/api/toctopics/_audio_scene_descriptor.md b/zh-cn/device-dev/api/toctopics/_audio_scene_descriptor.md new file mode 100644 index 0000000000..af412ad07b --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_scene_descriptor.md @@ -0,0 +1,53 @@ +# AudioSceneDescriptor + +## **概述** + +**所属模块:** + +[Audio](_audio.md)[更多...](union_audio_scene_descriptor_1_1_scene_desc.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

SceneDesc

+

音频场景描述 AudioSceneDescriptor::SceneDesc

+
+ +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

scene

+

音频场景的名称。

+

desc

+

音频设备描述符。

+
+ +## **详细描述** + +音频场景描述符。 + diff --git a/zh-cn/device-dev/api/toctopics/_audio_session_ext_info.md b/zh-cn/device-dev/api/toctopics/_audio_session_ext_info.md new file mode 100644 index 0000000000..c78870ea99 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_session_ext_info.md @@ -0,0 +1,31 @@ +# AudioSessionExtInfo + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + +

Public 属性

+

描述

+

sessionType

+

音频会话类型。

+
+ +## **详细描述** + +会话拓展信息。 + diff --git a/zh-cn/device-dev/api/toctopics/_audio_sub_port_capability.md b/zh-cn/device-dev/api/toctopics/_audio_sub_port_capability.md new file mode 100644 index 0000000000..f9e6f5592a --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_sub_port_capability.md @@ -0,0 +1,41 @@ +# AudioSubPortCapability + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

portId

+

子端口ID。

+

desc

+

以字符串命名的子端口。

+

mask

+

数据透传模式,详情参考AudioPortPassthroughMode

+
+ +## **详细描述** + +音频子端口的支持能力。 + diff --git a/zh-cn/device-dev/api/toctopics/_audio_time_stamp.md b/zh-cn/device-dev/api/toctopics/_audio_time_stamp.md new file mode 100644 index 0000000000..9dc33ab671 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_time_stamp.md @@ -0,0 +1,38 @@ +# AudioTimeStamp + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

tvSec

+

tvSec时间,单位:秒。

+

tvNSec

+

tvNSec时间,单位:纳秒。

+
+ +## **详细描述** + +音频时间戳。 + +时间定义,POSIX timespec的替代品。 + diff --git a/zh-cn/device-dev/api/toctopics/_audio_volume.md b/zh-cn/device-dev/api/toctopics/_audio_volume.md new file mode 100644 index 0000000000..bd40cd85ab --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_audio_volume.md @@ -0,0 +1,367 @@ +# AudioVolume + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

( SetMute )(AudioHandle handle, bool mute)

+

设置音频的静音状态 更多...

+

( GetMute )(AudioHandle handle, bool *mute)

+

获取音频的静音状态 更多...

+

( SetVolume )(AudioHandle handle, float volume)

+

设置一个音频流的音量 更多...

+

( GetVolume )(AudioHandle handle, float *volume)

+

获取一个音频流的音量 更多...

+

( GetGainThreshold )(AudioHandle handle, float *min, float *max)

+

获取音频流增益的阈值 更多...

+

( GetGain )(AudioHandle handle, float *gain)

+

获取音频流的增益 更多...

+

( SetGain )(AudioHandle handle, float gain)

+

设置音频流的增益 更多...

+
+ +## **详细描述** + +AudioVolume音频音量接口。 + +提供音频播放(render)或录音(capture)需要的公共音量驱动能力,包括静音操作、设置音量、设置增益等。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **类成员变量说明** + +## GetGain + +``` +int32_t(* AudioVolume::GetGain) (AudioHandle handle, float *gain) +``` + +**描述:** + +获取音频流的增益 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

gain

+

保存当前获取到的增益到gain中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetGainThreshold](_audio_volume.md#aa42ff18fa2b7e6780acf120ea49054ed) + +[SetGain](_audio_volume.md#ab667c5f8754d0b10121451a57abbe429) + +## GetGainThreshold + +``` +int32_t(* AudioVolume::GetGainThreshold) (AudioHandle handle, float *min, float *max) +``` + +**描述:** + +获取音频流增益的阈值 + +在具体的功能实现中,可以根据芯片平台的实际情况来进行处理: + +- 1. 可以使用实际的增益值,例如增益的范围为-50db \~ 6db +- 2. 也可以将增益范围设定为0.0\~1.0,如果增益的范围为-50db \~ 6db, 则增益的映射关系为0.0表示静音,1.0表示最大增益(6db) + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

min

+

获取的音频增益的阈值下限保存到min中

+

max

+

获取的音频增益的阈值上限保存到max中

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetGain](_audio_volume.md#a5ff7f9e5b763d20822a1fadecc5a8db7) + +[SetGain](_audio_volume.md#ab667c5f8754d0b10121451a57abbe429) + +## GetMute + +``` +int32_t(* AudioVolume::GetMute) (AudioHandle handle, bool *mute) +``` + +**描述:** + +获取音频的静音状态 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

mute

+

获取的静音状态保存到mute中,true表示静音操作、false表示取消静音操作

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[SetMute](_audio_volume.md#a79c127fa37eb2dbf8dc5fe9f0ed4421e) + +## GetVolume + +``` +int32_t(* AudioVolume::GetVolume) (AudioHandle handle, float *volume) +``` + +**描述:** + +获取一个音频流的音量 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

volume

+

获取的音量保存到volume中,范围0.0~1.0

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[SetVolume](_audio_volume.md#aebf67caf924cba5f3be9d0f395390908) + +## SetGain + +``` +int32_t(* AudioVolume::SetGain) (AudioHandle handle, float gain) +``` + +**描述:** + +设置音频流的增益 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

gain

+

gain 待设置的增益

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetGainThreshold](_audio_volume.md#aa42ff18fa2b7e6780acf120ea49054ed) + +[GetGain](_audio_volume.md#a5ff7f9e5b763d20822a1fadecc5a8db7) + +## SetMute + +``` +int32_t(* AudioVolume::SetMute) (AudioHandle handle, bool mute) +``` + +**描述:** + +设置音频的静音状态 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

mute

+

待设置的静音状态,true表示静音操作、false表示取消静音操作

+
+ +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetMute](_audio_volume.md#a75fcb5bda7e0ca9b823187f6056ad1d4) + +## SetVolume + +``` +int32_t(* AudioVolume::SetVolume) (AudioHandle handle, float volume) +``` + +**描述:** + +设置一个音频流的音量。 + +音量的取值范围是0.0\~1.0,如果音频服务中的音量等级为15级(0 \~ 15), 则音量的映射关系为0.0表示静音,1.0表示最大音量等级(15) + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

待操作的音频句柄

+

volume

+

待设置的音量,范围0.0~1.0

+
+ +**返回:** + +成功返回值0,失败返回负值 + diff --git a/zh-cn/device-dev/api/toctopics/_auth_result_info.md b/zh-cn/device-dev/api/toctopics/_auth_result_info.md new file mode 100644 index 0000000000..67b216a1f0 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_auth_result_info.md @@ -0,0 +1,111 @@ +# AuthResultInfo + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

result

+

用户身份认证结果。

+

freezingTime

+

认证方式被冻结的时间。

+

remainTimes

+

认证方式距离被冻结的可处理认证请求次数。

+

msgs

+

执行器发送的消息。

+

token

+

用户身份认证令牌。

+
+ +## **详细描述** + +用户身份认证结果信息。 + +**Since:** + +3.2 + +**Version:** + +1.0 + +## **类成员变量说明** + +## freezingTime + +``` +int AuthResultInfo::freezingTime +``` + +**描述:** + +认证方式被冻结的时间。 + +## msgs + +``` +struct ExecutorSendMsg [] AuthResultInfo::msgs +``` + +**描述:** + +执行器发送的消息。 + +## remainTimes + +``` +int AuthResultInfo::remainTimes +``` + +**描述:** + +认证方式距离被冻结的可处理认证请求次数。 + +## result + +``` +unsigned int AuthResultInfo::result +``` + +**描述:** + +用户身份认证结果。 + +## token + +``` +unsigned char [] AuthResultInfo::token +``` + +**描述:** + +用户身份认证令牌。 + diff --git a/zh-cn/device-dev/api/toctopics/_auth_solution.md b/zh-cn/device-dev/api/toctopics/_auth_solution.md new file mode 100644 index 0000000000..59424bcf2b --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_auth_solution.md @@ -0,0 +1,111 @@ +# AuthSolution + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

userId

+

用户ID。

+

authTrustLevel

+

认证结果可信等级。

+

authType

+

用户认证凭据类型AuthType}。

+

executorId

+

既定用户认证凭据类型的执行器ID。

+

challenge

+

挑战值,用于签发认证令牌。

+
+ +## **详细描述** + +认证方案。 + +**Since:** + +3.2 + +**Version:** + +1.0 + +## **类成员变量说明** + +## authTrustLevel + +``` +unsigned int AuthSolution::authTrustLevel +``` + +**描述:** + +认证结果可信等级。 + +## authType + +``` +enum AuthType AuthSolution::authType +``` + +**描述:** + +用户认证凭据类型AuthType\}。 + +## challenge + +``` +unsigned char [] AuthSolution::challenge +``` + +**描述:** + +挑战值,用于签发认证令牌。 + +## executorId + +``` +unsigned int AuthSolution::executorId +``` + +**描述:** + +既定用户认证凭据类型的执行器ID。 + +## userId + +``` +int AuthSolution::userId +``` + +**描述:** + +用户ID。 + diff --git a/zh-cn/device-dev/api/toctopics/_battery_info.md b/zh-cn/device-dev/api/toctopics/_battery_info.md new file mode 100644 index 0000000000..fe93f5f0e1 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_battery_info.md @@ -0,0 +1,257 @@ +# BatteryInfo + +## **概述** + +**所属模块:** + +[Battery](battery.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

capacity

+

表示电池的电量百分比。

+

voltage

+

表示电池的电压。

+

temperature

+

表示电池的温度

+

healthState

+

表示电池的健康状态。

+

pluggedType

+

表示电池的充电设备类型。

+

pluggedMaxCurrent

+

表示电池的最大充电电流。

+

pluggedMaxVoltage

+

表示电池的最大充电电压。

+

chargeState

+

表示电池的充电状态。

+

chargeCounter

+

表示电池的充电次数。

+

totalEnergy

+

表示电池的总容量。

+

curAverage

+

表示电池的平均电流。

+

curNow

+

表示电池的实时电流。

+

remainEnergy

+

表示电池的剩余容量。

+

present

+

表示是否支持电池或者电池是否在位。

+

technology

+

表示电池的技术型号。

+
+ +## **详细描述** + +电池相关信息。 + +**Since:** + +3.1 + +## **类成员变量说明** + +## capacity + +``` +int BatteryInfo::capacity +``` + +**描述:** + +表示电池的电量百分比。 + +## chargeCounter + +``` +int BatteryInfo::chargeCounter +``` + +**描述:** + +表示电池的充电次数。 + +## chargeState + +``` +int BatteryInfo::chargeState +``` + +**描述:** + +表示电池的充电状态。 + +## curAverage + +``` +int BatteryInfo::curAverage +``` + +**描述:** + +表示电池的平均电流。 + +## curNow + +``` +int BatteryInfo::curNow +``` + +**描述:** + +表示电池的实时电流。 + +## healthState + +``` +int BatteryInfo::healthState +``` + +**描述:** + +表示电池的健康状态。 + +## pluggedMaxCurrent + +``` +int BatteryInfo::pluggedMaxCurrent +``` + +**描述:** + +表示电池的最大充电电流。 + +## pluggedMaxVoltage + +``` +int BatteryInfo::pluggedMaxVoltage +``` + +**描述:** + +表示电池的最大充电电压。 + +## pluggedType + +``` +int BatteryInfo::pluggedType +``` + +**描述:** + +表示电池的充电设备类型。 + +## present + +``` +byte BatteryInfo::present +``` + +**描述:** + +表示是否支持电池或者电池是否在位。 + +## remainEnergy + +``` +int BatteryInfo::remainEnergy +``` + +**描述:** + +表示电池的剩余容量。 + +## technology + +``` +String BatteryInfo::technology +``` + +**描述:** + +表示电池的技术型号。 + +## temperature + +``` +int BatteryInfo::temperature +``` + +**描述:** + +表示电池的温度 + +## totalEnergy + +``` +int BatteryInfo::totalEnergy +``` + +**描述:** + +表示电池的总容量。 + +## voltage + +``` +int BatteryInfo::voltage +``` + +**描述:** + +表示电池的电压。 + diff --git a/zh-cn/device-dev/api/toctopics/_buffer_data.md b/zh-cn/device-dev/api/toctopics/_buffer_data.md new file mode 100644 index 0000000000..c3e36e6c38 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_buffer_data.md @@ -0,0 +1,36 @@ +# BufferData + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

phyAddr

+

物理内存地址。

+

virAddr

+

虚拟内存地址。

+
+ +## **详细描述** + +定义一层的缓冲区数据,包括虚拟和物理内存地址。 + diff --git a/zh-cn/device-dev/api/toctopics/_camera.md b/zh-cn/device-dev/api/toctopics/_camera.md new file mode 100644 index 0000000000..725276f6f1 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_camera.md @@ -0,0 +1,2825 @@ +# Camera + +## **汇总** + +## 文件 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

文件

+

描述

+

icamera_device.h

+

Camera设备操作接口。

+

icamera_device_callback.h

+

Camera设备的回调接口,主要包含camera设备发生错误时和上报metadata的回调函数。

+

icamera_host.h

+

Camera服务的管理类,对上层提供HDI接口。

+

icamera_host_callback.h

+

ICameraHost的回调接口,提供Camera设备和闪关灯状态变化的回调函数,回调函数由调用者实现。

+

ioffline_stream_operator.h

+

离线流的操作接口。

+

istream_operator.h

+

流的操作接口。

+

istream_operator_callback.h

+

IStreamOperator相关的回调,这些回调均由调用者实现。

+

types.h

+

Camera模块HDI接口使用的数据类型。

+
+ +## 类 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

描述

+

OHOS::Camera::ICameraDevice

+

Camera设备操作。更多...

+

OHOS::Camera::ICameraDeviceCallback

+

Camera设备操作回调。更多...

+

OHOS::Camera::ICameraHost

+

Camera服务的管理类。更多...

+

OHOS::Camera::ICameraHostCallback

+

Camera服务的管理回调。更多...

+

OHOS::Camera::IOfflineStreamOperator

+

离线流的操作类。更多...

+

OHOS::Camera::IStreamOperator

+

流的操作类。更多...

+

OHOS::Camera::IStreamOperatorCallback

+

流的操作回调类。更多...

+

OHOS::Camera::StreamInfo

+

流信息,用于创建流时传入相关的配置参数。 更多...

+

OHOS::Camera::StreamAttribute

+

流的属性。 更多...

+

OHOS::Camera::CaptureInfo

+

捕获请求的相关信息。 更多...

+

OHOS::Camera::CaptureEndedInfo

+

捕获结束相关信息,用于捕获结束回调 OnCaptureEnded更多...

+

OHOS::Camera::CaptureErrorInfo

+

流错误信息,用于回调 OnCaptureError更多...

+
+ +## 类型定义 + + + + + + + + + + + + + + + + +

类型定义

+

描述

+

OHOS::Camera::CameraAbility = CameraMetadata

+

Camera设备能力集合。

+

OHOS::Camera::CameraSetting = CameraMetadata

+

Camera设置参数,包括sensor帧率,3A相关参数等。

+

OHOS::Camera::MetaType = int32_t

+

整型。

+
+ +## 枚举 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举

+

描述

+

OHOS::Camera::CamRetCode : int32_t { OHOS::Camera::NO_ERROR = 0, OHOS::Camera::CAMERA_BUSY = -1, OHOS::Camera::INSUFFICIENT_RESOURCES = -2, OHOS::Camera::INVALID_ARGUMENT = -3, OHOS::Camera::METHOD_NOT_SUPPORTED = -4, OHOS::Camera::CAMERA_CLOSED = -5, OHOS::Camera::DEVICE_ERROR = -6 }

+

HDI接口的返回值。 更多...

+

OHOS::Camera::ResultCallbackMode : int32_t { OHOS::Camera::PER_FRAME, OHOS::Camera::ON_CHANGED }

+

metadata的上报模式。 更多...

+

OHOS::Camera::OperationMode : int32_t { OHOS::Camera::NORMAL = 0 }

+

流的使用模式。 更多...

+

OHOS::Camera::StreamIntent : int32_t { OHOS::Camera::PREVIEW = 0, OHOS::Camera::VIDEO = 1, OHOS::Camera::STILL_CAPTURE = 2, OHOS::Camera::POST_VIEW = 3, OHOS::Camera::ANALYZE = 4, OHOS::Camera::CUSTOM = 5 }

+

流的类型。 更多...

+

OHOS::Camera::EncodeType : int32_t { OHOS::Camera::ENCODE_TYPE_NULL = 0, OHOS::Camera::ENCODE_TYPE_H264 = 1, OHOS::Camera::ENCODE_TYPE_H265 = 2, OHOS::Camera::ENCODE_TYPE_JPEG = 3 }

+

流数据的编码类型。 更多...

+

OHOS::Camera::StreamSupportType : int32_t { OHOS::Camera::DYNAMIC_SUPPORTED, OHOS::Camera::RE_CONFIGURED_REQUIRED, OHOS::Camera::NOT_SUPPORTED }

+

动态配置流的切换方式,使用场景参考 IsStreamsSupported更多...

+

OHOS::Camera::CameraStatus { OHOS::Camera::UN_AVAILABLE = 0, OHOS::Camera::AVAILABLE = 1 }

+

Camera设备状态。 更多...

+

OHOS::Camera::FlashlightStatus : uint32_t { OHOS::Camera::FLASHLIGHT_OFF = 0, OHOS::Camera::FLASHLIGHT_ON = 1, OHOS::Camera::FLASHLIGHT_UNAVAILABLE = 2 }

+

闪光灯状态。 更多...

+

OHOS::Camera::CameraEvent : uint32_t { OHOS::Camera::CAMERA_EVENT_DEVICE_ADD = 0, OHOS::Camera::CAMERA_EVENT_DEVICE_RMV = 1 }

+

Camera事件。 更多...

+

OHOS::Camera::ErrorType : uint32_t { OHOS::Camera::FATAL_ERROR = 0, OHOS::Camera::REQUEST_TIMEOUT = 1 }

+

设备错误类型,用于设备错误回调 OnError更多...

+

OHOS::Camera::StreamError { OHOS::Camera::UNKNOWN_ERROR = 0, OHOS::Camera::BUFFER_LOST = 1 }

+

流错误类型,用于流错误类型 CaptureErrorInfo更多...

+
+ +## 函数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

函数

+

描述

+

OHOS::Camera::ICameraDevice::DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.Device")

+

IPC通信token校验。

+

OHOS::Camera::ICameraDevice::GetStreamOperator (const OHOS::sptr< IStreamOperatorCallback > &callback, OHOS::sptr< IStreamOperator > &streamOperator)=0

+

获取流操作句柄。 更多...

+

OHOS::Camera::ICameraDevice::UpdateSettings (const std::shared_ptr< CameraSetting > &settings)=0

+

更新设备控制参数。 更多...

+

OHOS::Camera::ICameraDevice::SetResultMode (const ResultCallbackMode &mode)=0

+

设置metadata上报模式,逐帧上报还是设备状态变化时上报。 更多...

+

OHOS::Camera::ICameraDevice::GetEnabledResults (std::vector< MetaType > &results)=0

+

查询使能的metadata。 更多...

+

OHOS::Camera::ICameraDevice::EnableResult (const std::vector< MetaType > &results)=0

+

打开metadata上报开关。 更多...

+

OHOS::Camera::ICameraDevice::DisableResult (const std::vector< MetaType > &results)=0

+

关闭metadata上报开关。 更多...

+

OHOS::Camera::ICameraDevice::Close ()=0

+

关闭Camera设备。 更多...

+

OHOS::Camera::ICameraDeviceCallback::DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.DeviceCallback")

+

IPC通信token校验。

+

OHOS::Camera::ICameraDeviceCallback::OnError (ErrorType type, int32_t errorCode)=0

+

设备发生错误时调用,由调用者实现,用于返回错误信息给调用者。 更多...

+

OHOS::Camera::ICameraDeviceCallback::OnResult (uint64_t timestamp, const std::shared_ptr< CameraMetadata > &result)=0

+

上报camera设备相关的metadata的回调,上报方式查看 SetResultMode更多...

+

OHOS::Camera::ICameraHost::DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.Host")

+

IPC通信token校验。

+

OHOS::Camera::ICameraHost::Get (const char *serviceName)

+

获取ICameraHost实例。 更多...

+

OHOS::Camera::ICameraHost::SetCallback (const OHOS::sptr< ICameraHostCallback > &callback)=0

+

设置ICameraHost回调接口,回调函数参考 ICameraHostCallback更多...

+

OHOS::Camera::ICameraHost::GetCameraIds (std::vector< std::string > &cameraIds)=0

+

获取当前可用的Camera设备ID列表。 更多...

+

OHOS::Camera::ICameraHost::GetCameraAbility (const std::string &cameraId, std::shared_ptr< CameraAbility > &ability)=0

+

获取Camera设备能力集合。 更多...

+

OHOS::Camera::ICameraHost::OpenCamera (const std::string &cameraId, const OHOS::sptr< ICameraDeviceCallback > &callback, OHOS::sptr< ICameraDevice > &device)=0

+

打开Camera设备。 更多...

+

OHOS::Camera::ICameraHost::SetFlashlight (const std::string &cameraId, bool &isEnable)=0

+

打开或关闭闪光灯。 更多...

+

OHOS::Camera::ICameraHostCallback::DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.HostCallback")

+

IPC通信token校验。

+

OHOS::Camera::ICameraHostCallback::OnCameraStatus (const std::string &cameraId, CameraStatus status)=0

+

用于Camera设备状态变化时上报状态信息给调用者。 更多...

+

OHOS::Camera::ICameraHostCallback::OnFlashlightStatus (const std::string &cameraId, FlashlightStatus status)=0

+

用于在闪光灯状态变化时上报状态信息给调用者。 更多...

+

OHOS::Camera::ICameraHostCallback::OnCameraEvent (const std::string &cameraId, CameraEvent event)=0

+

在相机事件发生时调用。 更多...

+

OHOS::Camera::IOfflineStreamOperator::DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.OfflineStreamOperator")

+

IPC通信token校验。

+

OHOS::Camera::IOfflineStreamOperator::CancelCapture (int captureId)=0

+

取消捕获请求。 更多...

+

OHOS::Camera::IOfflineStreamOperator::ReleaseStreams (const std::vector< int > &streamIds)=0

+

释放离线流。 更多...

+

OHOS::Camera::IOfflineStreamOperator::Release ()=0

+

释放所有离线流。 更多...

+

OHOS::Camera::IStreamOperator::DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.StreamOperator")

+

IPC通信token校验。

+

OHOS::Camera::IStreamOperator::IsStreamsSupported (OperationMode mode, const std::shared_ptr< CameraMetadata > &modeSetting, const std::vector< std::shared_ptr< StreamInfo >> &info, StreamSupportType &type)=0

+

查询是否支持添加参数对应的流 更多...

+

OHOS::Camera::IStreamOperator::CreateStreams (const std::vector< std::shared_ptr< StreamInfo >> &streamInfos)=0

+

创建流。 更多...

+

OHOS::Camera::IStreamOperator::ReleaseStreams (const std::vector< int > &streamIds)=0

+

释放流。 更多...

+

OHOS::Camera::IStreamOperator::CommitStreams (OperationMode mode, const std::shared_ptr< CameraMetadata > &modeSetting)=0

+

配置流。 更多...

+

OHOS::Camera::IStreamOperator::GetStreamAttributes (std::vector< std::shared_ptr< StreamAttribute >> &attributes)=0

+

获取流的属性。 更多...

+

OHOS::Camera::IStreamOperator::AttachBufferQueue (int streamId, const OHOS::sptr< OHOS::IBufferProducer > &producer)=0

+

绑定生产者句柄和指定流。 更多...

+

OHOS::Camera::IStreamOperator::DetachBufferQueue (int streamId)=0

+

解除生产者句柄和指定流的绑定关系。 更多...

+

OHOS::Camera::IStreamOperator::Capture (int captureId, const std::shared_ptr< CaptureInfo > &info, bool isStreaming)=0

+

捕获图像。 更多...

+

OHOS::Camera::IStreamOperator::CancelCapture (int captureId)=0

+

取消捕获。 更多...

+

OHOS::Camera::IStreamOperator::ChangeToOfflineStream (const std::vector< int > &streamIds, OHOS::sptr< IStreamOperatorCallback > &callback, OHOS::sptr< IOfflineStreamOperator > &offlineOperator)=0

+

将指定流转换成离线流。 更多...

+

OHOS::Camera::IStreamOperatorCallback::DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.StreamOperatorCallback")

+

IPC通信token校验。

+

OHOS::Camera::IStreamOperatorCallback::OnCaptureStarted (int32_t captureId, const std::vector< int32_t > &streamIds)=0

+

捕获开始回调,在捕获开始时调用。 更多...

+

OHOS::Camera::IStreamOperatorCallback::OnCaptureEnded (int32_t captureId, const std::vector< std::shared_ptr< CaptureEndedInfo >> &infos)=0

+

捕获结束回调,在捕获结束时调用。 更多...

+

OHOS::Camera::IStreamOperatorCallback::OnCaptureError (int32_t captureId, const std::vector< std::shared_ptr< CaptureErrorInfo >> &infos)=0

+

捕获错误回调,在捕获过程中发生错误时调用。 更多...

+

OHOS::Camera::IStreamOperatorCallback::OnFrameShutter (int32_t captureId, const std::vector< int32_t > &streamIds, uint64_t timestamp)=0

+

帧捕获回调。 更多...

+
+ +## 变量 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

变量 名称

+

描述

+

OHOS::Camera::StreamInfo::streamId_

+

流的ID,用于在设备内唯一标识一条流。

+

OHOS::Camera::StreamInfo::width_

+

图像宽度。

+

OHOS::Camera::StreamInfo::height_

+

图像高度。

+

OHOS::Camera::StreamInfo::format_

+

图像格式。

+

OHOS::Camera::StreamInfo::datasapce_

+

图像颜色空间。

+

OHOS::Camera::StreamInfo::intent_

+

流类型。

+

OHOS::Camera::StreamInfo::tunneledMode_

+

隧道模式,值为true时开启,false关闭。

+

OHOS::Camera::StreamInfo::bufferQueue_

+

图形提供的生产者句柄。

+

OHOS::Camera::StreamInfo::minFrameDuration_

+

最小帧间隔。

+

OHOS::Camera::StreamInfo::encodeType_

+

编码类型。

+

OHOS::Camera::StreamAttribute::streamId_

+

流的ID,用于在设备内唯一标识一条流。

+

OHOS::Camera::StreamAttribute::width_

+

图像宽度。

+

OHOS::Camera::StreamAttribute::height_

+

图像高度。

+

OHOS::Camera::StreamAttribute::overrideFormat_

+

重写的图像格式。

+

OHOS::Camera::StreamAttribute::overrideDatasapce_

+

重写的图像颜色空间。

+

OHOS::Camera::StreamAttribute::producerUsage_

+

重写后的生产者的使用方式。

+

OHOS::Camera::StreamAttribute::producerBufferCount_

+

重写后的生产者缓存数量。

+

OHOS::Camera::StreamAttribute::maxBatchCaptureCount_

+

连拍支持的最大捕获帧数量。

+

OHOS::Camera::StreamAttribute::maxCaptureCount_

+

最大的并发捕获请求个数,默认为1。

+

OHOS::Camera::CaptureInfo::streamIds_

+

捕获的流ID集合。

+

OHOS::Camera::CaptureInfo::captureSetting_

+

捕获的配置信息。

+

OHOS::Camera::CaptureInfo::enableShutterCallback_

+

使能捕获回调。

+

OHOS::Camera::CaptureEndedInfo::streamId_

+

捕获的流ID。

+

OHOS::Camera::CaptureEndedInfo::frameCount_

+

捕获结束时已经抓取的帧数。

+

OHOS::Camera::CaptureErrorInfo::streamId_

+

流ID。

+

OHOS::Camera::CaptureErrorInfo::error_

+

错误类型。

+
+ +## **详细描述** + +Camera模块接口定义。 + +Camera模块涉及相机设备的操作、流的操作、离线流的操作和各种回调等。 + +**Since:** + +1.0 + +## **枚举类型说明** + +## CameraEvent + +``` +enum OHOS::Camera::CameraEvent : uint32_t +``` + +**描述:** + +Camera事件。 + + + + + + + + + + + + + +

枚举值

+

描述

+

CAMERA_EVENT_DEVICE_ADD

+

Camera设备增加事件。

+

+

CAMERA_EVENT_DEVICE_RMV

+

Camera设备删除事件。

+

+
+ +## CameraStatus + +``` +enum OHOS::Camera::CameraStatus +``` + +**描述:** + +Camera设备状态。 + + + + + + + + + + + + + +

枚举值

+

描述

+

UN_AVAILABLE

+

设备当前不在位或者不可用。

+

+

AVAILABLE

+

设备当前可用。

+

+
+ +## CamRetCode + +``` +enum OHOS::Camera::CamRetCode : int32_t +``` + +**描述:** + +HDI接口的返回值。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

NO_ERROR

+

调用成功。

+

+

CAMERA_BUSY

+

设备当前忙。

+

+

INSUFFICIENT_RESOURCES

+

资源不足。

+

+

INVALID_ARGUMENT

+

参数错误。

+

+

METHOD_NOT_SUPPORTED

+

不支持当前调用方法。

+

+

CAMERA_CLOSED

+

Camera设备已经关闭。

+

+

DEVICE_ERROR

+

驱动层发生严重错误。

+

+
+ +## EncodeType + +``` +enum OHOS::Camera::EncodeType : int32_t +``` + +**描述:** + +流数据的编码类型。 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

ENCODE_TYPE_NULL

+

未设置编码类型

+

+

ENCODE_TYPE_H264

+

编码类型为H264。

+

+

ENCODE_TYPE_H265

+

编码类型为H265。

+

+

ENCODE_TYPE_JPEG

+

编码类型为JPEG。

+

+
+ +## ErrorType + +``` +enum OHOS::Camera::ErrorType : uint32_t +``` + +**描述:** + +设备错误类型,用于设备错误回调 **OnError**。 + + + + + + + + + + + + + +

枚举值

+

描述

+

FATAL_ERROR

+

严重错误,需要关闭camera设备。

+

+

REQUEST_TIMEOUT

+

请求超时,需要关闭camera设备。

+

+
+ +## FlashlightStatus + +``` +enum OHOS::Camera::FlashlightStatus : uint32_t +``` + +**描述:** + +闪光灯状态。 + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

FLASHLIGHT_OFF

+

闪光灯关闭。

+

+

FLASHLIGHT_ON

+

闪光灯开启。

+

+

FLASHLIGHT_UNAVAILABLE

+

闪光灯当前不可用。

+

+
+ +## OperationMode + +``` +enum OHOS::Camera::OperationMode : int32_t +``` + +**描述:** + +流的使用模式。 + + + + + + + + + + +

枚举值

+

描述

+

NORMAL

+

普通模式。

+

+
+ +## ResultCallbackMode + +``` +enum OHOS::Camera::ResultCallbackMode : int32_t +``` + +**描述:** + +metadata的上报模式。 + + + + + + + + + + + + + +

枚举值

+

描述

+

PER_FRAME

+

每帧上报。

+

+

ON_CHANGED

+

设备状态变化时上报。

+

+
+ +## StreamError + +``` +enum OHOS::Camera::StreamError +``` + +**描述:** + +流错误类型,用于流错误类型 [CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md)。 + + + + + + + + + + + + + +

枚举值

+

描述

+

UNKNOWN_ERROR

+

流未知错误。

+

+

BUFFER_LOST

+

丢包。

+

+
+ +## StreamIntent + +``` +enum OHOS::Camera::StreamIntent : int32_t +``` + +**描述:** + +流的类型。 + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

PREVIEW

+

流数据用于显示,即预览流。

+

+

VIDEO

+

流数据用于编码生成录像,即录像流。

+

+

STILL_CAPTURE

+

流数据用于编码生成照片,即拍照流。

+

+

POST_VIEW

+

流数据用于保存缩略图。

+

+

ANALYZE

+

流数据用于图像分析。

+

+

CUSTOM

+

自定义类型。

+

+
+ +## StreamSupportType + +``` +enum OHOS::Camera::StreamSupportType : int32_t +``` + +**描述:** + +动态配置流的切换方式,使用场景参考 [IsStreamsSupported](_camera.md#ga2ebad5dbf7873a2b3ab27900c4f5b0a7) 。 + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

DYNAMIC_SUPPORTED

+

支持动态配置流,对应的流参数直接生效。

+

+

RE_CONFIGURED_REQUIRED

+

不支持动态配置流,对应的参数需要停止流然后重新配置流才能生效。

+

+

NOT_SUPPORTED

+

不支持对应的流参数配置。

+

+
+ +## **函数说明** + +## AttachBufferQueue\(\) + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::AttachBufferQueue (int streamId, const OHOS::sptr < OHOS::IBufferProducer > & producer ) +``` + +**描述:** + +绑定生产者句柄和指定流。 + +如果在 [CreateStreams](_camera.md#gac16ffa2d2f81bb62eb9ce556a0293c71) 创建流时已经指定了生产者句柄,则不需要调用该接口。如果需要重新绑定, 需先调用 [DetachBufferQueue](_camera.md#gaad1232a57faf5c55ecfdab1c04f98951) 进行解绑,然后再绑定。 对于一些IOT设备,可能不需要或者不支持预览流的图像数据缓存流转,那么不需要绑定生产者句柄, 此时在创建流时 [CreateStreams](_camera.md#gac16ffa2d2f81bb62eb9ce556a0293c71) 的 [StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md) 参数的生产者句柄bufferQueue\_为空,而 tunneledMode\_需设置为false。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

streamId

+

[IN] 用于标识要绑定的流。

+

producer

+

[IN] 生产者句柄。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功; + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**参见:** + +[DetachBufferQueue](_camera.md#gaad1232a57faf5c55ecfdab1c04f98951) + +**Since:** + +1.0 + +**Version:** + +1.0 + +## CancelCapture\(\) \[1/2\] + +``` +virtual CamRetCode OHOS::Camera::IOfflineStreamOperator::CancelCapture (int captureId) +``` + +**描述:** + +取消捕获请求。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

captureId

+

[IN] 用于标识要取消的捕获请求。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功; + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +## CancelCapture\(\) \[2/2\] + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::CancelCapture (int captureId) +``` + +**描述:** + +取消捕获。 + +取消连续捕获时会调用 **OnCaptureEnded**。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

captureId

+

用于标识要取消的捕获请求

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功; + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**参见:** + +[Capture](_camera.md#ga9fb8042cb01262bc08da16159975cf50) + +**Since:** + +1.0 + +**Version:** + +1.0 + +## Capture\(\) + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::Capture (int captureId, const std::shared_ptr< [CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md) > & info, bool isStreaming ) +``` + +**描述:** + +捕获图像。 + +本接口必须在调用 [CommitStreams](_camera.md#gab94792910f425ade060edcda5c5706d1) 配置流之后调用。 图像捕获有两种模式,分别是连续捕获和单次捕获。连续捕获即触发之后模块内部进行连续的捕获, 消费者可以连续收到图像数据,不需要多次调用本接口,若再次调用了本接口, 则停止当前捕获,更新捕获信息,再进行一次新的捕获,多用于预览、录像或者连拍场景。 单次捕获即触发之后只捕获一帧图像数据,用于单次拍照场景。 捕获启动时,会调用 **OnCaptureStarted** 来通知调用者捕获已经启动。 连续捕获需调用 [CancelCapture](_camera.md#ga77100b740f501c309a573f9783313a61) 来停止捕获。 捕获结束时,会调用 **OnCaptureEnded** 来通知调用者捕获的帧计数等信息。 [CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md) 的 enableShutterCallback\_ 使能 **OnFrameShutter**,使能后每次捕获触发 **OnFrameShutter** 对于多个流同时捕获的场景,本模块内部保证同时上报多路流捕获数据。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

captureId

+

[IN] 捕获请求的唯一标识,由调用者指定,调用者需保证在Camera设备打开期间,捕获请求ID是唯一的。

+

info

+

[IN] 捕获请求的参数信息,具体信息查看 CaptureInfo

+

isStreaming

+

[IN] 是否连续捕获,true表示连续捕获,否则为单次捕获。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功; + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**参见:** + +OnFrameShutter + +**Since:** + +1.0 + +**Version:** + +1.0 + +## ChangeToOfflineStream\(\) + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::ChangeToOfflineStream (const std::vector< int > & streamIds, OHOS::sptr< IStreamOperatorCallback > & callback, OHOS::sptr< IOfflineStreamOperator > & offlineOperator ) +``` + +**描述:** + +将指定流转换成离线流。 + +离线流只能由拍照流转换而来,其他流不支持。 一些设备处理能力有限,可能导致拍照时算法处理时间较长,从而引起捕获请求堆积在模块内部,而转换为离线 流之后,可关闭底层设备,由离线流接替,进行后续的处理。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

streamIds

+

[IN] 用于指定要转换成离线流的流集合。

+

callback

+

[IN] 用于设置离线流的回调。

+

offlineOperator

+

[OUT] 转换后的离线流。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功; + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## Close\(\) + +``` +virtual void OHOS::Camera::ICameraDevice::Close () +``` + +**描述:** + +关闭Camera设备。 + +**参见:** + +[OpenCamera](_camera.md#gaf9e7aa942d3e31504d8ef5e710b029f1) + +**Since:** + +1.0 + +**Version:** + +1.0 + +## CommitStreams\(\) + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::CommitStreams (OperationMode mode, const std::shared_ptr< CameraMetadata > & modeSetting ) +``` + +**描述:** + +配置流。 + +本接口需在调用 [CreateStreams](_camera.md#gac16ffa2d2f81bb62eb9ce556a0293c71) 创建流之后调用。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

mode

+

[IN] 流运行的模式,支持的模式定义在 OperationMode

+

modeSetting

+

[IN] 流的配置参数,包括帧率,ZOOM等信息。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功; + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## CreateStreams\(\) + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::CreateStreams (const std::vector< std::shared_ptr< StreamInfo >> & streamInfos) +``` + +**描述:** + +创建流。 + +此函数接口依据输入的流信息创建流,调用该接口之前需先通过 [IsStreamsSupported](_camera.md#ga2ebad5dbf7873a2b3ab27900c4f5b0a7) 查询HAL是否支持要创建的流。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

streamInfos

+

[IN] 流信息列表,流信息定义在 StreamInfo。输入的流信息可能会被修改,需通过 GetStreamAttributes 获取最新的流属性。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功; + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## DetachBufferQueue\(\) + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::DetachBufferQueue (int streamId) +``` + +**描述:** + +解除生产者句柄和指定流的绑定关系。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

streamId

+

[IN] 用于标识要解除绑定的流。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功; + +Returns 其他值表示执行失败,具体错误码查看[CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**参见:** + +[AttachBufferQueue](_camera.md#gad17206bf96c260a9384f224d65a230af) + +**Since:** + +1.0 + +**Version:** + +1.0 + +## DisableResult\(\) + +``` +virtual CamRetCode OHOS::Camera::ICameraDevice::DisableResult (const std::vector< MetaType > & results) +``` + +**描述:** + +关闭metadata上报开关。 + +屏蔽之后,相应的**OnResult**不再上报,需 [EnableResult](_camera.md#ga265b16a5b7969045b38de95bf782b75c) 使能之后才上报。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

results

+

[IN] 需要关闭上报开关的metadata。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**参见:** + +[EnableResult](_camera.md#ga265b16a5b7969045b38de95bf782b75c) + +**Since:** + +1.0 + +**Version:** + +1.0 + +## EnableResult\(\) + +``` +virtual CamRetCode OHOS::Camera::ICameraDevice::EnableResult (const std::vector< MetaType > & results) +``` + +**描述:** + +打开metadata上报开关。 + +**OnResult** 只上报此接口使能后的metadata。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

results

+

[IN] 需要打开上报开关的metadata。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**参见:** + +[DisableResult](_camera.md#ga68fd022b82dfba6d9431220faf9856bd) + +**Since:** + +1.0 + +**Version:** + +1.0 + +## Get\(\) + +``` +static sptr OHOS::Camera::ICameraHost::Get (const char * serviceName) +``` + +**描述:** + +获取ICameraHost实例。 + +此接口为Camera调用入口,需要先通过该接口获取ICameraHost实例,然后通过ICameraHost实例进行其它操作。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

serviceName

+

[IN] 要获取的ICameraHost实例的名称,当前实现中实例名称固定为camera_service。

+
+ +**返回:** + +Returns 成功返回ICameraHost实例,失败返回nullptr。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## GetCameraAbility\(\) + +``` +virtual CamRetCode OHOS::Camera::ICameraHost::GetCameraAbility (const std::string & cameraId, std::shared_ptr< CameraAbility > & ability ) +``` + +**描述:** + +获取Camera设备能力集合。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

cameraId

+

[IN] 用于指定要操作的camera设备,通过 GetCameraIds 获取。

+

ability

+

[OUT] 返回cameraId对应Camera设备的能力集合。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功; + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**参见:** + +[GetCameraIds](_camera.md#gab3128eb3432a830b2cff6bcd999bca10) + +**Since:** + +1.0 + +**Version:** + +1.0 + +## GetCameraIds\(\) + +``` +virtual CamRetCode OHOS::Camera::ICameraHost::GetCameraIds (std::vector< std::string > & cameraIds) +``` + +**描述:** + +获取当前可用的Camera设备ID列表。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

cameraIds

+

[OUT] 返回当前可用的设备列表

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**参见:** + +[GetCameraAbility](_camera.md#gad813ea200395e42a3ec2a457cc04b93d) + +**Since:** + +1.0 + +**Version:** + +1.0 + +## GetEnabledResults\(\) + +``` +virtual CamRetCode OHOS::Camera::ICameraDevice::GetEnabledResults (std::vector< MetaType > & results) +``` + +**描述:** + +查询使能的metadata。 + +[EnableResult](_camera.md#ga265b16a5b7969045b38de95bf782b75c) 使能需要上报的metadata之后,可通过此接口查询使能的metadata。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

results

+

[OUT] 所有使能的metadata。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## GetStreamAttributes\(\) + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::GetStreamAttributes (std::vector< std::shared_ptr< StreamAttribute >> & attributes) +``` + +**描述:** + +获取流的属性。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

attributes

+

[OUT] 用于获取流的属性。在调用CreateStreams 时,通过参数streamInfos携带的流信息 可能会被重写,因此通过该接口获取的流属性可能会。 和 CreateStreams 输入的流信息存在差异。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## GetStreamOperator\(\) + +``` +virtual CamRetCode OHOS::Camera::ICameraDevice::GetStreamOperator (const OHOS::sptr< IStreamOperatorCallback > & callback, OHOS::sptr< IStreamOperator > & streamOperator ) +``` + +**描述:** + +获取流操作句柄。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

callback

+

[IN] 设置流回调接口,详细可查看 IStreamOperatorCallback, 用于上报捕获开始 OnCaptureStarted,捕获结束 OnCaptureEndedOnCaptureError 捕获错误等信息。

+

streamOperator

+

[OUT] 返回流操作句柄。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## IsStreamsSupported\(\) + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::IsStreamsSupported (OperationMode mode, const std::shared_ptr< CameraMetadata > & modeSetting, const std::vector< std::shared_ptr< StreamInfo >> & info, StreamSupportType & type ) +``` + +**描述:** + +查询是否支持添加参数对应的流。 + +流是指从底层设备输出,经本模块内部各环节处理,最终传递到上层服务或者应用的一组数据序列 本模块支持的流的类型有预览流,录像流,拍照流等,更多类型可查看 **StreamIntent**。 + +此函数接口根据输入的运行模式和配置信息以及当前模块中正在运行的流,查询是否支持动态添加流。 如果本模块支持在不停止其他流的情况下添加新流,或者即使停止其他流但上层服务或应用不感知 则通过type参数返回DYNAMIC\_SUPPORTED,上层服务或应用可以直接添加新流; 如果本模块支持添加新流但需要上层服务或应用先停止所有流的捕获,则通过type参数返回RE\_CONFIGURED\_REQUIRED; 如果不支持添加输入的新流,则返回NOT\_SUPPORTED。 此函数需要在调用 [CreateStreams](_camera.md#gac16ffa2d2f81bb62eb9ce556a0293c71) 创建流之前调用。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

mode

+

[IN] 流运行的模式,支持的模式参考 OperationMode

+

modeSetting

+

[IN] 流的配置,包括帧率,3A等配置信息。

+

info

+

[IN] 流的配置信息,具体参考 StreamInfo

+

type

+

[OUT] 对动态配置流的支持类型,支持类型定义在 StreamSupportType

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功; + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## OnCameraEvent\(\) + +``` +virtual void OHOS::Camera::ICameraHostCallback::OnCameraEvent (const std::string & cameraId, CameraEvent event ) +``` + +**描述:** + +在相机事件发生时调用。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

cameraId

+

表示相机事件绑定的相机ID。

+

event

+

表示相机事件类型。

+
+ +**Since:** + +1.0 + +**Version:** + +1.0 + +## OnCameraStatus\(\) + +``` +virtual void OHOS::Camera::ICameraHostCallback::OnCameraStatus (const std::string & cameraId, CameraStatus status ) +``` + +**描述:** + +用于Camera设备状态变化时上报状态信息给调用者。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

cameraId

+

[IN] 状态发生变化的Camera设备ID。

+

status

+

[IN] 最新的设备状态。

+
+ +**Since:** + +1.0 + +**Version:** + +1.0 + +## OnCaptureEnded\(\) + +``` +virtual void OHOS::Camera::IStreamOperatorCallback::OnCaptureEnded (int32_t captureId, const std::vector< std::shared_ptr< CaptureEndedInfo >> & infos ) +``` + +**描述:** + +捕获结束回调,在捕获结束时调用。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

captureId

+

[IN] 用于标识回调对应的捕获请求。

+

infos

+

[IN] 捕获结束相关信息。

+
+ +**参见:** + +[OnCaptureStarted](_camera.md#ga6389672b42dcead4067bbb06aa7b8c18) + +**Since:** + +1.0 + +**Version:** + +1.0 + +## OnCaptureError\(\) + +``` +virtual void OHOS::Camera::IStreamOperatorCallback::OnCaptureError (int32_t captureId, const std::vector< std::shared_ptr< CaptureErrorInfo >> & infos ) +``` + +**描述:** + +捕获错误回调,在捕获过程中发生错误时调用。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

captureId

+

[IN] 用于标识回调对应的捕获请求。

+

infos

+

[IN] 捕获错误信息列表。

+
+ +**Since:** + +1.0 + +**Version:** + +1.0 + +## OnCaptureStarted\(\) + +``` +virtual void OHOS::Camera::IStreamOperatorCallback::OnCaptureStarted (int32_t captureId, const std::vector< int32_t > & streamIds ) +``` + +**描述:** + +捕获开始回调,在捕获开始时调用。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

captureId

+

[IN] 用于标识回调对应的捕获请求。

+

streamIds

+

[IN] 回调对应的流集合。

+
+ +**参见:** + +[OnCaptureEnded](_camera.md#ga3761990cab402ce99251b26e3802070d) + +**Since:** + +1.0 + +**Version:** + +1.0 + +## OnError\(\) + +``` +virtual void OHOS::Camera::ICameraDeviceCallback::OnError (ErrorType type, int32_t errorCode ) +``` + +**描述:** + +设备发生错误时调用,由调用者实现,用于返回错误信息给调用者。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

type

+

[IN] 错误类型,具体错误类型可参考 ErrorType

+

errorCode

+

[IN] 错误码,当前暂未使用。

+
+ +**Since:** + +1.0 + +**Version:** + +1.0 + +## OnFlashlightStatus\(\) + +``` +virtual void OHOS::Camera::ICameraHostCallback::OnFlashlightStatus (const std::string & cameraId, FlashlightStatus status ) +``` + +**描述:** + +用于在闪光灯状态变化时上报状态信息给调用者。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

cameraId

+

[IN] 状态发生变化的闪关灯所绑定的Camera设备ID。

+

status

+

[IN] 最新的闪光灯状态。

+
+ +**Since:** + +1.0 + +**Version:** + +1.0 + +## OnFrameShutter\(\) + +``` +virtual void OHOS::Camera::IStreamOperatorCallback::OnFrameShutter (int32_t captureId, const std::vector< int32_t > & streamIds, uint64_t timestamp ) +``` + +**描述:** + +帧捕获回调。 + +通过 **Capture** 的输入参数 [CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md) 的enableShutterCallback\_使能该回调, 使能后每次捕获均会触发此回调。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

captureId

+

[IN] 用于标识回调对应的捕获请求。

+

streamIds

+

[IN] 回调对应的流集合。

+

timestamp

+

[IN] 该接口被调用时的时间戳。

+
+ +**参见:** + +Capture + +**Since:** + +1.0 + +**Version:** + +1.0 + +## OnResult\(\) + +``` +virtual void OHOS::Camera::ICameraDeviceCallback::OnResult (uint64_t timestamp, const std::shared_ptr< CameraMetadata > & result ) +``` + +**描述:** + +上报camera设备相关的metadata的回调,上报方式查看 [SetResultMode](_camera.md#ga8adaa4f26fffa98626a2c7e731393174)。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

timestamp

+

[IN] metadata上报的时间戳。

+

result

+

[IN] 上报的metadata,上报的metadata由 EnableResult 指定, 可通过 GetEnabledResults 查询,DisableResult 关闭上报开关。

+
+ +**Since:** + +1.0 + +**Version:** + +1.0 + +## OpenCamera\(\) + +``` +virtual CamRetCode OHOS::Camera::ICameraHost::OpenCamera (const std::string & cameraId, const OHOS::sptr< ICameraDeviceCallback > & callback, OHOS::sptr< ICameraDevice > & device ) +``` + +**描述:** + +打开Camera设备。 + +打开指定的Camera设备,通过此接口可以获取到ICameraDevice对象,通过ICameraDevice对象可以操作具体的Camera设备。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

cameraId

+

[IN] 需要打开的Camera设备ID,可通过 GetCameraIds 接口获取当前已有Camera设备列表。

+

callback

+

[IN] camera设备相关的回调函数,具体参见 ICameraDeviceCallback

+

device

+

[OUT] 返回当前要打开的Camera设备ID对应的ICameraDevice对象。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功; + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**参见:** + +[GetCameraIds](_camera.md#gab3128eb3432a830b2cff6bcd999bca10) + +**Since:** + +1.0 + +**Version:** + +1.0 + +## Release\(\) + +``` +virtual CamRetCode OHOS::Camera::IOfflineStreamOperator::Release () +``` + +**描述:** + +释放所有离线流。 + +**返回:** + +Returns NO\_ERROR 表示执行成功; + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## ReleaseStreams\(\) \[1/2\] + +``` +virtual CamRetCode OHOS::Camera::IOfflineStreamOperator::ReleaseStreams (const std::vector< int > & streamIds) +``` + +**描述:** + +释放离线流。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

streamIds

+

用于标识要释放的离线流集合。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## ReleaseStreams\(\) \[2/2\] + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::ReleaseStreams (const std::vector< int > & streamIds) +``` + +**描述:** + +释放流。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

streamIds

+

[IN] 要释放的流ID列表。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功; + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## SetCallback\(\) + +``` +virtual CamRetCode OHOS::Camera::ICameraHost::SetCallback (const OHOS::sptr< ICameraHostCallback > & callback) +``` + +**描述:** + +设置ICameraHost回调接口,回调函数参考 [ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md)。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

callback

+

[IN] 要设置的回调函数。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## SetFlashlight\(\) + +``` +virtual CamRetCode OHOS::Camera::ICameraHost::SetFlashlight (const std::string & cameraId, bool & isEnable ) +``` + +**描述:** + +打开或关闭闪光灯。 + +该接口只能由打开cameraId指定Camera设备的调用者调用。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

cameraId

+

[IN] 闪光灯对应的Camera设备ID。

+

isEnable

+

[IN] true打开闪光灯,false关闭闪光灯。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功; + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**参见:** + +[GetCameraIds](_camera.md#gab3128eb3432a830b2cff6bcd999bca10) + +**Since:** + +1.0 + +**Version:** + +1.0 + +## SetResultMode\(\) + +``` +virtual CamRetCode OHOS::Camera::ICameraDevice::SetResultMode (const ResultCallbackMode & mode) +``` + +**描述:** + +设置metadata上报模式,逐帧上报还是设备状态变化时上报。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

mode

+

[IN] metadata的上报模式,逐帧上报或者设备状态变化时上报,查看 ResultCallbackMode

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## UpdateSettings\(\) + +``` +virtual CamRetCode OHOS::Camera::ICameraDevice::UpdateSettings (const std::shared_ptr< CameraSetting > & settings) +``` + +**描述:** + +更新设备控制参数。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

settings

+

[IN] Camera设置参数,包括sensor帧率,3A相关参数等。

+
+ +**返回:** + +Returns NO\_ERROR 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **变量说明** + +## bufferQueue\_ + +``` +OHOS::sptr OHOS::Camera::StreamInfo::bufferQueue_ +``` + +**描述:** + +图形提供的生产者句柄。 + +## captureSetting\_ + +``` +std::shared_ptr OHOS::Camera::CaptureInfo::captureSetting_ +``` + +**描述:** + +捕获的配置信息。 + +## datasapce\_ + +``` +int OHOS::Camera::StreamInfo::datasapce_ +``` + +**描述:** + +图像颜色空间。 + +## enableShutterCallback\_ + +``` +bool OHOS::Camera::CaptureInfo::enableShutterCallback_ +``` + +**描述:** + +使能捕获回调,每一次捕获后都会触发 **OnFrameShutter**。 + +## encodeType\_ + +``` +[EncodeType](_camera.md#ga57d3c5974b8119b90f6f43592bd4b1d1) OHOS::Camera::StreamInfo::encodeType_ +``` + +**描述:** + +编码类型。 + +## error\_ + +``` +[StreamError](_camera.md#ga376e6d566c73ec98e29b7dd93763aee6) OHOS::Camera::CaptureErrorInfo::error_ +``` + +**描述:** + +错误类型。 + +## format\_ + +``` +int OHOS::Camera::StreamInfo::format_ +``` + +**描述:** + +图像格式。 + +## frameCount\_ + +``` +int OHOS::Camera::CaptureEndedInfo::frameCount_ +``` + +**描述:** + +捕获结束时已经抓取的帧数。 + +## height\_ \[1/2\] + +``` +int OHOS::Camera::StreamInfo::height_ +``` + +**描述:** + +图像高度。 + +## height\_ \[2/2\] + +``` +int OHOS::Camera::StreamAttribute::height_ +``` + +**描述:** + +图像高度。 + +## intent\_ + +``` +[StreamIntent](_camera.md#ga2b195a400dc0113b8185900ddc231c19) OHOS::Camera::StreamInfo::intent_ +``` + +**描述:** + +流类型。 + +## maxBatchCaptureCount\_ + +``` +int OHOS::Camera::StreamAttribute::maxBatchCaptureCount_ +``` + +**描述:** + +连拍支持的最大捕获帧数量。 + +## maxCaptureCount\_ + +``` +int OHOS::Camera::StreamAttribute::maxCaptureCount_ +``` + +**描述:** + +最大的并发捕获请求个数,默认为1。 + +## minFrameDuration\_ + +``` +int OHOS::Camera::StreamInfo::minFrameDuration_ +``` + +**描述:** + +最小帧间隔。 + +## overrideDatasapce\_ + +``` +int OHOS::Camera::StreamAttribute::overrideDatasapce_ +``` + +**描述:** + +重写的图像颜色空间 + +## overrideFormat\_ + +``` +int OHOS::Camera::StreamAttribute::overrideFormat_ +``` + +**描述:** + +重写的图像格式。 + +## producerBufferCount\_ + +``` +int OHOS::Camera::StreamAttribute::producerBufferCount_ +``` + +**描述:** + +重写后的生产者缓存数量。 + +## producerUsage\_ + +``` +int OHOS::Camera::StreamAttribute::producerUsage_ +``` + +**描述:** + +重写后的生产者的使用方式。 + +## streamId\_ \[1/4\] + +``` +int OHOS::Camera::StreamInfo::streamId_ +``` + +**描述:** + +流的ID,用于在设备内唯一标识一条流。 + +## streamId\_ \[2/4\] + +``` +int OHOS::Camera::StreamAttribute::streamId_ +``` + +**描述:** + +流的ID,用于在设备内唯一标识一条流。 + +## streamId\_ \[3/4\] + +``` +int OHOS::Camera::CaptureEndedInfo::streamId_ +``` + +**描述:** + +捕获的流ID。 + +## streamId\_ \[4/4\] + +``` +int OHOS::Camera::CaptureErrorInfo::streamId_ +``` + +**描述:** + +流ID。 + +## streamIds\_ + +``` +std::vector OHOS::Camera::CaptureInfo::streamIds_ +``` + +**描述:** + +捕获的流ID集合。 + +## tunneledMode\_ + +``` +bool OHOS::Camera::StreamInfo::tunneledMode_ +``` + +**描述:** + +隧道模式,值为true时开启,false关闭。 + +开启隧道模式后,HAL不直接和上层交互,通过图形提供的生产者句柄来传递帧数据, 对于一些IOT设备,可能不需要或者不支持预览流的图像数据缓存流转,此时需要关闭隧道模式。 + +## width\_ \[1/2\] + +``` +int OHOS::Camera::StreamInfo::width_ +``` + +**描述:** + +图像宽度。 + +## width\_ \[2/2\] + +``` +int OHOS::Camera::StreamAttribute::width_ +``` + +**描述:** + +图像宽度。 + diff --git a/zh-cn/device-dev/api/toctopics/_codec.md b/zh-cn/device-dev/api/toctopics/_codec.md new file mode 100644 index 0000000000..b86a81b750 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_codec.md @@ -0,0 +1,2595 @@ +# Codec + +## **汇总** + +## 文件 + + + + + + + + + + + + + + + + + + + + + + +

文件

+

描述

+

codec_callback_if.h

+

主要包括回调函数接口定义。

+

codec_common_type.h

+

Codec模块接口定义中使用的自定义数据类型。

+

codec_component_if.h

+

主要包括Codec组件接口定义。

+

codec_component_manager.h

+

主要包括Codec组件管理类接口。

+

codec_component_type.h

+

Codec模块接口定义中使用的自定义数据类型。

+
+ +## 类 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

描述

+

CodecCallbackType

+

Codec回调接口定义。 更多...

+

Alignment

+

对齐结构定义,包含宽高的对齐值 更多...

+

Rect

+

矩形的定义 更多...

+

RangeValue

+

取值范围的定义 更多...

+

CodecComponentType

+

Codec组件接口定义。 更多...

+

CodecComponentManager

+

Codec组件管理类接口定义。 更多...

+

VideoPortCap

+

定义视频编解码能力 更多...

+

AudioPortCap

+

定义音频编解码能力 更多...

+

PortCap

+

定义音视频编解码能力 更多...

+

CodecCompCapability

+

定义Codec编解码能力 更多...

+

OmxCodecBuffer

+

Codec buffer信息的定义 更多...

+

CompVerInfo

+

定义组件版本信息 更多...

+

EventInfo

+

定义事件上报信息 更多...

+

SupportBufferType

+

SupportBuffer类型定义. 更多...

+

UseBufferType

+

UseBuffer类型定义 更多...

+

GetBufferHandleUsageParams

+

BufferHandleUsage类型定义 更多...

+
+ +## 宏定义 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

宏定义

+

描述

+

SAMPLE_FMT_NUM 32

+

采样格式最大值

+

UUID_LENGTH 128

+

定义UUID长度

+

PIX_FORMAT_NUM 16

+

支持的像素格式数组大小

+

SAMPLE_FORMAT_NUM 12

+

支持的音频采样格式数组大小

+

SAMPLE_RATE_NUM 16

+

支持的音频采样率数组大小

+

CHANNEL_NUM 16

+

支持的音频通道数组大小

+

NAME_LENGTH 32

+

组件名称大小

+

PROFILE_NUM 256

+

支持的profile数组大小

+
+ +## 枚举 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举

+

描述

+

CodecType { VIDEO_DECODER, VIDEO_ENCODER, AUDIO_DECODER, AUDIO_ENCODER, INVALID_TYPE }

+

枚举编解码的类型 更多...

+

Profile { INVALID_PROFILE = 0, AAC_LC_PROFILE = 0x1000, AAC_MAIN_PROFILE, AAC_HE_V1_PROFILE, AAC_HE_V2_PROFILE, AAC_LD_PROFILE, AAC_ELD_PROFILE, AVC_BASELINE_PROFILE = 0x2000, AVC_MAIN_PROFILE, AVC_HIGH_PROFILE, HEVC_MAIN_PROFILE = 0x3000, HEVC_MAIN_10_PROFILE }

+

枚举Codec规格 更多...

+

AudioSampleRate { AUD_SAMPLE_RATE_8000 = 8000, AUD_SAMPLE_RATE_12000 = 12000, AUD_SAMPLE_RATE_11025 = 11025, AUD_SAMPLE_RATE_16000 = 16000, AUD_SAMPLE_RATE_22050 = 22050, AUD_SAMPLE_RATE_24000 = 24000, AUD_SAMPLE_RATE_32000 = 32000, AUD_SAMPLE_RATE_44100 = 44100, AUD_SAMPLE_RATE_48000 = 48000, AUD_SAMPLE_RATE_64000 = 64000, AUD_SAMPLE_RATE_96000 = 96000, AUD_SAMPLE_RATE_INVALID }

+

枚举音频采样率 更多...

+

CodecCapsMask { CODEC_CAP_ADAPTIVE_PLAYBACK = 0x1, CODEC_CAP_SECURE_PLAYBACK = 0x2, CODEC_CAP_TUNNEL_PLAYBACK = 0x4, CODEC_CAP_MULTI_PLANE = 0x10000 }

+

枚举播放能力 更多...

+

CodecProcessMode { PROCESS_BLOCKING_INPUT_BUFFER = 0X1, PROCESS_BLOCKING_OUTPUT_BUFFER = 0X2, PROCESS_BLOCKING_CONTROL_FLOW = 0X4, PROCESS_NONBLOCKING_INPUT_BUFFER = 0X100, PROCESS_NONBLOCKING_OUTPUT_BUFFER = 0X200, PROCESS_NONBLOCKING_CONTROL_FLOW = 0X400 }

+

枚举编解码处理模式 更多...

+

AvCodecRole { MEDIA_ROLETYPE_IMAGE_JPEG = 0, MEDIA_ROLETYPE_VIDEO_AVC, MEDIA_ROLETYPE_VIDEO_HEVC, MEDIA_ROLETYPE_AUDIO_FIRST = 0x10000, MEDIA_ROLETYPE_AUDIO_AAC = 0x10000, MEDIA_ROLETYPE_AUDIO_G711A, MEDIA_ROLETYPE_AUDIO_G711U, MEDIA_ROLETYPE_AUDIO_G726, MEDIA_ROLETYPE_AUDIO_PCM, MEDIA_ROLETYPE_AUDIO_MP3, MEDIA_ROLETYPE_INVALID }

+

枚举音视频编解码组件类型 更多...

+

AudioSampleFormat { AUDIO_SAMPLE_FORMAT_S8, AUDIO_SAMPLE_FORMAT_S8P, AUDIO_SAMPLE_FORMAT_U8, AUDIO_SAMPLE_FORMAT_U8P, AUDIO_SAMPLE_FORMAT_S16, AUDIO_SAMPLE_FORMAT_S16P, AUDIO_SAMPLE_FORMAT_U16, AUDIO_SAMPLE_FORMAT_U16P, AUDIO_SAMPLE_FORMAT_S24, AUDIO_SAMPLE_FORMAT_S24P, AUDIO_SAMPLE_FORMAT_U24, AUDIO_SAMPLE_FORMAT_U24P, AUDIO_SAMPLE_FORMAT_S32, AUDIO_SAMPLE_FORMAT_S32P, AUDIO_SAMPLE_FORMAT_U32, AUDIO_SAMPLE_FORMAT_U32P, AUDIO_SAMPLE_FORMAT_S64, AUDIO_SAMPLE_FORMAT_S64P, AUDIO_SAMPLE_FORMAT_U64, AUDIO_SAMPLE_FORMAT_U64P, AUDIO_SAMPLE_FORMAT_F32, AUDIO_SAMPLE_FORMAT_F32P, AUDIO_SAMPLE_FORMAT_F64, AUDIO_SAMPLE_FORMAT_F64P, AUDIO_SAMPLE_FMT_U8, AUDIO_SAMPLE_FMT_S16, AUDIO_SAMPLE_FMT_S32, AUDIO_SAMPLE_FMT_FLOAT, AUDIO_SAMPLE_FMT_DOUBLE, AUDIO_SAMPLE_FMT_U8P, AUDIO_SAMPLE_FMT_S16P, AUDIO_SAMPLE_FMT_S32P, AUDIO_SAMPLE_FMT_FLOATP, AUDIO_SAMPLE_FMT_DOUBLEP, AUDIO_SAMPLE_FMT_INVALID }

+

枚举音频采样格式 更多...

+

CodecBufferType { CODEC_BUFFER_TYPE_INVALID = 0, CODEC_BUFFER_TYPE_VIRTUAL_ADDR = 0x1, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD = 0x2, CODEC_BUFFER_TYPE_HANDLE = 0x4, CODEC_BUFFER_TYPE_DYNAMIC_HANDLE = 0x8 }

+

定义buffer类型 更多...

+

ShareMemTypes { READ_WRITE_TYPE = 0x1, READ_ONLY_TYPE = 0x2 }

+

枚举共享内存类型 更多...

+

OmxIndexCodecExType { OMX_IndexExtBufferTypeStartUnused = OMX_IndexKhronosExtensions + 0x00a00000, OMX_IndexParamSupportBufferType, OMX_IndexParamUseBufferType, OMX_IndexParamGetBufferHandleUsage }

+

枚举Codec扩展index 更多...

+

OmxVideoExType { OMX_VIDEO_CodingHEVC = 11 }

+

枚举Codec扩展编码类型 更多...

+
+ +## 函数 + + + + + + + + + + + + + + + + + + + + + + + + + +

函数

+

描述

+

CodecCallbackTypeGet (struct HdfRemoteService *remote)

+

实例化CodecCallbackType对象。 更多...

+

CodecCallbackTypeRelease (struct CodecCallbackType *instance)

+

释放CodecCallbackType对象。 更多...

+

CodecComponentTypeGet (struct HdfRemoteService *remote)

+

实例化CodecComponentType对象。 更多...

+

CodecComponentTypeRelease (struct CodecComponentType *instance)

+

释放CodecComponentType对象。 更多...

+

GetCodecComponentManager (void)

+

实例化CodecComponentManager对象。 更多...

+

CodecComponentManagerRelease (void)

+

释放CodecComponentManager对象。 更多...

+
+ +## 变量 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

变量 名称

+

描述

+

CodecCallbackType::remote

+

指向HdfRemoteService的指针。 更多...

+

( CodecCallbackType::EventHandler )(struct CodecCallbackType *self, enum OMX_EVENTTYPE event, struct EventInfo *info)

+

事件上报。 更多...

+

( CodecCallbackType::EmptyBufferDone )(struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, const struct OmxCodecBuffer *buffer)

+

上报输入buffer编码或者解码处理完毕。 更多...

+

( CodecCallbackType::FillBufferDone )(struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, struct OmxCodecBuffer *buffer)

+

上报输出buffer填充完毕。 更多...

+

( CodecComponentType::GetComponentVersion )(struct CodecComponentType *self, struct CompVerInfo *verInfo)

+

获取Codec组件版本号。 更多...

+

( CodecComponentType::SendCommand )(struct CodecComponentType *self, enum OMX_COMMANDTYPE cmd, uint32_t param, int8_t *cmdData, uint32_t cmdDataLen)

+

发送命令给组件。 更多...

+

( CodecComponentType::GetParameter )(struct CodecComponentType *self, uint32_t paramIndex, int8_t *paramStruct, uint32_t paramStructLen)

+

获取组件参数设置。 更多...

+

( CodecComponentType::SetParameter )(struct CodecComponentType *self, uint32_t index, int8_t *paramStruct, uint32_t paramStructLen)

+

设置组件需要的参数。 更多...

+

( CodecComponentType::GetConfig )(struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen)

+

获取组件的配置结构。 更多...

+

( CodecComponentType::SetConfig )(struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen)

+

设置组件的配置。 更多...

+

( CodecComponentType::GetExtensionIndex )(struct CodecComponentType *self, const char *paramName, uint32_t *indexType)

+

根据字符串获取组件的扩展索引。 更多...

+

( CodecComponentType::GetState )(struct CodecComponentType *self, enum OMX_STATETYPE *state)

+

获取组件的当前状态。 更多...

+

( CodecComponentType::ComponentTunnelRequest )(struct CodecComponentType *self, uint32_t port, int32_t tunneledComp, uint32_t tunneledPort, struct OMX_TUNNELSETUPTYPE *tunnelSetup)

+

设置组件采用Tunnel方式通信。 更多...

+

( CodecComponentType::UseBuffer )(struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer)

+

指定组件端口的buffer。 更多...

+

( CodecComponentType::AllocateBuffer )(struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer)

+

向组件申请端口buffer。 更多...

+

( CodecComponentType::FreeBuffer )(struct CodecComponentType *self, uint32_t portIndex, const struct OmxCodecBuffer *buffer)

+

释放buffer。 更多...

+

( CodecComponentType::EmptyThisBuffer )(struct CodecComponentType *self, const struct OmxCodecBuffer *buffer)

+

编解码输入待处理buffer。 更多...

+

( CodecComponentType::FillThisBuffer )(struct CodecComponentType *self, const struct OmxCodecBuffer *buffer)

+

编解码输出填充buffer。 更多...

+

( CodecComponentType::SetCallbacks )(struct CodecComponentType *self, struct CodecCallbackType *callback, int8_t *appData, uint32_t appDataLen)

+

设置Codec组件的回调函数。 更多...

+

( CodecComponentType::ComponentDeInit )(struct CodecComponentType *self)

+

组件去初始化。 更多...

+

( CodecComponentType::UseEglImage )(struct CodecComponentType *self, struct OmxCodecBuffer *buffer, uint32_t portIndex, int8_t *eglImage, uint32_t eglImageLen)

+

使用已在EGL中申请的空间。 更多...

+

( CodecComponentType::ComponentRoleEnum )(struct CodecComponentType *self, uint8_t *role, uint32_t roleLen, uint32_t index)

+

获取组件角色。 更多...

+
+ +## **详细描述** + +Codec模块接口定义。 + +Codec模块涉及自定义类型、音视频编解码组件初始化、参数设置、数据的轮转和控制等。 + +**Since:** + +3.1 + +**Version:** + +2.0 + +## **枚举类型说明** + +## AudioSampleFormat + +``` +enum AudioSampleFormat +``` + +**描述:** + +枚举音频采样格式 + +对于planar的采样格式,每个声道的数据是独立存储在data中;对于packed的采样格式,只使用第一个data,每个声道的数据是交错存储的。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

AUDIO_SAMPLE_FORMAT_S8

+

8bit位宽有符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_S8P

+

8bit位宽有符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_U8

+

8bit位宽无符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_U8P

+

8bit位宽无符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_S16

+

16bit位宽有符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_S16P

+

16bit位宽有符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_U16

+

16bit位宽无符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_U16P

+

16bit位宽无符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_S24

+

24bit位宽有符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_S24P

+

24bit位宽有符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_U24

+

24bit位宽无符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_U24P

+

24bit位宽无符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_S32

+

32bit位宽有符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_S32P

+

32bit位宽有符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_U32

+

32bit位宽无符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_U32P

+

32bit位宽无符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_S64

+

64bit位宽有符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_S64P

+

64bit位宽有符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_U64

+

64bit位宽无符号交织样本

+

+

AUDIO_SAMPLE_FORMAT_U64P

+

64bit位宽无符号非交织样本

+

+

AUDIO_SAMPLE_FORMAT_F32

+

32bit位宽浮点型交织样本

+

+

AUDIO_SAMPLE_FORMAT_F32P

+

64bit位宽浮点型非交织样本

+

+

AUDIO_SAMPLE_FORMAT_F64

+

64bit位宽双精度浮点型交织样本

+

+

AUDIO_SAMPLE_FORMAT_F64P

+

64bit位宽双精度浮点型非交织样本

+

+

AUDIO_SAMPLE_FMT_U8

+

无符号8位整型,打包格式

+

+

AUDIO_SAMPLE_FMT_S16

+

带符号16位整型,打包格式

+

+

AUDIO_SAMPLE_FMT_S32

+

带符号32位整型,打包格式

+

+

AUDIO_SAMPLE_FMT_FLOAT

+

浮点型,打包格式

+

+

AUDIO_SAMPLE_FMT_DOUBLE

+

双精度浮点型,打包格式

+

+

AUDIO_SAMPLE_FMT_U8P

+

无符号8位整型,平面格式

+

+

AUDIO_SAMPLE_FMT_S16P

+

带符号16位整型,平面格式

+

+

AUDIO_SAMPLE_FMT_S32P

+

带符号32位整型,平面格式

+

+

AUDIO_SAMPLE_FMT_FLOATP

+

浮点型,平面格式

+

+

AUDIO_SAMPLE_FMT_DOUBLEP

+

双精度浮点型,平面格式

+

+

AUDIO_SAMPLE_FMT_INVALID

+

无效采样格式

+

+
+ +## AudioSampleRate + +``` +enum AudioSampleRate +``` + +**描述:** + +枚举音频采样率 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

AUD_SAMPLE_RATE_8000

+

8K采样率

+

+

AUD_SAMPLE_RATE_12000

+

12K采样率

+

+

AUD_SAMPLE_RATE_11025

+

11.025K采样率

+

+

AUD_SAMPLE_RATE_16000

+

16K采样率

+

+

AUD_SAMPLE_RATE_22050

+

22.050K采样率

+

+

AUD_SAMPLE_RATE_24000

+

24K采样率

+

+

AUD_SAMPLE_RATE_32000

+

32K采样率

+

+

AUD_SAMPLE_RATE_44100

+

44.1K采样率

+

+

AUD_SAMPLE_RATE_48000

+

48K采样率

+

+

AUD_SAMPLE_RATE_64000

+

64K采样率

+

+

AUD_SAMPLE_RATE_96000

+

96K采样率

+

+

AUD_SAMPLE_RATE_INVALID

+

无效采样率

+

+
+ +## AvCodecRole + +``` +enum AvCodecRole +``` + +**描述:** + +枚举音视频编解码组件类型 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

MEDIA_ROLETYPE_IMAGE_JPEG

+

图像JPEG媒体类型

+

+

MEDIA_ROLETYPE_VIDEO_AVC

+

视频H.264媒体类型

+

+

MEDIA_ROLETYPE_VIDEO_HEVC

+

视频H.265媒体类型

+

+

MEDIA_ROLETYPE_AUDIO_FIRST

+

音频编解码器类型

+

+

MEDIA_ROLETYPE_AUDIO_AAC

+

音频AAC媒体类型

+

+

MEDIA_ROLETYPE_AUDIO_G711A

+

音频G711A媒体类型

+

+

MEDIA_ROLETYPE_AUDIO_G711U

+

音频G711U媒体类型

+

+

MEDIA_ROLETYPE_AUDIO_G726

+

音频G726媒体类型

+

+

MEDIA_ROLETYPE_AUDIO_PCM

+

音频PCM媒体类型

+

+

MEDIA_ROLETYPE_AUDIO_MP3

+

音频MP3媒体类型

+

+

MEDIA_ROLETYPE_INVALID

+

无效媒体类型

+

+
+ +## CodecBufferType + +``` +enum CodecBufferType +``` + +**描述:** + +定义buffer类型 + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

CODEC_BUFFER_TYPE_INVALID

+

无效buffer类型

+

+

CODEC_BUFFER_TYPE_VIRTUAL_ADDR

+

虚拟地址类型

+

+

CODEC_BUFFER_TYPE_AVSHARE_MEM_FD

+

共享内存类型

+

+

CODEC_BUFFER_TYPE_HANDLE

+

handle类型

+

+

CODEC_BUFFER_TYPE_DYNAMIC_HANDLE

+

动态handle类型

+

+
+ +## CodecCapsMask + +``` +enum CodecCapsMask +``` + +**描述:** + +枚举播放能力 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

CODEC_CAP_ADAPTIVE_PLAYBACK

+

自适应播放能力

+

+

CODEC_CAP_SECURE_PLAYBACK

+

安全播放能力

+

+

CODEC_CAP_TUNNEL_PLAYBACK

+

通道播放能力

+

+

CODEC_CAP_MULTI_PLANE

+

视频图像平面/音频通道平面能力

+

+
+ +## CodecProcessMode + +``` +enum CodecProcessMode +``` + +**描述:** + +枚举编解码处理模式 + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

PROCESS_BLOCKING_INPUT_BUFFER

+

同步模式输入buffer

+

+

PROCESS_BLOCKING_OUTPUT_BUFFER

+

同步模式输出buffer

+

+

PROCESS_BLOCKING_CONTROL_FLOW

+

同步模式控制流

+

+

PROCESS_NONBLOCKING_INPUT_BUFFER

+

异步模式输入buffer

+

+

PROCESS_NONBLOCKING_OUTPUT_BUFFER

+

异步模式输出buffer

+

+

PROCESS_NONBLOCKING_CONTROL_FLOW

+

异步模式控制流

+

+
+ +## CodecType + +``` +enum CodecType +``` + +**描述:** + +枚举编解码的类型 + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

VIDEO_DECODER

+

视频解码类型

+

+

VIDEO_ENCODER

+

视频编码类型

+

+

AUDIO_DECODER

+

音频解码类型

+

+

AUDIO_ENCODER

+

音频编码类型

+

+

INVALID_TYPE

+

无效类型

+

+
+ +## OmxIndexCodecExType + +``` +enum OmxIndexCodecExType +``` + +**描述:** + +枚举Codec扩展index + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

OMX_IndexExtBufferTypeStartUnused

+

BufferType 扩展index

+

+

OMX_IndexParamSupportBufferType

+

SupportBuffer类型

+

+

OMX_IndexParamUseBufferType

+

UseBuffer类型

+

+

OMX_IndexParamGetBufferHandleUsage

+

GetBufferHandleUsage类型

+

+
+ +## OmxVideoExType + +``` +enum OmxVideoExType +``` + +**描述:** + +枚举Codec扩展编码类型 + + + + + + + + + + +

枚举值

+

描述

+

OMX_VIDEO_CodingHEVC

+

HEVC编码类型

+

+
+ +## Profile + +``` +enum Profile +``` + +**描述:** + +枚举Codec规格 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

INVALID_PROFILE

+

无效的规格

+

+

AAC_LC_PROFILE

+

AAC低复杂度规格

+

+

AAC_MAIN_PROFILE

+

AAC主规格

+

+

AAC_HE_V1_PROFILE

+

AAC高效率和频带重现规格,又称为HEAAC,AAC+,或者AACPlusV1

+

+

AAC_HE_V2_PROFILE

+

AAC高效率和频带重现以及变量立体声规格,又称为AAC++或者AACPlusV2

+

+

AAC_LD_PROFILE

+

AAC低延迟规格

+

+

AAC_ELD_PROFILE

+

AAC增强型低延迟规格

+

+

AVC_BASELINE_PROFILE

+

H.264低规格

+

+

AVC_MAIN_PROFILE

+

H.264主规格

+

+

AVC_HIGH_PROFILE

+

H.264高规格

+

+

HEVC_MAIN_PROFILE

+

H.265主规格

+

+

HEVC_MAIN_10_PROFILE

+

H.265 10比特主规格

+

+
+ +## ShareMemTypes + +``` +enum ShareMemTypes +``` + +**描述:** + +枚举共享内存类型 + + + + + + + + + + + + + +

枚举值

+

描述

+

READ_WRITE_TYPE

+

可读可写的共享内存类型

+

+

READ_ONLY_TYPE

+

可读的共享内存类型

+

+
+ +## **函数说明** + +## CodecCallbackTypeGet\(\) + +``` +struct CodecCallbackType* CodecCallbackTypeGet (struct HdfRemoteService * remote) +``` + +**描述:** + +实例化CodecCallbackType对象。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

remote

+

输入参数,指向HdfRemoteService的指针。

+
+ +**返回:** + +实例化CodecCallbackType对象。 + +**Since:** + +3.1 + +## CodecCallbackTypeRelease\(\) + +``` +void CodecCallbackTypeRelease (struct CodecCallbackType * instance) +``` + +**描述:** + +释放CodecCallbackType对象。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

instance

+

输入参数,指向CodecCallbackType实例的指针。

+
+ +**Since:** + +3.1 + +## CodecComponentManagerRelease\(\) + +``` +void CodecComponentManagerRelease (void ) +``` + +**描述:** + +释放CodecComponentManager对象。 + +**Since:** + +3.1 + +## CodecComponentTypeGet\(\) + +``` +struct CodecComponentType* CodecComponentTypeGet (struct HdfRemoteService * remote) +``` + +**描述:** + +实例化CodecComponentType对象。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

remote

+

输入参数,指向RemoteService的指针。

+
+ +**返回:** + +实例化的CodecComponentType对象。 + +**Since:** + +3.1 + +## CodecComponentTypeRelease\(\) + +``` +void CodecComponentTypeRelease (struct CodecComponentType * instance) +``` + +**描述:** + +释放CodecComponentType对象。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

instance

+

输入参数,指向CodecComponentType实例的指针。

+
+ +**Since:** + +3.1 + +## GetCodecComponentManager\(\) + +``` +struct CodecComponentManager* GetCodecComponentManager (void ) +``` + +**描述:** + +实例化CodecComponentManager对象。 + +**返回:** + +实例化的CodecComponentManager对象。 + +**Since:** + +3.1 + +## **变量说明** + +## AllocateBuffer + +``` +int32_t(* CodecComponentType::AllocateBuffer) (struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer) +``` + +**描述:** + +向组件申请端口buffer。 + +向组件申请分配新的buffer,此接口在以下情况下使用: + +- 当组件处于OMX\_StateLoaded状态,并且用户已经向组件发送OMX\_StateIdle状态转换请求。 +- 当组件处于OMX\_StateWaitForResources状态,所需的资源可用,并且组件已准备好进入OMX\_StateIdle状态。 +- 在去使能端口上,组件处于OMX\_StateExecuting、OMX\_StatePause或OMX\_StateIdle状态。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+

portIndex

+

输入参数,指定的组件端口。

+

buffer

+

输入输出参数,指向要申请的buffer结构体OmxCodecBuffer指针。

+
+ +**返回:** + +HDF\_SUCCESS 表示申请buffer成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,申请buffer失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,申请buffer失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,申请buffer失败。 + +**Since:** + +3.1 + +## ComponentDeInit + +``` +int32_t(* CodecComponentType::ComponentDeInit) (struct CodecComponentType *self) +``` + +**描述:** + +组件去初始化。 + +调用此接口使组件去初始化,当组件处于OMX\_StateLoaded状态时,将直接关闭组件。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+
+ +**返回:** + +HDF\_SUCCESS 表示去初始化成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,去初始化失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,去初始化失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,去初始化失败。 + +**Since:** + +3.1 + +## ComponentRoleEnum + +``` +int32_t(* CodecComponentType::ComponentRoleEnum) (struct CodecComponentType *self, uint8_t *role, uint32_t roleLen, uint32_t index) +``` + +**描述:** + +获取组件角色。 + +根据组件角色索引获取对应组件角色。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+

role

+

输出参数,角色名称。

+

roleLen

+

输入参数,role字节数。

+

index

+

输入参数,角色的索引,一个组件可能支持多种角色。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取角色成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,获取角色失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,获取角色失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,获取角色失败。 + +**Since:** + +3.1 + +## ComponentTunnelRequest + +``` +int32_t(* CodecComponentType::ComponentTunnelRequest) (struct CodecComponentType *self, uint32_t port, int32_t tunneledComp, uint32_t tunneledPort, struct OMX_TUNNELSETUPTYPE *tunnelSetup) +``` + +**描述:** + +设置组件采用Tunnel方式通信。 + +当组件处于OMX\_StateLoaded 状态时,用户通过调用此接口确定组件是否可以进行Tunnel传输,如果可以则设置组件的Tunnel传输。 + +**参数:** + + + + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+

port

+

输入参数,组件设置的端口。

+

tunneledComp

+

输入参数,组件的tunnel handle。

+

tunneledPort

+

输入参数,组件用来Tunnel通信的端口。

+

tunnelSetup

+

输入输出参数,指向Tunnel设置的结构体OMX_TUNNELSETUPTYPE指针。

+
+ +**返回:** + +HDF\_SUCCESS 表示设置成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,设置失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,设置失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,设置失败。 + +**Since:** + +3.1 + +## EmptyBufferDone + +``` +int32_t(* CodecCallbackType::EmptyBufferDone) (struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, const struct OmxCodecBuffer *buffer) +``` + +**描述:** + +上报输入buffer编码或者解码处理完毕。 + +组件运行过程中向上报告输入buffer已经使用完毕。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的callback指针。

+

appData

+

输入参数,上层数据,通常是设置回调时给入的上层实例。

+

appDataLen

+

输入参数,appData字节数。

+

buffer

+

输入参数,已经处理完毕的输入buffer信息OmxCodecBuffer

+
+ +**返回:** + +HDF\_SUCCESS 表示上报成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,上报失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,上报失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,上报失败。 + +**Since:** + +3.1 + +## EmptyThisBuffer + +``` +int32_t(* CodecComponentType::EmptyThisBuffer) (struct CodecComponentType *self, const struct OmxCodecBuffer *buffer) +``` + +**描述:** + +编解码输入待处理buffer。 + +此接口在组件处于OMX\_StateExecuting或者OMX\_StatePause状态时调用。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+

buffer

+

输入参数,指向OmxCodecBuffer结构体的指针。

+
+ +**返回:** + +HDF\_SUCCESS 表示输入buffer成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,输入buffer失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,输入buffer失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,输入buffer失败。 + +**Since:** + +3.1 + +## EventHandler + +``` +int32_t(* CodecCallbackType::EventHandler) (struct CodecCallbackType *self, enum OMX_EVENTTYPE event, struct EventInfo *info) +``` + +**描述:** + +事件上报。 + +组件运行过程中向上报告错误事件、命令完成事件、端口设置更改事件等。 + +- 当eEvent为OMX\_EventCmdComplete,eventData为NULL,data1数据为OMX\_COMMANDTYPE,此时,当data1为OMX\_CommandStateSet,data2表示状态,其它情况下,data2表示端口。 +- 当event为OMX\_EventError时,data1表示错误码,data2和eventData都为0。 +- 当event为OMX\_EventMark时,data1和data2都为0,eventData指向mark指针。 +- 当event为OMX\_EventPortSettingsChanged时,data1表示端口,data2和eventData为0。 +- 当event为OMX\_EventBufferFlag时,data1表示端口,data2表示flag,eventData为0。 +- 当event为OMX\_EventResourcesAcquired或OMX\_EventDynamicResourcesAvailable时,data1、data2和eventData都为0。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的callback指针。

+

event

+

输入参数,要通知的事件类型,详见OMX_EVENTTYPE

+

info

+

输入参数,指向事件上报携带的信息指针,详见EventInfo

+
+ +**返回:** + +HDF\_SUCCESS 表示事件上报成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,事件上报失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,事件上报失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,事件上报失败。 + +**Since:** + +3.1 + +## FillBufferDone + +``` +int32_t(* CodecCallbackType::FillBufferDone) (struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, struct OmxCodecBuffer *buffer) +``` + +**描述:** + +上报输出buffer填充完毕。 + +组件运行过程中向上报告输出buffer已经填充完毕。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的callback指针。

+

appData

+

输入参数,上层数据,通常是设置回调时给入的上层实例。

+

appDataLen

+

输入参数,appData字节数。

+

buffer

+

输入参数,已经填充完毕的buffer信息OmxCodecBuffer

+
+ +**返回:** + +HDF\_SUCCESS 表示上报成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,上报失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,上报失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,上报失败。 + +**Since:** + +3.1 + +## FillThisBuffer + +``` +int32_t(* CodecComponentType::FillThisBuffer) (struct CodecComponentType *self, const struct OmxCodecBuffer *buffer) +``` + +**描述:** + +编解码输出填充buffer。 + +此接口在组件处于OMX\_StateExecuting或者OMX\_StatePause状态时调用。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+

buffer

+

输入参数,指向OmxCodecBuffer结构体的指针。

+
+ +**返回:** + +HDF\_SUCCESS 表示填充buffer成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,填充buffer失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,填充buffer失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,填充buffer失败。 + +**Since:** + +3.1 + +## FreeBuffer + +``` +int32_t(* CodecComponentType::FreeBuffer) (struct CodecComponentType *self, uint32_t portIndex, const struct OmxCodecBuffer *buffer) +``` + +**描述:** + +释放buffer。 + +此接口在以下情况下使用: + +- 当组件处于OMX\_StateIdle状态,并且已经向组件发送OMX\_StateLoaded状态转换请求。 +- 在去使能端口上,组件处于OMX\_StateExecuting、OMX\_StatePause或OMX\_StateIdle时调用。 +- 此接口调用可随时进行,但是如果未在上述情况下执行,可能会导致组件上报OMX\_ErrorPortUnpopulated事件。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+

portIndex

+

输入参数,指定的组件端口。

+

buffer

+

输入参数,指向OmxCodecBuffer结构体的指针。

+
+ +**返回:** + +HDF\_SUCCESS 表示释放buffer成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,释放buffer失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,释放buffer失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,释放buffer失败。 + +**Since:** + +3.1 + +## GetComponentVersion + +``` +int32_t(* CodecComponentType::GetComponentVersion) (struct CodecComponentType *self, struct CompVerInfo *verInfo) +``` + +**描述:** + +获取Codec组件版本号。 + +通过查询组件,返回组件版本信息。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+

verInfo

+

输出参数,指向组件版本信息的指针,详见CompVerInfo

+
+ +**返回:** + +HDF\_SUCCESS 表示获取版本号成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,获取版本号失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,获取版本号失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,获取版本号失败。 + +**Since:** + +3.1 + +## GetConfig + +``` +int32_t(* CodecComponentType::GetConfig) (struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen) +``` + +**描述:** + +获取组件的配置结构。 + +加载组件后可以随时调用此接口获取组件的配置。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+

index

+

输入参数,待填充结构的索引,详见OMX_INDEXTYPE

+

cfgStruct

+

输入输出参数,指向由组件填充的应用程序分配的结构体指针。

+

cfgStructLen

+

输入参数,上层传入的cfgStruct字节数。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取配置成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,获取配置失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,获取配置失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,获取配置失败。 + +**Since:** + +3.1 + +## GetExtensionIndex + +``` +int32_t(* CodecComponentType::GetExtensionIndex) (struct CodecComponentType *self, const char *paramName, uint32_t *indexType) +``` + +**描述:** + +根据字符串获取组件的扩展索引。 + +将扩展字符串转换为Openmax IL结构索引。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+

paramName

+

输入参数,组件用来转换为配置索引的字符串。

+

indexType

+

输出参数,由paramName转换的配置索引,详见OMX_INDEXTYPE

+
+ +**返回:** + +HDF\_SUCCESS 表示获取扩展索引成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,获取扩展索引失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,获取扩展索引失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,获取扩展索引失败。 + +**Since:** + +3.1 + +## GetParameter + +``` +int32_t(* CodecComponentType::GetParameter) (struct CodecComponentType *self, uint32_t paramIndex, int8_t *paramStruct, uint32_t paramStructLen) +``` + +**描述:** + +获取组件参数设置。 + +当组件处于除了OMX\_StateInvalid(组件状态异常)之外的其他状态,用户可通过此接口获取组件参数。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+

paramIndex

+

输入参数,待填充结构的索引,详见OMX_INDEXTYPE

+

paramStruct

+

输入输出参数,指向由组件填充的应用程序分配的结构体指针。

+

paramStructLen

+

输入参数,paramStruct字节数。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取参数成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,获取参数失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,获取参数失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,获取参数失败。 + +**Since:** + +3.1 + +## GetState + +``` +int32_t(* CodecComponentType::GetState) (struct CodecComponentType *self, enum OMX_STATETYPE *state) +``` + +**描述:** + +获取组件的当前状态。 + +用户可调用此接口获取组件的当前状态,组件状态详见**OMX\_STATETYPE**。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+

state

+

输出参数,指向获取到的状态指针,组件状态详见OMX_STATETYPE

+
+ +**返回:** + +HDF\_SUCCESS 表示获取状态成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,获取状态失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,获取状态失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,获取状态失败。 + +**Since:** + +3.1 + +## remote + +``` +struct HdfRemoteService* CodecCallbackType::remote +``` + +**描述:** + +指向HdfRemoteService的指针。 + +**Since:** + +3.1 + +## SendCommand + +``` +int32_t(* CodecComponentType::SendCommand) (struct CodecComponentType *self, enum OMX_COMMANDTYPE cmd, uint32_t param, int8_t *cmdData, uint32_t cmdDataLen) +``` + +**描述:** + +发送命令给组件。 + +发送命令给组件,当命令为设置状态时,会有事件回调通知结果给上层,其他命令则没有事件上报。 + +**参数:** + + + + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+

cmd

+

输入参数,组件要执行的命令,详见OMX_COMMANDTYPE

+

param

+

输入参数,组件要执行的命令携带的参数。

+
  • 当cmd为OMX_CommandStateSet时,param的值详见OMX_STATETYPE
  • 当cmd为OMX_CommandFlush、OMX_CommandPortDisable、OMX_CommandPortEnable、OMX_CommandMarkBuffer时,param为目标端口。
+

cmdData

+

输入参数,当cmd为OMX_CommandMarkBuffer时,指向OMX_MARKTYPE结构体指针。

+

cmdDataLen

+

输入参数,上层传递的cmdData字节数。

+
+ +**返回:** + +HDF\_SUCCESS 表示发送命令成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,发送命令失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,发送命令失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,发送命令失败。 + +**Since:** + +3.1 + +## SetCallbacks + +``` +int32_t(* CodecComponentType::SetCallbacks) (struct CodecComponentType *self, struct CodecCallbackType *callback, int8_t *appData, uint32_t appDataLen) +``` + +**描述:** + +设置Codec组件的回调函数。 + +当组件处于OMX\_StateLoaded状态时,使用此回调函数向上通知事件以及上报可用的输入输出信息。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+

callback

+

输入参数,指向回调函数CodecCallbackType对象指针。

+

appData

+

输入参数,指向应用程序定义的值的指针,该值将在回调期间返回。

+

appDataLen

+

输入参数,上层传递的appData字节数。

+
+ +**返回:** + +HDF\_SUCCESS 表示设置回调成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,设置回调失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,设置回调失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,设置回调失败。 + +**Since:** + +3.1 + +## SetConfig + +``` +int32_t(* CodecComponentType::SetConfig) (struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen) +``` + +**描述:** + +设置组件的配置。 + +加载组件后可以随时调用此接口设置组件的配置。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+

index

+

输入参数,要设置的结构索引,详见OMX_INDEXTYPE

+

cfgStruct

+

输入参数,指向组件用于初始化的应用程序分配结构的指针。

+

cfgStructLen

+

输入参数,cfgStruct字节数。

+
+ +**返回:** + +HDF\_SUCCESS 表示设置配置成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,设置失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,设置失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,设置失败。 + +**Since:** + +3.1 + +## SetParameter + +``` +int32_t(* CodecComponentType::SetParameter) (struct CodecComponentType *self, uint32_t index, int8_t *paramStruct, uint32_t paramStructLen) +``` + +**描述:** + +设置组件需要的参数。 + +当组件处于OMX\_StateLoaded、OMX\_StateWaitForResources状态或者端口是去使能状态,用户可通过此接口设置组件参数。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+

index

+

输入参数,要设置的结构索引,详见OMX_INDEXTYPE

+

paramStruct

+

输入参数,指向组件用于初始化的应用程序分配结构的指针。

+

paramStructLen

+

输入参数,paramStruct字节数。

+
+ +**返回:** + +HDF\_SUCCESS 表示设置参数成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,设置参数失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,设置参数失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,设置参数失败。 + +**Since:** + +3.1 + +## UseBuffer + +``` +int32_t(* CodecComponentType::UseBuffer) (struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer) +``` + +**描述:** + +指定组件端口的buffer。 + +此接口在以下情况下使用: + +- 当组件处于OMX\_StateLoaded状态,并且用户已经向组件发送OMX\_StateIdle状态转换请求。 +- 当组件处于OMX\_StateWaitForResources状态,所需的资源可用,并且组件已准备好进入OMX\_StateIdle状态。 +- 在去使能端口上,组件处于OMX\_StateExecuting、OMX\_StatePause或OMX\_StateIdle状态。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+

portIndex

+

输入参数,指定的组件端口。

+

buffer

+

输入输出参数,指向要使用的buffer结构体OmxCodecBuffer指针。

+
+ +**返回:** + +HDF\_SUCCESS 表示指定成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,指定失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,指定失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,指定失败。 + +**Since:** + +3.1 + +## UseEglImage + +``` +int32_t(* CodecComponentType::UseEglImage) (struct CodecComponentType *self, struct OmxCodecBuffer *buffer, uint32_t portIndex, int8_t *eglImage, uint32_t eglImageLen) +``` + +**描述:** + +使用已在EGL中申请的空间。 + +此接口在以下情况下使用: + +- 当组件处于OMX\_StateLoaded状态,并且已经向组件发送OMX\_StateIdle状态转换请求。 +- 当组件处于OMX\_StateWaitForResources状态,所需的资源可用,并且组件已准备好进入OMX\_StateIdle状态。 +- 在去使能端口上,组件处于OMX\_StateExecuting、OMX\_StatePause或OMX\_StateIdle状态。 + +**参数:** + + + + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

self

+

输入参数,指向要操作的Codec组件指针。

+

buffer

+

输入输出参数,指向OmxCodecBuffer结构体的指针。

+

portIndex

+

输入参数,指定的组件端口。

+

eglImage

+

输入参数,EGL申请的图像指针。

+

eglImageLen

+

输入参数,eglImage字节数。

+
+ +**返回:** + +HDF\_SUCCESS 表示使用成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,使用失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,使用失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,使用失败。 + +**Since:** + +3.1 + diff --git a/zh-cn/device-dev/api/toctopics/_codec_callback_type.md b/zh-cn/device-dev/api/toctopics/_codec_callback_type.md new file mode 100644 index 0000000000..9dbfa51de3 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_codec_callback_type.md @@ -0,0 +1,54 @@ +# CodecCallbackType + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

remote

+

指向HdfRemoteService的指针。 更多...

+

( EventHandler )(struct CodecCallbackType *self, enum OMX_EVENTTYPE event, struct EventInfo *info)

+

事件上报。 更多...

+

( EmptyBufferDone )(struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, const struct OmxCodecBuffer *buffer)

+

上报输入buffer编码或者解码处理完毕。 更多...

+

( FillBufferDone )(struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, struct OmxCodecBuffer *buffer)

+

上报输出buffer填充完毕。 更多...

+
+ +## **详细描述** + +Codec回调接口定义。 + +提供了以下3种回调函数: + +- 组件错误事件、命令完成事件、端口设置等事件回调,详见EventHandler。 +- 输入端口处理完buffer回调,详见EmptyBufferDone。 +- 输出端口填充完buffer回调,详见FillBufferDone。 通过以下两种方式注册回调: +- 创建组件时,通过CreateComponent方法。 +- 当组件处于OMX\_StateLoaded状态时,通过SetCallbacks方法注册回调。 + diff --git a/zh-cn/device-dev/api/toctopics/_codec_comp_capability.md b/zh-cn/device-dev/api/toctopics/_codec_comp_capability.md new file mode 100644 index 0000000000..d51761b301 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_codec_comp_capability.md @@ -0,0 +1,178 @@ +# CodecCompCapability + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

role

+

媒体类型。

+

type

+

编解码类型。

+

compName [NAME_LENGTH]

+

编解码组件名称。

+

supportProfiles [PROFILE_NUM]

+

支持的profiles,详见Profile

+

maxInst

+

最大实例。

+

isSoftwareCodec

+

软件编解码还是硬件编解码。

+

processModeMask

+

编解码处理模式掩码,详见CodecProcessMode

+

capsMask

+

编解码播放能力掩码,详见CodecCapsMask

+

bitRate

+

支持的码率范围。

+

port

+

支持的音视频编解码能力。

+
+ +## **详细描述** + +定义Codec编解码能力。 + +## **类成员变量说明** + +## bitRate + +``` +RangeValue CodecCompCapability::bitRate +``` + +**描述:** + +支持的码率范围 + +## capsMask + +``` +uint32_t CodecCompCapability::capsMask +``` + +**描述:** + +编解码播放能力掩码,详见[CodecCapsMask](_codec.md#ga9e2fbfb8a5881de2f495933f90f23b3f). + +## compName + +``` +char CodecCompCapability::compName[NAME_LENGTH] +``` + +**描述:** + +编解码组件名称 + +## isSoftwareCodec + +``` +bool CodecCompCapability::isSoftwareCodec +``` + +**描述:** + +软件编解码还是硬件编解码 + +## maxInst + +``` +int32_t CodecCompCapability::maxInst +``` + +**描述:** + +最大实例 + +## port + +``` +PortCap CodecCompCapability::port +``` + +**描述:** + +支持的音视频编解码能力 + +## processModeMask + +``` +int32_t CodecCompCapability::processModeMask +``` + +**描述:** + +编解码处理模式掩码,详见[CodecProcessMode](_codec.md#ga5bec468886b760c542669b1615613dc4). + +## role + +``` +AvCodecRole CodecCompCapability::role +``` + +**描述:** + +媒体类型 + +## supportProfiles + +``` +int32_t CodecCompCapability::supportProfiles[PROFILE_NUM] +``` + +**描述:** + +支持的profiles,详见[Profile](_codec.md#ga85b10143618f300ff4f5bc6d45c72c01) + +## type + +``` +CodecType CodecCompCapability::type +``` + +**描述:** + +编解码类型 + diff --git a/zh-cn/device-dev/api/toctopics/_codec_component_manager.md b/zh-cn/device-dev/api/toctopics/_codec_component_manager.md new file mode 100644 index 0000000000..797864db65 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_codec_component_manager.md @@ -0,0 +1,211 @@ +# CodecComponentManager + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

(GetComponentNum )()

+

获取Codec编解码组件数量。 更多...

+

( GetComponentCapabilityList )(CodecCompCapability *capList, int32_t count)

+

获取编解码能力集表。 更多...

+

( CreateComponent )(struct CodecComponentType **component, char *compName, void *appData, int32_t appDataSize, struct CodecCallbackType *callbacks)

+

创建Codec组件实例。 更多...

+

( DestoryComponent )(struct CodecComponentType *component)

+

销毁组件实例。 更多...

+
+ +## **详细描述** + +Codec组件管理类接口定义。 + +主要提供以下功能: + +- 获取Codec编解码组件数量以及编解码能力集表。 +- 创建/销毁Codec组件。 + +## **类成员变量说明** + +## CreateComponent + +``` +int32_t(* CodecComponentManager::CreateComponent) (struct CodecComponentType **component, char *compName, void *appData, int32_t appDataSize, struct CodecCallbackType *callbacks) +``` + +**描述:** + +创建Codec组件实例。 + +根据组件名称创建Codec组件实例。 + +**参数:** + + + + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

component

+

输出参数,指向Codec组件的指针。

+

compName

+

输入参数,组件名称。

+

appData

+

输入参数,指向应用程序定义的值的指针,该值将在回调期间返回。

+

appDataSize

+

输入参数,appData字节数。

+

callbacks

+

输入参数,回调接口,指向OMX_CALLBACKTYPE结构的指针,详见CodecCallbackType

+
+ +**返回:** + +HDF\_SUCCESS 表示创建组件成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,创建组件失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,创建组件失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,创建组件失败。 + +## DestoryComponent + +``` +int32_t(* CodecComponentManager::DestoryComponent) (struct CodecComponentType *component) +``` + +**描述:** + +销毁组件实例。 + +销毁指定的Codec组件。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

component

+

输入参数,需要销毁的Codec组件。

+
+ +**返回:** + +HDF\_SUCCESS 表示销毁组件成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,销毁组件失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,销毁组件失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,销毁组件失败。 + +## GetComponentCapabilityList + +``` +int32_t(* CodecComponentManager::GetComponentCapabilityList) (CodecCompCapability *capList, int32_t count) +``` + +**描述:** + +获取编解码能力集表。 + +用户可通过此接口了解Codec模块提供了哪些编解码能力,对应的能力体现在[CodecCompCapability](_codec_comp_capability.md)结构体。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

capList

+

输出参数,返回全部组件的能力集表CodecCompCapability

+

count

+

输入参数,编解码组件数量,由GetComponentNum获得。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取能力集表成功。 + +HDF\_ERR\_INVALID\_PARAM 表示参数无效,获取能力集表失败。 + +HDF\_ERR\_INVALID\_OBJECT 表示对象无效,获取能力集表失败。 + +HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,获取能力集表失败。 + +## GetComponentNum + +``` +int32_t(* CodecComponentManager::GetComponentNum) () +``` + +**描述:** + +获取Codec编解码组件数量。 + +通过此接口获取Codec编解码组件数量,用来获取全部编解码能力集。 + +**返回:** + +Codec编解码组件数量。 + diff --git a/zh-cn/device-dev/api/toctopics/_codec_component_type.md b/zh-cn/device-dev/api/toctopics/_codec_component_type.md new file mode 100644 index 0000000000..d34fcae662 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_codec_component_type.md @@ -0,0 +1,125 @@ +# CodecComponentType + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

( GetComponentVersion )(struct CodecComponentType *self, struct CompVerInfo *verInfo)

+

获取Codec组件版本号。 更多...

+

( SendCommand )(struct CodecComponentType *self, enum OMX_COMMANDTYPE cmd, uint32_t param, int8_t *cmdData, uint32_t cmdDataLen)

+

发送命令给组件。 更多...

+

( GetParameter )(struct CodecComponentType *self, uint32_t paramIndex, int8_t *paramStruct, uint32_t paramStructLen)

+

获取组件参数设置。 更多...

+

( SetParameter )(struct CodecComponentType *self, uint32_t index, int8_t *paramStruct, uint32_t paramStructLen)

+

设置组件需要的参数。 更多...

+

( GetConfig )(struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen)

+

获取组件的配置结构。 更多...

+

( SetConfig )(struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen)

+

设置组件的配置。 更多...

+

( GetExtensionIndex )(struct CodecComponentType *self, const char *paramName, uint32_t *indexType)

+

根据字符串获取组件的扩展索引。 更多...

+

( GetState )(struct CodecComponentType *self, enum OMX_STATETYPE *state)

+

获取组件的当前状态。 更多...

+

( ComponentTunnelRequest )(struct CodecComponentType *self, uint32_t port, int32_t tunneledComp, uint32_t tunneledPort, struct OMX_TUNNELSETUPTYPE *tunnelSetup)

+

设置组件采用Tunnel方式通信。 更多...

+

( UseBuffer )(struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer)

+

指定组件端口的buffer。 更多...

+

( AllocateBuffer )(struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer)

+

向组件申请端口buffer。 更多...

+

( FreeBuffer )(struct CodecComponentType *self, uint32_t portIndex, const struct OmxCodecBuffer *buffer)

+

释放buffer。 更多...

+

( EmptyThisBuffer )(struct CodecComponentType *self, const struct OmxCodecBuffer *buffer)

+

编解码输入待处理buffer。 更多...

+

( FillThisBuffer )(struct CodecComponentType *self, const struct OmxCodecBuffer *buffer)

+

编解码输出填充buffer。 更多...

+

( SetCallbacks )(struct CodecComponentType *self, struct CodecCallbackType *callback, int8_t *appData, uint32_t appDataLen)

+

设置Codec组件的回调函数。 更多...

+

( ComponentDeInit )(struct CodecComponentType *self)

+

组件去初始化。 更多...

+

( UseEglImage )(struct CodecComponentType *self, struct OmxCodecBuffer *buffer, uint32_t portIndex, int8_t *eglImage, uint32_t eglImageLen)

+

使用已在EGL中申请的空间。 更多...

+

( ComponentRoleEnum )(struct CodecComponentType *self, uint8_t *role, uint32_t roleLen, uint32_t index)

+

获取组件角色。 更多...

+
+ +## **详细描述** + +Codec组件接口定义。 + +主要提供以下功能: + +- 获取组件的版本。 +- 组件参数配置的获取和设置。 +- 发送命令至组件及获取组件状态。 +- 设置回调函数。 +- 设置/释放组件使用的buffer。 +- 编解码输入输出buffer处理 具体方法使用详见函数说明。 + diff --git a/zh-cn/device-dev/api/toctopics/_comp_ver_info.md b/zh-cn/device-dev/api/toctopics/_comp_ver_info.md new file mode 100644 index 0000000000..26b6022446 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_comp_ver_info.md @@ -0,0 +1,88 @@ +# CompVerInfo + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

compName [NAME_LENGTH]

+

组件名称

+

compUUID [UUID_LENGTH]

+

组件的UUID标识符

+

compVersion

+

OMX组件版本信息

+

specVersion

+

构建组件所依据的规范的版本信息

+
+ +## **Details** + +## **详细描述** + +## **类成员变量说明** + +## compName + +``` +char CompVerInfo::compName[NAME_LENGTH] +``` + +**描述:** + +组件名称 + +## compUUID + +``` +uint8_t CompVerInfo::compUUID[UUID_LENGTH] +``` + +**描述:** + +组件的UUID标识符 + +## compVersion + +``` +union OMX_VERSIONTYPE CompVerInfo::compVersion +``` + +**描述:** + +OMX组件版本信息 + +## specVersion + +``` +union OMX_VERSIONTYPE CompVerInfo::specVersion +``` + +**描述:** + +构建组件所依据的规范的版本信息 + diff --git a/zh-cn/device-dev/api/toctopics/_credential_info.md b/zh-cn/device-dev/api/toctopics/_credential_info.md new file mode 100644 index 0000000000..05ea67c788 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_credential_info.md @@ -0,0 +1,141 @@ +# CredentialInfo + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

credentialId

+

认证凭据ID。

+

index

+

用户认证框架的执行器索引。

+

templateId

+

认证凭据模版ID。

+

authType

+

用户认证凭据类型AuthType}。

+

executorType

+

执行器类型。

+

executorId

+

既定用户认证凭据类型的执行器ID。

+

extraInfo

+

其他相关信息,用于支持信息扩展。

+
+ +## **详细描述** + +认证凭据信息。 + +**自动:** + +3.2 + +**Version:** + +1.0 + +## **类成员变量说明** + +## authType + +``` +enum AuthType CredentialInfo::authType +``` + +**描述:** + +用户认证凭据类型。 + +## credentialId + +``` +unsigned long CredentialInfo::credentialId +``` + +**描述:** + +认证凭据ID。 + +## executorId + +``` +unsigned int CredentialInfo::executorId +``` + +**描述:** + +既定用户认证凭据类型的执行器ID。 + +## executorType + +``` +unsigned int CredentialInfo::executorType +``` + +**描述:** + +执行器类型。 + +## extraInfo + +``` +unsigned char [] CredentialInfo::extraInfo +``` + +**描述:** + +其他相关信息,用于支持信息扩展。 + +## index + +``` +unsigned long CredentialInfo::index +``` + +**描述:** + +用户认证框架的执行器索引。 + +## templateId + +``` +unsigned long CredentialInfo::templateId +``` + +**描述:** + +认证凭据模版ID。 + diff --git a/zh-cn/device-dev/api/toctopics/_d_a_c.md b/zh-cn/device-dev/api/toctopics/_d_a_c.md new file mode 100644 index 0000000000..ee6e37795c --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_d_a_c.md @@ -0,0 +1,240 @@ +# DAC + +## **汇总** + +## 文件 + + + + + + + + + + +

文件

+

描述

+

dac_if.h

+

声明标准DAC接口函数。

+
+ +## 类 + + + + + + + + + + +

+

描述

+

DacIoMsg

+

DAC设备信息传输结构体 更多...

+
+ +## 函数 + + + + + + + + + + + + + + + + +

函数

+

描述

+

DacOpen (uint32_t number)

+

获取DAC控制器的句柄。 更多...

+

DacClose (DevHandle handle)

+

释放DAC控制器的句柄。 更多...

+

DacWrite (DevHandle handle, uint32_t channel, uint32_t val)

+

启动DAC设备进行传输,将目标值写入指定的DAC通道。 更多...

+
+ +## 变量 + + + + + + + + + + + + + +

变量 名称

+

描述

+

DacIoMsg::number

+

DAC设备号

+

DacIoMsg::channel

+

DAC设备通道号

+
+ +## **详细描述** + +提供数模转换器 \(DAC\) 接口。 + +该模块允许驱动程序在DAC控制器上执行操作以访问DAC通道上的设备,包括创建和销毁DAC控制器句柄和写入数据。 + +**Since:** + +3.1 + +## **函数说明** + +## DacClose\(\) + +``` +void DacClose (DevHandle handle) +``` + +**描述:** + +释放DAC控制器的句柄。 + +如果不再需要访问DAC控制器,则应调用该函数关闭其句柄,以释放未使用的内存资源。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

handle

+

表示指向DAC控制器的设备句柄的指针。

+
+ +**Since:** + +3.1 + +## DacOpen\(\) + +``` +DevHandle DacOpen (uint32_t number) +``` + +**描述:** + +获取DAC控制器的句柄。 + +您必须在访问DAC设备之前调用此函数。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

number

+

表示DAC控制器ID。

+
+ +**返回:** + +DAC控制器的DevHandle指针 表示操作成功。 + +NULL 表示操作失败。 + +**Since:** + +3.1 + +## DacWrite\(\) + +``` +int32_t DacWrite (DevHandle handle, uint32_t channel, uint32_t val ) +``` + +**描述:** + +启动DAC设备进行传输,将目标值写入指定的DAC通道。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

表示通过DacOpen获取的DAC控制器设备句柄的指针。

+

channel

+

表示DAC传输消息所通过的通道。

+

val

+

表示设定的目标值。

+
+ +**返回:** + +0 表示操作成功。 + +负值 表示操作失败。 + +**Since:** + +3.1 + +## **变量说明** + +## channel + +``` +uint32_t DacIoMsg::channel +``` + +**描述:** + +DAC设备通道号 + +## number + +``` +uint32_t DacIoMsg::number +``` + +**描述:** + +DAC设备号 + diff --git a/zh-cn/device-dev/api/toctopics/_dac_io_msg.md b/zh-cn/device-dev/api/toctopics/_dac_io_msg.md new file mode 100644 index 0000000000..8285c2142a --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_dac_io_msg.md @@ -0,0 +1,36 @@ +# DacIoMsg + +## **概述** + +**所属模块:** + +[DAC](_d_a_c.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

number

+

DAC设备号

+

channel

+

DAC设备通道号

+
+ +## **详细描述** + +DAC设备信息传输结构体。 + diff --git a/zh-cn/device-dev/api/toctopics/_device_funcs.md b/zh-cn/device-dev/api/toctopics/_device_funcs.md new file mode 100644 index 0000000000..5c69301fe1 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_device_funcs.md @@ -0,0 +1,211 @@ +# DeviceFuncs + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

( RegHotPlugCallback )(HotPlugCallback callback, void *data)

+

注册热插拔事件回调

+

( RegDisplayVBlankCallback )(uint32_t devId, VBlankCallback callback, void *data)

+

注册VBlank事件回调。

+

( RegDisplayRefreshCallback )(uint32_t devId, RefreshCallback callback, void *data)

+

刷新请求回调。

+

( GetDisplayCapability )(uint32_t devId, DisplayCapability *info)

+

获取显示设备能力集。

+

( GetDisplaySupportedModes )(uint32_t devId, uint32_t *num, DisplayModeInfo *modes)

+

获取显示设备支持的显示模式信息。

+

( GetDisplayMode )(uint32_t devId, uint32_t *modeId)

+

获取显示设备当前的显示模式。

+

( SetDisplayMode )(uint32_t devId, uint32_t modeId)

+

设置显示设备的显示模式。

+

( GetDisplayPowerStatus )(uint32_t devId, DispPowerStatus *status)

+

获取显示设备当前的电源状态。

+

( SetDisplayPowerStatus )(uint32_t devId, DispPowerStatus status)

+

设置显示设备当前的电源状态。

+

( GetDisplayBacklight )(uint32_t devId, uint32_t *level)

+

获取显示设备当前的背光值。

+

( SetDisplayBacklight )(uint32_t devId, uint32_t level)

+

设置显示设备当前的背光值。

+

( GetDisplayProperty )(uint32_t devId, uint32_t id, uint64_t *value)

+

获取显示设备属性值。

+

( SetDisplayProperty )(uint32_t devId, uint32_t id, uint64_t value)

+

设置显示设备属性值。

+

( PrepareDisplayLayers )(uint32_t devId, bool *needFlushFb)

+

显示设备合成前准备

+

( GetDisplayCompChange )(uint32_t devId, uint32_t *num, uint32_t *Layers, int32_t *type)

+

获取显示设备合成类型有变化的layer

+

( SetDisplayClientCrop )(uint32_t devId, IRect *rect)

+

设置显示设备的裁剪区域。

+

( SetDisplayClientDestRect )(uint32_t devId, IRect *rect)

+

设置显示设备的显示区域。

+

( SetDisplayClientBuffer )(uint32_t devId, const BufferHandle *buffer, int32_t fence)

+

设置显示设备的显示缓存。

+

( SetDisplayClientDamage )(uint32_t devId, uint32_t num, IRect *rect)

+

设置显示设备的显示脏区

+

( SetDisplayVsyncEnabled )(uint32_t devId, bool enabled)

+

使能垂直同步信号。

+

( GetDisplayReleaseFence )(uint32_t devId, uint32_t *num, uint32_t *layers, int32_t *fences)

+

获取显示图层fence。

+

( GetDisplaySupportedColorGamuts )(uint32_t devId, uint32_t *num, ColorGamut *gamuts)

+

获取显示设备支持的色域信息。

+

( GetDisplayColorGamut )(uint32_t devId, ColorGamut *gamut)

+

获取显示设备当前的色域模式。

+

( SetDisplayColorGamut )(uint32_t devId, ColorGamut gamut)

+

设置显示设备当前的色域模式。

+

( GetDisplayGamutMap )(uint32_t devId, GamutMap *gamutMap)

+

获取显示设备当前的色域映射模式。

+

( SetDisplayGamutMap )(uint32_t devId, GamutMap gamutMap)

+

设置显示设备当前的色域映射模式。

+

( SetDisplayColorTransform )(uint32_t devId, const float *matrix)

+

设置显示设备当前的4x4的颜色转换矩阵。

+

( GetHDRCapabilityInfos )(uint32_t devId, HDRCapability *info)

+

获取显示设备支持的HDR属性信息。

+

( GetSupportedMetadataKey )(uint32_t devId, uint32_t *num, HDRMetadataKey *keys)

+

获取显示设备支持的 HDRMetadataKey。

+

( Commit )(uint32_t devId, int32_t *fence)

+

提交合成送显请求。

+

( InvokeDisplayCmd )(uint32_t devId,...)

+

调用显示设备命令。

+

( CreateVirtualDisplay )(uint32_t width, uint32_t height, int32_t *format, uint32_t *devId)

+

创建虚拟显示设备。

+

( DestroyVirtualDisplay )(uint32_t devId)

+

销毁虚拟显示设备。

+

( SetVirtualDisplayBuffer )(uint32_t devId, BufferHandle *buffer, int32_t fence)

+

设置虚拟屏的输出缓存。

+

( GetWriteBackFrame )(uint32_t devId, BufferHandle *buffer, int32_t *fence)

+

获取显示设备的回写帧。

+

( CreateWriteBack )(uint32_t *devId, uint32_t width, uint32_t height, int32_t *format)

+

对指定显示设备创建回写点。

+

( DestroyWriteBack )(uint32_t devId)

+

销毁指定显示设备的回写点。

+
+ +## **详细描述** + +显示设备控制接口结构体,定义显示设备控制接口函数指针。 + diff --git a/zh-cn/device-dev/api/toctopics/_device_info.md b/zh-cn/device-dev/api/toctopics/_device_info.md new file mode 100644 index 0000000000..e2627c5269 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_device_info.md @@ -0,0 +1,223 @@ +# DeviceInfo + +## **概述** + +**所属模块:** + +[Input](_input.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

devIndex

+

设备索引

+

fd

+

设备对应的文件描述符

+

service

+

设备对应的服务

+

listener

+

设备对应的事件监听器

+

devType

+

设备类型

+

powerStatus

+

电源状态

+

chipInfo [CHIP_INFO_LEN]

+

驱动芯片编码信息

+

vendorName [VENDOR_NAME_LEN]

+

模组厂商名

+

chipName [CHIP_NAME_LEN]

+

驱动芯片型号

+

devNodePath [MAX_NODE_PATH_LEN]

+

设备文件路径

+

solutionX

+

x方向分辨率

+

solutionY

+

y方向分辨率

+

callback

+

数据上报回调函数 InputReportEventCb

+
+ +## **详细描述** + +input设备基础设备信息 + +## **类成员变量说明** + +## callback + +``` +InputReportEventCb* DeviceInfo::callback +``` + +**描述:** + +数据上报回调函数 [InputReportEventCb](_input_report_event_cb.md) + +## chipInfo + +``` +char DeviceInfo::chipInfo[CHIP_INFO_LEN] +``` + +**描述:** + +驱动芯片编码信息 + +## chipName + +``` +char DeviceInfo::chipName[CHIP_NAME_LEN] +``` + +**描述:** + +驱动芯片型号 + +## devIndex + +``` +uint32_t DeviceInfo::devIndex +``` + +**描述:** + +设备索引 + +## devNodePath + +``` +char DeviceInfo::devNodePath[MAX_NODE_PATH_LEN] +``` + +**描述:** + +设备文件路径 + +## devType + +``` +uint32_t DeviceInfo::devType +``` + +**描述:** + +设备类型 + +## fd + +``` +int32_t DeviceInfo::fd +``` + +**描述:** + +设备对应的文件描述符 + +## listener + +``` +void* DeviceInfo::listener +``` + +**描述:** + +设备对应的事件监听器 + +## powerStatus + +``` +uint32_t DeviceInfo::powerStatus +``` + +**描述:** + +电源状态 + +## service + +``` +void* DeviceInfo::service +``` + +**描述:** + +设备对应的服务 + +## solutionX + +``` +uint32_t DeviceInfo::solutionX +``` + +**描述:** + +x方向分辨率 + +## solutionY + +``` +uint32_t DeviceInfo::solutionY +``` + +**描述:** + +y方向分辨率 + +## vendorName + +``` +char DeviceInfo::vendorName[VENDOR_NAME_LEN] +``` + +**描述:** + +模组厂商名 + diff --git a/zh-cn/device-dev/api/toctopics/_display.md b/zh-cn/device-dev/api/toctopics/_display.md new file mode 100644 index 0000000000..d4f484d960 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_display.md @@ -0,0 +1,5817 @@ +# Display + +## **汇总** + +## 文件 + + + + + + + + + + + + + + + + + + + + + + +

文件

+

描述

+

display_device.h

+

显示设备控制接口声明。

+

display_gfx.h

+

显示硬件加速驱动接口声明。

+

display_gralloc.h

+

显示内存驱动接口声明。

+

display_layer.h

+

显示图层驱动接口声明。

+

display_type.h

+

显示类型定义,定义显示驱动接口所使用的数据类型。

+
+ +## 类 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

描述

+

DeviceFuncs

+

显示设备控制接口结构体,定义显示设备控制接口函数指针。 更多...

+

GfxFuncs

+

显示硬件加速驱动接口结构体,定义硬件加速驱动接口函数指针。 更多...

+

GrallocFuncs

+

显示内存驱动接口结构体,定义显示内存驱动接口函数指针。 更多...

+

LayerFuncs

+

显示图层驱动接口结构体,定义显示图层驱动接口函数指针。 更多...

+

DisplayInfo

+

定义显示信息结构体 更多...

+

LayerInfo

+

定义图层信息结构体 更多...

+

LayerAlpha

+

定义图层Alpha信息的结构体 更多...

+

BufferData

+

定义一层的缓冲区数据,包括虚拟和物理内存地址。 更多...

+

LayerBuffer

+

图层Buffer,用于存放图层数据。 更多...

+

IRect

+

定义矩形信息 更多...

+

ISurface

+

用于存放窗口相关信息的结构体定义,提供给硬件加速使用,例如图像合成,位图搬移等操作。 更多...

+

ILine

+

线条描述结构体定义,用于硬件加速绘制直线。 更多...

+

ICircle

+

圆形描述结构体定义,用于硬件加速绘制圆形。 更多...

+

Rectangle

+

矩形描述结构体定义,用于硬件加速绘制矩形, 更多...

+

GfxOpt

+

图像硬件加速相关的操作选项结构体定义,用于图像硬件加速时的操作选项。 更多...

+

PropertyObject

+

定义包含名称、属性ID和值的属性对象。 更多...

+

DisplayCapability

+

定义输出性能。 更多...

+

DisplayModeInfo

+

定义输出模式信息。 更多...

+

AllocInfo

+

定义关于要分配的内存的信息。 更多...

+

HDRCapability

+

HDR属性结构体定义 更多...

+

HDRMetaData

+

HDR元数据结构体定义 更多...

+

VerifyAllocInfo

+

用于验证内存分配信息的结构体定义 更多...

+

PresentTimestamp

+

上屏时间戳结构体定义 更多...

+

__attribute__

+

扩展数据句柄结构体定义 更多...

+
+ +## 宏定义 + + + + + + + + + + +

宏定义

+

描述

+

PROPERTY_NAME_LEN 50

+

属性名字长度。

+
+ +## 类型定义 + + + + + + + + + + + + + + + + +

类型定义

+

描述

+

(HotPlugCallback) (uint32_t devId, bool connected, void *data)

+

热插拔事件回调。更多...

+

(VBlankCallback) (unsigned int sequence, uint64_t ns, void *data)

+

VBlank 事件回调。 更多...

+

(RefreshCallback) (uint32_t devId, void *data)

+

刷新请求回调。更多...

+
+ +## 枚举 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举

+

描述

+

DispErrCode { DISPLAY_SUCCESS = 0, DISPLAY_FAILURE = -1, DISPLAY_FD_ERR = -2, DISPLAY_PARAM_ERR = -3, DISPLAY_NULL_PTR = -4, DISPLAY_NOT_SUPPORT = -5, DISPLAY_NOMEM = -6, DISPLAY_SYS_BUSY = -7, DISPLAY_NOT_PERM = -8 }

+

返回值类型定义。 更多...

+

LayerType { LAYER_TYPE_GRAPHIC, LAYER_TYPE_OVERLAY, LAYER_TYPE_SDIEBAND, LAYER_TYPE_CURSOR, LAYER_TYPE_BUTT }

+

图层类型定义。 更多...

+

{ HBM_USE_CPU_READ = (1 << 0), HBM_USE_CPU_WRITE = (1 << 1), HBM_USE_MEM_MMZ = (1 << 2), HBM_USE_MEM_DMA = (1 << 3), HBM_USE_MEM_SHARE = (1 << 4), HBM_USE_MEM_MMZ_CACHE = (1 << 5), HBM_USE_MEM_FB = (1 << 6), HBM_USE_ASSIGN_SIZE = (1 << 7) }

+

缓冲区定义。更多...

+

PixelFormat { PIXEL_FMT_CLUT8 = 0, PIXEL_FMT_CLUT1, PIXEL_FMT_CLUT4, PIXEL_FMT_RGB_565, PIXEL_FMT_RGBA_5658, PIXEL_FMT_RGBX_4444, PIXEL_FMT_RGBA_4444, PIXEL_FMT_RGB_444, PIXEL_FMT_RGBX_5551, PIXEL_FMT_RGBA_5551, PIXEL_FMT_RGB_555, PIXEL_FMT_RGBX_8888, PIXEL_FMT_RGBA_8888, PIXEL_FMT_RGB_888, PIXEL_FMT_BGR_565, PIXEL_FMT_BGRX_4444, PIXEL_FMT_BGRA_4444, PIXEL_FMT_BGRX_5551, PIXEL_FMT_BGRA_5551, PIXEL_FMT_BGRX_8888, PIXEL_FMT_BGRA_8888, PIXEL_FMT_YUV_422_I, PIXEL_FMT_YCBCR_422_SP, PIXEL_FMT_YCRCB_422_SP, PIXEL_FMT_YCBCR_420_SP, PIXEL_FMT_YCRCB_420_SP, PIXEL_FMT_YCBCR_422_P, PIXEL_FMT_YCRCB_422_P, PIXEL_FMT_YCBCR_420_P, PIXEL_FMT_YCRCB_420_P, PIXEL_FMT_YUYV_422_PKG, PIXEL_FMT_UYVY_422_PKG, PIXEL_FMT_YVYU_422_PKG, PIXEL_FMT_VYUY_422_PKG, PIXEL_FMT_VENDER_MASK = 0X7FFF0000, PIXEL_FMT_BUTT = 0X7FFFFFFF }

+

像素格式类型定义。 更多...

+

TransformType { ROTATE_NONE = 0, ROTATE_90, ROTATE_180, ROTATE_270, ROTATE_BUTT }

+

图层变换类型定义。 更多...

+

BlendType { BLEND_NONE = 0, BLEND_CLEAR, BLEND_SRC, BLEND_SRCOVER, BLEND_DSTOVER, BLEND_SRCIN, BLEND_DSTIN, BLEND_SRCOUT, BLEND_DSTOUT, BLEND_SRCATOP, BLEND_DSTATOP, BLEND_ADD, BLEND_XOR, BLEND_DST, BLEND_AKS, BLEND_AKD, BLEND_BUTT }

+

显示内存类型定义。 更多...

+

RopType { ROP_BLACK = 0, ROP_NOTMERGEPEN, ROP_MASKNOTPEN, ROP_NOTCOPYPEN, ROP_MASKPENNOT, ROP_NOT, ROP_XORPEN, ROP_NOTMASKPEN, ROP_MASKPEN, ROP_NOTXORPEN, ROP_NOP, ROP_MERGENOTPEN, ROP_COPYPE, ROP_MERGEPENNOT, ROP_MERGEPEN, ROP_WHITE, ROP_BUTT }

+

硬件加速支持的ROP操作类型。 更多...

+

ColorKey { CKEY_NONE = 0, CKEY_SRC, CKEY_DST, CKEY_BUTT }

+

Color key操作类型定义,即硬件加速支持的Color key操作类型。 更多...

+

MirrorType { MIRROR_NONE = 0, MIRROR_LR, MIRROR_TB, MIRROR_BUTT }

+

硬件加速支持的镜像操作类型定义 更多...

+

Connection { CON_INVALID = 0, CONNECTED, DISCONNECTED }

+

热插拔连接类型定义 更多...

+

InterfaceType { DISP_INTF_HDMI = 0, DISP_INTF_LCD, DISP_INTF_BT1120, DISP_INTF_BT656, DISP_INTF_YPBPR, DISP_INTF_RGB, DISP_INTF_CVBS, DISP_INTF_SVIDEO, DISP_INTF_VGA, DISP_INTF_MIPI, DISP_INTF_PANEL, DISP_INTF_BUTT }

+

枚举接口类型。 更多...

+

DispPowerStatus { POWER_STATUS_ON, POWER_STATUS_STANDBY, POWER_STATUS_SUSPEND, POWER_STATUS_OFF, POWER_STATUS_BUTT }

+

枚举显示状态 更多...

+

CompositionType { COMPOSITION_CLIENT, COMPOSITION_DEVICE, COMPOSITION_CURSOR, COMPOSITION_VIDEO, COMPOSITION_DEVICE_CLEAR, COMPOSITION_CLIENT_CLEAR, COMPOSITION_TUNNEL, COMPOSITION_BUTT }

+

枚举特殊层的组合类型。 更多...

+

ColorGamut { COLOR_GAMUT_INVALID = -1, COLOR_GAMUT_NATIVE = 0, COLOR_GAMUT_SATNDARD_BT601 = 1, COLOR_GAMUT_STANDARD_BT709 = 2, COLOR_GAMUT_DCI_P3 = 3, COLOR_GAMUT_SRGB = 4, COLOR_GAMUT_ADOBE_RGB = 5, COLOR_GAMUT_DISPLAY_P3 = 6, COLOR_GAMUT_BT2020 = 7, COLOR_GAMUT_BT2100_PQ = 8, COLOR_GAMUT_BT2100_HLG = 9, COLOR_GAMUT_DISPLAY_BT2020 = 10 }

+

色域类型枚举值 更多...

+

GamutMap { GAMUT_MAP_CONSTANT = 0, GAMUT_MAP_EXPANSION = 1, GAMUT_MAP_HDR_CONSTANT = 2, GAMUT_MAP_HDR_EXPANSION = 3 }

+

枚举色域的映射类型 更多...

+

ColorDataSpace { COLOR_DATA_SPACE_UNKNOWN = 0, GAMUT_BT601 = 0x00000001, GAMUT_BT709 = 0x00000002, GAMUT_DCI_P3 = 0x00000003, GAMUT_SRGB = 0x00000004, GAMUT_ADOBE_RGB = 0x00000005, GAMUT_DISPLAY_P3 = 0x00000006, GAMUT_BT2020 = 0x00000007, GAMUT_BT2100_PQ = 0x00000008, GAMUT_BT2100_HLG = 0x00000009, GAMUT_DISPLAY_BT2020 = 0x0000000a, TRANSFORM_FUNC_UNSPECIFIED = 0x00000100, TRANSFORM_FUNC_LINEAR = 0x00000200, TRANSFORM_FUNC_SRGB = 0x00000300, TRANSFORM_FUNC_SMPTE_170M = 0x00000400, TRANSFORM_FUNC_GM2_2 = 0x00000500, TRANSFORM_FUNC_GM2_6 = 0x00000600, TRANSFORM_FUNC_GM2_8 = 0x00000700, TRANSFORM_FUNC_ST2084 = 0x00000800, TRANSFORM_FUNC_HLG = 0x00000900, PRECISION_UNSPECIFIED = 0x00010000, PRECISION_FULL = 0x00020000, PRESION_LIMITED = 0x00030000, PRESION_EXTENDED = 0x00040000, BT601_SMPTE170M_FULL = GAMUT_BT601 | TRANSFORM_FUNC_SMPTE_170M | PRECISION_FULL, BT601_SMPTE170M_LIMITED = GAMUT_BT601 | TRANSFORM_FUNC_SMPTE_170M | PRESION_LIMITED, BT709_LINEAR_FULL = GAMUT_BT709 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, BT709_LINEAR_EXTENDED = GAMUT_BT709 | TRANSFORM_FUNC_LINEAR | PRESION_EXTENDED, BT709_SRGB_FULL = GAMUT_BT709 | TRANSFORM_FUNC_SRGB | PRECISION_FULL, BT709_SRGB_EXTENDED = GAMUT_BT709 | TRANSFORM_FUNC_SRGB | PRESION_EXTENDED, BT709_SMPTE170M_LIMITED = GAMUT_BT709 | TRANSFORM_FUNC_SMPTE_170M | PRESION_LIMITED, DCI_P3_LINEAR_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, DCI_P3_GAMMA26_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_GM2_6 | PRECISION_FULL, DISPLAY_P3_LINEAR_FULL = GAMUT_DISPLAY_P3 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, DCI_P3_SRGB_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_SRGB | PRECISION_FULL, ADOBE_RGB_GAMMA22_FULL = GAMUT_ADOBE_RGB | TRANSFORM_FUNC_GM2_2 | PRECISION_FULL, BT2020_LINEAR_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, BT2020_SRGB_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_SRGB | PRECISION_FULL, BT2020_SMPTE170M_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_SMPTE_170M | PRECISION_FULL, BT2020_ST2084_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_ST2084 | PRECISION_FULL, BT2020_HLG_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_HLG | PRECISION_FULL, BT2020_ST2084_LIMITED = GAMUT_BT2020 | TRANSFORM_FUNC_ST2084 | PRESION_LIMITED }

+

枚举颜色空间的类型 更多...

+

HDRFormat { NOT_SUPPORT_HDR = 0, DOLBY_VISION = 1, HDR10 = 2, HLG = 3, HDR10_PLUS = 4, HDR_VIVID = 5 }

+

枚举HDR格式 更多...

+

HDRMetadataKey { MATAKEY_RED_PRIMARY_X = 0, MATAKEY_RED_PRIMARY_Y = 1, MATAKEY_GREEN_PRIMARY_X = 2, MATAKEY_GREEN_PRIMARY_Y = 3, MATAKEY_BLUE_PRIMARY_X = 4, MATAKEY_BLUE_PRIMARY_Y = 5, MATAKEY_WHITE_PRIMARY_X = 6, MATAKEY_WHITE_PRIMARY_Y = 7, MATAKEY_MAX_LUMINANCE = 8, MATAKEY_MIN_LUMINANCE = 9, MATAKEY_MAX_CONTENT_LIGHT_LEVEL = 10, MATAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL = 11, MATAKEY_HDR10_PLUS = 12, MATAKEY_HDR_VIVID = 13 }

+

枚举HDR元数据关键字 更多...

+

PresentTimestampType { HARDWARE_DISPLAY_PTS_UNSUPPORTED = 0, HARDWARE_DISPLAY_PTS_DELAY = 1 << 0, HARDWARE_DISPLAY_PTS_TIMESTAMP = 1 << 1 }

+

上屏时间戳类型枚举值 更多...

+
+ +## 函数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

函数

+

描述

+

DeviceInitialize (DeviceFuncs **funcs)

+

实现显示设备控制接口的初始化,申请操作显示设备控制接口的资源,并获取对应的操作接口。 更多...

+

DeviceUninitialize (DeviceFuncs *funcs)

+

取消显示设备控制接口的初始化,释放控制接口使用到的资源。 更多...

+

GfxInitialize (GfxFuncs **funcs)

+

获取硬件加速相关的操作接口指针。 更多...

+

GfxUninitialize (GfxFuncs *funcs)

+

释放硬件加速相关的操作接口指针。 更多...

+

GrallocInitialize (GrallocFuncs **funcs)

+

初始化内存模块,并获取内存提供的操作接口。 更多...

+

GrallocUninitialize (GrallocFuncs *funcs)

+

取消初始化内存模块,并释放内存操作接口指针。 更多...

+

LayerInitialize (LayerFuncs **funcs)

+

实现图层初始化功能,申请图层使用的资源,并获取图层提供的操作接口。 更多...

+

LayerUninitialize (LayerFuncs *funcs)

+

取消图层初始化功能,释放图层使用到的资源,并释放图层操作接口指针。 更多...

+
+ +## 变量 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

变量 名称

+

描述

+

( DeviceFuncs::RegHotPlugCallback )(HotPlugCallback callback, void *data)

+

注册热插拔事件回调。 更多...

+

( DeviceFuncs::RegDisplayVBlankCallback )(uint32_t devId, VBlankCallback callback, void *data)

+

注册VBlank事件回调。 更多...

+

( DeviceFuncs::RegDisplayRefreshCallback )(uint32_t devId, RefreshCallback callback, void *data)

+

刷新请求回调。 更多...

+

( DeviceFuncs::GetDisplayCapability )(uint32_t devId, DisplayCapability *info)

+

获取显示设备能力集。 更多...

+

( DeviceFuncs::GetDisplaySupportedModes )(uint32_t devId, uint32_t *num, DisplayModeInfo *modes)

+

获取显示设备支持的显示模式信息。 更多...

+

( DeviceFuncs::GetDisplayMode )(uint32_t devId, uint32_t *modeId)

+

获取显示设备当前的显示模式。 更多...

+

( DeviceFuncs::SetDisplayMode )(uint32_t devId, uint32_t modeId)

+

设置显示设备的显示模式。 更多...

+

( DeviceFuncs::GetDisplayPowerStatus )(uint32_t devId, DispPowerStatus *status)

+

获取显示设备当前的电源状态。 更多...

+

( DeviceFuncs::SetDisplayPowerStatus )(uint32_t devId, DispPowerStatus status)

+

设置显示设备当前的电源状态。 更多...

+

( DeviceFuncs::GetDisplayBacklight )(uint32_t devId, uint32_t *level)

+

获取显示设备当前的背光值。 更多...

+

( DeviceFuncs::SetDisplayBacklight )(uint32_t devId, uint32_t level)

+

设置显示设备当前的背光值。 更多...

+

( DeviceFuncs::GetDisplayProperty )(uint32_t devId, uint32_t id, uint64_t *value)

+

设置显示设备属性值。 更多...

+

( DeviceFuncs::SetDisplayProperty )(uint32_t devId, uint32_t id, uint64_t value)

+

设置显示设备属性值。 更多...

+

( DeviceFuncs::PrepareDisplayLayers )(uint32_t devId, bool *needFlushFb)

+

显示设备合成前准备。 更多...

+

( DeviceFuncs::GetDisplayCompChange )(uint32_t devId, uint32_t *num, uint32_t *Layers, int32_t *type)

+

获取显示设备合成类型有变化的layer。 更多...

+

( DeviceFuncs::SetDisplayClientCrop )(uint32_t devId, IRect *rect)

+

设置显示设备的裁剪区域。 更多...

+

( DeviceFuncs::SetDisplayClientDestRect )(uint32_t devId, IRect *rect)

+

设置显示设备的显示区域。 更多...

+

( DeviceFuncs::SetDisplayClientBuffer )(uint32_t devId, const BufferHandle *buffer, int32_t fence)

+

设置显示设备的显示缓存。 更多...

+

( DeviceFuncs::SetDisplayClientDamage )(uint32_t devId, uint32_t num, IRect *rect)

+

设置显示设备的显示脏区。 更多...

+

( DeviceFuncs::SetDisplayVsyncEnabled )(uint32_t devId, bool enabled)

+

使能垂直同步信号。 更多...

+

( DeviceFuncs::GetDisplayReleaseFence )(uint32_t devId, uint32_t *num, uint32_t *layers, int32_t *fences)

+

获取显示图层fence。 更多...

+

( DeviceFuncs::GetDisplaySupportedColorGamuts )(uint32_t devId, uint32_t *num, ColorGamut *gamuts)

+

获取显示设备支持的色域信息。 更多...

+

( DeviceFuncs::GetDisplayColorGamut )(uint32_t devId, ColorGamut *gamut)

+

获取显示设备当前的色域模式。 更多...

+

( DeviceFuncs::SetDisplayColorGamut )(uint32_t devId, ColorGamut gamut)

+

设置显示设备当前的色域模式。 更多...

+

( DeviceFuncs::GetDisplayGamutMap )(uint32_t devId, ColorGamut *gamutMap)

+

获取显示设备当前的色域映射模式。 更多...

+

( DeviceFuncs::SetDisplayGamutMap )(uint32_t devId, ColorGamut gamutMap)

+

设置显示设备当前的色域映射模式。 更多...

+

( DeviceFuncs::SetDisplayColorTransform )(uint32_t devId, const float *matrix)

+

设置显示设备当前的4x4的颜色转换矩阵。 更多...

+

( DeviceFuncs::GetHDRCapabilityInfos )(uint32_t devId, HDRCapability *info)

+

获取显示设备支持的HDR属性信息。 更多...

+

( DeviceFuncs::GetSupportedMetadataKey )(uint32_t devId, uint32_t *num, HDRMetadataKey *keys)

+

获取显示设备支持的 HDRMetadataKey。 更多...

+

( DeviceFuncs::Commit )(uint32_t devId, int32_t *fence)

+

提交合成送显请求。 更多...

+

( DeviceFuncs::InvokeDisplayCmd )(uint32_t devId,...)

+

调用显示设备命令。 更多...

+

( DeviceFuncs::CreateVirtualDisplay )(uint32_t width, uint32_t height, int32_t *format, uint32_t *devId)

+

创建虚拟显示设备。 更多...

+

( DeviceFuncs::DestroyVirtualDisplay )(uint32_t devId)

+

销毁虚拟显示设备。 更多...

+

( DeviceFuncs::SetVirtualDisplayBuffer )(uint32_t devId, BufferHandle *buffer, int32_t fence)

+

设置虚拟屏的输出缓存。 更多...

+

( DeviceFuncs::GetWriteBackFrame )(uint32_t devId, BufferHandle *buffer, int32_t *fence)

+

获取显示设备的回写帧。 更多...

+

( DeviceFuncs::CreateWriteBack )(uint32_t *devId, uint32_t width, uint32_t height, int32_t *format)

+

对指定显示设备创建回写点。 更多...

+

( DeviceFuncs::DestroyWriteBack )(uint32_t devId)

+

销毁指定显示设备的回写点。 更多...

+

DisplayInfo::width

+

显示屏宽度

+

DisplayInfo::height

+

显示屏高度

+

DisplayInfo::rotAngle

+

显示屏旋转角度

+

LayerInfo::width

+

图层宽度

+

LayerInfo::height

+

图层高度

+

LayerInfo::type

+

图层类型,包括图形层、视频层和媒体播放模式

+

LayerInfo::bpp

+

每像素所占bit数

+

LayerInfo::pixFormat

+

图层像素格式

+

LayerAlpha::enGlobalAlpha

+

全局alpha使能标志

+

LayerAlpha::enPixelAlpha

+

像素alpha使能标志

+

LayerAlpha::alpha0

+

alpha0值,取值范围:[0, 255]

+

LayerAlpha::alpha1

+

alpha1值,取值范围:[0, 255]

+

LayerAlpha::gAlpha

+

全局alpha值,取值范围:[0, 255]

+

BufferData::phyAddr

+

物理内存地址

+

BufferData::virAddr

+

虚拟内存地址

+

LayerBuffer::fenceId

+

buffer 的fence号r

+

LayerBuffer::width

+

buffer宽度

+

LayerBuffer::height

+

buffer高度

+

LayerBuffer::pitch

+

一行数据所占字节数

+

LayerBuffer::pixFormat

+

buffer像素格式r

+

LayerBuffer::data

+

图层buffer数据

+

LayerBuffer::hdl

+

图层buffer句柄

+

IRect::x

+

矩形框起始x坐标

+

IRect::y

+

矩形框起始y坐标

+

IRect::w

+

矩形框宽度

+

IRect::h

+

矩形框高度

+

ISurface::phyAddr

+

图像首地址

+

ISurface::height

+

图像高度

+

ISurface::width

+

图像宽度

+

ISurface::stride

+

图像跨度

+

ISurface::enColorFmt

+

图像格式

+

ISurface::bYCbCrClut

+

CLUT表是否位于 YCbCr 空间

+

ISurface::bAlphaMax255

+

图像alpha最大值为255还是128

+

ISurface::bAlphaExt1555

+

是否使能1555的Alpha扩展

+

ISurface::alpha0

+

Alpha0值,取值范围:[0,255]

+

ISurface::alpha1

+

Alpha1值,取值范围:[0,255]

+

ISurface::cbcrPhyAddr

+

CbCr分量地址

+

ISurface::cbcrStride

+

CbCr分量跨度

+

ISurface::clutPhyAddr

+

Clut表首地址,用作颜色扩展或颜色校正

+

ILine::x0

+

线条起点的x坐标

+

ILine::y0

+

线条起点的y坐标

+

ILine::x1

+

线条终点的x坐标

+

ILine::y1

+

线条终点的y坐标

+

ILine::color

+

线条颜色

+

ICircle::x

+

圆心x坐标

+

ICircle::y

+

圆心y坐标r

+

ICircle::r

+

圆的半径

+

ICircle::color

+

圆的颜色

+

Rectangle::rect

+

矩形区域

+

Rectangle::color

+

矩形颜色

+

GfxOpt::enGlobalAlpha

+

全局alpha使能位

+

GfxOpt::globalAlpha

+

全局alpha的值

+

GfxOpt::enPixelAlpha

+

像素alpha使能位

+

GfxOpt::blendType

+

混合方式

+

GfxOpt::colorKeyFrom

+

色键模式

+

GfxOpt::enableRop

+

Rop功能使能位

+

GfxOpt::colorRopType

+

颜色的Rop类型

+

GfxOpt::alphaRopType

+

Alpha的Rop类型

+

GfxOpt::enableScale

+

缩放功能使能位

+

GfxOpt::rotateType

+

旋转类型

+

GfxOpt::mirrorType

+

镜像类型

+

PropertyObject::name [PROPERTY_NAME_LEN]

+

属性名称

+

PropertyObject::propId

+

属性ID

+

PropertyObject::value

+

属性值

+

DisplayCapability::name [PROPERTY_NAME_LEN]

+

显示设备名称

+

DisplayCapability::type

+

显示屏接口类型

+

DisplayCapability::phyWidth

+

物理宽度

+

DisplayCapability::phyHeight

+

物理高度

+

DisplayCapability::supportLayers

+

支持的图层数

+

DisplayCapability::virtualDispCount

+

支持的虚拟屏数

+

DisplayCapability::supportWriteBack

+

是否支持回写

+

DisplayCapability::propertyCount

+

属性数组大小

+

DisplayCapability::props

+

属性数组

+

DisplayModeInfo::width

+

像素宽度

+

DisplayModeInfo::height

+

像素高度

+

DisplayModeInfo::freshRate

+

刷新速率

+

DisplayModeInfo::id

+

模式ID

+

AllocInfo::width

+

申请内存宽度

+

AllocInfo::height

+

申请内存高度

+

AllocInfo::usage

+

申请内存的使用场景

+

AllocInfo::format

+

申请内存格式

+

AllocInfo::expectedSize

+

申请内存大小

+

HDRCapability::formatCount

+

支持的HDR格式的数量

+

HDRCapability::formats

+

支持的HDR格式的数组首地址

+

HDRCapability::maxLum

+

最大的光亮度luminance值

+

HDRCapability::maxAverageLum

+

最大的平均光亮度luminance值

+

HDRCapability::minLum

+

最小的光亮度luminance值

+

HDRMetaData::key

+

HDR元数据关键字

+

HDRMetaData::value

+

关键字对应的值

+

VerifyAllocInfo::width

+

分配内存的宽度

+

VerifyAllocInfo::height

+

分配内存的高度

+

VerifyAllocInfo::usage

+

内存的用处

+

VerifyAllocInfo::format

+

分配内存的像素格式

+

PresentTimestamp::type

+

上屏时间戳类型

+

PresentTimestamp::time

+

类型对应的值

+

__attribute__::fd

+

句柄 fd,-1代表不支持

+

__attribute__::reserveInts

+

reserve数组的个数

+

__attribute__::reserve [0]

+

reserve数组

+

__attribute__::baseAddr

+

内存的初始地址

+

__attribute__::yOffset

+

Y的偏移量

+

__attribute__::uOffset

+

U的偏移量

+

__attribute__::vOffset

+

V的偏移量

+

__attribute__::yStride

+

Y的stride信息

+

__attribute__::uvStride

+

UV的stride信息

+

__attribute__::uvStep

+

UV的step信息

+
+ +## **详细描述** + +显示模块驱动接口定义。 + +提供给图形系统使用的驱动接口,包括图层管理、设备控制、图形硬件加速、显示内存管理和回调接口等。 + +**Since:** + +1.0 + +**Version:** + +2.0 + +## **类型定义说明** + +## HotPlugCallback + +``` +typedef void(* HotPlugCallback) (uint32_t devId, bool connected, void *data) +``` + +**描述:** + +热插拔事件回调。 + +当有热插拔事件发生时,会回调该接口,需要通过RegHotPlugCallback注册该回调接口。 + +@paramdevId 输入参数,显示设备ID,此ID由HDI实现层生成,并通过当前回调接口传递给图形服务使用,用以标记当前连接的显示设备。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

connected

+

输入参数,指明设备的连接状态,ture代表连接,false代表断开。

+

data

+

输出参数,图形服务携带的私有数据,该参数携带的是RegHotPlugCallback接口注册时传递的私有数据地址,详情参考 {@RegHotPlugCallback} 接口注册时传递的地址。

+
+ +## RefreshCallback + +``` +typedef void(* RefreshCallback) (uint32_t devId, void *data) +``` + +**描述:** + +刷新请求回调。 + +刷新请求回调,当接口实现层需要图形服务刷新数据帧时会回调该接口,需要通过RegDisplayRefreshCallback注册该回调接口。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID。

+

data

+

输出参数,图形服务携带的私有数据,该参数携带的是RegDisplayRefreshCallback接口注册时传递的地址。

+
+ +## VBlankCallback + +``` +typedef void(* VBlankCallback) (unsigned int sequence, uint64_t ns, void *data) +``` + +**描述:** + +VBlank 事件回调。 + +垂直同步事件回调接口,需要通过RegDisplayVBlankCallback注册该回调接口。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

sequence

+

输入参数,指明VBlank序列,是一个累加值。

+

ns

+

输入参数,该次VBlank事件的时间戳,以纳秒为单位。

+

data

+

输出参数,图形服务携带的私有数据,该参数携带的是RegDisplayVBlankCallback接口注册时传递的地址。

+
+ +## **枚举类型说明** + +## anonymous enum + +``` +anonymous enum +``` + +**描述:** + +缓冲区定义。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

HBM_USE_CPU_READ

+

CPU 读缓冲

+

+

HBM_USE_CPU_WRITE

+

CPU 写内存

+

+

HBM_USE_MEM_MMZ

+

MMZ

+

+

HBM_USE_MEM_DMA

+

DMA缓冲区

+

+

HBM_USE_MEM_SHARE

+

共享内存缓冲区

+

+

HBM_USE_MEM_MMZ_CACHE

+

MMZ缓存

+

+

HBM_USE_MEM_FB

+

帧缓存

+

+

HBM_USE_ASSIGN_SIZE

+

内存分配

+

+
+ +## BlendType + +``` +enum BlendType +``` + +**描述:** + +显示内存类型定义。 + +根据图形系统指定的类型进行分配,包括带cache或者不带cache的内存。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

BLEND_NONE

+

No 混合操作

+

+

BLEND_CLEAR

+

CLEAR 混合操作

+

+

BLEND_SRC

+

SRC 混合操作

+

+

BLEND_SRCOVER

+

SRC_OVER 混合操作

+

+

BLEND_DSTOVER

+

DST_OVER 混合操作

+

+

BLEND_SRCIN

+

SRC_IN 混合操作

+

+

BLEND_DSTIN

+

DST_IN 混合操作

+

+

BLEND_SRCOUT

+

SRC_OUT 混合操作

+

+

BLEND_DSTOUT

+

DST_OUT 混合操作

+

+

BLEND_SRCATOP

+

SRC_ATOP 混合操作

+

+

BLEND_DSTATOP

+

DST_ATOP 混合操作

+

+

BLEND_ADD

+

ADD 混合操作

+

+

BLEND_XOR

+

XOR 混合操作

+

+

BLEND_DST

+

DST 混合操作

+

+

BLEND_AKS

+

AKS 混合操作

+

+

BLEND_AKD

+

AKD 混合操作

+

+

BLEND_BUTT

+

空操作

+

+
+ +## ColorDataSpace + +``` +enum ColorDataSpace +``` + +**描述:** + +枚举颜色空间的类型 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

COLOR_DATA_SPACE_UNKNOWN

+

未知的

+

+

GAMUT_BT601

+

BT601色域

+

+

GAMUT_BT709

+

BT709色域

+

+

GAMUT_DCI_P3

+

DCI_P3色域

+

+

GAMUT_SRGB

+

SRGB色域

+

+

GAMUT_ADOBE_RGB

+

ADOBE_RGB色域

+

+

GAMUT_DISPLAY_P3

+

DISPLAY_P3色域

+

+

GAMUT_BT2020

+

BT2020色域

+

+

GAMUT_BT2100_PQ

+

BT2100_PQ色域

+

+

GAMUT_BT2100_HLG

+

BT2100_HLG色域

+

+

GAMUT_DISPLAY_BT2020

+

DISPLAY_BT2020色域

+

+

TRANSFORM_FUNC_UNSPECIFIED

+

UNSPECIFIED转换函数

+

+

TRANSFORM_FUNC_LINEAR

+

LINEAR转换函数

+

+

TRANSFORM_FUNC_SRGB

+

SRGB转换函数

+

+

TRANSFORM_FUNC_SMPTE_170M

+

SMPTE_170M转换函数

+

+

TRANSFORM_FUNC_GM2_2

+

GM2_2转换函数

+

+

TRANSFORM_FUNC_GM2_6

+

GM2_6转换函数

+

+

TRANSFORM_FUNC_GM2_8

+

GM2_8转换函数

+

+

TRANSFORM_FUNC_ST2084

+

ST2084转换函数

+

+

TRANSFORM_FUNC_HLG

+

HLG转换函数

+

+

PRECISION_UNSPECIFIED

+

UNSPECIFIED精度

+

+

PRECISION_FULL

+

FULL精度

+

+

PRESION_LIMITED

+

LIMITED精度

+

+

PRESION_EXTENDED

+

EXTENDED精度

+

+

BT601_SMPTE170M_FULL

+

BT601色域 | SMPTE_170M转换函数 | FULL精度

+

+

BT601_SMPTE170M_LIMITED

+

BT601色域 | SMPTE_170M转换函数 | LIMITED精度

+

+

BT709_LINEAR_FULL

+

BT709色域 | LINEAR转换函数 | FULL精度

+

+

BT709_LINEAR_EXTENDED

+

BT709色域 | LINEAR转换函数 | EXTENDED精度

+

+

BT709_SRGB_FULL

+

BT709色域 | SRGB转换函数 | FULL精度

+

+

BT709_SRGB_EXTENDED

+

BT709色域 | SRGB转换函数 | EXTENDED精度

+

+

BT709_SMPTE170M_LIMITED

+

BT709色域 | SMPTE_170M转换函数 | LIMITED精度

+

+

DCI_P3_LINEAR_FULL

+

DCI_P3色域 | LINEAR转换函数 | FULL精度

+

+

DCI_P3_GAMMA26_FULL

+

DCI_P3色域 | GM2_6转换函数 | FULL精度

+

+

DISPLAY_P3_LINEAR_FULL

+

DISPLAY_P3色域 | LINEAR转换函数 | FULL精度

+

+

DCI_P3_SRGB_FULL

+

DCI_P3色域 | SRGB转换函数 | FULL精度

+

+

ADOBE_RGB_GAMMA22_FULL

+

ADOBE_RGB色域 | GM2_2转换函数 | FULL精度

+

+

BT2020_LINEAR_FULL

+

BT2020色域 | LINEAR转换函数 | FULL精度

+

+

BT2020_SRGB_FULL

+

BT2020色域 | SRGB转换函数 | FULL精度

+

+

BT2020_SMPTE170M_FULL

+

BT2020色域 | SMPTE_170M转换函数 | FULL精度

+

+

BT2020_ST2084_FULL

+

BT2020色域 | ST2084转换函数 | FULL精度

+

+

BT2020_HLG_FULL

+

BT2020色域 | HLG转换函数 | FULL精度

+

+

BT2020_ST2084_LIMITED

+

BT2020色域 | ST2084转换函数 | LIMITED精度

+

+
+ +## ColorGamut + +``` +enum ColorGamut +``` + +**描述:** + +色域类型枚举值。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

COLOR_GAMUT_INVALID

+

无效值

+

+

COLOR_GAMUT_NATIVE

+

默认值

+

+

COLOR_GAMUT_SATNDARD_BT601

+

Standard BT601类型

+

+

COLOR_GAMUT_STANDARD_BT709

+

Standard BT709类型

+

+

COLOR_GAMUT_DCI_P3

+

DCI P3类型

+

+

COLOR_GAMUT_SRGB

+

SRGB类型

+

+

COLOR_GAMUT_ADOBE_RGB

+

Adobe RGB类型

+

+

COLOR_GAMUT_DISPLAY_P3

+

display P3类型

+

+

COLOR_GAMUT_BT2020

+

BT2020类型

+

+

COLOR_GAMUT_BT2100_PQ

+

BT2100 PQ类型

+

+

COLOR_GAMUT_BT2100_HLG

+

BT2100 HLG类型

+

+

COLOR_GAMUT_DISPLAY_BT2020

+

Display BT2020类型

+

+
+ +## ColorKey + +``` +enum ColorKey +``` + +**描述:** + +Color key操作类型定义,即硬件加速支持的Color key操作类型。 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

CKEY_NONE

+

不使用colorkey

+

+

CKEY_SRC

+

使用源colorkey

+

+

CKEY_DST

+

使用目标colorkey

+

+

CKEY_BUTT

+

空操作

+

+
+ +## CompositionType + +``` +enum CompositionType +``` + +**描述:** + +枚举特殊层的组合类型。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

COMPOSITION_CLIENT

+

Client 合成类型,使用CPU或者GPU合成。

+

+

COMPOSITION_DEVICE

+

Device 合成类型,使用Device合成。

+

+

COMPOSITION_CURSOR

+

Cursor合成类型,用于光标合成。

+

+

COMPOSITION_VIDEO

+

Video合成类型,用于视频层合成。

+

+

COMPOSITION_DEVICE_CLEAR

+

Device clear 合成类型,device会清除目标区域。

+

+

COMPOSITION_CLIENT_CLEAR

+

Client clear 合成类型,service会清除目标区域。

+

+

COMPOSITION_TUNNEL

+

Tunnel 合成类型,用于tunnel。

+

+

COMPOSITION_BUTT

+

空类型

+
+ +## Connection + +``` +enum Connection +``` + +**描述:** + +热插拔连接类型定义 + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

CON_INVALID

+

无效类型

+

+

CONNECTED

+

已连接

+

+

DISCONNECTED

+

断开连接

+

+
+ +## DispErrCode + +``` +enum DispErrCode +``` + +**描述:** + +返回值类型定义。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

DISPLAY_SUCCESS

+

成功

+

+

DISPLAY_FAILURE

+

失败

+

+

DISPLAY_FD_ERR

+

fd错误

+

+

DISPLAY_PARAM_ERR

+

参数错误

+

+

DISPLAY_NULL_PTR

+

空指针

+

+

DISPLAY_NOT_SUPPORT

+

不支持的特性

+

+

DISPLAY_NOMEM

+

内存不足

+

+

DISPLAY_SYS_BUSY

+

系统繁忙

+

+

DISPLAY_NOT_PERM

+

操作不允许

+

+
+ +## DispPowerStatus + +``` +enum DispPowerStatus +``` + +**描述:** + +枚举显示状态 + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

POWER_STATUS_ON

+

上电模式

+

+

POWER_STATUS_STANDBY

+

待机模式

+

+

POWER_STATUS_SUSPEND

+

休眠模式

+

+

POWER_STATUS_OFF

+

下电模式

+

+

POWER_STATUS_BUTT

+

默认模式

+

+
+ +## GamutMap + +``` +enum GamutMap +``` + +**描述:** + +枚举色域的映射类型 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

GAMUT_MAP_CONSTANT

+

不变

+

+

GAMUT_MAP_EXPANSION

+

映射增强

+

+

GAMUT_MAP_HDR_CONSTANT

+

不变,用于HDR

+

+

GAMUT_MAP_HDR_EXPANSION

+

映射增强,用于HDR

+

+
+ +## HDRFormat + +``` +enum HDRFormat +``` + +**描述:** + +枚举HDR格式 + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

NOT_SUPPORT_HDR

+

不支持HDR

+

+

DOLBY_VISION

+

Dolby Vision格式

+

+

HDR10

+

HDR10格式

+

+

HLG

+

HLG格式

+

+

HDR10_PLUS

+

HDR10 Plus格式

+

+

HDR_VIVID

+

Vivid格式

+

+
+ +## HDRMetadataKey + +``` +enum HDRMetadataKey +``` + +**描述:** + +枚举HDR元数据关键字 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

MATAKEY_RED_PRIMARY_X

+

红基色X坐标

+

+

MATAKEY_RED_PRIMARY_Y

+

红基色Y坐标

+

+

MATAKEY_GREEN_PRIMARY_X

+

绿基色X坐标

+

+

MATAKEY_GREEN_PRIMARY_Y

+

绿基色Y坐标

+

+

MATAKEY_BLUE_PRIMARY_X

+

蓝基色X坐标

+

+

MATAKEY_BLUE_PRIMARY_Y

+

蓝基色Y坐标

+

+

MATAKEY_WHITE_PRIMARY_X

+

白点X坐标

+

+

MATAKEY_WHITE_PRIMARY_Y

+

白点Y坐标

+

+

MATAKEY_MAX_LUMINANCE

+

最大的光亮度

+

+

MATAKEY_MIN_LUMINANCE

+

最小的光亮度

+

+

MATAKEY_MAX_CONTENT_LIGHT_LEVEL

+

最大的内容亮度水平

+

+

MATAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL

+

最大的帧平均亮度水平

+

+

MATAKEY_HDR10_PLUS

+

HDR10 Plus

+

+

MATAKEY_HDR_VIVID

+

Vivid

+

+
+ +## InterfaceType + +``` +enum InterfaceType +``` + +**描述:** + +枚举接口类型。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

DISP_INTF_HDMI

+

HDMI 接口

+

+

DISP_INTF_LCD

+

LCD 接口

+

+

DISP_INTF_BT1120

+

BT1120 接口

+

+

DISP_INTF_BT656

+

BT656 接口

+

+

DISP_INTF_YPBPR

+

YPBPR 接口

+

+

DISP_INTF_RGB

+

RGB 接口

+

+

DISP_INTF_CVBS

+

CVBS 接口

+

+

DISP_INTF_SVIDEO

+

SVIDEO 接口

+

+

DISP_INTF_VGA

+

VGA 接口

+

+

DISP_INTF_MIPI

+

MIPI 接口

+

+

DISP_INTF_PANEL

+

PANEL 接口

+

+

DISP_INTF_BUTT

+

空接口

+
+ +## LayerType + +``` +enum LayerType +``` + +**描述:** + +图层类型定义。 + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

LAYER_TYPE_GRAPHIC

+

图形层

+

+

LAYER_TYPE_OVERLAY

+

视频层

+

+

LAYER_TYPE_SDIEBAND

+

媒体播放

+

+

LAYER_TYPE_CURSOR

+

光标层

+

+

LAYER_TYPE_BUTT

+

空图层

+

+
+ +## MirrorType + +``` +enum MirrorType +``` + +**描述:** + +硬件加速支持的镜像操作类型定义 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

MIRROR_NONE

+

不使用镜像

+

+

MIRROR_LR

+

左右镜像

+

+

MIRROR_TB

+

上下镜像

+

+

MIRROR_BUTT

+

空操作

+

+
+ +## PixelFormat + +``` +enum PixelFormat +``` + +**描述:** + +像素格式类型定义。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

PIXEL_FMT_CLUT8

+

CLUT8 格式

+

+

PIXEL_FMT_CLUT1

+

CLUT1 格式

+

+

PIXEL_FMT_CLUT4

+

CLUT4 格式

+

+

PIXEL_FMT_RGB_565

+

RGB565 格式

+

+

PIXEL_FMT_RGBA_5658

+

RGBA5658 格式

+

+

PIXEL_FMT_RGBX_4444

+

RGBX4444 格式

+

+

PIXEL_FMT_RGBA_4444

+

RGBA4444 格式

+

+

PIXEL_FMT_RGB_444

+

RGB444 格式

+

+

PIXEL_FMT_RGBX_5551

+

RGBX5551 格式

+

+

PIXEL_FMT_RGBA_5551

+

RGBA5551 格式

+

+

PIXEL_FMT_RGB_555

+

RGB555 格式

+

+

PIXEL_FMT_RGBX_8888

+

RGBX8888 格式

+

+

PIXEL_FMT_RGBA_8888

+

RGBA8888 格式

+

+

PIXEL_FMT_RGB_888

+

RGB888 格式

+

+

PIXEL_FMT_BGR_565

+

BGR565 格式

+

+

PIXEL_FMT_BGRX_4444

+

BGRX4444 格式

+

+

PIXEL_FMT_BGRA_4444

+

BGRA4444 格式

+

+

PIXEL_FMT_BGRX_5551

+

BGRX5551 格式

+

+

PIXEL_FMT_BGRA_5551

+

BGRA5551 格式

+

+

PIXEL_FMT_BGRX_8888

+

BGRX8888 格式

+

+

PIXEL_FMT_BGRA_8888

+

BGRA8888 格式

+

+

PIXEL_FMT_YUV_422_I

+

YUV422 交错格式

+

+

PIXEL_FMT_YCBCR_422_SP

+

YCBCR422 半平面格式

+

+

PIXEL_FMT_YCRCB_422_SP

+

YCRCB422 半平面格式

+

+

PIXEL_FMT_YCBCR_420_SP

+

YCBCR420 半平面格式

+

+

PIXEL_FMT_YCRCB_420_SP

+

YCRCB420 半平面格式

+

+

PIXEL_FMT_YCBCR_422_P

+

YCBCR422 平面格式

+

+

PIXEL_FMT_YCRCB_422_P

+

YCRCB422 平面格式

+

+

PIXEL_FMT_YCBCR_420_P

+

YCBCR420 平面格式

+

+

PIXEL_FMT_YCRCB_420_P

+

YCRCB420 平面格式

+

+

PIXEL_FMT_YUYV_422_PKG

+

YUYV422 打包格式

+

+

PIXEL_FMT_UYVY_422_PKG

+

UYVY422 打包格式t

+

+

PIXEL_FMT_YVYU_422_PKG

+

YVYU422 打包格式

+

+

PIXEL_FMT_VYUY_422_PKG

+

VYUY422 打包格式

+

+

PIXEL_FMT_VENDER_MASK

+

vendor mask 格式

+

+

PIXEL_FMT_BUTT

+

Invalid 像素格式

+

+
+ +## PresentTimestampType + +``` +enum PresentTimestampType +``` + +**描述:** + +上屏时间戳类型枚举值。 + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

HARDWARE_DISPLAY_PTS_UNSUPPORTED

+

不支持

+

+

HARDWARE_DISPLAY_PTS_DELAY

+

Delay 时延类型

+

+

HARDWARE_DISPLAY_PTS_TIMESTAMP

+

时间戳类型

+

+
+ +## RopType + +``` +enum RopType +``` + +**描述:** + +硬件加速支持的ROP操作类型。 + +硬件加速支持的ROP操作类型,在将前景位图的RGB颜色分量和Alpha分量值与背景位图的RGB颜色 分量值和Alpha分量值进行按位的布尔运算(包括按位与,按位或等),将结果输出。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

ROP_BLACK

+

黑色

+

+

ROP_NOTMERGEPEN

+

~(S2+S1)

+

+

ROP_MASKNOTPEN

+

~S2&S1

+

+

ROP_NOTCOPYPEN

+

~S2

+

+

ROP_MASKPENNOT

+

S2&~S1

+

+

ROP_NOT

+

~S1

+

+

ROP_XORPEN

+

S2^S1

+

+

ROP_NOTMASKPEN

+

~(S2&S1)

+

+

ROP_MASKPEN

+

S2&S1

+

+

ROP_NOTXORPEN

+

~(S2^S1)

+

+

ROP_NOP

+

S1

+

+

ROP_MERGENOTPEN

+

~S2+S1

+

+

ROP_COPYPE

+

S2

+

+

ROP_MERGEPENNOT

+

S2+~S1

+

+

ROP_MERGEPEN

+

S2+S1

+

+

ROP_WHITE

+

白色

+

+

ROP_BUTT

+

无效值

+

+
+ +## TransformType + +``` +enum TransformType +``` + +**描述:** + +图层变换类型定义。 + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

ROTATE_NONE

+

不旋转

+

+

ROTATE_90

+

旋转90度

+

+

ROTATE_180

+

旋转180度

+

+

ROTATE_270

+

旋转270度

+

+

ROTATE_BUTT

+

无效操作

+

+
+ +## **函数说明** + +## DeviceInitialize\(\) + +``` +int32_t DeviceInitialize (DeviceFuncs ** funcs) +``` + +**描述:** + +实现显示设备控制接口的初始化,申请操作显示设备控制接口的资源,并获取对应的操作接口。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

funcs

+

输出参数,显示设备控制接口指针,初始化时分配内存,调用者不需要分配内存,调用者获取该指针用于操作显示设备。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## DeviceUninitialize\(\) + +``` +int32_t DeviceUninitialize (DeviceFuncs * funcs) +``` + +**描述:** + +取消显示设备控制接口的初始化,释放控制接口使用到的资源。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

funcs

+

输出参数,显示设备控制接口指针,用于释放初始化函数中分配的操作指针内存。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## GfxInitialize\(\) + +``` +int32_t GfxInitialize (GfxFuncs ** funcs) +``` + +**描述:** + +获取硬件加速相关的操作接口指针。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

funcs

+

输出参数,硬件加速模块操作接口指针,调用者不需要分配内存,调用者获取该指针操作硬件加速。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## GfxUninitialize\(\) + +``` +int32_t GfxUninitialize (GfxFuncs * funcs) +``` + +**描述:** + +释放硬件加速相关的操作接口指针。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

funcs

+

输出参数,硬件加速操作接口指针。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## GrallocInitialize\(\) + +``` +int32_t GrallocInitialize (GrallocFuncs ** funcs) +``` + +**描述:** + +初始化内存模块,并获取内存提供的操作接口。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

funcs

+

输出参数,内存模块操作接口指针,初始化内存模块时分配内存,调用者不需要分配内存,调用者获取该指针操作内存。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## GrallocUninitialize\(\) + +``` +int32_t GrallocUninitialize (GrallocFuncs * funcs) +``` + +**描述:** + +取消初始化内存模块,并释放内存操作接口指针。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

funcs

+

输出参数,内存操作接口指针,用于释放内存初始化函数中分配的操作指针内存。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## LayerInitialize\(\) + +``` +int32_t LayerInitialize (LayerFuncs ** funcs) +``` + +**描述:** + +实现图层初始化功能,申请图层使用的资源,并获取图层提供的操作接口。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

funcs

+

输出参数,图层操作接口指针,初始化图层时分配内存,调用者不需要分配内存,调用者获取该指针操作图层。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[LayerUninitialize](_display.md#ga4e32b1a65cf243a9ac015b632a4eea0b) + +## LayerUninitialize\(\) + +``` +int32_t LayerUninitialize (LayerFuncs * funcs) +``` + +**描述:** + +取消图层初始化功能,释放图层使用到的资源,并释放图层操作接口指针。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

funcs

+

输出参数,图层操作接口指针,用于释放图层初始化函数中分配的操作指针内存。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[LayerInitialize](_display.md#ga061e587306a5d0367ff228d64434c05d) + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **变量说明** + +## alpha0 \[1/2\] + +``` +uint8_t LayerAlpha::alpha0 +``` + +**描述:** + +alpha0值,取值范围:\[0, 255\] + +## alpha0 \[2/2\] + +``` +uint8_t ISurface::alpha0 +``` + +**描述:** + +Alpha0值,取值范围:\[0,255\] + +## alpha1 \[1/2\] + +``` +uint8_t LayerAlpha::alpha1 +``` + +**描述:** + +alpha1值,取值范围:\[0, 255\] + +## alpha1 \[2/2\] + +``` +uint8_t ISurface::alpha1 +``` + +**描述:** + +Alpha1值,取值范围:\[0,255\] + +## alphaRopType + +``` +[RopType](_display.md#ga24265f7618fbdba53d3da4806d3097c4) GfxOpt::alphaRopType +``` + +**描述:** + +Alpha的Rop类型 + +## bAlphaExt1555 + +``` +bool ISurface::bAlphaExt1555 +``` + +**描述:** + +是否使能1555的Alpha扩展 + +## bAlphaMax255 + +``` +bool ISurface::bAlphaMax255 +``` + +**描述:** + +图像alpha最大值为255还是128 + +## baseAddr + +``` +void* __attribute__::baseAddr +``` + +**描述:** + +内存的初始地址 + +## blendType + +``` +[BlendType](_display.md#gaab1839ed4aab1030dfda801a51e68817) GfxOpt::blendType +``` + +**描述:** + +混合方式 + +## bpp + +``` +int32_t LayerInfo::bpp +``` + +**描述:** + +每像素所占bit数 + +## bYCbCrClut + +``` +bool ISurface::bYCbCrClut +``` + +**描述:** + +CLUT表是否位于 YCbCr 空间 + +## cbcrPhyAddr + +``` +uint64_t ISurface::cbcrPhyAddr +``` + +**描述:** + +CbCr分量地址 + +## cbcrStride + +``` +int32_t ISurface::cbcrStride +``` + +**描述:** + +CbCr分量跨度 + +## clutPhyAddr + +``` +uint64_t ISurface::clutPhyAddr +``` + +**描述:** + +Clut表首地址,用作颜色扩展或颜色校正 + +## color \[1/3\] + +``` +uint32_t ILine::color +``` + +**描述:** + +线条颜色 + +## color \[2/3\] + +``` +uint32_t ICircle::color +``` + +**描述:** + +圆的颜色 + +## color \[3/3\] + +``` +uint32_t Rectangle::color +``` + +**描述:** + +矩形颜色 + +## colorKeyFrom + +``` +[ColorKey](_display.md#ga4fe6fb05c7ba0048b1739d88f4d4878e) GfxOpt::colorKeyFrom +``` + +**描述:** + +色键模式 + +## colorRopType + +``` +[RopType](_display.md#ga24265f7618fbdba53d3da4806d3097c4) GfxOpt::colorRopType +``` + +**描述:** + +颜色的Rop类型 + +## Commit + +``` +int32_t(* DeviceFuncs::Commit) (uint32_t devId, int32_t *fence) +``` + +**描述:** + +提交合成送显请求。 + +图形服务通过该接口向接口实现层提交合成送显请求,如果有硬件合成层,接口实现层需要在这时进行合成,并且把最终合成的数据送到硬件进行显示。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

fences

+

输出参数,fence首地址,指向fence数组的首地址。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## CreateVirtualDisplay + +``` +int32_t(* DeviceFuncs::CreateVirtualDisplay) (uint32_t width, uint32_t height, int32_t *format, uint32_t *devId) +``` + +**描述:** + +创建虚拟显示设备。 + +该接口用于创建一个虚拟显示设备。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

width

+

输入参数,指定显示设备的像素宽度。

+

height

+

输入参数,指定显示设备的像素高度。

+

format

+

输出参数,指定显示设备的像素格式。 详情参考PixelFormat,接口实现层可以根据硬件需求,修改format并返回给图形服务。

+

devId

+

输出参数,用于接口层返回创建的设备ID。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## CreateWriteBack + +``` +int32_t(* DeviceFuncs::CreateWriteBack) (uint32_t *devId, uint32_t width, uint32_t height, int32_t *format) +``` + +**描述:** + +对指定显示设备创建回写点。 + +该接口用来对指定的设备创建一个回写点,如果回写点数量超过了限制,接口实现层将会返回失败。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID,接口实现层在创建完回写点后将回写点设备ID存放在该参数中返回给图形服务。

+

width

+

输入参数,回写像素宽度。

+

height

+

输入参数,回写像素高度。

+

format

+

输入参数,回写点数据格式,详情参考PixelFormat,接口实现层可以根据硬件需求,修改format并返回给图形服务。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## data + +``` +BufferData LayerBuffer::data +``` + +**描述:** + +图层buffer数据 + +## DestroyVirtualDisplay + +``` +int32_t(* DeviceFuncs::DestroyVirtualDisplay) (uint32_t devId) +``` + +**描述:** + +销毁虚拟显示设备。 + +该接口用于销毁指定的虚拟显示设备。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## DestroyWriteBack + +``` +int32_t(* DeviceFuncs::DestroyWriteBack) (uint32_t devId) +``` + +**描述:** + +销毁指定显示设备的回写点。 + +该接口用來销毁指定的回写点。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## enableRop + +``` +bool GfxOpt::enableRop +``` + +**描述:** + +Rop功能使能位 + +## enableScale + +``` +bool GfxOpt::enableScale +``` + +**描述:** + +缩放功能使能位 + +## enColorFmt + +``` +[PixelFormat](_display.md#ga60883d4958a60b91661e97027a85072a) ISurface::enColorFmt +``` + +**描述:** + +图像格式 + +## enGlobalAlpha \[1/2\] + +``` +bool LayerAlpha::enGlobalAlpha +``` + +**描述:** + +全局alpha使能标志 + +## enGlobalAlpha \[2/2\] + +``` +bool GfxOpt::enGlobalAlpha +``` + +**描述:** + +全局alpha使能位 + +## enPixelAlpha \[1/2\] + +``` +bool LayerAlpha::enPixelAlpha +``` + +**描述:** + +像素alpha使能标志 + +## enPixelAlpha \[2/2\] + +``` +bool GfxOpt::enPixelAlpha +``` + +**描述:** + +像素alpha使能位 + +## expectedSize + +``` +uint32_t AllocInfo::expectedSize +``` + +**描述:** + +申请内存大小 + +## fd + +``` +int32_t __attribute__::fd +``` + +**描述:** + +句柄 fd,-1代表不支持。 + +## fenceId + +``` +int32_t LayerBuffer::fenceId +``` + +**描述:** + +buffer 的fence号 + +## format \[1/2\] + +``` +[PixelFormat](_display.md#ga60883d4958a60b91661e97027a85072a) AllocInfo::format +``` + +**描述:** + +申请内存格式 + +## format \[2/2\] + +``` +[PixelFormat](_display.md#ga60883d4958a60b91661e97027a85072a) VerifyAllocInfo::format +``` + +**描述:** + +分配内存的像素格式 + +## formatCount + +``` +uint32_t HDRCapability::formatCount +``` + +**描述:** + +支持的HDR格式的数量 + +## formats + +``` +[HDRFormat](_display.md#gabdc446aa6fa47c5dd8d1b7d87bed2566)* HDRCapability::formats +``` + +**描述:** + +支持的HDR格式的数组首地址 + +## freshRate + +``` +uint32_t DisplayModeInfo::freshRate +``` + +**描述:** + +刷新速率 + +## gAlpha + +``` +uint8_t LayerAlpha::gAlpha +``` + +**描述:** + +全局alpha值,取值范围:\[0, 255\] + +## GetDisplayBacklight + +``` +int32_t(* DeviceFuncs::GetDisplayBacklight) (uint32_t devId, uint32_t *level) +``` + +**描述:** + +获取显示设备当前的背光值。 + +图形服务可以通过该接口获取设置显示设备的背光值。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

level

+

输出参数,保存对应设备的背光值,由接口实现层进行写入。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetDisplayCapability + +``` +int32_t(* DeviceFuncs::GetDisplayCapability) (uint32_t devId, DisplayCapability *info) +``` + +**描述:** + +获取显示设备能力集。 + +图形服务可以通过该接口获取显示设备具备哪些显示能力。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

info

+

输出参数,设备支持的能力级信息,详情参考 {@DisplayCapability}。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetDisplayColorGamut + +``` +int32_t(* DeviceFuncs::GetDisplayColorGamut) (uint32_t devId, ColorGamut *gamut) +``` + +**描述:** + +获取显示设备当前的色域模式。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

gamut

+

输出参数,保存对应设备的色域模式,由接口实现层进行写入。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetDisplayCompChange + +``` +int32_t(* DeviceFuncs::GetDisplayCompChange) (uint32_t devId, uint32_t *num, uint32_t *Layers, int32_t *type) +``` + +**描述:** + +获取显示设备合成类型有变化的layer。 + +在合成准备阶段,显示设备会根据设备的合成能力修改图层的合成类型,该接口会返回哪些图层合成类型发生了变化。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

num

+

输出参数,表示合成类型发生了变化的图层数量。

+

Layers

+

输出参数,指向图层数组首地址。

+

type

+

输出参数,指向合成类型数组首地址。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetDisplayGamutMap + +``` +int32_t(* DeviceFuncs::GetDisplayGamutMap) (uint32_t devId, GamutMap *gamutMap) +``` + +**描述:** + +获取显示设备当前的色域映射模式。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

gamutMap

+

输出参数,保存对应设备的色域映射模式,由接口实现层进行写入。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetDisplayMode + +``` +int32_t(* DeviceFuncs::GetDisplayMode) (uint32_t devId, uint32_t *modeId) +``` + +**描述:** + +获取显示设备当前的显示模式。 + +图形服务可以通过该接口获取显示设备当前的显示模式。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

modeId

+

输出参数,存放当前设备的显示模式ID, 由接口实现层进行数据的写入。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetDisplayPowerStatus + +``` +int32_t(* DeviceFuncs::GetDisplayPowerStatus) (uint32_t devId, DispPowerStatus *status) +``` + +**描述:** + +获取显示设备当前的电源状态。 + +图形服务可以通过该接口获设置显示设备的电源状态。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

status

+

输出参数,保存对应设备的电源状态,由接口实现层进行状态的写入。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetDisplayProperty + +``` +int32_t(* DeviceFuncs::GetDisplayProperty) (uint32_t devId, uint32_t id, uint64_t *value) +``` + +**描述:** + +设置显示设备属性值。 + +图形服务可以通过该接口获取显示设备具体的属性值。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

id

+

输入参数,由接口GetDisplayCapability返回属性ID。

+

level

+

输出参数,属性ID对应的属性值,由接口实现层写入。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetDisplayReleaseFence + +``` +int32_t(* DeviceFuncs::GetDisplayReleaseFence) (uint32_t devId, uint32_t *num, uint32_t *layers, int32_t *fences) +``` + +**描述:** + +获取显示图层fence。 + +图形服务在调用接口Commit后,需要通过该接口获取图层的fence信息。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

num

+

输出参数,图层个数。

+

layers

+

输出参数,图层首地址,指向图层数组的首地址。

+

fences

+

输出参数,fence首地址,指向fence数组的首地址。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetDisplaySupportedColorGamuts + +``` +int32_t(* DeviceFuncs::GetDisplaySupportedColorGamuts) (uint32_t devId, uint32_t *num, ColorGamut *gamuts) +``` + +**描述:** + +获取显示设备支持的色域信息。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

num

+

输出参数,设备支持的色域数组个数。

+

gamuts

+

输出参数,色域首地址,指向色域数组首地址。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetDisplaySupportedModes + +``` +int32_t(* DeviceFuncs::GetDisplaySupportedModes) (uint32_t devId, uint32_t *num, DisplayModeInfo *modes) +``` + +**描述:** + +获取显示设备支持的显示模式信息。 + +图形服务可以通过该接口获取到显示设备支持哪些显示模式。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

num

+

输出参数,设备支持的模式数量。

+

modes

+

输出参数,设备支持的所有模式信息,包括所有能支持的分辨率和刷新率,每一个模式实现层都有一个Id与之对应,在获取当前模式 和设置当前模式时都会使用到,详情参考 {@DisplayModeInfo}。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetHDRCapabilityInfos + +``` +int32_t(* DeviceFuncs::GetHDRCapabilityInfos) (uint32_t devId, HDRCapability *info) +``` + +**描述:** + +获取显示设备支持的HDR属性信息。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

info

+

输出参数,保存对应设备的HDR属性信息,由接口实现层进行写入。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetSupportedMetadataKey + +``` +int32_t(* DeviceFuncs::GetSupportedMetadataKey) (uint32_t devId, uint32_t *num, HDRMetadataKey *keys) +``` + +**描述:** + +获取显示设备支持的 HDRMetadataKey。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

num

+

输出参数,设备支持的HDRMetadataKey数组个数。

+

keys

+

输出参数,HDRMetadataKey首地址,指向HDRMetadataKey数组首地址。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetWriteBackFrame + +``` +int32_t(* DeviceFuncs::GetWriteBackFrame) (uint32_t devId, BufferHandle *buffer, int32_t *fence) +``` + +**描述:** + +获取显示设备的回写帧。 + +该接口用来获取devId指定的回写点数据,接口实现层将显示设备回写点的数据写入到设置的缓存中。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

buffer

+

输出参数,回写点数据缓存。

+

fence

+

输出参数,同步栅栏,图形服务在调用该接口时,需要将Buffer的release fence 传入,标记该缓存是否可以被写入,接口实现层在接口返回前需要将buffer的acquirce fence 写入回传给图形服务,用来标记回写数据是否已经写入缓存。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## globalAlpha + +``` +uint32_t GfxOpt::globalAlpha +``` + +**描述:** + +全局alpha的值 + +## h + +``` +int32_t IRect::h +``` + +**描述:** + +矩形框高度 + +## hdl + +``` +BufferHandle* LayerBuffer::hdl +``` + +**描述:** + +图层buffer句柄 + +## height \[1/7\] + +``` +uint32_t DisplayInfo::height +``` + +**描述:** + +显示屏高度 + +## height \[2/7\] + +``` +int32_t LayerInfo::height +``` + +**描述:** + +图层高度 + +## height \[3/7\] + +``` +int32_t LayerBuffer::height +``` + +**描述:** + +buffer高度 + +## height \[4/7\] + +``` +int32_t ISurface::height +``` + +**描述:** + +图像高度 + +## height \[5/7\] + +``` +int32_t DisplayModeInfo::height +``` + +**描述:** + +像素高度 + +## height \[6/7\] + +``` +uint32_t AllocInfo::height +``` + +**描述:** + +申请内存高度 + +## height \[7/7\] + +``` +uint32_t VerifyAllocInfo::height +``` + +**描述:** + +分配内存的高度 + +## id + +``` +int32_t DisplayModeInfo::id +``` + +**描述:** + +模式ID + +## InvokeDisplayCmd + +``` +int32_t(* DeviceFuncs::InvokeDisplayCmd) (uint32_t devId,...) +``` + +**描述:** + +调用显示设备命令。 + +该接口用于图形服务和接口实现层之间的接口扩展,如果由临时接口新增可以通过该接口进行扩展,不用增加新的接口定义。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## key + +``` +[HDRMetadataKey](_display.md#ga5d7d90acb5c568e62a02b18446f37789) HDRMetaData::key +``` + +**描述:** + +HDR元数据关键字 + +## maxAverageLum + +``` +float HDRCapability::maxAverageLum +``` + +**描述:** + +最大的平均光亮度luminance值 + +## maxLum + +``` +float HDRCapability::maxLum +``` + +**描述:** + +最大的光亮度luminance值 + +## minLum + +``` +float HDRCapability::minLum +``` + +**描述:** + +最小的光亮度luminance值 + +## mirrorType + +``` +[MirrorType](_display.md#ga08d32376574b541d162d8534adb78fd0) GfxOpt::mirrorType +``` + +**描述:** + +镜像类型 + +## name \[1/2\] + +``` +char PropertyObject::名称[PROPERTY_NAME_LEN] +``` + +**描述:** + +属性名称 + +## name \[2/2\] + +``` +char DisplayCapability::名称[PROPERTY_NAME_LEN] +``` + +**描述:** + +显示设备名称 + +## phyAddr \[1/2\] + +``` +uint64_t BufferData::phyAddr +``` + +**描述:** + +物理内存地址 + +## phyAddr \[2/2\] + +``` +uint64_t ISurface::phyAddr +``` + +**描述:** + +图像首地址 + +## phyHeight + +``` +uint32_t DisplayCapability::phyHeight +``` + +**描述:** + +物理高度 + +## phyWidth + +``` +uint32_t DisplayCapability::phyWidth +``` + +**描述:** + +物理宽度 + +## pitch + +``` +int32_t LayerBuffer::pitch +``` + +**描述:** + +一行数据所占字节数 + +## pixFormat \[1/2\] + +``` +[PixelFormat](_display.md#ga60883d4958a60b91661e97027a85072a) LayerInfo::pixFormat +``` + +**描述:** + +图层像素格式 + +## pixFormat \[2/2\] + +``` +[PixelFormat](_display.md#ga60883d4958a60b91661e97027a85072a) LayerBuffer::pixFormat +``` + +**描述:** + +buffer像素格式 + +## PrepareDisplayLayers + +``` +int32_t(* DeviceFuncs::PrepareDisplayLayers) (uint32_t devId, bool *needFlushFb) +``` + +**描述:** + +显示设备合成前准备。 + +图形服务在合成前需要通过该接口通知显示设备进行合成前的准备工作。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

needFlushFb

+

输出参数,接口实现层通过该参数指示图形服务在commit前是否需要通过SetDisplayClientBuffer重新设置显示帧存。 true表示需要设置显示帧存,false表示不需要。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## propertyCount + +``` +uint32_t DisplayCapability::propertyCount +``` + +**描述:** + +属性数组大小 + +## propId + +``` +uint32_t PropertyObject::propId +``` + +**描述:** + +属性ID + +## props + +``` +[PropertyObject](_property_object.md)* DisplayCapability::props +``` + +**描述:** + +属性数组 + +## r + +``` +int32_t ICircle::r +``` + +**描述:** + +圆的半径 + +## rect + +``` +[IRect](_i_rect.md) Rectangle::rect +``` + +**描述:** + +矩形区域 + +## RegDisplayRefreshCallback + +``` +int32_t(* DeviceFuncs::RegDisplayRefreshCallback) (uint32_t devId, RefreshCallback callback, void *data) +``` + +**描述:** + +刷新请求回调。 + +注册刷新请求事件回调,当实现层有刷新需求时,实现层通过回调注册的接口通知图形服务。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

callback

+

输入参数,刷新请求事件回调实例,当有接口实现层有刷新请求时,需要通过该实例通知图形服务。

+

data

+

输出参数,图形服务携带的私有数据,在事件回调接口中需要返回给图形服务。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#ga12a925dadef7573cd74d63d06824f9b0)。 + +## RegDisplayVBlankCallback + +``` +int32_t(* DeviceFuncs::RegDisplayVBlankCallback) (uint32_t devId, VBlankCallback callback, void *data) +``` + +**描述:** + +注册VBlank事件回调。 + +注册VBlank事件回调,当有VBlank事件发生时接口实现层需要回调注册的接口。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

callback

+

输入参数,VBlank事件回调实例,当有VBlank事件发生时并且DisplayVsync处于Enable状态,接口实现层需要通过该实例通知图形服务。

+

data

+

输出参数,图形服务携带的私有数据,在事件回调接口中需要返回给图形服务。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#ga12a925dadef7573cd74d63d06824f9b0)。 + +## RegHotPlugCallback + +``` +int32_t(* DeviceFuncs::RegHotPlugCallback) ((HotPlugCallback callback, void *data) +``` + +**描述:** + +注册热插拔事件回调。 + +注册热插拔事件回调,当有热插拔事件发生时接口实现层需要回调注册的接口。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

callback

+

输入参数,热插拔事件回调实例,当有热插拔事件发生时,接口实现层需要通过该实例通知图形服务。

+

data

+

输出参数,图形服务携带的私有数据,在事件回调接口中需要返回给图形服务。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#ga12a925dadef7573cd74d63d06824f9b0)。 + +## reserve + +``` +int32_t __attribute__::reserve[0] +``` + +**描述:** + +reserve数组 + +## reserveInts + +``` +uint32_t __attribute__::reserveInts +``` + +**描述:** + +reserve数组的个数 + +## rotAngle + +``` +int32_t DisplayInfo::rotAngle +``` + +**描述:** + +显示屏旋转角度 + +## rotateType + +``` +[TransformType](_display.md#gaa65f3b21a9a92ff022e435a7304126d2) GfxOpt::rotateType +``` + +**描述:** + +旋转类型 + +## SetDisplayBacklight + +``` +int32_t(* DeviceFuncs::SetDisplayBacklight) (uint32_t devId, uint32_t level) +``` + +**描述:** + +设置显示设备当前的背光值。 + +图形服务可以通过该接口获设置显示设备的背光值。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

level

+

输入参数,表示需要设置的背光值。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetDisplayClientBuffer + +``` +int32_t(* DeviceFuncs::SetDisplayClientBuffer) (uint32_t devId, const BufferHandle *buffer, int32_t fence) +``` + +**描述:** + +设置显示设备的显示缓存。 + +图形服务可以通过该接口将显示缓存设置给显示设备,显示设备硬件合成结果将会存放在该显示缓存中。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

buffer

+

输入参数,显示缓存。

+

fence

+

输入参数,同步栅栏,标识显示缓存是否可以访问,有图形服务创建和释放,接口实现层需要等待同步栅栏发送信号后才能使用显示缓存。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetDisplayClientCrop + +``` +int32_t(* DeviceFuncs::SetDisplayClientCrop) (uint32_t devId, IRect *rect) +``` + +**描述:** + +设置显示设备的裁剪区域。 + +图形服务可以通过该接口设置显示设备的ClientBuffer的裁剪区域,裁剪区域不能超过ClientBuffer的大小。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

rect

+

输入参数,ClientBuffer的裁剪区域。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetDisplayClientDamage + +``` +int32_t(* DeviceFuncs::SetDisplayClientDamage) (uint32_t devId, uint32_t num, IRect *rect) +``` + +**描述:** + +设置显示设备的显示脏区。 + +图形服务可以通过该接口设置显示设备脏区,接口实现层可以根据该区域进行区域刷新,脏区是由多个矩形区域组合起来的。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

num

+

输入参数,矩形个数。

+

rect

+

输入参数,区域矩形指针,指向矩形数组的首地址。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetDisplayClientDestRect + +``` +int32_t(* DeviceFuncs::SetDisplayClientDestRect) (uint32_t devId, IRect *rect) +``` + +**描述:** + +设置显示设备的显示区域。 + +图形服务可以通过该接口设置显示设备的显示区域。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

rect

+

输入参数,显示区域。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetDisplayColorGamut + +``` +int32_t(* DeviceFuncs::SetDisplayColorGamut) (uint32_t devId, ColorGamut gamut) +``` + +**描述:** + +设置显示设备当前的色域模式。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

gamut

+

输入参数,表示需要设置的色域模式。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetDisplayColorTransform + +``` +int32_t(* DeviceFuncs::SetDisplayColorTransform) (uint32_t devId, const float *matrix) +``` + +**描述:** + +设置显示设备当前的4x4的颜色转换矩阵。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

matrix

+

输入参数,表示需要设置的颜色转换模式。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetDisplayGamutMap + +``` +int32_t(* DeviceFuncs::SetDisplayGamutMap) (uint32_t devId, GamutMap gamutMap) +``` + +**描述:** + +设置显示设备当前的色域映射模式。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

gamutMap

+

输入参数,表示需要设置的色域映射模式。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetDisplayMode + +``` +int32_t(* DeviceFuncs::SetDisplayMode) (uint32_t devId, uint32_t modeId) +``` + +**描述:** + +设置显示设备的显示模式。 + +图形服务可以通过该接口获设置显示设备的显示模式。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

modeId

+

输入参数,指明需要设置的模式ID,接口实现层将设备切换到该参数对应的显示模式。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetDisplayPowerStatus + +``` +int32_t(* DeviceFuncs::SetDisplayPowerStatus) (uint32_t devId, [DispPowerStatus](#ga0f3c8af6e9d40730b0d2e0fbbf8e627d) status) +``` + +**描述:** + +设置显示设备当前的电源状态。 + +图形服务可以通过该接口获设置显示设备的电源状态。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

status

+

输入参数,表示需要设置的电源状态。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetDisplayProperty + +``` +int32_t(* DeviceFuncs::SetDisplayProperty) (uint32_t devId, uint32_t id, uint64_t value) +``` + +**描述:** + +设置显示设备属性值。 + +图形服务可以通过该接口设置显示设备具体的属性值。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

id

+

输入参数,由接口GetDisplayCapability返回属性ID。

+

value

+

输入参数,需要设置的属性值。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetDisplayVsyncEnabled + +``` +int32_t(* DeviceFuncs::SetDisplayVsyncEnabled) (uint32_t devId, bool enabled) +``` + +**描述:** + +使能垂直同步信号。 + +图形服务可以通过该接口使能或取消垂直同步信号,当有垂直同步信号产生时,接口实现层需要回调图形服务通过RegDisplayVBlankCallback注册的 VBlankCallback 回调。 图形服务在需要刷新显示时需要使能垂直同步信号,在收到VBlankCallback事件回调时再进行合成送显,不需要刷新显示时需要取消垂直同步信号。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

enabled

+

输入参数,使能状态,true表示能,false表示不能。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetVirtualDisplayBuffer + +``` +int32_t(* DeviceFuncs::SetVirtualDisplayBuffer) (uint32_t devId, BufferHandle *buffer, int32_t fence) +``` + +**描述:** + +设置虚拟屏的输出缓存。 + +该接口用于设置虚拟屏输出缓存,接口实现层需要将虚拟屏的输出放入到该缓存中,接口实现层需要等待同步栅栏发送信号后才能使用缓存。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

buffer

+

输出参数,输出缓存。

+

fence

+

输出参数,同步栅栏。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## stride + +``` +int32_t ISurface::stride +``` + +**描述:** + +图像跨度 + +## supportLayers + +``` +uint32_t DisplayCapability::supportLayers +``` + +**描述:** + +支持的图层数 + +## supportWriteBack + +``` +bool DisplayCapability::supportWriteBack +``` + +**描述:** + +是否支持回写 + +## time + +``` +int64_t PresentTimestamp::time +``` + +**描述:** + +类型对应的值 + +## type \[1/3\] + +``` +[LayerType](_display.md#ga56943a0946e5f15e5e58054b8e7a04a4) LayerInfo::type +``` + +**描述:** + +图层类型,包括图形层、视频层和媒体播放模式 + +## type \[2/3\] + +``` +[InterfaceType](_display.md#gaf1ef2c97e255bd7f21d3b7614b283d9d) DisplayCapability::type +``` + +**描述:** + +显示屏接口类型 + +## type \[3/3\] + +``` +[PresentTimestampType](_display.md#gabdba71665ea5ba4004ac1a9fbeb505f3) PresentTimestamp::type +``` + +**描述:** + +上屏时间戳类型 + +## uOffset + +``` +size_t __attribute__::uOffset +``` + +**描述:** + +U的偏移量 + +## usage \[1/2\] + +``` +uint64_t AllocInfo::usage +``` + +**描述:** + +申请内存的使用场景 + +## usage \[2/2\] + +``` +uint64_t VerifyAllocInfo::usage +``` + +**描述:** + +内存的用处 + +## uvStep + +``` +size_t __attribute__::uvStep +``` + +**描述:** + +UV的step信息 + +## uvStride + +``` +size_t __attribute__::uvStride +``` + +**描述:** + +UV的stride信息 + +## value \[1/2\] + +``` +uint64_t PropertyObject::value +``` + +**描述:** + +属性值 + +## value \[2/2\] + +``` +float HDRMetaData::value +``` + +**描述:** + +关键字对应的值 + +## virAddr + +``` +void* BufferData::virAddr +``` + +**描述:** + +虚拟内存地址 + +## virtualDispCount + +``` +uint32_t DisplayCapability::virtualDispCount +``` + +**描述:** + +支持的虚拟屏数 + +## vOffset + +``` +size_t __attribute__::vOffset +``` + +**描述:** + +V的偏移量 + +## w + +``` +int32_t IRect::w +``` + +**描述:** + +矩形框宽度 + +## width \[1/7\] + +``` +uint32_t DisplayInfo::width +``` + +**描述:** + +显示屏宽度 + +## width \[2/7\] + +``` +int32_t LayerInfo::width +``` + +**描述:** + +图层宽度 + +## width \[3/7\] + +``` +int32_t LayerBuffer::width +``` + +**描述:** + +buffer宽度 + +## width \[4/7\] + +``` +int32_t ISurface::width +``` + +**描述:** + +图像宽度 + +## width \[5/7\] + +``` +int32_t DisplayModeInfo::width +``` + +**描述:** + +像素宽度 + +## width \[6/7\] + +``` +uint32_t AllocInfo::width +``` + +**描述:** + +申请内存宽度 + +## width \[7/7\] + +``` +uint32_t VerifyAllocInfo::width +``` + +**描述:** + +分配内存的宽度 + +## x \[1/2\] + +``` +int32_t IRect::x +``` + +**描述:** + +矩形框起始x坐标 + +## x \[2/2\] + +``` +int32_t ICircle::x +``` + +**描述:** + +圆心x坐标 + +## x0 + +``` +int32_t ILine::x0 +``` + +**描述:** + +线条起点的x坐标 + +## x1 + +``` +int32_t ILine::x1 +``` + +**描述:** + +线条终点的x坐标 + +## y \[1/2\] + +``` +int32_t IRect::y +``` + +**描述:** + +矩形框起始y坐标 + +## y \[2/2\] + +``` +int32_t ICircle::y +``` + +**描述:** + +圆心y坐标r + +## y0 + +``` +int32_t ILine::y0 +``` + +**描述:** + +线条起点的y坐标 + +## y1 + +``` +int32_t ILine::y1 +``` + +**描述:** + +线条终点的y坐标 + +## yOffset + +``` +size_t __attribute__::yOffset +``` + +**描述:** + +Y的偏移量 + +## yStride + +``` +size_t __attribute__::yStride +``` + +**描述:** + +Y的stride信息 + diff --git a/zh-cn/device-dev/api/toctopics/_display_capability.md b/zh-cn/device-dev/api/toctopics/_display_capability.md new file mode 100644 index 0000000000..e07618df07 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_display_capability.md @@ -0,0 +1,71 @@ +# DisplayCapability + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

name [PROPERTY_NAME_LEN]

+

显示设备名称

+

type

+

显示屏接口类型

+

phyWidth

+

物理宽度

+

phyHeight

+

物理高度

+

supportLayers

+

支持的图层数

+

virtualDispCount

+

支持的虚拟屏数

+

supportWriteBack

+

是否支持回写

+

propertyCount

+

属性数组大小

+

props

+

属性数组

+
+ +## **详细描述** + +定义输出性能。 + diff --git a/zh-cn/device-dev/api/toctopics/_display_info.md b/zh-cn/device-dev/api/toctopics/_display_info.md new file mode 100644 index 0000000000..69c51fae4a --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_display_info.md @@ -0,0 +1,41 @@ +# DisplayInfo + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

width

+

显示屏宽度

+

height

+

显示屏高度

+

rotAngle

+

显示屏旋转角度

+
+ +## **详细描述** + +定义显示信息结构体。 + diff --git a/zh-cn/device-dev/api/toctopics/_display_mode_info.md b/zh-cn/device-dev/api/toctopics/_display_mode_info.md new file mode 100644 index 0000000000..500a986dc0 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_display_mode_info.md @@ -0,0 +1,46 @@ +# DisplayModeInfo + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

width

+

像素宽度

+

height

+

像素高度

+

freshRate

+

刷新速率

+

id

+

模式ID

+
+ +## **详细描述** + +定义输出模式信息。 + diff --git a/zh-cn/device-dev/api/toctopics/_enroll_param.md b/zh-cn/device-dev/api/toctopics/_enroll_param.md new file mode 100644 index 0000000000..72ab14a5fa --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_enroll_param.md @@ -0,0 +1,81 @@ +# EnrollParam + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

authType

+

用户认证凭据类型。

+

executorType

+

执行器类型。

+

executorId

+

既定用户认证凭据类型的执行器ID。

+
+ +## **详细描述** + +注册认证凭据参数。 + +**Since:** + +3.2 + +**Version:** + +1.0 + +## **类成员变量说明** + +## authType + +``` +enum AuthType EnrollParam::authType +``` + +**描述:** + +用户认证凭据类型。 + +## executorId + +``` +unsigned int EnrollParam::executorId +``` + +**描述:** + +既定用户认证凭据类型的执行器ID。 + +## executorType + +``` +unsigned int EnrollParam::executorType +``` + +**描述:** + +执行器类型。 + diff --git a/zh-cn/device-dev/api/toctopics/_enrolled_info.md b/zh-cn/device-dev/api/toctopics/_enrolled_info.md new file mode 100644 index 0000000000..3815419a39 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_enrolled_info.md @@ -0,0 +1,66 @@ +# EnrolledInfo + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

enrolledId

+

注册ID,用户注册新的认证凭据时会更新注册ID。

+

authType

+

用户认证凭据类型。

+
+ +## **详细描述** + +注册信息。 + +**Since:** + +3.2 + +**Version:** + +1.0 + +## **类成员变量说明** + +## authType + +``` +enum AuthType EnrolledInfo::authType +``` + +**描述:** + +用户认证凭据类型AuthType\}。 + +## enrolledId + +``` +unsigned long EnrolledInfo::enrolledId +``` + +**描述:** + +注册ID,用户注册新的认证凭据时会更新注册ID。 + diff --git a/zh-cn/device-dev/api/toctopics/_event_info.md b/zh-cn/device-dev/api/toctopics/_event_info.md new file mode 100644 index 0000000000..5e1e5449c7 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_event_info.md @@ -0,0 +1,118 @@ +# EventInfo + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

appData

+

设置回调时给入的上层实例。

+

appDataLen

+

appData字节数。

+

data1

+

事件上报携带的数据1。

+

data2

+

事件上报携带的数据2。

+

eventData

+

事件上报携带的数据信息。

+

eventDataLen

+

eventData字节数。

+
+ +## **详细描述** + +定义事件上报信息。 + +## **类成员变量说明** + +## appData + +``` +int8_t* EventInfo::appData +``` + +**描述:** + +设置回调时给入的上层实例 + +## appDataLen + +``` +uint32_t EventInfo::appDataLen +``` + +**描述:** + +appData字节数 + +## data1 + +``` +uint32_t EventInfo::data1 +``` + +**描述:** + +事件上报携带的数据1 + +## data2 + +``` +uint32_t EventInfo::data2 +``` + +**描述:** + +事件上报携带的数据2 + +## eventData + +``` +int8_t* EventInfo::eventData +``` + +**描述:** + +事件上报携带的数据信息 + +## eventDataLen + +``` +uint32_t EventInfo::eventDataLen +``` + +**描述:** + +eventData字节数 + diff --git a/zh-cn/device-dev/api/toctopics/_event_package.md b/zh-cn/device-dev/api/toctopics/_event_package.md new file mode 100644 index 0000000000..cdf3b78cc3 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_event_package.md @@ -0,0 +1,88 @@ +# EventPackage + +## **概述** + +**所属模块:** + +[Input](_input.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

type

+

输入事件的属性

+

code

+

输入事件的特定编码项

+

value

+

输入事件编码项对应的值

+

timestamp

+

输入事件对应的时间戳

+
+ +## **详细描述** + +input事件数据包结构。 + +## **类成员变量说明** + +## code + +``` +uint32_t EventPackage::code +``` + +**描述:** + +输入事件的特定编码项 + +## timestamp + +``` +uint64_t EventPackage::timestamp +``` + +**描述:** + +输入事件对应的时间戳 + +## type + +``` +uint32_t EventPackage::type +``` + +**描述:** + +输入事件的属性 + +## value + +``` +int32_t EventPackage::value +``` + +**描述:** + +输入事件编码项对应的值 + diff --git a/zh-cn/device-dev/api/toctopics/_executor_info.md b/zh-cn/device-dev/api/toctopics/_executor_info.md new file mode 100644 index 0000000000..8f9f9be002 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_executor_info.md @@ -0,0 +1,173 @@ +# ExecutorInfo + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) | [HdfPinAuth](_hdf_pin_auth.md) | [HdfUserAuth](_hdf_user_auth.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

sensorId

+

传感器ID,不同传感器在人脸/口令认证驱动内的唯一标识。

+

executorType

+

执行器类型,根据执行器支持的能力/算法类型进行分类。

+

index

+

用户认证框架的执行器索引。

+

executorRole

+

执行器角色ExecutorRole。

+

authType

+

用户认证凭据类型。

+

esl

+

执行器安全等级。

+

publicKey

+

执行器公钥,用于校验该执行器私钥签名的信息。

+

extraInfo

+

其他相关信息,用于支持信息扩展。

+

info

+

执行器注册信息ExecutorRegisterInfo。

+
+ +## **详细描述** + +执行器信息。 + +**Since:** + +3.2 + +**Version:** + +1.0 + +## **类成员变量说明** + +## authType + +``` +enum AuthType ExecutorInfo::authType +``` + +**描述:** + +用户认证凭据类型。 + +## esl + +``` +enum ExecutorSecureLevel ExecutorInfo::esl +``` + +**描述:** + +执行器安全等级ExecutorSecureLevel。 + +## executorRole + +``` +enum ExecutorRole ExecutorInfo::executorRole +``` + +**描述:** + +执行器角色ExecutorRole。 + +## executorType + +``` +unsigned int ExecutorInfo::executorType +``` + +**描述:** + +执行器类型,根据执行器支持的能力/算法类型进行分类。 + +## extraInfo + +``` +unsigned char [] ExecutorInfo::extraInfo +``` + +**描述:** + +其他相关信息,用于支持信息扩展。 + +## index + +``` +unsigned long ExecutorInfo::index +``` + +**描述:** + +用户认证框架的执行器索引。 + +## info + +``` +struct ExecutorRegisterInfo ExecutorInfo::info +``` + +**描述:** + +执行器注册信息ExecutorRegisterInfo。 + +## publicKey + +``` +unsigned char [] ExecutorInfo::publicKey +``` + +**描述:** + +执行器公钥,用于校验该执行器私钥签名的信息。 + +## sensorId + +``` +unsigned short ExecutorInfo::sensorId +``` + +**描述:** + +传感器ID,不同传感器在人脸认证驱动内的唯一标识。 + +传感器ID,不同传感器在口令认证驱动内的唯一标识。 + diff --git a/zh-cn/device-dev/api/toctopics/_executor_register_info.md b/zh-cn/device-dev/api/toctopics/_executor_register_info.md new file mode 100644 index 0000000000..358d3d459e --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_executor_register_info.md @@ -0,0 +1,126 @@ +# ExecutorRegisterInfo + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

authType

+

用户认证凭据类型。

+

executorRole

+

执行器角色ExecutorRole。

+

executorId

+

既定用户认证凭据类型的执行器ID。

+

executorType

+

执行器类型,根据执行器支持的认证能力进行分类。

+

esl

+

执行器安全等级ExecutorSecureLevel。

+

publicKey

+

执行器公钥,用于校验该执行器私钥签名的信息。

+
+ +## **详细描述** + +执行器注册信息。 + +**Since:** + +3.2 + +**Version:** + +1.0 + +## **类成员变量说明** + +## authType + +``` +enum AuthType ExecutorRegisterInfo::authType +``` + +**描述:** + +用户认证凭据类型。 + +## esl + +``` +enum ExecutorSecureLevel ExecutorRegisterInfo::esl +``` + +**描述:** + +执行器安全等级ExecutorSecureLevel。 + +## executorId + +``` +unsigned int ExecutorRegisterInfo::executorId +``` + +**描述:** + +既定用户认证凭据类型的执行器ID。 + +## executorRole + +``` +enum ExecutorRole ExecutorRegisterInfo::executorRole +``` + +**描述:** + +执行器角色ExecutorRole。 + +## executorType + +``` +unsigned int ExecutorRegisterInfo::executorType +``` + +**描述:** + +执行器类型,根据执行器支持的认证能力进行分类。 + +## publicKey + +``` +unsigned char [] ExecutorRegisterInfo::publicKey +``` + +**描述:** + +执行器公钥,用于校验该执行器私钥签名的信息。 + diff --git a/zh-cn/device-dev/api/toctopics/_executor_send_msg.md b/zh-cn/device-dev/api/toctopics/_executor_send_msg.md new file mode 100644 index 0000000000..17e4bd6717 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_executor_send_msg.md @@ -0,0 +1,64 @@ +# ExecutorSendMsg + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

index

+

用户认证框架的执行器索引。

+

msg

+

执行器发送的消息。

+
+ +## **详细描述** + +执行器发送的消息。 + +**Since:** + +3.2 + +**Version:** + +## **类成员变量说明** + +## index + +``` +unsigned int ExecutorSendMsg::index +``` + +**描述:** + +用户认证框架的执行器索引。 + +## msg + +``` +unsigned char [] ExecutorSendMsg::msg +``` + +**描述:** + +执行器发送的消息。 + diff --git a/zh-cn/device-dev/api/toctopics/_face_auth_types_8idl.md b/zh-cn/device-dev/api/toctopics/_face_auth_types_8idl.md new file mode 100644 index 0000000000..0c634b046f --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_face_auth_types_8idl.md @@ -0,0 +1,94 @@ +# FaceAuthTypes.idl + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) + +## **汇总** + +## 类 + + + + + + + + + + + + + +

+

描述

+

ExecutorInfo

+

执行器信息。 更多...

+

TemplateInfo

+

凭据模版信息。 更多...

+
+ +## 枚举 + + + + + + + + + + + + + + + + + + + + + + +

枚举

+

描述

+

AuthType : int { PIN = 1, FACE = 2, FINGERPRINT = 4, PIN = 1, FACE = 2, FINGERPRINT = 4, ALL = 0, PIN = 1, FACE = 2, FINGERPRINT = 4 }

+

枚举用户认证凭据类型。 更多...

+

ExecutorRole : int { COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3, COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3, COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 }

+

枚举执行器角色。 更多...

+

ExecutorSecureLevel : int { ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3, ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3, ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 }

+

枚举执行器安全等级。 更多...

+

CommandId : int { LOCK_TEMPLATE = 1, UNLOCK_TEMPLATE = 2, VENDOR_COMMAND_BEGIN = 10000, DEFAULT = 0 }

+

枚举人脸认证功能相关操作命令。 更多...

+

FaceTipsCode : int { FACE_AUTH_TIP_TOO_BRIGHT = 1, FACE_AUTH_TIP_TOO_DARK = 2, FACE_AUTH_TIP_TOO_CLOSE = 3, FACE_AUTH_TIP_TOO_FAR = 4, FACE_AUTH_TIP_TOO_HIGH = 5, FACE_AUTH_TIP_TOO_LOW = 6, FACE_AUTH_TIP_TOO_RIGHT = 7, FACE_AUTH_TIP_TOO_LEFT = 8, FACE_AUTH_TIP_TOO_MUCH_MOTION = 9, FACE_AUTH_TIP_POOR_GAZE = 10, FACE_AUTH_TIP_NOT_DETECTED = 11, VENDOR_FACE_AUTH_TIP_BEGIN = 10000 }

+

枚举提示信息编码。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.face_auth.v1_0

+

人脸认证接口的包路径

+
+ +## **详细描述** + +定义人脸认证驱动的枚举类和数据结构。 + +**Since:** + +3.2 + diff --git a/zh-cn/device-dev/api/toctopics/_get_buffer_handle_usage_params.md b/zh-cn/device-dev/api/toctopics/_get_buffer_handle_usage_params.md new file mode 100644 index 0000000000..b2b32291ca --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_get_buffer_handle_usage_params.md @@ -0,0 +1,88 @@ +# GetBufferHandleUsageParams + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

size

+

结构体大小

+

version

+

组件版本信息

+

portIndex

+

端口索引

+

usage

+

使用率

+
+ +## **详细描述** + +BufferHandleUsage类型定义。 + +## **类成员变量说明** + +## portIndex + +``` +uint32_t GetBufferHandleUsageParams::portIndex +``` + +**描述:** + +端口索引 + +## size + +``` +uint32_t GetBufferHandleUsageParams::size +``` + +**描述:** + +结构体大小 + +## usage + +``` +uint32_t GetBufferHandleUsageParams::usage +``` + +**描述:** + +usage + +## version + +``` +union OMX_VERSIONTYPE GetBufferHandleUsageParams::version +``` + +**描述:** + +组件版本信息 + diff --git a/zh-cn/device-dev/api/toctopics/_gfx_funcs.md b/zh-cn/device-dev/api/toctopics/_gfx_funcs.md new file mode 100644 index 0000000000..d3c06af0aa --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_gfx_funcs.md @@ -0,0 +1,380 @@ +# GfxFuncs + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

( InitGfx )(void)

+

初始化硬件加速。 更多...

+

( DeinitGfx )(void)

+

去初始化硬件加速。 更多...

+

( FillRect )(ISurface *surface, IRect *rect, uint32_t color, GfxOpt *opt)

+

填充矩形,用一种颜色填充画布上指定矩形区域的矩形框。 更多...

+

( DrawRectangle )(ISurface *surface, Rectangle *rect, uint32_t color, GfxOpt *opt)

+

绘制矩形框,用一种颜色在画布上绘制指定区域的矩形框。 更多...

+

( DrawLine )(ISurface *surface, ILine *line, GfxOpt *opt)

+

绘制直线,使用一种颜色在画布上绘制一条直线。 更多...

+

( DrawCircle )(ISurface *surface, ICircle *circle, GfxOpt *opt)

+

绘制圆形,使用一种颜色在画布上绘制指定圆心和半径的圆。 更多...

+

( Blit )(ISurface *srcSurface, IRect *srcRect, ISurface *dstSurface, IRect *dstRect, GfxOpt *opt)

+

位图搬移 更多...

+

( Sync )(int32_t timeOut)

+

硬件加速同步。 更多...

+
+ +## **详细描述** + +显示硬件加速驱动接口结构体,定义硬件加速驱动接口函数指针。 + +## **类成员变量说明** + +## Blit + +``` +int32_t(* GfxFuncs::Blit) (ISurface *srcSurface, IRect *srcRect, ISurface *dstSurface, IRect *dstRect, GfxOpt *opt) +``` + +**描述:** + +位图搬移 + +在位图搬移过程中,可以实现色彩空间转换、缩放、旋转等功能。 + +**参数:** + + + + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

srcSurface

+

输入参数,源位图信息。

+

srcRect

+

输入参数,源位图搬移区域。

+

dstSurface

+

输出参数,目标位图信息。

+

dstRect

+

输出参数,目标位图区域。

+

opt

+

输入参数,硬件加速选项。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## DeinitGfx + +``` +int32_t(* GfxFuncs::DeinitGfx) (void) +``` + +**描述:** + +去初始化硬件加速。 + +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[InitGfx](_gfx_funcs.md#a3ec8ed6a467ed0c88e4dd723723c0f41) + +## DrawCircle + +``` +int32_t(* GfxFuncs::DrawCircle) (ISurface *surface, ICircle *circle, GfxOpt *opt) +``` + +**描述:** + +绘制圆形,使用一种颜色在画布上绘制指定圆心和半径的圆。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

surface

+

输入参数,画布。

+

circle

+

输入参数,圆形结构。

+

opt

+

输入参数,硬件加速选项。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## DrawLine + +``` +int32_t(* GfxFuncs::DrawLine) (ISurface *surface, ILine *line, GfxOpt *opt) +``` + +**描述:** + +绘制直线,使用一种颜色在画布上绘制一条直线。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

surface

+

输入参数,画布。

+

line

+

输入参数,直线结构。

+

opt

+

输入参数,硬件加速选项。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## DrawRectangle + +``` +int32_t(* GfxFuncs::DrawRectangle) (ISurface *surface, Rectangle *rect, uint32_t color, GfxOpt *opt) +``` + +**描述:** + +绘制矩形框,用一种颜色在画布上绘制指定区域的矩形框。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

surface

+

输入参数,画布。

+

rect

+

输入参数,矩形框结构。

+

color

+

输入参数,绘制的颜色。

+

opt

+

输入参数,硬件加速选项。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## FillRect + +``` +int32_t(* GfxFuncs::FillRect) (ISurface *surface, IRect *rect, uint32_t color, GfxOpt *opt) +``` + +**描述:** + +填充矩形,用一种颜色填充画布上指定矩形区域的矩形框。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

surface

+

输入参数,画布。

+

rect

+

输入参数,填充的矩形区域。

+

color

+

输入参数,填充的颜色。

+

opt

+

输入参数,硬件加速选项。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## InitGfx + +``` +int32_t(* GfxFuncs::InitGfx) (void) +``` + +**描述:** + +初始化硬件加速。 + +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[DeinitGfx](_gfx_funcs.md#ad86b127aad2a6e7f01e07b77054d42b3) + +## Sync + +``` +int32_t(* GfxFuncs::Sync) (int32_t timeOut) +``` + +**描述:** + +硬件加速同步。 + +在使用硬件加速模块进行图像绘制、图像叠加、图像搬移时,通过调用该接口进行硬件同步,该接口会等待硬件加速完成。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

timeOut

+

输入参数,硬件加速同步超时设置,设置为0表示无超时,等待直到硬件加速完成。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + diff --git a/zh-cn/device-dev/api/toctopics/_gfx_opt.md b/zh-cn/device-dev/api/toctopics/_gfx_opt.md new file mode 100644 index 0000000000..77263b8f30 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_gfx_opt.md @@ -0,0 +1,81 @@ +# GfxOpt + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

enGlobalAlpha

+

全局alpha使能标志

+

globalAlpha

+

全局alpha的值

+

enPixelAlpha

+

像素alpha使能标志

+

blendType

+

混合方式

+

colorKeyFrom

+

色键模式

+

enableRop

+

Rop功能使能位

+

colorRopType

+

颜色的Rop类型

+

alphaRopType

+

Alpha的Rop类型

+

enableScale

+

缩放功能使能位

+

rotateType

+

旋转类型

+

mirrorType

+

镜像类型

+
+ +## **详细描述** + +图像硬件加速相关的操作选项结构体定义,用于图像硬件加速时的操作选项。 + diff --git a/zh-cn/device-dev/api/toctopics/_gralloc_funcs.md b/zh-cn/device-dev/api/toctopics/_gralloc_funcs.md new file mode 100644 index 0000000000..997ac514e2 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_gralloc_funcs.md @@ -0,0 +1,422 @@ +# GrallocFuncs + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

( AllocMem )(const AllocInfo *info, BufferHandle **handle)

+

显示内存分配。 更多...

+

( FreeMem )(BufferHandle *handle)

+

显示内存释放。 更多...

+

( Mmap )(BufferHandle *handle)

+

显示内存映射,将内存映射到对应的进程地址空间中。 更多...

+

( MmapYUV )(BufferHandle *handle, YUVDescInfo *info)

+

YUV 内存映射。 更多...

+

( MmapCache )(BufferHandle *handle)

+

显示内存映射,将内存映射为 cache 内存到对应的进程地址空间中。 更多...

+

( Unmap )(BufferHandle *handle)

+

内存反映射,将内存进行反映射。 更多...

+

( FlushCache )(BufferHandle *handle)

+

刷新cache,刷新cache里的内容到内存并且使cache里的内容无效。 更多...

+

( FlushMCache )(BufferHandle *handle)

+

刷新Mmap映射的cache,刷新Mmap映射的cache里的内容到内存并且使cache里的内容无效。 更多...

+

( InvalidateCache )(BufferHandle *handle)

+

使cache中的内容无效用以存储更新内存内容。 更多...

+

( IsSupportedAlloc )(uint32_t num, const VerifyAllocInfo *infos, bool *supporteds)

+

检测给定的VerifyAllocInfo数组信息能否申请内存成功。 更多...

+
+ +## **详细描述** + +显示内存驱动接口结构体,定义显示内存驱动接口函数指针。 + +## **类成员变量说明** + +## AllocMem + +``` +int32_t(* GrallocFuncs::AllocMem) (const AllocInfo *info, BufferHandle **handle) +``` + +**描述:** + +显示内存分配。 + +根据GUI图形系统传递的参数分配内存,分配的内存根据类型可分为共享内存、cache内存和非cache内存等。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

info

+

输入参数,指示申请内存AllocInfo信息.

+

handle

+

输入参数,指向申请的内存handle指针。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## FlushCache + +``` +int32_t(* GrallocFuncs::FlushCache) (BufferHandle *handle) +``` + +**描述:** + +刷新cache,刷新cache里的内容到内存并且使cache里的内容无效。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

handle

+

输出参数,待刷新cache的handle指针。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## FlushMCache + +``` +int32_t(* GrallocFuncs::FlushMCache) (BufferHandle *handle) +``` + +**描述:** + +刷新Mmap映射的cache,刷新Mmap映射的cache里的内容到内存并且使cache里的内容无效。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

handle

+

输出参数,待刷新cache的handle指针。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## FreeMem + +``` +void(* GrallocFuncs::FreeMem) (BufferHandle *handle) +``` + +**描述:** + +显示内存释放。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

handle

+

输入参数,待释放的内存handle指针。

+
+ +**返回:** + +成功返回有效地址,失败返回NULL。 + +## InvalidateCache + +``` +int32_t(* GrallocFuncs::InvalidateCache) (BufferHandle *handle) +``` + +**描述:** + +使cache中的内容无效用以存储更新内存内容。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

handle

+

输出参数,待无效cache的handle指针。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## IsSupportedAlloc + +``` +int32_t(* GrallocFuncs::IsSupportedAlloc) (uint32_t num, const VerifyAllocInfo *infos, bool *supporteds) +``` + +**描述:** + +检测给定的VerifyAllocInfo数组信息能否申请内存成功。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

num

+

输入参数,VerifyAllocInfo数组个数。

+

infos

+

输出参数,VerifyAllocInfo数组首地址。

+

supporteds

+

输出参数,supporteds数组首地址, 表示能否申请成功。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## Mmap + +``` +void*(* GrallocFuncs::Mmap) (BufferHandle *handle) +``` + +**描述:** + +显示内存映射,将内存映射到对应的进程地址空间中。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

handle

+

输入参数,待映射内存handle指针。

+
+ +**返回:** + +成功返回有效地址,失败返回NULL。 + +## MmapCache + +``` +void*(* GrallocFuncs::MmapCache) (BufferHandle *handle) +``` + +**描述:** + +显示内存映射,将内存映射为 cache 内存到对应的进程地址空间中。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

handle

+

输出参数,待映射内存 handle 指针。

+
+ +**返回:** + +成功返回有效地址,失败返回 NULL。 + +## MmapYUV + +``` +void*(* GrallocFuncs::MmapYUV) (BufferHandle *handle, YUVDescInfo *info) +``` + +**描述:** + +YUV 内存映射。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

handle

+

输出参数,指示内存映射的输出缓存。

+

info

+

输出参数,指示内存映射的YUVDescInfo信息。

+
+ +**返回:** + +成功返回有效地址,失败返回 NULL。 + +## Unmap + +``` +int32_t(* GrallocFuncs::Unmap) (BufferHandle *handle) +``` + +**描述:** + +内存反映射,将内存进行反映射。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

handle

+

输出参数,待反映射内存handle指针。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + diff --git a/zh-cn/device-dev/api/toctopics/_h_d_r_capability.md b/zh-cn/device-dev/api/toctopics/_h_d_r_capability.md new file mode 100644 index 0000000000..7b0763b078 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_h_d_r_capability.md @@ -0,0 +1,51 @@ +# HDRCapability + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

formatCount

+

支持的HDR格式的数量

+

formats

+

支持的HDR格式的数组首地址

+

maxLum

+

最大的光亮度luminance值

+

maxAverageLum

+

最大的平均光亮度luminance值

+

minLum

+

最小的光亮度luminance值

+
+ +## **详细描述** + +HDR属性结构体定义。 + diff --git a/zh-cn/device-dev/api/toctopics/_h_d_r_meta_data.md b/zh-cn/device-dev/api/toctopics/_h_d_r_meta_data.md new file mode 100644 index 0000000000..fc8f4cc892 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_h_d_r_meta_data.md @@ -0,0 +1,36 @@ +# HDRMetaData + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

key

+

HDR元数据关键字。

+

value

+

关键字对应的值。

+
+ +## **详细描述** + +HDR元数据结构体定义。 + diff --git a/zh-cn/device-dev/api/toctopics/_hdf_face_auth.md b/zh-cn/device-dev/api/toctopics/_hdf_face_auth.md new file mode 100644 index 0000000000..c56be6b842 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_hdf_face_auth.md @@ -0,0 +1,401 @@ +# HdfFaceAuth + +## **汇总** + +## 文件 + + + + + + + + + + + + + + + + + + + +

文件

+

描述

+

FaceAuthTypes.idl

+

定义人脸认证驱动的枚举类和数据结构。

+

FACEAUTH_IExecutor.idl

+

定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。

+

FACEAUTH_IExecutorCallback.idl

+

定义异步API接口回调,用于返回异步接口的请求处理结果和信息。

+

IFaceAuthInterface.idl

+

定义获取人脸认证驱动的执行器列表接口,用于从人脸认证驱动获取执行器对象列表。

+
+ +## 类 + + + + + + + + + + + + + + + + + + + + + + +

+

描述

+

ExecutorInfo

+

执行器信息。 更多...

+

TemplateInfo

+

凭据模版信息。 更多...

+

IExecutor

+

定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 更多...

+

IExecutorCallback

+

定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见IExecutor更多...

+

IFaceAuthInterface

+

定义获取人脸认证驱动的执行器列表接口。 更多...

+
+ +## 枚举 + + + + + + + + + + + + + + + + + + + + + + +

枚举

+

描述

+

AuthType : int { PIN = 1, FACE = 2, FINGERPRINT = 4, ALL = 0 }

+

枚举用户认证凭据类型。 更多...

+

ExecutorRole : int { COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 }

+

枚举执行器角色。 更多...

+

ExecutorSecureLevel : int { ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 }

+

枚举执行器安全等级。 更多...

+

CommandId : int { LOCK_TEMPLATE = 1, UNLOCK_TEMPLATE = 2, VENDOR_COMMAND_BEGIN = 10000, DEFAULT = 0 }

+

枚举人脸认证功能相关操作命令。 更多...

+

FaceTipsCode : int { FACE_AUTH_TIP_TOO_BRIGHT = 1, FACE_AUTH_TIP_TOO_DARK = 2, FACE_AUTH_TIP_TOO_CLOSE = 3, FACE_AUTH_TIP_TOO_FAR = 4, FACE_AUTH_TIP_TOO_HIGH = 5, FACE_AUTH_TIP_TOO_LOW = 6, FACE_AUTH_TIP_TOO_RIGHT = 7, FACE_AUTH_TIP_TOO_LEFT = 8, FACE_AUTH_TIP_TOO_MUCH_MOTION = 9, FACE_AUTH_TIP_POOR_GAZE = 10, FACE_AUTH_TIP_NOT_DETECTED = 11, VENDOR_FACE_AUTH_TIP_BEGIN = 10000 }

+

枚举提示信息编码。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.face_auth.v1_0

+

人脸认证接口的包路径

+
+ +## **详细描述** + +提供人脸认证驱动的标准API接口。 + +人脸认证驱动为人脸认证服务提供统一的访问接口。获取人脸认证驱动代理后,人脸认证服务可以调用相关接口获取执行器,获取人脸认证执行器后, 人脸认证服务可以调用相关接口获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 + +**Since:** + +3.2 + +## **枚举类型说明** + +## AuthType + +``` +enum AuthType : int +``` + +**描述:** + +枚举用户认证凭据类型。 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

PIN

+

认证凭据类型为口令。

+

+

FACE

+

认证凭据类型为人脸。

+

+

FINGERPRINT

+

认证凭据类型为指纹。

+

+

ALL

+

表示包含所有认证凭据类型。

+

+
+ +## CommandId + +``` +enum CommandId : int +``` + +**描述:** + +枚举人脸认证功能相关操作命令。 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

LOCK_TEMPLATE

+

锁定人脸模版。

+

+

UNLOCK_TEMPLATE

+

解锁人脸模版。

+

+

VENDOR_COMMAND_BEGIN

+

用于厂商自定义操作指令。

+

+

DEFAULT

+

默认无效操作命令。

+

+
+ +## ExecutorRole + +``` +enum ExecutorRole : int +``` + +**描述:** + +枚举执行器角色。 + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

COLLECTOR

+

执行器角色为采集器,提供用户认证时的数据采集能力,需要和认证器配合完成用户认证。

+

+

VERIFIER

+

执行器角色为认证器,提供用户认证时数据处理能力,读取存储凭据模板信息并完成比对。

+

+

ALL_IN_ONE

+

执行器角色为全功能执行器,可提供用户认证数据采集、处理、储存及比对能力。

+

+
+ +## ExecutorSecureLevel + +``` +enum ExecutorSecureLevel : int +``` + +**描述:** + +枚举执行器安全等级。 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

ESL0

+

执行器安全级别为0,关键操作在无访问控制执行环境中完成。

+

+

ESL1

+

执行器安全级别为1,关键操作在有访问控制的执行环境中完成。

+

+

ESL2

+

执行器安全级别为2,关键操作在可信执行环境中完成。

+

+

ESL3

+

执行器安全级别为3,关键操作在高安环境如独立安全芯片中完成。

+

+
+ +## FaceTipsCode + +``` +enum FaceTipsCode : int +``` + +**描述:** + +枚举提示信息编码。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

FACE_AUTH_TIP_TOO_BRIGHT

+

获取的人脸图像由于光照度高而过亮。

+

+

FACE_AUTH_TIP_TOO_DARK

+

获取的人脸图像由于光照度低而过暗。

+

+

FACE_AUTH_TIP_TOO_CLOSE

+

人脸离设备过近。

+

+

FACE_AUTH_TIP_TOO_FAR

+

人脸离设备过远。

+

+

FACE_AUTH_TIP_TOO_HIGH

+

设备过高,只拍到人脸的上半部分。

+

+

FACE_AUTH_TIP_TOO_LOW

+

设备过低,只拍到人脸的下半部分。

+

+

FACE_AUTH_TIP_TOO_RIGHT

+

设备偏右,只拍到人脸的右侧部分。

+

+

FACE_AUTH_TIP_TOO_LEFT

+

设备偏左,只拍到人脸的左侧部分。

+

+

FACE_AUTH_TIP_TOO_MUCH_MOTION

+

人脸信息采集过程中,人脸移动过多。

+

+

FACE_AUTH_TIP_POOR_GAZE

+

用户未注视设备。

+

+

FACE_AUTH_TIP_NOT_DETECTED

+

未检测到人脸。

+

+

VENDOR_FACE_AUTH_TIP_BEGIN

+

用于厂商自定义提示信息。

+

+
+ diff --git a/zh-cn/device-dev/api/toctopics/_hdf_pin_auth.md b/zh-cn/device-dev/api/toctopics/_hdf_pin_auth.md new file mode 100644 index 0000000000..9555b071a1 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_hdf_pin_auth.md @@ -0,0 +1,299 @@ +# HdfPinAuth + +## **汇总** + +## 文件 + + + + + + + + + + + + + + + + +

文件

+

描述

+

IExecutor.idl

+

定义执行器标准API接口。接口可用于获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。

+

IExecutorCallback.idl

+

定义异步API接口回调,用于返回异步接口的请求处理结果和获取信息。

+

IPinAuthInterface.idl

+

定义获取口令认证驱动的执行器列表接口,用于从口令认证驱动获取执行器对象列表。

+
+ +## 类 + + + + + + + + + + + + + + + + + + + + + + +

+

描述

+

IExecutor

+

定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 更多...

+

IExecutorCallback

+

定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见IExecutor更多...

+

IPinAuthInterface

+

定义获取口令认证驱动的执行器列表接口。 更多...

+

ExecutorInfo

+

执行器信息。 更多...

+

TemplateInfo

+

凭据模版信息。 更多...

+
+ +## 枚举 + + + + + + + + + + + + + + + + + + + +

枚举

+

描述

+

AuthType : int { PIN = 1, FACE = 2, FINGERPRINT = 4, ALL = 0 }

+

枚举用户认证凭据类型。 更多...

+

ExecutorRole : int { COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 }

+

枚举执行器角色。 更多...

+

ExecutorSecureLevel : int { ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 }

+

枚举执行器安全等级。 更多...

+

CommandId : int { LOCK_TEMPLATE = 1, UNLOCK_TEMPLATE = 2, VENDOR_COMMAND_BEGIN = 10000, DEFAULT = 0 }

+

枚举口令认证相关功能操作命令。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.pin_auth.v1_0

+

口令认证接口的包路径

+
+ +## **详细描述** + +提供口令认证驱动的标准API接口。 + +口令认证驱动为口令认证服务提供统一的访问接口。获取口令认证驱动代理后,口令认证服务可以调用相关接口获取执行器,获取口令认证执行器后, 口令认证服务可以调用相关接口获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。 + +**Since:** + +3.2 + +## **枚举类型说明** + +## AuthType + +``` +enum AuthType : int +``` + +**描述:** + +枚举用户认证凭据类型。 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

PIN

+

认证凭据类型为口令。

+

+

FACE

+

认证凭据类型为人脸。

+

+

FINGERPRINT

+

认证凭据类型为指纹。

+

+

ALL

+

表示包含所有认证凭据类型。

+

+
+ +## CommandId + +``` +enum CommandId : int +``` + +**描述:** + +枚举口令认证相关功能操作命令。 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

LOCK_TEMPLATE

+

锁定人脸模版。

+

+

UNLOCK_TEMPLATE

+

解锁人脸模版。

+

+

VENDOR_COMMAND_BEGIN

+

用于厂商自定义操作指令。

+

+

DEFAULT

+

默认无效操作命令。

+

+
+ +## ExecutorRole + +``` +enum ExecutorRole : int +``` + +**描述:** + +枚举执行器角色。 + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

COLLECTOR

+

执行器角色为采集器,提供用户认证时的数据采集能力,需要和认证器配合完成用户认证。

+

+

VERIFIER

+

执行器角色为认证器,提供用户认证时数据处理能力,读取存储凭据模板信息并完成比对。

+

+

ALL_IN_ONE

+

执行器角色为全功能执行器,可提供用户认证数据采集、处理、储存及比对能力。

+

+
+ +## ExecutorSecureLevel + +``` +enum ExecutorSecureLevel : int +``` + +**描述:** + +枚举执行器安全等级。 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

ESL0

+

执行器安全级别为0,关键操作在无访问控制执行环境中完成。

+

+

ESL1

+

执行器安全级别为1,关键操作在有访问控制的执行环境中完成。

+

+

ESL2

+

执行器安全级别为2,关键操作在可信执行环境中完成。

+

+

ESL3

+

执行器安全级别为3,关键操作在高安环境如独立安全芯片中完成。

+

+
+ diff --git a/zh-cn/device-dev/api/toctopics/_hdf_thermal_callback_info.md b/zh-cn/device-dev/api/toctopics/_hdf_thermal_callback_info.md new file mode 100644 index 0000000000..28ba720064 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_hdf_thermal_callback_info.md @@ -0,0 +1,43 @@ +# HdfThermalCallbackInfo + +## **概述** + +**所属模块:** + +[Thermal](thermal.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + +

Public 属性

+

描述

+

info

+

设备发热的信息列表。

+
+ +## **详细描述** + +设备发热的信息列表。 + +## **类成员变量说明** + +## info + +``` +List HdfThermalCallbackInfo::info +``` + +**描述:** + +设备发热的信息列表。 + diff --git a/zh-cn/device-dev/api/toctopics/_hdf_user_auth.md b/zh-cn/device-dev/api/toctopics/_hdf_user_auth.md new file mode 100644 index 0000000000..408750facb --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_hdf_user_auth.md @@ -0,0 +1,275 @@ +# HdfUserAuth + +## **汇总** + +## 文件 + + + + + + + + + + + + + +

文件

+

描述

+

IUserAuthInterface.idl

+

声明用户认证驱动的API接口。接口可用于注册执行器,管理用户认证凭据,完成PIN码和生物特征认证。

+

UserAuthTypes.idl

+

定义用户认证驱动的枚举类和数据结构。

+
+ +## 类 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

描述

+

IUserAuthInterface

+

声明用户认证驱动的API接口。 更多...

+

ExecutorRegisterInfo

+

执行器注册信息。 更多...

+

ExecutorInfo

+

执行器信息。 更多...

+

ScheduleInfo

+

调度信息。 更多...

+

AuthSolution

+

认证方案。 更多...

+

ExecutorSendMsg

+

执行器发送的消息。 更多...

+

AuthResultInfo

+

用户身份认证结果信息。 更多...

+

IdentifyResultInfo

+

用户身份识别结果信息。 更多...

+

EnrollParam

+

注册认证凭据参数。 更多...

+

CredentialInfo

+

认证凭据信息。 更多...

+

EnrolledInfo

+

注册信息。 更多...

+
+ +## 枚举 + + + + + + + + + + + + + + + + +

枚举

+

描述

+

AuthType : int { PIN = 1, FACE = 2, FINGERPRINT = 4, ALL = 0 }

+

枚举用户认证凭据类型。 更多...

+

ExecutorRole : int { COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 }

+

枚举执行器角色。 更多...

+

ExecutorSecureLevel : int { ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 }

+

枚举执行器安全等级。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.user_auth.v1_0

+

用户认证接口的包路径

+
+ +## **详细描述** + +提供用户认证驱动的标准API接口。 + +用户认证驱动为用户认证服务提供统一的访问接口。获取用户认证驱动代理后,用户认证服务可以调用相关接口注册执行器,管理用户认证凭据, 完成PIN码和生物特征。 + +**Since:** + +3.2 + +## **枚举类型说明** + +## AuthType + +``` +enum AuthType : int +``` + +**描述:** + +枚举用户认证凭据类型。 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

PIN

+

认证凭据类型为口令。

+

+

FACE

+

认证凭据类型为人脸。

+

+

FINGERPRINT

+

认证凭据类型为指纹。

+

+

ALL

+

表示包含所有认证凭据类型。

+

+
+ +## ExecutorRole + +``` +enum ExecutorRole : int +``` + +**描述:** + +枚举执行器角色。 + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

COLLECTOR

+

执行器角色为采集器,提供用户认证时的数据采集能力,需要和认证器配合完成用户认证。

+

+

VERIFIER

+

执行器角色为认证器,提供用户认证时数据处理能力,读取存储凭据模板信息并完成比对。

+

+

ALL_IN_ONE

+

执行器角色为全功能执行器,可提供用户认证数据采集、处理、储存及比对能力。

+

+
+ +## ExecutorSecureLevel + +``` +enum ExecutorSecureLevel : int +``` + +**描述:** + +枚举执行器安全等级。 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

ESL0

+

执行器安全级别为0,关键操作在无访问控制执行环境中完成。

+

+

ESL1

+

执行器安全级别为1,关键操作在有访问控制的执行环境中完成。

+

+

ESL2

+

执行器安全级别为2,关键操作在可信执行环境中完成。

+

+

ESL3

+

执行器安全级别为3,关键操作在高安环境如独立安全芯片中完成。

+

+
+ diff --git a/zh-cn/device-dev/api/toctopics/_i_battery_callback_8idl.md b/zh-cn/device-dev/api/toctopics/_i_battery_callback_8idl.md new file mode 100644 index 0000000000..f0c9ba3f68 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_battery_callback_8idl.md @@ -0,0 +1,58 @@ +# IBatteryCallback.idl + +## **概述** + +**所属模块:** + +[Battery](battery.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

IBatteryCallback

+

电池信息的回调。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.battery.v1_0

+

电池信息接口的包路径

+
+ +## **详细描述** + +电池信息的回调。 + +电池模块为电池服务提供的订阅电池信息变化的回调。 + +**Since:** + +3.1 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/_i_battery_interface_8idl.md b/zh-cn/device-dev/api/toctopics/_i_battery_interface_8idl.md new file mode 100644 index 0000000000..9f77ca138f --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_battery_interface_8idl.md @@ -0,0 +1,54 @@ +# IBatteryInterface.idl + +## **概述** + +**所属模块:** + +[Battery](battery.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

IBatteryInterface

+

获取、订阅电池信息的接口。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.battery.v1_0

+

电池信息接口的包路径

+
+ +## **详细描述** + +获取、订阅电池信息的接口。 + +服务获取此对象后,可以调用相关的接口获取、订阅电池信息。 + +**Since:** + +3.1 + diff --git a/zh-cn/device-dev/api/toctopics/_i_circle.md b/zh-cn/device-dev/api/toctopics/_i_circle.md new file mode 100644 index 0000000000..aedd59d146 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_circle.md @@ -0,0 +1,46 @@ +# ICircle + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

x

+

矩形框起始X坐标。

+

y

+

矩形框起始Y坐标。

+

r

+

圆的半径。

+

color

+

圆的颜色。

+
+ +## **详细描述** + +圆形描述结构体定义,用于硬件加速绘制圆形。 + diff --git a/zh-cn/device-dev/api/toctopics/_i_face_auth_interface_8idl.md b/zh-cn/device-dev/api/toctopics/_i_face_auth_interface_8idl.md new file mode 100644 index 0000000000..41ba7b392b --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_face_auth_interface_8idl.md @@ -0,0 +1,52 @@ +# IFaceAuthInterface.idl + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

IFaceAuthInterface

+

定义获取人脸认证驱动的执行器列表接口。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.face_auth.v1_0

+

人脸认证接口的包路径

+
+ +## **详细描述** + +定义获取人脸认证驱动的执行器列表接口,用于从人脸认证驱动获取执行器对象列表。 + +**Since:** + +3.2 + diff --git a/zh-cn/device-dev/api/toctopics/_i_input_interface.md b/zh-cn/device-dev/api/toctopics/_i_input_interface.md new file mode 100644 index 0000000000..5839de6bb8 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_input_interface.md @@ -0,0 +1,73 @@ +# IInputInterface + +## **概述** + +**所属模块:** + +[Input](_input.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

iInputManager

+

input设备的设备管理接口。

+

iInputController

+

input设备的业务控制接口。

+

iInputReporter

+

input设备的数据上报接口。

+
+ +## **详细描述** + +定义用于提供输入设备驱动能力的接口。 + +## **类成员变量说明** + +## iInputController + +``` +[InputController](_input_controller.md)* IInputInterface::iInputController +``` + +**描述:** + +input设备的业务控制接口 + +## iInputManager + +``` +[InputManager](_input_manager.md)* IInputInterface::iInputManager +``` + +**描述:** + +input设备的设备管理接口 + +## iInputReporter + +``` +[InputReporter](_input_reporter.md)* IInputInterface::iInputReporter +``` + +**描述:** + +input设备的数据上报接口 + diff --git a/zh-cn/device-dev/api/toctopics/_i_line.md b/zh-cn/device-dev/api/toctopics/_i_line.md new file mode 100644 index 0000000000..237ca23046 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_line.md @@ -0,0 +1,51 @@ +# ILine + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

x0

+

线条起点的X坐标。

+

y0

+

线条起点的Y坐标。

+

x1

+

线条终点的X坐标。

+

y1

+

线条终点的Y坐标。

+

color

+

线条颜色。

+
+ +## **详细描述** + +线条描述结构体定义,用于硬件加速绘制直线。 + diff --git a/zh-cn/device-dev/api/toctopics/_i_pin_auth_interface_8idl.md b/zh-cn/device-dev/api/toctopics/_i_pin_auth_interface_8idl.md new file mode 100644 index 0000000000..accae73c9e --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_pin_auth_interface_8idl.md @@ -0,0 +1,52 @@ +# IPinAuthInterface.idl + +## **概述** + +**所属模块:** + +[HdfPinAuth](_hdf_pin_auth.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

IPinAuthInterface

+

定义获取口令认证驱动的执行器列表接口。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.pin_auth.v1_0

+

口令认证接口的包路径

+
+ +## **详细描述** + +定义获取口令认证驱动的执行器列表接口,用于从口令认证驱动获取执行器对象列表。 + +**Since:** + +3.2 + diff --git a/zh-cn/device-dev/api/toctopics/_i_power_hdi_callback_8idl.md b/zh-cn/device-dev/api/toctopics/_i_power_hdi_callback_8idl.md new file mode 100644 index 0000000000..edbeb2b63f --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_power_hdi_callback_8idl.md @@ -0,0 +1,58 @@ +# IPowerHdiCallback.idl + +## **概述** + +**所属模块:** + +[Power](power.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

IPowerHdiCallback

+

休眠/唤醒状态的回调。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.power.v1_0

+

电源接口的包路径

+
+ +## **详细描述** + +休眠/唤醒状态的回调。 + +电源模块为电源服务提供的订阅休眠/唤醒状态的回调。 + +**Since:** + +3.1 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/_i_power_interface_8idl.md b/zh-cn/device-dev/api/toctopics/_i_power_interface_8idl.md new file mode 100644 index 0000000000..9f4d028e83 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_power_interface_8idl.md @@ -0,0 +1,58 @@ +# IPowerInterface.idl + +## **概述** + +**所属模块:** + +[Power](power.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

IPowerInterface

+

休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.power.v1_0

+

电源接口的包路径

+
+ +## **详细描述** + +休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 + +电源模块为电源服务提供休眠/唤醒操作、订阅休眠/唤醒状态和运行锁管理的接口。 + +**Since:** + +3.1 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/_i_rect.md b/zh-cn/device-dev/api/toctopics/_i_rect.md new file mode 100644 index 0000000000..b590a69aa2 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_rect.md @@ -0,0 +1,46 @@ +# IRect + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

x

+

矩形框起始X坐标。

+

y

+

矩形框起始Y坐标。

+

w

+

矩形框宽度。

+

h

+

矩形框高度。

+
+ +## **详细描述** + +定义矩形信息。 + diff --git a/zh-cn/device-dev/api/toctopics/_i_surface.md b/zh-cn/device-dev/api/toctopics/_i_surface.md new file mode 100644 index 0000000000..31a1e39815 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_surface.md @@ -0,0 +1,91 @@ +# ISurface + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

phyAddr

+

图像首地址

+

height

+

图像高度

+

width

+

图像宽度

+

stride

+

图像跨度

+

enColorFmt

+

图像格式

+

bYCbCrClut

+

CLUT表是否位于 YCbCr 空间

+

bAlphaMax255

+

图像alpha最大值为255还是128

+

bAlphaExt1555

+

是否使能1555的Alpha扩展

+

alpha0

+

Alpha0值,取值范围:[0,255]

+

alpha1

+

Alpha1值,取值范围:[0,255]

+

cbcrPhyAddr

+

CLUT表首地址,用作颜色扩展或颜色校正

+

cbcrStride

+

CbCr分量跨度

+

clutPhyAddr

+

CbCr分量地址

+
+ +## **详细描述** + +用于存放窗口相关信息的结构体定义,提供给硬件加速使用,例如图像合成,位图搬移等操作。 + diff --git a/zh-cn/device-dev/api/toctopics/_i_thermal_callback_8idl.md b/zh-cn/device-dev/api/toctopics/_i_thermal_callback_8idl.md new file mode 100644 index 0000000000..739df4eefe --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_thermal_callback_8idl.md @@ -0,0 +1,58 @@ +# IThermalCallback.idl + +## **概述** + +**所属模块:** + +[Thermal](thermal.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

IThermalCallback

+

订阅设备发热状态的回调。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.thermal.v1_0

+

设备温度管理接口的包路径

+
+ +## **详细描述** + +设备发热状态的回调。 + +热模块为热服务提供的设备发热状态的回调。 + +**Since:** + +3.1 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/_i_thermal_interface_8idl.md b/zh-cn/device-dev/api/toctopics/_i_thermal_interface_8idl.md new file mode 100644 index 0000000000..67f98c016f --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_thermal_interface_8idl.md @@ -0,0 +1,58 @@ +# IThermalInterface.idl + +## **概述** + +**所属模块:** + +[Thermal](thermal.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

IThermalInterface

+

设备温度管理、控制及订阅接口。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.thermal.v1_0

+

设备温度管理接口的包路径

+
+ +## **详细描述** + +设备温度管理、控制及订阅接口。 + +热模块为热服务提供的设备温度管理、控制及订阅接口。 + +**Since:** + +3.1 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/_i_user_auth_interface_8idl.md b/zh-cn/device-dev/api/toctopics/_i_user_auth_interface_8idl.md new file mode 100644 index 0000000000..83940029b9 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_user_auth_interface_8idl.md @@ -0,0 +1,52 @@ +# IUserAuthInterface.idl + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

IUserAuthInterface

+

声明用户认证驱动的API接口。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.user_auth.v1_0

+

用户认证接口的包路径

+
+ +## **详细描述** + +声明用户认证驱动的API接口。接口可用于注册执行器,管理用户认证凭据,完成PIN码和生物特征认证。 + +**Since:** + +3.2 + diff --git a/zh-cn/device-dev/api/toctopics/_i_wi_fi.md b/zh-cn/device-dev/api/toctopics/_i_wi_fi.md new file mode 100644 index 0000000000..9b1f2d4278 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_wi_fi.md @@ -0,0 +1,577 @@ +# IWiFi + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

( start )(struct IWiFi *iwifi)

+

创建HAL和驱动之间的通道及获取驱动网卡信息,该函数调用在创建IWiFi实体后进行。 更多...

+

( stop )(struct IWiFi *iwifi)

+

销毁HAL和驱动之间的通道,该函数调用在销毁IWiFi实体前进行。 更多...

+

( getSupportFeature )(uint8_t *supType, uint32_t size)

+

获取该设备支持的WLAN特性(不考虑当前的使用状态)。 更多...

+

( getSupportCombo )(uint64_t *combo, uint32_t size)

+

获取多网卡共存情况。 更多...

+

( createFeature )(int32_t type, struct IWiFiBaseFeature **ifeature)

+

根据输入类型创建对应的特性IWiFiBaseFeature更多...

+

( getFeatureByIfName )(const char *ifName, struct IWiFiBaseFeature **ifeature)

+

通过网络接口名字获取对应的特性。 更多...

+

( registerEventCallback )(CallbackFunc cbFunc, const char *ifName)

+

注册IWiFi的回调函数,监听异步事件。 更多...

+

( unregisterEventCallback )(CallbackFunc cbFunc, const char *ifName)

+

去注册IWiFi的回调函数。 更多...

+

( destroyFeature )(struct IWiFiBaseFeature *ifeature)

+

根据输入类型销毁对应的特性IWiFiBaseFeature更多...

+

( resetDriver )(const uint8_t chipId, const char *ifName)

+

重置具有指定芯片ID的WLAN驱动程序。 更多...

+

( getNetDevInfo )(struct NetDeviceInfoResult *netDeviceInfoResult)

+

获取网络设备信息(设备索引、网卡名字、MAC等信息)。 更多...

+

( getPowerMode )(const char *ifName, uint8_t *mode)

+

获取正在使用的功率模式。 更多...

+

( setPowerMode )(const char *ifName, uint8_t mode)

+

设置功率模式 更多...

+
+ +## **详细描述** + +HAL对WLAN服务提供的基本能力。 + +用于创建HAL与驱动的通道,创建/获取/销毁WLAN特性等。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **类成员变量说明** + +## createFeature + +``` +int32_t(* IWiFi::createFeature) (int32_t type, struct IWiFiBaseFeature **ifeature) +``` + +**描述:** + +根据输入类型创建对应的特性[IWiFiBaseFeature](_i_wi_fi_base_feature.md)。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

type

+

输入参数,创建的feature类型。

+

ifeature

+

输出参数,获取创建的feature对象。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## destroyFeature + +``` +int32_t(* IWiFi::destroyFeature) (struct IWiFiBaseFeature *ifeature) +``` + +**描述:** + +根据输入类型销毁对应的特性[IWiFiBaseFeature](_i_wi_fi_base_feature.md)。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

ifeature

+

输入参数,销毁的feature对象。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## getFeatureByIfName + +``` +int32_t(* IWiFi::getFeatureByIfName) (const char *ifName, struct IWiFiBaseFeature **ifeature) +``` + +**描述:** + +通过网络接口名字获取对应的特性。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

ifName

+

输入参数,网卡名称。

+

ifeature

+

输出参数,获取该网络接口名字的feature对象。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## getNetDevInfo + +``` +int32_t(* IWiFi::getNetDevInfo) (struct NetDeviceInfoResult *netDeviceInfoResult) +``` + +**描述:** + +获取网络设备信息(设备索引、网卡名字、MAC等信息)。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

netDeviceInfoResult

+

输出参数,得到的网络设备信息。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## getPowerMode + +``` +int32_t(* IWiFi::getPowerMode) (const char *ifName, uint8_t *mode) +``` + +**描述:** + +获取正在使用的功率模式。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

ifName

+

输入参数,网卡名称。

+

mode

+

输出参数,功率模式,包括睡眠模式(待机状态运行)、一般模式(正常额定功率运行)、穿墙模式(最大功率运行,提高信号强度和覆盖面积)。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## getSupportCombo + +``` +int32_t(* IWiFi::getSupportCombo) (uint64_t *combo, uint32_t size) +``` + +**描述:** + +获取多网卡共存情况。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

combo

+

输出参数,基于芯片的能力保存当前所有支持的多网卡共存情况(比如支持AP,STA,P2P等不同组合的共存)。

+

size

+

输入参数,combo数组的长度。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## getSupportFeature + +``` +int32_t(* IWiFi::getSupportFeature) (uint8_t *supType, uint32_t size) +``` + +**描述:** + +获取该设备支持的WLAN特性(不考虑当前的使用状态)。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

supType

+

输出参数,保存当前设备支持的特性。

+

size

+

输入参数,supType数组的长度。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## registerEventCallback + +``` +int32_t(* IWiFi::registerEventCallback) (CallbackFunc cbFunc, const char *ifName) +``` + +**描述:** + +注册IWiFi的回调函数,监听异步事件。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

cbFunc

+

输入参数,注册的回调函数。

+

ifName

+

输入参数,网卡名称。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## resetDriver + +``` +int32_t(* IWiFi::resetDriver) (const uint8_t chipId, const char *ifName) +``` + +**描述:** + +重置具有指定芯片ID的WLAN驱动程序。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

chipId

+

输入参数,需要进行重置驱动的对应芯片ID。

+

ifName

+

输入参数,网卡名称。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## setPowerMode + +``` +int32_t(* IWiFi::setPowerMode) (const char *ifName, uint8_t mode) +``` + +**描述:** + +设置功率模式 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

ifName

+

输入参数,网卡名称。

+

mode

+

输入参数,功率模式,包括睡眠模式(待机状态运行)、一般模式(正常额定功率运行)、穿墙模式(最大功率运行,提高信号强度和覆盖面积)。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## start + +``` +int32_t(* IWiFi::start) (struct IWiFi *iwifi) +``` + +**描述:** + +创建HAL和驱动之间的通道及获取驱动网卡信息,该函数调用在创建IWiFi实体后进行。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

iwifi

+

输入参数,IWiFi对象。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## stop + +``` +int32_t(* IWiFi::stop) (struct IWiFi *iwifi) +``` + +**描述:** + +销毁HAL和驱动之间的通道,该函数调用在销毁IWiFi实体前进行。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

iwifi

+

输入参数,IWiFi对象。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## unregisterEventCallback + +``` +int32_t(* IWiFi::unregisterEventCallback) (CallbackFunc cbFunc, const char *ifName) +``` + +**描述:** + +去注册IWiFi的回调函数。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

cbFunc

+

输入参数,去注册的回调函数。

+

ifName

+

输入参数,网卡名称。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + diff --git a/zh-cn/device-dev/api/toctopics/_i_wi_fi_ap.md b/zh-cn/device-dev/api/toctopics/_i_wi_fi_ap.md new file mode 100644 index 0000000000..8a188d6d7c --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_wi_fi_ap.md @@ -0,0 +1,152 @@ +# IWiFiAp + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

baseFeature

+

基本特性。

+

( getAsscociatedStas )(const struct IWiFiAp *apFeature, struct StaInfo *staInfo, uint32_t count, uint32_t *num)

+

获取连接上的所有STA的信息(目前只包含MAC地址)。 更多...

+

( setCountryCode )(const struct IWiFiAp *apFeature, const char *code, uint32_t len)

+

设置国家码(表示AP射频所在的国家,规定了AP射频特性,包括AP的发送功率、支持的信道等。其目的是为了使AP的射频特性符合不同国家或区域的法律法规要求)。 更多...

+
+ +## **详细描述** + +继承了IWiFiBaseFeature基本特性,并包含AP模式下获取连接STA的信息和设置国家码的功能。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **类成员变量说明** + +## baseFeature + +``` +struct IWiFiBaseFeature IWiFiAp::baseFeature +``` + +**描述:** + +基本特性。 + +## getAsscociatedStas + +``` +int32_t(* IWiFiAp::getAsscociatedStas) (const struct IWiFiAp *apFeature, struct StaInfo *staInfo, uint32_t count, uint32_t *num) +``` + +**描述:** + +获取连接上的所有STA的信息(目前只包含MAC地址)。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

apFeature

+

输入参数,AP特性IWiFiAp

+

staInfo

+

输出参数,保存与AP连接的STA的基本信息。

+

count

+

输入参数,staInfo结构体数组的元素个数。

+

num

+

输出参数,实际连接的STA的个数。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## setCountryCode + +``` +int32_t(* IWiFiAp::setCountryCode) (const struct IWiFiAp *apFeature, const char *code, uint32_t len) +``` + +**描述:** + +设置国家码(表示AP射频所在的国家,规定了AP射频特性,包括AP的发送功率、支持的信道等。其目的是为了使AP的射频特性符合不同国家或区域的法律法规要求)。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

apFeature

+

输入参数,AP特性IWiFiAp

+

code

+

输入参数,设置的国家码。

+

len

+

输入参数,国家码长度。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + diff --git a/zh-cn/device-dev/api/toctopics/_i_wi_fi_base_feature.md b/zh-cn/device-dev/api/toctopics/_i_wi_fi_base_feature.md new file mode 100644 index 0000000000..8a004f3a4a --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_wi_fi_base_feature.md @@ -0,0 +1,420 @@ +# IWiFiBaseFeature + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

ifName [IFNAME_MAX_LEN]

+

网卡名称。

+

type

+

特性的类型,参考FeatureType

+

( getNetworkIfaceName )(const struct IWiFiBaseFeature *baseFeature)

+

根据基本特性获取网卡名称。 更多...

+

( getFeatureType )(const struct IWiFiBaseFeature *baseFeature)

+

获取基本特性的类型FeatureType更多...

+

( setMacAddress )(const struct IWiFiBaseFeature *baseFeature, unsigned char *mac, uint8_t len)

+

根据传入参数设置对应网卡的MAC地址。 更多...

+

( getDeviceMacAddress )(const struct IWiFiBaseFeature *baseFeature, unsigned char *mac, uint8_t len)

+

获取设备的MAC地址。 更多...

+

( getValidFreqsWithBand )(const struct IWiFiBaseFeature *baseFeature, int32_t band, int32_t *freqs, uint32_t count, uint32_t *num)

+

获取指定频段(2.4G或者5G)下支持的频率。 更多...

+

( setTxPower )(const struct IWiFiBaseFeature *baseFeature, int32_t power)

+

设置发射功率。 更多...

+

( getChipId )(const struct IWiFiBaseFeature *baseFeature, uint8_t *chipId)

+

获得当前驱动的芯片ID。 更多...

+

( getIfNamesByChipId )(const uint8_t chipId, char **ifNames, uint32_t *num)

+

通过芯片ID获得当前芯片所有的网卡名称。 更多...

+
+ +## **详细描述** + +WLAN基本特性操作接口,包括获取网卡名称,设置MAC地址,设置发射功率等公共能力接口。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **类成员变量说明** + +## getChipId + +``` +int32_t(* IWiFiBaseFeature::getChipId) (const struct IWiFiBaseFeature *baseFeature, uint8_t *chipId) +``` + +**描述:** + +获得当前驱动的芯片ID。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

baseFeature

+

输入参数,基本特性IWiFiBaseFeature

+

chipId

+

输出参数,获得的芯片ID。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## getDeviceMacAddress + +``` +int32_t(* IWiFiBaseFeature::getDeviceMacAddress) (const struct IWiFiBaseFeature *baseFeature, unsigned char *mac, uint8_t len) +``` + +**描述:** + +获取设备的MAC地址。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

baseFeature

+

输入参数,基本特性IWiFiBaseFeature

+

mac

+

输出参数,获得的MAC地址。

+

len

+

输入参数,获得的MAC地址长度。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## getFeatureType + +``` +int32_t(* IWiFiBaseFeature::getFeatureType) (const struct IWiFiBaseFeature *baseFeature) +``` + +**描述:** + +获取基本特性的类型[FeatureType](_w_l_a_n.md#gad2b28a6ade408676d1371ea941824012)。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

baseFeature

+

输入参数,基本特性IWiFiBaseFeature

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## getIfNamesByChipId + +``` +int32_t(* IWiFiBaseFeature::getIfNamesByChipId) (const uint8_t chipId, char **ifNames, uint32_t *num) +``` + +**描述:** + +通过芯片ID获得当前芯片所有的网卡名称。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

chipId

+

输入参数,需要获取网卡名称的芯片ID。

+

ifNames

+

输出参数,网卡名称。

+

num

+

输出参数,网卡的数量。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## getNetworkIfaceName + +``` +const char*(* IWiFiBaseFeature::getNetworkIfaceName) (const struct IWiFiBaseFeature *baseFeature) +``` + +**描述:** + +根据基本特性获取网卡名称。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

baseFeature

+

输入参数,基本特性IWiFiBaseFeature

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## getValidFreqsWithBand + +``` +int32_t(* IWiFiBaseFeature::getValidFreqsWithBand) (const struct IWiFiBaseFeature *baseFeature, int32_t band, int32_t *freqs, uint32_t count, uint32_t *num) +``` + +**描述:** + +获取指定频段(2.4G或者5G)下支持的频率。 + +**参数:** + + + + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

baseFeature

+

输入参数,基本特性IWiFiBaseFeature

+

band

+

输入参数,指定的一个频段。

+

freqs

+

输出参数,保存支持的频率。

+

count

+

输入参数,频率数组的元素个数。

+

num

+

输出参数,实际支持的频率个数。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## ifName + +``` +char IWiFiBaseFeature::ifName[IFNAME_MAX_LEN] +``` + +**描述:** + +网卡名称。 + +## setMacAddress + +``` +int32_t(* IWiFiBaseFeature::setMacAddress) (const struct IWiFiBaseFeature *baseFeature, unsigned char *mac, uint8_t len) +``` + +**描述:** + +根据传入参数设置对应网卡的MAC地址。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

baseFeature

+

输入参数,基本特性IWiFiBaseFeature

+

mac

+

输入参数,设置的MAC地址。

+

len

+

输入参数,设置的MAC地址长度。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## setTxPower + +``` +int32_t(* IWiFiBaseFeature::setTxPower) (const struct IWiFiBaseFeature *baseFeature, int32_t power) +``` + +**描述:** + +设置发射功率。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

baseFeature

+

输入参数,基本特性IWiFiBaseFeature

+

power

+

输入参数,设置的发射功率。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + diff --git a/zh-cn/device-dev/api/toctopics/_i_wi_fi_sta.md b/zh-cn/device-dev/api/toctopics/_i_wi_fi_sta.md new file mode 100644 index 0000000000..d91c92faaf --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_i_wi_fi_sta.md @@ -0,0 +1,142 @@ +# IWiFiSta + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

baseFeature

+

基本特性。

+

( setScanningMacAddress )(const struct IWiFiSta *staFeature, unsigned char *scanMac, uint8_t len)

+

设置扫描单个MAC地址。 更多...

+

( startScan )(const char *ifName, WifiScan *scan)

+

启动扫描。 更多...

+
+ +## **详细描述** + +继承了[IWiFiBaseFeature](_i_wi_fi_base_feature.md)基本特性,额外包含设置扫描单个MAC地址功能。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **类成员变量说明** + +## baseFeature + +``` +struct IWiFiBaseFeature IWiFiSta::baseFeature +``` + +**描述:** + +基本特性。 + +## setScanningMacAddress + +``` +int32_t(* IWiFiSta::setScanningMacAddress) (const struct IWiFiSta *staFeature, unsigned char *scanMac, uint8_t len) +``` + +**描述:** + +设置扫描单个MAC地址。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

staFeature

+

输入参数,STA特性IWiFiSta

+

scanMac

+

输入参数,设置STA扫描的MAC地址。

+

len

+

输入参数,MAC地址的长度。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## startScan + +``` +int32_t(* IWiFiSta::startScan) (const char *ifName, WifiScan *scan) +``` + +**描述:** + +启动扫描。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

ifName

+

输入参数,网卡名称。

+

scan

+

输入参数,扫描参数。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + diff --git a/zh-cn/device-dev/api/toctopics/_identify_result_info.md b/zh-cn/device-dev/api/toctopics/_identify_result_info.md new file mode 100644 index 0000000000..9c49a25138 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_identify_result_info.md @@ -0,0 +1,81 @@ +# IdentifyResultInfo + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

result

+

用户身份识别结果。

+

userId

+

用户ID。

+

token

+

用户身份识别令牌。

+
+ +## **详细描述** + +用户身份识别结果信息。 + +**Since:** + +3.2 + +**Version:** + +1.0 + +## **类成员变量说明** + +## result + +``` +int IdentifyResultInfo::result +``` + +**描述:** + +用户身份识别结果。 + +## token + +``` +unsigned char [] IdentifyResultInfo::token +``` + +**描述:** + +用户身份识别令牌。 + +## userId + +``` +int IdentifyResultInfo::userId +``` + +**描述:** + +用户ID。 + diff --git a/zh-cn/device-dev/api/toctopics/_input.md b/zh-cn/device-dev/api/toctopics/_input.md new file mode 100644 index 0000000000..c2356b8942 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_input.md @@ -0,0 +1,462 @@ +# Input + +## **汇总** + +## 文件 + + + + + + + + + + + + + + + + + + + +

文件

+

描述

+

input_controller.h

+

描述input设备业务控制相关的接口声明。

+

input_manager.h

+

描述input设备管理相关的接口声明。

+

input_reporter.h

+

描述input设备数据上报相关的接口声明。

+

input_type.h

+

input设备相关的类型定义,定义了input设备驱动接口所使用的结构体及枚举类型。

+
+ +## 类 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

描述

+

InputController

+

提供input设备业务控制相关的接口。 更多...

+

InputManager

+

提供input设备管理相关的接口。 更多...

+

IInputInterface

+

定义用于提供输入设备驱动能力的接口。更多...

+

InputReporter

+

提供input设备数据上报相关的接口。 更多...

+

EventPackage

+

input事件数据包结构 更多...

+

InputReportEventCb

+

此结构体定义了输入事件回调函数并提供给input服务使用 更多...

+

DeviceInfo

+

input设备基础设备信息 更多...

+

InputExtraCmd

+

扩展指令的数据结构 更多...

+
+ +## 宏定义 + + + + + + + + + + + + + + + + + + + + + + + + + +

宏定义

+

描述

+

MAX_INPUT_DEV_NUM 32

+

Input设备最大数量。

+

MAX_NODE_PATH_LEN 64

+

节点路径最大长度。

+

CHIP_INFO_LEN 10

+

芯片信息长度。

+

CHIP_NAME_LEN 10

+

芯片名称长度。

+

VENDOR_NAME_LEN 10

+

厂商名称长度。

+

SELF_TEST_RESULT_LEN 20

+

自测结果长度。

+
+ +## 枚举 + + + + + + + + + + + + + + + + + + + +

枚举

+

描述

+

RetStatus { INPUT_SUCCESS = 0, INPUT_FAILURE = -1, INPUT_INVALID_PARAM = -2, INPUT_NOMEM = -3, INPUT_NULL_PTR = -4, INPUT_TIMEOUT = -5, INPUT_UNSUPPORTED = -6 }

+

定义返回值类型 更多...

+

InputDevType { INDEV_TYPE_TOUCH, INDEV_TYPE_KEY, INDEV_TYPE_KEYBOARD, INDEV_TYPE_MOUSE, INDEV_TYPE_BUTTON, INDEV_TYPE_CROWN, INDEV_TYPE_ENCODER, INDEV_TYPE_UNKNOWN }

+

定义input设备类型 更多...

+

PowerStatus { INPUT_RESUME, INPUT_SUSPEND, INPUT_LOW_POWER, INPUT_POWER_STATUS_UNKNOWN }

+

定义电源状态 更多...

+

CapacitanceTest { BASE_TEST, FULL_TEST, MMI_TEST, RUNNING_TEST, TEST_TYPE_UNKNOWN }

+

定义容值测试类型 更多...

+
+ +## 函数 + + + + + + + + + + +

函数

+

描述

+

GetInputInterface (IInputInterface **interface)

+

input服务通过调用此接口获取操作input设备的所有接口。 更多...

+
+ +## **详细描述** + +Input模块驱动接口声明。 + +本模块为Input服务提供相关驱动接口,包括input设备的打开和关闭、input事件获取、设备信息查询、回调函数注册、特性状态控制等接口。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **枚举类型说明** + +## CapacitanceTest + +``` +enum CapacitanceTest +``` + +**描述:** + +定义容值测试类型 + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

BASE_TEST

+

基础容值测试

+

+

FULL_TEST

+

全量容值自检测试

+

+

MMI_TEST

+

MMI容值测试

+

+

RUNNING_TEST

+

老化容值测试

+

+

TEST_TYPE_UNKNOWN

+

未知的测试类型

+

+
+ +## InputDevType + +``` +enum InputDevType +``` + +**描述:** + +定义input设备类型 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

INDEV_TYPE_TOUCH

+

触摸屏。

+

+

INDEV_TYPE_KEY

+

物理按键。

+

+

INDEV_TYPE_KEYBOARD

+

键盘。

+

+

INDEV_TYPE_MOUSE

+

鼠标。

+

+

INDEV_TYPE_BUTTON

+

虚拟按键。

+

+

INDEV_TYPE_CROWN

+

表冠。

+

+

INDEV_TYPE_ENCODER

+

自定义编码的特定功能或者事件。

+

+

INDEV_TYPE_UNKNOWN

+

未知输入设备类型。

+

+
+ +## PowerStatus + +``` +enum PowerStatus +``` + +**描述:** + +定义电源状态 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

INPUT_RESUME

+

正常唤醒。

+

+

INPUT_SUSPEND

+

休眠下电模式。

+

+

INPUT_LOW_POWER

+

休眠低功耗模式。

+

+

INPUT_POWER_STATUS_UNKNOWN

+

未知电源状态。

+

+
+ +## RetStatus + +``` +enum RetStatus +``` + +**描述:** + +定义返回值类型 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

INPUT_SUCCESS

+

成功。

+

+

INPUT_FAILURE

+

失败。

+

+

INPUT_INVALID_PARAM

+

无效参数。

+

+

INPUT_NOMEM

+

内存不足。

+

+

INPUT_NULL_PTR

+

空指针。

+

+

INPUT_TIMEOUT

+

执行超时。

+

+

INPUT_UNSUPPORTED

+

特性不支持。

+

+
+ +## **函数说明** + +## GetInputInterface\(\) + +``` +int32_t GetInputInterface (IInputInterface ** interface) +``` + +**描述:** + +input服务通过调用此接口获取操作input设备的所有接口。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

interface

+

对input设备进行接口操作的指针,通常在input服务启动后,通过调用此函数获取input设备操作接口

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/_input_controller.md b/zh-cn/device-dev/api/toctopics/_input_controller.md new file mode 100644 index 0000000000..eafe35650f --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_input_controller.md @@ -0,0 +1,452 @@ +# InputController + +## **概述** + +**所属模块:** + +[Input](_input.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

( SetPowerStatus )(uint32_t devIndex, uint32_t status)

+

设置电源状态 更多...

+

( GetPowerStatus )(uint32_t devIndex, uint32_t *status)

+

获取电源状态 更多...

+

( GetDeviceType )(uint32_t devIndex, uint32_t *deviceType)

+

获取devIndex对应的input设备的类型 更多...

+

( GetChipInfo )(uint32_t devIndex, char *chipInfo, uint32_t length)

+

获取器件对应的编码信息 更多...

+

( GetVendorName )(uint32_t devIndex, char *vendorName, uint32_t length)

+

获取devIndex对应的模组厂商名 更多...

+

( GetChipName )(uint32_t devIndex, char *chipName, uint32_t length)

+

获取devIndex对应的驱动芯片名 更多...

+

( SetGestureMode )(uint32_t devIndex, uint32_t gestureMode)

+

设置手势模式 更多...

+

( RunCapacitanceTest )(uint32_t devIndex, uint32_t testType, char *result, uint32_t length)

+

执行容值自检测试 更多...

+

( RunExtraCommand )(uint32_t devIndex, InputExtraCmd *cmd)

+

执行拓展指令 更多...

+
+ +## **详细描述** + +提供input设备业务控制相关的接口。 + +此类接口包含电源状态的设置、特性的使能、器件信息的获取,以及产线相关的测试功能接口。 + +## **类成员变量说明** + +## GetChipInfo + +``` +int32_t(* InputController::GetChipInfo) (uint32_t devIndex, char *chipInfo, uint32_t length) +``` + +**描述:** + +获取器件对应的编码信息 + +一款产品通常会有多家模组和Driver IC,上层应用如果关注具体器件型号,则通过此接口来获取。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devIndex

+

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

+

chipInfo

+

获取的对应设备索引的器件编码信息。

+

length

+

保存器件芯片信息的内存长度。

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + +## GetChipName + +``` +int32_t(* InputController::GetChipName) (uint32_t devIndex, char *chipName, uint32_t length) +``` + +**描述:** + +获取devIndex对应的驱动芯片名 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devIndex

+

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

+

chipName

+

获取的对应设备索引的驱动芯片名。

+

length

+

保存驱动芯片名的内存长度。

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + +## GetDeviceType + +``` +int32_t(* InputController::GetDeviceType) (uint32_t devIndex, uint32_t *deviceType) +``` + +**描述:** + +获取devIndex对应的input设备的类型 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devIndex

+

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

+

deviceType

+

获取的对应设备索引的设备类型,具体参考 InputDevType

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + +## GetPowerStatus + +``` +int32_t(* InputController::GetPowerStatus) (uint32_t devIndex, uint32_t *status) +``` + +**描述:** + +获取电源状态 + +在系统休眠或者唤醒时,input服务或电源管理模块获取电源状态,以便驱动IC能正常进入对应的休眠模式。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devIndex

+

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

+

status

+

获取的对应设备索引的电源状态,具体参考PowerStatus

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus。** + +## GetVendorName + +``` +int32_t(* InputController::GetVendorName) (uint32_t devIndex, char *vendorName, uint32_t length) +``` + +**描述:** + +获取devIndex对应的模组厂商名 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devIndex

+

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

+

vendorName

+

获取的对应设备索引的模组厂商名。

+

length

+

保存模组厂商名的内存长度。

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + +## RunCapacitanceTest + +``` +int32_t(* InputController::RunCapacitanceTest) (uint32_t devIndex, uint32_t testType, char *result, uint32_t length) +``` + +**描述:** + +执行容值自检测试 + +启动不同检测场景下的容值自检测试,并获取测试结果,容值自检项由器件厂商自定义, 一般包括RawData测试、 \* 短路检测、开路检测、干扰检测、行列差检测等测试项。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

devIndex

+

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

+

testType

+

容值测试的测试类型,具体参考CapacitanceTest

+

result

+

容值测试的结果,成功则输出“SUCCESS”,失败则返回对应的错误提示 。

+

length

+

保存容值测试结果的内存长度。

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + +## RunExtraCommand + +``` +int32_t(* InputController::RunExtraCommand) (uint32_t devIndex, InputExtraCmd *cmd) +``` + +**描述:** + +执行拓展指令 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devIndex

+

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

+

cmd

+

拓展指令数据包,包括指令编码及参数,具体参考InputExtraCmd

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + +## SetGestureMode + +``` +int32_t(* InputController::SetGestureMode) (uint32_t devIndex, uint32_t gestureMode) +``` + +**描述:** + +设置手势模式 + +上层应用开关手势模式,即设置手势模式的对应使能bit + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devIndex

+

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

+

gestureMode

+

手势模式的开关状态

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + +## SetPowerStatus + +``` +int32_t(* InputController::SetPowerStatus) (uint32_t devIndex, uint32_t status) +``` + +**描述:** + +设置电源状态 + +在系统休眠或者唤醒时,input服务或电源管理模块设置电源状态,以使驱动IC能正常进入对应的休眠模式。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devIndex

+

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

+

status

+

设置的电源状态,input服务控制input设备进入resume或者suspend等状态PowerStatus

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + diff --git a/zh-cn/device-dev/api/toctopics/_input_extra_cmd.md b/zh-cn/device-dev/api/toctopics/_input_extra_cmd.md new file mode 100644 index 0000000000..50f82cf171 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_input_extra_cmd.md @@ -0,0 +1,58 @@ +# InputExtraCmd + +## **概述** + +**所属模块:** + +[Input](_input.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

cmdCode

+

指令对应的编码。

+

cmdValue

+

指令传输的数据。

+
+ +## **详细描述** + +扩展指令的数据结构。 + +## **类成员变量说明** + +## cmdCode + +``` +const char* InputExtraCmd::cmdCode +``` + +**描述:** + +指令对应的编码 + +## cmdValue + +``` +const char* InputExtraCmd::cmdValue +``` + +**描述:** + +指令传输的数据 + diff --git a/zh-cn/device-dev/api/toctopics/_input_manager.md b/zh-cn/device-dev/api/toctopics/_input_manager.md new file mode 100644 index 0000000000..21d9bce707 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_input_manager.md @@ -0,0 +1,240 @@ +# InputManager + +## **概述** + +**所属模块:** + +[Input](_input.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

( ScanInputDevice )(DevDesc *staArr, uint32_t arrLen)

+

input服务用于扫描所有在线设备。 更多...

+

( OpenInputDevice )(uint32_t devIndex)

+

input服务打开对应设备的设备文件 更多...

+

( CloseInputDevice )(uint32_t devIndex)

+

input服务关闭对应设备的设备文件 更多...

+

( GetInputDevice )(uint32_t devIndex, DeviceInfo **devInfo)

+

input服务获取对应ID的设备信息 更多...

+

( GetInputDeviceList )(uint32_t *devNum, DeviceInfo **devList, uint32_t size)

+

input服务获取所有input设备列表的设备信息 更多...

+
+ +## **详细描述** + +提供input设备管理相关的接口。 + +此类接口包含input设备的扫描、打开和关闭、特定设备信息查询,以及所有设备列表信息获取等接口。 + +## **类成员变量说明** + +## CloseInputDevice + +``` +int32_t(* InputManager::CloseInputDevice) (uint32_t devIndex) +``` + +**描述:** + +input服务关闭对应设备的设备文件 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

devIndex

+

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + +## GetInputDevice + +``` +int32_t(* InputManager::GetInputDevice) (uint32_t devIndex, DeviceInfo **devInfo) +``` + +**描述:** + +input服务获取对应ID的设备信息。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devIndex

+

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

+

devInfo

+

即devIndex对应设备的设备信息,具体参考DeviceInfo

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + +## GetInputDeviceList + +``` +int32_t(* InputManager::GetInputDeviceList) (uint32_t *devNum, DeviceInfo **devList, uint32_t size) +``` + +**描述:** + +input服务获取所有input设备列表的设备信息。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devNum

+

当前已经注册过的所有input设备的总数。

+

devInfo

+

input设备列表所对应的设备信息,具体参考DeviceInfo

+

size

+

即指定deviceList数组对应的元素个数。

+
+ +返回: + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + +## OpenInputDevice + +``` +int32_t(* InputManager::OpenInputDevice) (uint32_t devIndex) +``` + +**描述:** + +input服务打开对应设备的设备文件 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

devIndex

+

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + +## ScanInputDevice + +``` +int32_t(* InputManager::ScanInputDevice) (DevDesc *staArr, uint32_t arrLen) +``` + +**描述:** + +input服务用于扫描所有在线设备。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

staArr

+

存放Input设备扫描信息的数组,信息包含设备索引以及设备类型。

+

arrLen

+

staArr数组的长度信息。

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + diff --git a/zh-cn/device-dev/api/toctopics/_input_report_event_cb.md b/zh-cn/device-dev/api/toctopics/_input_report_event_cb.md new file mode 100644 index 0000000000..ce5da83118 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_input_report_event_cb.md @@ -0,0 +1,102 @@ +# InputReportEventCb + +## **概述** + +**所属模块:** + +[Input](_input.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

( ReportEventPkgCallback )(const EventPackage **pkgs, uint32_t count, uint32_t devIndex)

+

输入事件数据上报的回调函数 更多...

+

( ReportHotPlugEventCallback )(const HotPlugEvent *event)

+

热插拔事件上报的回调函数 更多...

+
+ +## **详细描述** + +此结构体定义了输入事件回调函数并提供给input服务使用。 + +## **类成员变量说明** + +## ReportEventPkgCallback + +``` +void(* InputReportEventCb::ReportEventPkgCallback) (const EventPackage **pkgs, uint32_t count, uint32_t devIndex) +``` + +**描述:** + +输入事件数据上报的回调函数 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

eventData

+

驱动上报的input事件数据。

+

count

+

Input事件数据包的个数。

+

devIndex

+

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

+
+ +## ReportHotPlugEventCallback + +``` +void(* InputReportEventCb::ReportHotPlugEventCallback) (const HotPlugEvent *event) +``` + +**描述:** + +热插拔事件上报的回调函数 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

event

+

上报的热插拔事件数据

+
+ diff --git a/zh-cn/device-dev/api/toctopics/_input_reporter.md b/zh-cn/device-dev/api/toctopics/_input_reporter.md new file mode 100644 index 0000000000..afe71a5e50 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_input_reporter.md @@ -0,0 +1,191 @@ +# InputReporter + +## **概述** + +**所属模块:** + +[Input](_input.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

( RegisterReportCallback )(uint32_t devIndex, InputReportEventCb *callback)

+

注册对应设备的回调函数 更多...

+

( UnregisterReportCallback )(uint32_t devIndex)

+

注销对应设备的回调函数 更多...

+

( RegisterHotPlugCallback )(InputReportEventCb *callback)

+

注册Input设备的热插拔回调函数 更多...

+

( UnregisterHotPlugCallback )(void)

+

注销Input设备的热插拔回调函数 更多...

+
+ +## **详细描述** + +提供input设备数据上报相关的接口。 + +此类接口包含input设备的数据上报回调函数的注册和注销。 + +## **类成员变量说明** + +## RegisterHotPlugCallback + +``` +int32_t(* InputReporter::RegisterHotPlugCallback) (InputReportEventCb *callback) +``` + +**描述:** + +注册Input设备的热插拔回调函数 + +input服务通过此接口注册回调函数到hdi中,所有Input设备由此函数进行热插拔事件上报 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

callback

+

回调函数的函数指针

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + +## RegisterReportCallback + +``` +int32_t(* InputReporter::RegisterReportCallback) (uint32_t devIndex, InputReportEventCb *callback) +``` + +**描述:** + +注册对应设备的回调函数 + +input服务通过此接口注册数据回调函数到hdi中,hdi通过此回调函数上报input事件 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devIndex

+

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备

+

callback

+

回调函数的函数指针

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + +## UnregisterHotPlugCallback + +``` +int32_t(* InputReporter::UnregisterHotPlugCallback) (void) +``` + +**描述:** + +注销Input设备的热插拔回调函数 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

+

-

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + +## UnregisterReportCallback + +``` +int32_t(* InputReporter::UnregisterReportCallback) (uint32_t devIndex) +``` + +**描述:** + +注销对应设备的回调函数 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

devIndex

+

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备

+
+ +**返回:** + +Returns INPUT\_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + diff --git a/zh-cn/device-dev/api/toctopics/_layer_alpha.md b/zh-cn/device-dev/api/toctopics/_layer_alpha.md new file mode 100644 index 0000000000..a6c17979ca --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_layer_alpha.md @@ -0,0 +1,51 @@ +# LayerAlpha + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

enGlobalAlpha

+

全局alpha使能标志

+

enPixelAlpha

+

像素alpha使能标志

+

alpha0

+

alpha0值,取值范围:[0, 255]

+

alpha1

+

alpha1值,取值范围:[0, 255]

+

gAlpha

+

全局alpha值,取值范围:[0, 255]

+
+ +## **详细描述** + +定义图层Alpha信息的结构体。 + diff --git a/zh-cn/device-dev/api/toctopics/_layer_buffer.md b/zh-cn/device-dev/api/toctopics/_layer_buffer.md new file mode 100644 index 0000000000..adc0ef9669 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_layer_buffer.md @@ -0,0 +1,61 @@ +# LayerBuffer + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

fenceId

+

buffer的fence号

+

width

+

buffer宽度

+

height

+

buffer高度

+

pitch

+

一行数据所占字节数

+

pixFormat

+

图层像素格式

+

data

+

图层buffer数据

+

hdl

+

图层buffer句柄

+
+ +## **详细描述** + +图层Buffer,用于存放图层数据。 + diff --git a/zh-cn/device-dev/api/toctopics/_layer_funcs.md b/zh-cn/device-dev/api/toctopics/_layer_funcs.md new file mode 100644 index 0000000000..7793c571eb --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_layer_funcs.md @@ -0,0 +1,2160 @@ +# LayerFuncs + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

( InitDisplay )(uint32_t devId)

+

初始化显示设备。 更多...

+

( DeinitDisplay )(uint32_t devId)

+

取消初始化显示设备。 更多...

+

( GetDisplayInfo )(uint32_t devId, DisplayInfo *dispInfo)

+

获取显示设备相关信息。 更多...

+

( CreateLayer )(uint32_t devId, const LayerInfo *layerInfo, uint32_t *layerId)

+

打开图层。 更多...

+

( CloseLayer )(uint32_t devId, uint32_t layerId)

+

关闭图层。 更多...

+

( SetLayerVisible )(uint32_t devId, uint32_t layerId, bool visible)

+

设置图层是否可见。 更多...

+

( GetLayerVisibleState )(uint32_t devId, uint32_t layerId, bool *visible)

+

获取图层是否可见状态。 更多...

+

( SetLayerSize )(uint32_t devId, uint32_t layerId, IRect *rect)

+

设置图层大小。 更多...

+

( GetLayerSize )(uint32_t devId, uint32_t layerId, IRect *rect)

+

获取图层大小。 更多...

+

( SetLayerCrop )(uint32_t devId, uint32_t layerId, IRect *rect)

+

设置图层裁剪区域。 更多...

+

( SetLayerZorder )(uint32_t devId, uint32_t layerId, uint32_t zorder)

+

设置图层Z轴次序。 更多...

+

( GetLayerZorder )(uint32_t devId, uint32_t layerId, uint32_t *zorder)

+

获取图层Z轴次序。 更多...

+

( SetLayerPreMulti )(uint32_t devId, uint32_t layerId, bool preMul)

+

设置图层预乘。 更多...

+

( GetLayerPreMulti )(uint32_t devId, uint32_t layerId, bool *preMul)

+

获取图层预乘标识。 更多...

+

( SetLayerAlpha )(uint32_t devId, uint32_t layerId, LayerAlpha *alpha)

+

设置图层alpha值。 更多...

+

( GetLayerAlpha )(uint32_t devId, uint32_t layerId, LayerAlpha *alpha)

+

获取图层alpha值。 更多...

+

( SetLayerColorKey )(uint32_t devId, uint32_t layerId, bool enable, uint32_t key)

+

设置图层colorkey属性,在图层叠加时使用。 更多...

+

( GetLayerColorKey )(uint32_t devId, uint32_t layerId, bool *enable, uint32_t *key)

+

获取图层colorkey。 更多...

+

( SetLayerPalette )(uint32_t devId, uint32_t layerId, uint32_t *palette, uint32_t len)

+

设置图层调色板。 更多...

+

( GetLayerPalette )(uint32_t devId, uint32_t layerId, uint32_t *palette, uint32_t len)

+

获取图层调色板。 更多...

+

( SetTransformMode )(uint32_t devId, uint32_t layerId, TransformType type)

+

设置图层变换模式,根据不同的场景设置图层的旋转、缩放、移位等。 更多...

+

( SetLayerCompression )(uint32_t devId, uint32_t layerId, int32_t compType)

+

设置图层压缩功能 更多...

+

( GetLayerCompression )(uint32_t devId, uint32_t layerId, int32_t *compType)

+

获取图层压缩功能是否打开。 更多...

+

( SetLayerDirtyRegion )(uint32_t devId, uint32_t layerId, IRect *region)

+

设置图层刷新区域。 更多...

+

( GetLayerBuffer )(uint32_t devId, uint32_t layerId, LayerBuffer *buffer)

+

获取图层的buffer。 更多...

+

( Flush )(uint32_t devId, uint32_t layerId, LayerBuffer *buffer)

+

刷新图层。 更多...

+

( WaitForVBlank )(uint32_t devId, uint32_t layerId, int32_t timeOut)

+

实现等待帧消隐期到来功能。 更多...

+

( SnapShot )(uint32_t devId, LayerBuffer *buffer)

+

实现抓图功能。 更多...

+

( SetLayerVisibleRegion )(uint32_t devId, uint32_t layerId, uint32_t num, IRect *rect)

+

设置一个图层的可见区域 更多...

+

( SetLayerBuffer )(uint32_t devId, uint32_t layerId, const BufferHandle *buffer, int32_t fence)

+

设置一个层的缓冲区。 更多...

+

( InvokeLayerCmd )(uint32_t devId, uint32_t layerId, uint32_t cmd,...)

+

扩展接口 更多...

+

( SetLayerCompositionType )(uint32_t devId, uint32_t layerId, CompositionType type)

+

设置客户端期望的组合类型 更多...

+

( SetLayerBlendType )(uint32_t devId, uint32_t layerId, BlendType type)

+

设置混合类型 更多...

+

( SetLayerColorTransform )(uint32_t devId, uint32_t layerId, const float *matrix)

+

设置图层当前的颜色转换矩阵。 更多...

+

( SetLayerColorDataSpace )(uint32_t devId, uint32_t layerId, ColorDataSpace colorSpace)

+

设置图层的颜色数据空间。 更多...

+

( GetLayerColorDataSpace )(uint32_t devId, uint32_t layerId, ColorDataSpace *colorSpace)

+

获取图层当前的颜色数据空间。 更多...

+

( SetLayerMetaData )(uint32_t devId, uint32_t layerId, uint32_t num, const HDRMetaData *metaData)

+

设置图层的HDRmetaData。 更多...

+

( SetLayerMetaDataSet )(uint32_t devId, uint32_t layerId, HDRMetadataKey key, uint32_t num, const uint8_t *metaData)

+

设置图层的metaData set。 更多...

+

( GetSupportedPresentTimestamp )(uint32_t devId, uint32_t layerId, PresentTimestampType *type)

+

获取图层支持的上屏时间戳类型。 更多...

+

( GetHwPresentTimestamp )(uint32_t devId, uint32_t layerId, PresentTimestamp *pts)

+

获取图层的上屏时间戳信息。 更多...

+

( SetLayerTunnelHandle )(uint32_t devId, uint32_t layerId, ExtDataHandle *handle)

+

设置图层的tunnel句柄。 更多...

+

( GetLayerReleaseFence )(uint32_t devId, uint32_t layerId, int32_t *fence)

+

获取图层的同步栅栏。 更多...

+
+ +## **详细描述** + +显示图层驱动接口结构体,定义显示图层驱动接口函数指针。 + +## **类成员变量说明** + +## CloseLayer + +``` +int32_t(* LayerFuncs::CloseLayer) (uint32_t devId, uint32_t layerId) +``` + +**描述:** + +关闭图层。 + +在完成显示后,如果不在需要使用图层,调用关闭图层接口关闭图层。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +**OpenLayer** + +## CreateLayer + +``` +int32_t(* LayerFuncs::CreateLayer) (uint32_t devId, const LayerInfo *layerInfo, uint32_t *layerId) +``` + +**描述:** + +打开图层。 + +GUI在使用图层时,需要先根据图层信息打开图层,打开图层成功可获得图层ID,根据图层ID使用图层各接口。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerInfo

+

输入参数,图层信息,上层GUI打开图层时需传递图层信息,包括图层类型,图层大小,像素格式等信息。

+

layerId

+

输入参数,图层ID,打开图层成功后返回给GUI的图层ID,用于标识唯一的图层。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[CloseLayer](_layer_funcs.md#a2e375f75209da329f131b914377e9616) + +## DeinitDisplay + +``` +int32_t(* LayerFuncs::DeinitDisplay) (uint32_t devId) +``` + +**描述:** + +取消初始化显示设备。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[InitDisplay](_layer_funcs.md#a0641c3b48542646daa80386122bed46a) + +## Flush + +``` +int32_t(* LayerFuncs::Flush) (uint32_t devId, uint32_t layerId, LayerBuffer *buffer) +``` + +**描述:** + +刷新图层。 + +将buffer显示数据刷新到指定的layerId图层上,实现图像数据显示到屏幕上。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

buffer

+

输出参数,待刷新的buffer。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetDisplayInfo + +``` +int32_t(* LayerFuncs::GetDisplayInfo) (uint32_t devId, DisplayInfo *dispInfo) +``` + +**描述:** + +获取显示设备相关信息。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

dispInfo

+

输出参数,显示相关信息。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetHwPresentTimestamp + +``` +int32_t(* LayerFuncs::GetHwPresentTimestamp) (uint32_t devId, uint32_t layerId, PresentTimestamp *pts) +``` + +**描述:** + +获取图层的上屏时间戳信息。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

layerId

+

输入参数,指示需要操作的图层ID。

+

pts

+

输出参数,保存图层的上屏时间戳信息, 由接口实现层进行写入。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetLayerAlpha + +``` +int32_t(* LayerFuncs::GetLayerAlpha) (uint32_t devId, uint32_t layerId, LayerAlpha *alpha) +``` + +**描述:** + +获取图层alpha值。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

alpha

+

输出参数,保存获取的图层alpha值。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[SetLayerAlpha](_layer_funcs.md#abb9bea9f251316f7c2bea697de55a139) + +## GetLayerBuffer + +``` +int32_t(* LayerFuncs::GetLayerBuffer) (uint32_t devId, uint32_t layerId, LayerBuffer *buffer) +``` + +**描述:** + +获取图层的buffer。 + +向buffer中绘图后,调用Flush接口显示到屏幕上。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

buffer

+

输出参数,保存获取的图层buffer。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[Flush](_layer_funcs.md#abb480bf2b85e93841c49fdc9800bd1e7) + +## GetLayerColorDataSpace + +``` +int32_t(* LayerFuncs::GetLayerColorDataSpace) (uint32_t devId, uint32_t layerId, ColorDataSpace *colorSpace) +``` + +**描述:** + +获取图层当前的颜色数据空间。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

layerId

+

输入参数,指示需要操作的图层ID。

+

colorSpace

+

输出参数,保存对应图层的颜色数据空间。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetLayerColorKey + +``` +int32_t(* LayerFuncs::GetLayerColorKey) (uint32_t devId, uint32_t layerId, bool *enable, uint32_t *key) +``` + +**描述:** + +获取图层colorkey。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

enable

+

输出参数,保存获取的enable色键使能标识。

+

key

+

输出参数,保存获取的色键值,即颜色值。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[SetLayerColorKey](_layer_funcs.md#a5701fe1e0e2414de577aa5329bd873c9) + +## GetLayerCompression + +``` +int32_t(* LayerFuncs::GetLayerCompression) (uint32_t devId, uint32_t layerId, int32_t *compType) +``` + +**描述:** + +获取图层压缩功能是否打开。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

compType

+

输出参数,保存获取的图层压缩功能状态。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[SetLayerCompression](_layer_funcs.md#a46c9750d8615dc874b66ac4b10796b24) + +## GetLayerPalette + +``` +int32_t(* LayerFuncs::GetLayerPalette) (uint32_t devId, uint32_t layerId, uint32_t *palette, uint32_t len) +``` + +**描述:** + +获取图层调色板。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

palette

+

输出参数,保存获取的图层调色板。

+

len

+

输入参数,调色板长度。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[SetLayerPalette](_layer_funcs.md#a3982c76e093852ef386fc372581be4af) + +## GetLayerPreMulti + +``` +int32_t(* LayerFuncs::GetLayerPreMulti) (uint32_t devId, uint32_t layerId, bool *preMul) +``` + +**描述:** + +获取图层预乘标识。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

preMul

+

输出参数,保存获取的图层预乘使能标识。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[SetLayerPreMulti](_layer_funcs.md#a456aa01ca3ffa81d2e49c0a9487f816f) + +## GetLayerReleaseFence + +``` +int32_t(* LayerFuncs::GetLayerReleaseFence) (uint32_t devId, uint32_t layerId, int32_t *fence) +``` + +**描述:** + +获取图层的同步栅栏。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

layerId

+

输入参数,指示需要操作的图层ID。

+

fence

+

输出参数,保存图层的 release fence, 由接口实现层进行写入。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## GetLayerSize + +``` +int32_t(* LayerFuncs::GetLayerSize) (uint32_t devId, uint32_t layerId, IRect *rect) +``` + +**描述:** + +获取图层大小。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

rect

+

输出参数,保存获取的图层大小。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[SetLayerSize](_layer_funcs.md#ab58e66b0676b1baa1662c175d43bf219) + +## GetLayerVisibleState + +``` +int32_t(* LayerFuncs::GetLayerVisibleState) (uint32_t devId, uint32_t layerId, bool *visible) +``` + +**描述:** + +获取图层是否可见状态。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

visible

+

输出参数,保存获取的图层可见状态,true表示图层可见,false表示图层不可见。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[SetLayerVisible](_layer_funcs.md#aaa5bf7f98e8dc47510a4f26fb38094b6) + +## GetLayerZorder + +``` +int32_t(* LayerFuncs::GetLayerZorder) (uint32_t devId, uint32_t layerId, uint32_t *zorder) +``` + +**描述:** + +获取图层Z轴次序。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

zorder

+

输出参数,保存获取的图层Z轴次序,为整数值,取值范围为[0, 255],值越大图层越往上排列。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[SetLayerZorder](_layer_funcs.md#aa3803c2a6395651d1538ffb62d29733d) + +## GetSupportedPresentTimestamp + +``` +int32_t(* LayerFuncs::GetSupportedPresentTimestamp) (uint32_t devId, uint32_t layerId, PresentTimestampType *type) +``` + +**描述:** + +获取图层支持的上屏时间戳类型。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

layerId

+

输入参数,指示需要操作的图层ID。

+

type

+

输出参数,保存图层支持的上屏时间戳类型, 由接口实现层进行写入。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## InitDisplay + +``` +int32_t(* LayerFuncs::InitDisplay) (uint32_t devId) +``` + +**描述:** + +初始化显示设备。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[DeinitDisplay](_layer_funcs.md#a8d7a715d7d2b4bd5ab0db92c2a1eec93) + +## InvokeLayerCmd + +``` +int32_t(* LayerFuncs::InvokeLayerCmd) (uint32_t devId, uint32_t layerId, uint32_t cmd,...) +``` + +**描述:** + +扩展接口 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。

+

layerId

+

输入参数,层ID,唯一标识一个层。可以对该层进行操作。

+

cmd

+

输入参数,表示扩展cmd,用于识别不同的意图。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetLayerAlpha + +``` +int32_t(* LayerFuncs::SetLayerAlpha) (uint32_t devId, uint32_t layerId, LayerAlpha *alpha) +``` + +**描述:** + +设置图层alpha值。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

alpha

+

输入参数,待设置的图层 alpha 值。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[GetLayerAlpha](_layer_funcs.md#acf1e01338eeb0fd957f53ed0d2551394) + +## SetLayerBlendType + +``` +int32_t(* LayerFuncs::SetLayerBlendType) (uint32_t devId, uint32_t layerId, BlendType type) +``` + +**描述:** + +设置混合类型 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。

+

layerId

+

输入参数,层ID,唯一标识一个层。可以对该层进行操作。

+

type

+

输入参数,指示混合类型。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetLayerBuffer + +``` +int32_t(* LayerFuncs::SetLayerBuffer) (uint32_t devId, uint32_t layerId, const BufferHandle *buffer, int32_t fence) +``` + +**描述:** + +设置一个层的缓冲区。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。

+

layerId

+

输入参数,层ID,唯一标识一个层。可以对该层进行操作。

+

buffer

+

输入参数,指示缓冲区句柄的指针,该指针包含所有用于合成的缓冲区的所有信息。

+

fence

+

输入参数,同步文件的fd。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetLayerColorDataSpace + +``` +int32_t(* LayerFuncs::SetLayerColorDataSpace) (uint32_t devId, uint32_t layerId, ColorDataSpace colorSpace) +``` + +**描述:** + +设置图层的颜色数据空间。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

layerId

+

输入参数,指示需要操作的图层ID。

+

colorSpace

+

输入参数,表示需要设置的颜色数据空间。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetLayerColorKey + +``` +int32_t(* LayerFuncs::SetLayerColorKey) (uint32_t devId, uint32_t layerId, bool enable, uint32_t key) +``` + +**描述:** + +设置图层colorkey属性,在图层叠加时使用。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

enable

+

输入参数,待设置的色键使能标识。

+

key

+

输入参数,待设置的色键值,即颜色值。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[GetLayerColorKey](_layer_funcs.md#aea882232b6279b8be82c45e889187b24) + +## SetLayerColorTransform + +``` +int32_t(* LayerFuncs::SetLayerColorTransform) (uint32_t devId, uint32_t layerId, const float *matrix) +``` + +**描述:** + +设置图层当前的颜色转换矩阵。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

layerId

+

输入参数,指示需要操作的图层ID。

+

matrix

+

输入参数,表示需要设置的颜色转换模式。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetLayerCompositionType + +``` +int32_t(* LayerFuncs::SetLayerCompositionType) (uint32_t devId, uint32_t layerId, CompositionType type) +``` + +**描述:** + +设置客户端期望的组合类型 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。

+

layerId

+

输入参数,层ID,唯一标识一个层。可以对该层进行操作。

+

type

+

输入参数,指示客户端期望的组合类型。它可能随实现而变化。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetLayerCompression + +``` +int32_t(* LayerFuncs::SetLayerCompression) (uint32_t devId, uint32_t layerId, int32_t compType) +``` + +**描述:** + +设置图层压缩功能 + +在特定场景下,需要对图像数据进行压缩,可设置启动或关闭图层压缩功能。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

compType

+

输入参数,图层压缩使能标识。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[GetLayerCompression](_layer_funcs.md#ab0b5855ea4ee5228516303cba84907ce) + +## SetLayerCrop + +``` +int32_t(* LayerFuncs::SetLayerCrop) (uint32_t devId, uint32_t layerId, IRect *rect) +``` + +**描述:** + +设置图层裁剪区域。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

rect

+

输入参数,待设置的裁剪区域。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetLayerDirtyRegion + +``` +int32_t(* LayerFuncs::SetLayerDirtyRegion) (uint32_t devId, uint32_t layerId, IRect *region) +``` + +**描述:** + +设置图层刷新区域。 + +GUI图形系统绘制好图像数据后,在调用Flush接口刷新屏幕之前需要设置图层刷新区域。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

region

+

输入参数,待设置的刷新区域。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetLayerMetaData + +``` +int32_t(* LayerFuncs::SetLayerMetaData) (uint32_t devId, uint32_t layerId, uint32_t num, const HDRMetaData *metaData) +``` + +**描述:** + +设置图层的HDRmetaData。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

layerId

+

输入参数,指示需要操作的图层ID。

+

num

+

输入参数,metadata 数组个数。

+

metaData

+

输入参数,表示需要设置的 metadata 数组首地址。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetLayerMetaDataSet + +``` +int32_t(* LayerFuncs::SetLayerMetaDataSet) (uint32_t devId, uint32_t layerId, HDRMetadataKey key, uint32_t num, const uint8_t *metaData) +``` + +**描述:** + +设置图层的metaData set。 + +**参数:** + + + + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

layerId

+

输入参数,指示需要操作的图层ID。

+

key

+

输入参数,表示需要设置的 HDRMetadataKey。

+

num

+

输入参数,metadata 数组个数。

+

metaData

+

输入参数,表示需要设置的 metadata 数组首地址, 数据类型为uint8_t。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetLayerPalette + +``` +int32_t(* LayerFuncs::SetLayerPalette) (uint32_t devId, uint32_t layerId, uint32_t *palette, uint32_t len) +``` + +**描述:** + +设置图层调色板。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

palette

+

输入参数,待设置的图层调色板。

+

len

+

输入参数,调色板长度。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[GetLayerPalette](_layer_funcs.md#af713bc39e51dc8168c278e2f126bf4e3) + +## SetLayerPreMulti + +``` +int32_t(* LayerFuncs::SetLayerPreMulti) (uint32_t devId, uint32_t layerId, bool preMul) +``` + +**描述:** + +设置图层预乘。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

preMul

+

输入参数,待设置的图层预乘使能标识,1表示使能图层预乘,0表示不使能图层预乘。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[GetLayerPreMulti](_layer_funcs.md#a4a0e26f8401da1232f03bb37502ff4bd) + +## SetLayerSize + +``` +int32_t(* LayerFuncs::SetLayerSize) (uint32_t devId, uint32_t layerId, IRect *rect) +``` + +**描述:** + +设置图层大小。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

rect

+

输入参数,待设置的图层大小,单位为像素。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[GetLayerSize](_layer_funcs.md#a56be84be25eba64497b2a842c1f68b26) + +## SetLayerTunnelHandle + +``` +int32_t(* LayerFuncs::SetLayerTunnelHandle) (uint32_t devId, uint32_t layerId, ExtDataHandle *handle) +``` + +**描述:** + +设置图层的tunnel句柄。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,指示需要操作的设备ID。

+

layerId

+

输入参数,指示需要操作的图层ID。

+

handle

+

输入参数,表示需要设置的句柄。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetLayerVisible + +``` +int32_t(* LayerFuncs::SetLayerVisible) (uint32_t devId, uint32_t layerId, bool visible) +``` + +**描述:** + +设置图层是否可见。 + +不可见情况下图层不显示在屏幕上,可见情况下图层显示在屏幕上。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

visible

+

输入参数,待设置的图层可见标识,设置true表示图层可见,设置false表示图层不可见。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[GetLayerVisibleState](_layer_funcs.md#a6bbff71bb4f17eb84a4db4857a0b0985) + +## SetLayerVisibleRegion + +``` +int32_t(* LayerFuncs::SetLayerVisibleRegion) (uint32_t devId, uint32_t layerId, uint32_t num, IRect *rect) +``` + +**描述:** + +设置一个图层的可见区域 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。

+

layerId

+

输入参数,层ID,唯一标识一个层。可以对该层进行操作。

+

num

+

输入参数,指定rect的计数,该区域包含多个 IRect,num表示该区域中有多少个rect区域。

+

rect

+

输出参数,rectes对象的指针。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SetLayerZorder + +``` +int32_t(* LayerFuncs::SetLayerZorder) (uint32_t devId, uint32_t layerId, uint32_t zorder) +``` + +**描述:** + +设置图层Z轴次序。 + +图层的Z序值越大,图层越靠上显示。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

zorder

+

输入参数,待设置的图层Z序,为整数值,取值范围为[0, 255],值越大图层越往上排列。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +**参见:** + +[GetLayerZorder](_layer_funcs.md#a5644645442e1d6943b55ce0a6a801b8c) + +## SetTransformMode + +``` +int32_t(* LayerFuncs::SetTransformMode) (uint32_t devId, uint32_t layerId, TransformType type) +``` + +**描述:** + +设置图层变换模式,根据不同的场景设置图层的旋转、缩放、移位等。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

type

+

输入参数,待设置的图层变换模式。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## SnapShot + +``` +int32_t(* LayerFuncs::SnapShot) (uint32_t devId, LayerBuffer *buffer) +``` + +**描述:** + +实现抓图功能。 + +本函数将显示设备上的图像数据截图保存到buffer中,用于调试、应用截图等场景。 + +otherwise. + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

buffer

+

输出参数,保存截屏的buffer信息。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + +## WaitForVBlank + +``` +int32_t(* LayerFuncs::WaitForVBlank) (uint32_t devId, uint32_t layerId, int32_t timeOut) +``` + +**描述:** + +实现等待帧消隐期到来功能。 + +该函数会让系统等待,直到帧消隐期到来,用于软件和硬件之间的同步。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

devId

+

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

+

layerId

+

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

+

timeOut

+

输入参数,超时时间,在设置的超时时间后,没有等到帧消隐期到来则超时返回。

+
+ +**返回:** + +DISPLAY\_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 + diff --git a/zh-cn/device-dev/api/toctopics/_layer_info.md b/zh-cn/device-dev/api/toctopics/_layer_info.md new file mode 100644 index 0000000000..16aa2aa62e --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_layer_info.md @@ -0,0 +1,53 @@ +# LayerInfo + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

width

+

图层宽度

+

height

+

图层高度

+

type

+

图层类型,包括图形层、视频层和媒体播放模式。

+

bpp

+

每像素所占bit数

+

pixFormat

+

图层像素格式

+
+ +## **详细描述** + +定义图层信息结构体。 + +在创建图层时,需要将LayerInfo传递给创建图层接口,创建图层接口根据图层信息创建相应图层。 + diff --git a/zh-cn/device-dev/api/toctopics/_light.md b/zh-cn/device-dev/api/toctopics/_light.md new file mode 100644 index 0000000000..3849027cb3 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_light.md @@ -0,0 +1,295 @@ +# Light + +## **汇总** + +## 文件 + + + + + + + + + + + + + +

文件

+

描述

+

light_if.h

+

声明light模块的通用API,可用于获取灯ID、打开或关闭灯、并设置灯光亮度和闪烁模式。

+

light_type.h

+

定义灯的数据结构,包括灯ID、灯的模式、灯的闪烁模式和持续时间、灯的状态、灯的效果。

+
+ +## 类 + + + + + + + + + + + + + + + + + + + +

+

描述

+

LightFlashEffect

+

定义闪烁参数。 更多...

+

LightEffect

+

定义灯的效果参数。 更多...

+

LightInfo

+

定义灯的基本信息。 更多...

+

LightInterface

+

定义可以在灯上执行的基本操作。 更多...

+
+ +## 枚举 + + + + + + + + + + + + + + + + +

枚举

+

描述

+

LightStatus { LIGHT_SUCCESS = 0, LIGHT_NOT_SUPPORT = -1, LIGHT_NOT_FLASH = -2, LIGHT_NOT_BRIGHTNESS = -3 }

+

枚举灯模块的状态值。 更多...

+

LightId { LIGHT_ID_NONE = 0, LIGHT_ID_BATTERY = 1, LIGHT_ID_NOTIFICATIONS = 2, LIGHT_ID_ATTENTION = 3, LIGHT_ID_BUTT = 4 }

+

枚举灯类型 更多...

+

LightFlashMode { LIGHT_FLASH_NONE = 0, LIGHT_FLASH_TIMED = 1, LIGHT_FLASH_BUTT = 2 }

+

枚举灯的模式 更多...

+
+ +## 函数 + + + + + + + + + + + + + +

函数

+

描述

+

NewLightInterfaceInstance (void)

+

创建LightInterface实例。 更多...

+

FreeLightInterfaceInstance (void)

+

释放LightInterface实例和相关资源。 更多...

+
+ +## **详细描述** + +灯模块对灯服务提供通用的接口能力。 + +灯模块为灯服务提供通用的接口去访问灯驱动。 服务获取灯驱动对象或代理后,可以调用相关的APIs接口获取灯信息、打开或关闭灯,并根据灯ID设置灯闪烁模式。 + +**Since:** + +3.1 + +## **枚举类型说明** + +## LightFlashMode + +``` +enum LightFlashMode +``` + +**描述:** + +枚举灯的模式 + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

LIGHT_FLASH_NONE

+

常亮。

+

+

LIGHT_FLASH_TIMED

+

闪烁。

+

+

LIGHT_FLASH_BUTT

+

无效模式。

+

+
+ +## LightId + +``` +enum LightId +``` + +**描述:** + +枚举灯类型 + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

LIGHT_ID_NONE

+

未知ID。

+

+

LIGHT_ID_BATTERY

+

电源指示灯。

+

+

LIGHT_ID_NOTIFICATIONS

+

通知灯。

+

+

LIGHT_ID_ATTENTION

+

报警灯。

+

+

LIGHT_ID_BUTT

+

无效ID。

+

+
+ +## LightStatus + +``` +enum LightStatus +``` + +**描述:** + +枚举灯模块的状态值。 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

LIGHT_SUCCESS

+

操作成功。

+

+

LIGHT_NOT_SUPPORT

+

灯ID不支持。

+

+

LIGHT_NOT_FLASH

+

设置闪烁不支持。

+

+

LIGHT_NOT_BRIGHTNESS

+

设置亮度不支持。

+

+
+ +## **函数说明** + +## FreeLightInterfaceInstance\(\) + +``` +int32_t FreeLightInterfaceInstance (void ) +``` + +**描述:** + +释放LightInterface实例和相关资源。 + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +3.1 + +## NewLightInterfaceInstance\(\) + +``` +const struct LightInterface* NewLightInterfaceInstance (void ) +``` + +**描述:** + +创建LightInterface实例。 + +创建的LightInterface实例可用于执行相关的灯控制操作。 + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +3.1 + diff --git a/zh-cn/device-dev/api/toctopics/_light_effect.md b/zh-cn/device-dev/api/toctopics/_light_effect.md new file mode 100644 index 0000000000..71ab2d12de --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_light_effect.md @@ -0,0 +1,64 @@ +# LightEffect + +## **概述** + +**所属模块:** + +[Light](_light.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

lightBrightness

+

亮度值。

+

flashEffect

+

闪烁模式。

+
+ +## **详细描述** + +定义灯的效果参数。 + +参数包括亮度和闪烁模式。 + +**Since:** + +3.1 + +## **类成员变量说明** + +## flashEffect + +``` +struct LightFlashEffect LightEffect::flashEffect +``` + +**描述:** + +闪烁模式。详见[LightFlashEffect](_light_flash_effect.md)。 + +## lightBrightness + +``` +int32_t LightEffect::lightBrightness +``` + +**描述:** + +亮度值:Bits 24–31为扩展位,Bits 16–23为红色,bits 8–15为绿色,bits 0–7为蓝色。 如果字节段不等于0,指示打开相应颜色的灯。 + diff --git a/zh-cn/device-dev/api/toctopics/_light_flash_effect.md b/zh-cn/device-dev/api/toctopics/_light_flash_effect.md new file mode 100644 index 0000000000..46a896534a --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_light_flash_effect.md @@ -0,0 +1,79 @@ +# LightFlashEffect + +## **概述** + +**所属模块:** + +[Light](_light.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

flashMode

+

闪烁模式。

+

onTime

+

表示灯在闪烁期间点亮时持续的时间(毫秒)。

+

offTime

+

表示灯在闪烁期间熄灭时持续的时间(毫秒)。

+
+ +## **详细描述** + +定义闪烁参数。 + +这些参数包括闪烁模式以及闪烁期间指示灯的打开和关闭时间。 + +**Since:** + +3.1 + +## **类成员变量说明** + +## flashMode + +``` +int32_t LightFlashEffect::flashMode +``` + +**描述:** + +闪烁模式,详见[LightFlashMode](_light.md#gaacf9823c64514a279833614add26ab5d)。 + +## offTime + +``` +int32_t LightFlashEffect::offTime +``` + +**描述:** + +表示灯在闪烁期间熄灭时持续的时间(毫秒)。 + +## onTime + +``` +int32_t LightFlashEffect::onTime +``` + +**描述:** + +表示灯在闪烁期间点亮时持续的时间(毫秒)。 + diff --git a/zh-cn/device-dev/api/toctopics/_light_info.md b/zh-cn/device-dev/api/toctopics/_light_info.md new file mode 100644 index 0000000000..96485ffa36 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_light_info.md @@ -0,0 +1,64 @@ +# LightInfo + +## **概述** + +**所属模块:** + +[Light](_light.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

lightId

+

灯ID

+

reserved

+

自定义扩展信息

+
+ +## **详细描述** + +定义灯的基本信息。 + +基本的灯信息包括灯ID和自定义扩展信息。 + +**Since:** + +3.1 + +## **类成员变量说明** + +## lightId + +``` +uint32_t LightInfo::lightId +``` + +**描述:** + +灯ID,详见[LightId](_light.md#ga8af1cb654f32fb5377425257b28748e5)。 + +## reserved + +``` +int32_t LightInfo::reserved +``` + +**描述:** + +自定义扩展信息。 + diff --git a/zh-cn/device-dev/api/toctopics/_light_interface.md b/zh-cn/device-dev/api/toctopics/_light_interface.md new file mode 100644 index 0000000000..b3b1a92cbe --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_light_interface.md @@ -0,0 +1,158 @@ +# LightInterface + +## **概述** + +**所属模块:** + +[Light](_light.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

( GetLightInfo )([out] struct LightInfo **lightInfo, [out] uint32_t *count)

+

获取当前系统中所有类型的灯信息。 更多...

+

( TurnOnLight )([in] uint32_t lightId, [in] struct LightEffect *effect)

+

根据指定的灯ID打开列表中的可用灯。 更多...

+

( TurnOffLight )([in] uint32_t lightId)

+

根据指定的灯ID关闭列表中的可用灯。 更多...

+
+ +## **详细描述** + +定义可以在灯上执行的基本操作。 + +操作包括获取灯的信息、打开或关闭灯、设置灯的亮度或闪烁模式。 + +## **类成员变量说明** + +## GetLightInfo + +``` +int32_t(* LightInterface::GetLightInfo) ([out] struct LightInfo **lightInfo,[out] uint32_t *count) +``` + +**描述:** + +获取当前系统中所有类型的灯信息。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

lightInfo

+

表示指向灯信息的二级指针,详见LightInfo

+

count

+

表示指向灯数量的指针。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## TurnOffLight + +``` +int32_t(* LightInterface::TurnOffLight) ([in] uint32_t lightId) +``` + +**描述:** + +根据指定的灯ID关闭列表中的可用灯。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

lightId

+

表示灯ID,详见LightId

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## TurnOnLight + +``` +int32_t(* LightInterface::TurnOnLight) ([in] uint32_t lightId,[in] struct LightEffect *effect) +``` + +**描述:** + +根据指定的灯ID打开列表中的可用灯。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

lightId

+

表示灯ID,详见LightId

+

effect

+

表示指向灯效果的指针,如果lightbrightness字段为0时, 灯的亮度根据HCS配置的默认亮度进行设置,详见LightEffect

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果不支持灯ID,则返回-1。 + +如果不支持闪烁设置,则返回-2。 + +如果不支持亮度设置,则返回3。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md new file mode 100644 index 0000000000..093cdec385 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md @@ -0,0 +1,36 @@ +# OHOS::Camera::CaptureEndedInfo + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

streamId_

+

捕获的流ID。

+

frameCount_

+

捕获结束时已经抓取的帧数。

+
+ +## **详细描述** + +捕获结束相关信息,用于捕获结束回调 **OnCaptureEnded**。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_error_info.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_error_info.md new file mode 100644 index 0000000000..d4df7b0059 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_error_info.md @@ -0,0 +1,36 @@ +# OHOS::Camera::CaptureErrorInfo + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

streamId_

+

流ID。

+

error_

+

错误类型。

+
+ +## **详细描述** + +流错误信息,用于回调[OnCaptureError](_camera.md#gacea9a4cf4bdd5fab5499da06ecdf9b8f)。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_info.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_info.md new file mode 100644 index 0000000000..3bef10d50d --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_info.md @@ -0,0 +1,41 @@ +# OHOS::Camera::CaptureInfo + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

streamIds_

+

捕获的流ID集合。

+

captureSetting_

+

捕获的配置信息。

+

enableShutterCallback_

+

使能捕获回调,每一次捕获后都会触发 OnFrameShutter

+
+ +## **详细描述** + +捕获请求的相关信息。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device.md new file mode 100644 index 0000000000..54acfdfc62 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device.md @@ -0,0 +1,66 @@ +# OHOS::Camera::ICameraDevice + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 成员函数

+

描述

+

DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.Device")

+

IPC通信token校验。

+

GetStreamOperator (const OHOS::sptr< IStreamOperatorCallback > &callback, OHOS::sptr< IStreamOperator > &streamOperator)=0

+

获取流操作句柄。 更多...

+

UpdateSettings (const std::shared_ptr< CameraSetting > &settings)=0

+

更新设备控制参数。 更多...

+

SetResultMode (const ResultCallbackMode &mode)=0

+

设置metadata上报模式,逐帧上报还是设备状态变化时上报。 更多...

+

GetEnabledResults (std::vector< MetaType > &results)=0

+

查询使能的metadata。 更多...

+

EnableResult (const std::vector< MetaType > &results)=0

+

打开metadata上报开关。 更多...

+

DisableResult (const std::vector< MetaType > &results)=0

+

关闭metadata上报开关。 更多...

+

Close ()=0

+

关闭Camera设备。 更多...

+
+ +## **详细描述** + +Camera设备操作。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md new file mode 100644 index 0000000000..bdc5cf1f61 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md @@ -0,0 +1,41 @@ +# OHOS::Camera::ICameraDeviceCallback + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + + + + + + + +

Public 成员函数

+

描述

+

DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.DeviceCallback")

+

IPC通信token校验。

+

OnError (ErrorType type, int32_t errorCode)=0

+

设备发生错误时调用,由调用者实现,用于返回错误信息给调用者。 更多...

+

OnResult (uint64_t timestamp, const std::shared_ptr< CameraMetadata > &result)=0

+

上报camera设备相关的metadata的回调,上报方式查看 SetResultMode更多...

+
+ +## **详细描述** + +Camera设备操作回调。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host.md new file mode 100644 index 0000000000..44aa52c315 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host.md @@ -0,0 +1,73 @@ +# OHOS::Camera::ICameraHost + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 成员函数

+

描述

+

DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.Host")

+

IPC通信token校验。

+

SetCallback (const OHOS::sptr< ICameraHostCallback > &callback)=0

+

设置ICameraHost回调接口,回调函数参考 ICameraHostCallback更多...

+

GetCameraIds (std::vector< std::string > &cameraIds)=0

+

获取当前可用的Camera设备ID列表。 更多...

+

GetCameraAbility (const std::string &cameraId, std::shared_ptr< CameraAbility > &ability)=0

+

获取Camera设备能力集合。 更多...

+

OpenCamera (const std::string &cameraId, const OHOS::sptr< ICameraDeviceCallback > &callback, OHOS::sptr< ICameraDevice > &device)=0

+

打开Camera设备。 更多...

+

SetFlashlight (const std::string &cameraId, bool &isEnable)=0

+

打开或关闭闪光灯。 更多...

+
+ +## 静态 Public 成员函数 + + + + + + + + + + +

静态 Public 成员函数

+

描述

+

Get (const char *serviceName)

+

获取ICameraHost实例。 更多...

+
+ +## **详细描述** + +Camera服务的管理类。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md new file mode 100644 index 0000000000..883eda3f88 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md @@ -0,0 +1,46 @@ +# OHOS::Camera::ICameraHostCallback + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + + + + + + + + + + +

Public 成员函数

+

描述

+

DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.HostCallback")

+

IPC通信token校验。

+

OnCameraStatus (const std::string &cameraId, CameraStatus status)=0

+

用于Camera设备状态变化时上报状态信息给调用者。 更多...

+

OnFlashlightStatus (const std::string &cameraId, FlashlightStatus status)=0

+

用于在闪光灯状态变化时上报状态信息给调用者。 更多...

+

OnCameraEvent (const std::string &cameraId, CameraEvent event)=0

+

在相机事件发生时调用。 更多...

+
+ +## **详细描述** + +Camera服务的管理回调。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md new file mode 100644 index 0000000000..43f321256f --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md @@ -0,0 +1,46 @@ +# OHOS::Camera::IOfflineStreamOperator + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + + + + + + + + + + +

Public 成员函数

+

描述

+

DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.OfflineStreamOperator")

+

IPC通信token校验。

+

CancelCapture (int captureId)=0

+

取消捕获请求。 更多...

+

ReleaseStreams (const std::vector< int > &streamIds)=0

+

释放离线流。 更多...

+

Release ()=0

+

释放所有离线流。 更多...

+
+ +## **详细描述** + +离线流的操作类。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md new file mode 100644 index 0000000000..89e139d113 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md @@ -0,0 +1,81 @@ +# OHOS::Camera::IStreamOperator + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 成员函数

+

描述

+

DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.StreamOperator")

+

IPC通信token校验。

+

IsStreamsSupported (OperationMode mode, const std::shared_ptr< CameraMetadata > &modeSetting, const std::vector< std::shared_ptr< StreamInfo >> &info, StreamSupportType &type)=0

+

查询是否支持添加参数对应的流 更多...

+

CreateStreams (const std::vector< std::shared_ptr< StreamInfo >> &streamInfos)=0

+

创建流。 更多...

+

ReleaseStreams (const std::vector< int > &streamIds)=0

+

释放流。 更多...

+

CommitStreams (OperationMode mode, const std::shared_ptr< CameraMetadata > &modeSetting)=0

+

配置流。 更多...

+

GetStreamAttributes (std::vector< std::shared_ptr< StreamAttribute >> &attributes)=0

+

获取流的属性。 更多...

+

AttachBufferQueue (int streamId, const OHOS::sptr< OHOS::IBufferProducer > &producer)=0

+

绑定生产者句柄和指定流。 更多...

+

DetachBufferQueue (int streamId)=0

+

解除生产者句柄和指定流的绑定关系。 更多...

+

Capture (int captureId, const std::shared_ptr< CaptureInfo > &info, bool isStreaming)=0

+

捕获图像。 更多...

+

CancelCapture (int captureId)=0

+

取消捕获。 更多...

+

ChangeToOfflineStream (const std::vector< int > &streamIds, OHOS::sptr< IStreamOperatorCallback > &callback, OHOS::sptr< IOfflineStreamOperator > &offlineOperator)=0

+

将指定流转换成离线流。 更多...

+
+ +## **详细描述** + +流的操作类。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md new file mode 100644 index 0000000000..4575119dc4 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md @@ -0,0 +1,51 @@ +# OHOS::Camera::IStreamOperatorCallback + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + + + + + + + + + + + + + +

Public 成员函数

+

描述

+

DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.StreamOperatorCallback")

+

IPC通信token校验。

+

OnCaptureStarted (int32_t captureId, const std::vector< int32_t > &streamIds)=0

+

捕获开始回调,在捕获开始时调用。 更多...

+

OnCaptureEnded (int32_t captureId, const std::vector< std::shared_ptr< CaptureEndedInfo >> &infos)=0

+

捕获结束回调,在捕获结束时调用。 更多...

+

OnCaptureError (int32_t captureId, const std::vector< std::shared_ptr< CaptureErrorInfo >> &infos)=0

+

捕获错误回调,在捕获过程中发生错误时调用。 更多...

+

OnFrameShutter (int32_t captureId, const std::vector< int32_t > &streamIds, uint64_t timestamp)=0

+

帧捕获回调。 更多...

+
+ +## **详细描述** + +流的操作回调类。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_stream_attribute.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_stream_attribute.md new file mode 100644 index 0000000000..4c97b65ee9 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_stream_attribute.md @@ -0,0 +1,71 @@ +# OHOS::Camera::StreamAttribute + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

streamId_

+

流的ID,用于在设备内唯一标识一条流。

+

width_

+

图像宽度。

+

height_

+

图像高度。

+

overrideFormat_

+

重写的图像格式。

+

overrideDatasapce_

+

重写的图像颜色空间

+

producerUsage_

+

重写后的生产者的使用方式。

+

producerBufferCount_

+

重写后的生产者缓存数量。

+

maxBatchCaptureCount_

+

连拍支持的最大捕获帧数量。

+

maxCaptureCount_

+

最大的并发捕获请求个数,默认为1。

+
+ +## **详细描述** + +流的属性。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_stream_info.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_stream_info.md new file mode 100644 index 0000000000..e1efbf768f --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_stream_info.md @@ -0,0 +1,76 @@ +# OHOS::Camera::StreamInfo + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

streamId_

+

流的ID,用于在设备内唯一标识一条流。

+

width_

+

图像宽度。

+

height_

+

图像高度。

+

format_

+

图像格式。

+

datasapce_

+

图像颜色空间。

+

intent_

+

流类型。

+

tunneledMode_

+

隧道模式,值为true时开启,false关闭。

+

bufferQueue_

+

图形提供的生产者句柄。

+

minFrameDuration_

+

最小帧间隔。

+

encodeType_

+

编码类型。

+
+ +## **详细描述** + +流信息,用于创建流时传入相关的配置参数。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md new file mode 100644 index 0000000000..5fbb825694 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md @@ -0,0 +1,41 @@ +# OHOS::USB::USBDeviceInfo + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

status

+

USB设备状态

+

busNum

+

USB总线编号

+

devNum

+

USB设备编号

+
+ +## **详细描述** + +USB设备信息。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md new file mode 100644 index 0000000000..3e6f39ec77 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md @@ -0,0 +1,51 @@ +# OHOS::USB::UsbCtrlTransfer + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

requestType

+

请求类型

+

requestCmd

+

请求命令字

+

value

+

请求值

+

index

+

索引

+

timeout

+

超时时间

+
+ +## **详细描述** + +USB控制传输。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md new file mode 100644 index 0000000000..52cb4df3ca --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md @@ -0,0 +1,36 @@ +# OHOS::USB::UsbDev + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

busNum

+

USB总线编号

+

devAddr

+

USB设备地址

+
+ +## **详细描述** + +USB设备。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md new file mode 100644 index 0000000000..c7650dc48e --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md @@ -0,0 +1,56 @@ +# OHOS::USB::UsbInfo + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 成员函数

+

描述

+

setDevInfoStatus (int32_t status)

+

设置USB设备状态。 更多...

+

setDevInfoBusNum (int32_t busNum)

+

设置USB总线编号。 更多...

+

setDevInfoDevNum (int32_t devNum)

+

设置USB设备编号。 更多...

+

getDevInfoStatus () const

+

获取USB设备状态。 更多...

+

getDevInfoBusNum () const

+

获取USB总线编号。 更多...

+

getDevInfoDevNum () const

+

获取USB设备编号。 更多...

+
+ +## **详细描述** + +USB设备信息类。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md new file mode 100644 index 0000000000..71e16bbbc3 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md @@ -0,0 +1,36 @@ +# OHOS::USB::UsbPipe + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

interfaceId

+

USB设备接口ID

+

endpointId

+

USB设备端点ID

+
+ +## **详细描述** + +管道信息。 + diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md new file mode 100644 index 0000000000..d1561216a0 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md @@ -0,0 +1,204 @@ +# OHOS::USB::UsbdClient + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 成员函数

+

描述

+

OpenDevice (const UsbDev &dev)

+

打开设备,建立连接。 更多...

+

CloseDevice (const UsbDev &dev)

+

关闭设备,释放与设备相关的所有系统资源。 更多...

+

GetDeviceDescriptor (const UsbDev &dev, std::vector< uint8_t > &descriptor)

+

获取设备描述符。 更多...

+

GetStringDescriptor (const UsbDev &dev, uint8_t descId, std::vector< uint8_t > &descriptor)

+

根据String ID获取设备的字符串描述符。 更多...

+

GetConfigDescriptor (const UsbDev &dev, uint8_t descId, std::vector< uint8_t > &descriptor)

+

根据config ID获取设备的配置描述符config。 更多...

+

GetRawDescriptor (const UsbDev &dev, std::vector< uint8_t > &descriptor)

+

获取原始描述符。 更多...

+

GetFileDescriptor (const UsbDev &dev, int32_t &fd)

+

获取文件描述符。 更多...

+

SetConfig (const UsbDev &dev, uint8_t configIndex)

+

设置当前的config信息。 更多...

+

GetConfig (const UsbDev &dev, uint8_t &configIndex)

+

获取当前的config信息。 更多...

+

ClaimInterface (const UsbDev &dev, uint8_t interfaceid, uint8_t force)

+

打开接口,并声明独占接口,必须在数据传输前执行。 更多...

+

ReleaseInterface (const UsbDev &dev, uint8_t interfaceid)

+

关闭接口,释放接口的占用,在停止数据传输后执行。 更多...

+

SetInterface (const UsbDev &dev, uint8_t interfaceid, uint8_t altIndex)

+

设置指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。 更多...

+

BulkTransferRead (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

+

在给定端点上执行批量数据读取,返回读取的数据和长度,端点方向必须为数据读取,可以设置超时时间。 更多...

+

BulkTransferWrite (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, const std::vector< uint8_t > &data)

+

在给定端点上执行批量数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 更多...

+

ControlTransfer (const UsbDev &dev, const UsbCtrlTransfer &ctrl, std::vector< uint8_t > &data)

+

对此设备执行端点零的控制事务,传输方向由请求类型决定。 如果requestType& USB_ENDPOINT_DIR_MASK是USB_DIR_OUT ,则传输是写入,如果是USB_DIR_IN ,则传输是读取。 更多...

+

InterruptTransferRead (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

+

在给定端点上执行中断数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 更多...

+

InterruptTransferWrite (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

+

在给定端点上执行中断数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 更多...

+

IsoTransferRead (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

+

在给定端点上执行等时数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 更多...

+

IsoTransferWrite (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

+

在给定端点上执行等时数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 更多...

+

RequestQueue (const UsbDev &dev, const UsbPipe &pipe, const std::vector< uint8_t > &clientData, const std::vector< uint8_t > &buffer)

+

将指定的端点进行异步数据发送或者接收请求,数据传输方向由端点方向决定。 更多...

+

RequestWait (const UsbDev &dev, std::vector< uint8_t > &clientData, std::vector< uint8_t > &buffer, int32_t timeout)

+

等待RequestQueue异步请求的操作结果。 更多...

+

RequestCancel (const UsbDev &dev, const UsbPipe &pipe)

+

取消待处理的数据请求。 更多...

+

GetCurrentFunctions (int32_t &funcs)

+

获取从设备支持的功能列表(按位域表示)(从设备)。 更多...

+

SetCurrentFunctions (int32_t funcs)

+

设置从设备支持的功能列表(按位域表示)(从设备)。 更多...

+

SetPortRole (int32_t portId, int32_t powerRole, int32_t dataRole)

+

设置port端口的角色。 更多...

+

QueryPort (int32_t &portId, int32_t &powerRole, int32_t &dataRole, int32_t &mode)

+

查询port端口的当前设置。 更多...

+

BindUsbdSubscriber (const sptr< UsbdSubscriber > &subscriber)

+

绑定订阅者。 更多...

+

UnbindUsbdSubscriber (const sptr< UsbdSubscriber > &subscriber)

+

解绑订阅者。 更多...

+

RegBulkCallback (const UsbDev &dev, const UsbPipe &pipe, const sptr< IRemoteObject > &cb)

+

注册批量传输异步回调函数。 更多...

+

UnRegBulkCallback (const UsbDev &dev, const UsbPipe &pipe)

+

注销批量传输异步回调函数。 更多...

+

BulkRead (const UsbDev &dev, const UsbPipe &pipe, sptr< Ashmem > &ashmem)

+

批量传输异步读数据。 更多...

+

BulkWrite (const UsbDev &dev, const UsbPipe &pipe, sptr< Ashmem > &ashmem)

+

批量传输异步写数据。 更多...

+

BulkCancel (const UsbDev &dev, const UsbPipe &pipe)

+

批量传输异步取消接口,用于取消当前接口的异步批量读写操作。 更多...

+
+ +## 静态 Public 成员函数 + + + + + + + + + + +

静态 Public 成员函数

+

描述

+

GetInstance ()

+

获取实例。

+
+ diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md new file mode 100644 index 0000000000..11c9469311 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md @@ -0,0 +1,37 @@ +# OHOS::USB::UsbdSubscriber + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + + + + + + + +

Public 成员函数

+

描述

+

DeviceEvent (const UsbInfo &info)=0

+

设备事件。 更多...

+

PortChangedEvent (int32_t portId, int32_t powerRole, int32_t dataRole, int32_t mode)=0

+

端口改变事件。 更多...

+

OnRemoteRequest (uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override

+

远程请求。 更多...

+
+ diff --git a/zh-cn/device-dev/api/toctopics/_omx_codec_buffer.md b/zh-cn/device-dev/api/toctopics/_omx_codec_buffer.md new file mode 100644 index 0000000000..74de5cba09 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_omx_codec_buffer.md @@ -0,0 +1,223 @@ +# OmxCodecBuffer + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

bufferId

+

buffer的ID。

+

size

+

结构体大小。

+

version

+

组件版本信息。

+

bufferType

+

buffer类型。

+

buffer

+

编码或者解码使用的buffer。

+

bufferLen

+

buffer大小。

+

allocLen

+

申请的buffer大小。

+

filledLen

+

填充的buffer大小。

+

offset

+

有效数据从缓冲区开始的起始偏移量。

+

fenceFd

+

该描述符来自buffer消费者,Codec等待成功后才可以使用输入或者输出buffer。

+

type

+

共享内存类型。

+

pts

+

时间戳。

+

flag

+

标志。

+
+ +## **详细描述** + +Codec buffer信息的定义。 + +## **类成员变量说明** + +## allocLen + +``` +uint32_t OmxCodecBuffer::allocLen +``` + +**描述:** + +申请的buffer大小 + +## buffer + +``` +uint8_t* OmxCodecBuffer::buffer +``` + +**描述:** + +编码或者解码使用的buffer + +## bufferId + +``` +uint32_t OmxCodecBuffer::bufferId +``` + +**描述:** + +buffer ID + +## bufferLen + +``` +uint32_t OmxCodecBuffer::bufferLen +``` + +**描述:** + +buffer大小 + +## bufferType + +``` +enum CodecBufferType OmxCodecBuffer::bufferType +``` + +**描述:** + +buffer类型 + +## fenceFd + +``` +int32_t OmxCodecBuffer::fenceFd +``` + +**描述:** + +该描述符来自buffer消费者,Codec等待成功后才可以使用输入或者输出buffer + +## filledLen + +``` +uint32_t OmxCodecBuffer::filledLen +``` + +**描述:** + +填充的buffer大小 + +## flag + +``` +uint32_t OmxCodecBuffer::flag +``` + +**描述:** + +标志 + +## offset + +``` +uint32_t OmxCodecBuffer::offset +``` + +**描述:** + +有效数据从缓冲区开始的起始偏移量 + +## pts + +``` +int64_t OmxCodecBuffer::pts +``` + +**描述:** + +时间戳 + +## size + +``` +uint32_t OmxCodecBuffer::size +``` + +**描述:** + +结构体大小 + +## type + +``` +enum ShareMemTypes OmxCodecBuffer::type +``` + +**描述:** + +共享内存类型 + +## version + +``` +union OMX_VERSIONTYPE OmxCodecBuffer::version +``` + +**描述:** + +组件版本信息 + diff --git a/zh-cn/device-dev/api/toctopics/_power_types_8idl.md b/zh-cn/device-dev/api/toctopics/_power_types_8idl.md new file mode 100644 index 0000000000..5f24f11d25 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_power_types_8idl.md @@ -0,0 +1,68 @@ +# PowerTypes.idl + +## **概述** + +**所属模块:** + +[Power](power.md) + +## **汇总** + +## 枚举 + + + + + + + + + + + + + + + + +

枚举

+

描述

+

PowerHdfCmd { CMD_REGISTER_CALLBCK = 0, CMD_START_SUSPEND, CMD_STOP_SUSPEND, CMD_FORCE_SUSPEND, CMD_SUSPEND_BLOCK, CMD_SUSPEND_UNBLOCK, CMD_DUMP }

+

枚举电源命令的参数。 更多...

+

PowerHdfCallbackCmd { CMD_ON_SUSPEND = 0, CMD_ON_WAKEUP }

+

枚举电源状态回调的参数。 更多...

+

PowerHdfState { AWAKE = 0, INACTIVE, SLEEP }

+

枚举电源的状态。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.power.v1_0

+

电源管理接口的包路径

+
+ +## **详细描述** + +电源相关的数据类型。 + +电源管理中使用的数据类型,包括命令参数、回调参数和系统状态。 + +**Since:** + +3.1 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/_present_timestamp.md b/zh-cn/device-dev/api/toctopics/_present_timestamp.md new file mode 100644 index 0000000000..da14db4fd9 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_present_timestamp.md @@ -0,0 +1,36 @@ +# PresentTimestamp + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

type

+

上屏时间戳类型

+

time

+

类型对应的值

+
+ +## **详细描述** + +上屏时间戳结构体定义。 + diff --git a/zh-cn/device-dev/api/toctopics/_property_object.md b/zh-cn/device-dev/api/toctopics/_property_object.md new file mode 100644 index 0000000000..8002991443 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_property_object.md @@ -0,0 +1,41 @@ +# PropertyObject + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

name [PROPERTY_NAME_LEN]

+

属性名称

+

propId

+

属性ID

+

value

+

属性值

+
+ +## **详细描述** + +定义包含名称、属性ID和值的属性对象。 + diff --git a/zh-cn/device-dev/api/toctopics/_range_value.md b/zh-cn/device-dev/api/toctopics/_range_value.md new file mode 100644 index 0000000000..64e6c5c96a --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_range_value.md @@ -0,0 +1,58 @@ +# RangeValue + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

min

+

最小值

+

max

+

最大值

+
+ +## **详细描述** + +取值范围的定义。 + +## **类成员变量说明** + +## max + +``` +int32_t RangeValue::max +``` + +**描述:** + +最大值 + +## min + +``` +int32_t RangeValue::min +``` + +**描述:** + +最小值 + diff --git a/zh-cn/device-dev/api/toctopics/_rect.md b/zh-cn/device-dev/api/toctopics/_rect.md new file mode 100644 index 0000000000..66ad4baa6c --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_rect.md @@ -0,0 +1,58 @@ +# Rect + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

width

+

矩形的宽

+

height

+

矩形的高

+
+ +## **详细描述** + +矩形的定义。 + +## **类成员变量说明** + +## height + +``` +int32_t Rect::height +``` + +**描述:** + +矩形的高 + +## width + +``` +int32_t Rect::width +``` + +**描述:** + +矩形的宽 + diff --git a/zh-cn/device-dev/api/toctopics/_rectangle.md b/zh-cn/device-dev/api/toctopics/_rectangle.md new file mode 100644 index 0000000000..5acf5fb4f5 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_rectangle.md @@ -0,0 +1,36 @@ +# Rectangle + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

rect

+

矩形区域

+

color

+

矩形颜色

+
+ +## **详细描述** + +矩形描述结构体定义,用于硬件加速绘制矩形。 + diff --git a/zh-cn/device-dev/api/toctopics/_schedule_info.md b/zh-cn/device-dev/api/toctopics/_schedule_info.md new file mode 100644 index 0000000000..da045bb232 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_schedule_info.md @@ -0,0 +1,126 @@ +# ScheduleInfo + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

scheduleId

+

调度ID,用于标识一次操作请求的执行器调度过程。

+

templateIds

+

模版ID列表。

+

authType

+

用户认证凭据类型。

+

executorType

+

执行器类型。

+

scheduleMode

+

调度模式,支持注册、认证和识别模式。

+

executors

+

执行器信息列表。

+
+ +## **详细描述** + +调度信息。 + +**Since:** + +3.2 + +**Version:** + +1.0 + +## **类成员变量说明** + +## authType + +``` +enum AuthType ScheduleInfo::authType +``` + +**描述:** + +用户认证凭据类型。 + +## executors + +``` +struct ExecutorInfo [] ScheduleInfo::executors +``` + +**描述:** + +执行器信息列表。 + +## executorType + +``` +unsigned int ScheduleInfo::executorType +``` + +**描述:** + +执行器类型。 + +## scheduleId + +``` +unsigned long ScheduleInfo::scheduleId +``` + +**描述:** + +调度ID,用于标识一次操作请求的执行器调度过程。 + +## scheduleMode + +``` +unsigned int ScheduleInfo::scheduleMode +``` + +**描述:** + +调度模式,支持注册、认证和识别模式。 + +## templateIds + +``` +unsigned long [] ScheduleInfo::templateIds +``` + +**描述:** + +模版id列表。 + diff --git a/zh-cn/device-dev/api/toctopics/_sensor.md b/zh-cn/device-dev/api/toctopics/_sensor.md new file mode 100644 index 0000000000..ed90db12ca --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_sensor.md @@ -0,0 +1,742 @@ +# Sensor + +## **汇总** + +## 文件 + + + + + + + + + + + + + +

文件

+

描述

+

sensor_if.h

+

Sensor模块对外通用的接口声明文件,提供获取传感器设备信息、订阅/去订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度,量程等可选配置接口定义。

+

sensor_type.h

+

定义传感器模块所使用的传感器类型,传感器信息,传感器数据结构等数据类型。

+
+ +## 类 + + + + + + + + + + + + + + + + +

+

描述

+

SensorInterface

+

提供sensor设备基本控制操作接口。 更多...

+

SensorInformation

+

定义传感器基本信息。 更多...

+

SensorEvents

+

上报传感器数据结构。 更多...

+
+ +## 宏定义 + + + + + + + + + + + + + +

宏定义

+

描述

+

SENSOR_NAME_MAX_LEN 32

+

Sensor名称的最大长度。

+

SENSOR_VERSION_MAX_LEN 16

+

Sensor版本号的最大长度。

+
+ +## 类型定义 + + + + + + + + + + +

类型定义

+

描述

+

(RecordDataCallback) (const struct SensorEvents *)

+

传感器上报数据回调函数的定义,传感器服务用户在订阅传感器时, 需要注册上报数据回调函数,传感器使能后,传感器服务用户可以接受到传感器数据,详见SensorInterface更多...

+
+ +## 枚举 + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举

+

描述

+

SensorStatus { SENSOR_SUCCESS = 0, SENSOR_FAILURE = -1, SENSOR_NOT_SUPPORT = -2, SENSOR_INVALID_PARAM = -3, SENSOR_INVALID_SERVICE = -4, SENSOR_NULL_PTR = -5 }

+

定义传感器模块返回值类型。 更多...

+

SensorTypeTag { SENSOR_TYPE_NONE = 0, SENSOR_TYPE_ACCELEROMETER = 1, SENSOR_TYPE_GYROSCOPE = 2, SENSOR_TYPE_PHOTOPLETHYSMOGRAPH = 3, SENSOR_TYPE_ELECTROCARDIOGRAPH = 4, SENSOR_TYPE_AMBIENT_LIGHT = 5, SENSOR_TYPE_MAGNETIC_FIELD = 6, SENSOR_TYPE_CAPACITIVE = 7, SENSOR_TYPE_BAROMETER = 8, SENSOR_TYPE_TEMPERATURE = 9, SENSOR_TYPE_HALL = 10, SENSOR_TYPE_GESTURE = 11, SENSOR_TYPE_PROXIMITY = 12, SENSOR_TYPE_HUMIDITY = 13, SENSOR_TYPE_MEDICAL_BEGIN = 128, SENSOR_TYPE_MEDICAL_END = 160, SENSOR_TYPE_PHYSICAL_MAX = 255, SENSOR_TYPE_ORIENTATION = 256, SENSOR_TYPE_GRAVITY = 257, SENSOR_TYPE_LINEAR_ACCELERATION = 258, SENSOR_TYPE_ROTATION_VECTOR = 259, SENSOR_TYPE_AMBIENT_TEMPERATURE = 260, SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED = 261, SENSOR_TYPE_GAME_ROTATION_VECTOR = 262, SENSOR_TYPE_GYROSCOPE_UNCALIBRATED = 263, SENSOR_TYPE_SIGNIFICANT_MOTION = 264, SENSOR_TYPE_PEDOMETER_DETECTION = 265, SENSOR_TYPE_PEDOMETER = 266, SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR = 277, SENSOR_TYPE_HEART_RATE = 278, SENSOR_TYPE_DEVICE_ORIENTATION = 279, SENSOR_TYPE_WEAR_DETECTION = 280, SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED = 281, SENSOR_TYPE_MAX }

+

定义传感器类型标识。 更多...

+

SensorAccuracyType { SENSOR_NO_ACCURACY = 0, SENSOR_LOW_ACCURACY = 1, SENSOR_MEDIUM_ACCURACY = 2, SENSOR_HIGH_ACCURACY = 3, SENSOR_MAX_ACCURACY }

+

传感器的精度类型。 更多...

+

SensorRangeType { SENSOR_RANGE_LEVEL1 = 0, SENSOR_RANGE_LEVEL2 = 1, SENSOR_RANGE_LEVEL3 = 2, SENSOR_RANGE_LEVEL_MAX }

+

传感器的量程级别。 更多...

+

SensorModeType { SENSOR_MODE_DEFAULT = 0, SENSOR_MODE_REALTIME = 1, SENSOR_MODE_ON_CHANGE = 2, SENSOR_MODE_ONE_SHOT = 3, SENSOR_MODE_FIFO_MODE = 4, SENSOR_MODE_MAX }

+

传感器的工作模式。 更多...

+

SensorGroupType { TRADITIONAL_SENSOR_TYPE = 0, MEDICAL_SENSOR_TYPE = 1, SENSOR_GROUP_TYPE_MAX }

+

枚举传感器的硬件服务组。 更多...

+
+ +## 函数 + + + + + + + + + + + + + +

函数

+

描述

+

NewSensorInterfaceInstance (void)

+

创建传感器接口实例。 更多...

+

FreeSensorInterfaceInstance (void)

+

释放传感器接口实例。 更多...

+
+ +## **详细描述** + +传感器设备驱动对传感器服务提供通用的接口能力。 + +模块提供传感器服务对传感器驱动访问统一接口,服务获取驱动对象或者代理后, 通过其提供的各类方法,以传感器id区分访问不同类型传感器设备,实现获取传感器设备信息、订阅/去订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度、量程等可选配置等。 + +**Since:** + +2.2 + +**Version:** + +1.0 + +## **宏定义说明** + +## SENSOR\_NAME\_MAX\_LEN + +``` +#define SENSOR_NAME_MAX_LEN 32 +``` + +**描述:** + +Sensor名称的最大长度。 + +## SENSOR\_VERSION\_MAX\_LEN + +``` +#define SENSOR_VERSION_MAX_LEN 16 +``` + +**描述:** + +Sensor版本号的最大长度。 + +## **类型定义说明** + +## RecordDataCallback + +``` +typedef int32_t(* RecordDataCallback) (const struct SensorEvents *) +``` + +**描述:** + +传感器上报数据回调函数的定义,传感器服务用户在订阅传感器时, 需要注册上报数据回调函数,传感器使能后,传感器服务用户可以接受到传感器数据,详见[SensorInterface](_sensor_interface.md)。 + +## **枚举类型说明** + +## SensorAccuracyType + +``` +enum SensorAccuracyType +``` + +**描述:** + +传感器的精度类型。 + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

SENSOR_NO_ACCURACY

+

无精度类型。

+

SENSOR_LOW_ACCURACY

+

低精度类型。

+

+

SENSOR_MEDIUM_ACCURACY

+

中等精度类型。

+

+

SENSOR_HIGH_ACCURACY

+

高精度类型。

+

+

SENSOR_MAX_ACCURACY

+

最大精度类型。

+

+
+ +## SensorGroupType + +``` +enum SensorGroupType +``` + +**描述:** + +枚举传感器的硬件服务组。 + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

TRADITIONAL_SENSOR_TYPE

+

传统传感器类型,传感器ID枚举值范围为128-160。

+

+

MEDICAL_SENSOR_TYPE

+

医疗传感器类型,传感器ID枚举值范围不在128-160之间。

+

+

SENSOR_GROUP_TYPE_MAX

+

最大传感器类型。

+

+
+ +## SensorModeType + +``` +enum SensorModeType +``` + +**描述:** + +传感器的工作模式。 + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

SENSOR_MODE_DEFAULT

+

传感器默认工作模式状态。

+

+

SENSOR_MODE_REALTIME

+

传感器实时工作模式状态,一组数据上报一次。

+

SENSOR_MODE_ON_CHANGE

+

传感器实时工作模式状态,状态变更上报一次。

+

+

SENSOR_MODE_ONE_SHOT

+

传感器实时工作模式状态,只上报一次。

+

+

SENSOR_MODE_FIFO_MODE

+

传感器缓存工作模式状态,根据配置的缓存大小上报。

+

+

SENSOR_MODE_MAX

+

传感器最大类型标识。

+

+
+ +## SensorRangeType + +``` +enum SensorRangeType +``` + +**描述:** + +传感器的量程级别。 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

SENSOR_RANGE_LEVEL1

+

量程级别1。

+

SENSOR_RANGE_LEVEL2

+

量程级别2。

+

+

SENSOR_RANGE_LEVEL3

+

量程级别3。

+

+

SENSOR_RANGE_LEVEL_MAX

+

量程最大级别。

+

+
+ +## SensorStatus + +``` +enum SensorStatus +``` + +**描述:** + +定义传感器模块返回值类型。 + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

SENSOR_SUCCESS

+

传感器执行成功。

+

+

SENSOR_FAILURE

+

传感器执行失败。

+

+

SENSOR_NOT_SUPPORT

+

传感器不支持。

+

+

SENSOR_INVALID_PARAM

+

传感器无效参数。

+

+

SENSOR_INVALID_SERVICE

+

传感器无效服务。

+

+

SENSOR_NULL_PTR

+

传感器空指针。

+

+
+ +## SensorTypeTag + +``` +enum SensorTypeTag +``` + +**描述:** + +定义传感器类型标识。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

SENSOR_TYPE_NONE

+

空传感器类型,用于测试。

+

+

SENSOR_TYPE_ACCELEROMETER

+

加速度传感器。

+

SENSOR_TYPE_GYROSCOPE

+

陀螺仪传感器。

+

+

SENSOR_TYPE_PHOTOPLETHYSMOGRAPH

+

心率传感器。

+

+

SENSOR_TYPE_ELECTROCARDIOGRAPH

+

心电传感器。

+

+

SENSOR_TYPE_AMBIENT_LIGHT

+

环境光传感器。

+

+

SENSOR_TYPE_MAGNETIC_FIELD

+

地磁传感器。

+

+

SENSOR_TYPE_CAPACITIVE

+

电容传感器。

+

+

SENSOR_TYPE_BAROMETER

+

气压计传感器。

+

+

SENSOR_TYPE_TEMPERATURE

+

温度传感器。

+

+

SENSOR_TYPE_HALL

+

霍尔传感器。

+

+

SENSOR_TYPE_GESTURE

+

手势传感器。

+

+

SENSOR_TYPE_PROXIMITY

+

接近光传感器。

+

+

SENSOR_TYPE_HUMIDITY

+

湿度传感器。

+

+

SENSOR_TYPE_MEDICAL_BEGIN

+

医疗传感器ID枚举值范围的开始。

+

+

SENSOR_TYPE_MEDICAL_END

+

医疗传感器ID枚举值范围的结束。

+

+

SENSOR_TYPE_PHYSICAL_MAX

+

物理传感器最大类型。

+

+

SENSOR_TYPE_ORIENTATION

+

方向传感器。

+

+

SENSOR_TYPE_GRAVITY

+

重力传感器。

+

+

SENSOR_TYPE_LINEAR_ACCELERATION

+

线性加速度传感器。

+

+

SENSOR_TYPE_ROTATION_VECTOR

+

旋转矢量传感器。

+

+

SENSOR_TYPE_AMBIENT_TEMPERATURE

+

环境温度传感器

+

+

SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED

+

未校准磁场传感器。

+

+

SENSOR_TYPE_GAME_ROTATION_VECTOR

+

游戏旋转矢量传感器。

+

+

SENSOR_TYPE_GYROSCOPE_UNCALIBRATED

+

未校准陀螺仪传感器。

+

+

SENSOR_TYPE_SIGNIFICANT_MOTION

+

大幅度动作传感器。

+

+

SENSOR_TYPE_PEDOMETER_DETECTION

+

计步器检测传感器。

+

+

SENSOR_TYPE_PEDOMETER

+

计步器传感器。

+

+

SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR

+

地磁旋转矢量传感器。

+

+

SENSOR_TYPE_HEART_RATE

+

心率传感器。

+

+

SENSOR_TYPE_DEVICE_ORIENTATION

+

设备方向传感器。

+

+

SENSOR_TYPE_WEAR_DETECTION

+

佩戴检测传感器。

+

+

SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED

+

未校准加速度传感器。

+

+

SENSOR_TYPE_MAX

+

传感器类型最大个数。

+

+
+ +## **函数说明** + +## FreeSensorInterfaceInstance\(\) + +``` +int32_t FreeSensorInterfaceInstance (void ) +``` + +**描述:** + +释放传感器接口实例。 + +**返回:** + +如果释放实例成功,则返回0。 + +如果释放实例失败,则返回负值。 + +**Since:** + +2.2 + +**Version:** + +1.0 + +## NewSensorInterfaceInstance\(\) + +``` +const struct SensorInterface* NewSensorInterfaceInstance (void ) +``` + +**描述:** + +创建传感器接口实例。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

sensorId

+

表示传感器ID。有关详细信息,详见SensorTypeTag

+

cb

+

表示要注册的回调函数。有关详细信息,详见RecordDataCallback

+
+ +**返回:** + +如果创建实例成功,则返回非零值。 + +如果创建实例失败,则返回负值。 + +**Since:** + +2.2 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/_sensor_events.md b/zh-cn/device-dev/api/toctopics/_sensor_events.md new file mode 100644 index 0000000000..483d07125e --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_sensor_events.md @@ -0,0 +1,139 @@ +# SensorEvents + +## **概述** + +**所属模块:** + +[Sensor](_sensor.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

sensorId

+

传感器的标识号。

+

version

+

传感器算法版本号。

+

timestamp

+

传感器数据生成时间。

+

option

+

传感器量程精度可选配置。

+

mode

+

传感器工作模式。

+

data

+

传感器数据地址。

+

dataLen

+

传感器数据长度。

+
+ +## **详细描述** + +上报传感器数据结构。 + +上报传感器设备数据事件信息包括传感器的标识号、传感器算法版本号、传感器数据生成时间、传感器量程精度可选配置、传感器工作模式、传感器数据地址、传感器数据长度。 + +**Since:** + +2.2 + +## **类成员变量说明** + +## data + +``` +uint8_t* SensorEvents::data +``` + +**描述:** + +传感器数据地址。 + +## mode + +``` +int32_t SensorEvents::mode +``` + +**描述:** + +传感器工作模式。 + +## option + +``` +uint32_t SensorEvents::option +``` + +**描述:** + +传感器量程精度可选配置。 + +## sensorId + +``` +int32_t SensorEvents::sensorId +``` + +**描述:** + +传感器的标识号。 + +## timestamp + +``` +int64_t SensorEvents::timestamp +``` + +**描述:** + +传感器数据生成时间。 + +## version + +``` +int32_t SensorEvents::version +``` + +**描述:** + +传感器算法版本号。 + +## dataLen + +``` +int32_t SensorEvents::dataLen +``` + +**描述:** + +传感器算法版本号。 + diff --git a/zh-cn/device-dev/api/toctopics/_sensor_information.md b/zh-cn/device-dev/api/toctopics/_sensor_information.md new file mode 100644 index 0000000000..ca4f7f7412 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_sensor_information.md @@ -0,0 +1,170 @@ +# SensorInformation + +## **概述** + +**所属模块:** + +[Sensor](_sensor.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

sensorName [SENSOR_NAME_MAX_LEN]

+

传感器名称。

+

vendorName [SENSOR_NAME_MAX_LEN]

+

传感器设备厂商。

+

firmwareVersion [SENSOR_VERSION_MAX_LEN]

+

传感器固件版本号。

+

hardwareVersion

+

[SENSOR_VERSION_MAX_LEN]

+

传感器硬件版本号。

+

sensorTypeId

+

传感器类型编号,

+

sensorId

+

传感器的标识号,有传感器驱动开发者定义。

+

maxRange

+

传感器的最大量程。

+

accuracy

+

传感器的精度。

+

power

+

传感器的功耗。

+
+ +## **详细描述** + +定义传感器基本信息。 + +一个传感器设备信息包括传感器名字、设备厂商、固件版本号、硬件版本号、传感器类型编号、传感器标识、最大量程、精度、功耗。 + +**Since:** + +2.2 + +## **类成员变量说明** + +## accuracy + +``` +float SensorInformation::accuracy +``` + +**描述:** + +传感器的精度。 + +## firmwareVersion + +``` +char SensorInformation::firmwareVersion[SENSOR_VERSION_MAX_LEN] +``` + +**描述:** + +传感器固件版本号。 + +## hardwareVersion + +``` +char SensorInformation::hardwareVersion[SENSOR_VERSION_MAX_LEN] +``` + +**描述:** + +传感器硬件版本号。 + +## maxRange + +``` +float SensorInformation::maxRange +``` + +**描述:** + +传感器的最大量程。 + +## sensorId + +``` +int32_t SensorInformation::sensorId +``` + +**描述:** + +传感器的标识号,有传感器驱动开发者定义。 + +## sensorName + +``` +char SensorInformation::sensorName[SENSOR_NAME_MAX_LEN] +``` + +**描述:** + +传感器名称。 + +## sensorTypeId + +``` +int32_t SensorInformation::sensorTypeId +``` + +**描述:** + +传感器类型编号,唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#gaea6a2a57db175118e08189b73f8f3da5)。 + +## vendorName + +``` +char SensorInformation::vendorName[SENSOR_NAME_MAX_LEN] +``` + +**描述:** + +传感器设备厂商。 + +## power + +``` +char SensorInformation::power +``` + +**描述:** + +传感器的功耗。 + diff --git a/zh-cn/device-dev/api/toctopics/_sensor_interface.md b/zh-cn/device-dev/api/toctopics/_sensor_interface.md new file mode 100644 index 0000000000..06dd45ca7f --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_sensor_interface.md @@ -0,0 +1,369 @@ +# SensorInterface + +## **概述** + +**所属模块:** + +[Sensor](_sensor.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

( GetAllSensors )([out] struct SensorInformation **sensorInfo, [out] int32_t *count)

+

获取当前系统中所有类型的传感器信息。 更多...

+

( Enable )([in] int32_t sensorId)

+

根据传感器设备类型标识使能传感器信息列表里存在的设备,只有数据订阅者使能传感器后,才能获取订阅的传感器数据。 更多...

+

( Disable )([in] int32_t sensorId)

+

根据传感器设备类型标识去使能传感器信息列表里存在的设备。 更多...

+

( SetBatch )([in] int32_t sensorId, [in] int64_t samplingInterval, [in] int64_t reportInterval)

+

设置指定传感器的数据采样间隔和数据上报间隔。 更多...

+

( SetMode )([in] int32_t sensorId, [in] int32_t mode)

+

设置指定传感器的数据上报模式,不同的工作模式,上报数据的方式不同。 更多...

+

( SetOption )([in] int32_t sensorId, [in] uint32_t option)

+

设置指定传感器量程、精度等可选配置。 更多...

+

( Register )([in] int32_t groupId, [in] RecordDataCallback cb)

+

订阅者注册传感器数据回调函数,系统会将获取到的传感器数据上报给订阅者。 更多...

+

( Unregister )([in] int32_t groupId, [in] RecordDataCallback cb)

+

订阅者去注册传感器数据回调函数。 更多...

+
+ +## **详细描述** + +提供sensor设备基本控制操作接口。 + +结构体提供获取传感器设备信息、订阅/去订阅传感器数据、使能/去使能传感器、设置传感器模式、设置传感器精度、量程等可选配置接口定义。 + +## **类成员变量说明** + +## Disable + +``` +int32_t(* SensorInterface::Disable) ([in] int32_t sensorId) +``` + +**描述:** + +根据传感器设备类型标识去使能传感器信息列表里存在的设备。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

sensorId

+

唯一标识一个传感器设备类型,详见SensorTypeTag

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## Enable + +``` +int32_t(* SensorInterface::Enable) ([in] int32_t sensorId) +``` + +**描述:** + +根据传感器设备类型标识使能传感器信息列表里存在的设备,只有数据订阅者使能传感器后,才能获取订阅的传感器数据。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

sensorId

+

唯一标识一个传感器设备类型,详见SensorTypeTag

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## GetAllSensors + +``` +int32_t(* SensorInterface::GetAllSensors) ([out] struct SensorInformation **sensorInfo,[out] int32_t *count) +``` + +**描述:** + +获取当前系统中所有类型的传感器信息。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

sensorInfo

+

输出系统中注册的所有传感器信息,一种类型传感器信息包括传感器名字、设备厂商、 固件版本号、硬件版本号、传感器类型编号、传感器标识、最大量程、精度、功耗,详见SensorInformation

+

count

+

输出系统中注册的传感器数量。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## Register + +``` +int32_t(* SensorInterface::Register) ([in] int32_t groupId,[in] RecordDataCallback cb) +``` + +**描述:** + +订阅者注册传感器数据回调函数,系统会将获取到的传感器数据上报给订阅者。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

groupId

+

传感器组ID。 sensorId枚举值范围为128-160,表示已订阅医疗传感器服务,只需成功订阅一次,无需重复订阅。 sensorId枚举值范围不在128-160之间,这意味着传统传感器已订阅,只需成功订阅一次,无需重复订阅。

+

cb

+

要注册的回调函数,详见RecordDataCallback

+
+ +**返回:** + +如果注册回调函数成功,则返回0。 + +如果注册回调函数失败,则返回负数。 + +## SetBatch + +``` +int32_t(* SensorInterface::SetBatch) ([in] int32_t sensorId,[in] int64_t samplingInterval,[in] int64_t reportInterval) +``` + +**描述:** + +设置指定传感器的数据采样间隔和数据上报间隔。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

sensorId

+

唯一标识一个传感器设备类型,详见SensorTypeTag

+

samplingInterval

+

设置指定传感器的数据采样间隔,单位纳秒。

+

reportInterval

+

表示传感器数据上报间隔,单位纳秒。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## SetMode + +``` +int32_t(* SensorInterface::SetMode) ([in] int32_t sensorId,[in] int32_t mode) +``` + +**描述:** + +设置指定传感器的数据上报模式,不同的工作模式,上报数据的方式不同。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

sensorId

+

唯一标识一个传感器设备类型,详见SensorTypeTag

+

mode

+

传感器的数据上报模式,详见SensorModeType

+
+ +**返回:** + +如果设置传感器数据报告模式成功,则返回0。 + +如果设置传感器数据报告模式失败,则返回负数。 + +## SetOption + +``` +int32_t(* SensorInterface::SetOption) ([in] int32_t sensorId,[in] uint32_t option) +``` + +**描述:** + +设置指定传感器量程、精度等可选配置。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

sensorId

+

唯一标识一个传感器设备类型,详见SensorTypeTag

+

option

+

传感器的量程、精度等配置。

+
+ +**返回:** + +如果设置参数成功,则返回0。 + +如果设置参数失败,则返回负数。 + +## Unregister + +``` +int32_t(* SensorInterface::Unregister) ([in] int32_t groupId,[in] RecordDataCallback cb) +``` + +**描述:** + +订阅者去注册传感器数据回调函数。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

groupId

+

传感器组ID。 sensorId枚举值范围为128-160,表示已订阅医疗传感器服务。只需成功取消订阅一次,无需重复取消订阅。 sensorId枚举值范围不在128-160之间,这意味着传统传感器已订阅。并且成功取消订阅。

+

cb

+

要注册的回调函数,详见RecordDataCallback

+
+ +**返回:** + +如果取消注册回调函数成功,则返回0。 + +如果取消注册回调函数失败,则返回负数。 + diff --git a/zh-cn/device-dev/api/toctopics/_sta_info.md b/zh-cn/device-dev/api/toctopics/_sta_info.md new file mode 100644 index 0000000000..3f636ecf15 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_sta_info.md @@ -0,0 +1,51 @@ +# StaInfo + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + +

Public 属性

+

描述

+

mac [WIFI_MAC_ADDR_LENGTH]

+

STA的MAC地址

+
+ +## **详细描述** + +描述与AP连接的STA的基本信息。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **类成员变量说明** + +## mac + +``` +unsigned char StaInfo::mac[WIFI_MAC_ADDR_LENGTH] +``` + +**描述:** + +STA的MAC地址。 + diff --git a/zh-cn/device-dev/api/toctopics/_support_buffer_type.md b/zh-cn/device-dev/api/toctopics/_support_buffer_type.md new file mode 100644 index 0000000000..f3ad71eab8 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_support_buffer_type.md @@ -0,0 +1,88 @@ +# SupportBufferType + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

size

+

结构体大小

+

version

+

组件版本信息

+

portIndex

+

端口索引

+

bufferTypes

+

支持的所有Buffer类型

+
+ +## **详细描述** + +SupportBuffer类型定义。 + +## **类成员变量说明** + +## bufferTypes + +``` +uint32_t SupportBufferType::bufferTypes +``` + +**描述:** + +支持的所有Buffer类型 + +## portIndex + +``` +uint32_t SupportBufferType::portIndex +``` + +**描述:** + +端口索引 + +## size + +``` +uint32_t SupportBufferType::size +``` + +**描述:** + +结构体大小 + +## version + +``` +union OMX_VERSIONTYPE SupportBufferType::version +``` + +**描述:** + +组件版本信息 + diff --git a/zh-cn/device-dev/api/toctopics/_template_info.md b/zh-cn/device-dev/api/toctopics/_template_info.md new file mode 100644 index 0000000000..14da99a8d4 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_template_info.md @@ -0,0 +1,96 @@ +# TemplateInfo + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) | [HdfPinAuth](_hdf_pin_auth.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

executorType

+

执行器类型,根据执行器支持的算法类型进行分类。

+

freezingTime

+

认证方式被冻结的时间。

+

remainTimes

+

认证方式距离被冻结的可处理认证请求次数。

+

extraInfo

+

其他相关信息,用于支持信息扩展。

+
+ +## **详细描述** + +凭据模版信息。 + +**Since:** + +3.2 + +**Version:** + +1.0 + +## **类成员变量说明** + +## executorType + +``` +unsigned int TemplateInfo::executorType +``` + +**描述:** + +执行器类型,根据执行器支持的算法类型进行分类。 + +## extraInfo + +``` +unsigned char [] TemplateInfo::extraInfo +``` + +**描述:** + +其他相关信息,用于支持信息扩展。 + +## freezingTime + +``` +int TemplateInfo::freezingTime +``` + +**描述:** + +认证方式被冻结的时间。 + +## remainTimes + +``` +int TemplateInfo::remainTimes +``` + +**描述:** + +认证方式距离被冻结的可处理认证请求次数。 + diff --git a/zh-cn/device-dev/api/toctopics/_thermal_types_8idl.md b/zh-cn/device-dev/api/toctopics/_thermal_types_8idl.md new file mode 100644 index 0000000000..cffdfede0b --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_thermal_types_8idl.md @@ -0,0 +1,63 @@ +# ThermalTypes.idl + +## **概述** + +**所属模块:** + +[Thermal](thermal.md) + +## **汇总** + +## 类 + + + + + + + + + + + + + +

+

描述

+

ThermalZoneInfo

+

设备发热的信息。 更多...

+

HdfThermalCallbackInfo

+

设备发热的信息列表。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.thermal.v1_0

+

设备温度管理接口的包路径

+
+ +## **详细描述** + +设备发热状态相关的数据类型。 + +热管理中使用的数据类型,包括设备发热的信息和设备发热的信息列表。 + +**Since:** + +3.1 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/_thermal_zone_info.md b/zh-cn/device-dev/api/toctopics/_thermal_zone_info.md new file mode 100644 index 0000000000..42378f53b1 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_thermal_zone_info.md @@ -0,0 +1,62 @@ +# ThermalZoneInfo + +## **概述** + +**所属模块:** + +[Thermal](thermal.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

type

+

发热器件的类型。

+

temp

+

器件的温度值。

+
+ +## **详细描述** + +设备发热的信息。 + +**Since:** + +3.1 + +## **类成员变量说明** + +## temp + +``` +int ThermalZoneInfo::temp +``` + +**描述:** + +器件的温度值。 + +## type + +``` +String ThermalZoneInfo::type +``` + +**描述:** + +发热器件的类型。 + diff --git a/zh-cn/device-dev/api/toctopics/_types_8idl.md b/zh-cn/device-dev/api/toctopics/_types_8idl.md new file mode 100644 index 0000000000..da1c979b92 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_types_8idl.md @@ -0,0 +1,85 @@ +# Types.idl + +## **概述** + +**所属模块:** + +[Battery](battery.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

BatteryInfo

+

电池相关信息。 更多...

+
+ +## 枚举 + + + + + + + + + + + + + + + + +

枚举

+

描述

+

BatteryHealthState { BATTERY_HEALTH_UNKNOWN = 0, BATTERY_HEALTH_GOOD, BATTERY_HEALTH_OVERHEAT, BATTERY_HEALTH_OVERVOLTAGE, BATTERY_HEALTH_COLD, BATTERY_HEALTH_DEAD, BATTERY_HEALTH_RESERVED }

+

电池的健康状态。 更多...

+

BatteryChargeState { CHARGE_STATE_NONE = 0, CHARGE_STATE_ENABLE, CHARGE_STATE_DISABLE, CHARGE_STATE_FULL, CHARGE_STATE_RESERVED }

+

电池的充电状态。 更多...

+

BatteryPluggedType { PLUGGED_TYPE_NONE = 0, PLUGGED_TYPE_AC, PLUGGED_TYPE_USB, PLUGGED_TYPE_WIRELESS, PLUGGED_TYPE_BUTT }

+

电池的充电设备类型。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.battery.v1_0

+

电池信息接口的包路径

+
+ +## **详细描述** + +电池信息相关数据类型。 + +电池信息中使用的数据类型,包括健康状态、充电状态、充电设备类型和电池信息结构。 + +**Since:** + +3.1 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/_u_s_b.md b/zh-cn/device-dev/api/toctopics/_u_s_b.md new file mode 100644 index 0000000000..1ad29a5250 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_u_s_b.md @@ -0,0 +1,2664 @@ +# USB + +## **汇总** + +## 文件 + + + + + + + + + + + + + + + + + + + +

文件

+

描述

+

usb_info.h

+

USB驱动订阅模块使用的数据类型。

+

usbd_client.h

+

声明标准USB驱动接口函数。

+

usbd_subscriber.h

+

USB驱动订阅模块。

+

usbd_type.h

+

USB驱动模块接口定义中使用的自定义数据类型。

+
+ +## 类 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

描述

+

OHOS::USB::USBDeviceInfo

+

USB设备信息。 更多...

+

OHOS::USB::UsbInfo

+

USB设备信息类。 更多...

+

OHOS::USB::UsbdClient

+

Usb驱动类。更多...

+

OHOS::USB::UsbdSubscriber

+

订阅类。更多...

+

OHOS::USB::UsbDev

+

USB设备。 更多...

+

OHOS::USB::UsbPipe

+

管道信息。 更多...

+

OHOS::USB::UsbCtrlTransfer

+

USB控制传输。 更多...

+
+ +## 宏定义 + + + + + + + + + + +

宏定义

+

描述

+

USB_MAX_INTERFACES 32

+

USB设备最大接口数量。

+
+ +## 类型定义 + + + + + + + + + + +

类型定义

+

描述

+

(UsbdRequestCallback) (uint8_t *requestArg)

+

请求回调函数。更多...

+
+ +## 枚举 + + + + + + + + + + + + + +

枚举

+

描述

+

UsbdBulkCbCmd { CMD_USBD_BULK_CALLBACK_READ, CMD_USBD_BULK_CALLBACK_WRITE }

+

批量回调命令字。 更多...

+

UsbdDeviceAction { ACT_DEVUP = 0, ACT_DEVDOWN, ACT_UPDEVICE, ACT_DOWNDEVICE }

+

主机端和设备端插拔事件。 更多...

+
+ +## 函数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

函数

+

描述

+

OHOS::USB::UsbInfo::setDevInfoStatus (int32_t status)

+

设置USB设备状态。 更多...

+

OHOS::USB::UsbInfo::setDevInfoBusNum (int32_t busNum)

+

设置USB总线编号。 更多...

+

OHOS::USB::UsbInfo::setDevInfoDevNum (int32_t devNum)

+

设置USB设备编号。 更多...

+

OHOS::USB::UsbInfo::getDevInfoStatus () const

+

获取USB设备状态。 更多...

+

OHOS::USB::UsbInfo::getDevInfoBusNum () const

+

获取USB总线编号。 更多...

+

OHOS::USB::UsbInfo::getDevInfoDevNum () const

+

获取USB设备编号。 更多...

+

OHOS::USB::UsbdClient::GetInstance ()

+

获取实例。

+

OHOS::USB::UsbdClient::OpenDevice (const UsbDev &dev)

+

打开设备,建立连接。 更多...

+

OHOS::USB::UsbdClient::CloseDevice (const UsbDev &dev)

+

关闭设备,释放与设备相关的所有系统资源。 更多...

+

OHOS::USB::UsbdClient::GetDeviceDescriptor (const UsbDev &dev, std::vector< uint8_t > &descriptor)

+

获取设备描述符。 更多...

+

OHOS::USB::UsbdClient::GetStringDescriptor (const UsbDev &dev, uint8_t descId, std::vector< uint8_t > &descriptor)

+

根据String ID获取设备的字符串描述符。 更多...

+

OHOS::USB::UsbdClient::GetConfigDescriptor (const UsbDev &dev, uint8_t descId, std::vector< uint8_t > &descriptor)

+

根据config ID获取设备的配置描述符config。 更多...

+

OHOS::USB::UsbdClient::GetRawDescriptor (const UsbDev &dev, std::vector< uint8_t > &descriptor)

+

获取原始描述符。 更多...

+

OHOS::USB::UsbdClient::GetFileDescriptor (const UsbDev &dev, int32_t &fd)

+

获取文件描述符。 更多...

+

OHOS::USB::UsbdClient::SetConfig (const UsbDev &dev, uint8_t configIndex)

+

设置当前的config信息。 更多...

+

OHOS::USB::UsbdClient::GetConfig (const UsbDev &dev, uint8_t &configIndex)

+

获取当前的config信息。 更多...

+

OHOS::USB::UsbdClient::ClaimInterface (const UsbDev &dev, uint8_t interfaceid, uint8_t force)

+

打开接口,并声明独占接口,必须在数据传输前执行。 更多...

+

OHOS::USB::UsbdClient::ReleaseInterface (const UsbDev &dev, uint8_t interfaceid)

+

关闭接口,释放接口的占用,在停止数据传输后执行。 更多...

+

OHOS::USB::UsbdClient::SetInterface (const UsbDev &dev, uint8_t interfaceid, uint8_t altIndex)

+

设置指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。 更多...

+

OHOS::USB::UsbdClient::BulkTransferRead (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

+

在给定端点上执行批量数据读取,返回读取的数据和长度,端点方向必须为数据读取,可以设置超时时间。 更多...

+

OHOS::USB::UsbdClient::BulkTransferWrite (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, const std::vector< uint8_t > &data)

+

在给定端点上执行批量数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 更多...

+

OHOS::USB::UsbdClient::ControlTransfer (const UsbDev &dev, const UsbCtrlTransfer &ctrl, std::vector< uint8_t > &data)

+

对此设备执行端点零的控制事务,传输方向由请求类型决定。 如果requestType& USB_ENDPOINT_DIR_MASK是USB_DIR_OUT ,则传输是写入,如果是USB_DIR_IN ,则传输是读取。 更多...

+

OHOS::USB::UsbdClient::InterruptTransferRead (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

+

在给定端点上执行中断数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 更多...

+

OHOS::USB::UsbdClient::InterruptTransferWrite (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

+

在给定端点上执行中断数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 更多...

+

OHOS::USB::UsbdClient::IsoTransferRead (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

+

在给定端点上执行等时数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 更多...

+

OHOS::USB::UsbdClient::IsoTransferWrite (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

+

在给定端点上执行等时数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 更多...

+

OHOS::USB::UsbdClient::RequestQueue (const UsbDev &dev, const UsbPipe &pipe, const std::vector< uint8_t > &clientData, const std::vector< uint8_t > &buffer)

+

将指定的端点进行异步数据发送或者接收请求,数据传输方向由端点方向决定。 更多...

+

OHOS::USB::UsbdClient::RequestWait (const UsbDev &dev, std::vector< uint8_t > &clientData, std::vector< uint8_t > &buffer, int32_t timeout)

+

等待RequestQueue异步请求的操作结果。 更多...

+

OHOS::USB::UsbdClient::RequestCancel (const UsbDev &dev, const UsbPipe &pipe)

+

取消待处理的数据请求。 更多...

+

OHOS::USB::UsbdClient::GetCurrentFunctions (int32_t &funcs)

+

获取从设备支持的功能列表(按位域表示)(从设备)。 更多...

+

OHOS::USB::UsbdClient::SetCurrentFunctions (int32_t funcs)

+

设置从设备支持的功能列表(按位域表示)(从设备)。 更多...

+

OHOS::USB::UsbdClient::SetPortRole (int32_t portId, int32_t powerRole, int32_t dataRole)

+

设置port端口的角色。 更多...

+

OHOS::USB::UsbdClient::QueryPort (int32_t &portId, int32_t &powerRole, int32_t &dataRole, int32_t &mode)

+

查询port端口的当前设置。 更多...

+

OHOS::USB::UsbdClient::BindUsbdSubscriber (const sptr< UsbdSubscriber > &subscriber)

+

绑定订阅者。 更多...

+

OHOS::USB::UsbdClient::UnbindUsbdSubscriber (const sptr< UsbdSubscriber > &subscriber)

+

解绑订阅者。 更多...

+

OHOS::USB::UsbdClient::RegBulkCallback (const UsbDev &dev, const UsbPipe &pipe, const sptr< IRemoteObject > &cb)

+

注册批量传输异步回调函数。 更多...

+

OHOS::USB::UsbdClient::UnRegBulkCallback (const UsbDev &dev, const UsbPipe &pipe)

+

注销批量传输异步回调函数。 更多...

+

OHOS::USB::UsbdClient::BulkRead (const UsbDev &dev, const UsbPipe &pipe, sptr< Ashmem > &ashmem)

+

批量传输异步读数据。 更多...

+

OHOS::USB::UsbdClient::BulkWrite (const UsbDev &dev, const UsbPipe &pipe, sptr< Ashmem > &ashmem)

+

批量传输异步写数据。 更多...

+

OHOS::USB::UsbdClient::BulkCancel (const UsbDev &dev, const UsbPipe &pipe)

+

批量传输异步取消接口,用于取消当前接口的异步批量读写操作。 更多...

+

OHOS::USB::UsbdSubscriber::DeviceEvent (const UsbInfo &info)=0

+

设备事件。 更多...

+

OHOS::USB::UsbdSubscriber::PortChangedEvent (int32_t portId, int32_t powerRole, int32_t dataRole, int32_t mode)=0

+

端口改变事件。 更多...

+

OHOS::USB::UsbdSubscriber::OnRemoteRequest (uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override

+

远程请求。 更多...

+
+ +## 变量 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

变量 名称

+

描述

+

OHOS::USB::USBDeviceInfo::status

+

USB设备状态

+

OHOS::USB::USBDeviceInfo::busNum

+

USB总线编号

+

OHOS::USB::USBDeviceInfo::devNum

+

USB设备编号

+

OHOS::USB::UsbDev::busNum

+

USB总线编号

+

OHOS::USB::UsbDev::devAddr

+

USB设备地址

+

OHOS::USB::UsbPipe::interfaceId

+

USB设备接口ID

+

OHOS::USB::UsbPipe::endpointId

+

USB设备端点ID

+

OHOS::USB::UsbCtrlTransfer::requestType

+

请求类型

+

OHOS::USB::UsbCtrlTransfer::requestCmd

+

请求命令字

+

OHOS::USB::UsbCtrlTransfer::value

+

请求值

+

OHOS::USB::UsbCtrlTransfer::index

+

索引

+

OHOS::USB::UsbCtrlTransfer::timeout

+

超时时间

+
+ +## **详细描述** + +定义(USB)功能的标准API接口。 + +该模块用于获取描述符、接口对象、请求对象和提交请求的自定义数据类型和函数。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## **宏定义说明** + +## USB\_MAX\_INTERFACES + +``` +#define USB_MAX_INTERFACES 32 +``` + +**描述:** + +USB设备最大接口数量 + +## **类型定义说明** + +## UsbdRequestCallback + +``` +typedef void(* UsbdRequestCallback) (uint8_t *requestArg) +``` + +**描述:** + +请求回调函数 + +## **枚举类型说明** + +## UsbdBulkCbCmd + +``` +enum UsbdBulkCbCmd +``` + +**描述:** + +批量回调命令字。 + + + + + + + + + + + + + +

枚举值

+

描述

+

CMD_USBD_BULK_CALLBACK_READ

+

批量回调读取

+

+

CMD_USBD_BULK_CALLBACK_WRITE

+

批量回调写入

+

+
+ +## UsbdDeviceAction + +``` +enum UsbdDeviceAction +``` + +**描述:** + +主机端和设备端插拔事件。 + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

ACT_DEVUP

+

主机端接入设备

+

+

ACT_DEVDOWN

+

主机端拔出设备

+

+

ACT_UPDEVICE

+

设备连接

+

+

ACT_DOWNDEVICE

+

设备断开

+

+
+ +## **函数说明** + +## BindUsbdSubscriber\(\) + +``` +int32_t OHOS::USB::UsbdClient::BindUsbdSubscriber (const sptr< UsbdSubscriber > & subscriber) +``` + +**描述:** + +绑定订阅者。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

subscriber

+

输入参数,订阅者信息,详见UsbdSubscriber

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## BulkCancel\(\) + +``` +int32_t OHOS::USB::UsbdClient::BulkCancel (const UsbDev & dev, const UsbPipe & pipe ) +``` + +**描述:** + +批量传输异步取消接口,用于取消当前接口的异步批量读写操作。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

pipe

+

输入参数,USB设备pipe信息,详见UsbPipe

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## BulkRead\(\) + +``` +int32_t OHOS::USB::UsbdClient::BulkRead (const UsbDev & dev, const UsbPipe & pipe, sptr< Ashmem > & ashmem ) +``` + +**描述:** + +批量传输异步读数据。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

pipe

+

输入参数,USB设备pipe信息,详见UsbPipe

+

ashmem

+

输出参数,为共享内存,用于存放读取的数据,详见Ashmem

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## BulkTransferRead\(\) + +``` +int32_t OHOS::USB::UsbdClient::BulkTransferRead (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data ) +``` + +**描述:** + +在给定端点上执行批量数据读取,返回读取的数据和长度,端点方向必须为数据读取,可以设置超时时间。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

pipe

+

输入参数,USB设备pipe信息,详见UsbPipe

+

timeout

+

输入参数,超时时间。

+

data

+

输出参数,获取写入的数据。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## BulkTransferWrite\(\) + +``` +int32_t OHOS::USB::UsbdClient::BulkTransferWrite (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, const std::vector< uint8_t > & data ) +``` + +**描述:** + +在给定端点上执行批量数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

pipe

+

输入参数,USB设备pipe信息,详见UsbPipe

+

timeout

+

输入参数,超时时间。

+

data

+

输入参数,写入的数据。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## BulkWrite\(\) + +``` +int32_t OHOS::USB::UsbdClient::BulkWrite (const UsbDev & dev, const UsbPipe & pipe, sptr< Ashmem > & ashmem ) +``` + +**描述:** + +批量传输异步写数据。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

pipe

+

输入参数,USB设备pipe信息,详见UsbPipe

+

ashmem

+

输入参数,为共享内存,用于存放需要写入的数据,详见Ashmem

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## ClaimInterface\(\) + +``` +int32_t OHOS::USB::UsbdClient::ClaimInterface (const UsbDev & dev, uint8_t interfaceid, uint8_t force ) +``` + +**描述:** + +打开接口,并声明独占接口,必须在数据传输前执行。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

interfaceid

+

输入参数,USB设备interface ID。

+

force

+

输入参数,是否强制: 1强制 0不强制。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## CloseDevice\(\) + +``` +int32_t OHOS::USB::UsbdClient::CloseDevice (const UsbDev & dev) +``` + +**描述:** + +关闭设备,释放与设备相关的所有系统资源。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## ControlTransfer\(\) + +``` +int32_t OHOS::USB::UsbdClient::ControlTransfer (const UsbDev & dev, const UsbCtrlTransfer & ctrl, std::vector< uint8_t > & data ) +``` + +**描述:** + +对此设备执行端点零的控制事务,传输方向由请求类型决定。 如果requestType& USB\_ENDPOINT\_DIR\_MASK是USB\_DIR\_OUT ,则传输是写入,如果是USB\_DIR\_IN ,则传输是读取。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

ctrl

+

输入参数,USB设备控制数据包结构,详见UsbCtrlTransfer

+

data

+

输入/输出参数,读取/写入的数据。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## DeviceEvent\(\) + +``` +virtual int32_t OHOS::USB::UsbdSubscriber::DeviceEvent (const UsbInfo & info) +``` + +**描述:** + +设备事件。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

UsbInfo

+

输入参数,USB设备信息。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## GetConfig\(\) + +``` +int32_t OHOS::USB::UsbdClient::GetConfig (const UsbDev & dev, uint8_t & configIndex ) +``` + +**描述:** + +获取当前的config信息。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

configIndex

+

输出参数,USB设备config信息。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## GetConfigDescriptor\(\) + +``` +int32_t OHOS::USB::UsbdClient::GetConfigDescriptor (const UsbDev & dev, uint8_t descId, std::vector< uint8_t > & descriptor ) +``` + +**描述:** + +根据config ID获取设备的配置描述符config。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

descId

+

输入参数,USB的config ID。

+

descriptor

+

输出参数,获取USB设备config信息。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## GetCurrentFunctions\(\) + +``` +int32_t OHOS::USB::UsbdClient::GetCurrentFunctions (int32_t & funcs) +``` + +**描述:** + +获取从设备支持的功能列表(按位域表示)(从设备)。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

funcs

+

输出参数,获取当前设备的function的值。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## GetDeviceDescriptor\(\) + +``` +int32_t OHOS::USB::UsbdClient::GetDeviceDescriptor (const UsbDev & dev, std::vector< uint8_t > & descriptor ) +``` + +**描述:** + +获取设备描述符。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

descriptor

+

输出参数,USB设备描述符信息。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## getDevInfoBusNum\(\) + +``` +int32_t OHOS::USB::UsbInfo::getDevInfoBusNum () const +``` + +**描述:** + +获取USB总线编号。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

status

+

输出参数,USB总线编号。

+
+ +**Since:** + +3.0 + +**Version:** + +1.0 + +## getDevInfoDevNum\(\) + +``` +int32_t OHOS::USB::UsbInfo::getDevInfoDevNum () const +``` + +**描述:** + +获取USB设备编号。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

status

+

输出参数,USB设备编号。

+
+ +**Since:** + +3.0 + +**Version:** + +1.0 + +## getDevInfoStatus\(\) + +``` +int32_t OHOS::USB::UsbInfo::getDevInfoStatus () const +``` + +**描述:** + +获取USB设备状态。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

status

+

输出参数,设备状态。

+
+ +**Since:** + +3.0 + +**Version:** + +1.0 + +## GetFileDescriptor\(\) + +``` +int32_t OHOS::USB::UsbdClient::GetFileDescriptor (const UsbDev & dev, int32_t & fd ) +``` + +**描述:** + +获取文件描述符。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

fd

+

输出参数,USB设备文件描述符。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## GetRawDescriptor\(\) + +``` +int32_t OHOS::USB::UsbdClient::GetRawDescriptor (const UsbDev & dev, std::vector< uint8_t > & descriptor ) +``` + +**描述:** + +获取原始描述符。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

descriptor

+

输出参数,USB设备原始描述符。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## GetStringDescriptor\(\) + +``` +int32_t OHOS::USB::UsbdClient::GetStringDescriptor (const UsbDev & dev, uint8_t descId, std::vector< uint8_t > & descriptor ) +``` + +**描述:** + +根据String ID获取设备的字符串描述符。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

descId

+

输入参数,USB的string ID。

+

descriptor

+

输出参数,获取USB设备config信息。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## InterruptTransferRead\(\) + +``` +int32_t OHOS::USB::UsbdClient::InterruptTransferRead (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data ) +``` + +**描述:** + +在给定端点上执行中断数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

pipe

+

输入参数,USB设备pipe信息,详见UsbPipe

+

timeout

+

输入参数,超时时间。

+

data

+

输出参数,读取的数据。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## InterruptTransferWrite\(\) + +``` +int32_t OHOS::USB::UsbdClient::InterruptTransferWrite (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data ) +``` + +**描述:** + +在给定端点上执行中断数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

pipe

+

输入参数,USB设备pipe信息,详见UsbPipe

+

timeout

+

输入参数,超时时间。

+

data

+

输入参数,写入的数据。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## IsoTransferRead\(\) + +``` +int32_t OHOS::USB::UsbdClient::IsoTransferRead (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data ) +``` + +**描述:** + +在给定端点上执行等时数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

pipe

+

输入参数,USB设备pipe信息,详见UsbPipe

+

timeout

+

输入参数,超时时间。

+

data

+

输出参数,读取的数据。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## IsoTransferWrite\(\) + +``` +int32_t OHOS::USB::UsbdClient::IsoTransferWrite (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data ) +``` + +**描述:** + +在给定端点上执行等时数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

pipe

+

输入参数,USB设备pipe信息,详见UsbPipe

+

timeout

+

输入参数,超时时间。

+

data

+

输入参数,读取的数据。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## OnRemoteRequest\(\) + +``` +int32_t OHOS::USB::UsbdSubscriber::OnRemoteRequest (uint32_t code, MessageParcel & data, MessageParcel & reply, MessageOption & option ) +``` + +**描述:** + +远程请求。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

code

+

输入参数,命令字。

+

data

+

输入参数,待解析的数据。

+

reply

+

输出参数,返回的数据。

+

option

+

输入参数,选项数据。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## OpenDevice\(\) + +``` +int32_t OHOS::USB::UsbdClient::OpenDevice (const UsbDev & dev) +``` + +**描述:** + +打开设备,建立连接。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## PortChangedEvent\(\) + +``` +virtual int32_t OHOS::USB::UsbdSubscriber::PortChangedEvent (int32_t portId, int32_t powerRole, int32_t dataRole, int32_t mode ) +``` + +**描述:** + +端口改变事件。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

portId

+

输入参数,端口ID。

+

powerRole

+

输入参数,电源角色的值。

+

dataRole

+

输入参数,数据角色的值。

+

mode

+

输入参数,端口模式的值。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## QueryPort\(\) + +``` +int32_t OHOS::USB::UsbdClient::QueryPort (int32_t & portId, int32_t & powerRole, int32_t & dataRole, int32_t & mode ) +``` + +**描述:** + +查询port端口的当前设置。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

portId

+

输出参数,port接口ID。

+

powerRole

+

输出参数,电源角色的值。

+

dataRole

+

输出参数,数据角色的值。

+

mode

+

输出参数,模式的值。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## RegBulkCallback\(\) + +``` +int32_t OHOS::USB::UsbdClient::RegBulkCallback (const UsbDev & dev, const UsbPipe & pipe, const sptr< IRemoteObject > & cb ) +``` + +**描述:** + +注册批量传输异步回调函数。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

pipe

+

输入参数,USB设备pipe信息,详见UsbPipe

+

cb

+

输入参数,回调函数对象的引用。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## ReleaseInterface\(\) + +``` +int32_t OHOS::USB::UsbdClient::ReleaseInterface (const UsbDev & dev, uint8_t interfaceid ) +``` + +**描述:** + +关闭接口,释放接口的占用,在停止数据传输后执行。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

interfaceid

+

输入参数,USB设备interface ID。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## RequestCancel\(\) + +``` +int32_t OHOS::USB::UsbdClient::RequestCancel (const UsbDev & dev, const UsbPipe & pipe ) +``` + +**描述:** + +取消待处理的数据请求。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

pipe

+

输入参数,USB设备pipe信息,详见UsbPipe

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## RequestQueue\(\) + +``` +int32_t OHOS::USB::UsbdClient::RequestQueue (const UsbDev & dev, const UsbPipe & pipe, const std::vector< uint8_t > & clientData, const std::vector< uint8_t > & buffer ) +``` + +**描述:** + +将指定的端点进行异步数据发送或者接收请求,数据传输方向由端点方向决定。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

pipe

+

输入参数,USB设备pipe信息,详见UsbPipe

+

clientData

+

输入参数,用户数据。

+

buffer

+

输入参数,传输的数据。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## RequestWait\(\) + +``` +int32_t OHOS::USB::UsbdClient::RequestWait (const UsbDev & dev, std::vector< uint8_t > & clientData, std::vector< uint8_t > & buffer, int32_t timeout ) +``` + +**描述:** + +等待RequestQueue异步请求的操作结果。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

clientData

+

输入参数,用户数据。

+

buffer

+

输入参数,传输数据。

+

timeout

+

输入参数,超时时间。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## SetConfig\(\) + +``` +int32_t OHOS::USB::UsbdClient::SetConfig (const UsbDev & dev, uint8_t configIndex ) +``` + +**描述:** + +设置当前的config信息。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

configIndex

+

输入参数,USB设备config信息。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## SetCurrentFunctions\(\) + +``` +int32_t OHOS::USB::UsbdClient::SetCurrentFunctions (int32_t funcs) +``` + +**描述:** + +设置从设备支持的功能列表(按位域表示)(从设备)。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

funcs

+

输入参数,传入设备支持的function的值。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## setDevInfoBusNum\(\) + +``` +void OHOS::USB::UsbInfo::setDevInfoBusNum (int32_t busNum) +``` + +**描述:** + +设置USB总线编号。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

status

+

输入参数,USB总线编号。

+
+ +**Since:** + +3.0 + +**Version:** + +1.0 + +## setDevInfoDevNum\(\) + +``` +void OHOS::USB::UsbInfo::setDevInfoDevNum (int32_t devNum) +``` + +**描述:** + +设置USB设备编号。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

status

+

输入参数,USB设备编号。

+
+ +**Since:** + +3.0 + +**Version:** + +1.0 + +## setDevInfoStatus\(\) + +``` +void OHOS::USB::UsbInfo::setDevInfoStatus (int32_t status) +``` + +**描述:** + +设置USB设备状态。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

status

+

输入参数,设备状态。

+
+ +**Since:** + +3.0 + +**Version:** + +1.0 + +## SetInterface\(\) + +``` +int32_t OHOS::USB::UsbdClient::SetInterface (const UsbDev & dev, uint8_t interfaceid, uint8_t altIndex ) +``` + +**描述:** + +设置指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

interfaceid

+

输入参数,USB设备interface ID。

+

altIndex

+

输入参数,interface的AlternateSetting信息。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## SetPortRole\(\) + +``` +int32_t OHOS::USB::UsbdClient::SetPortRole (int32_t portId, int32_t powerRole, int32_t dataRole ) +``` + +**描述:** + +设置port端口的角色。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

portId

+

输入参数,port接口ID。

+

powerRole

+

输入参数,电源角色的值。

+

dataRole

+

输入参数,数据角色的值。

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## UnbindUsbdSubscriber\(\) + +``` +int32_t OHOS::USB::UsbdClient::UnbindUsbdSubscriber (const sptr< UsbdSubscriber > & subscriber) +``` + +**描述:** + +解绑订阅者。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

subscriber

+

输入参数,订阅者信息,详见UsbdSubscriber

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## UnRegBulkCallback\(\) + +``` +int32_t OHOS::USB::UsbdClient::UnRegBulkCallback (const UsbDev & dev, const UsbPipe & pipe ) +``` + +**描述:** + +注销批量传输异步回调函数。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

dev

+

输入参数,USB设备地址信息,详见UsbDev

+

pipe

+

输入参数,USB设备pipe信息,详见UsbPipe

+
+ +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + +## **变量说明** + +## busNum \[1/2\] + +``` +int32_t OHOS::USB::USBDeviceInfo::busNum +``` + +**描述:** + +USB总线编号 + +## busNum \[2/2\] + +``` +uint8_t OHOS::USB::UsbDev::busNum +``` + +**描述:** + +USB总线编号 + +## devAddr + +``` +uint8_t OHOS::USB::UsbDev::devAddr +``` + +**描述:** + +USB设备地址 + +## devNum + +``` +int32_t OHOS::USB::USBDeviceInfo::devNum +``` + +**描述:** + +USB设备编号 + +## endpointId + +``` +uint8_t OHOS::USB::UsbPipe::endpointId +``` + +**描述:** + +USB设备端点ID + +## index + +``` +int32_t OHOS::USB::UsbCtrlTransfer::index +``` + +**描述:** + +索引 + +## interfaceId + +``` +uint8_t OHOS::USB::UsbPipe::interfaceId +``` + +**描述:** + +USB设备接口ID + +## requestCmd + +``` +int32_t OHOS::USB::UsbCtrlTransfer::requestCmd +``` + +**描述:** + +请求命令字 + +## requestType + +``` +int32_t OHOS::USB::UsbCtrlTransfer::requestType +``` + +**描述:** + +请求类型 + +## status + +``` +int32_t OHOS::USB::USBDeviceInfo::status +``` + +**描述:** + +USB设备状态 + +## timeout + +``` +int32_t OHOS::USB::UsbCtrlTransfer::timeout +``` + +**描述:** + +超时时间 + +## value + +``` +int32_t OHOS::USB::UsbCtrlTransfer::value +``` + +**描述:** + +请求值 + diff --git a/zh-cn/device-dev/api/toctopics/_use_buffer_type.md b/zh-cn/device-dev/api/toctopics/_use_buffer_type.md new file mode 100644 index 0000000000..9d5fd8cfed --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_use_buffer_type.md @@ -0,0 +1,88 @@ +# UseBufferType + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

size

+

结构体大小

+

version

+

组件版本信息

+

portIndex

+

端口索引

+

bufferType

+

Buffer类型

+
+ +## **详细描述** + +UseBuffer类型定义。 + +## **类成员变量说明** + +## bufferType + +``` +uint32_t UseBufferType::bufferType +``` + +**描述:** + +Buffer类型 + +## portIndex + +``` +uint32_t UseBufferType::portIndex +``` + +**描述:** + +端口索引 + +## size + +``` +uint32_t UseBufferType::size +``` + +**描述:** + +结构体大小 + +## version + +``` +union OMX_VERSIONTYPE UseBufferType::version +``` + +**描述:** + +组件版本信息 + diff --git a/zh-cn/device-dev/api/toctopics/_user_auth_types_8idl.md b/zh-cn/device-dev/api/toctopics/_user_auth_types_8idl.md new file mode 100644 index 0000000000..845ea8a389 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_user_auth_types_8idl.md @@ -0,0 +1,124 @@ +# UserAuthTypes.idl + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + +## **汇总** + +## 类 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

描述

+

ExecutorRegisterInfo

+

执行器注册信息。 更多...

+

ExecutorInfo

+

执行器信息。 更多...

+

ScheduleInfo

+

调度信息。 更多...

+

AuthSolution

+

认证方案。 更多...

+

ExecutorSendMsg

+

执行器发送的消息。 更多...

+

AuthResultInfo

+

用户身份认证结果信息。 更多...

+

IdentifyResultInfo

+

用户身份识别结果信息。 更多...

+

EnrollParam

+

注册认证凭据参数。 更多...

+

CredentialInfo

+

认证凭据信息。 更多...

+

EnrolledInfo

+

注册信息。 更多...

+
+ +## 枚举 + + + + + + + + + + + + + + + + +

枚举

+

描述

+

AuthType : int { PIN = 1, FACE = 2, FINGERPRINT = 4, ALL = 0 }

+

枚举用户认证凭据类型。 更多...

+

ExecutorRole : int { COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 }

+

枚举执行器角色。 更多...

+

ExecutorSecureLevel : int { ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 }

+

枚举执行器安全等级。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.user_auth.v1_0

+

用户认证接口的包路径

+
+ +## **详细描述** + +定义用户认证驱动的枚举类和数据结构。 + +**Since:** + +3.2 + diff --git a/zh-cn/device-dev/api/toctopics/_verify_alloc_info.md b/zh-cn/device-dev/api/toctopics/_verify_alloc_info.md new file mode 100644 index 0000000000..2288340ed3 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_verify_alloc_info.md @@ -0,0 +1,46 @@ +# VerifyAllocInfo + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

width

+

分配内存的宽度

+

height

+

分配内存的高度

+

usage

+

内存的用处

+

format

+

分配内存的像素格式

+
+ +## **详细描述** + +用于验证内存分配信息的结构体定义。 + diff --git a/zh-cn/device-dev/api/toctopics/_vibrator.md b/zh-cn/device-dev/api/toctopics/_vibrator.md new file mode 100644 index 0000000000..3c7155320e --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_vibrator.md @@ -0,0 +1,188 @@ +# Vibrator + +## **汇总** + +## 文件 + + + + + + + + + + + + + +

文件

+

描述

+

vibrator_if.h

+

定义马达数据结构,包括马达模式和效果振动。

+

vibrator_type.h

+

定义马达数据结构,包括马达模式和效果振动。

+
+ +## 类 + + + + + + + + + + +

+

描述

+

VibratorInterface

+

提供Vibrator设备基本控制操作接口。更多...

+
+ +## 枚举 + + + + + + + + + + +

枚举

+

描述

+

VibratorMode { VIBRATOR_MODE_ONCE = 0, VIBRATOR_MODE_PRESET = 1, VIBRATOR_MODE_BUTT }

+

枚举马达振动模式。 更多...

+
+ +## 函数 + + + + + + + + + + + + + +

函数

+

描述

+

NewVibratorInterfaceInstance (void)

+

创建一个VibratorInterface实例。 更多...

+

FreeVibratorInterfaceInstance (void)

+

释放VibratorInterface实例以及相关资源。 更多...

+
+ +## **详细描述** + +马达驱动对马达服务提供通用的接口能力。 + +服务获取驱动对象或者代理后,马达服务启动或停止振动。 通过驱动程序对象或代理提供使用功能。 + +**Since:** + +2.2 + +**版本** + +1.0: + +## **枚举类型说明** + +## VibratorMode + +``` +enum VibratorMode +``` + +**描述:** + +枚举马达振动模式。 + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

VIBRATOR_MODE_ONCE

+

表示给定持续时间内的一次性振动。

+

+

VIBRATOR_MODE_PRESET

+

表示具有预置效果的周期性振动。

+

+

VIBRATOR_MODE_BUTT

+

表示效果模式无效。

+

+
+ +## **函数说明** + +## FreeVibratorInterfaceInstance\(\) + +``` +int32_t FreeVibratorInterfaceInstance (void ) +``` + +**描述:** + +释放VibratorInterface实例以及相关资源。 + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +2.2 + +**Version:** + +1.0 + +## NewVibratorInterfaceInstance\(\) + +``` +const struct VibratorInterface* NewVibratorInterfaceInstance (void ) +``` + +**描述:** + +创建一个VibratorInterface实例。 + +获的马达接口实例可用于控制马达按照配置进行振动。 + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +2.2 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/_vibrator_interface.md b/zh-cn/device-dev/api/toctopics/_vibrator_interface.md new file mode 100644 index 0000000000..aff35bc43e --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_vibrator_interface.md @@ -0,0 +1,148 @@ +# VibratorInterface + +## **概述** + +**所属模块:** + +[Vibrator](_vibrator.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

( StartOnce )([in] uint32_t duration)

+

控制马达以执行给定持续时间的一次性振动。 更多...

+

( Start )([in] const char *effectType)

+

控制马达以预置效果执行周期性振动。 更多...

+

( Stop )([in] enum VibratorMode mode)

+

停止马达振动。 更多...

+
+ +## **详细描述** + +提供Vibrator设备基本控制操作接口。 + +## **类成员变量说明** + +## Start + +``` +int32_t(* VibratorInterface::Start) ([in] const char *effectType) +``` + +**描述:** + +控制马达以预置效果执行周期性振动。 + +单次振动与周期振动相互排斥。在执行一次性振动之前,需退出周期性振动。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

effectType

+

指向指示预置效果类型的指针。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## StartOnce + +``` +int32_t(* VibratorInterface::StartOnce) ([in] uint32_t duration) +``` + +**描述:** + +控制马达以执行给定持续时间的一次性振动。 + +单次振动与周期振动相互排斥。在执行一次性振动之前,需退出周期性振动。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

duration

+

指示一次性振动的持续时间,以毫秒为单位。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +## Stop + +``` +int32_t(* VibratorInterface::Stop) ([in] enum VibratorMode mode) +``` + +**描述:** + +停止马达振动。 + +马达启动前,必须在任何模式下停止振动。此功能用在振动过程之后。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

mode

+

指示振动模式,可以是一次性或周期性的,详见VibratorMode

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + diff --git a/zh-cn/device-dev/api/toctopics/_video_port_cap.md b/zh-cn/device-dev/api/toctopics/_video_port_cap.md new file mode 100644 index 0000000000..cae1dc9396 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_video_port_cap.md @@ -0,0 +1,133 @@ +# VideoPortCap + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 属性

+

描述

+

minSize

+

支持的最小分辨率

+

maxSize

+

支持的最大分辨率

+

whAlignment

+

宽高对齐值

+

blockCount

+

支持的块数量范围

+

blocksPerSecond

+

每秒可处理的块数量范围

+

blockSize

+

支持的块大小

+

supportPixFmts [PIX_FORMAT_NUM]

+

支持的像素格式

+
+ +## **详细描述** + +定义视频编解码能力。 + +## **类成员变量说明** + +## blockCount + +``` +RangeValue VideoPortCap::blockCount +``` + +**描述:** + +支持的块数量范围 + +## blockSize + +``` +Rect VideoPortCap::blockSize +``` + +**描述:** + +支持的块大小 + +## blocksPerSecond + +``` +RangeValue VideoPortCap::blocksPerSecond +``` + +**描述:** + +每秒可处理的块数量范围 + +## maxSize + +``` +Rect VideoPortCap::maxSize +``` + +**描述:** + +支持的最大分辨率 + +## minSize + +``` +Rect VideoPortCap::minSize +``` + +**描述:** + +支持的最小分辨率 + +## supportPixFmts + +``` +int32_t VideoPortCap::supportPixFmts[PIX_FORMAT_NUM] +``` + +**描述:** + +支持的像素格式,详见**OMX\_COLOR\_FORMATTYPE**。 + +## whAlignment + +``` +Alignment VideoPortCap::whAlignment +``` + +**描述:** + +宽高对齐值 + diff --git a/zh-cn/device-dev/api/toctopics/_w_l_a_n.md b/zh-cn/device-dev/api/toctopics/_w_l_a_n.md new file mode 100644 index 0000000000..368d8d20a4 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/_w_l_a_n.md @@ -0,0 +1,537 @@ +# WLAN + +## **汇总** + +## 文件 + + + + + + + + + + + + + + + + + + + +

文件

+

描述

+

wifi_hal.h

+

提供给WLAN服务的WLAN基本能力接口。

+

wifi_hal_ap_feature.h

+

提供WLAN的AP特性能力(获取与AP连接的STA的基本信息、设置国家码)。

+

wifi_hal_base_feature.h

+

提供WLAN基本特性能力。

+

wifi_hal_sta_feature.h

+

提供WLAN的STA特性能力。

+
+ +## 类 + + + + + + + + + + + + + + + + + + + + + + +

+

描述

+

IWiFi

+

HAL对WLAN服务提供的基本能力。 更多...

+

StaInfo

+

描述与AP连接的STA的基本信息 更多...

+

IWiFiAp

+

继承了IWiFiBaseFeature基本特性,并包含AP模式下获取连接STA的信息和设置国家码的功能。 更多...

+

IWiFiBaseFeature

+

WLAN基本特性操作接口,包括获取网卡名称,设置MAC地址,设置发射功率等公共能力接口。 更多...

+

IWiFiSta

+

继承了IWiFiBaseFeature基本特性,额外包含设置扫描单个MAC地址功能。 更多...

+
+ +## 宏定义 + + + + + + + + + + + + + + + + +

宏定义

+

描述

+

IFNAME_MAX_LEN 16

+

网卡名称最大长度。

+

WIFI_MAC_ADDR_LENGTH 6

+

WLAN的MAC地址长度。

+

ERR_UNAUTH_ACCESS (-6)

+

定义访问失败错误码。

+
+ +## 类型定义 + + + + + + + + + + +

类型定义

+

描述

+

(CallbackFunc) (uint32_t event, void *data, const char *ifName)

+

定义IWiFi回调函数的原型,监听异步事件。 更多...

+
+ +## 枚举 + + + + + + + + + + +

枚举

+

描述

+

FeatureType { PROTOCOL_80211_IFTYPE_UNSPECIFIED, PROTOCOL_80211_IFTYPE_ADHOC, PROTOCOL_80211_IFTYPE_STATION, PROTOCOL_80211_IFTYPE_AP, PROTOCOL_80211_IFTYPE_AP_VLAN, PROTOCOL_80211_IFTYPE_WDS, PROTOCOL_80211_IFTYPE_MONITOR, PROTOCOL_80211_IFTYPE_MESH_POINT, PROTOCOL_80211_IFTYPE_P2P_CLIENT, PROTOCOL_80211_IFTYPE_P2P_GO, PROTOCOL_80211_IFTYPE_P2P_DEVICE, PROTOCOL_80211_IFTYPE_NUM }

+

枚举WLAN相关特性的类型FeatureType更多...

+
+ +## 函数 + + + + + + + + + + + + + + + + + + + + + + +

函数

+

描述

+

WifiConstruct (struct IWiFi **wifiInstance)

+

创建IWiFi结构体,挂接IWiFi中能力接口。 更多...

+

WifiDestruct (struct IWiFi **wifiInstance)

+

销毁IWiFi结构体并释放相关资源。 更多...

+

InitApFeature (struct IWiFiAp **fe)

+

初始化AP特性。WLAN服务在创建AP类型的特性FeatureType时调用。 更多...

+

InitBaseFeature (struct IWiFiBaseFeature **fe)

+

WLAN服务创建任何类型的特性{@Link FeatureType}时,都需要调用此函数。 更多...

+

InitStaFeature (struct IWiFiSta **fe)

+

初始化STA特性。WLAN服务在创建STA类型的特性FeatureType时调用。 更多...

+
+ +## **详细描述** + +WLAN模块向上层WLAN服务提供了统一接口。 + +HDI层开发人员可根据WLAN模块提供的向上统一接口获取如下能力:建立/关闭WLAN热点,扫描,关联WLAN热点,WLAN平台芯片管理,网络数据缓冲的申请、释放、移动等操作,网络设备管理,电源管理等。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **类型定义说明** + +## CallbackFunc + +``` +typedef int32_t(* CallbackFunc) (uint32_t event, void *data, const char *ifName) +``` + +**描述:** + +定义IWiFi回调函数的原型,监听异步事件。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

event

+

输入参数,回调传入的事件类型标识。

+

data

+

输入参数,回调传入的数据。

+

ifName

+

输入参数,网卡名称。

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## **枚举类型说明** + +## FeatureType + +``` +enum FeatureType +``` + +**描述:** + +枚举WLAN相关特性的类型[FeatureType](_w_l_a_n.md#gad2b28a6ade408676d1371ea941824012)。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

PROTOCOL_80211_IFTYPE_UNSPECIFIED

+

未定义的类型

+

PROTOCOL_80211_IFTYPE_ADHOC

+

特设型网络

+

PROTOCOL_80211_IFTYPE_STATION

+

工作站

+

+

PROTOCOL_80211_IFTYPE_AP

+

接入点

+

+

PROTOCOL_80211_IFTYPE_AP_VLAN

+

虚拟接入点

+

+

PROTOCOL_80211_IFTYPE_WDS

+

无线分布式系统

+

+

PROTOCOL_80211_IFTYPE_MONITOR

+

网络监听器

+

+

PROTOCOL_80211_IFTYPE_MESH_POINT

+

组网

+

+

PROTOCOL_80211_IFTYPE_P2P_CLIENT

+

对等网络客户端

+

+

PROTOCOL_80211_IFTYPE_P2P_GO

+

对等网络群组所有者

+

+

PROTOCOL_80211_IFTYPE_P2P_DEVICE

+

对等网络设备

+

+

PROTOCOL_80211_IFTYPE_NUM

+

网口的数目

+

+
+ +## **函数说明** + +## InitApFeature\(\) + +``` +int32_t InitApFeature (struct IWiFiAp ** fe) +``` + +**描述:** + +初始化AP特性。WLAN服务在创建AP类型的特性[FeatureType](_w_l_a_n.md#gad2b28a6ade408676d1371ea941824012)时调用。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

fe

+

输入参数,AP特性IWiFiAp

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## InitBaseFeature\(\) + +``` +int32_t InitBaseFeature (struct IWiFiBaseFeature ** fe) +``` + +**描述:** + +WLAN服务创建任何类型的特性\{@Link FeatureType\}时,都需要调用此函数。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

fe

+

输入参数,基本特性IWiFiBaseFeature

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## InitStaFeature\(\) + +``` +int32_t InitStaFeature (struct IWiFiSta ** fe) +``` + +**描述:** + +初始化STA特性。WLAN服务在创建STA类型的特性[FeatureType](_w_l_a_n.md#gad2b28a6ade408676d1371ea941824012)时调用。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

fe

+

输出参数,STA特性IWiFiSta

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## WifiConstruct\(\) + +``` +int32_t WifiConstruct (struct IWiFi ** wifiInstance) +``` + +**描述:** + +创建IWiFi结构体,挂接[IWiFi](_i_wi_fi.md)中能力接口。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

wifiInstance

+

HAL服务对象IWiFi

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +1.0 + +**Version:** + +1.0 + +## WifiDestruct\(\) + +``` +int32_t WifiDestruct (struct IWiFi ** wifiInstance) +``` + +**描述:** + +销毁IWiFi结构体并释放相关资源。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

wifiInstance

+

HAL服务对象IWiFi

+
+ +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/annotated.md b/zh-cn/device-dev/api/toctopics/annotated.md new file mode 100644 index 0000000000..96aa1f963a --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/annotated.md @@ -0,0 +1,261 @@ +# 结构体 + +- **[\_\_attribute\_\_](____attribute____.md)** + +- **[Alignment](_alignment.md)** + +- **[AllocInfo](_alloc_info.md)** + +- **[AudioAdapter](_audio_adapter.md)** + +- **[AudioAdapterDescriptor](_audio_adapter_descriptor.md)** + +- **[AudioAttribute](_audio_attribute.md)** + +- **[AudioCapture](_audio_capture.md)** + +- **[AudioControl](_audio_control.md)** + +- **[AudioDevExtInfo](_audio_dev_ext_info.md)** + +- **[AudioDeviceDescriptor](_audio_device_descriptor.md)** + +- **[AudioManager](_audio_manager.md)** + +- **[AudioMixExtInfo](_audio_mix_ext_info.md)** + +- **[AudioMmapBufferDescripter](_audio_mmap_buffer_descripter.md)** + +- **[AudioPort](_audio_port.md)** + +- **[AudioPortCap](_audio_port_cap.md)** + +- **[AudioPortCapability](_audio_port_capability.md)** + +- **[AudioRender](_audio_render.md)** + +- **[AudioRoute](_audio_route.md)** + +- **[AudioRouteNode](_audio_route_node.md)** + +- **[AudioSampleAttributes](_audio_sample_attributes.md)** + +- **[AudioScene](_audio_scene.md)** + +- **[AudioSceneDescriptor](_audio_scene_descriptor.md)** + +- **[AudioSceneDescriptor::SceneDesc](union_audio_scene_descriptor_1_1_scene_desc.md)** + +- **[AudioSessionExtInfo](_audio_session_ext_info.md)** + +- **[AudioSubPortCapability](_audio_sub_port_capability.md)** + +- **[AudioTimeStamp](_audio_time_stamp.md)** + +- **[AudioVolume](_audio_volume.md)** + +- **[AuthResultInfo](_auth_result_info.md)** + +- **[AuthSolution](_auth_solution.md)** + +- **[BatteryInfo](_battery_info.md)** + +- **[BufferData](_buffer_data.md)** + +- **[CodecCallbackType](_codec_callback_type.md)** + +- **[CodecCompCapability](_codec_comp_capability.md)** + +- **[CodecComponentManager](_codec_component_manager.md)** + +- **[CodecComponentType](_codec_component_type.md)** + +- **[CompVerInfo](_comp_ver_info.md)** + +- **[CredentialInfo](_credential_info.md)** + +- **[DacIoMsg](_dac_io_msg.md)** + +- **[DeviceFuncs](_device_funcs.md)** + +- **[DeviceInfo](_device_info.md)** + +- **[DisplayCapability](_display_capability.md)** + +- **[DisplayInfo](_display_info.md)** + +- **[DisplayModeInfo](_display_mode_info.md)** + +- **[EnrolledInfo](_enrolled_info.md)** + +- **[EnrollParam](_enroll_param.md)** + +- **[EventInfo](_event_info.md)** + +- **[EventPackage](_event_package.md)** + +- **[ExecutorInfo](_executor_info.md)** + +- **[ExecutorRegisterInfo](_executor_register_info.md)** + +- **[ExecutorSendMsg](_executor_send_msg.md)** + +- **[GetBufferHandleUsageParams](_get_buffer_handle_usage_params.md)** + +- **[GfxFuncs](_gfx_funcs.md)** + +- **[GfxOpt](_gfx_opt.md)** + +- **[GrallocFuncs](_gralloc_funcs.md)** + +- **[HdfThermalCallbackInfo](_hdf_thermal_callback_info.md)** + +- **[HDRCapability](_h_d_r_capability.md)** + +- **[HDRMetaData](_h_d_r_meta_data.md)** + +- **[IBatteryCallback](interface_i_battery_callback.md)** + +- **[IBatteryInterface](interface_i_battery_interface.md)** + +- **[ICircle](_i_circle.md)** + +- **[IdentifyResultInfo](_identify_result_info.md)** + +- **[IExecutor](interface_i_executor.md)** + +- **[IExecutorCallback](interface_i_executor_callback.md)** + +- **[IFaceAuthInterface](interface_i_face_auth_interface.md)** + +- **[IInputInterface](_i_input_interface.md)** + +- **[ILine](_i_line.md)** + +- **[InputController](_input_controller.md)** + +- **[InputExtraCmd](_input_extra_cmd.md)** + +- **[InputManager](_input_manager.md)** + +- **[InputReporter](_input_reporter.md)** + +- **[InputReportEventCb](_input_report_event_cb.md)** + +- **[IPinAuthInterface](interface_i_pin_auth_interface.md)** + +- **[IPowerHdiCallback](interface_i_power_hdi_callback.md)** + +- **[IPowerInterface](interface_i_power_interface.md)** + +- **[IRect](_i_rect.md)** + +- **[ISurface](_i_surface.md)** + +- **[IThermalCallback](interface_i_thermal_callback.md)** + +- **[IThermalInterface](interface_i_thermal_interface.md)** + +- **[IUserAuthInterface](interface_i_user_auth_interface.md)** + +- **[IWiFi](_i_wi_fi.md)** + +- **[IWiFiAp](_i_wi_fi_ap.md)** + +- **[IWiFiBaseFeature](_i_wi_fi_base_feature.md)** + +- **[IWiFiSta](_i_wi_fi_sta.md)** + +- **[LayerAlpha](_layer_alpha.md)** + +- **[LayerBuffer](_layer_buffer.md)** + +- **[LayerFuncs](_layer_funcs.md)** + +- **[LayerInfo](_layer_info.md)** + +- **[LightEffect](_light_effect.md)** + +- **[LightFlashEffect](_light_flash_effect.md)** + +- **[LightInfo](_light_info.md)** + +- **[LightInterface](_light_interface.md)** + +- **[OHOS::Camera::CaptureEndedInfo](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md)** + +- **[OHOS::Camera::CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md)** + +- **[OHOS::Camera::CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md)** + +- **[OHOS::Camera::ICameraDevice](_o_h_o_s_1_1_camera_1_1_i_camera_device.md)** + +- **[OHOS::Camera::ICameraDeviceCallback](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md)** + +- **[OHOS::Camera::ICameraHost](_o_h_o_s_1_1_camera_1_1_i_camera_host.md)** + +- **[OHOS::Camera::ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md)** + +- **[OHOS::Camera::IOfflineStreamOperator](_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md)** + +- **[OHOS::Camera::IStreamOperator](_o_h_o_s_1_1_camera_1_1_i_stream_operator.md)** + +- **[OHOS::Camera::IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md)** + +- **[OHOS::Camera::StreamAttribute](_o_h_o_s_1_1_camera_1_1_stream_attribute.md)** + +- **[OHOS::Camera::StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md)** + +- **[OHOS::USB::UsbCtrlTransfer](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md)** + +- **[OHOS::USB::UsbdClient](_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md)** + +- **[OHOS::USB::UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)** + +- **[OHOS::USB::USBDeviceInfo](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md)** + +- **[OHOS::USB::UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md)** + +- **[OHOS::USB::UsbInfo](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md)** + +- **[OHOS::USB::UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)** + +- **[OmxCodecBuffer](_omx_codec_buffer.md)** + +- **[PortCap](union_port_cap.md)** + +- **[PresentTimestamp](_present_timestamp.md)** + +- **[PropertyObject](_property_object.md)** + +- **[RangeValue](_range_value.md)** + +- **[Rect](_rect.md)** + +- **[Rectangle](_rectangle.md)** + +- **[ScheduleInfo](_schedule_info.md)** + +- **[SensorEvents](_sensor_events.md)** + +- **[SensorInformation](_sensor_information.md)** + +- **[SensorInterface](_sensor_interface.md)** + +- **[StaInfo](_sta_info.md)** + +- **[SupportBufferType](_support_buffer_type.md)** + +- **[TemplateInfo](_template_info.md)** + +- **[ThermalZoneInfo](_thermal_zone_info.md)** + +- **[UseBufferType](_use_buffer_type.md)** + +- **[VerifyAllocInfo](_verify_alloc_info.md)** + +- **[VibratorInterface](_vibrator_interface.md)** + +- **[VideoPortCap](_video_port_cap.md)** + + diff --git a/zh-cn/device-dev/api/toctopics/audio__adapter_8h.md b/zh-cn/device-dev/api/toctopics/audio__adapter_8h.md new file mode 100644 index 0000000000..4b76650358 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/audio__adapter_8h.md @@ -0,0 +1,39 @@ +# audio\_adapter.h + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

AudioAdapter

+

AudioAdapter音频适配器接口 更多...

+
+ +## **详细描述** + +Audio适配器的接口定义文件。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/audio__attribute_8h.md b/zh-cn/device-dev/api/toctopics/audio__attribute_8h.md new file mode 100644 index 0000000000..f27f5aa1f4 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/audio__attribute_8h.md @@ -0,0 +1,39 @@ +# audio\_attribute.h + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

AudioAttribute

+

AudioAttribute音频属性接口 更多...

+
+ +## **详细描述** + +Audio属性的接口定义文件。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/audio__capture_8h.md b/zh-cn/device-dev/api/toctopics/audio__capture_8h.md new file mode 100644 index 0000000000..4060fae0e7 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/audio__capture_8h.md @@ -0,0 +1,39 @@ +# audio\_capture.h + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

AudioCapture

+

AudioCapture音频录音接口 更多...

+
+ +## **详细描述** + +Audio录音的接口定义文件。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/audio__control_8h.md b/zh-cn/device-dev/api/toctopics/audio__control_8h.md new file mode 100644 index 0000000000..eae77ce333 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/audio__control_8h.md @@ -0,0 +1,39 @@ +# audio\_control.h + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

AudioControl

+

AudioControl音频控制接口 更多...

+
+ +## **详细描述** + +Audio控制的接口定义文件。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/audio__manager_8h.md b/zh-cn/device-dev/api/toctopics/audio__manager_8h.md new file mode 100644 index 0000000000..f505757488 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/audio__manager_8h.md @@ -0,0 +1,56 @@ +# audio\_manager.h + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

AudioManager

+

AudioManager音频适配器管理接口 更多...

+
+ +## 函数 + + + + + + + + + + +

函数

+

描述

+

GetAudioManagerFuncs (void)

+

获取音频适配器管理接口的操作函数列表,详情参考AudioManager 更多...

+
+ +## **详细描述** + +Audio适配器管理及加载的接口定义文件。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/audio__render_8h.md b/zh-cn/device-dev/api/toctopics/audio__render_8h.md new file mode 100644 index 0000000000..2a351bba4a --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/audio__render_8h.md @@ -0,0 +1,39 @@ +# audio\_render.h + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

AudioRender

+

AudioRender音频播放接口 更多...

+
+ +## **详细描述** + +Audio播放的接口定义文件。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/audio__scene_8h.md b/zh-cn/device-dev/api/toctopics/audio__scene_8h.md new file mode 100644 index 0000000000..d6d821ae63 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/audio__scene_8h.md @@ -0,0 +1,39 @@ +# audio\_scene.h + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

AudioScene

+

AudioScene音频场景接口 更多...

+
+ +## **详细描述** + +Audio场景的接口定义文件。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/audio__types_8h.md b/zh-cn/device-dev/api/toctopics/audio__types_8h.md new file mode 100644 index 0000000000..96b432f193 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/audio__types_8h.md @@ -0,0 +1,215 @@ +# audio\_types.h + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## 类 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

描述

+

AudioPort

+

音频端口 更多...

+

AudioAdapterDescriptor

+

音频适配器描述符 更多...

+

AudioDeviceDescriptor

+

音频设备描述符 更多...

+

AudioSceneDescriptor

+

音频场景描述符 更多...

+

AudioSceneDescriptor::SceneDesc

+

音频场景描述 更多...

+

AudioSampleAttributes

+

音频采样属性 更多...

+

AudioTimeStamp

+

音频时间戳 更多...

+

AudioSubPortCapability

+

音频子端口的支持能力 更多...

+

AudioPortCapability

+

音频端口的支持能力 更多...

+

AudioMmapBufferDescripter

+

mmap缓冲区描述符 更多...

+

AudioDevExtInfo

+

音频设备拓展信息 更多...

+

AudioMixExtInfo

+

音轨拓展信息 更多...

+

AudioSessionExtInfo

+

会话拓展信息 更多...

+

AudioRouteNode

+

音频路由节点 更多...

+

AudioRoute

+

音频路由信息 更多...

+
+ +## 类型定义 + + + + + + + + + + + + + +

类型定义

+

描述

+

AudioHandle

+

音频句柄

+

(RenderCallback) (enum AudioCallbackType, void *reserved, void *cookie)

+

回调函数指针 更多...

+
+ +## 枚举 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举

+

描述

+

AudioPortDirection { PORT_OUT = 0x1u, PORT_IN = 0x2u, PORT_OUT_IN = 0x3u }

+

音频端口的类型 更多...

+

AudioPortPin { PIN_NONE = 0x0u, PIN_OUT_SPEAKER = 0x1u, PIN_OUT_HEADSET = 0x2u, PIN_OUT_LINEOUT = 0x4u, PIN_OUT_HDMI = 0x8u, PIN_OUT_USB = 0x10u, PIN_OUT_USB_EXT = 0x20u, PIN_IN_MIC = 0x8000001u, PIN_IN_HS_MIC = 0x8000002u, PIN_IN_LINEIN = 0x8000004u, PIN_IN_USB_EXT = 0x8000008u }

+

音频适配器端口的PIN脚 更多...

+

AudioCategory { AUDIO_IN_MEDIA = 0, AUDIO_IN_COMMUNICATION, AUDIO_IN_RINGTONE, AUDIO_IN_CALL }

+

音频类型(category) 更多...

+

AudioFormat { AUDIO_FORMAT_PCM_8_BIT = 0x1u, AUDIO_FORMAT_PCM_16_BIT = 0x2u, AUDIO_FORMAT_PCM_24_BIT = 0x3u, AUDIO_FORMAT_PCM_32_BIT = 0x4u, AUDIO_FORMAT_AAC_MAIN = 0x1000001u, AUDIO_FORMAT_AAC_LC = 0x1000002u, AUDIO_FORMAT_AAC_LD = 0x1000003u, AUDIO_FORMAT_AAC_ELD = 0x1000004u, AUDIO_FORMAT_AAC_HE_V1 = 0x1000005u, AUDIO_FORMAT_AAC_HE_V2 = 0x1000006u, AUDIO_FORMAT_G711A = 0x2000001u, AUDIO_FORMAT_G711U = 0x2000002u, AUDIO_FORMAT_G726 = 0x2000003u }

+

音频格式 更多...

+

AudioChannelMask { AUDIO_CHANNEL_FRONT_LEFT = 0x1, AUDIO_CHANNEL_FRONT_RIGHT = 0x2, AUDIO_CHANNEL_MONO = 0x1u, AUDIO_CHANNEL_STEREO = 0x3u }

+

音频通道掩码(mask) 更多...

+

AudioSampleRatesMask { AUDIO_SAMPLE_RATE_MASK_8000 = 0x1u, AUDIO_SAMPLE_RATE_MASK_12000 = 0x2u, AUDIO_SAMPLE_RATE_MASK_11025 = 0x4u, AUDIO_SAMPLE_RATE_MASK_16000 = 0x8u, AUDIO_SAMPLE_RATE_MASK_22050 = 0x10u, AUDIO_SAMPLE_RATE_MASK_24000 = 0x20u, AUDIO_SAMPLE_RATE_MASK_32000 = 0x40u, AUDIO_SAMPLE_RATE_MASK_44100 = 0x80u, AUDIO_SAMPLE_RATE_MASK_48000 = 0x100u, AUDIO_SAMPLE_RATE_MASK_64000 = 0x200u, AUDIO_SAMPLE_RATE_MASK_96000 = 0x400u, AUDIO_SAMPLE_RATE_MASK_INVALID = 0xFFFFFFFFu }

+

音频采样频率MASK 更多...

+

AudioPortPassthroughMode { PORT_PASSTHROUGH_LPCM = 0x1, PORT_PASSTHROUGH_RAW = 0x2, PORT_PASSTHROUGH_HBR2LBR = 0x4, PORT_PASSTHROUGH_AUTO = 0x8 }

+

音频端口的数据透传模式 更多...

+

AudioSampleFormat { AUDIO_SAMPLE_FORMAT_S8, AUDIO_SAMPLE_FORMAT_S8P, AUDIO_SAMPLE_FORMAT_U8, AUDIO_SAMPLE_FORMAT_U8P, AUDIO_SAMPLE_FORMAT_S16, AUDIO_SAMPLE_FORMAT_S16P, AUDIO_SAMPLE_FORMAT_U16, AUDIO_SAMPLE_FORMAT_U16P, AUDIO_SAMPLE_FORMAT_S24, AUDIO_SAMPLE_FORMAT_S24P, AUDIO_SAMPLE_FORMAT_U24, AUDIO_SAMPLE_FORMAT_U24P, AUDIO_SAMPLE_FORMAT_S32, AUDIO_SAMPLE_FORMAT_S32P, AUDIO_SAMPLE_FORMAT_U32, AUDIO_SAMPLE_FORMAT_U32P, AUDIO_SAMPLE_FORMAT_S64, AUDIO_SAMPLE_FORMAT_S64P, AUDIO_SAMPLE_FORMAT_U64, AUDIO_SAMPLE_FORMAT_U64P, AUDIO_SAMPLE_FORMAT_F32, AUDIO_SAMPLE_FORMAT_F32P, AUDIO_SAMPLE_FORMAT_F64, AUDIO_SAMPLE_FORMAT_F64P, AUDIO_SAMPLE_FMT_U8, AUDIO_SAMPLE_FMT_S16, AUDIO_SAMPLE_FMT_S32, AUDIO_SAMPLE_FMT_FLOAT, AUDIO_SAMPLE_FMT_DOUBLE, AUDIO_SAMPLE_FMT_U8P, AUDIO_SAMPLE_FMT_S16P, AUDIO_SAMPLE_FMT_S32P, AUDIO_SAMPLE_FMT_FLOATP, AUDIO_SAMPLE_FMT_DOUBLEP, AUDIO_SAMPLE_FMT_INVALID }

+

原始音频样本格式 更多...

+

AudioChannelMode { AUDIO_CHANNEL_NORMAL = 0, AUDIO_CHANNEL_BOTH_LEFT, AUDIO_CHANNEL_BOTH_RIGHT, AUDIO_CHANNEL_EXCHANGE, AUDIO_CHANNEL_MIX, AUDIO_CHANNEL_LEFT_MUTE, AUDIO_CHANNEL_RIGHT_MUTE, AUDIO_CHANNEL_BOTH_MUTE }

+

音频播放的通道模式 更多...

+

AudioDrainNotifyType { AUDIO_DRAIN_NORMAL_MODE, AUDIO_DRAIN_EARLY_MODE }

+

DrainBuffer函数结束类型 更多...

+

AudioCallbackType { AUDIO_NONBLOCK_WRITE_COMPELETED, AUDIO_DRAIN_COMPELETED, AUDIO_FLUSH_COMPLETED, AUDIO_RENDER_FULL, AUDIO_ERROR_OCCUR }

+

回调函数通知事件类型 更多...

+

AudioPortRole { AUDIO_PORT_UNASSIGNED_ROLE = 0, AUDIO_PORT_SOURCE_ROLE = 1, AUDIO_PORT_SINK_ROLE = 2 }

+

音频端口角色 更多...

+

AudioPortType { AUDIO_PORT_UNASSIGNED_TYPE = 0, AUDIO_PORT_DEVICE_TYPE = 1, AUDIO_PORT_MIX_TYPE = 2, AUDIO_PORT_SESSION_TYPE = 3 }

+

音频端口类型. 更多...

+

AudioSessionType { AUDIO_OUTPUT_STAGE_SESSION = 0, AUDIO_OUTPUT_MIX_SESSION, AUDIO_ALLOCATE_SESSION, AUDIO_INVALID_SESSION }

+

端口会话类型 更多...

+
+ +## **详细描述** + +Audio模块接口定义中使用的自定义数据类型 + +Audio模块接口定义中使用的自定义数据类型,包括音频端口、适配器描述符、设备描述符、场景描述符、采样属性、时间戳等。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/audio__volume_8h.md b/zh-cn/device-dev/api/toctopics/audio__volume_8h.md new file mode 100644 index 0000000000..af645db939 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/audio__volume_8h.md @@ -0,0 +1,39 @@ +# audio\_volume.h + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

AudioVolume

+

AudioVolume音频音量接口 更多...

+
+ +## **详细描述** + +Audio音量的接口定义文件。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/battery.md b/zh-cn/device-dev/api/toctopics/battery.md new file mode 100644 index 0000000000..cee4f89403 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/battery.md @@ -0,0 +1,280 @@ +# Battery + +## **汇总** + +## 文件 + + + + + + + + + + + + + + + + +

文件

+

描述

+

IBatteryCallback.idl

+

电池信息的回调。

+

IBatteryInterface.idl

+

获取、订阅电池信息的接口。

+

Types.idl

+

电池信息相关数据类型。

+
+ +## 类 + + + + + + + + + + + + + + + + +

+

描述

+

IBatteryCallback

+

电池信息的回调。 更多...

+

IBatteryInterface

+

获取、订阅电池信息的接口。 更多...

+

BatteryInfo

+

电池相关信息。 更多...

+
+ +## 枚举 + + + + + + + + + + + + + + + + +

枚举

+

描述

+

BatteryHealthState { BATTERY_HEALTH_UNKNOWN = 0, BATTERY_HEALTH_GOOD, BATTERY_HEALTH_OVERHEAT, BATTERY_HEALTH_OVERVOLTAGE, BATTERY_HEALTH_COLD, BATTERY_HEALTH_DEAD, BATTERY_HEALTH_RESERVED }

+

电池的健康状态。 更多...

+

BatteryChargeState { CHARGE_STATE_NONE = 0, CHARGE_STATE_ENABLE, CHARGE_STATE_DISABLE, CHARGE_STATE_FULL, CHARGE_STATE_RESERVED }

+

电池的充电状态。 更多...

+

BatteryPluggedType { PLUGGED_TYPE_NONE = 0, PLUGGED_TYPE_AC, PLUGGED_TYPE_USB, PLUGGED_TYPE_WIRELESS, PLUGGED_TYPE_BUTT }

+

电池的充电设备类型。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量

+

描述

+

package ohos.hdi.battery.v1_0

+

电池信息接口的包路径

+
+ +## **详细描述** + +提供获取、订阅电池信息的接口。 + +电池模块为电池服务提供的获取、订阅电池信息的接口。 服务获取此模块的对象或代理后,可以调用相关的接口获取电池信息、订阅电池信息的变化。 + +**Since:** + +3.1 + +**Version:** + +1.0 + +## **枚举类型说明** + +## BatteryChargeState + +``` +enum BatteryChargeState +``` + +**描述:** + +电池的充电状态。 + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

CHARGE_STATE_NONE

+

表示电池充电状态未知。

+

+

CHARGE_STATE_ENABLE

+

表示电池充电状态为使能状态。

+

+

CHARGE_STATE_DISABLE

+

表示电池充电状态为停止状态。

+

+

CHARGE_STATE_FULL

+

表示电池充电状态为已充满状态。

+

+

CHARGE_STATE_RESERVED

+

预留。

+

+
+ +## BatteryHealthState + +``` +enum BatteryHealthState +``` + +**描述:** + +电池的健康状态。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

BATTERY_HEALTH_UNKNOWN

+

表示电池健康状态未知。

+

+

BATTERY_HEALTH_GOOD

+

表示电池健康状态为正常。

+

+

BATTERY_HEALTH_OVERHEAT

+

表示电池健康状态为过热。

+

+

BATTERY_HEALTH_OVERVOLTAGE

+

表示电池健康状态为过压。

+

+

BATTERY_HEALTH_COLD

+

表示电池健康状态为低温。

+

+

BATTERY_HEALTH_DEAD

+

表示电池健康状态为耗尽。

+

+

BATTERY_HEALTH_RESERVED

+

预留。

+

+
+ +## BatteryPluggedType + +``` +enum BatteryPluggedType +``` + +**描述:** + +电池的充电设备类型。 + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

PLUGGED_TYPE_NONE

+

表示连接充电器类型未知。

+

+

PLUGGED_TYPE_AC

+

表示连接的充电器类型为交流充电器。

+

+

PLUGGED_TYPE_USB

+

表示连接的充电器类型为USB充电器。

+

+

PLUGGED_TYPE_WIRELESS

+

表示连接的充电器类型为无线充电器。

+

+

PLUGGED_TYPE_BUTT

+

预留。

+

+
+ diff --git a/zh-cn/device-dev/api/toctopics/codec__callback__if_8h.md b/zh-cn/device-dev/api/toctopics/codec__callback__if_8h.md new file mode 100644 index 0000000000..012da60850 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/codec__callback__if_8h.md @@ -0,0 +1,63 @@ +# codec\_callback\_if.h + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

CodecCallbackType

+

Codec回调接口定义。 更多...

+
+ +## 函数 + + + + + + + + + + + + + +

函数

+

描述

+

CodecCallbackTypeGet (struct HdfRemoteService *remote)

+

实例化CodecCallbackType对象。 更多...

+

CodecCallbackTypeRelease (struct CodecCallbackType *instance)

+

释放CodecCallbackType对象。 更多...

+
+ +## **详细描述** + +主要包括回调函数接口定义。 + +Codec模块事件上报、上报输入buffer和输出buffer处理完毕等接口定义。 + +**Since:** + +3.1 + +**Version:** + +2.0 + diff --git a/zh-cn/device-dev/api/toctopics/codec__common__type_8h.md b/zh-cn/device-dev/api/toctopics/codec__common__type_8h.md new file mode 100644 index 0000000000..a9153a5497 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/codec__common__type_8h.md @@ -0,0 +1,88 @@ +# codec\_common\_type.h + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## 类 + + + + + + + + + + + + + + + + +

+

描述

+

Alignment

+

对齐结构定义,包含宽高的对齐值 更多...

+

Rect

+

矩形的定义 更多...

+

RangeValue

+

取值范围的定义 更多...

+
+ +## 枚举 + + + + + + + + + + + + + + + + + + + + + + +

枚举

+

描述

+

CodecType { VIDEO_DECODER, VIDEO_ENCODER, AUDIO_DECODER, AUDIO_ENCODER, INVALID_TYPE }

+

枚举编解码的类型 更多...

+

Profile { INVALID_PROFILE = 0, AAC_LC_PROFILE = 0x1000, AAC_MAIN_PROFILE, AAC_HE_V1_PROFILE, AAC_HE_V2_PROFILE, AAC_LD_PROFILE, AAC_ELD_PROFILE, AVC_BASELINE_PROFILE = 0x2000, AVC_MAIN_PROFILE, AVC_HIGH_PROFILE, HEVC_MAIN_PROFILE = 0x3000, HEVC_MAIN_10_PROFILE }

+

枚举Codec规格 更多...

+

AudioSampleRate { AUD_SAMPLE_RATE_8000 = 8000, AUD_SAMPLE_RATE_12000 = 12000, AUD_SAMPLE_RATE_11025 = 11025, AUD_SAMPLE_RATE_16000 = 16000, AUD_SAMPLE_RATE_22050 = 22050, AUD_SAMPLE_RATE_24000 = 24000, AUD_SAMPLE_RATE_32000 = 32000, AUD_SAMPLE_RATE_44100 = 44100, AUD_SAMPLE_RATE_48000 = 48000, AUD_SAMPLE_RATE_64000 = 64000, AUD_SAMPLE_RATE_96000 = 96000, AUD_SAMPLE_RATE_INVALID }

+

枚举音频采样率 更多...

+

CodecCapsMask { CODEC_CAP_ADAPTIVE_PLAYBACK = 0x1, CODEC_CAP_SECURE_PLAYBACK = 0x2, CODEC_CAP_TUNNEL_PLAYBACK = 0x4, CODEC_CAP_MULTI_PLANE = 0x10000 }

+

枚举播放能力 更多...

+

CodecProcessMode { PROCESS_BLOCKING_INPUT_BUFFER = 0X1, PROCESS_BLOCKING_OUTPUT_BUFFER = 0X2, PROCESS_BLOCKING_CONTROL_FLOW = 0X4, PROCESS_NONBLOCKING_INPUT_BUFFER = 0X100, PROCESS_NONBLOCKING_OUTPUT_BUFFER = 0X200, PROCESS_NONBLOCKING_CONTROL_FLOW = 0X400 }

+

枚举编解码处理模式 更多...

+
+ +## **详细描述** + +Codec模块接口定义中使用的自定义数据类型。 + +Codec模块接口定义中使用的自定义数据类型,包括编解码类型、音视频参数、buffer定义等。 + +**Since:** + +3.1 + +**Version:** + +2.0 + diff --git a/zh-cn/device-dev/api/toctopics/codec__component__if_8h.md b/zh-cn/device-dev/api/toctopics/codec__component__if_8h.md new file mode 100644 index 0000000000..dba5966834 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/codec__component__if_8h.md @@ -0,0 +1,63 @@ +# codec\_component\_if.h + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

CodecComponentType

+

Codec组件接口定义。 更多...

+
+ +## 函数 + + + + + + + + + + + + + +

函数

+

描述

+

CodecComponentTypeGet (struct HdfRemoteService *remote)

+

实例化CodecComponentType对象。 更多...

+

CodecComponentTypeRelease (struct CodecComponentType *instance)

+

释放CodecComponentType对象。 更多...

+
+ +## **详细描述** + +主要包括Codec组件接口定义。 + +Codec模块提供了获取组件信息、给组件发送命令、组件参数设置、buffer轮转和控制等接口定义。创建组件后,可使用下列接口进行编解码处理。 + +**Since:** + +3.1 + +**Version:** + +2.0 + diff --git a/zh-cn/device-dev/api/toctopics/codec__component__manager_8h.md b/zh-cn/device-dev/api/toctopics/codec__component__manager_8h.md new file mode 100644 index 0000000000..67196af101 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/codec__component__manager_8h.md @@ -0,0 +1,63 @@ +# codec\_component\_manager.h + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

CodecComponentManager

+

Codec组件管理类接口定义。 更多...

+
+ +## 函数 + + + + + + + + + + + + + +

函数

+

描述

+

GetCodecComponentManager (void)

+

实例化CodecComponentManager对象。 更多...

+

CodecComponentManagerRelease (void)

+

释放CodecComponentManager对象。 更多...

+
+ +## **详细描述** + +主要包括Codec组件管理类接口。 + +Codec模块获取组件编解码能力集、创建组件和销毁组件等接口定义。 + +**Since:** + +3.1 + +**Version:** + +2.0 + diff --git a/zh-cn/device-dev/api/toctopics/codec__component__type_8h.md b/zh-cn/device-dev/api/toctopics/codec__component__type_8h.md new file mode 100644 index 0000000000..42a988b3ee --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/codec__component__type_8h.md @@ -0,0 +1,180 @@ +# codec\_component\_type.h + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## 类 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

描述

+

VideoPortCap

+

定义视频编解码能力 更多...

+

AudioPortCap

+

定义音频编解码能力 更多...

+

PortCap

+

定义音视频编解码能力 更多...

+

CodecCompCapability

+

定义Codec编解码能力 更多...

+

OmxCodecBuffer

+

Codec buffer信息的定义 更多...

+

CompVerInfo

+

定义组件版本信息 更多...

+

EventInfo

+

定义事件上报信息 更多...

+

SupportBufferType

+

SupportBuffer类型定义. 更多...

+

UseBufferType

+

UseBuffer类型定义 更多...

+

GetBufferHandleUsageParams

+

BufferHandleUsage类型定义 更多...

+
+ +## 宏定义 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

宏定义

+

描述

+

SAMPLE_FMT_NUM 32

+

采样格式最大值

+

UUID_LENGTH 128

+

定义UUID长度

+

PIX_FORMAT_NUM 16

+

支持的像素格式数组大小

+

SAMPLE_FORMAT_NUM 12

+

支持的音频采样格式数组大小

+

SAMPLE_RATE_NUM 16

+

支持的音频采样率数组大小

+

CHANNEL_NUM 16

+

支持的音频通道数组大小

+

NAME_LENGTH 32

+

组件名称大小

+

PROFILE_NUM 256

+

支持的profile数组大小

+
+ +## 枚举 + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举

+

描述

+

AvCodecRole { MEDIA_ROLETYPE_IMAGE_JPEG = 0, MEDIA_ROLETYPE_VIDEO_AVC, MEDIA_ROLETYPE_VIDEO_HEVC, MEDIA_ROLETYPE_AUDIO_FIRST = 0x10000, MEDIA_ROLETYPE_AUDIO_AAC = 0x10000, MEDIA_ROLETYPE_AUDIO_G711A, MEDIA_ROLETYPE_AUDIO_G711U, MEDIA_ROLETYPE_AUDIO_G726, MEDIA_ROLETYPE_AUDIO_PCM, MEDIA_ROLETYPE_AUDIO_MP3, MEDIA_ROLETYPE_INVALID }

+

枚举音视频编解码组件类型 更多...

+

AudioSampleFormat { AUDIO_SAMPLE_FORMAT_S8, AUDIO_SAMPLE_FORMAT_S8P, AUDIO_SAMPLE_FORMAT_U8, AUDIO_SAMPLE_FORMAT_U8P, AUDIO_SAMPLE_FORMAT_S16, AUDIO_SAMPLE_FORMAT_S16P, AUDIO_SAMPLE_FORMAT_U16, AUDIO_SAMPLE_FORMAT_U16P, AUDIO_SAMPLE_FORMAT_S24, AUDIO_SAMPLE_FORMAT_S24P, AUDIO_SAMPLE_FORMAT_U24, AUDIO_SAMPLE_FORMAT_U24P, AUDIO_SAMPLE_FORMAT_S32, AUDIO_SAMPLE_FORMAT_S32P, AUDIO_SAMPLE_FORMAT_U32, AUDIO_SAMPLE_FORMAT_U32P, AUDIO_SAMPLE_FORMAT_S64, AUDIO_SAMPLE_FORMAT_S64P, AUDIO_SAMPLE_FORMAT_U64, AUDIO_SAMPLE_FORMAT_U64P, AUDIO_SAMPLE_FORMAT_F32, AUDIO_SAMPLE_FORMAT_F32P, AUDIO_SAMPLE_FORMAT_F64, AUDIO_SAMPLE_FORMAT_F64P, AUDIO_SAMPLE_FMT_U8, AUDIO_SAMPLE_FMT_S16, AUDIO_SAMPLE_FMT_S32, AUDIO_SAMPLE_FMT_FLOAT, AUDIO_SAMPLE_FMT_DOUBLE, AUDIO_SAMPLE_FMT_U8P, AUDIO_SAMPLE_FMT_S16P, AUDIO_SAMPLE_FMT_S32P, AUDIO_SAMPLE_FMT_FLOATP, AUDIO_SAMPLE_FMT_DOUBLEP, AUDIO_SAMPLE_FMT_INVALID }

+

枚举音频采样格式 更多...

+

CodecBufferType { CODEC_BUFFER_TYPE_INVALID = 0, CODEC_BUFFER_TYPE_VIRTUAL_ADDR = 0x1, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD = 0x2, CODEC_BUFFER_TYPE_HANDLE = 0x4, CODEC_BUFFER_TYPE_DYNAMIC_HANDLE = 0x8 }

+

定义buffer类型 更多...

+

ShareMemTypes { READ_WRITE_TYPE = 0x1, READ_ONLY_TYPE = 0x2 }

+

枚举共享内存类型 更多...

+

OmxIndexCodecExType { OMX_IndexExtBufferTypeStartUnused = OMX_IndexKhronosExtensions + 0x00a00000, OMX_IndexParamSupportBufferType, OMX_IndexParamUseBufferType, OMX_IndexParamGetBufferHandleUsage }

+

枚举Codec扩展index 更多...

+

OmxVideoExType { OMX_VIDEO_CodingHEVC = 11 }

+

枚举Codec扩展编码类型 更多...

+
+ +## **详细描述** + +Codec模块接口定义中使用的自定义数据类型。 + +Codec模块接口定义中使用的自定义数据类型,包括编解码类型、音视频参数、buffer定义等。 + +**Since:** + +3.1 + +**Version:** + +2.0 + diff --git a/zh-cn/device-dev/api/toctopics/dac__if_8h.md b/zh-cn/device-dev/api/toctopics/dac__if_8h.md new file mode 100644 index 0000000000..098a002a8c --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/dac__if_8h.md @@ -0,0 +1,62 @@ +# dac\_if.h + +## **概述** + +**所属模块:** + +[DAC](_d_a_c.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

DacIoMsg

+

DAC设备信息传输结构体 更多...

+
+ +## 函数 + + + + + + + + + + + + + + + + +

函数

+

描述

+

DacOpen (uint32_t number)

+

获取DAC控制器的句柄。 更多...

+

DacClose (DevHandle handle)

+

释放DAC控制器的句柄。 更多...

+

DacWrite (DevHandle handle, uint32_t channel, uint32_t val)

+

启动DAC设备进行传输,将目标值写入指定的DAC通道。 更多...

+
+ +## **详细描述** + +声明标准DAC接口函数。 + +**Since:** + +3.1 + diff --git a/zh-cn/device-dev/api/toctopics/display__device_8h.md b/zh-cn/device-dev/api/toctopics/display__device_8h.md new file mode 100644 index 0000000000..b12c3425ec --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/display__device_8h.md @@ -0,0 +1,88 @@ +# display\_device.h + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

DeviceFuncs

+

显示设备控制接口结构体,定义显示设备控制接口函数指针。 更多...

+
+ +## 类型定义 + + + + + + + + + + + + + + + + +

类型定义

+

描述

+

(HotPlugCallback) (uint32_t devId, bool connected, void *data)

+

注册热插拔事件回调

+

(VBlankCallback) (unsigned int sequence, uint64_t ns, void *data)

+

注册VBlank事件回调。

+

(RefreshCallback) (uint32_t devId, void *data)

+

刷新请求回调。

+
+ +## 函数 + + + + + + + + + + + + + +

函数

+

描述

+

DeviceInitialize (DeviceFuncs **funcs)

+

实现显示设备控制接口的初始化,申请操作显示设备控制接口的资源,并获取对应的操作接口。 更多...

+

DeviceUninitialize (DeviceFuncs *funcs)

+

取消显示设备控制接口的初始化,释放控制接口使用到的资源。 更多...

+
+ +## **详细描述** + +显示设备控制接口声明。 + +**Since:** + +1.0 + +**Version:** + +2.0 + diff --git a/zh-cn/device-dev/api/toctopics/display__gfx_8h.md b/zh-cn/device-dev/api/toctopics/display__gfx_8h.md new file mode 100644 index 0000000000..47d4f526b3 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/display__gfx_8h.md @@ -0,0 +1,61 @@ +# display\_gfx.h + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

GfxFuncs

+

显示硬件加速驱动接口结构体,定义硬件加速驱动接口函数指针。 更多...

+
+ +## 函数 + + + + + + + + + + + + + +

函数

+

描述

+

GfxInitialize (GfxFuncs **funcs)

+

获取硬件加速相关的操作接口指针。 更多...

+

GfxUninitialize (GfxFuncs *funcs)

+

释放硬件加速相关的操作接口指针。 更多...

+
+ +## **详细描述** + +显示硬件加速驱动接口声明。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/display__gralloc_8h.md b/zh-cn/device-dev/api/toctopics/display__gralloc_8h.md new file mode 100644 index 0000000000..cd018c7762 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/display__gralloc_8h.md @@ -0,0 +1,61 @@ +# display\_gralloc.h + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

GrallocFuncs

+

显示内存驱动接口结构体,定义显示内存驱动接口函数指针。 更多...

+
+ +## 函数 + + + + + + + + + + + + + +

函数

+

描述

+

GrallocInitialize (GrallocFuncs **funcs)

+

初始化内存模块,并获取内存提供的操作接口。 更多...

+

GrallocUninitialize (GrallocFuncs *funcs)

+

取消初始化内存模块,并释放内存操作接口指针。 更多...

+
+ +## **详细描述** + +显示内存驱动接口声明。 + +**Since:** + +1.0 + +**Version:** + +2.0 + diff --git a/zh-cn/device-dev/api/toctopics/display__layer_8h.md b/zh-cn/device-dev/api/toctopics/display__layer_8h.md new file mode 100644 index 0000000000..30f06b89e6 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/display__layer_8h.md @@ -0,0 +1,61 @@ +# display\_layer.h + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

LayerFuncs

+

显示图层驱动接口结构体,定义显示图层驱动接口函数指针。 更多...

+
+ +## 函数 + + + + + + + + + + + + + +

函数

+

描述

+

LayerInitialize (LayerFuncs **funcs)

+

实现图层初始化功能,申请图层使用的资源,并获取图层提供的操作接口。 更多...

+

LayerUninitialize (LayerFuncs *funcs)

+

取消图层初始化功能,释放图层使用到的资源,并释放图层操作接口指针。 更多...

+
+ +## **详细描述** + +显示图层驱动接口声明。 + +**Since:** + +1.0 + +**Version:** + +2.0 + diff --git a/zh-cn/device-dev/api/toctopics/display__type_8h.md b/zh-cn/device-dev/api/toctopics/display__type_8h.md new file mode 100644 index 0000000000..a44f46b2db --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/display__type_8h.md @@ -0,0 +1,258 @@ +# display\_type.h + +## **概述** + +**所属模块:** + +[Display](_display.md) + +## **汇总** + +## 类 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

描述

+

DisplayInfo

+

定义显示信息结构体 更多...

+

LayerInfo

+

定义图层信息结构体 更多...

+

LayerAlpha

+

定义图层Alpha信息的结构体 更多...

+

BufferData

+

定义一层的缓冲区数据,包括虚拟和物理内存地址。 更多...

+

LayerBuffer

+

图层Buffer,用于存放图层数据。 更多...

+

IRect

+

定义矩形信息 更多...

+

ISurface

+

用于存放窗口相关信息的结构体定义,提供给硬件加速使用,例如图像合成,位图搬移等操作。 更多...

+

ILine

+

线条描述结构体定义,用于硬件加速绘制直线。 更多...

+

ICircle

+

圆形描述结构体定义,用于硬件加速绘制圆形。 更多...

+

Rectangle

+

矩形描述结构体定义,用于硬件加速绘制矩形, 更多...

+

GfxOpt

+

图像硬件加速相关的操作选项结构体定义,用于图像硬件加速时的操作选项。 更多...

+

PropertyObject

+

定义包含名称、属性ID和值的属性对象。 更多...

+

DisplayCapability

+

定义输出性能。 更多...

+

DisplayModeInfo

+

定义输出模式信息。 更多...

+

AllocInfo

+

定义关于要分配的内存的信息。 更多...

+

HDRCapability

+

HDR属性结构体定义 更多...

+

HDRMetaData

+

HDR元数据结构体定义 更多...

+

VerifyAllocInfo

+

用于验证内存分配信息的结构体定义 更多...

+

PresentTimestamp

+

上屏时间戳结构体定义 更多...

+

__attribute__

+

扩展数据句柄结构体定义 更多...

+
+ +## 宏定义 + + + + + + + + + + +

宏定义

+

描述

+

PROPERTY_NAME_LEN 50

+

属性名称长度

+
+ +## 枚举 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举

+

描述

+

DispErrCode { DISPLAY_SUCCESS = 0, DISPLAY_FAILURE = -1, DISPLAY_FD_ERR = -2, DISPLAY_PARAM_ERR = -3, DISPLAY_NULL_PTR = -4, DISPLAY_NOT_SUPPORT = -5, DISPLAY_NOMEM = -6, DISPLAY_SYS_BUSY = -7, DISPLAY_NOT_PERM = -8 }

+

返回值类型定义。 更多...

+

LayerType { LAYER_TYPE_GRAPHIC, LAYER_TYPE_OVERLAY, LAYER_TYPE_SDIEBAND, LAYER_TYPE_CURSOR, LAYER_TYPE_BUTT }

+

图层类型定义。 更多...

+

{ HBM_USE_CPU_READ = (1 << 0), HBM_USE_CPU_WRITE = (1 << 1), HBM_USE_MEM_MMZ = (1 << 2), HBM_USE_MEM_DMA = (1 << 3), HBM_USE_MEM_SHARE = (1 << 4), HBM_USE_MEM_MMZ_CACHE = (1 << 5), HBM_USE_MEM_FB = (1 << 6), HBM_USE_ASSIGN_SIZE = (1 << 7) }

+

缓冲区定义。更多...

+

PixelFormat { PIXEL_FMT_CLUT8 = 0, PIXEL_FMT_CLUT1, PIXEL_FMT_CLUT4, PIXEL_FMT_RGB_565, PIXEL_FMT_RGBA_5658, PIXEL_FMT_RGBX_4444, PIXEL_FMT_RGBA_4444, PIXEL_FMT_RGB_444, PIXEL_FMT_RGBX_5551, PIXEL_FMT_RGBA_5551, PIXEL_FMT_RGB_555, PIXEL_FMT_RGBX_8888, PIXEL_FMT_RGBA_8888, PIXEL_FMT_RGB_888, PIXEL_FMT_BGR_565, PIXEL_FMT_BGRX_4444, PIXEL_FMT_BGRA_4444, PIXEL_FMT_BGRX_5551, PIXEL_FMT_BGRA_5551, PIXEL_FMT_BGRX_8888, PIXEL_FMT_BGRA_8888, PIXEL_FMT_YUV_422_I, PIXEL_FMT_YCBCR_422_SP, PIXEL_FMT_YCRCB_422_SP, PIXEL_FMT_YCBCR_420_SP, PIXEL_FMT_YCRCB_420_SP, PIXEL_FMT_YCBCR_422_P, PIXEL_FMT_YCRCB_422_P, PIXEL_FMT_YCBCR_420_P, PIXEL_FMT_YCRCB_420_P, PIXEL_FMT_YUYV_422_PKG, PIXEL_FMT_UYVY_422_PKG, PIXEL_FMT_YVYU_422_PKG, PIXEL_FMT_VYUY_422_PKG, PIXEL_FMT_VENDER_MASK = 0X7FFF0000, PIXEL_FMT_BUTT = 0X7FFFFFFF }

+

像素格式类型定义。 更多...

+

TransformType { ROTATE_NONE = 0, ROTATE_90, ROTATE_180, ROTATE_270, ROTATE_BUTT }

+

图层变换类型定义。 更多...

+

BlendType { BLEND_NONE = 0, BLEND_CLEAR, BLEND_SRC, BLEND_SRCOVER, BLEND_DSTOVER, BLEND_SRCIN, BLEND_DSTIN, BLEND_SRCOUT, BLEND_DSTOUT, BLEND_SRCATOP, BLEND_DSTATOP, BLEND_ADD, BLEND_XOR, BLEND_DST, BLEND_AKS, BLEND_AKD, BLEND_BUTT }

+

显示内存类型定义。 更多...

+

RopType { ROP_BLACK = 0, ROP_NOTMERGEPEN, ROP_MASKNOTPEN, ROP_NOTCOPYPEN, ROP_MASKPENNOT, ROP_NOT, ROP_XORPEN, ROP_NOTMASKPEN, ROP_MASKPEN, ROP_NOTXORPEN, ROP_NOP, ROP_MERGENOTPEN, ROP_COPYPE, ROP_MERGEPENNOT, ROP_MERGEPEN, ROP_WHITE, ROP_BUTT }

+

硬件加速支持的ROP操作类型。 更多...

+

ColorKey { CKEY_NONE = 0, CKEY_SRC, CKEY_DST, CKEY_BUTT }

+

Color key操作类型定义,即硬件加速支持的Color key操作类型。 更多...

+

MirrorType { MIRROR_NONE = 0, MIRROR_LR, MIRROR_TB, MIRROR_BUTT }

+

硬件加速支持的镜像操作类型定义 更多...

+

Connection { CON_INVALID = 0, CONNECTED, DISCONNECTED }

+

热插拔连接类型定义 更多...

+

InterfaceType { DISP_INTF_HDMI = 0, DISP_INTF_LCD, DISP_INTF_BT1120, DISP_INTF_BT656, DISP_INTF_YPBPR, DISP_INTF_RGB, DISP_INTF_CVBS, DISP_INTF_SVIDEO, DISP_INTF_VGA, DISP_INTF_MIPI, DISP_INTF_PANEL, DISP_INTF_BUTT }

+

枚举接口类型。 更多...

+

DispPowerStatus { POWER_STATUS_ON, POWER_STATUS_STANDBY, POWER_STATUS_SUSPEND, POWER_STATUS_OFF, POWER_STATUS_BUTT }

+

枚举显示状态 更多...

+

CompositionType { COMPOSITION_CLIENT, COMPOSITION_DEVICE, COMPOSITION_CURSOR, COMPOSITION_VIDEO, COMPOSITION_DEVICE_CLEAR, COMPOSITION_CLIENT_CLEAR, COMPOSITION_TUNNEL, COMPOSITION_BUTT }

+

枚举特殊层的组合类型。 更多...

+

ColorGamut { COLOR_GAMUT_INVALID = -1, COLOR_GAMUT_NATIVE = 0, COLOR_GAMUT_SATNDARD_BT601 = 1, COLOR_GAMUT_STANDARD_BT709 = 2, COLOR_GAMUT_DCI_P3 = 3, COLOR_GAMUT_SRGB = 4, COLOR_GAMUT_ADOBE_RGB = 5, COLOR_GAMUT_DISPLAY_P3 = 6, COLOR_GAMUT_BT2020 = 7, COLOR_GAMUT_BT2100_PQ = 8, COLOR_GAMUT_BT2100_HLG = 9, COLOR_GAMUT_DISPLAY_BT2020 = 10 }

+

色域类型枚举值 更多...

+

GamutMap { GAMUT_MAP_CONSTANT = 0, GAMUT_MAP_EXPANSION = 1, GAMUT_MAP_HDR_CONSTANT = 2, GAMUT_MAP_HDR_EXPANSION = 3 }

+

枚举色域的映射类型 更多...

+

ColorDataSpace { COLOR_DATA_SPACE_UNKNOWN = 0, GAMUT_BT601 = 0x00000001, GAMUT_BT709 = 0x00000002, GAMUT_DCI_P3 = 0x00000003, GAMUT_SRGB = 0x00000004, GAMUT_ADOBE_RGB = 0x00000005, GAMUT_DISPLAY_P3 = 0x00000006, GAMUT_BT2020 = 0x00000007, GAMUT_BT2100_PQ = 0x00000008, GAMUT_BT2100_HLG = 0x00000009, GAMUT_DISPLAY_BT2020 = 0x0000000a, TRANSFORM_FUNC_UNSPECIFIED = 0x00000100, TRANSFORM_FUNC_LINEAR = 0x00000200, TRANSFORM_FUNC_SRGB = 0x00000300, TRANSFORM_FUNC_SMPTE_170M = 0x00000400, TRANSFORM_FUNC_GM2_2 = 0x00000500, TRANSFORM_FUNC_GM2_6 = 0x00000600, TRANSFORM_FUNC_GM2_8 = 0x00000700, TRANSFORM_FUNC_ST2084 = 0x00000800, TRANSFORM_FUNC_HLG = 0x00000900, PRECISION_UNSPECIFIED = 0x00010000, PRECISION_FULL = 0x00020000, PRESION_LIMITED = 0x00030000, PRESION_EXTENDED = 0x00040000, BT601_SMPTE170M_FULL = GAMUT_BT601 | TRANSFORM_FUNC_SMPTE_170M | PRECISION_FULL, BT601_SMPTE170M_LIMITED = GAMUT_BT601 | TRANSFORM_FUNC_SMPTE_170M | PRESION_LIMITED, BT709_LINEAR_FULL = GAMUT_BT709 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, BT709_LINEAR_EXTENDED = GAMUT_BT709 | TRANSFORM_FUNC_LINEAR | PRESION_EXTENDED, BT709_SRGB_FULL = GAMUT_BT709 | TRANSFORM_FUNC_SRGB | PRECISION_FULL, BT709_SRGB_EXTENDED = GAMUT_BT709 | TRANSFORM_FUNC_SRGB | PRESION_EXTENDED, BT709_SMPTE170M_LIMITED = GAMUT_BT709 | TRANSFORM_FUNC_SMPTE_170M | PRESION_LIMITED, DCI_P3_LINEAR_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, DCI_P3_GAMMA26_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_GM2_6 | PRECISION_FULL, DISPLAY_P3_LINEAR_FULL = GAMUT_DISPLAY_P3 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, DCI_P3_SRGB_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_SRGB | PRECISION_FULL, ADOBE_RGB_GAMMA22_FULL = GAMUT_ADOBE_RGB | TRANSFORM_FUNC_GM2_2 | PRECISION_FULL, BT2020_LINEAR_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, BT2020_SRGB_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_SRGB | PRECISION_FULL, BT2020_SMPTE170M_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_SMPTE_170M | PRECISION_FULL, BT2020_ST2084_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_ST2084 | PRECISION_FULL, BT2020_HLG_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_HLG | PRECISION_FULL, BT2020_ST2084_LIMITED = GAMUT_BT2020 | TRANSFORM_FUNC_ST2084 | PRESION_LIMITED }

+

枚举颜色空间的类型 更多...

+

HDRFormat { NOT_SUPPORT_HDR = 0, DOLBY_VISION = 1, HDR10 = 2, HLG = 3, HDR10_PLUS = 4, HDR_VIVID = 5 }

+

枚举HDR格式 更多...

+

HDRMetadataKey { MATAKEY_RED_PRIMARY_X = 0, MATAKEY_RED_PRIMARY_Y = 1, MATAKEY_GREEN_PRIMARY_X = 2, MATAKEY_GREEN_PRIMARY_Y = 3, MATAKEY_BLUE_PRIMARY_X = 4, MATAKEY_BLUE_PRIMARY_Y = 5, MATAKEY_WHITE_PRIMARY_X = 6, MATAKEY_WHITE_PRIMARY_Y = 7, MATAKEY_MAX_LUMINANCE = 8, MATAKEY_MIN_LUMINANCE = 9, MATAKEY_MAX_CONTENT_LIGHT_LEVEL = 10, MATAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL = 11, MATAKEY_HDR10_PLUS = 12, MATAKEY_HDR_VIVID = 13 }

+

枚举HDR元数据关键字 更多...

+

PresentTimestampType { HARDWARE_DISPLAY_PTS_UNSUPPORTED = 0, HARDWARE_DISPLAY_PTS_DELAY = 1 << 0, HARDWARE_DISPLAY_PTS_TIMESTAMP = 1 << 1 }

+

上屏时间戳类型枚举值 更多...

+
+ +## **详细描述** + +显示类型定义,定义显示驱动接口所使用的数据类型。 + +**Since:** + +1.0 + +**Version:** + +2.0 + diff --git a/zh-cn/device-dev/api/toctopics/face__auth_2_i_executor_8idl.md b/zh-cn/device-dev/api/toctopics/face__auth_2_i_executor_8idl.md new file mode 100644 index 0000000000..07300803f4 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/face__auth_2_i_executor_8idl.md @@ -0,0 +1,52 @@ +# FACEAUTH\_IExecutor.idl + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

IExecutor

+

定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.face_auth.v1_0

+

人脸认证接口的包路径

+
+ +## **详细描述** + +定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 + +**Since:** + +3.2 + diff --git a/zh-cn/device-dev/api/toctopics/face__auth_2_i_executor_callback_8idl.md b/zh-cn/device-dev/api/toctopics/face__auth_2_i_executor_callback_8idl.md new file mode 100644 index 0000000000..697b05f517 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/face__auth_2_i_executor_callback_8idl.md @@ -0,0 +1,52 @@ +# FACEAUTH\_IExecutorCallback.idl + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

IExecutorCallback

+

定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见IExecutor更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.face_auth.v1_0

+

人脸认证接口的包路径

+
+ +## **详细描述** + +定义异步API接口回调,用于返回异步接口的请求处理结果和信息。 + +**Since:** + +3.2 + diff --git a/zh-cn/device-dev/api/toctopics/files.md b/zh-cn/device-dev/api/toctopics/files.md new file mode 100644 index 0000000000..d8579b7c58 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/files.md @@ -0,0 +1,131 @@ +# 头文件 + +- **[audio\_adapter.h](audio__adapter_8h.md)** + +- **[audio\_attribute.h](audio__attribute_8h.md)** + +- **[audio\_capture.h](audio__capture_8h.md)** + +- **[audio\_control.h](audio__control_8h.md)** + +- **[audio\_manager.h](audio__manager_8h.md)** + +- **[audio\_render.h](audio__render_8h.md)** + +- **[audio\_scene.h](audio__scene_8h.md)** + +- **[audio\_types.h](audio__types_8h.md)** + +- **[audio\_volume.h](audio__volume_8h.md)** + +- **[codec\_callback\_if.h](codec__callback__if_8h.md)** + +- **[codec\_common\_type.h](codec__common__type_8h.md)** + +- **[codec\_component\_if.h](codec__component__if_8h.md)** + +- **[codec\_component\_manager.h](codec__component__manager_8h.md)** + +- **[codec\_component\_type.h](codec__component__type_8h.md)** + +- **[dac\_if.h](dac__if_8h.md)** + +- **[display\_device.h](display__device_8h.md)** + +- **[display\_gfx.h](display__gfx_8h.md)** + +- **[display\_gralloc.h](display__gralloc_8h.md)** + +- **[display\_layer.h](display__layer_8h.md)** + +- **[display\_type.h](display__type_8h.md)** + +- **[icamera\_device\_callback.h](icamera__device__callback_8h.md)** + +- **[icamera\_device.h](icamera__device_8h.md)** + +- **[icamera\_host\_callback.h](icamera__host__callback_8h.md)** + +- **[icamera\_host.h](icamera__host_8h.md)** + +- **[input\_controller.h](input__controller_8h.md)** + +- **[input\_manager.h](input__manager_8h.md)** + +- **[input\_reporter.h](input__reporter_8h.md)** + +- **[input\_type.h](input__type_8h.md)** + +- **[ioffline\_stream\_operator.h](ioffline__stream__operator_8h.md)** + +- **[istream\_operator\_callback.h](istream__operator__callback_8h.md)** + +- **[istream\_operator.h](istream__operator_8h.md)** + +- **[light\_if.h](light__if_8h.md)** + +- **[light\_type.h](light_8typeh.md)** + +- **[sensor\_if.h](sensor__if_8h.md)** + +- **[sensor\_type.h](sensor__type_8h.md)** + +- **[types.h](types_8h.md)** + +- **[usb\_info.h](usb__info_8h.md)** + +- **[usbd\_client.h](usbd__client_8h.md)** + +- **[usbd\_subscriber.h](usbd__subscriber_8h.md)** + +- **[usbd\_type.h](usbd__type_8h.md)** + +- **[vibrator\_if.h](vibrator__if_8h.md)** + +- **[vibrator\_type.h](vibrator__type_8h.md)** + +- **[wifi\_hal\_ap\_feature.h](wifi__hal__ap__feature_8h.md)** + +- **[wifi\_hal\_base\_feature.h](wifi__hal__base__feature_8h.md)** + +- **[wifi\_hal\_sta\_feature.h](wifi__hal__sta__feature_8h.md)** + +- **[wifi\_hal.h](wifi__hal_8h.md)** + +- **[FACEAUTH\_IExecutor.idl](face__auth_2_i_executor_8idl.md)** + +- **[FACEAUTH\_IExecutorCallback.idl](face__auth_2_i_executor_callback_8idl.md)** + +- **[FaceAuthTypes.idl](_face_auth_types_8idl.md)** + +- **[IBatteryCallback.idl](_i_battery_callback_8idl.md)** + +- **[IBatteryInterface.idl](_i_battery_interface_8idl.md)** + +- **[IExecutor.idl](pin__auth_2_i_executor_8idl.md)** + +- **[IExecutorCallback.idl](pin__auth_2_i_executor_callback_8idl.md)** + +- **[IFaceAuthInterface.idl](_i_face_auth_interface_8idl.md)** + +- **[IPinAuthInterface.idl](_i_pin_auth_interface_8idl.md)** + +- **[IPowerHdiCallback.idl](_i_power_hdi_callback_8idl.md)** + +- **[IPowerInterface.idl](_i_power_interface_8idl.md)** + +- **[IThermalInterface.idl](_i_thermal_interface_8idl.md)** + +- **[IThermalCallback.idl](_i_thermal_callback_8idl.md)** + +- **[IUserAuthInterface.idl](_i_user_auth_interface_8idl.md)** + +- **[PowerTypes.idl](_power_types_8idl.md)** + +- **[ThermalTypes.idl](_thermal_types_8idl.md)** + +- **[Types.idl](_types_8idl.md)** + +- **[UserAuthTypes.idl](_user_auth_types_8idl.md)** + + diff --git a/zh-cn/device-dev/api/toctopics/icamera__device_8h.md b/zh-cn/device-dev/api/toctopics/icamera__device_8h.md new file mode 100644 index 0000000000..e0827a8120 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/icamera__device_8h.md @@ -0,0 +1,39 @@ +# icamera\_device.h + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

OHOS::Camera::ICameraDevice

+

Camera设备操作。

+
+ +## **详细描述** + +Camera设备操作接口。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/icamera__device__callback_8h.md b/zh-cn/device-dev/api/toctopics/icamera__device__callback_8h.md new file mode 100644 index 0000000000..60e87d217c --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/icamera__device__callback_8h.md @@ -0,0 +1,39 @@ +# icamera\_device\_callback.h + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

OHOS::Camera::ICameraDeviceCallback

+

Camera设备操作回调。

+
+ +## **详细描述** + +Camera设备的回调接口,主要包含camera设备发生错误时和上报metadata的回调函数。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/icamera__host_8h.md b/zh-cn/device-dev/api/toctopics/icamera__host_8h.md new file mode 100644 index 0000000000..160ccb93df --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/icamera__host_8h.md @@ -0,0 +1,39 @@ +# icamera\_host.h + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

OHOS::Camera::ICameraHost

+

Camera服务的管理类。

+
+ +## **详细描述** + +Camera服务的管理类,对上层提供HDI接口。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/icamera__host__callback_8h.md b/zh-cn/device-dev/api/toctopics/icamera__host__callback_8h.md new file mode 100644 index 0000000000..e482262c6c --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/icamera__host__callback_8h.md @@ -0,0 +1,39 @@ +# icamera\_host\_callback.h + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

OHOS::Camera::ICameraHostCallback

+

Camera服务的管理回调。

+
+ +## **详细描述** + +ICameraHost的回调接口,提供Camera设备和闪关灯状态变化的回调函数,回调函数由调用者实现。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/index.md b/zh-cn/device-dev/api/toctopics/index.md new file mode 100644 index 0000000000..4580e97fa9 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/index.md @@ -0,0 +1,37 @@ +# NativeAPI参考 + +- **[Audio](_audio.md)** + +- **[Battery](battery.md)** + +- **[Camera](_camera.md)** + +- **[Codec](_codec.md)** + +- **[Display](_display.md)** + +- **[DAC](_d_a_c.md)** + +- **[HdfFaceAuth](_hdf_face_auth.md)** + +- **[Input](_input.md)** + +- **[Light](_light.md)** + +- **[HdfPinAuth](_hdf_pin_auth.md)** + +- **[Power](power.md)** + +- **[Sensor](_sensor.md)** + +- **[Thermal](thermal.md)** + +- **[USB](_u_s_b.md)** + +- **[HdfUserAuth](_hdf_user_auth.md)** + +- **[Vibrator](_vibrator.md)** + +- **[WLAN](_w_l_a_n.md)** + + diff --git a/zh-cn/device-dev/api/toctopics/input__controller_8h.md b/zh-cn/device-dev/api/toctopics/input__controller_8h.md new file mode 100644 index 0000000000..8537fac3ee --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/input__controller_8h.md @@ -0,0 +1,39 @@ +# input\_controller.h + +## **概述** + +**所属模块:** + +[Input](_input.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

InputController

+

提供input设备业务控制相关的接口。 更多...

+
+ +## **详细描述** + +描述input设备业务控制相关的接口声明。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/input__manager_8h.md b/zh-cn/device-dev/api/toctopics/input__manager_8h.md new file mode 100644 index 0000000000..c22c3135b5 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/input__manager_8h.md @@ -0,0 +1,61 @@ +# input\_manager.h + +## **概述** + +**所属模块:** + +[Input](_input.md) + +## **汇总** + +## 类 + + + + + + + + + + + + + +

+

描述

+

InputManager

+

提供input设备管理相关的接口。 更多...

+

IInputInterface

+

定义用于提供输入设备驱动能力的接口。更多...

+
+ +## 函数 + + + + + + + + + + +

函数

+

描述

+

GetInputInterface (IInputInterface **interface)

+

input服务通过调用此接口获取操作input设备的所有接口。 更多...

+
+ +## **详细描述** + +描述input设备管理相关的接口声明。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/input__reporter_8h.md b/zh-cn/device-dev/api/toctopics/input__reporter_8h.md new file mode 100644 index 0000000000..6ca5cf08ad --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/input__reporter_8h.md @@ -0,0 +1,39 @@ +# input\_reporter.h + +## **概述** + +**所属模块:** + +[Input](_input.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

InputReporter

+

提供input设备数据上报相关的接口。 更多...

+
+ +## **详细描述** + +描述input设备数据上报相关的接口声明。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/input__type_8h.md b/zh-cn/device-dev/api/toctopics/input__type_8h.md new file mode 100644 index 0000000000..4035c8d157 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/input__type_8h.md @@ -0,0 +1,128 @@ +# input\_type.h + +## **概述** + +**所属模块:** + +[Input](_input.md) + +## **汇总** + +## 类 + + + + + + + + + + + + + + + + + + + +

+

描述

+

EventPackage

+

input事件数据包结构 更多...

+

InputReportEventCb

+

此结构体定义了输入事件回调函数并提供给input服务使用 更多...

+

DeviceInfo

+

input设备基础设备信息 更多...

+

InputExtraCmd

+

扩展指令的数据结构 更多...

+
+ +## 宏定义 + + + + + + + + + + + + + + + + + + + + + + + + + +

宏定义

+

描述

+

MAX_INPUT_DEV_NUM 32

+

Input设备最大数量。

+

MAX_NODE_PATH_LEN 64

+

节点路径最大长度。

+

CHIP_INFO_LEN 10

+

芯片信息长度。

+

CHIP_NAME_LEN 10

+

芯片名称长度。

+

VENDOR_NAME_LEN 10

+

厂商名称长度。

+

SELF_TEST_RESULT_LEN 20

+

自测结果长度。

+
+ +## 枚举 + + + + + + + + + + + + + + + + + + + +

枚举

+

描述

+

RetStatus { INPUT_SUCCESS = 0, INPUT_FAILURE = -1, INPUT_INVALID_PARAM = -2, INPUT_NOMEM = -3, INPUT_NULL_PTR = -4, INPUT_TIMEOUT = -5, INPUT_UNSUPPORTED = -6 }

+

定义返回值类型 更多...

+

InputDevType { INDEV_TYPE_TOUCH, INDEV_TYPE_KEY, INDEV_TYPE_KEYBOARD, INDEV_TYPE_MOUSE, INDEV_TYPE_BUTTON, INDEV_TYPE_CROWN, INDEV_TYPE_ENCODER, INDEV_TYPE_UNKNOWN }

+

定义input设备类型 更多...

+

PowerStatus { INPUT_RESUME, INPUT_SUSPEND, INPUT_LOW_POWER, INPUT_POWER_STATUS_UNKNOWN }

+

定义电源状态 更多...

+

CapacitanceTest { BASE_TEST, FULL_TEST, MMI_TEST, RUNNING_TEST, TEST_TYPE_UNKNOWN }

+

定义容值测试类型 更多...

+
+ +## **详细描述** + +input设备相关的类型定义,定义了input设备驱动接口所使用的结构体及枚举类型。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/interface_i_battery_callback.md b/zh-cn/device-dev/api/toctopics/interface_i_battery_callback.md new file mode 100644 index 0000000000..aa8fd9a5a4 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/interface_i_battery_callback.md @@ -0,0 +1,72 @@ +# IBatteryCallback + +## **概述** + +**所属模块:** + +[Battery](battery.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + +

Public 成员函数

+

描述

+

Update ([in] struct BatteryInfo event)

+

电池信息的回调方法。 更多...

+
+ +## **详细描述** + +电池信息的回调。 + +服务创建此回调对象后,可以调用IBatteryInterface的接口注册回调,从而订阅电池信息的变化。 + +**Since:** + +3.1 + +## **成员函数说明** + +## Update\(\) + +``` +IBatteryCallback::Update ([in] struct BatteryInfo event) +``` + +**描述:** + +电池信息的回调方法。 + +当电池信息发生变化时,将通过此方法的参数返回给服务。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

event

+

电池信息,如电量,电压,健康状态等。

+
+ +**参见:** + +[BatteryInfo](_battery_info.md) + diff --git a/zh-cn/device-dev/api/toctopics/interface_i_battery_interface.md b/zh-cn/device-dev/api/toctopics/interface_i_battery_interface.md new file mode 100644 index 0000000000..5981147195 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/interface_i_battery_interface.md @@ -0,0 +1,609 @@ +# IBatteryInterface + +## **概述** + +**所属模块:** + +[Battery](battery.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 成员函数

+

描述

+

Register ([in] IBatteryCallback event)

+

注册电池信息的回调。 更多...

+

UnRegister ()

+

取消注册电池信息的回调。 更多...

+

ChangePath ([in] String path)

+

设置电池信息节点的路径。 更多...

+

GetCapacity ([out] int capacity)

+

获取电池的电量百分比。 更多...

+

GetVoltage ([out] int voltage)

+

获取电池的电压,单位微伏。 更多...

+

GetTemperature ([out] int temperature)

+

获取电池的充电温度,单位0.1摄氏度。 更多...

+

GetHealthState ([out] enum BatteryHealthState healthState)

+

获取电池的健康状态。 更多...

+

GetPluggedType ([out] enum BatteryPluggedType pluggedType)

+

获取充电设备类型。 更多...

+

GetChargeState ([out] enum BatteryChargeState chargeState)

+

获取充电状态。 更多...

+

GetPresent ([out] boolean present)

+

获取是否支持电池或者电池是否在位。 更多...

+

GetTechnology ([out] String technology)

+

获取电池的技术型号。 更多...

+

GetTotalEnergy ([out] int totalEnergy)

+

获取电池的总容量。 更多...

+

GetCurrentAverage ([out] int curAverage)

+

获取电池的平均电流。 更多...

+

GetCurrentNow ([out] int curNow)

+

获取电池的电流。 更多...

+

GetRemainEnergy ([out] int remainEnergy)

+

获取电池的剩余容量。 更多...

+

GetBatteryInfo ([out] struct BatteryInfo info)

+

获取电池的全部信息。 更多...

+
+ +## **详细描述** + +获取、订阅电池信息的接口。 + +服务获取此对象后,可以调用相关的接口获取、订阅电池信息。 + +**Since:** + +3.1 + +## **成员函数说明** + +## ChangePath\(\) + +``` +IBatteryInterface::ChangePath ([in] String path) +``` + +**描述:** + +设置电池信息节点的路径。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

path

+

输入参数,电池信息节点的路径。

+
+ +**返回:** + +HDF\_SUCCESS 表示路径设置成功。 + +## GetBatteryInfo\(\) + +``` +IBatteryInterface::GetBatteryInfo ([out] struct BatteryInfo info) +``` + +**描述:** + +获取电池的全部信息。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

info

+

输出参数,电池的全部信息。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取成功。 + +**参见:** + +[BatteryInfo](_battery_info.md) + +## GetCapacity\(\) + +``` +IBatteryInterface::GetCapacity ([out] int capacity) +``` + +**描述:** + +获取电池的电量百分比。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

capacity

+

输出参数,表示电量的百分比值。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取成功。 + +## GetChargeState\(\) + +``` +IBatteryInterface::GetChargeState ([out] enum BatteryChargeState chargeState) +``` + +**描述:** + +获取充电状态。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

chargeState

+

输出参数,表示充电状态。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取成功。 + +**参见:** + +[BatteryChargeState](battery.md#ga35791cca3603f7855c6368fbd00b21f1) + +## GetCurrentAverage\(\) + +``` +IBatteryInterface::GetCurrentAverage ([out] int curAverage) +``` + +**描述:** + +获取电池的平均电流。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

totalEnergy

+

输出参数,表示电池的平均电流,单位毫安。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取成功。 + +## GetCurrentNow\(\) + +``` +IBatteryInterface::GetCurrentNow ([out] int curNow) +``` + +**描述:** + +获取电池的电流。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

curNow

+

输出参数,表示电池的实时电流,单位毫安。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取成功。 + +## GetHealthState\(\) + +``` +IBatteryInterface::GetHealthState ([out] enum BatteryHealthState healthState) +``` + +**描述:** + +获取电池的健康状态。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

healthState

+

输出参数,表示电池健康状态。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取成功。 + +**参见:** + +[BatteryHealthState](battery.md#gaec9b86ee31a5d8abf7c804d81b542f2f) + +## GetPluggedType\(\) + +``` +IBatteryInterface::GetPluggedType ([out] enum BatteryPluggedType pluggedType) +``` + +**描述:** + +获取充电设备类型。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

pluggedType

+

输出参数,表示充电设备类型。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取成功。 + +**参见:** + +[BatteryPluggedType](battery.md#gab80029eabf9d0fdcc3ab4d4a4c3be6ba) + +## GetPresent\(\) + +``` +IBatteryInterface::GetPresent ([out] boolean present) +``` + +**描述:** + +获取是否支持电池或者电池是否在位。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

present

+

输出参数,表示是否支持电池或者电池是否在位。true表示支持或在位,false表示不支持或不在位。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取成功。 + +## GetRemainEnergy\(\) + +``` +IBatteryInterface::GetRemainEnergy ([out] int remainEnergy) +``` + +**描述:** + +获取电池的剩余容量。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

remainEnergy

+

输出参数,表示电池的剩余容量,单位毫安时。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取成功。 + +## GetTechnology\(\) + +``` +IBatteryInterface::GetTechnology ([out] String technology) +``` + +**描述:** + +获取电池的技术型号。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

technology

+

输出参数,当前电池技术型号。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取成功。 + +## GetTemperature\(\) + +``` +IBatteryInterface::GetTemperature ([out] int temperature) +``` + +**描述:** + +获取电池的充电温度,单位0.1摄氏度。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

temperature

+

输出参数,表示电池温度。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取成功。 + +## GetTotalEnergy\(\) + +``` +IBatteryInterface::GetTotalEnergy ([out] int totalEnergy) +``` + +**描述:** + +获取电池的总容量。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

totalEnergy

+

输出参数,表示电池的总容量,单位毫安时。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取成功。 + +## GetVoltage\(\) + +``` +IBatteryInterface::GetVoltage ([out] int voltage) +``` + +**描述:** + +获取电池的电压,单位微伏。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

voltage

+

输出参数,表示电池的电压。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取成功。 + +## Register\(\) + +``` +IBatteryInterface::Register ([in] IBatteryCallback event) +``` + +**描述:** + +注册电池信息的回调。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

event

+

输入参数,服务注册的回调。

+
+ +**返回:** + +HDF\_SUCCESS 表示注册成功。 + +## UnRegister\(\) + +``` +IBatteryInterface::UnRegister () +``` + +**描述:** + +取消注册电池信息的回调。 + +**返回:** + +HDF\_SUCCESS 表示取消注册成功。 + diff --git a/zh-cn/device-dev/api/toctopics/interface_i_executor.md b/zh-cn/device-dev/api/toctopics/interface_i_executor.md new file mode 100644 index 0000000000..79f515ea61 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/interface_i_executor.md @@ -0,0 +1,764 @@ +# IExecutor + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) | [HdfPinAuth](_hdf_pin_auth.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 成员函数

+

描述

+

GetExecutorInfo ([out] struct ExecutorInfo executorInfo)

+

获取执行器信息,人脸认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。 更多...

+

GetTemplateInfo ([in] unsigned long templateId, [out] struct TemplateInfo templateInfo)

+

获取凭据模版信息。 更多...

+

OnRegisterFinish ([in] unsigned long[] templateIdList, [in] unsigned char[] frameworkPublicKey, [in] unsigned char[] extraInfo)

+

完成执行器注册,对人脸特征模版进行对账,用于删除无效的人脸特征模板及相关信息。 更多...

+

Enroll ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj)

+

注册人脸特征模版。 更多...

+

Authenticate ([in] unsigned long scheduleId, [in] unsigned long[] templateIdList, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj)

+

人脸认证。 更多...

+

Identify ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj)

+

人脸识别。 更多...

+

Delete ([in] unsigned long[] templateIdList)

+

删除人脸特征模版。 更多...

+

Cancel ([in] unsigned long scheduleId)

+

取消操作请求。 更多...

+

SendCommand ([in] int commandId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj)

+

发送人脸认证功能相关操作命令。 更多...

+

GetExecutorInfo ([out] struct ExecutorInfo executorInfo)

+

获取执行器信息,口令认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。 更多...

+

OnRegisterFinish ([in] unsigned long[] templateIdList, [in] unsigned char[] frameworkPublicKey, [in] unsigned char[] extraInfo)

+

完成执行器注册,对口令模版信息进行对账,用于删除无效的口令模板及相关信息。 更多...

+

OnSetData ([in] unsigned long scheduleId, [in] unsigned long authSubType, [in] unsigned char[] data)

+

设置口令数据,口令认证驱动处理注册或认证口令请求时,如果口令数据由口令认证服务获取,需要通过该接口将口令数据传给口令认证驱动。 更多...

+

Enroll ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj)

+

注册口令。 更多...

+

Authenticate ([in] unsigned long scheduleId, [in] unsigned long templateId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj)

+

认证口令。 更多...

+

Delete ([in] unsigned long templateId)

+

删除口令。 更多...

+

SendCommand ([in] int commandId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj)

+

发送口令认证功能相关操作命令。 更多...

+
+ +## **详细描述** + +定义执行器标准API接口。接口可用于: + +- 获取执行器信息。 +- 获取凭据模版信息。 +- 注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 +- 注册口令,认证口令,删除口令等。 + +**Since:** + +3.2 + +**Version:** + +1.0 + +## **成员函数说明** + +## Authenticate\(\) \[1/2\] + +``` +IExecutor::Authenticate ([in] unsigned long scheduleId, [in] unsigned long templateId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) +``` + +**描述:** + +认证口令。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

scheduleId

+

调度ID,用于标识一次操作请求的调度过程。

+

templateId

+

指定要认证的模版ID。

+

extraInfo

+

其他相关信息,用于支持信息扩展。

+

callbackObj

+

回调对象IExecutorCallback

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## Authenticate\(\) \[2/2\] + +``` +IExecutor::Authenticate ([in] unsigned long scheduleId, [in] unsigned long[] templateIdList, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) +``` + +**描述:** + +人脸认证。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

scheduleId

+

调度ID,用于标识一次操作请求的调度过程。

+

templateIdList

+

指定要认证的模版ID列表。

+

extraInfo

+

其他相关信息,用于支持信息扩展。

+

callbackObj

+

回调对象IExecutorCallback

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## Cancel\(\) + +``` +IExecutor::Cancel ([in] unsigned long scheduleId) +``` + +**描述:** + +取消操作请求。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

scheduleId

+

调度ID,用于标识一次操作请求的调度过程。

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## Delete\(\) \[1/2\] + +``` +IExecutor::Delete ([in] unsigned long templateId) +``` + +**描述:** + +删除口令。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

templateId

+

模版ID。

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## Delete\(\) \[2/2\] + +``` +IExecutor::Delete ([in] unsigned long[] templateIdList) +``` + +**描述:** + +删除人脸特征模版。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

templateIdList

+

指定要删除的模版ID列表。

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## Enroll\(\) \[1/2\] + +``` +IExecutor::Enroll ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) +``` + +**描述:** + +注册人脸特征模版。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

scheduleId

+

调度ID,用于标识一次操作请求的调度过程。

+

extraInfo

+

其他相关信息,用于支持信息扩展。

+

callbackObj

+

回调对象IExecutorCallback

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## Enroll\(\) \[2/2\] + +``` +IExecutor::Enroll ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) +``` + +**描述:** + +注册口令。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

scheduleId

+

调度ID,用于标识一次操作请求的调度过程。

+

extraInfo

+

其他相关信息,用于支持信息扩展。

+

callbackObj

+

回调对象IExecutorCallback

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## GetExecutorInfo\(\) \[1/2\] + +``` +IExecutor::GetExecutorInfo ([out] struct ExecutorInfo executorInfo) +``` + +**描述:** + +获取执行器信息,人脸认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

executorInfo

+

执行器信息ExecutorInfo

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## GetExecutorInfo\(\) \[2/2\] + +``` +IExecutor::GetExecutorInfo ([out] struct ExecutorInfo executorInfo) +``` + +**描述:** + +获取执行器信息,口令认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

executorInfo

+

执行器信息ExecutorInfo

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## GetTemplateInfo\(\) + +``` +IExecutor::GetTemplateInfo ([in] unsigned long templateId, [out] struct TemplateInfo templateInfo ) +``` + +**描述:** + +获取凭据模版信息。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

templateId

+

凭据模版ID。

+

templateInfo

+

凭据模版信息TemplateInfo

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## Identify\(\) + +``` +IExecutor::Identify ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) +``` + +**描述:** + +人脸识别。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

scheduleId

+

调度ID,用于标识一次操作请求的调度过程。

+

extraInfo

+

其他相关信息,用于支持信息扩展。

+

callbackObj

+

回调对象IExecutorCallback

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## OnRegisterFinish\(\) \[1/2\] + +``` +IExecutor::OnRegisterFinish ([in] unsigned long[] templateIdList, [in] unsigned char[] frameworkPublicKey, [in] unsigned char[] extraInfo ) +``` + +**描述:** + +完成执行器注册,对人脸特征模版进行对账,用于删除无效的人脸特征模板及相关信息。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

templateIdList

+

用户认证框架内由该执行器注册的人脸特征模版ID列表。

+

frameworkPublicKey

+

用户认证框架的公钥,用于校验用户认证框架私钥签名的信息。

+

extraInfo

+

其他相关信息,用于支持信息扩展。

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## OnRegisterFinish\(\) \[2/2\] + +``` +IExecutor::OnRegisterFinish ([in] unsigned long[] templateIdList, [in] unsigned char[] frameworkPublicKey, [in] unsigned char[] extraInfo ) +``` + +**描述:** + +完成执行器注册,对口令模版信息进行对账,用于删除无效的口令模板及相关信息。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

templateIdList

+

用户认证框架内由该执行器注册的口令凭据模版ID列表。

+

frameworkPublicKey

+

用户认证框架的公钥,用于校验用户认证框架私钥签名的信息。

+

extraInfo

+

其他相关信息,用于支持信息扩展。

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## OnSetData\(\) + +``` +IExecutor::OnSetData ([in] unsigned long scheduleId, [in] unsigned long authSubType, [in] unsigned char[] data ) +``` + +**描述:** + +设置口令数据,口令认证驱动处理注册或认证口令请求时,如果口令数据由口令认证服务获取,需要通过该接口将口令数据传给口令认证驱动。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

scheduleId

+

调度ID,用于标识一次操作请求的调度过程。

+

authSubType

+

口令子类型,如六位数字PIN码等。

+

data

+

口令数据。

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## SendCommand\(\) \[1/2\] + +``` +IExecutor::SendCommand ([in] int commandId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) +``` + +**描述:** + +发送人脸认证功能相关操作命令。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

commandId

+

操作命令IDCommandId

+

extraInfo

+

其他相关信息,用于支持信息扩展。

+

callbackObj

+

回调对象IExecutorCallback

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## SendCommand\(\) \[2/2\] + +``` +IExecutor::SendCommand ([in] int commandId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) +``` + +**描述:** + +发送口令认证功能相关操作命令。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

commandId

+

操作命令IDCommandId

+

extraInfo

+

其他相关信息,用于支持信息扩展。

+

callbackObj

+

回调对象IExecutorCallback

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + diff --git a/zh-cn/device-dev/api/toctopics/interface_i_executor_callback.md b/zh-cn/device-dev/api/toctopics/interface_i_executor_callback.md new file mode 100644 index 0000000000..640732758e --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/interface_i_executor_callback.md @@ -0,0 +1,165 @@ +# IExecutorCallback + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) | [HdfPinAuth](_hdf_pin_auth.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + + + + + + + +

Public 成员函数

+

描述

+

OnResult ([in] int result, [in] unsigned char[] extraInfo)

+

定义操作结果回调函数。 更多...

+

OnAcquireInfo ([in] int acquire, [in] unsigned char[] extraInfo)

+

定义操作过程信息反馈回调函数。 更多...

+

OnGetData ([in] unsigned long scheduleId, [in] unsigned char[] salt, [in] unsigned long authSubType)

+

定义请求获取口令数据回调函数。 更多...

+
+ +## **详细描述** + +定义异步API接口回调,用于返回异步接口的请求处理结果和获取信息。使用细节见[IExecutor](interface_i_executor.md)。 + +**Since:** + +3.2 + +**Version:** + +1.0 + +## **成员函数说明** + +## OnAcquireInfo\(\) + +``` +IExecutorCallback::OnAcquireInfo ([in] int acquire, [in] unsigned char[] extraInfo ) +``` + +**描述:** + +定义操作过程信息反馈回调函数。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

acquire

+

提示信息编码FaceTipsCode

+

extraInfo

+

其他相关信息,用于支持信息扩展。

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## OnGetData\(\) + +``` +IExecutorCallback::OnGetData ([in] unsigned long scheduleId, [in] unsigned char[] salt, [in] unsigned long authSubType ) +``` + +**描述:** + +定义请求获取口令数据回调函数。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

salt

+

盐值,用于对口令明文进行单向处理。

+

authSubType

+

口令子类型,如六位数字PIN码等。

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## OnResult\(\) + +``` +IExecutorCallback::OnResult ([in] int result, [in] unsigned char[] extraInfo ) +``` + +**描述:** + +定义操作请求处理结果回调函数。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

result

+

操作请求处理结果。

+

extraInfo

+

其他相关信息,如用户认证通过时用于返回执行器签发的认证令牌等。

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + diff --git a/zh-cn/device-dev/api/toctopics/interface_i_face_auth_interface.md b/zh-cn/device-dev/api/toctopics/interface_i_face_auth_interface.md new file mode 100644 index 0000000000..645f51f2b3 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/interface_i_face_auth_interface.md @@ -0,0 +1,74 @@ +# IFaceAuthInterface + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + +

Public 成员函数

+

描述

+

GetExecutorList ([out] IExecutor[] executorList)

+

获取执行器列表,人脸认证服务进程启动进行初始化操作时通过该接口获取人脸认证驱动支持的执行器列表。 更多...

+
+ +## **详细描述** + +定义获取人脸认证驱动的执行器列表接口。 + +**Since:** + +3.2 + +**Version:** + +1.0 + +## **成员函数说明** + +## GetExecutorList\(\) + +``` +IFaceAuthInterface::GetExecutorList ([out] IExecutor[] executorList) +``` + +**描述:** + +获取执行器列表,人脸认证服务进程启动进行初始化操作时通过该接口获取人脸认证驱动支持的执行器列表。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

executorList

+

执行器对象列表IExecutor

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + diff --git a/zh-cn/device-dev/api/toctopics/interface_i_pin_auth_interface.md b/zh-cn/device-dev/api/toctopics/interface_i_pin_auth_interface.md new file mode 100644 index 0000000000..a07212b3f6 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/interface_i_pin_auth_interface.md @@ -0,0 +1,74 @@ +# IPinAuthInterface + +## **概述** + +**所属模块:** + +[HdfPinAuth](_hdf_pin_auth.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + +

Public 成员函数

+

描述

+

GetExecutorList ([out] IExecutor[] executorList)

+

获取执行器列表,口令认证服务进程启动进行初始化操作时通过该接口获取口令认证驱动支持的执行器列表。 更多...

+
+ +## **详细描述** + +定义获取口令认证驱动的执行器列表接口。 + +**Since:** + +3.2 + +**Version:** + +1.0 + +## **成员函数说明** + +## GetExecutorList\(\) + +``` +IPinAuthInterface::GetExecutorList ([out] IExecutor[] executorList) +``` + +**描述:** + +获取执行器列表,口令认证服务进程启动进行初始化操作时通过该接口获取口令认证驱动支持的执行器列表。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

executorList

+

执行器对象列表IExecutor

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + diff --git a/zh-cn/device-dev/api/toctopics/interface_i_power_hdi_callback.md b/zh-cn/device-dev/api/toctopics/interface_i_power_hdi_callback.md new file mode 100644 index 0000000000..039e06e76a --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/interface_i_power_hdi_callback.md @@ -0,0 +1,68 @@ +# IPowerHdiCallback + +## **概述** + +**所属模块:** + +[Power](power.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + + + + +

Public 成员函数

+

描述

+

OnSuspend ()

+

休眠状态的回调方法。 更多...

+

OnWakeup ()

+

唤醒状态的回调方法。 更多...

+
+ +## **详细描述** + +休眠/唤醒状态的回调。 + +服务创建此回调对象后,可以调用IPowerInterface的接口注册回调,从而订阅休眠/唤醒状态的变化。 + +**Since:** + +3.1 + +## **成员函数说明** + +## OnSuspend\(\) + +``` +IPowerHdiCallback::OnSuspend () +``` + +**描述:** + +休眠状态的回调方法。 + +当设备进入休眠状态时,将通过此方法通知给服务。 + +## OnWakeup\(\) + +``` +IPowerHdiCallback::OnWakeup () +``` + +**描述:** + +唤醒状态的回调方法。 + +当设备进入唤醒状态时,将通过此方法通知给服务。 + diff --git a/zh-cn/device-dev/api/toctopics/interface_i_power_interface.md b/zh-cn/device-dev/api/toctopics/interface_i_power_interface.md new file mode 100644 index 0000000000..42fd9b8edb --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/interface_i_power_interface.md @@ -0,0 +1,239 @@ +# IPowerInterface + +## **概述** + +**所属模块:** + +[Power](power.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 成员函数

+

描述

+

RegisterCallback ([in] IPowerHdiCallback ipowerHdiCallback)

+

注册休眠/唤醒状态的回调。 更多...

+

StartSuspend ()

+

执行设备休眠操作。 更多...

+

StopSuspend ()

+

执行设备唤醒操作。 更多...

+

ForceSuspend ()

+

执行设备强制休眠操作。 更多...

+

SuspendBlock ([in] String name)

+

打开运行锁,阻止休眠。 更多...

+

SuspendUnblock ([in] String name)

+

关闭运行锁,取消阻止休眠。 更多...

+

PowerDump ([out] String info)

+

获取电源的Dump信息。 更多...

+
+ +## **详细描述** + +休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 + +服务获取此对象后,可以调用相关的接口对设备进行休眠/唤醒、订阅休眠/唤醒状态和管理运行锁。 + +**Since:** + +3.1 + +## **成员函数说明** + +## ForceSuspend\(\) + +``` +IPowerInterface::ForceSuspend () +``` + +**描述:** + +执行设备强制休眠操作。 + +**返回:** + +HDF\_SUCCESS 表示操作成功。 + +## PowerDump\(\) + +``` +IPowerInterface::PowerDump ([out] String info) +``` + +**描述:** + +获取电源的Dump信息。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

info

+

输出参数,电源的Dump信息。

+
+ +**返回:** + +HDF\_SUCCESS 表示操作成功。 + +## RegisterCallback\(\) + +``` +IPowerInterface::RegisterCallback ([in] IPowerHdiCallback ipowerHdiCallback) +``` + +**描述:** + +注册休眠/唤醒状态的回调。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

ipowerHdiCallback

+

输入参数,服务注册的回调。

+
+ +**返回:** + +HDF\_SUCCESS 表示注册成功。 + +**参见:** + +[IPowerHdiCallback](interface_i_power_hdi_callback.md) + +## StartSuspend\(\) + +``` +IPowerInterface::StartSuspend () +``` + +**描述:** + +执行设备休眠操作。 + +**返回:** + +HDF\_SUCCESS 表示操作成功。 + +## StopSuspend\(\) + +``` +IPowerInterface::StopSuspend () +``` + +**描述:** + +执行设备唤醒操作。 + +**返回:** + +HDF\_SUCCESS 表示操作成功。 + +## SuspendBlock\(\) + +``` +IPowerInterface::SuspendBlock ([in] String name) +``` + +**描述:** + +打开运行锁,阻止休眠。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

name

+

输入参数,运行锁的名称。

+
+ +**返回:** + +HDF\_SUCCESS 表示操作成功。 + +## SuspendUnblock\(\) + +``` +IPowerInterface::SuspendUnblock ([in] String name) +``` + +**描述:** + +关闭运行锁,取消阻止休眠。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

name

+

输入参数,运行锁的名称。

+
+ +**返回:** + +HDF\_SUCCESS 表示操作成功。 + diff --git a/zh-cn/device-dev/api/toctopics/interface_i_thermal_callback.md b/zh-cn/device-dev/api/toctopics/interface_i_thermal_callback.md new file mode 100644 index 0000000000..c77ae0c300 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/interface_i_thermal_callback.md @@ -0,0 +1,72 @@ +# IThermalCallback + +## **概述** + +**所属模块:** + +[Thermal](thermal.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + +

Public 成员函数

+

描述

+

OnThermalDataEvent ([in] struct HdfThermalCallbackInfo event)

+

设备发热状态变化的回调方法。 更多...

+
+ +## **详细描述** + +订阅设备发热状态的回调。 + +服务创建此回调对象后,可以调用IThermalInterface的接口注册回调,从而订阅设备发热状态的变化。 + +**Since:** + +3.1 + +## **成员函数说明** + +## OnThermalDataEvent\(\) + +``` +IThermalCallback::OnThermalDataEvent ([in] struct HdfThermalCallbackInfo event) +``` + +**描述:** + +设备发热状态变化的回调方法。 + +当设备发热状态发生变化时,将通过此方法的参数返回给服务。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

event

+

输入参数,设备发热信息,包括器件类型、器件温度。

+
+ +**参见:** + +[HdfThermalCallbackInfo](_hdf_thermal_callback_info.md) + diff --git a/zh-cn/device-dev/api/toctopics/interface_i_thermal_interface.md b/zh-cn/device-dev/api/toctopics/interface_i_thermal_interface.md new file mode 100644 index 0000000000..6618449c02 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/interface_i_thermal_interface.md @@ -0,0 +1,241 @@ +# IThermalInterface + +## **概述** + +**所属模块:** + +[Thermal](thermal.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 成员函数

+

描述

+

SetCpuFreq ([in] int freq)

+

设置CPU频率。 更多...

+

SetGpuFreq ([in] int freq)

+

设置GPU频率。 更多...

+

SetBatteryCurrent ([in] int current)

+

设置充电电流。 更多...

+

GetThermalZoneInfo ([out] struct HdfThermalCallbackInfo event)

+

获取设备发热的信息。 更多...

+

Register ([in] IThermalCallback callbackObj)

+

注册设备发热状态的回调。 更多...

+

Unregister ()

+

取消注册设备发热状态的回调。 更多...

+
+ +## **详细描述** + +设备温度管理、控制及订阅接口。 + +服务获取此对象后,可以调用相关的接口管理、控制和订阅设备温度。 + +**Since:** + +3.1 + +## **成员函数说明** + +## GetThermalZoneInfo\(\) + +``` +IThermalInterface::GetThermalZoneInfo ([out] struct HdfThermalCallbackInfo event) +``` + +**描述:** + +获取设备发热的信息。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

event

+

输出参数,设备发热信息,包括器件类型、器件温度。

+
+ +**返回:** + +HDF\_SUCCESS 表示获取成功。 + +**参见:** + +[HdfThermalCallbackInfo](_hdf_thermal_callback_info.md) + +## Register\(\) + +``` +IThermalInterface::Register ([in] IThermalCallback callbackObj) +``` + +**描述:** + +注册设备发热状态的回调。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

callbackObj

+

输入参数,服务注册的回调。

+
+ +**返回:** + +HDF\_SUCCESS 表示注册成功。 + +**参见:** + +[IThermalCallback](interface_i_thermal_callback.md) + +## SetBatteryCurrent\(\) + +``` +IThermalInterface::SetBatteryCurrent ([in] int current) +``` + +**描述:** + +设置充电电流。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

current

+

输入参数,充电电流,单位毫安。

+
+ +**返回:** + +HDF\_SUCCESS 表示设置成功 + +## SetCpuFreq\(\) + +``` +IThermalInterface::SetCpuFreq ([in] int freq) +``` + +**描述:** + +设置CPU频率。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

freq

+

输入参数,设置CPU频率的值。

+
+ +**返回:** + +HDF\_SUCCESS 表示设置成功。 + +## SetGpuFreq\(\) + +``` +IThermalInterface::SetGpuFreq ([in] int freq) +``` + +**描述:** + +设置GPU频率。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

freq

+

输入参数,设置GPU频率的值。

+
+ +**返回:** + +HDF\_SUCCESS 表示设置成功。 + +## Unregister\(\) + +``` +IThermalInterface::Unregister () +``` + +**描述:** + +取消注册设备发热状态的回调。 + +**返回:** + +HDF\_SUCCESS 表示取消注册成功。 + diff --git a/zh-cn/device-dev/api/toctopics/interface_i_user_auth_interface.md b/zh-cn/device-dev/api/toctopics/interface_i_user_auth_interface.md new file mode 100644 index 0000000000..58ebca0c9a --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/interface_i_user_auth_interface.md @@ -0,0 +1,982 @@ +# IUserAuthInterface + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + +## **汇总** + +## Public 成员函数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public 成员函数

+

描述

+

Init ()

+

初始化用户认证驱动缓存信息,用于用户认证框架进程启动时初始化信息。 更多...

+

AddExecutor ([in] struct ExecutorRegisterInfo info, [out] unsigned long index, [out] unsigned char[] publicKey, [out] unsigned long[] templateIds)

+

添加认证执行器来获取认证能力,用于各认证基础服务如口令认证服务等将认证能力对接到用户认证框架。 更多...

+

DeleteExecutor ([in] unsigned long index)

+

删除执行器,用于清理失效的执行器信息。 更多...

+

OpenSession ([in] int userId, [out] unsigned char[] challenge)

+

开启一个认证凭据管理会话,用于在请求管理用户认证凭据前获取有效挑战值。 更多...

+

CloseSession ([in] int userId)

+

关闭认证凭据管理会话,完成用户认证凭据管理请求处理后,调用该接口使原挑战值失效。 更多...

+

BeginEnrollment ([in] int userId, [in] unsigned char[] authToken, [in] struct EnrollParam param, [out] struct ScheduleInfo info)

+

开始注册用户认证凭据。当注册凭据类型为口令且该用户已经注册了口令凭据时,将会更新口令凭据。 更多...

+

UpdateEnrollmentResult ([in] int userId, [in] unsigned char[] scheduleResult, [out] unsigned long credentialId, [out] struct CredentialInfo oldInfo)

+

更新用户凭据注册结果,完成凭据注册。 更多...

+

CancelEnrollment ([in] int userId)

+

取消注册请求。 更多...

+

DeleteCredential ([in] int userId, [in] unsigned long credentialId, [in] unsigned char[] authToken, [out] struct CredentialInfo info)

+

删除用户凭据信息。 更多...

+

GetCredential ([in] int userId, [in] enum AuthType authType, [out] struct CredentialInfo[] infos)

+

查询用户凭据信息。 更多...

+

GetSecureInfo ([in] int userId, [out] unsigned long secureUid, [out] struct EnrolledInfo[] infos)

+

查询用户安全信息。 更多...

+

DeleteUser ([in] int userId, [in] unsigned char[] authToken, [out] struct CredentialInfo[] deletedInfos)

+

删除用户口令认证凭据,在用户IAM系统内删除该用户,该请求由用户触发。 更多...

+

EnforceDeleteUser ([in] int userId, [out] struct CredentialInfo[] deletedInfos)

+

强制删除用户,该请求由系统内管理用户的模块触发。 更多...

+

BeginAuthentication ([in] unsigned long contextId, [in] struct AuthSolution param, [out] struct ScheduleInfo[] scheduleInfos)

+

开始认证用户,并生成认证方案。 更多...

+

UpdateAuthenticationResult ([in] unsigned long contextId, [in] unsigned char[] scheduleResult, [out] struct AuthResultInfo info)

+

更新认证结果,评估认证方案的认证结果。 更多...

+

CancelAuthentication ([in] unsigned long contextId)

+

取消用户认证请求。 更多...

+

BeginIdentification ([in] unsigned long contextId, [in] enum AuthType authType, [in] byte[] challenge, [in] unsigned int executorId, [out] struct ScheduleInfo scheduleInfo)

+

开始用户身份识别,并生成识别方案。 更多...

+

UpdateIdentificationResult ([in] unsigned long contextId, [in] unsigned char[] scheduleResult, [out] struct IdentifyResultInfo info)

+

更新用户身份识别结果,生成身份识别方案的结果 更多...

+

CancelIdentification ([in] unsigned long contextId)

+

取消用户身份识别请求。 更多...

+

GetAuthTrustLevel ([in] int userId, [in] enum AuthType authType, [out] unsigned int authTrustLevel)

+

获取当前认证类型的认证结果可信等级。 更多...

+

GetValidSolution ([in] int userId, [in] enum AuthType[] authTypes, [in] unsigned int authTrustLevel, [out] enum AuthType[] validTypes)

+

获取指定认证结果可信等级下有效的认证方式。 更多...

+
+ +## **详细描述** + +声明用户认证驱动的API接口。 + +**Since:** + +3.2 + +**Version:** + +1.0 + +## **成员函数说明** + +## AddExecutor\(\) + +``` +IUserAuthInterface::AddExecutor ([in] struct ExecutorRegisterInfo info, [out] unsigned long index, [out] unsigned char[] publicKey, [out] unsigned long[] templateIds ) +``` + +**描述:** + +添加认证执行器来获取认证能力,用于各认证基础服务如口令认证服务等将认证能力对接到用户认证框架。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

info

+

执行器注册信息ExecutorRegisterInfo

+

index

+

用户认证框架的执行器索引。

+

publicKey

+

用户认证框架公钥。

+

templateIds

+

该执行器已注册的模版ID列表。

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## BeginAuthentication\(\) + +``` +IUserAuthInterface::BeginAuthentication ([in] unsigned long contextId, [in] struct AuthSolution param, [out] struct ScheduleInfo[] scheduleInfos ) +``` + +**描述:** + +开始认证用户,并生成认证方案。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

contextId

+

上下文索引。

+

param

+

认证方案AuthSolution

+

scheduleInfos

+

调度信息ScheduleInfo

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## BeginEnrollment\(\) + +``` +IUserAuthInterface::BeginEnrollment ([in] int userId, [in] unsigned char[] authToken, [in] struct EnrollParam param, [out] struct ScheduleInfo info ) +``` + +**描述:** + +开始注册用户认证凭据。当注册凭据类型为口令且该用户已经注册了口令凭据时,将会更新口令凭据。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

userId

+

用户ID。

+

authToken

+

用户口令认证令牌。

+

param

+

注册凭据参数EnrollParam

+

info

+

调度信息ScheduleInfo

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## BeginIdentification\(\) + +``` +IUserAuthInterface::BeginIdentification ([in] unsigned long contextId, [in] enum AuthType authType, [in] byte[] challenge, [in] unsigned int executorId, [out] struct ScheduleInfo scheduleInfo ) +``` + +**描述:** + +开始用户身份识别,并生成识别方案。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

contextId

+

上下文索引。

+

authType

+

用户身份识别类型AuthType}。

+

scheduleInfo

+

调度信息ScheduleInfo

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## CancelAuthentication\(\) + +``` +IUserAuthInterface::CancelAuthentication ([in] unsigned long contextId) +``` + +**描述:** + +取消用户认证请求。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

contextId

+

上下文索引。

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## CancelEnrollment\(\) + +``` +IUserAuthInterface::CancelEnrollment ([in] int userId) +``` + +**描述:** + +取消注册请求。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

userId

+

用户ID。

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## CancelIdentification\(\) + +``` +IUserAuthInterface::CancelIdentification ([in] unsigned long contextId) +``` + +**描述:** + +取消用户身份识别请求。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

contextId

+

上下文索引。

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## CloseSession\(\) + +``` +IUserAuthInterface::CloseSession ([in] int userId) +``` + +**描述:** + +关闭认证凭据管理会话,完成用户认证凭据管理请求处理后,调用该接口使原挑战值失效。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

userId

+

用户ID。

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## DeleteCredential\(\) + +``` +IUserAuthInterface::DeleteCredential ([in] int userId, [in] unsigned long credentialId, [in] unsigned char[] authToken, [out] struct CredentialInfo info ) +``` + +**描述:** + +删除用户凭据信息。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

userId

+

用户ID。

+

credentialId

+

凭据ID。

+

authToken

+

用户口令认证令牌。

+

info

+

删除的凭据信息CredentialInfo

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## DeleteExecutor\(\) + +``` +IUserAuthInterface::DeleteExecutor ([in] unsigned long index) +``` + +**描述:** + +删除执行器,用于清理失效的执行器信息。 + +**参数:** + + + + + + + + + + +

名称

+

描述

+

index

+

用户认证框架的执行器索引。

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## DeleteUser\(\) + +``` +IUserAuthInterface::DeleteUser ([in] int userId, [in] unsigned char[] authToken, [out] struct CredentialInfo[] deletedInfos ) +``` + +**描述:** + +删除用户口令认证凭据,在用户IAM系统内删除该用户,该请求由用户触发。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

userId

+

用户ID。

+

authToken

+

用户口令认证令牌。

+

deletedInfos

+

删除的凭据信息CredentialInfo

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## EnforceDeleteUser\(\) + +``` +IUserAuthInterface::EnforceDeleteUser ([in] int userId, [out] struct CredentialInfo[] deletedInfos ) +``` + +**描述:** + +强制删除用户,该请求由系统内管理用户的模块触发。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

userId

+

用户ID。

+

deletedInfos

+

删除的凭据信息CredentialInfo

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## GetAuthTrustLevel\(\) + +``` +IUserAuthInterface::GetAuthTrustLevel ([in] int userId, [in] enum AuthType authType, [out] unsigned int authTrustLevel ) +``` + +**描述:** + +获取当前认证类型的认证结果可信等级。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

userId

+

用户ID。

+

authType

+

认证类型AuthType

+

authTrustLevel

+

认证结果可信等级。

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## GetCredential\(\) + +``` +IUserAuthInterface::GetCredential ([in] int userId, [in] enum AuthType authType, [out] struct CredentialInfo[] infos ) +``` + +**描述:** + +查询用户凭据信息。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

userId

+

用户ID。

+

authType

+

凭据类型AuthType

+

infos

+

凭据信息CredentialInfo

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## GetSecureInfo\(\) + +``` +IUserAuthInterface::GetSecureInfo ([in] int userId, [out] unsigned long secureUid, [out] struct EnrolledInfo[] infos ) +``` + +**描述:** + +查询用户安全信息。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

userId

+

用户ID。

+

secureUid

+

安全用户ID。

+

infos

+

注册信息EnrolledInfo

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## GetValidSolution\(\) + +``` +IUserAuthInterface::GetValidSolution ([in] int userId, [in] enum AuthType[] authTypes, [in] unsigned int authTrustLevel, [out] enum AuthType[] validTypes ) +``` + +**描述:** + +获取指定认证结果可信等级下有效的认证方式。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

userId

+

用户ID。

+

authTypes

+

用于筛选的认证方式列表AuthType

+

authTrustLevel

+

认证结果可信等级。

+

validTypes

+

有效的认证方式列表AuthType

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## Init\(\) + +``` +IUserAuthInterface::Init () +``` + +**描述:** + +初始化用户认证驱动缓存信息,用于用户认证框架进程启动时初始化信息。 + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## OpenSession\(\) + +``` +IUserAuthInterface::OpenSession ([in] int userId, [out] unsigned char[] challenge ) +``` + +**描述:** + +开启一个认证凭据管理会话,用于在请求管理用户认证凭据前获取有效挑战值。 + +**参数:** + + + + + + + + + + + + + +

名称

+

描述

+

userId

+

用户ID。

+

challenge

+

随机挑战值,用于生成用户身份认证令牌。

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## UpdateAuthenticationResult\(\) + +``` +IUserAuthInterface::UpdateAuthenticationResult ([in] unsigned long contextId, [in] unsigned char[] scheduleResult, [out] struct AuthResultInfo info ) +``` + +**描述:** + +更新认证结果,评估认证方案的认证结果。 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

contextId

+

上下文索引。

+

scheduleResult

+

执行器签发的认证结果。

+

info

+

认证结果信息AuthResultInfo

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## UpdateEnrollmentResult\(\) + +``` +IUserAuthInterface::UpdateEnrollmentResult ([in] int userId, [in] unsigned char[] scheduleResult, [out] unsigned long credentialId, [out] struct CredentialInfo oldInfo ) +``` + +**描述:** + +更新用户凭据注册结果,完成凭据注册。 + +**参数:** + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

userId

+

用户ID。

+

scheduleResult

+

执行器签发的注册结果。

+

credentialId

+

凭据ID。

+

oldInfo

+

已经删除的凭据信息CredentialInfo

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + +## UpdateIdentificationResult\(\) + +``` +IUserAuthInterface::UpdateIdentificationResult ([in] unsigned long contextId, [in] unsigned char[] scheduleResult, [out] struct IdentifyResultInfo info ) +``` + +**描述:** + +更新用户身份识别结果,生成身份识别方案的结果 + +**参数:** + + + + + + + + + + + + + + + + +

名称

+

描述

+

contextId

+

上下文索引。

+

scheduleResult

+

执行器签发的用户身份识别结果。

+

info

+

用户身份识别结果IdentifyResultInfo

+
+ +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + diff --git a/zh-cn/device-dev/api/toctopics/ioffline__stream__operator_8h.md b/zh-cn/device-dev/api/toctopics/ioffline__stream__operator_8h.md new file mode 100644 index 0000000000..170fdc5034 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/ioffline__stream__operator_8h.md @@ -0,0 +1,39 @@ +# ioffline\_stream\_operator.h + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

OHOS::Camera::IOfflineStreamOperator

+

离线流的操作类。

+
+ +## **详细描述** + +离线流的操作接口。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/istream__operator_8h.md b/zh-cn/device-dev/api/toctopics/istream__operator_8h.md new file mode 100644 index 0000000000..c56593f41e --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/istream__operator_8h.md @@ -0,0 +1,39 @@ +# istream\_operator.h + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

OHOS::Camera::IStreamOperator

+

流的操作类。

+
+ +## **详细描述** + +流的操作接口。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/istream__operator__callback_8h.md b/zh-cn/device-dev/api/toctopics/istream__operator__callback_8h.md new file mode 100644 index 0000000000..aa6975e6e2 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/istream__operator__callback_8h.md @@ -0,0 +1,39 @@ +# istream\_operator\_callback.h + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

OHOS::Camera::IStreamOperatorCallback

+

流的操作回调类。

+
+ +## **详细描述** + +[IStreamOperator](istream__operator_8h.md) 相关的回调,这些回调均由调用者实现。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/light_8typeh.md b/zh-cn/device-dev/api/toctopics/light_8typeh.md new file mode 100644 index 0000000000..f1fb441062 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/light_8typeh.md @@ -0,0 +1,45 @@ +# light\_type.h + +## **概述** + +**所属模块:** + +[Light](_light.md) + +## **汇总** + +## 类 + + + + + + + + + + + + + + + + +

+

描述

+

LightFlashEffect

+

定义闪烁参数。 更多...

+

LightEffect

+

定义灯的效果参数。 更多...

+

LightInfo

+

定义灯的基本信息。 更多...

+
+ +## **详细描述** + +声明light模块的通用API,可用于获取灯ID、打开或关闭灯、并设置灯光亮度和闪烁模式。 + +**Since:** + +3.1 + diff --git a/zh-cn/device-dev/api/toctopics/light__if_8h.md b/zh-cn/device-dev/api/toctopics/light__if_8h.md new file mode 100644 index 0000000000..535239042b --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/light__if_8h.md @@ -0,0 +1,57 @@ +# light\_if.h + +## **概述** + +**所属模块:** + +[Light](_light.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

LightInterface

+

定义可以在灯上执行的基本操作。 更多...

+
+ +## 函数 + + + + + + + + + + + + + +

函数

+

描述

+

NewLightInterfaceInstance (void)

+

创建LightInterface实例。 更多...

+

FreeLightInterfaceInstance (void)

+

释放LightInterface实例和相关资源。 更多...

+
+ +## **详细描述** + +声明light模块的通用API,可用于获取灯ID、打开或关闭灯、并设置灯光亮度和闪烁模式。 + +**Sinc[更多...](_light_flash_effect.md)e更多...[更多...](_light_info.md):** + +3.1 + diff --git a/zh-cn/device-dev/api/toctopics/pin__auth_2_i_executor_8idl.md b/zh-cn/device-dev/api/toctopics/pin__auth_2_i_executor_8idl.md new file mode 100644 index 0000000000..8388cb8ed3 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/pin__auth_2_i_executor_8idl.md @@ -0,0 +1,52 @@ +# IExecutor.idl + +## **概述** + +**所属模块:** + +[HdfPinAuth](_hdf_pin_auth.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

IExecutor

+

定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.pin_auth.v1_0

+

口令认证接口的包路径

+
+ +## **详细描述** + +定义执行器标准API接口。接口可用于获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。 + +**Since:** + +3.2 + diff --git a/zh-cn/device-dev/api/toctopics/pin__auth_2_i_executor_callback_8idl.md b/zh-cn/device-dev/api/toctopics/pin__auth_2_i_executor_callback_8idl.md new file mode 100644 index 0000000000..be0e5cfc7d --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/pin__auth_2_i_executor_callback_8idl.md @@ -0,0 +1,56 @@ +# IExecutorCallback.idl + +## **概述** + +**所属模块:** + +[HdfPinAuth](_hdf_pin_auth.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

IExecutorCallback

+

定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见IExecutor更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.pin_auth.v1_0

+

口令认证接口的包路径

+
+ +## **详细描述** + +定义异步API接口回调,用于返回异步接口的请求处理结果和获取信息。使用细节见[IExecutor](interface_i_executor.md)。 + +**Since:** + +3.2 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/power.md b/zh-cn/device-dev/api/toctopics/power.md new file mode 100644 index 0000000000..96d3b01b15 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/power.md @@ -0,0 +1,245 @@ +# Power + +## **汇总** + +## 文件 + + + + + + + + + + + + + + + + +

文件

+

描述

+

IPowerHdiCallback.idl

+

休眠/唤醒状态的回调。

+

IPowerInterface.idl

+

休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。

+

PowerTypes.idl

+

电源相关的数据类型。

+
+ +## 类 + + + + + + + + + + + + + +

+

描述

+

IPowerHdiCallback

+

休眠/唤醒状态的回调。 更多...

+

IPowerInterface

+

休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 更多...

+
+ +## 枚举 + + + + + + + + + + + + + + + + +

枚举

+

描述

+

PowerHdfCmd { CMD_REGISTER_CALLBCK = 0, CMD_START_SUSPEND, CMD_STOP_SUSPEND, CMD_FORCE_SUSPEND, CMD_SUSPEND_BLOCK, CMD_SUSPEND_UNBLOCK, CMD_DUMP }

+

枚举电源命令的参数。 更多...

+

PowerHdfCallbackCmd { CMD_ON_SUSPEND = 0, CMD_ON_WAKEUP }

+

枚举电源状态回调的参数。 更多...

+

PowerHdfState { AWAKE = 0, INACTIVE, SLEEP }

+

枚举电源的状态。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.power.v1_0

+

电源管理接口的包路径

+
+ +## **详细描述** + +提供休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 + +电源模块为电源服务提供的休眠/唤醒操作、订阅休眠/唤醒状态和运行锁管理的接口。 服务获取此模块的对象或代理后,可以调用相关的接口对设备进行休眠/唤醒、订阅休眠/唤醒状态和管理运行锁。 + +**Since:** + +3.1 + +**Version:** + +1.0 + +## **枚举类型说明** + +## PowerHdfCallbackCmd + +``` +enum PowerHdfCallbackCmd +``` + +**描述:** + +枚举电源状态回调的参数。 + + + + + + + + + + + + + +

枚举值

+

描述

+

CMD_ON_SUSPEND

+

休眠回调的命令参数。

+

+

CMD_ON_WAKEUP

+

唤醒回调的命令参数。

+

+
+ +## PowerHdfCmd + +``` +enum PowerHdfCmd +``` + +**描述:** + +枚举电源命令的参数。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

CMD_REGISTER_CALLBCK

+

订阅状态的命令参数

+

+

CMD_START_SUSPEND

+

休眠的命令参数

+

+

CMD_STOP_SUSPEND

+

唤醒的命令参数

+

+

CMD_FORCE_SUSPEND

+

强制休眠的命令参数

+

+

CMD_SUSPEND_BLOCK

+

打开运行锁的命令参数

+

+

CMD_SUSPEND_UNBLOCK

+

关闭运行锁的命令参数

+

+

CMD_DUMP

+

Dump的命令参数

+

+
+ +## PowerHdfState + +``` +enum PowerHdfState +``` + +**描述:** + +枚举电源的状态。 + + + + + + + + + + + + + + + + +

枚举值

+

描述

+

AWAKE

+

唤醒状态。

+

+

INACTIVE

+

非活动状态。

+

+

SLEEP

+

休眠状态。

+

+
+ diff --git a/zh-cn/device-dev/api/toctopics/sensor__if_8h.md b/zh-cn/device-dev/api/toctopics/sensor__if_8h.md new file mode 100644 index 0000000000..d9bbfd1d24 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/sensor__if_8h.md @@ -0,0 +1,61 @@ +# sensor\_if.h + +## **概述** + +**所属模块:** + +[Sensor](_sensor.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

SensorInterface

+

提供sensor设备基本控制操作接口。 更多...

+
+ +## 函数 + + + + + + + + + + + + + +

函数

+

描述

+

NewSensorInterfaceInstance (void)

+

创建传感器接口实例。 更多...

+

FreeSensorInterfaceInstance (void)

+

释放传感器接口实例。 更多...

+
+ +## **详细描述** + +Sensor模块对外通用的接口声明文件,提供获取传感器设备信息、订阅/去订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度,量程等可选配置接口定义。 + +**Since:** + +2.2 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/sensor__type_8h.md b/zh-cn/device-dev/api/toctopics/sensor__type_8h.md new file mode 100644 index 0000000000..4c674c4f62 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/sensor__type_8h.md @@ -0,0 +1,125 @@ +# sensor\_type.h + +## **概述** + +**所属模块:** + +[Sensor](_sensor.md) + +## **汇总** + +## 类 + + + + + + + + + + + + + +

+

描述

+

SensorInformation

+

定义传感器基本信息。 更多...

+

SensorEvents

+

上报传感器数据结构。 更多...

+
+ +## 宏定义 + + + + + + + + + + + + + +

宏定义

+

描述

+

SENSOR_NAME_MAX_LEN 32

+

Sensor名称的最大长度

+

SENSOR_VERSION_MAX_LEN 16

+

Sensor版本号的最大长度

+
+ +## 类型定义 + + + + + + + + + + +

类型定义

+

描述

+

(RecordDataCallback) (const struct SensorEvents *)

+

传感器上报数据回调函数的定义,传感器服务用户在订阅传感器时, 需要注册上报数据回调函数,传感器使能后,传感器服务用户可以接受到传感器数据,详见SensorInterface更多...

+
+ +## 枚举 + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举

+

描述

+

SensorStatus { SENSOR_SUCCESS = 0, SENSOR_FAILURE = -1, SENSOR_NOT_SUPPORT = -2, SENSOR_INVALID_PARAM = -3, SENSOR_INVALID_SERVICE = -4, SENSOR_NULL_PTR = -5 }

+

定义传感器模块返回值类型。 更多...

+

SensorTypeTag { SENSOR_TYPE_NONE = 0, SENSOR_TYPE_ACCELEROMETER = 1, SENSOR_TYPE_GYROSCOPE = 2, SENSOR_TYPE_PHOTOPLETHYSMOGRAPH = 3, SENSOR_TYPE_ELECTROCARDIOGRAPH = 4, SENSOR_TYPE_AMBIENT_LIGHT = 5, SENSOR_TYPE_MAGNETIC_FIELD = 6, SENSOR_TYPE_CAPACITIVE = 7, SENSOR_TYPE_BAROMETER = 8, SENSOR_TYPE_TEMPERATURE = 9, SENSOR_TYPE_HALL = 10, SENSOR_TYPE_GESTURE = 11, SENSOR_TYPE_PROXIMITY = 12, SENSOR_TYPE_HUMIDITY = 13, SENSOR_TYPE_MEDICAL_BEGIN = 128, SENSOR_TYPE_MEDICAL_END = 160, SENSOR_TYPE_PHYSICAL_MAX = 255, SENSOR_TYPE_ORIENTATION = 256, SENSOR_TYPE_GRAVITY = 257, SENSOR_TYPE_LINEAR_ACCELERATION = 258, SENSOR_TYPE_ROTATION_VECTOR = 259, SENSOR_TYPE_AMBIENT_TEMPERATURE = 260, SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED = 261, SENSOR_TYPE_GAME_ROTATION_VECTOR = 262, SENSOR_TYPE_GYROSCOPE_UNCALIBRATED = 263, SENSOR_TYPE_SIGNIFICANT_MOTION = 264, SENSOR_TYPE_PEDOMETER_DETECTION = 265, SENSOR_TYPE_PEDOMETER = 266, SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR = 277, SENSOR_TYPE_HEART_RATE = 278, SENSOR_TYPE_DEVICE_ORIENTATION = 279, SENSOR_TYPE_WEAR_DETECTION = 280, SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED = 281, SENSOR_TYPE_MAX }

+

定义传感器类型标识。 更多...

+

SensorAccuracyType { SENSOR_NO_ACCURACY = 0, SENSOR_LOW_ACCURACY = 1, SENSOR_MEDIUM_ACCURACY = 2, SENSOR_HIGH_ACCURACY = 3, SENSOR_MAX_ACCURACY }

+

传感器的精度类型。 更多...

+

SensorRangeType { SENSOR_RANGE_LEVEL1 = 0, SENSOR_RANGE_LEVEL2 = 1, SENSOR_RANGE_LEVEL3 = 2, SENSOR_RANGE_LEVEL_MAX }

+

传感器的量程级别。 更多...

+

SensorModeType { SENSOR_MODE_DEFAULT = 0, SENSOR_MODE_REALTIME = 1, SENSOR_MODE_ON_CHANGE = 2, SENSOR_MODE_ONE_SHOT = 3, SENSOR_MODE_FIFO_MODE = 4, SENSOR_MODE_MAX }

+

传感器的工作模式。 更多...

+

SensorGroupType { TRADITIONAL_SENSOR_TYPE = 0, MEDICAL_SENSOR_TYPE = 1, SENSOR_GROUP_TYPE_MAX }

+

枚举传感器的硬件服务组。 更多...

+
+ +## **详细描述** + +定义传感器模块所使用的传感器类型,传感器信息,传感器数据结构等数据类型。 + +**Since:** + +2.2 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/thermal.md b/zh-cn/device-dev/api/toctopics/thermal.md new file mode 100644 index 0000000000..8864f04d97 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/thermal.md @@ -0,0 +1,94 @@ +# Thermal + +## **汇总** + +## 文件 + + + + + + + + + + + + + + + + +

文件

+

描述

+

IThermalCallback.idl

+

设备发热状态的回调。

+

IThermalInterface.idl

+

设备温度管理、控制及订阅接口。

+

ThermalTypes.idl

+

设备发热状态相关的数据类型。

+
+ +## 类 + + + + + + + + + + + + + + + + + + + +

+

描述

+

IThermalCallback

+

订阅设备发热状态的回调。 更多...

+

IThermalInterface

+

设备温度管理、控制及订阅接口。 更多...

+

ThermalZoneInfo

+

设备发热的信息。 更多...

+

HdfThermalCallbackInfo

+

设备发热的信息列表。 更多...

+
+ +## 变量 + + + + + + + + + + +

变量 名称

+

描述

+

package ohos.hdi.thermal.v1_0

+

设备温度管理接口的包路径

+
+ +## **详细描述** + +提供设备温度管理、控制及订阅接口。 + +热模块为热服务提供的设备温度管理、控制及订阅接口。 服务获取此模块的对象或代理后,可以调用相关的接口管理、控制和订阅设备温度。 + +**Since:** + +3.1 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/total.md b/zh-cn/device-dev/api/toctopics/total.md new file mode 100644 index 0000000000..901e02c84a --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/total.md @@ -0,0 +1,7 @@ +# 头文件和结构体 + +- **[头文件](files.md)** + +- **[结构体](annotated.md)** + + diff --git a/zh-cn/device-dev/api/toctopics/types_8h.md b/zh-cn/device-dev/api/toctopics/types_8h.md new file mode 100644 index 0000000000..8a56500af2 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/types_8h.md @@ -0,0 +1,153 @@ +# types.h + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + +## **汇总** + +## 类 + + + + + + + + + + + + + + + + + + + + + + +

+

描述

+

OHOS::Camera::StreamInfo

+

流信息,用于创建流时传入相关的配置参数。 更多...

+

OHOS::Camera::StreamAttribute

+

流的属性。 更多...

+

OHOS::Camera::CaptureInfo

+

捕获请求的相关信息。 更多...

+

OHOS::Camera::CaptureEndedInfo

+

捕获结束相关信息,用于捕获结束回调 OnCaptureEnded更多...

+

OHOS::Camera::CaptureErrorInfo

+

流错误信息,用于回调 OnCaptureError更多...

+
+ +## 类型定义 + + + + + + + + + + + + + + + + +

类型定义

+

描述

+

OHOS::Camera::CameraAbility = CameraMetadata

+

Camera设备能力集合。

+

OHOS::Camera::CameraSetting = CameraMetadata

+

Camera设置参数,包括sensor帧率,3A相关参数等。

+

OHOS::Camera::MetaType = int32_t

+

整型。

+
+ +## 枚举 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

枚举

+

描述

+

OHOS::Camera::CamRetCode : int32_t { OHOS::Camera::NO_ERROR = 0, OHOS::Camera::CAMERA_BUSY = -1, OHOS::Camera::INSUFFICIENT_RESOURCES = -2, OHOS::Camera::INVALID_ARGUMENT = -3, OHOS::Camera::METHOD_NOT_SUPPORTED = -4, OHOS::Camera::CAMERA_CLOSED = -5, OHOS::Camera::DEVICE_ERROR = -6 }

+

HDI接口的返回值。 更多...

+

OHOS::Camera::ResultCallbackMode : int32_t { OHOS::Camera::PER_FRAME, OHOS::Camera::ON_CHANGED }

+

metadata的上报模式。 更多...

+

OHOS::Camera::OperationMode : int32_t { OHOS::Camera::NORMAL = 0 }

+

流的使用模式。 更多...

+

OHOS::Camera::StreamIntent : int32_t { OHOS::Camera::PREVIEW = 0, OHOS::Camera::VIDEO = 1, OHOS::Camera::STILL_CAPTURE = 2, OHOS::Camera::POST_VIEW = 3, OHOS::Camera::ANALYZE = 4, OHOS::Camera::CUSTOM = 5 }

+

流的类型。 更多...

+

OHOS::Camera::EncodeType : int32_t { OHOS::Camera::ENCODE_TYPE_NULL = 0, OHOS::Camera::ENCODE_TYPE_H264 = 1, OHOS::Camera::ENCODE_TYPE_H265 = 2, OHOS::Camera::ENCODE_TYPE_JPEG = 3 }

+

流数据的编码类型。 更多...

+

OHOS::Camera::StreamSupportType : int32_t { OHOS::Camera::DYNAMIC_SUPPORTED, OHOS::Camera::RE_CONFIGURED_REQUIRED, OHOS::Camera::NOT_SUPPORTED }

+

动态配置流的切换方式,使用场景参考 IsStreamsSupported更多...

+

OHOS::Camera::CameraStatus { OHOS::Camera::UN_AVAILABLE = 0, OHOS::Camera::AVAILABLE = 1 }

+

Camera设备状态。 更多...

+

OHOS::Camera::FlashlightStatus : uint32_t { OHOS::Camera::FLASHLIGHT_OFF = 0, OHOS::Camera::FLASHLIGHT_ON = 1, OHOS::Camera::FLASHLIGHT_UNAVAILABLE = 2 }

+

闪光灯状态。 更多...

+

OHOS::Camera::CameraEvent : uint32_t { OHOS::Camera::CAMERA_EVENT_DEVICE_ADD = 0, OHOS::Camera::CAMERA_EVENT_DEVICE_RMV = 1 }

+

Camera事件。 更多...

+

OHOS::Camera::ErrorType : uint32_t { OHOS::Camera::FATAL_ERROR = 0, OHOS::Camera::REQUEST_TIMEOUT = 1 }

+

设备错误类型,用于设备错误回调 OnError更多...

+

OHOS::Camera::StreamError { OHOS::Camera::UNKNOWN_ERROR = 0, OHOS::Camera::BUFFER_LOST = 1 }

+

流错误类型,用于流错误类型 CaptureErrorInfo更多...

+
+ +## **详细描述** + +Camera模块HDI接口使用的数据类型。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/union_audio_scene_descriptor_1_1_scene_desc.md b/zh-cn/device-dev/api/toctopics/union_audio_scene_descriptor_1_1_scene_desc.md new file mode 100644 index 0000000000..a8866a25bf --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/union_audio_scene_descriptor_1_1_scene_desc.md @@ -0,0 +1,36 @@ +# AudioSceneDescriptor::SceneDesc + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

id

+

音频场景的ID。

+

desc

+

以字符串命名的音频场景。

+
+ +## **详细描述** + +音频场景描述。 + diff --git a/zh-cn/device-dev/api/toctopics/union_port_cap.md b/zh-cn/device-dev/api/toctopics/union_port_cap.md new file mode 100644 index 0000000000..71c8d90f17 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/union_port_cap.md @@ -0,0 +1,58 @@ +# PortCap + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + +## **汇总** + +## Public 属性 + + + + + + + + + + + + + +

Public 属性

+

描述

+

video

+

视频编解码能力

+

audio

+

音频编解码能力

+
+ +## **详细描述** + +定义音视频编解码能力。 + +## **类成员变量说明** + +## audio + +``` +AudioPortCap PortCap::audio +``` + +**描述:** + +音频编解码能力 + +## video + +``` +VideoPortCap PortCap::video +``` + +**描述:** + +视频编解码能力 + diff --git a/zh-cn/device-dev/api/toctopics/usb__info_8h.md b/zh-cn/device-dev/api/toctopics/usb__info_8h.md new file mode 100644 index 0000000000..e8c5682f15 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/usb__info_8h.md @@ -0,0 +1,44 @@ +# usb\_info.h + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + +## **汇总** + +## 类 + + + + + + + + + + + + + +

+

描述

+

OHOS::USB::USBDeviceInfo

+

USB设备信息。 更多...

+

OHOS::USB::UsbInfo

+

USB设备信息类。 更多...

+
+ +## **详细描述** + +USB驱动订阅模块使用的数据类型。 + +**Since:** + +3.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/usbd__client_8h.md b/zh-cn/device-dev/api/toctopics/usbd__client_8h.md new file mode 100644 index 0000000000..9eb3ebc024 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/usbd__client_8h.md @@ -0,0 +1,39 @@ +# usbd\_client.h + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

OHOS::USB::UsbdClient

+

USB驱动类。更多...

+
+ +## **详细描述** + +声明标准USB驱动接口函数。 + +**Since:** + +3.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/usbd__subscriber_8h.md b/zh-cn/device-dev/api/toctopics/usbd__subscriber_8h.md new file mode 100644 index 0000000000..842ddb91ba --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/usbd__subscriber_8h.md @@ -0,0 +1,39 @@ +# usbd\_subscriber.h + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

OHOS::USB::UsbdSubscriber

+

USB订阅类。更多...

+
+ +## **详细描述** + +USB驱动订阅模块。 + +**Since:** + +3.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/usbd__type_8h.md b/zh-cn/device-dev/api/toctopics/usbd__type_8h.md new file mode 100644 index 0000000000..f3cda91c42 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/usbd__type_8h.md @@ -0,0 +1,112 @@ +# usbd\_type.h + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + +## **汇总** + +## 类 + + + + + + + + + + + + + + + + + + + +

+

描述

+

OHOS::USB::UsbDev

+

USB设备。 更多...

+

OHOS::USB::UsbPipe

+

管道信息。 更多...

+

OHOS::USB::UsbCtrlTransfer

+

USB控制传输。 更多...

+

OHOS::USB::USBDeviceInfo

+

USB设备信息。 更多...

+
+ +## 宏定义 + + + + + + + + + + +

宏定义

+

描述

+

USB_MAX_INTERFACES 32

+

USB设备最大接口数量。

+
+ +## 类型定义 + + + + + + + + + + +

类型定义

+

描述

+

(UsbdRequestCallback) (uint8_t *requestArg)

+

请求回调函数。

+
+ +## 枚举 + + + + + + + + + + + + + +

枚举

+

描述

+

UsbdBulkCbCmd { CMD_USBD_BULK_CALLBACK_READ, CMD_USBD_BULK_CALLBACK_WRITE }

+

批量回调命令字。 更多...

+

UsbdDeviceAction { ACT_DEVUP = 0, ACT_DEVDOWN, ACT_UPDEVICE, ACT_DOWNDEVICE }

+

主机端和设备端插拔事件。 更多...

+
+ +## **详细描述** + +USB驱动模块接口定义中使用的自定义数据类型。 + +USB驱动模块接口定义中使用的自定义数据类型, 包括分发的命令字、数据方向等。 + +**Since:** + +3.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/vibrator__if_8h.md b/zh-cn/device-dev/api/toctopics/vibrator__if_8h.md new file mode 100644 index 0000000000..0ff8106997 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/vibrator__if_8h.md @@ -0,0 +1,61 @@ +# vibrator\_if.h + +## **概述** + +**所属模块:** + +[Vibrator](_vibrator.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

VibratorInterface

+

提供Vibrator设备基本控制操作接口。

+
+ +## 函数 + + + + + + + + + + + + + +

函数

+

描述

+

NewVibratorInterfaceInstance (void)

+

创建一个VibratorInterface实例。 更多...

+

FreeVibratorInterfaceInstance (void)

+

释放VibratorInterface实例以及相关资源。 更多...

+
+ +## **详细描述** + +定义马达数据结构,包括马达模式和效果振动。 + +**Since:** + +2.2 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/vibrator__type_8h.md b/zh-cn/device-dev/api/toctopics/vibrator__type_8h.md new file mode 100644 index 0000000000..1f89ae4bad --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/vibrator__type_8h.md @@ -0,0 +1,39 @@ +# vibrator\_type.h + +## **概述** + +**所属模块:** + +[Vibrator](_vibrator.md) + +## **汇总** + +## 枚举 + + + + + + + + + + +

枚举

+

描述

+

VibratorMode { VIBRATOR_MODE_ONCE = 0, VIBRATOR_MODE_PRESET = 1, VIBRATOR_MODE_BUTT }

+

枚举马达振动模式。 更多...

+
+ +## **详细描述** + +定义马达数据结构,包括马达模式和效果振动。 + +**Since:** + +2.2 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/wifi__hal_8h.md b/zh-cn/device-dev/api/toctopics/wifi__hal_8h.md new file mode 100644 index 0000000000..62d5587aa6 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/wifi__hal_8h.md @@ -0,0 +1,78 @@ +# wifi\_hal.h + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

IWiFi

+

HAL对WLAN服务提供的基本能力。 更多...

+
+ +## 类型定义 + + + + + + + + + + +

类型定义

+

描述

+

(CallbackFunc) (uint32_t event, void *data, const char *ifName)

+

定义IWiFi回调函数的原型,监听异步事件。 更多...

+
+ +## 函数 + + + + + + + + + + + + + +

函数

+

描述

+

WifiConstruct (struct IWiFi **wifiInstance)

+

创建IWiFi结构体,挂接IWiFi中能力接口。 更多...

+

WifiDestruct (struct IWiFi **wifiInstance)

+

销毁IWiFi结构体并释放相关资源。 更多...

+
+ +## **详细描述** + +提供给WLAN服务的WLAN基本能力接口。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/wifi__hal__ap__feature_8h.md b/zh-cn/device-dev/api/toctopics/wifi__hal__ap__feature_8h.md new file mode 100644 index 0000000000..fce63613c2 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/wifi__hal__ap__feature_8h.md @@ -0,0 +1,61 @@ +# wifi\_hal\_ap\_feature.h + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + +## **汇总** + +## 类 + + + + + + + + + + + + + +

+

描述

+

StaInfo

+

描述与AP连接的STA的基本信息 更多...

+

IWiFiAp

+

继承了IWiFiBaseFeature基本特性,并包含AP模式下获取连接STA的信息和设置国家码的功能。 更多...

+
+ +## 函数 + + + + + + + + + + +

函数

+

描述

+

InitApFeature (struct IWiFiAp **fe)

+

初始化AP特性。WLAN服务在创建AP类型的特性FeatureType时调用。 更多...

+
+ +## **详细描述** + +提供WLAN的AP特性能力(获取与AP连接的STA的基本信息、设置国家码)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/wifi__hal__base__feature_8h.md b/zh-cn/device-dev/api/toctopics/wifi__hal__base__feature_8h.md new file mode 100644 index 0000000000..a828e2dbf9 --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/wifi__hal__base__feature_8h.md @@ -0,0 +1,100 @@ +# wifi\_hal\_base\_feature.h + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

IWiFiBaseFeature

+

WLAN基本特性操作接口,包括获取网卡名称,设置MAC地址,设置发射功率等公共能力接口。 更多...

+
+ +## 宏定义 + + + + + + + + + + + + + + + + +

宏定义

+

描述

+

IFNAME_MAX_LEN 16

+

网卡名称最大长度。

+

WIFI_MAC_ADDR_LENGTH 6

+

WLAN的MAC地址长度。

+

ERR_UNAUTH_ACCESS (-6)

+

定义访问失败错误码。

+
+ +## 枚举 + + + + + + + + + + +

枚举

+

描述

+

FeatureType { PROTOCOL_80211_IFTYPE_UNSPECIFIED, PROTOCOL_80211_IFTYPE_ADHOC, PROTOCOL_80211_IFTYPE_STATION, PROTOCOL_80211_IFTYPE_AP, PROTOCOL_80211_IFTYPE_AP_VLAN, PROTOCOL_80211_IFTYPE_WDS, PROTOCOL_80211_IFTYPE_MONITOR, PROTOCOL_80211_IFTYPE_MESH_POINT, PROTOCOL_80211_IFTYPE_P2P_CLIENT, PROTOCOL_80211_IFTYPE_P2P_GO, PROTOCOL_80211_IFTYPE_P2P_DEVICE, PROTOCOL_80211_IFTYPE_NUM }

+

枚举WLAN相关特性的类型FeatureType更多...

+
+ +## 函数 + + + + + + + + + + +

函数

+

描述

+

InitBaseFeature (struct IWiFiBaseFeature **fe)

+

WLAN服务创建任何类型的特性{@Link FeatureType}时,都需要调用此函数。 更多...

+
+ +## **详细描述** + +提供WLAN基本特性能力。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/toctopics/wifi__hal__sta__feature_8h.md b/zh-cn/device-dev/api/toctopics/wifi__hal__sta__feature_8h.md new file mode 100644 index 0000000000..0876533c3a --- /dev/null +++ b/zh-cn/device-dev/api/toctopics/wifi__hal__sta__feature_8h.md @@ -0,0 +1,56 @@ +# wifi\_hal\_sta\_feature.h + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + +## **汇总** + +## 类 + + + + + + + + + + +

+

描述

+

IWiFiSta

+

继承了IWiFiBaseFeature基本特性,额外包含设置扫描单个MAC地址功能。 更多...

+
+ +## 函数 + + + + + + + + + + +

函数

+

描述

+

InitStaFeature (struct IWiFiSta **fe)

+

初始化STA特性。WLAN服务在创建STA类型的特性FeatureType时调用。 更多...

+
+ +## **详细描述** + +提供WLAN的STA特性能力。 + +**Since:** + +1.0 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/api/zh-cn_bookmap_0000001343320953.md b/zh-cn/device-dev/api/zh-cn_bookmap_0000001343320953.md new file mode 100644 index 0000000000..78960532e6 --- /dev/null +++ b/zh-cn/device-dev/api/zh-cn_bookmap_0000001343320953.md @@ -0,0 +1,219 @@ +# Native API 参考 + +- [NativeAPI参考](toctopics/index.md) + - [Audio](toctopics/_audio.md) + - [Battery](toctopics/battery.md) + - [Camera](toctopics/_camera.md) + - [Codec](toctopics/_codec.md) + - [Display](toctopics/_display.md) + - [DAC](toctopics/_d_a_c.md) + - [HdfFaceAuth](toctopics/_hdf_face_auth.md) + - [Input](toctopics/_input.md) + - [Light](toctopics/_light.md) + - [HdfPinAuth](toctopics/_hdf_pin_auth.md) + - [Power](toctopics/power.md) + - [Sensor](toctopics/_sensor.md) + - [Thermal](toctopics/thermal.md) + - [USB](toctopics/_u_s_b.md) + - [HdfUserAuth](toctopics/_hdf_user_auth.md) + - [Vibrator](toctopics/_vibrator.md) + - [WLAN](toctopics/_w_l_a_n.md) + +- [头文件和结构体](toctopics/total.md) + - [头文件](toctopics/files.md) + - [audio\_adapter.h](toctopics/audio__adapter_8h.md) + - [audio\_attribute.h](toctopics/audio__attribute_8h.md) + - [audio\_capture.h](toctopics/audio__capture_8h.md) + - [audio\_control.h](toctopics/audio__control_8h.md) + - [audio\_manager.h](toctopics/audio__manager_8h.md) + - [audio\_render.h](toctopics/audio__render_8h.md) + - [audio\_scene.h](toctopics/audio__scene_8h.md) + - [audio\_types.h](toctopics/audio__types_8h.md) + - [audio\_volume.h](toctopics/audio__volume_8h.md) + - [codec\_callback\_if.h](toctopics/codec__callback__if_8h.md) + - [codec\_common\_type.h](toctopics/codec__common__type_8h.md) + - [codec\_component\_if.h](toctopics/codec__component__if_8h.md) + - [codec\_component\_manager.h](toctopics/codec__component__manager_8h.md) + - [codec\_component\_type.h](toctopics/codec__component__type_8h.md) + - [dac\_if.h](toctopics/dac__if_8h.md) + - [display\_device.h](toctopics/display__device_8h.md) + - [display\_gfx.h](toctopics/display__gfx_8h.md) + - [display\_gralloc.h](toctopics/display__gralloc_8h.md) + - [display\_layer.h](toctopics/display__layer_8h.md) + - [display\_type.h](toctopics/display__type_8h.md) + - [icamera\_device\_callback.h](toctopics/icamera__device__callback_8h.md) + - [icamera\_device.h](toctopics/icamera__device_8h.md) + - [icamera\_host\_callback.h](toctopics/icamera__host__callback_8h.md) + - [icamera\_host.h](toctopics/icamera__host_8h.md) + - [input\_controller.h](toctopics/input__controller_8h.md) + - [input\_manager.h](toctopics/input__manager_8h.md) + - [input\_reporter.h](toctopics/input__reporter_8h.md) + - [input\_type.h](toctopics/input__type_8h.md) + - [ioffline\_stream\_operator.h](toctopics/ioffline__stream__operator_8h.md) + - [istream\_operator\_callback.h](toctopics/istream__operator__callback_8h.md) + - [istream\_operator.h](toctopics/istream__operator_8h.md) + - [light\_if.h](toctopics/light__if_8h.md) + - [light\_type.h](toctopics/light_8typeh.md) + - [sensor\_if.h](toctopics/sensor__if_8h.md) + - [sensor\_type.h](toctopics/sensor__type_8h.md) + - [types.h](toctopics/types_8h.md) + - [usb\_info.h](toctopics/usb__info_8h.md) + - [usbd\_client.h](toctopics/usbd__client_8h.md) + - [usbd\_subscriber.h](toctopics/usbd__subscriber_8h.md) + - [usbd\_type.h](toctopics/usbd__type_8h.md) + - [vibrator\_if.h](toctopics/vibrator__if_8h.md) + - [vibrator\_type.h](toctopics/vibrator__type_8h.md) + - [wifi\_hal\_ap\_feature.h](toctopics/wifi__hal__ap__feature_8h.md) + - [wifi\_hal\_base\_feature.h](toctopics/wifi__hal__base__feature_8h.md) + - [wifi\_hal\_sta\_feature.h](toctopics/wifi__hal__sta__feature_8h.md) + - [wifi\_hal.h](toctopics/wifi__hal_8h.md) + - [FACEAUTH\_IExecutor.idl](toctopics/face__auth_2_i_executor_8idl.md) + - [FACEAUTH\_IExecutorCallback.idl](toctopics/face__auth_2_i_executor_callback_8idl.md) + - [FaceAuthTypes.idl](toctopics/_face_auth_types_8idl.md) + - [IBatteryCallback.idl](toctopics/_i_battery_callback_8idl.md) + - [IBatteryInterface.idl](toctopics/_i_battery_interface_8idl.md) + - [IExecutor.idl](toctopics/pin__auth_2_i_executor_8idl.md) + - [IExecutorCallback.idl](toctopics/pin__auth_2_i_executor_callback_8idl.md) + - [IFaceAuthInterface.idl](toctopics/_i_face_auth_interface_8idl.md) + - [IPinAuthInterface.idl](toctopics/_i_pin_auth_interface_8idl.md) + - [IPowerHdiCallback.idl](toctopics/_i_power_hdi_callback_8idl.md) + - [IPowerInterface.idl](toctopics/_i_power_interface_8idl.md) + - [IThermalInterface.idl](toctopics/_i_thermal_interface_8idl.md) + - [IThermalCallback.idl](toctopics/_i_thermal_callback_8idl.md) + - [IUserAuthInterface.idl](toctopics/_i_user_auth_interface_8idl.md) + - [PowerTypes.idl](toctopics/_power_types_8idl.md) + - [ThermalTypes.idl](toctopics/_thermal_types_8idl.md) + - [Types.idl](toctopics/_types_8idl.md) + - [UserAuthTypes.idl](toctopics/_user_auth_types_8idl.md) + + - [结构体](toctopics/annotated.md) + - [\_\_attribute\_\_](toctopics/____attribute____.md) + - [Alignment](toctopics/_alignment.md) + - [AllocInfo](toctopics/_alloc_info.md) + - [AudioAdapter](toctopics/_audio_adapter.md) + - [AudioAdapterDescriptor](toctopics/_audio_adapter_descriptor.md) + - [AudioAttribute](toctopics/_audio_attribute.md) + - [AudioCapture](toctopics/_audio_capture.md) + - [AudioControl](toctopics/_audio_control.md) + - [AudioDevExtInfo](toctopics/_audio_dev_ext_info.md) + - [AudioDeviceDescriptor](toctopics/_audio_device_descriptor.md) + - [AudioManager](toctopics/_audio_manager.md) + - [AudioMixExtInfo](toctopics/_audio_mix_ext_info.md) + - [AudioMmapBufferDescripter](toctopics/_audio_mmap_buffer_descripter.md) + - [AudioPort](toctopics/_audio_port.md) + - [AudioPortCap](toctopics/_audio_port_cap.md) + - [AudioPortCapability](toctopics/_audio_port_capability.md) + - [AudioRender](toctopics/_audio_render.md) + - [AudioRoute](toctopics/_audio_route.md) + - [AudioRouteNode](toctopics/_audio_route_node.md) + - [AudioSampleAttributes](toctopics/_audio_sample_attributes.md) + - [AudioScene](toctopics/_audio_scene.md) + - [AudioSceneDescriptor](toctopics/_audio_scene_descriptor.md) + - [AudioSceneDescriptor::SceneDesc](toctopics/union_audio_scene_descriptor_1_1_scene_desc.md) + - [AudioSessionExtInfo](toctopics/_audio_session_ext_info.md) + - [AudioSubPortCapability](toctopics/_audio_sub_port_capability.md) + - [AudioTimeStamp](toctopics/_audio_time_stamp.md) + - [AudioVolume](toctopics/_audio_volume.md) + - [AuthResultInfo](toctopics/_auth_result_info.md) + - [AuthSolution](toctopics/_auth_solution.md) + - [BatteryInfo](toctopics/_battery_info.md) + - [BufferData](toctopics/_buffer_data.md) + - [CodecCallbackType](toctopics/_codec_callback_type.md) + - [CodecCompCapability](toctopics/_codec_comp_capability.md) + - [CodecComponentManager](toctopics/_codec_component_manager.md) + - [CodecComponentType](toctopics/_codec_component_type.md) + - [CompVerInfo](toctopics/_comp_ver_info.md) + - [CredentialInfo](toctopics/_credential_info.md) + - [DacIoMsg](toctopics/_dac_io_msg.md) + - [DeviceFuncs](toctopics/_device_funcs.md) + - [DeviceInfo](toctopics/_device_info.md) + - [DisplayCapability](toctopics/_display_capability.md) + - [DisplayInfo](toctopics/_display_info.md) + - [DisplayModeInfo](toctopics/_display_mode_info.md) + - [EnrolledInfo](toctopics/_enrolled_info.md) + - [EnrollParam](toctopics/_enroll_param.md) + - [EventInfo](toctopics/_event_info.md) + - [EventPackage](toctopics/_event_package.md) + - [ExecutorInfo](toctopics/_executor_info.md) + - [ExecutorRegisterInfo](toctopics/_executor_register_info.md) + - [ExecutorSendMsg](toctopics/_executor_send_msg.md) + - [GetBufferHandleUsageParams](toctopics/_get_buffer_handle_usage_params.md) + - [GfxFuncs](toctopics/_gfx_funcs.md) + - [GfxOpt](toctopics/_gfx_opt.md) + - [GrallocFuncs](toctopics/_gralloc_funcs.md) + - [HdfThermalCallbackInfo](toctopics/_hdf_thermal_callback_info.md) + - [HDRCapability](toctopics/_h_d_r_capability.md) + - [HDRMetaData](toctopics/_h_d_r_meta_data.md) + - [IBatteryCallback](toctopics/interface_i_battery_callback.md) + - [IBatteryInterface](toctopics/interface_i_battery_interface.md) + - [ICircle](toctopics/_i_circle.md) + - [IdentifyResultInfo](toctopics/_identify_result_info.md) + - [IExecutor](toctopics/interface_i_executor.md) + - [IExecutorCallback](toctopics/interface_i_executor_callback.md) + - [IFaceAuthInterface](toctopics/interface_i_face_auth_interface.md) + - [IInputInterface](toctopics/_i_input_interface.md) + - [ILine](toctopics/_i_line.md) + - [InputController](toctopics/_input_controller.md) + - [InputExtraCmd](toctopics/_input_extra_cmd.md) + - [InputManager](toctopics/_input_manager.md) + - [InputReporter](toctopics/_input_reporter.md) + - [InputReportEventCb](toctopics/_input_report_event_cb.md) + - [IPinAuthInterface](toctopics/interface_i_pin_auth_interface.md) + - [IPowerHdiCallback](toctopics/interface_i_power_hdi_callback.md) + - [IPowerInterface](toctopics/interface_i_power_interface.md) + - [IRect](toctopics/_i_rect.md) + - [ISurface](toctopics/_i_surface.md) + - [IThermalCallback](toctopics/interface_i_thermal_callback.md) + - [IThermalInterface](toctopics/interface_i_thermal_interface.md) + - [IUserAuthInterface](toctopics/interface_i_user_auth_interface.md) + - [IWiFi](toctopics/_i_wi_fi.md) + - [IWiFiAp](toctopics/_i_wi_fi_ap.md) + - [IWiFiBaseFeature](toctopics/_i_wi_fi_base_feature.md) + - [IWiFiSta](toctopics/_i_wi_fi_sta.md) + - [LayerAlpha](toctopics/_layer_alpha.md) + - [LayerBuffer](toctopics/_layer_buffer.md) + - [LayerFuncs](toctopics/_layer_funcs.md) + - [LayerInfo](toctopics/_layer_info.md) + - [LightEffect](toctopics/_light_effect.md) + - [LightFlashEffect](toctopics/_light_flash_effect.md) + - [LightInfo](toctopics/_light_info.md) + - [LightInterface](toctopics/_light_interface.md) + - [OHOS::Camera::CaptureEndedInfo](toctopics/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md) + - [OHOS::Camera::CaptureErrorInfo](toctopics/_o_h_o_s_1_1_camera_1_1_capture_error_info.md) + - [OHOS::Camera::CaptureInfo](toctopics/_o_h_o_s_1_1_camera_1_1_capture_info.md) + - [OHOS::Camera::ICameraDevice](toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device.md) + - [OHOS::Camera::ICameraDeviceCallback](toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md) + - [OHOS::Camera::ICameraHost](toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host.md) + - [OHOS::Camera::ICameraHostCallback](toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md) + - [OHOS::Camera::IOfflineStreamOperator](toctopics/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md) + - [OHOS::Camera::IStreamOperator](toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md) + - [OHOS::Camera::IStreamOperatorCallback](toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md) + - [OHOS::Camera::StreamAttribute](toctopics/_o_h_o_s_1_1_camera_1_1_stream_attribute.md) + - [OHOS::Camera::StreamInfo](toctopics/_o_h_o_s_1_1_camera_1_1_stream_info.md) + - [OHOS::USB::UsbCtrlTransfer](toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md) + - [OHOS::USB::UsbdClient](toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md) + - [OHOS::USB::UsbDev](toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) + - [OHOS::USB::USBDeviceInfo](toctopics/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md) + - [OHOS::USB::UsbdSubscriber](toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md) + - [OHOS::USB::UsbInfo](toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md) + - [OHOS::USB::UsbPipe](toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) + - [OmxCodecBuffer](toctopics/_omx_codec_buffer.md) + - [PortCap](toctopics/union_port_cap.md) + - [PresentTimestamp](toctopics/_present_timestamp.md) + - [PropertyObject](toctopics/_property_object.md) + - [RangeValue](toctopics/_range_value.md) + - [Rect](toctopics/_rect.md) + - [Rectangle](toctopics/_rectangle.md) + - [ScheduleInfo](toctopics/_schedule_info.md) + - [SensorEvents](toctopics/_sensor_events.md) + - [SensorInformation](toctopics/_sensor_information.md) + - [SensorInterface](toctopics/_sensor_interface.md) + - [StaInfo](toctopics/_sta_info.md) + - [SupportBufferType](toctopics/_support_buffer_type.md) + - [TemplateInfo](toctopics/_template_info.md) + - [ThermalZoneInfo](toctopics/_thermal_zone_info.md) + - [UseBufferType](toctopics/_use_buffer_type.md) + - [VerifyAllocInfo](toctopics/_verify_alloc_info.md) + - [VibratorInterface](toctopics/_vibrator_interface.md) + - [VideoPortCap](toctopics/_video_port_cap.md) + -- GitLab From 4adc575bc75492ab8ffd7c69205c6d884afed288 Mon Sep 17 00:00:00 2001 From: liuyaning6 Date: Thu, 7 Jul 2022 14:33:40 +0800 Subject: [PATCH 002/868] quickstart-lite-env-setup llvm 9.0.0 update to 12.0.1 Signed-off-by: liuyaning6 --- en/device-dev/quick-start/quickstart-lite-env-setup.md | 7 ++++--- zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/en/device-dev/quick-start/quickstart-lite-env-setup.md b/en/device-dev/quick-start/quickstart-lite-env-setup.md index bdbc5b70d3..0ed30ce269 100644 --- a/en/device-dev/quick-start/quickstart-lite-env-setup.md +++ b/en/device-dev/quick-start/quickstart-lite-env-setup.md @@ -379,18 +379,19 @@ Perform the following steps in Ubuntu: ### Installing LLVM (Only Required for OpenHarmony_v1.x) > ![icon-notice.gif](public_sys-resources/icon-notice.gif) **NOTICE**
-> When downloading source code under the OpenHarmony_v1.x branches or tags, perform the operation procedure described in this section to install LLVM 9.0.0. +> When downloading source code under the OpenHarmony_v1.x branches or tags, perform the operation procedure described in this section to install LLVM 12.0.1. > > When downloading source code under the Master or non-OpenHarmony_v1.x branches or tags, skip this section. hb will automatically download the latest version of LLVM. 1. Start a Linux server. -2. [Download LLVM](https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-9.0.0-36191.tar) +2. [Download LLVM](https://repo.huaweicloud.com/openharmony/compiler/clang/12.0.1-530132/linux/clang-530132-linux-x86_64.tar.bz2) 3. Decompress the LLVM installation package to **~/llvm**. ``` - tar -zxvf llvm.tar -C ~/ + tar -jxvf clang.tar.bz2 -C ~/ + mv ~/clang-530132/ ~/llvm ``` 4. Set the environment variable. diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md b/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md index dc9990c857..245dbeb7d3 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md @@ -386,18 +386,19 @@ bash build/prebuilts_download.sh ### 安装LLVM(仅OpenHarmony_v1.x分支/标签需要) > ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:** -> 如果下载的源码为OpenHarmony_v1.x分支/标签,请按下面的步骤安装9.0.0版本的llvm。 +> 如果下载的源码为OpenHarmony_v1.x分支/标签,请按下面的步骤安装12.0.1版本的llvm。 > > 如果下载的源码为Master及非OpenHarmony_v1.x分支/标签,可直接跳过本小节,hb会自动下载最新的llvm。 1. 打开Linux编译服务器终端。 -2. [下载LLVM工具](https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-9.0.0-36191.tar)。 +2. [下载LLVM工具](https://repo.huaweicloud.com/openharmony/compiler/clang/12.0.1-530132/linux/clang-530132-linux-x86_64.tar.bz2)。 3. 解压LLVM安装包至~/llvm路径下。 ``` - tar -zxvf llvm.tar -C ~/ + tar -jxvf clang.tar.bz2 -C ~/ + mv ~/clang-530132/ ~/llvm ``` 4. 设置环境变量。 -- GitLab From 1f1cdaca6063889b66fb56f17d2557198fd4fde2 Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 7 Jul 2022 11:06:00 +0000 Subject: [PATCH 003/868] =?UTF-8?q?=E8=A7=84=E8=8C=83=E6=80=A7=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E2=80=94=E2=80=94=E7=BC=BA=E5=B0=91=E6=8D=A2=E8=A1=8C?= =?UTF-8?q?=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/device-dev/driver/driver-hdf-overview.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zh-cn/device-dev/driver/driver-hdf-overview.md b/zh-cn/device-dev/driver/driver-hdf-overview.md index 601e10ee75..c5f99925f1 100755 --- a/zh-cn/device-dev/driver/driver-hdf-overview.md +++ b/zh-cn/device-dev/driver/driver-hdf-overview.md @@ -11,9 +11,11 @@ HDF(Hardware Driver Foundation)驱动框架,为驱动开发者提供驱动 HDF驱动加载包括按需加载和按序加载。 - 按需加载 + HDF框架支持驱动在系统启动过程中默认加载,或者在系统启动之后动态加载。 - 按序加载 + HDF框架支持驱动在系统启动的过程中按照驱动的优先级进行加载。 -- GitLab From 0546ba8635b2121f8664ddee0f4f721d448cf273 Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 7 Jul 2022 11:43:02 +0000 Subject: [PATCH 004/868] =?UTF-8?q?=E8=A7=84=E8=8C=83=E6=80=A7=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../driver/driver-hdf-development.md | 202 +++++++++--------- 1 file changed, 105 insertions(+), 97 deletions(-) diff --git a/zh-cn/device-dev/driver/driver-hdf-development.md b/zh-cn/device-dev/driver/driver-hdf-development.md index 49bd0a14ab..c1abcd7db0 100755 --- a/zh-cn/device-dev/driver/driver-hdf-development.md +++ b/zh-cn/device-dev/driver/driver-hdf-development.md @@ -3,7 +3,7 @@ ## 驱动模型介绍 -HDF(Hardware Driver Foundation)框架以组件化的驱动模型作为核心设计思路,为开发者提供更精细化的驱动管理,让驱动开发和部署更加规范。HDF框架将一类设备驱动放在同一个host里面,开发者也可以将驱动功能分层独立开发和部署,支持一个驱动多个node。HDF驱动模型如下图所示: +HDF(Hardware Driver Foundation)框架以组件化的驱动模型作为核心设计思路,为开发者提供更精细化的驱动管理,让驱动开发和部署更加规范。HDF框架将一类设备驱动放在同一个Host里面,开发者也可以将驱动功能分层独立开发和部署,支持一个驱动多个Node。HDF驱动模型如下图所示: **图1** HDF驱动模型 @@ -12,28 +12,28 @@ HDF(Hardware Driver Foundation)框架以组件化的驱动模型作为核心 ## 驱动开发步骤 -基于HDF框架进行驱动的开发主要分为两个部分,驱动实现和驱动配置。详细开发流程如下所示: +基于HDF框架的驱动开发主要分为三个部分:驱动实现、驱动编译和驱动配置。详细开发流程如下所示: 1. 驱动实现 - 驱动实现包含驱动业务代码和驱动入口注册,具体写法如下: + 驱动实现包含驱动业务代码实现和驱动入口注册,具体写法如下: - 驱动业务代码 ``` - #include "hdf_device_desc.h" // HDF框架对驱动开发相关能力接口的头文件 - #include "hdf_log.h" // HDF框架提供的日志接口头文件 + #include "hdf_device_desc.h" // HDF框架对驱动开发相关能力接口的头文件 + #include "hdf_log.h" // HDF框架提供的日志接口头文件 - #define HDF_LOG_TAG "sample_driver" // 打印日志所包含的标签,如果不定义则用默认定义的HDF_TAG标签 + #define HDF_LOG_TAG "sample_driver" // 打印日志所包含的标签,如果不定义则用默认定义的HDF_TAG标签。 - // 驱动对外提供的服务能力,将相关的服务接口绑定到HDF框架 + // 驱动对外提供的服务能力,将相关的服务接口绑定到HDF框架。 int32_t HdfSampleDriverBind(struct HdfDeviceObject *deviceObject) { HDF_LOGD("Sample driver bind success"); return 0; } - // 驱动自身业务初始的接口 + // 驱动自身业务初始化的接口 int32_t HdfSampleDriverInit(struct HdfDeviceObject *deviceObject) { HDF_LOGD("Sample driver Init success"); @@ -50,7 +50,7 @@ HDF(Hardware Driver Foundation)框架以组件化的驱动模型作为核心 - 驱动入口注册到HDF框架 ``` - // 定义驱动入口的对象,必须为HdfDriverEntry(在hdf_device_desc.h中定义)类型的全局变量 + // 定义驱动入口的对象,必须为HdfDriverEntry(在hdf_device_desc.h中定义)类型的全局变量。 struct HdfDriverEntry g_sampleDriverEntry = { .moduleVersion = 1, .moduleName = "sample_driver", @@ -59,93 +59,94 @@ HDF(Hardware Driver Foundation)框架以组件化的驱动模型作为核心 .Release = HdfSampleDriverRelease, }; - // 调用HDF_INIT将驱动入口注册到HDF框架中,在加载驱动时HDF框架会先调用Bind函数,再调用Init函数加载该驱动,当Init调用异常时,HDF框架会调用Release释放驱动资源并退出 + // 调用HDF_INIT将驱动入口注册到HDF框架中。在加载驱动时HDF框架会先调用Bind函数,再调用Init函数加载该驱动;当Init调用异常时,HDF框架会调用Release释放驱动资源并退出。 HDF_INIT(g_sampleDriverEntry); ``` 2. 驱动编译 - - liteos - 涉及makefile和BUILD.gn修改: + - LiteOS - - makefile部分: + 涉及Makefile和BUILD.gn修改: - 驱动代码的编译必须要使用HDF框架提供的Makefile模板进行编译。 + - Makefile部分: - - ``` - include $(LITEOSTOPDIR)/../../drivers/adapter/khdf/liteos/lite.mk #导入hdf预定义内容,必需 - MODULE_NAME := #生成的结果文件 - LOCAL_INCLUDE := #本驱动的头文件目录 - LOCAL_SRCS := #本驱动的源代码文件 - LOCAL_CFLAGS := #自定义的编译选项 - include $(HDF_DRIVER) #导入Makefile模板完成编译 - ``` + 驱动代码的编译必须要使用HDF框架提供的Makefile模板进行编译。 + + + ``` + include $(LITEOSTOPDIR)/../../drivers/adapter/khdf/liteos/lite.mk # 【必需】导入hdf预定义内容 + MODULE_NAME := #生成的结果文件 + LOCAL_INCLUDE := #本驱动的头文件目录 + LOCAL_SRCS := #本驱动的源代码文件 + LOCAL_CFLAGS := #自定义的编译选项 + include $(HDF_DRIVER) #导入Makefile模板完成编译 + ``` - 编译结果文件链接到内核镜像,添加到drivers/adapter/khdf/liteos目录下的hdf_lite.mk里面,示例如下: + 编译结果文件链接到内核镜像,添加到**drivers/adapter/khdf/liteos**目录下的**hdf_lite.mk**里面,示例如下: - ``` - LITEOS_BASELIB += -lxxx #链接生成的静态库 - LIB_SUBDIRS += #驱动代码Makefile的目录 - ``` + ``` + LITEOS_BASELIB += -lxxx #链接生成的静态库 + LIB_SUBDIRS += #驱动代码Makefile的目录 + ``` - - BUILD.gn部分: + - BUILD.gn部分: - 添加模块BUILD.gn参考定义如下内容: + 添加模块BUILD.gn参考定义如下内容: - ``` - import("//build/lite/config/component/lite_component.gni") - import("//drivers/adapter/khdf/liteos/hdf.gni") - module_switch = defined(LOSCFG_DRIVERS_HDF_xxx) - module_name = "xxx" - hdf_driver(module_name) { - sources = [ - "xxx/xxx/xxx.c", #模块要编译的源码文件 - ] - public_configs = [ ":public" ] #使用依赖的头文件配置 - } - config("public") { #定义依赖的头文件配置 - include_dirs = [ - "xxx/xxx/xxx", #依赖的头文件目录 - ] - } - ``` - - 把新增模块的BUILD.gn所在的目录添加到/drivers/adapter/khdf/liteos/BUILD.gn里面: + ``` + import("//build/lite/config/component/lite_component.gni") + import("//drivers/adapter/khdf/liteos/hdf.gni") + module_switch = defined(LOSCFG_DRIVERS_HDF_xxx) + module_name = "xxx" + hdf_driver(module_name) { + sources = [ + "xxx/xxx/xxx.c", #模块要编译的源码文件 + ] + public_configs = [ ":public" ] #使用依赖的头文件配置 + } + config("public") { #定义依赖的头文件配置 + include_dirs = [ + "xxx/xxx/xxx", #依赖的头文件目录 + ] + } + ``` + + 把新增模块的BUILD.gn所在的目录添加到**/drivers/adapter/khdf/liteos/BUILD.gn**里面: - ``` - group("liteos") { - public_deps = [ ":$module_name" ] - deps = [ - "xxx/xxx", #新增模块BUILD.gn所在的目录,目录结构相对于/drivers/adapter/khdf/liteos - ] - } - ``` - - linux - - 如果需要定义模块控制宏,需要在模块目录xxx里面添加Kconfig文件,并把Kconfig文件路径添加到drivers/adapter/khdf/linux/Kconfig里面: + ``` + group("liteos") { + public_deps = [ ":$module_name" ] + deps = [ + "xxx/xxx", #新增模块BUILD.gn所在的目录,目录结构相对于/drivers/adapter/khdf/liteos + ] + } + ``` + - Linux + + 如果需要定义模块控制宏,需要在模块目录xxx里面添加Kconfig文件,并把Kconfig文件路径添加到**drivers/adapter/khdf/linux/Kconfig**里面: - ``` - source "drivers/hdf/khdf/xxx/Kconfig" #目录为hdf模块软链接到kernel里面的目录 - ``` + ``` + source "drivers/hdf/khdf/xxx/Kconfig" #目录为hdf模块软链接到kernel里面的目录 + ``` - 添加模块目录到drivers/adapter/khdf/linux/Makefile: + 添加模块目录到**drivers/adapter/khdf/linux/Makefile**: - ``` - obj-$(CONFIG_DRIVERS_HDF) += xxx/ - ``` + ``` + obj-$(CONFIG_DRIVERS_HDF) += xxx/ + ``` - 在模块目录xxx里面添加Makefile文件,在Makefile文件里面添加模块代码编译规则: + 在模块目录xxx里面添加Makefile文件,在Makefile文件里面添加模块代码编译规则: - ``` - obj-y += xxx.o - ``` + ``` + obj-y += xxx.o + ``` 3. 驱动配置 @@ -155,19 +156,19 @@ HDF(Hardware Driver Foundation)框架以组件化的驱动模型作为核心 - 驱动设备描述(必选) - HDF框架加载驱动所需要的信息来源于HDF框架定义的驱动设备描述,因此基于HDF框架开发的驱动必须要在HDF框架定义的device_info.hcs配置文件中添加对应的设备描述,驱动的设备描述填写如下所示: + HDF框架加载驱动所需要的信息来源于HDF框架定义的驱动设备描述,因此基于HDF框架开发的驱动必须要在HDF框架定义的device_info.hcs配置文件中添加对应的设备描述。驱动的设备描述填写如下所示: ``` root { device_info { match_attr = "hdf_manager"; - template host { // host模板,继承该模板的节点(如下sample_host)如果使用模板中的默认值,则节点字段可以缺省 + template host { // host模板,继承该模板的节点(如下sample_host)如果使用模板中的默认值,则节点字段可以缺省。 hostName = ""; priority = 100; - uid = ""; // 用户态进程uid,缺省为空,会被配置为hostName的定义值,即普通用户 - gid = ""; // 用户态进程gid,缺省为空,会被配置为hostName的定义值,即普通用户组 - caps = [""]; // 用户态进程Linux capabilities配置,缺省为空,需要业务模块按照业务需要进行配置 + uid = ""; // 用户态进程uid,缺省为空,会被配置为hostName的定义值,即普通用户。 + gid = ""; // 用户态进程gid,缺省为空,会被配置为hostName的定义值,即普通用户组。 + caps = [""]; // 用户态进程Linux capabilities配置,缺省为空,需要业务模块按照业务需要进行配置。 template device { template deviceNode { policy = 0; @@ -181,39 +182,41 @@ HDF(Hardware Driver Foundation)框架以组件化的驱动模型作为核心 } } sample_host :: host{ - hostName = "host0"; // host名称,host节点是用来存放某一类驱动的容器 - priority = 100; // host启动优先级(0-200),值越大优先级越低,建议默认配100,优先级相同则不保证host的加载顺序 - caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"]; // 用户态进程Linux capabilities配置 + hostName = "host0"; // host名称,host节点是用来存放某一类驱动的容器。 + priority = 100; // host启动优先级(0-200),值越大优先级越低,建议默认配100,优先级相同则不保证host的加载顺序。 + caps = ["DAC_OVERRIDE", "DAC_READ_SEARCH"]; // 用户态进程Linux capabilities配置。 device_sample :: device { // sample设备节点 device0 :: deviceNode { // sample驱动的DeviceNode节点 - policy = 1; // policy字段是驱动服务发布的策略,在驱动服务管理章节有详细介绍 - priority = 100; // 驱动启动优先级(0-200),值越大优先级越低,建议默认配100,优先级相同则不保证device的加载顺序 - preload = 0; // 驱动按需加载字段,在本章节最后的说明有详细介绍 + policy = 1; // policy字段是驱动服务发布的策略,在驱动服务管理章节有详细介绍。 + priority = 100; // 驱动启动优先级(0-200),值越大优先级越低,建议默认配100,优先级相同则不保证device的加载顺序。 + preload = 0; // 驱动按需加载字段,在本章节最后的说明有详细介绍。 permission = 0664; // 驱动创建设备节点权限 - moduleName = "sample_driver"; // 驱动名称,该字段的值必须和驱动入口结构的moduleName值一致 - serviceName = "sample_service"; // 驱动对外发布服务的名称,必须唯一 - deviceMatchAttr = "sample_config"; // 驱动私有数据匹配的关键字,必须和驱动私有数据配置表中的match_attr值相等 + moduleName = "sample_driver"; // 驱动名称,该字段的值必须和驱动入口结构的moduleName值一致。 + serviceName = "sample_service"; // 驱动对外发布服务的名称,必须唯一。 + deviceMatchAttr = "sample_config"; // 驱动私有数据匹配的关键字,必须和驱动私有数据配置表中的match_attr值相等。 } } } } } ``` - 说明: - - uid、gid、caps等配置项是用户态驱动的启动配置,内核态不用配置。 - - 根据进程权限最小化设计原则,业务模块uid、gid不用配置,如上面的sample_host,使用普通用户权限,即uid和gid被定义为hostName的定义值。 - - 如果普通用户权限不能满足业务要求,需要把uid、gid定义为system或者root权限时,请找安全专家进行评审。 - - 进程的uid在文件base/startup/init_lite/services/etc/passwd中配置,进程的gid在文件base/startup/init_lite/services/etc/group中配置,进程uid和gid配置参考:[系统服务用户组添加方法](https://gitee.com/openharmony/startup_init_lite/wikis)。 + + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+ > + > - uid、gid、caps等配置项是用户态驱动的启动配置,内核态不用配置。 + > + > - 根据进程权限最小化设计原则,业务模块uid、gid不用配置,如上面的sample_host,使用普通用户权限,即uid和gid被定义为hostName的定义值。 + > + > - 如果普通用户权限不能满足业务要求,需要把uid、gid定义为system或者root权限时,请找安全专家进行评审。 + > + > - 进程的uid在文件**base/startup/init_lite/services/etc/passwd**中配置,进程的gid在文件**base/startup/init_lite/services/etc/group**中配置,进程uid和gid配置参考:[系统服务用户组添加方法](https://gitee.com/openharmony/startup_init_lite/wikis)。 + > + > - caps值:比如业务模块要配置CAP_DAC_OVERRIDE,此处需要填写caps = ["DAC_OVERRIDE"],不能填写为caps = ["CAP_DAC_OVERRIDE"]。 - caps值:比如业务模块要配置CAP_DAC_OVERRIDE,此处需要填写 caps = ["DAC_OVERRIDE"],不能填写为caps = ["CAP_DAC_OVERRIDE"]。 - 驱动私有配置信息(可选) - 如果驱动有私有配置,则可以添加一个驱动的配置文件,用来填写一些驱动的默认配置信息,HDF框架在加载驱动的时候,会将对应的配置信息获取并保存在HdfDeviceObject中的property里面,通过Bind和Init(参考步骤1)传递给驱动,驱动的配置信息示例如下: + 如果驱动有私有配置,则可以添加一个驱动的配置文件,用来填写一些驱动的默认配置信息。HDF框架在加载驱动的时候,会将对应的配置信息获取并保存在HdfDeviceObject中的property里面,通过Bind和Init(参考步骤1)传递给驱动。驱动的配置信息示例如下: ``` @@ -249,7 +252,12 @@ HDF(Hardware Driver Foundation)框架以组件化的驱动模型作为核心 > } DevicePreload; > ``` > -> 配置文件中preload字段配成0(DEVICE_PRELOAD_ENABLE),则系统启动过程中默认加载;配成1(DEVICE_PRELOAD_ENABLE_STEP2),当系统支持快启的时候,则在系统完成之后再加载这一类驱动,否则和DEVICE_PRELOAD_ENABLE含义相同;配成2(DEVICE_PRELOAD_DISABLE),则系统启动过程中默认不加载,支持后续动态加载,当用户态获取驱动服务(参考[消息机制](../driver/driver-hdf-message-management.md))时,如果驱动服务不存在,HDF框架会尝试动态加载该驱动。 +> - 配置文件中preload字段配成0(DEVICE_PRELOAD_ENABLE),则系统启动过程中默认加载。 +> +> - 配成1(DEVICE_PRELOAD_ENABLE_STEP2),当系统支持快启的时候,则在系统完成之后再加载这一类驱动,否则和DEVICE_PRELOAD_ENABLE含义相同。 +> +> - 配成2(DEVICE_PRELOAD_DISABLE),则系统启动过程中默认不加载,支持后续动态加载,当用户态获取驱动服务(参考[消息机制](../driver/driver-hdf-message-management.md))时,如果驱动服务不存在,HDF框架会尝试动态加载该驱动。 > > - 按序加载(需要驱动为默认加载) +> > 配置文件中的priority(取值范围为整数0到200)是用来表示host和驱动的优先级。不同的host内的驱动,host的priority值越小,驱动加载优先级越高;同一个host内驱动的priority值越小,加载优先级越高。 -- GitLab From 6d4743720f94b129d8e41541eaed06c756485591 Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 7 Jul 2022 11:52:27 +0000 Subject: [PATCH 005/868] =?UTF-8?q?=E8=A7=84=E8=8C=83=E6=80=A7=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../driver/driver-hdf-servicemanage.md | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/zh-cn/device-dev/driver/driver-hdf-servicemanage.md b/zh-cn/device-dev/driver/driver-hdf-servicemanage.md index 66ea6eaa54..37f57ad77d 100755 --- a/zh-cn/device-dev/driver/driver-hdf-servicemanage.md +++ b/zh-cn/device-dev/driver/driver-hdf-servicemanage.md @@ -4,7 +4,7 @@ 驱动服务是HDF驱动设备对外提供能力的对象,由HDF框架统一管理。驱动服务管理主要包含驱动服务的发布和获取。 -HDF框架定义了驱动对外发布服务的策略,是由配置文件中的policy字段来控制,policy字段的取值范围以及含义如下: +HDF框架定义了驱动对外发布服务的策略,由配置文件中的policy字段来控制,policy字段的取值范围以及含义如下: @@ -39,26 +39,26 @@ typedef enum { | 方法 | 描述 | | -------- | -------- | -| int32_t (\*Bind)(struct HdfDeviceObject \*deviceObject); | 需要驱动开发者实现Bind函数,将自己的服务接口绑定到HDF框架中。 | -| const struct HdfObject \*DevSvcManagerClntGetService(const char \*svcName); | 获取驱动的服务。 | -| int HdfDeviceSubscribeService(
struct HdfDeviceObject \*deviceObject, const char \*serviceName, struct SubscriberCallback callback); | 订阅驱动的服务。 | +| int32_t (\*Bind)(struct HdfDeviceObject \*deviceObject) | 需要驱动开发者实现Bind函数,将自己的服务接口绑定到HDF框架中。 | +| const struct HdfObject \*DevSvcManagerClntGetService(const char \*svcName)| 获取驱动的服务。 | +|int HdfDeviceSubscribeService(
struct HdfDeviceObject \*deviceObject, const char \*serviceName, struct SubscriberCallback callback) | 订阅驱动的服务。 | ## 开发步骤 驱动服务管理的开发包括驱动服务的编写、绑定、获取或者订阅,详细步骤如下。 -1. 驱动服务发布。 +1. 驱动服务编写。 ``` - 驱动服务结构的定义 + // 驱动服务结构的定义 struct ISampleDriverService { - struct IDeviceIoService ioService; // 服务结构的首个成员必须是IDeviceIoService类型的成员 - int32_t (*ServiceA)(void); // 驱动的第一个服务接口 - int32_t (*ServiceB)(uint32_t inputCode); // 驱动的第二个服务接口,有多个可以依次往下累加 + struct IDeviceIoService ioService; // 服务结构的首个成员必须是IDeviceIoService类型的成员。 + int32_t (*ServiceA)(void); // 驱动的第一个服务接口。 + int32_t (*ServiceB)(uint32_t inputCode); // 驱动的第二个服务接口,有多个可以依次往下累加。 }; - 驱动服务接口的实现 + // 驱动服务接口的实现 int32_t SampleDriverServiceA(void) { // 驱动开发者实现业务逻辑 @@ -77,7 +77,7 @@ typedef enum { ``` int32_t SampleDriverBind(struct HdfDeviceObject *deviceObject) { - // deviceObject为HDF框架给每一个驱动创建的设备对象,用来保存设备相关的私有数据和服务接口 + // deviceObject为HDF框架给每一个驱动创建的设备对象,用来保存设备相关的私有数据和服务接口。 if (deviceObject == NULL) { HDF_LOGE("Sample device object is null!"); return -1; @@ -92,10 +92,11 @@ typedef enum { ``` 3. 驱动服务获取。 - 驱动服务的获取有两种方式,HDF框架提供接口直接获取和HDF框架提供订阅机制获取。 + 驱动服务的获取有两种方式,HDF框架提供接口直接获取和订阅机制获取。 - 通过HDF接口直接获取 - 当明确驱动已经加载完成时,获取该驱动的服务可以通过HDF框架提供的能力接口直接获取,如下所示: + + 当明确驱动已经加载完成时,获取该驱动的服务可以通过HDF框架提供的能力接口直接获取,如下所示: ``` @@ -108,7 +109,8 @@ typedef enum { sampleService->ServiceB(5); ``` - 通过HDF提供的订阅机制获取 - 当内核态对驱动(同一个host)加载的时机不感知时,可以通过HDF框架提供的订阅机制来订阅该驱动,当该驱动加载完成时,HDF框架会将被订阅的驱动服务发布给订阅者,实现方式如下所示: + + 当内核态对驱动(同一个host)加载的时机不感知时,可以通过HDF框架提供的订阅机制来订阅该驱动。当该驱动加载完成时,HDF框架会将被订阅的驱动服务发布给订阅者,实现方式如下所示: ``` -- GitLab From 196a3cb7d1245137f76a3662309617717dbd2ba8 Mon Sep 17 00:00:00 2001 From: wusongqing Date: Mon, 11 Jul 2022 08:26:27 +0000 Subject: [PATCH 006/868] =?UTF-8?q?=E3=80=90=E6=96=87=E6=A1=A3=E4=BD=93?= =?UTF-8?q?=E9=AA=8C=E5=AE=98=E3=80=91fa-dataability.md=E5=8E=BB=E6=8E=89H?= =?UTF-8?q?armonyOS=20Signed-off-by:=20wusongqing=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/application-dev/ability/fa-dataability.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/zh-cn/application-dev/ability/fa-dataability.md b/zh-cn/application-dev/ability/fa-dataability.md index 67dcdd8c71..5ec1135c9c 100644 --- a/zh-cn/application-dev/ability/fa-dataability.md +++ b/zh-cn/application-dev/ability/fa-dataability.md @@ -1,12 +1,14 @@ # DataAbility开发指导 + ## 场景介绍 + 基于Data模板的Ability(以下简称“Data”),有助于应用管理其自身和其他应用存储数据的访问,并提供与其他应用共享数据的方法。Data既可用于同设备不同应用的数据共享,也支持跨设备不同应用的数据共享。 Data提供方可以自定义数据的增、删、改、查,以及文件打开等功能,并对外提供这些接口。 ## URI介绍 -Data的提供方和使用方都通过URI(Uniform Resource Identifier)来标识一个具体的数据,例如数据库中的某个表或磁盘上的某个文件。HarmonyOS的URI仍基于URI通用标准,格式如下: +Data的提供方和使用方都通过URI(Uniform Resource Identifier)来标识一个具体的数据,例如数据库中的某个表或磁盘上的某个文件。OpenHarmony的URI仍基于URI通用标准,格式如下: ![fa-dataability-uri](figures/fa-dataability-uri.png) @@ -21,10 +23,9 @@ URI示例: - 跨设备场景:dataability://*device_id*/*com.domainname.dataability.persondata*/*person*/*10* - 本地设备:dataability:///*com.domainname.dataability.persondata*/*person*/*10* -``` -说明 -本地设备的“device_id”字段为空,因此在“dataability:”后面有三个“/”。 -``` +> 说明 +> +> 本地设备的“device_id”字段为空,因此在“dataability:”后面有三个“/”。 ## 接口说明 -- GitLab From 6dfdbade63310bfd79c764581d72cdfdd9624790 Mon Sep 17 00:00:00 2001 From: clevercong Date: Tue, 12 Jul 2022 11:06:50 +0800 Subject: [PATCH 007/868] add telephony system api js docs. Signed-off-by: clevercong --- .../reference/apis/js-apis-call.md | 2653 ++++++++++++++++- .../reference/apis/js-apis-radio.md | 924 +++++- .../reference/apis/js-apis-sim.md | 1428 ++++++++- .../reference/apis/js-apis-sms.md | 1138 ++++++- .../reference/apis/js-apis-telephony-data.md | 236 +- 5 files changed, 6245 insertions(+), 134 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-call.md b/zh-cn/application-dev/reference/apis/js-apis-call.md index 4b67f61a0c..8814076563 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-call.md +++ b/zh-cn/application-dev/reference/apis/js-apis-call.md @@ -514,15 +514,2267 @@ promise.then(data => { }); ``` +## call.muteRinger8+ + +muteRinger\(callback: AsyncCallback\): void + +静音铃声。使用callback异步回调。 + +如果来电铃声响起,手机将停止铃声。否则,此方法不起作用。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ----------- | ------------------------- | ---- | ---------- | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.muteRinger((err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.muteRinger8+ + +muteRinger\(\): Promise + +静音铃声。使用Promise异步回调。 + +如果来电铃声响起,手机将停止铃声。否则,此方法不起作用。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CallManager + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.muteRinger(); +promise.then(data => { + console.log(`muteRinger success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`muteRinger fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.answer7+ + +answer\(callback: AsyncCallback\): void + +接听来电。使用callback异步回调。 + +指示呼叫应答的标识符。自API 9起,它是可选的 + +此接口为系统接口。 + +**需要权限**:ohos.permission.ANSWER_CALL + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ---------- | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.answer((err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.answer7+ + +answer\(callId: number, callback: AsyncCallback\): void + +接听来电。使用callback异步回调。 + +指示呼叫应答的标识符。自API 9起,它是可选的 + +此接口为系统接口。 + +**需要权限**:ohos.permission.ANSWER_CALL + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ---------- | +| callId | number | 是 | 呼叫Id。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.dial(1, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.answer7+ + +answer(callId?: number\): Promise + +接听来电。使用Promise异步回调。 + +指示呼叫应答的标识符。自API 9起,它是可选的 + +此接口为系统接口。 + +**需要权限**:ohos.permission.ANSWER_CALL + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------- | +| callId | number | 是 | 呼叫Id。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.answer(1); +promise.then(data => { + console.log(`answer success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`answer fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.hangup7+ + +hangup\(callback: AsyncCallback\): void + +挂断电话。使用callback异步回调。 + +指示挂断呼叫的标识符。自API 9以来,它是可选的。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ---------- | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.hangup((err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.hangup7+ + +hangup\(callId: number, callback: AsyncCallback\): void + +挂断电话。使用callback异步回调。 + +指示挂断呼叫的标识符。自API 9以来,它是可选的。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ---------- | +| callId | number | 是 | 呼叫id。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.hangup(1, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.hangup7+ + +hangup\(callId?: number\): Promise + +挂断电话。使用Promise异步回调。 + +指示挂断呼叫的标识符。自API 9以来,它是可选的。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------- | +| callId | number | 是 | 呼叫id。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.hangup(1); +promise.then(data => { + console.log(`hangup success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`hangup fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.reject7+ + +reject\(callback: AsyncCallback\): void + +拒绝来电。使用callback异步回调。 + +指示要拒绝的调用的标识符。自API 9以来,它是可选的。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ---------- | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.reject((err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.reject7+ + +reject\(options: RejectMessageOptions, callback: AsyncCallback\): void + +拒绝来电。使用callback异步回调。 + +指示要拒绝的调用的标识符。自API 9以来,它是可选的。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------------------------- | ---- | -------------- | +| options | [RejectMessageOptions](#RejectMessageOptions) | 是 | 拒绝消息选项。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +let rejectMessageOptions={ + messageContent: "拦截陌生号码" +} +call.reject(rejectMessageOptions, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.reject7+ + +reject(callId: number, callback: AsyncCallback): + +拒绝来电。使用callback异步回调。 + +指示要拒绝的调用的标识符。自API 9以来,它是可选的。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ---------- | +| callId | number | 是 | 呼叫Id。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.reject(1); +promise.then(data => { + console.log(`reject success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`reject fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.reject7+ + +reject\(callId: number, options: RejectMessageOption, callback: AsyncCallback\): void + +拒绝来电。使用callback异步回调。 + +指示要拒绝的调用的标识符。自API 9以来,它是可选的。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------------------------- | ---- | -------------- | +| callId | number | 是 | 呼叫Id。 | +| options | [RejectMessageOptions](#RejectMessageOptions) | 是 | 拒绝消息选项。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +let rejectMessageOptions={ + messageContent: "拦截陌生号码" +} +call.reject(1, rejectMessageOptions, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.reject7+ + +reject(callId?: number, options?: RejectMessageOptions\): Promise + +拒绝来电。使用Promise异步回调。 + +指示要拒绝的调用的标识符。自API 9以来,它是可选的。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | --------------------------------------------- | ---- | -------------- | +| callId | number | 否 | 呼叫Id。 | +| options | [RejectMessageOptions](#RejectMessageOptions) | 否 | 拒绝消息选项。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let rejectMessageOptions={ + messageContent: "拦截陌生号码" +} +let promise = call.reject(1, rejectMessageOptions); +promise.then(data => { + console.log(`reject success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`reject fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.holdCall7+ + +holdCall\(callId: number, callback: AsyncCallback\): void + +保持通话。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ---------- | +| callId | number | 是 | 呼叫Id。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.holdCall(1, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.holdCall7+ + +holdCall\(callId: number\): Promise + +保持通话。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------- | +| callId | number | 是 | 呼叫Id。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.holdCall(1); +promise.then(data => { + console.log(`holdCall success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`holdCall fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.unHoldCall7+ + +unHoldCall\(callId: number, callback: AsyncCallback\): void + +取消保持通话。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ---------- | +| callId | number | 是 | 呼叫Id。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.unHoldCall(1, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.unHoldCall7+ + +unHoldCall\(callId: number\): Promise + +取消保持通话。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------- | +| callId | number | 是 | 呼叫Id。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.unHoldCall(1); +promise.then(data => { + console.log(`unHoldCall success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`unHoldCall fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.switchCall7+ + +switchCall\(callId: number, callback: AsyncCallback\): void + +切换呼叫。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ---------- | +| callId | number | 是 | 呼叫Id。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.switchCall(1, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.switchCall7+ + +switchCall\(callId: number\): Promise + +切换呼叫。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------- | +| callId | number | 是 | 呼叫Id。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.switchCall(1); +promise.then(data => { + console.log(`switchCall success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`switchCall fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.combineConference7+ + +combineConference\(callId: number, callback: AsyncCallback\): void + +组合会议。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ---------- | +| callId | number | 是 | 呼叫Id。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.combineConference(1, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.combineConference7+ + +combineConference\(callId: number\): Promise + +组合会议。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------- | +| callId | number | 是 | 呼叫Id。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.combineConference(1); +promise.then(data => { + console.log(`combineConference success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`combineConference fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.getMainCallId7+ + +getMainCallId\(callId: number, callback: AsyncCallback\): void + +获取主呼叫Id。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------- | ---- | ------------------------ | +| callId | number | 是 | 呼叫Id。 | +| callback | AsyncCallback<number> | 是 | 回调函数。返回主呼叫Id。 | + +**示例:** + +```js +call.getMainCallId(1, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.getMainCallId7+ + +getMainCallId\(callId: number\): Promise + +获取主呼叫Id。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------- | +| callId | number | 是 | 呼叫Id。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | ------------------------------- | +| Promise<void> | 以Promise形式异步返回主呼叫Id。 | + +**示例:** + +```js +let promise = call.getMainCallId(1); +promise.then(data => { + console.log(`getMainCallId success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`getMainCallId fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.getSubCallIdList7+ + +getSubCallIdList\(callId: number, callback: AsyncCallback\>\): void + +获取子呼叫Id列表。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------ | ---- | ---------------------------- | +| callId | number | 是 | 呼叫Id。 | +| callback | AsyncCallback\> | 是 | 回调函数。返回子呼叫Id列表。 | + +**示例:** + +```js +call.getSubCallIdList(1, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.getSubCallIdList7+ + +getSubCallIdList\(callId: number\): Promise\> + +获取子呼叫Id列表。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------- | +| callId | number | 是 | 呼叫Id。 | + +**返回值:** + +| 类型 | 说明 | +| ----------------------------- | ----------------------------------- | +| Promise<Array> | 以Promise形式异步返回子呼叫Id列表。 | + +**示例:** + +```js +let promise = call.getSubCallIdList(1); +promise.then(data => { + console.log(`getSubCallIdList success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`getSubCallIdList fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.getCallIdListForConference7+ + +getCallIdListForConference\(callId: number, callback: AsyncCallback**<**Array>\): void + +获取会议的呼叫Id列表。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------- | ---- | -------------------------------- | +| callId | number | 是 | 呼叫Id。 | +| callback | AsyncCallback<Array> | 是 | 回调函数。返回会议的呼叫Id列表。 | + +**示例:** + +```js +call.getCallIdListForConference(1, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.getCallIdListForConference7+ + +getCallIdListForConference\(callId: number\): Promise\> + +获取会议的呼叫Id列表。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------- | +| callId | number | 是 | 呼叫Id。 | + +**返回值:** + +| 类型 | 说明 | +| ----------------------------- | --------------------------------------- | +| Promise<Array> | 以Promise形式异步返回会议的呼叫Id列表。 | + +**示例:** + +```js +let promise = call.getCallIdListForConference(1); +promise.then(data => { + console.log(`getCallIdListForConference success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`getCallIdListForConference fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.getCallWaitingStatus7+ + +getCallWaitingStatus\(slotId: number, callback: AsyncCallback**<**CallWaitingStatus>\): void + +获取呼叫等待状态。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback\> | 是 | 回调函数。返回呼叫等待状态。 | + +**示例:** + +```js +call.getCallWaitingStatus(0, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.getCallWaitingStatus7+ + +getCallWaitingStatus\(slotId: number\): Promise + +获取呼叫等待状态。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------------- | ----------------------------------- | +| Promise<[CallWaitingStatus](#CallWaitingStatus7)> | 以Promise形式异步返回呼叫等待状态。 | + +**示例:** + +```js +let promise = call.getCallWaitingStatus(0); +promise.then(data => { + console.log(`getCallWaitingStatus success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`getCallWaitingStatus fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.setCallWaiting7+ + +setCallWaiting\(slotId: number, activate: boolean, callback: AsyncCallback\): void + +设置呼叫等待。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| activate | boolean | 是 | 是否激活。 | +| callback | AsyncCallback\> | 是 | 回调函数。 | + +**示例:** + +```js +call.setCallWaiting(0, true, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.setCallWaiting7+ + +setCallWaiting\(slotId: number, activate: boolean\): Promise + +设置呼叫等待。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| activate | boolean | 是 | 是否激活。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.setCallWaiting(0, true); +promise.then(data => { + console.log(`setCallWaiting success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`setCallWaiting fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.startDTMF7+ + +startDTMF\(callId: number, character: string, callback: AsyncCallback\): void + +启动双音多频。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------- | -------------------- | ---- | ---------- | +| callId | number | 是 | 呼叫Id。 | +| character | string | 是 | DTMF码。 | +| callback | AsyncCallback | 是 | 回调函数。 | + +**示例:** + +```js +call.startDTMF(1, "0", (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.startDTMF7+ + +startDTMF\(callId: number, character: string\): Promise + +启动双音多频。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------- | ------ | ---- | -------- | +| callId | number | 是 | 呼叫Id。 | +| character | string | 是 | DTMF码。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | ----------------------- | +| Promise<void> | 以Promise形式异步返回。 | + +**示例:** + +```js +let promise = call.startDTMF(1, "0"); +promise.then(data => { + console.log(`startDTMF success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`startDTMF fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.stopDTMF7+ + +stopDTMF\(callId: number, callback: AsyncCallback\): void + +停止双音多频。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ---------- | +| callId | number | 是 | 呼叫Id。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.stopDTMF(1, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.stopDTMF7+ + +stopDTMF\(callId: number\): Promise + +停止双音多频。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------- | +| callId | number | 是 | 呼叫Id。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.stopDTMF(1); +promise.then(data => { + console.log(`stopDTMF success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`stopDTMF fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.isInEmergencyCall7+ + +isInEmergencyCall\(callback: AsyncCallback\): void + +判断是否正在处于紧急呼叫。使用callback异步回调。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------- | ---- | ---------- | +| callback | AsyncCallback<boolean> | 是 | 回调函数。 | + +**示例:** + +```js +call.isInEmergencyCall((err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.isInEmergencyCall7+ + +isInEmergencyCall\(\): Promise + +判断是否正在处于紧急呼叫。使用Promise异步回调。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CallManager + +**返回值:** + +| 类型 | 说明 | +| ---------------------- | --------------------------- | +| Promise<boolean> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.isInEmergencyCall(); +promise.then(data => { + console.log(`isInEmergencyCall success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`isInEmergencyCall fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.on7+ + +on\(type: 'callDetailsChange', callback: Callback**<**CallAttributeOptions>\): void + +订阅callDetailsChange事件。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------------------------------- | ---- | ---------------- | +| type | 'callDetailsChange' | 是 | 调用的细节变化。 | +| callback | Callback**<**[CallAttributeOptions](#CallAttributeOptions)> | 是 | 回调函数。 | + +**示例:** + +```js +call.on('callDetailsChange', (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## call.on8+ + +on\(type: 'callEventChange', callback: Callback**<**CallEventOptions>\): void + +订阅callEventChange事件。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------------------------------- | ---- | -------------- | +| type | 'callEventChange' | 是 | 调用事件改变。 | +| callback | Callback**<**[CallEventOptions](#CallEventOptions)> | 是 | 回调函数。 | + +**示例:** + +```js +call.on('callEventChange', (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## call.on8+ + +on\(type: 'callDisconnectedCause', callback: Callback**<**DisconnectedDetails>\): void + +订阅callDisconnectedCause事件。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------------------------- | ---- | -------------------- | +| type | 'callDisconnectedCause' | 是 | 调用断开连接的原因。 | +| callback | Callback**<**[DisconnectedDetails](#DisconnectedDetails8)> | 是 | 回调函数。 | + +**示例:** + +```js +call.on('callDisconnectedCause', (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## call.on9+ + +on\(type: 'mmiCodeResult', callback: Callback\): void + +订阅mmiCodeResult事件。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------ | ---- | ----------- | +| type | 'mmiCodeResult' | 是 | MMI码结果。 | +| callback | Callback**<**[MmiCodeResults](#MmiCodeResults9)> | 是 | 回调函数。 | + +**示例:** + +```js +isNewCallAllowedcall.on('mmiCodeResult', (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## call.off7+ + +off\(type: 'callDetailsChange', callback?: Callback**<**CallAttributeOptions>\): void + +取消订阅callDetailsChange事件。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------------------------------- | ---- | ---------------- | +| type | 'callDetailsChange' | 是 | 调用的细节变化。 | +| callback | Callback**<**[CallAttributeOptions](#CallAttributeOptions)> | 否 | 回调函数。 | + +**示例:** + +```js +call.off('callDetailsChange', (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## call.off8+ + +off\(type: 'callEventChange', callback?: Callback\): void + +取消订阅callEventChange事件。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------------------------------- | ---- | -------------- | +| type | 'callEventChange' | 是 | 调用事件改变。 | +| callback | Callback**<**[CallEventOptions](#CallEventOptions)> | 否 | 回调函数。 | + +**示例:** + +```js +call.off('callEventChange', (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## call.off8+ + +off\(type: 'callDisconnectedCause', callback?: Callback**<**DisconnectedDetails>\): void + +取消订阅callDisconnectedCause事件。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------------------------- | ---- | -------------------- | +| type | 'callDisconnectedCause' | 是 | 调用断开连接的原因。 | +| callback | Callback**<**[DisconnectedDetails](#DisconnectedDetails8)> | 否 | 回调函数。 | + +**示例:** + +```js +call.off('callDisconnectedCause', (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## call.off9+ + +off\(type: 'mmiCodeResult', callback?: Callback\): void + +取消订阅mmiCodeResult事件。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------ | ---- | ----------- | +| type | 'mmiCodeResult' | 是 | MMI码结果。 | +| callback | Callback**<**[MmiCodeResults](#MmiCodeResults9)> | 否 | 回调函数。 | + +**示例:** + +```js +call.off('mmiCodeResult', (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## call.isNewCallAllowed8+ + +isNewCallAllowed\(callback: AsyncCallback\): void + +是否允许新通话。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------- | ---- | ---------- | +| callback | AsyncCallback<boolean> | 是 | 回调函数。 | + +**示例:** + +```js +call.isNewCallAllowed((err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.isNewCallAllowed8+ + +isNewCallAllowed\(\): Promise + +是否允许新通话。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**返回值:** + +| 类型 | 说明 | +| ---------------------- | --------------------------- | +| Promise<boolean> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.isNewCallAllowed(); +promise.then(data => { + console.log(`isNewCallAllowed success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`isNewCallAllowed fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.separateConference8+ + +separateConference\(callId: number, callback: AsyncCallback\): void + +分离会议。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ---------- | +| callId | number | 是 | 呼叫Id。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.separateConference(1, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.separateConference8+ + +separateConference\(callId: number\): Promise + +分离会议。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------- | +| callId | number | 是 | 呼叫Id。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.separateConference(1); +promise.then(data => { + console.log(`separateConference success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`separateConference fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.getCallRestrictionStatus8+ + +getCallRestrictionStatus\(slotId: number, type: CallRestrictionType, callback: AsyncCallback\): void + +获取呼叫限制状态。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------------------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| type | [CallRestrictionType](#CallRestrictionType8) | 是 | 呼叫限制类型。 | +| callback | AsyncCallback<[RestrictionStatus](#RestrictionStatus8)> | 是 | 回调函数。返回限制状态。 | + +**示例:** + +```js +call.getCallRestrictionStatus(0, 1, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.getCallRestrictionStatus8+ + +getCallRestrictionStatus\(slotId: number, type: CallRestrictionType\): Promise + +获取呼叫限制状态。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | -------------------------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| type | [CallRestrictionType](#CallRestrictionType8) | 是 | 呼叫限制类型。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------------- | --------------------------- | +| Promise<[RestrictionStatus](#RestrictionStatus8)> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.getCallRestrictionStatus(0, 1); +promise.then(data => { + console.log(`getCallRestrictionStatus success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`getCallRestrictionStatus fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.setCallRestriction8+ + +setCallRestriction\(slotId: number, info: CallRestrictionInfo, callback: AsyncCallback\): void + +设置呼叫限制状态。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| info | [CallRestrictionInfo](#CallRestrictionInfo) | 是 | 呼叫限制信息。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +let callRestrictionInfo={ + type: 1, + password: "123456", + mode: 1 +} +call.setCallRestriction(0, callRestrictionInfo, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.setCallRestriction8+ + +setCallRestriction\(slotId: number, info: CallRestrictionInfo\): Promise + +设置呼叫限制状态。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------------------------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| info | [CallRestrictionInfo](#CallRestrictionInfo) | 是 | 呼叫限制信息。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let callRestrictionInfo={ + type: 1, + password: "123456", + mode: 1 +} +let promise = call.setCallRestriction(0, callRestrictionInfo); +promise.then(data => { + console.log(`setCallRestriction success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`setCallRestriction fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.getCallTransferInfo8+ + +getCallTransferInfo\(slotId: number, type: CallTransferType, callback: AsyncCallback\): void + +获取呼叫转移信息。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------------------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| type | [CallTransferType](#CallTransferType8) | 是 | 呼叫转移类型。 | +| callback | AsyncCallback<[CallTransferResult](#CallTransferResult)> | 是 | 回调函数。返回呼叫转移信息。 | + +**示例:** + +```js +let callTransferTyp={ + CallTransferType: 1 +} +call.getCallTransferInfo(0, callTransferTyp, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.getCallTransferInfo8+ + +getCallTransferInfo\(slotId: number, type: CallTransferType): Promise + +获取呼叫转移信息。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | -------------------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| type | [CallTransferType](#CallTransferType8) | 是 | 呼叫转移类型。 | + +**返回值:** + +| 类型 | 说明 | +| -------------------------------------------------------- | --------------------------- | +| Promise<[CallTransferResult](#CallTransferResult)> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let callTransferTyp={ + CallTransferType: 1 +} +let promise = call.getCallTransferInfo(0, callTransferTyp); +promise.then(data => { + console.log(`getCallTransferInfo success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`getCallTransferInfo fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.setCallTransfer8+ + +setCallTransfer\(slotId: number, info: CallTransferInfo, callback: AsyncCallback\): void + +设置呼叫转移信息。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| info | [CallTransferInfo](#CallTransferInfo) | 是 | 呼叫转移信息。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +let callTransferInfo={ + transferNum: "111", + type: 1, + settingType: 1 +} +call.setCallTransfer(0, callTransferInfo, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.setCallTransfer8+ + +setCallTransfer\(slotId: number, info: CallTransferInfo): Promise + +设置呼叫转移信息。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------------------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| info | [CallTransferInfo](#CallTransferInfo) | 是 | 呼叫转移信息。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let callTransferInfo={ + transferNum: "111", + type: 1, + settingType: 1 +} +let promise = call.setCallTransfer(0, callTransferInfo); +promise.then(data => { + console.log(`setCallTransfer success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`setCallTransfer fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.isRinging8+ + +isRinging\(callback: AsyncCallback\): void + +判断是否正在响铃。使用callback异步回调。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------- | ---- | ---------- | +| callback | AsyncCallback<boolean> | 是 | 回调函数。 | + +**示例:** + +```js +call.isRinging((err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.isRinging8+ + +isRinging\(\): Promise + +判断是否正在响铃。使用Promise异步回调。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CallManager + +**返回值:** + +| 类型 | 说明 | +| ---------------------- | --------------------------- | +| Promise<boolean> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.isRinging(); +promise.then(data => { + console.log(`isRinging success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`isRinging fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.setMuted8+ + +setMuted\(callback: AsyncCallback\): void + +设置静音。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ---------- | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.setMuted((err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.setMuted8+ + +setMuted\(\): Promise + +设置静音。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.setMuted(); +promise.then(data => { + console.log(`setMuted success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`setMuted fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.cancelMuted8+ + +cancelMuted(callback: AsyncCallback): void + +取消静音。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ---------- | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.cancelMuted((err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.cancelMuted8+ + +cancelMuted(): Promise + +设置静音。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.cancelMuted(); +promise.then(data => { + console.log(`cancelMuted success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`cancelMuted fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.setAudioDevice8+ + +setAudioDevice\(device: AudioDevice, callback: AsyncCallback\): void + +设置音频设备。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------- | ---- | ---------- | +| device | [AudioDevice](#AudioDevice8) | 是 | 音频设备。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.setAudioDevice(1, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.setAudioDevice8+ + +setAudioDevice\(device: AudioDevice, options: AudioDeviceOptions, callback: AsyncCallback\): void + +设置音频设备。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------ | ---- | -------------- | +| device | [AudioDevice](#AudioDevice8) | 是 | 音频设备。 | +| options | [AudioDeviceOptions](#AudioDeviceOptions9) | 是 | 音频设备参数。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +let audioDeviceOptions={ + bluetoothAddress: "IEEE 802-2014" +} +call.setAudioDevice(1, bluetoothAddress, (err, value) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## call.setAudioDevice8+ + +setAudioDevice(device: AudioDevice, options?: AudioDeviceOptions**): **Promise + +设置音频设备。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ------------------------------------------ | ---- | ------------------ | +| device | [AudioDevice](#AudioDevice8) | 是 | 音频设备。 | +| options | [AudioDeviceOptions](#AudioDeviceOptions9) | 否 | 音频设备参数参数。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------------------------------- | +| Promise<void> | 以Promise形式异步返回判断是否是紧急电话号码的结果。 | + +**示例:** + +```js +let audioDeviceOptions={ + bluetoothAddress: "IEEE 802-2014" +} +let promise = call.setAudioDevice(1, audioDeviceOptions);s +promise.then(data => { + console.log(`setAudioDevice success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`setAudioDevice fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.joinConference8+ + +joinConference(mainCallId: number, callNumberList: Array, callback: AsyncCallback): void + +加入会议。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------------- | ------------------------- | ---- | --------------- | +| mainCallId | number | 是 | 主通话Id。 | +| callNumberList | Array | 是 | 呼叫号码列表。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.joinConference(1, "138XXXXXXXX", (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## call.joinConference8+ + +joinConference(mainCallId: number, callNumberList: Array): Promise + +加入会议。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------------- | -------------- | ---- | --------------- | +| mainCallId | number | 是 | 主通话Id。 | +| callNumberList | Array | 是 | 呼叫号码列表。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.joinConference(1, "138XXXXXXXX"); +promise.then(data => { + console.log(`joinConference success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`joinConference fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.updateImsCallMode8+ + +updateImsCallMode(callId: number, mode: ImsCallMode, callback: AsyncCallback): void + +更新Ims呼叫模式。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------- | ---- | -------------- | +| callId | number | 是 | 呼叫Id。 | +| mode | [ImsCallMode](#ImsCallMode8) | 是 | Ims呼叫模式。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.updateImsCallMode(1, 1, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## call.updateImsCallMode8+ + +updateImsCallMode(callId: number, mode: ImsCallMode): Promise + +更新Ims呼叫模式。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ---------------------------- | ---- | -------------- | +| callId | number | 是 | 呼叫Id。 | +| mode | [ImsCallMode](#ImsCallMode8) | 是 | Ims呼叫模式。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.updateImsCallMode(1, 1); +promise.then(data => { + console.log(`updateImsCallMode success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`updateImsCallMode fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.enableImsSwitch8+ + +enableImsSwitch(slotId: number, callback: AsyncCallback): void + +启用Ims开关。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.enableImsSwitch(0, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## call.enableImsSwitch8+ + +enableImsSwitch(slotId: number): Promise + +启用Ims开关。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.enableImsSwitch(0); +promise.then(data => { + console.log(`enableImsSwitch success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`enableImsSwitch fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.disableImsSwitch8+ + +disableImsSwitch(slotId: number, callback: AsyncCallback): void + +禁用Ims开关。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +call.disableImsSwitch(0, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## call.disableImsSwitch8+ + +disableImsSwitch(slotId: number): Promise + +禁用Ims开关。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.disableImsSwitch(0); +promise.then(data => { + console.log(`disableImsSwitch success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`disableImsSwitch fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## call.isImsSwitchEnabled8+ + +isImsSwitchEnabled(slotId: number, callback: AsyncCallback): void + +判断Ims开关是否启用。使用callback异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback<boolean> | 是 | 回调函数。 | + +**示例:** + +```js +call.isImsSwitchEnabled(0, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## call.isImsSwitchEnabled8+ + +isImsSwitchEnabled(slotId: number): Promise + +判断Ims开关是否启用。使用Promise异步回调。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CallManager + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | --------------------------- | +| Promise<void> | 以Promise形式异步返回结果。 | + +**示例:** + +```js +let promise = call.isImsSwitchEnabled(0); +promise.then(data => { + console.log(`isImsSwitchEnabled success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`isImsSwitchEnabled fail, promise: err->${JSON.stringify(err)}`); +}); +``` + ## DialOptions 拨打电话的可选参数。 **系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------- | ---- | ------------------------------------------------------------ | -| extras | boolean | 否 | 根据extras的值判断是否为视频通话,默认为语音通话。
- true:视频通话。
- false:语音通话。 | +| 参数名 | 类型 | 必填 | 说明 | +| ---------- | ---------------------------------- | ---- | ------------------------------------------------------------ | +| extras | boolean | 否 | 根据extras的值判断是否为视频通话,默认为语音通话。
- true:视频通话。
- false:语音通话。 | +| accountId | number | 否 | 帐户Id | +| videoState | [VideoStateType](#VideoStateType7) | 否 | 视频状态类型 | +| dialScene | [DialScene](#DialScene8) | 否 | 拨号场景 | +| dialType | [DialType](#DialType8) | 否 | 拨号类型 | ## CallState @@ -555,4 +2807,397 @@ promise.then(data => { | 参数名 | 类型 | 必填 | 说明 | | ----------- | ------ | ---- | ---------------------------------------------------------- | -| countryCode | string | 否 | 国家码,支持所有国家的国家码,如:CN(中国)。默认为:CN。 | \ No newline at end of file +| countryCode | string | 否 | 国家码,支持所有国家的国家码,如:CN(中国)。默认为:CN。 | + +## ImsCallMode8+ + +ims调用模式。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| ---------------------- | ---- | ---------------- | +| CALL_MODE_AUDIO_ONLY | 0 | 仅限音频呼叫模式 | +| CALL_MODE_SEND_ONLY | 1 | 仅发送呼叫模式 | +| CALL_MODE_RECEIVE_ONLY | 2 | 仅接收呼叫模式 | +| CALL_MODE_SEND_RECEIVE | 3 | 发送接收呼叫模式 | +| CALL_MODE_VIDEO_PAUSED | 4 | 视频暂停呼叫模式 | + +## AudioDevice8+ + +音频设备。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| -------------------- | ---- | ------------ | +| DEVICE_EARPIECE | 0 | 耳机设备 | +| DEVICE_SPEAKER | 1 | 扬声器设备 | +| DEVICE_WIRED_HEADSET | 2 | 有线耳机设备 | +| DEVICE_BLUETOOTH_SCO | 3 | 蓝牙SCO设备 | +| DEVICE_MIC | 4 | 麦克风设备 | + +## CallRestrictionType8+ + +呼叫限制类型。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| --------------------------------------------- | ---- | ---------------------- | +| RESTRICTION_TYPE_ALL_INCOMING | 0 | 限制所有传入类型 | +| RESTRICTION_TYPE_ALL_OUTGOING | 1 | 限制所有传出类型 | +| RESTRICTION_TYPE_INTERNATIONAL | 2 | 限制国际类型 | +| RESTRICTION_TYPE_INTERNATIONAL_EXCLUDING_HOME | 3 | 限制国际不包括住宅类型 | +| RESTRICTION_TYPE_ROAMING_INCOMING | 4 | 限制漫游传入类型 | +| RESTRICTION_TYPE_ALL_CALLS | 5 | 限制所有调用类型 | +| RESTRICTION_TYPE_OUTGOING_SERVICES | 6 | 限制传出服务类型 | +| RESTRICTION_TYPE_INCOMING_SERVICES | 7 | 限制传入服务类型 | + +## CallTransferInfo8+ + +呼叫转移信息。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 参数名 | 类型 | 必填 | 说明 | +| ----------- | ---------------------------------------------------- | ---- | ---------------- | +| transferNum | string | 是 | 转移编号 | +| type | [CallTransferType](#CallTransferType8) | 是 | 呼叫转移类型 | +| settingType | [CallTransferSettingType](#CallTransferSettingType8) | 是 | 设置呼叫转移类型 | + +## CallTransferType8+ + +呼叫转移类型。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| --------------------------- | ---- | ---------------- | +| TRANSFER_TYPE_UNCONDITIONAL | 0 | 无条件转移类型 | +| TRANSFER_TYPE_BUSY | 1 | 忙线转移类型 | +| TRANSFER_TYPE_NO_REPLY | 2 | 无回复转移类型 | +| TRANSFER_TYPE_NOT_REACHABLE | 3 | 无法访问转移类型 | + +## CallTransferSettingType8+ + +设置呼叫转移类型。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| -------------------------- | ---- | ------------ | +| CALL_TRANSFER_DISABLE | 0 | 禁用呼叫转移 | +| CALL_TRANSFER_ENABLE | 1 | 启用呼叫转移 | +| CALL_TRANSFER_REGISTRATION | 3 | 登记呼叫转移 | +| CALL_TRANSFER_ERASURE | 4 | 消除呼叫转移 | + +## CallAttributeOptions7+ + +调用属性选项。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 参数名 | 类型 | 必填 | 说明 | +| --------------- | ---------------------------------------- | ---- | -------------- | +| accountNumber | string | 是 | 帐号号码 | +| speakerphoneOn | boolean | 是 | 扬声器接通电话 | +| accountId | number | 是 | 帐户Id | +| videoState | [VideoStateType](#VideoStateType7) | 是 | 视频状态类型 | +| startTime | number | 是 | 开始时间 | +| isEcc | boolean | 是 | 是否是Ecc | +| callType | [CallType](#CallType7) | 是 | 通话类型 | +| callId | number | 是 | 呼叫Id | +| callState | [DetailedCallState](#DetailedCallState7) | 是 | 详细呼叫状态 | +| conferenceState | [ConferenceState](#ConferenceState7) | 是 | 会议状态 | + +## ConferenceState7+ + +会议状态。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| ---------------------------- | ---- | -------------- | +| TEL_CONFERENCE_IDLE | 0 | 电话会议空闲 | +| TEL_CONFERENCE_ACTIVE | 1 | 电话会议激活 | +| TEL_CONFERENCE_DISCONNECTING | 2 | 电话会议断开 | +| TEL_CONFERENCE_DISCONNECTED | 3 | 电话会议已断开 | + +## CallType7+ + +通话类型。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| ------------- | ---- | ------------ | +| TYPE_CS | 0 | CS通话 | +| TYPE_IMS | 1 | IMS通话 | +| TYPE_OTT | 2 | OTT通话 | +| TYPE_ERR_CALL | 3 | 其他类型通话 | + +## VideoStateType7+ + +视频状态类型。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| ---------- | ---- | -------- | +| TYPE_VOICE | 0 | 语音状态 | +| TYPE_VIDEO | 1 | 视频状态 | + +## DetailedCallState7+ + +详细的呼叫状态。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| ------------------------- | ---- | -------------- | +| CALL_STATUS_ACTIVE | 0 | 激活呼叫状态 | +| CALL_STATUS_HOLDING | 1 | 保持呼叫状态 | +| CALL_STATUS_DIALING | 2 | 呼叫状态拨号 | +| CALL_STATUS_ALERTING | 3 | 电话报警状态 | +| CALL_STATUS_INCOMING | 4 | 呼叫传入状态 | +| CALL_STATUS_WAITING | 5 | 呼叫等待状态 | +| CALL_STATUS_DISCONNECTED | 6 | 呼叫状态已断开 | +| CALL_STATUS_DISCONNECTING | 7 | 呼叫状态断开 | +| CALL_STATUS_IDLE | 8 | 呼叫状态空闲 | + +## CallRestrictionInfo8+ + +呼叫限制信息。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------------------------------- | ---- | ------------ | +| type | [CallRestrictionType](#CallRestrictionType8) | 是 | 呼叫限制类型 | +| password | string | 是 | 密码 | +| mode | [CallRestrictionMode](#CallRestrictionMode8) | 是 | 呼叫限制模式 | + +## CallRestrictionMode8+ + +呼叫限制模式。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| ----------------------------- | ---- | ------------ | +| RESTRICTION_MODE_DEACTIVATION | 0 | 限制模式停用 | +| RESTRICTION_MODE_ACTIVATION | 1 | 限制模式激活 | + +## CallEventOptions8+ + +呼叫事件的可选参数。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ------------------------------------------ | ---- | -------------- | +| eventId | [CallAbilityEventId](#CallAbilityEventId8) | 是 | 呼叫能力事件Id | + +## CallAbilityEventId8+ + +呼叫能力事件Id。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| ------------------------ | ---- | --------------- | +| EVENT_DIAL_NO_CARRIER | 1 | 拨号无载波事件 | +| EVENT_INVALID_FDN_NUMBER | 2 | 无效的FDN号事件 | + +## DialScene8+ + +拨号场景。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| --------------- | ---- | ------------ | +| CALL_NORMAL | 0 | 呼叫正常 | +| CALL_PRIVILEGED | 1 | 呼叫特权 | +| CALL_EMERGENCY | 2 | 拨打紧急电话 | + +## DialType8+ + +拨号类型。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| -------------------- | ---- | ---------------- | +| DIAL_CARRIER_TYPE | 0 | 载波拨号类型 | +| DIAL_VOICE_MAIL_TYPE | 1 | 语音邮件拨号类型 | +| DIAL_OTT_TYPE | 2 | OTT拨号类型 | + +## RejectMessageOptions7+ + +拒绝消息可选参数。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 参数名 | 类型 | 必填 | 说明 | +| -------------- | ------ | ---- | -------- | +| messageContent | string | 是 | 消息内容 | + +## CallTransferResult8+ + +呼叫转移结果。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ---------------------------------- | ---- | -------- | +| status | [TransferStatus](#TransferStatus8) | 是 | 转移状态 | +| number | string | 是 | 号码 | + +## CallWaitingStatus7+ + +呼叫等待状态。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| -------------------- | ---- | ------------ | +| CALL_WAITING_DISABLE | 0 | 禁用呼叫等待 | +| CALL_WAITING_ENABLE | 1 | 启用呼叫等待 | + +## RestrictionStatus8+ + +限制状态。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| ------------------- | ---- | -------- | +| RESTRICTION_DISABLE | 0 | 禁用限制 | +| RESTRICTION_ENABLE | 1 | 启用限制 | + +## TransferStatus8+ + +转移状态。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| ---------------- | ---- | -------- | +| TRANSFER_DISABLE | 0 | 禁用转移 | +| TRANSFER_ENABLE | 1 | 启用转移 | + +## DisconnectedDetails8+ + +断开连接的详细信息。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| --------------------------- | ---- | ---------------------- | +| UNASSIGNED_NUMBER | 1 | 未分配的号码(空号) | +| NO_ROUTE_TO_DESTINATION | 3 | 无至目的地的路由 | +| CHANNEL_UNACCEPTABLE | 6 | 不可接受的通路 | +| OPERATOR_DETERMINED_BARRING | 8 | 运营商闭锁 | +| NORMAL_CALL_CLEARING | 16 | 清除正常呼叫 | +| USER_BUSY | 17 | 用户忙 | +| NO_USER_RESPONDING | 18 | 无用户响应 | +| USER_ALERTING_NO_ANSWER | 19 | 已有用户提醒,但无应答 | +| CALL_REJECTED | 21 | 呼叫拒绝 | +| NUMBER_CHANGED | 22 | 号码改变 | +| DESTINATION_OUT_OF_ORDER | 27 | 终点故障 | +| INVALID_NUMBER_FORMAT | 28 | 无效号码格式 | +| NETWORK_OUT_OF_ORDER | 38 | 网络故障 | +| TEMPORARY_FAILURE | 41 | 临时故障 | +| INVALID_PARAMETER | 1025 | 无效参数 | +| SIM_NOT_EXIT | 1026 | SIM卡未退出 | +| SIM_PIN_NEED | 1027 | 需要SIM卡PIN码 | +| CALL_NOT_ALLOW | 1029 | 不允许呼叫 | +| SIM_INVALID | 1045 | SIM卡无效 | +| UNKNOWN | 1279 | 未知原因 | + +## MmiCodeResults9+ + +MMI码结果。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 类型 | 必填 | 说明 | +| ------- | -------------------------------- | ---- | --------------- | +| result | [MmiCodeResult](#MmiCodeResult9) | 是 | MMI码结果 | +| message | string | 是 | MMI码消息 | + +## MmiCodeResult9+ + +MMI码结果。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 值 | 说明 | +| ---------------- | ---- | ------------- | +| MMI_CODE_SUCCESS | 0 | 表示MMI码成功 | +| MMI_CODE_FAILED | 1 | 表示MMI码失败 | + +## AudioDeviceOptions + +音频设备选项。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 + +| 名称 | 类型 | 必填 | 说明 | +| ---------------- | ------ | ---- | -------- | +| bluetoothAddress | string | 否 | 蓝牙地址 | + diff --git a/zh-cn/application-dev/reference/apis/js-apis-radio.md b/zh-cn/application-dev/reference/apis/js-apis-radio.md index 5b6297b3f5..c8675e6574 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-radio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-radio.md @@ -701,7 +701,7 @@ getIMEI(slotId?: number): Promise | 类型 | 说明 | | ----------------- | ------------------------------------------ | -| Promise\ | 返回IMEI;如果IMEI不存在,则返回空字符串。 | +| Promise\ | 以Promise形式异步返回IMEI;如果IMEI不存在,则返回空字符串。 | **示例:** @@ -899,6 +899,693 @@ promise.then(data => { }); ``` +## radio.sendUpdateCellLocationRequest8+ + +sendUpdateCellLocationRequest\(callback: AsyncCallback\): void + +发送更新小区位置请求,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------- | ---- | ---------- | +| callback | AsyncCallback\ | 是 | 回调函数。 | + +**示例:** + +```js +radio.sendUpdateCellLocationRequest((err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## radio.sendUpdateCellLocationRequest8+ + +sendUpdateCellLocationRequest\(\): Promise + +发送更新小区位置请求,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CoreService + +**返回值:** + +| 类型 | 说明 | +| --------------- | ----------------------- | +| Promise\ | 以Promise形式返回结果。 | + +**示例:** + +```js +let promise = radio.sendUpdateCellLocationRequest(); +promise.then(data => { + console.log(`sendUpdateCellLocationRequest success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`sendUpdateCellLocationRequest fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## radio.getCellInformation8+ + +getCellInformation(callback: AsyncCallback>): void + +获取小区信息,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.LOCATION + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------------------ | ---- | ------------------------ | +| callback | AsyncCallback\\> | 是 | 回调函数,返回小区信息。 | + +**示例:** + +```js +radio.getCellInformation((err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## radio.getCellInformation8+ + +getCellInformation(slotId: number, callback: AsyncCallback\>): void + +获取小区信息,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.LOCATION + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------------------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback\\> | 是 | 回调函数,返回小区信息。 | + +**示例:** + +```js +let slotId = 0; +radio.getCellInformation(slotId, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## radio.getCellInformation8+ + +getCellInformation(slotId?: number): Promise\> + +获取小区信息,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.LOCATION + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 否 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------------ | ----------------------- | +| Promise\\> | 以Promise形式返回结果。 | + +**示例:** + +```js +let slotId = 0; +let promise = radio.getCellInformation(slotId); +promise.then(data => { + console.log(`getCellInformation success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`getCellInformation fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## radio.setNetworkSelectionMode + +setNetworkSelectionMode\(options: NetworkSelectionModeOptions, callback: AsyncCallback\): void + +设置网络选择模式,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------------------------------- | ---- | ------------------ | +| options | [NetworkSelectionModeOptions](#networkSelectionModeOptions) | 是 | 网络选择模式选项。 | +| callback | AsyncCallback\ | 是 | 回调函数。 | + +**示例:** + +```js +let networkInformation={ + operatorName: "中国移动", + operatorNumeric: "898600", + state: 1, + radioTech: "CS" +} +let networkSelectionModeOptions={ + slotid: 0, + selectMode: 1, + networkInformation: networkInformation, + resumeSelection: true +} +radio.setNetworkSelectionMode(networkSelectionModeOptions, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## radio.setNetworkSelectionMode + +setNetworkSelectionMode\(options: NetworkSelectionModeOptions\): Promise + +设置网络选择模式,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ----------------------------------------------------------- | ---- | ------------------ | +| options | [NetworkSelectionModeOptions](#networkSelectionModeOptions) | 是 | 网络选择模式选项。 | + +**返回值:** + +| 类型 | 说明 | +| --------------- | ----------------------- | +| Promise\ | 以Promise形式返回结果。 | + +**示例:** + +```js +let networkInformation={ + operatorName: "中国移动", + operatorNumeric: "898600", + state: 1, + radioTech: "CS" +} +let networkSelectionModeOptions={ + slotid: 0, + selectMode: 1, + networkInformation: networkInformation, + resumeSelection: true +} +let promise = radio.setNetworkSelectionMode(networkSelectionModeOptions); +promise.then(data => { + console.log(`setNetworkSelectionMode success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`setNetworkSelectionMode fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## radio.getNetworkSearchInformation + +getNetworkSearchInformation\(slotId: number, callback: AsyncCallback\): void + +获取网络搜索信息,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.GET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------------------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback\<[NetworkSearchResult](#networkSearchResult)\> | 是 | 回调函数。返回网络搜索信息。 | + +**示例:** + +```js +radio.getNetworkSearchInformation(0, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## radio.getNetworkSearchInformation + +getNetworkSearchInformation\(slotId: number\): Promise + +获取网络搜索信息,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.GET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------------ | ----------------------- | +| Promise\<[NetworkSearchResult](#networkSearchResult)\> | 以Promise形式返回结果。 | + +**示例:** + +```js +let promise = radio.getNetworkSearchInformation(0); +promise.then(data => { + console.log(`getNetworkSearchInformation success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`getNetworkSearchInformation fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## radio.getNrOptionMode8+ + +getNrOptionMode(callback: AsyncCallback): void + +获取Nr选项模式 ,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------------- | ---- | ---------- | +| callback | AsyncCallback\<[NrOptionMode](#nrOptionMode)\> | 是 | 回调函数。 | + +**示例:** + +```js +radio.getNrOptionMode((err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## radio.getNrOptionMode8+ + +getNrOptionMode(slotId: number, callback: AsyncCallback): void + +获取Nr选项模式 ,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback\<[NrOptionMode](#nrOptionMode)\> | 是 | 回调函数。 | + +**示例:** + +```js +let slotId = 0; +radio.getNrOptionMode(slotId, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## radio.getNrOptionMode8+ + +getNrOptionMode(slotId?: number): Promise + +获取Nr选项模式 ,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 否 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------- | ----------------------- | +| Promise\<[NrOptionMode](#nrOptionMode)\> | 以Promise形式返回结果。 | + +**示例:** + +```js +let slotId = 0; +let promise = radio.getNrOptionMode(slotId); +promise.then(data => { + console.log(`getNrOptionMode success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`getNrOptionMode fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## radio.turnOnRadio7+ + +turnOnRadio(callback: AsyncCallback): void + +打开Radio,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------- | ---- | ---------- | +| callback | AsyncCallback\ | 是 | 回调函数。 | + +**示例:** + +```js +radio.turnOnRadio((err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## radio.turnOnRadio7+ + +turnOnRadio(slotId: number, callback: AsyncCallback): void + +打开Radio,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback\ | 是 | 回调函数。 | + +**示例:** + +```js +let slotId = 0; +radio.turnOnRadio(slotId, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## radio.turnOnRadio7+ + +turnOnRadio(slotId?: number): Promise + +打开Radio,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 否 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| --------------- | ------------------------- | +| Promise\ | 无返回结果的Promise对象。 | + +**示例:** + +```js +let slotId = 0; +let promise = radio.turnOnRadio(slotId); +promise.then(data => { + console.log(`turnOnRadio success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`turnOnRadio fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## radio.turnOffRadio7+ + +turnOffRadio(callback: AsyncCallback): void + +关闭Radio,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------- | ---- | ---------- | +| callback | AsyncCallback\ | 是 | 回调函数。 | + +**示例:** + +```js +radio.turnOffRadio((err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## radio.turnOffRadio7+ + +turnOffRadio(slotId: number, callback: AsyncCallback): void + +关闭Radio,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback\ | 是 | 回调函数。 | + +**示例:** + +```js +let slotId = 0; +radio.turnOffRadio(slotId, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## radio.turnOffRadio7+ + +turnOffRadio(slotId?: number): Promise + +关闭Radio,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 否 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| --------------- | ------------------------- | +| Promise\ | 无返回结果的Promise对象。 | + +**示例:** + +```js +let slotId = 0; +let promise = radio.turnOffRadio(slotId); +promise.then(data => { + console.log(`turnOffRadio success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`turnOffRadio fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## radio.setPreferredNetwork8+ + +setPreferredNetwork\(slotId: number, networkMode: PreferredNetworkMode, callback: AsyncCallback\): void + +设置首选网络,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ----------- | --------------------------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| networkMode | [PreferredNetworkMode](#preferredNetworkMode) | 是 | 设置首选网络模式 | +| callback | AsyncCallback\ | 是 | 回调函数。 | + +**示例:** + +```js +radio.setPreferredNetwork(0, , (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## radio.setPreferredNetwork8+ + +setPreferredNetwork(slotId: number, networkMode: PreferredNetworkMode): Promise + +设置首选网络,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ----------- | --------------------------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| networkMode | [PreferredNetworkMode](#preferredNetworkMode) | 是 | 设置首选网络模式 | + +**返回值:** + +| 类型 | 说明 | +| --------------- | ------------------------- | +| Promise\ | 无返回结果的Promise对象。 | + +**示例:** + +```js +let promise = radio.setPreferredNetwork(0, ); +promise.then(data => { + console.log(`setPreferredNetwork success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`setPreferredNetwork fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## radio.getPreferredNetwork8+ + +getPreferredNetwork\(slotId: number, callback: AsyncCallback\): void + +获取首选网络,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.GET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback\ | 是 | 回调函数。 | + +**示例:** + +```js +radio.getPreferredNetwork(0, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## radio.getPreferredNetwork8+ + +getPreferredNetwork(slotId: number): Promise + +设置首选网络,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.GET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| --------------- | ----------------------- | +| Promise\ | 以Promise形式返回结果。 | + +**示例:** + +```js +let promise = radio.getPreferredNetwork(0); +promise.then(data => { + console.log(`getPreferredNetwork success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`getPreferredNetwork fail, promise: err->${JSON.stringify(err)}`); +}); +``` + ## RadioTechnology 无线接入技术。 @@ -1011,3 +1698,238 @@ promise.then(data => { | NETWORK_SELECTION_AUTOMATIC | 1 | 自动选网模式。 | | NETWORK_SELECTION_MANUAL | 2 | 手动选网模式。 | +## PreferredNetworkMode8+ + +首选网络模式。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 值 | 说明 | +| --------------------------------------------------------- | ---- | ---------------------------------------------- | +| PREFERRED_NETWORK_MODE_GSM | 1 | 首选GSM网络模式。 | +| PREFERRED_NETWORK_MODE_WCDMA | 2 | 首选WCDMA网络模式。 | +| PREFERRED_NETWORK_MODE_LTE | 3 | 首选LTE网络模式。 | +| PREFERRED_NETWORK_MODE_LTE_WCDMA | 4 | 首选LTE WCDMA网络模式。 | +| PREFERRED_NETWORK_MODE_LTE_WCDMA_GSM | 5 | 首选LTE WCDMA GSM网络模式。 | +| PREFERRED_NETWORK_MODE_WCDMA_GSM | 6 | 首选WCDMA GSM网络模式。 | +| PREFERRED_NETWORK_MODE_CDMA | 7 | 首选CDMA网络模式。 | +| PREFERRED_NETWORK_MODE_EVDO | 8 | 首选EVDO网络模式。 | +| PREFERRED_NETWORK_MODE_EVDO_CDMA | 9 | 首选EVDO CDMA网络模式。 | +| PREFERRED_NETWORK_MODE_WCDMA_GSM_EVDO_CDMA | 10 | 首选WCDMA GSM EVDO CDMA网络模式。 | +| PREFERRED_NETWORK_MODE_LTE_EVDO_CDMA | 11 | 首选LTE EVDO CDMA网络模式。 | +| PREFERRED_NETWORK_MODE_LTE_WCDMA_GSM_EVDO_CDMA | 12 | 首选LTE WCDMA GSM EVDO CDMA网络模式。 | +| PREFERRED_NETWORK_MODE_TDSCDMA | 13 | 首选TDSCDMA网络模式。 | +| PREFERRED_NETWORK_MODE_TDSCDMA_GSM | 14 | 首选TDSCDMA GSM网络模式。 | +| PREFERRED_NETWORK_MODE_TDSCDMA_WCDMA | 15 | 首选TDSCDMA_WCDMA网络模式。 | +| PREFERRED_NETWORK_MODE_TDSCDMA_WCDMA_GSM | 16 | 首选TDSCDMA_WCDMA_GSM网络模式。 | +| PREFERRED_NETWORK_MODE_LTE_TDSCDMA | 17 | 首选LTE TDSCDMA网络模式。 | +| PREFERRED_NETWORK_MODE_LTE_TDSCDMA_GSM | 18 | 首选LTE TDSCDMA GSM网络模式。 | +| PREFERRED_NETWORK_MODE_LTE_TDSCDMA_WCDMA | 19 | 首选LTE TDSCDMA WCDMA网络模式。 | +| PREFERRED_NETWORK_MODE_LTE_TDSCDMA_WCDMA_GSM | 20 | 首选LTE TDSCDMA WCDMA GSM网络模式。 | +| PREFERRED_NETWORK_MODE_TDSCDMA_WCDMA_GSM_EVDO_CDMA | 21 | 首选TDSCDMA WCDMA GSM EVDO CDMA网络模式。 | +| PREFERRED_NETWORK_MODE_LTE_TDSCDMA_WCDMA_GSM_EVDO_CDMA | 22 | 首选LTE TDSCDMA WCDMA GSM EVDO CDMA网络模式。 | +| PREFERRED_NETWORK_MODE_NR | 31 | 首选NR网络模式。 | +| PREFERRED_NETWORK_MODE_NR_LTE | 32 | 首选NR LTE网络模式。 | +| PREFERRED_NETWORK_MODE_NR_LTE_WCDMA | 33 | 首选NR LTE WCDMA网络模式。 | +| PREFERRED_NETWORK_MODE_NR_LTE_WCDMA_GSM | 34 | 首选NR LTE WCDMA GSM网络模式。 | +| PREFERRED_NETWORK_MODE_NR_LTE_EVDO_CDMA | 35 | 首选NR LTE EVDO CDMA网络模式。 | +| PREFERRED_NETWORK_MODE_NR_LTE_WCDMA_GSM_EVDO_CDMA | 36 | 首选NR LTE WCDMA GSM EVDO CDMA网络模式。 | +| PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA | 37 | 首选NR LTE TDSCDMA网络模式。 | +| PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_GSM | 38 | 首选NR LTE TDSCDMA GSM网络模式。 | +| PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA | 39 | 首选NR LTE TDSCDMA WCDMA网络模式。 | +| PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA_GSM | 40 | 首选NR LTE TDSCDMA WCDMA GSM网络模式。 | +| PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA_GSM_EVDO_CDMA | 41 | 首选NR LTE TDSCDMA WCDMA GSM网络模式。 | +| PREFERRED_NETWORK_MODE_MAX_VALUE | 99 | 首选网络模式最大值 | + +## CellInformation8+ + +小区信息。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 类型 | 说明 | +| ----------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| networkType | [NetworkType](#networkType) | 获取服务单元的网络类型。 | +| isCamped | boolean | 获取服务单元的状态。 | +| timeStamp | number | 获取单元格信息时获取时间戳。 | +| signalInformation | [SignalInformation](#signalInformation) | 信号信息。 | +| data | [CdmaCellInformation](#cdmaCellInformation) \| [GsmCellInformation](#gsmCellInformation) \| [LteCellInformation](#lteCellInformation) \| [NrCellInformation](#nrCellInformation) \| [TdscdmaCellInformation](#tdscdmaCellInformation) | Cdma小区信息 \|Gsm小区信息\|Lte小区信息\|Nr小区信息\|Tdscdma小区信息 | + +## CdmaCellInformation8+ + +Cdma小区信息。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 类型 | 说明 | +| --------- | ------ | ------------ | +| baseId | number | 基站Id。 | +| latitude | number | 经度。 | +| longitude | number | 纬度。 | +| nid | number | 网络识别码。 | +| sid | number | 系统识别码。 | + +## GsmCellInformation8+ + +Gsm小区信息。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 类型 | 说明 | +| ------ | ------ | -------------------- | +| lac | number | 位置区编号。 | +| cellId | number | 小区号。 | +| arfcn | number | 绝对无线频率信道号。 | +| bsic | number | 基站识别号。 | +| mcc | string | 移动国家码。 | +| mnc | string | 移动网号。 | + +## LteCellInformation8+ + +Lte小区信息。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 类型 | 说明 | +| ------------- | ------- | ----------------------- | +| cgi | number | 小区全球标识。 | +| pci | number | 物理小区识别。 | +| tac | number | 跟踪区域代码。 | +| earfcn | number | 绝对无线频率信道号。 | +| bandwidth | number | 带宽。 | +| mcc | string | 移动国家码。 | +| mnc | string | 移动网号。 | +| isSupportEndc | boolean | 是否支持新无线电_双连接 | + +## NrCellInformation8+ + +Nr小区信息。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 类型 | 说明 | +| ------- | ------ | ---------------- | +| nrArfcn | number | 5G频点号。 | +| pci | number | 物理小区识别。 | +| tac | number | 跟踪区域代码。 | +| nci | number | 5G网络小区标识。 | +| mcc | string | 移动国家码。 | +| mnc | string | 移动网号。 | + +## TdscdmaCellInformation8+ + +Tdscdma小区信息。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 类型 | 说明 | +| ------ | ------ | ------------ | +| lac | number | 位置区编号。 | +| cellId | number | 小区号。 | +| cpid | number | 小区参数Id。 | +| uarfcn | number | 绝对射频号。 | +| mcc | string | 移动国家码。 | +| mnc | string | 移动网号。 | + +## WcdmaCellInformation8+ + +Wcdma小区信息。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 类型 | 说明 | +| ------ | ------ | ------------ | +| lac | number | 位置区编号。 | +| cellId | number | 小区号。 | +| psc | number | 主扰码。 | +| uarfcn | number | 绝对射频号。 | +| mcc | string | 移动国家码。 | +| mnc | string | 移动网号。 | + +## NrOptionMode8+ + +Nr的选择模式。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 值 | 说明 | +| -------------------- | ---- | ---------------------------------- | +| NR_OPTION_UNKNOWN | 0 | 未知的Nr选择模式。 | +| NR_OPTION_NSA_ONLY | 1 | 仅非独立组网的Nr选择模式。 | +| NR_OPTION_SA_ONLY | 2 | 仅独立组网的Nr选择模式。 | +| NR_OPTION_NSA_AND_SA | 3 | 非独立组网和独立组网的Nr选择模式。 | + +## NetworkSearchResult + +网络搜索结果。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 类型 | 说明 | +| ---------------------- | ------------------------------------------------- | -------------- | +| isNetworkSearchSuccess | boolean | 网络搜索成功。 | +| networkSearchResult | Array<[NetworkInformation](#networkInformation)\> | 网络搜索结果。 | + +## NetworkInformation + +网络信息。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 类型 | 说明 | +| --------------- | ----------------------------------------- | -------------- | +| operatorName | string | 运营商的名称。 | +| operatorNumeric | string | 运营商数字。 | +| state | [NetworkInformation](#networkInformation) | 网络信息状态。 | +| radioTech | string | 无线电技术。 | + +## NetworkInformationState + +网络信息状态。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 值 | 说明 | +| ----------------- | ---- | ---------------- | +| NETWORK_UNKNOWN | 0 | 网络状态未知。 | +| NETWORK_AVAILABLE | 1 | 网络可用于注册。 | +| NETWORK_CURRENT | 2 | 已在网络中注册。 | +| NETWORK_FORBIDDEN | 3 | 网络无法注册。 | + +## NetworkSelectionModeOptions + +网络选择模式选项。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 类型 | 说明 | +| ------------------ | --------------------------------------------- | -------------------------------------- | +| slotId | number | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| selectMode | [NetworkSelectionMode](#networkSelectionMode) | 网络选择模式。 | +| networkInformation | [NetworkInformation](#networkInformation) | 网络信息。 | +| resumeSelection | boolean | 继续选择。 | + diff --git a/zh-cn/application-dev/reference/apis/js-apis-sim.md b/zh-cn/application-dev/reference/apis/js-apis-sim.md index 1bc5bd4ae9..1c05e4ef37 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-sim.md +++ b/zh-cn/application-dev/reference/apis/js-apis-sim.md @@ -467,7 +467,7 @@ hasSimCard\(slotId: number, callback: AsyncCallback\): void **示例:** -```jsjs +```js sim.hasSimCard(0, (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); @@ -646,7 +646,7 @@ setDefaultVoiceSlotId(slotId: number, callback: AsyncCallback): void **示例:** ```js -sim.setDefaultVoiceSlotId(0,(err, data) => { +sim.setDefaultVoiceSlotId(0, (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` @@ -710,8 +710,8 @@ setShowName\(slotId: number, name: string,callback: AsyncCallback\): void **示例:** ```js -const name='中国移动'; -sim.setShowName(0, name,(err, data) => { +const name = '中国移动'; +sim.setShowName(0, name, (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` @@ -744,8 +744,8 @@ setShowName\(slotId: number, name: string\): Promise\ **示例:** ```js -const name='中国移动'; -let promise = sim.setShowName(0,name); +const name = '中国移动'; +let promise = sim.setShowName(0, name); promise.then(data => { console.log(`setShowName success, promise: data->${JSON.stringify(data)}`); }).catch(err => { @@ -839,8 +839,8 @@ setShowNumber\(slotId: number, number: string,callback: AsyncCallback\): **示例:** ```js -let number='+861xxxxxxxxxx'; -sim.setShowNumber(0, number,(err, data) => { +let number = '+861xxxxxxxxxx'; +sim.setShowNumber(0, number, (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` @@ -874,8 +874,8 @@ setShowNumber\(slotId: number,number: string\): Promise\ **示例:** ```js -let number='+861xxxxxxxxxx'; -let promise = sim.setShowNumber(0,number); +let number = '+861xxxxxxxxxx'; +let promise = sim.setShowNumber(0, number); promise.then(data => { console.log(`setShowNumber success, promise: data->${JSON.stringify(data)}`); }).catch(err => { @@ -1095,10 +1095,12 @@ setLockState(slotId: number, options: LockInfo, callback: AsyncCallback { +let lockInfo = { + lockType = 1, + password = "1234", + state = 0 +}; +sim.setLockState(0, lockInfo, (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` @@ -1132,10 +1134,12 @@ setLockState(slotId: number, options: LockInfo): Promise **示例:** ```js -LockInfo.lockType = 1; -LockInfo.password = "1234"; -LockInfo.state = 0; -let promise = sim.setLockState(0, LockInfo); +let lockInfo = { + lockType = 1, + password = "1234", + state = 0 +}; +let promise = sim.setLockState(0, lockInfo); promise.then(data => { console.log(`setLockState success, promise: data->${JSON.stringify(data)}`); }).catch(err => { @@ -1228,7 +1232,7 @@ alterPin(slotId: number, newPin: string, oldPin: string, callback: AsyncCallback **示例:** ```js -sim.alterPin(0, "1234", "0000"(err, data) => { +sim.alterPin(0, "1234", "0000", (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` @@ -1330,7 +1334,7 @@ alterPin2(slotId: number, newPin2: string, oldPin2: string): Promise { console.log(`alterPin2 success, promise: data->${JSON.stringify(data)}`); }).catch(err => { @@ -1361,8 +1365,8 @@ unlockPin(slotId: number,pin: string ,callback: AsyncCallback { +let pin = '1234'; +sim.unlockPin(0, pin, (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` @@ -1396,8 +1400,8 @@ unlockPin(slotId: number,pin: string): Promise<LockStatusResponse\> **示例:** ```js -let pin='1234'; -let promise = sim.unlockPin(0,pin); +let pin = '1234'; +let promise = sim.unlockPin(0, pin); promise.then(data => { console.log(`unlockPin success, promise: data->${JSON.stringify(data)}`); }).catch(err => { @@ -1429,9 +1433,9 @@ unlockPuk(slotId: number,newPin: string,puk: string ,callback: AsyncCallback { +let puk = '1xxxxxxx'; +let newPin = '1235'; +sim.unlockPuk(0, newPin, puk, (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` @@ -1466,9 +1470,9 @@ unlockPuk(slotId: number,newPin: string,puk: string): Promise<LockStatusRespo **示例:** ```js -let puk='1xxxxxxx'; -let newPin='1235'; -let promise = sim.unlockPuk(0,newPin,puk); +let puk = '1xxxxxxx'; +let newPin = '1235'; +let promise = sim.unlockPuk(0, newPin, puk); promise.then(data => { console.log(`unlockPuk success, promise: data->${JSON.stringify(data)}`); }).catch(err => { @@ -1499,8 +1503,8 @@ promise.then(data => { **示例:** ```js -let pin2='1234'; -sim.unlockPin2(0, pin2,(err, data) => { +let pin2 = '1234'; +sim.unlockPin2(0, pin2, (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` @@ -1567,9 +1571,9 @@ unlockPuk2(slotId: number,newPin2: string,puk2: string ,callback: AsyncCallback< **示例:** ```js -let puk2='1xxxxxxx'; -let newPin2='1235'; -sim.unlockPuk2(0, newPin2,puk2,(err, data) => { +let puk2 = '1xxxxxxx'; +let newPin2 = '1235'; +sim.unlockPuk2(0, newPin2, puk2, (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` @@ -1604,9 +1608,9 @@ unlockPuk2slotId: number,newPin2: string,puk2: string): Promise<LockStatusRes **示例:** ```js -let puk2='1xxxxxxx'; -let newPin2='1235'; -let promise = sim.unlockPuk2(0,newPin2,puk2); +let puk2 = '1xxxxxxx'; +let newPin2 = '1235'; +let promise = sim.unlockPuk2(0, newPin2, puk2); promise.then(data => { console.log(`unlockPuk2 success, promise: data->${JSON.stringify(data)}`); }).catch(err => { @@ -1634,143 +1638,1313 @@ getMaxSimCount\(\): number console.log("Result: "+ sim.getMaxSimCount()) ``` +## sim.getSimIccId7+ -## SimState +getSimIccId(slotId: number, callback: AsyncCallback): void -SIM卡状态。 +获取指定卡槽SIM卡的ICCID,使用callback方式作为异步方法。 -**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 +此接口为系统接口。 -| 名称 | 值 | 说明 | -| --------------------- | ---- | ---------------------------------------------------------- | -| SIM_STATE_UNKNOWN | 0 | SIM卡状态未知,即无法获取准确的状态。 | -| SIM_STATE_NOT_PRESENT | 1 | 表示SIM卡处于not present状态,即卡槽中没有插入SIM卡。 | -| SIM_STATE_LOCKED | 2 | 表示SIM卡处于locked状态,即SIM卡被PIN、PUK或网络锁锁定。 | -| SIM_STATE_NOT_READY | 3 | 表示SIM卡处于not ready状态,即SIM卡在位但无法正常工作。 | -| SIM_STATE_READY | 4 | 表示SIM卡处于ready状态,即SIM卡在位且工作正常。 | -| SIM_STATE_LOADED | 5 | 表示SIM卡处于loaded状态,即SIM卡在位且所有卡文件加载完毕。 | +**需要权限**:ohos.permission.GET_TELEPHONY_STATE -## CardType7+ +**系统能力**:SystemCapability.Telephony.CoreService -卡类型。 +**参数:** -**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback | 是 | 回调函数。 | -| 名称 | 值 | 说明 | -| ----- | ----- | ----- | -|UNKNOWN_CARD | -1 | 未知类型 | -|SINGLE_MODE_SIM_CARD | 10 | 单SIM卡 | -|SINGLE_MODE_USIM_CARD | 20 | 单USIM卡 | -|SINGLE_MODE_RUIM_CARD | 30 | 单RUIM卡 | -|DUAL_MODE_CG_CARD | 40 | 双卡模式C+G | -|CT_NATIONAL_ROAMING_CARD | 41 | 中国电信内部漫游卡 | -|CU_DUAL_MODE_CARD | 42 | 中国联通双模卡 | -|DUAL_MODE_TELECOM_LTE_CARD | 43 | 双模式电信LTE卡 | -|DUAL_MODE_UG_CARD | 50 | 双模式UG卡 | -|SINGLE_MODE_ISIM_CARD8+ | 60 | 单一ISIM卡类型 | +**示例:** -## LockType8+ +```js +sim.getSimIccId(0, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` -锁类型。 + +## sim.getSimIccId7+ + +getSimIccId(slotId: number): Promise + +获取指定卡槽SIM卡的ICCID,使用Promise方式作为异步方法。 此接口为系统接口。 -**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 +**需要权限**:ohos.permission.GET_TELEPHONY_STATE -| 名称 | 值 | 说明 | -| -------- | ---- | ----------- | -| PIN_LOCK | 1 | SIM卡密码锁 | -| FDN_LOCK | 2 | 固定拨号锁 | +**系统能力**:SystemCapability.Telephony.CoreService -## LockState8+ +**参数:** -锁状态。 +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| ---------------- | ------------------------------------------- | +| Promise | 以Promise形式返回获取指定卡槽SIM卡的ICCID。 | + +**示例:** + +```js +let promise = sim.getSimIccId(0); +promise.then(data => { + console.log(`getSimIccId success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`getSimIccId fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sim.getVoiceMailIdentifier8+ + +getVoiceMailIdentifier(slotId: number, callback: AsyncCallback): void + +获取指定卡槽中SIM卡语音信箱的alpha标识符,使用callback方式作为异步方法。 此接口为系统接口。 -**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 +**需要权限**:ohos.permission.GET_TELEPHONY_STATE -| 名称 | 值 | 说明 | -| -------- | ---- | ---------- | -| LOCK_OFF | 0 | 锁关闭状态 | -| LOCK_ON | 1 | 锁开启状态 | +**系统能力**:SystemCapability.Telephony.CoreService -## **PersoLockType**8+ +**参数:** -定制锁类型。 +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback | 是 | 回调函数。 | + +**示例:** + +```js +sim.getVoiceMailIdentifier(0, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sim.getVoiceMailIdentifier8+ + +getVoiceMailIdentifier(slotId: number): Promise + +获取指定卡槽中SIM卡语音信箱的alpha标识符,使用Promise方式作为异步方法。 此接口为系统接口。 -**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 +**需要权限**:ohos.permission.GET_TELEPHONY_STATE -| 名称 | 值 | 说明 | -| ------------ | ---- | ----------------------------------------------- | -| PN_PIN_LOCK | 0 | 定制网络PIN锁*(参照 3GPP TS 22.022 [33])* | -| PN_PUK_LOCK | 1 | 定制网络PUk锁 | -| PU_PIN_LOCK | 2 | 定制网络子集PIN锁*(参照 3GPP TS 22.022 [33])* | -| PU_PUK_LOCK | 3 | 定制网络子集PUK锁 | -| PP_PIN_LOCK | 4 | 定制服务提供者PIN锁*(参照 3GPP TS 22.022 [33])* | -| PP_PUK_LOCK | 5 | 定制服务提供者PUK锁 | -| PC_PIN_LOCK | 6 | 定制企业PIN锁*(参照 3GPP TS 22.022 [33])* | -| PC_PUK_LOCK | 7 | 定制企业Puk锁 | -| SIM_PIN_LOCK | 8 | 定制SIM的PIN锁*(参照 3GPP TS 22.022 [33])* | -| SIM_PUK_LOCK | 9 | 定制SIM的PUK锁 | +**系统能力**:SystemCapability.Telephony.CoreService -## **LockStatusResponse**7+ +**参数:** -锁状态响应。 +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| ---------------- | ------------------------------------------------- | +| Promise | 以Promise形式返回获取指定卡槽SIM卡的alpha标识符。 | + +**示例:** + +```js +let promise = sim.getVoiceMailIdentifier(0); +promise.then(data => { + console.log(`getVoiceMailIdentifier success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`getVoiceMailIdentifier fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sim.getVoiceMailNumber8+ + +getVoiceMailNumber(slotId: number, callback: AsyncCallback): void + +获取指定卡槽中SIM卡的语音信箱号,使用callback方式作为异步方法。 此接口为系统接口。 -**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 +**需要权限**:ohos.permission.GET_TELEPHONY_STATE -| 名称 | 类型 | 说明 | -| --------------- | ------ | ------------------ | -| result | number | 当前操作的结果 | -| remain?: number | number | 剩余次数(可以为空) | +**系统能力**:SystemCapability.Telephony.CoreService -## **LockInfo**8+ +**参数:** -锁状态响应。 +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback | 是 | 回调函数。 | + +**示例:** + +```js +sim.getVoiceMailNumber(0, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sim.getVoiceMailNumber8+ + +getVoiceMailNumber(slotId: number): Promise + +获取指定卡槽中SIM卡的语音信箱号,使用Promise方式作为异步方法。 此接口为系统接口。 -**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 +**需要权限**:ohos.permission.GET_TELEPHONY_STATE -| 名称 | 类型 | 说明 | -| -------- | --------- | ------ | -| lockType | LockType | 锁类型 | -| password | string | 密码 | -| state | LockState | 锁状态 | +**系统能力**:SystemCapability.Telephony.CoreService -## **PersoLockInfo**8+ +**参数:** -锁状态响应。 +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| ---------------- | ------------------------------------------------ | +| Promise | 以Promise形式返回获取指定卡槽SIM卡的语音信箱号。 | + +**示例:** + +```js +let promise = sim.getVoiceMailNumber(0); +promise.then(data => { + console.log(`getVoiceMailNumber success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`getVoiceMailNumber fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sim.setVoiceMailInfo8+ + +setVoiceMailInfo(slotId: number, mailName: string, mailNumber: string, callback: AsyncCallback): void + +设置语音邮件信息,使用callback方式作为异步方法。 此接口为系统接口。 -**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService -| 名称 | 类型 | 说明 | -| -------- | ------------- | ------------ | -| lockType | PersoLockType | 定制锁的类型 | -| password | string | 密码 | +**参数:** -## **IccAccountInfo**7+ +| 参数名 | 类型 | 必填 | 说明 | +| ---------- | -------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| mailName | string | 是 | 邮件名字 | +| mailNumber | string | 是 | 邮件号码 | +| callback | AsyncCallback | 是 | 回调函数。 | -Icc账户信息。 +**示例:** + +```js +sim.setVoiceMailInfo(0, "mail", "xxx@xxx.com" , (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sim.setVoiceMailInfo8+ + +setVoiceMailInfo(slotId: number, mailName: string, mailNumber: string): Promise + +设置语音邮件信息,使用Promise方式作为异步方法。 此接口为系统接口。 -**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 +**需要权限**:ohos.permission.SET_TELEPHONY_STATE -| 名称 | 类型 | 说明 | -| ---------- | ------- | ---------------- | -| simId | number | SIM卡ID | -| slotIndex | number | 卡槽ID | -| isEsim | boolean | 标记卡是否是eSim | -| isActive | boolean | 卡是否被激活 | -| iccId | string | ICCID号码 | -| showName | string | SIM卡显示名称 | -| showNumber | string | SIM卡显示号码 | +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ---------- | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| mailName | string | 是 | 邮件名字 | +| mailNumber | string | 是 | 邮件号码 | + +**返回值:** + +| 类型 | 说明 | +| -------------- | ----------------------- | +| Promise | 以Promise形式返回结果。 | + +**示例:** + +```js +let promise = sim.setVoiceMailInfo(0, "mail", "xxx@xxx.com"); +promise.then(data => { + console.log(`setVoiceMailInfo success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`setVoiceMailInfo fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sim.getSimTelephoneNumber8+ + +getSimTelephoneNumber(slotId: number, callback: AsyncCallback): void + +获取指定卡槽中SIM卡的MSISDN,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.GET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback | 是 | 回调函数。 | + +**示例:** + +```js +sim.getSimTelephoneNumber(0, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sim.getSimTelephoneNumber8+ + +getSimTelephoneNumber(slotId: number): Promise + +获取指定卡槽中SIM卡的MSISDN,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.GET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| ---------------- | -------------------------------------------- | +| Promise | 以Promise形式返回获取指定卡槽SIM卡的MSISDN。 | + +**示例:** + +```js +let promise = sim.getSimTelephoneNumber(0); +promise.then(data => { + console.log(`getSimTelephoneNumber success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`getSimTelephoneNumber fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sim.getSimGid17+ + +getSimGid1(slotId: number, callback: AsyncCallback): void + +获取指定卡槽中SIM卡的组标识符级别1(GID1),使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.GET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback\ | 是 | 回调函数。 | + +**示例:** + +```js +sim.getSimGid1(0, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sim.getSimGid17+ + +getSimGid1(slotId: number): Promise + +获取指定卡槽中SIM卡的组标识符级别1(GID1),使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.GET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| ---------------- | ------------------------------------------------- | +| Promise | 以Promise形式返回获取指定卡槽SIM卡的标识符级别1。 | + +**示例:** + +```js +let promise = sim.getSimGid1(0); +promise.then(data => { + console.log(`getSimGid1 success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`getSimGid1 fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sim.getIMSI + +getIMSI(slotId: number, callback: AsyncCallback): void + +获取国际移动用户识别码,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.GET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback\ | 是 | 回调函数。 | + +**示例:** + +```js +sim.getIMSI(0, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sim.getIMSI + +getIMSI(slotId: number): Promise + +获取国际移动用户识别码,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.GET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| ---------------- | ------------------------------------------- | +| Promise | 以Promise形式返回获取的国际移动用户识别码。 | + +**示例:** + +```js +let promise = sim.getIMSI(0); +promise.then(data => { + console.log(`getIMSI success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`getIMSI fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sim.getOperatorConfigs8+ + +getOperatorConfigs(slotId: number, callback: AsyncCallback>): void + +获取运营商配置,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.GET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------------------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback> | 是 | 回调函数。 | + +**示例:** + +```js +sim.getOperatorConfigs(0, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sim.getOperatorConfigs8+ + +getOperatorConfigs(slotId: number): Promise> + +获取运营商配置,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.GET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| --------------------------------------------------- | ----------------------------- | +| Promise> | 以Promise形式返回运营商配置。 | + +**示例:** + +```js +let promise = sim.getOperatorConfigs(0); +promise.then(data => { + console.log(`getOperatorConfigs success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`getOperatorConfigs fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sim.queryIccDiallingNumbers8+ + +queryIccDiallingNumbers(slotId: number, type: ContactType, callback: AsyncCallback>): void + +查询SIM卡联系人号码,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.READ_CONTACTS + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------------------ | ---- | ---------------------------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| type | ContactType | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | +| callback | AsyncCallback> | 是 | 回调函数。 | + +**示例:** + +```js +sim.queryIccDiallingNumbers(0, 1, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sim.queryIccDiallingNumbers8+ + +queryIccDiallingNumbers(slotId: number, type: ContactType): Promise> + +查询SIM卡联系人号码,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.READ_CONTACTS + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ----------- | ---- | ---------------------------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| type | ContactType | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------------------ | ------------------------------ | +| Promise> | 以Promise形式返回Icc拨号号码。 | + +**示例:** + +```js +let promise = sim.queryIccDiallingNumbers(0, 1); +promise.then(data => { + console.log(`queryIccDiallingNumbers success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`queryIccDiallingNumbers fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sim.addIccDiallingNumbers8+ + +addIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo, callback: AsyncCallback): void + +添加SIM卡联系人号码,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.WRITE_CONTACTS + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| type | [ContactType](#ContactType8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | +| diallingNumbers | [DiallingNumbersInfo](#DiallingNumbersInfo8) | 是 | 拨号号码信息 | +| callback | AsyncCallback | 是 | 回调函数 | + +**示例:** + +```js +let diallingNumbersInof = { + alphaTag = "alpha", + number = "138xxxxxxxx", + recordNumber = 123, + pin2 = "1234" +}; +sim.addIccDiallingNumbers(0, 1, diallingNumbersInof, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sim.addIccDiallingNumbers8+ + +addIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise + +添加SIM卡联系人号码,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.WRITE_CONTACTS + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| type | [ContactType](#ContactType8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | +| diallingNumbers | [DiallingNumbersInfo](#DiallingNumbersInfo8) | 是 | 拨号号码信息 | + +**返回值:** + +| 类型 | 说明 | +| -------------- | --------------------------- | +| Promise | 以Promise形式返回添加结果。 | + +**示例:** + +```js +let diallingNumbersInof = { + alphaTag = "alpha", + number = "138xxxxxxxx", + recordNumber = 123, + pin2 = "1234" +}; +let promise = sim.addIccDiallingNumbers(0, 1, diallingNumbersInof); +promise.then(data => { + console.log(`addIccDiallingNumbers success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`addIccDiallingNumbers fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sim.delIccDiallingNumbers8+ + +delIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo, callback: AsyncCallback): void + +删除SIM卡联系人号码,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.WRITE_CONTACTS + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| type | [ContactType](#ContactType8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | +| diallingNumbers | [DiallingNumbersInfo](#DiallingNumbersInfo8) | 是 | 拨号号码信息 | +| callback | AsyncCallback | 是 | 回调函数 | + +**示例:** + +```js +let diallingNumbersInof = { + alphaTag = "alpha", + number = "138xxxxxxxx", + recordNumber = 123, + pin2 = "1234" +}; +sim.delIccDiallingNumbers(0, 1, diallingNumbersInof, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sim.delIccDiallingNumbers8+ + +delIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise + +删除SIM卡联系人号码,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.WRITE_CONTACTS + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| type | [ContactType](#ContactType8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | +| diallingNumbers | [DiallingNumbersInfo](#DiallingNumbersInfo8) | 是 | 拨号号码信息 | + +**返回值:** + +| 类型 | 说明 | +| -------------- | --------------------------- | +| Promise | 以Promise形式返回删除结果。 | + +**示例:** + +```js +let diallingNumbersInof = { + alphaTag = "alpha", + number = "138xxxxxxxx", + recordNumber = 123, + pin2 = "1234" +}; +let promise = sim.delIccDiallingNumbers(0, 1, diallingNumbersInof); +promise.then(data => { + console.log(`delIccDiallingNumbers success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`delIccDiallingNumbers fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sim.updateIccDiallingNumbers8+ + +updateIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo, callback: AsyncCallback): void + +更新SIM卡联系人号码,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.WRITE_CONTACTS + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| type | [ContactType](#ContactType8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | +| diallingNumbers | [DiallingNumbersInfo](#DiallingNumbersInfo8) | 是 | 拨号号码信息 | +| callback | AsyncCallback | 是 | 回调函数 | + +**示例:** + +```js +let diallingNumbersInof = { + alphaTag = "alpha", + number = "138xxxxxxxx", + recordNumber = 123, + pin2 = "1234" +}; +sim.updateIccDiallingNumbers(0, 1, diallingNumbersInof, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sim.updateIccDiallingNumbers8+ + +updateIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: DiallingNumbersInfo): Promise + +更新SIM卡联系人号码,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.WRITE_CONTACTS + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| type | [ContactType](#ContactType8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | +| diallingNumbers | [DiallingNumbersInfo](#DiallingNumbersInfo8) | 是 | 拨号号码信息 | + +**返回值:** + +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise | 以Promise形式返回更新的结果。 | + +**示例:** + +```js +let diallingNumbersInof = { + alphaTag = "alpha", + number = "138xxxxxxxx", + recordNumber = 123, + pin2 = "1234" +}; +let promise = sim.updateIccDiallingNumbers(0, 1, diallingNumbersInof); +promise.then(data => { + console.log(`updateIccDiallingNumbers success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`updateIccDiallingNumbers fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sim.sendEnvelopeCmd8+ + +sendEnvelopeCmd(slotId: number, cmd: string, callback: AsyncCallback): void + +发送信封命令,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| cmd | string | 是 | 命令 | +| callback | AsyncCallback | 是 | 是 | + +**示例:** + +```js +sim.sendEnvelopeCmd(0, "ls", (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sim.sendEnvelopeCmd8+ + +sendEnvelopeCmd(slotId: number, cmd: string): Promise + +发送信封命令,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| cmd | string | 是 | 命令 | + +**返回值:** + +| 类型 | 说明 | +| -------------- | --------------------------- | +| Promise | 以Promise形式返回发送结果。 | + +**示例:** + +```js +let promise = sim.sendEnvelopeCmd(0, "ls"); +promise.then(data => { + console.log(`sendEnvelopeCmd success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`sendEnvelopeCmd fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sim.sendTerminalResponseCmd8+ + +sendTerminalResponseCmd(slotId: number, cmd: string, callback: AsyncCallback): void + +发送终端响应命令,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| cmd | string | 是 | 命令 | +| callback | AsyncCallback | 是 | 回调函数。 | + +**示例:** + +```js +sim.sendTerminalResponseCmd(0, "ls", (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sim.sendTerminalResponseCmd8+ + +sendTerminalResponseCmd(slotId: number, cmd: string): Promise + +发送终端响应命令,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| cmd | string | 是 | 命令 | + +**返回值:** + +| 类型 | 说明 | +| -------------- | --------------------------- | +| Promise | 以Promise形式返回发送结果。 | + +**示例:** + +```js +let promise = sim.sendTerminalResponseCmd(0, "ls"); +promise.then(data => { + console.log(`sendTerminalResponseCmd success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`sendTerminalResponseCmd fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sim.unlockSimLock8+ + +unlockSimLock(slotId: number, lockInfo: PersoLockInfo, callback: AsyncCallback): void + +解锁SIM卡锁,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| lockInfo | [PersoLockInfo](#PersoLockInfo8) | 是 | 定制锁类型信息 | +| callback | AsyncCallback<[LockStatusResponse](#LockStatusResponse7)\> | 是 | 回调函数 | + +**示例:** + +```js +let persoLockInfo = { + lockType = 0, + password = "1234" +}; +sim.unlockSimLock(0, persoLockInfo, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sim.unlockSimLock8+ + +unlockSimLock(slotId: number, lockInfo: PersoLockInfo): Promise + +解锁SIM卡锁,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| lockInfo | [PersoLockInfo](#PersoLockInfo8) | 是 | 定制锁类型信息 | + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------------------- | ------------------------- | +| Promise<[LockStatusResponse](#LockStatusResponse7)\> | 以Promise形式返回锁状态。 | + +**示例:** + +```js +let persoLockInfo = { + lockType = 0, + password = "1234" +}; +let promise = sim.unlockSimLock(0, persoLockInfo); +promise.then(data => { + console.log(`unlockSimLock success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`unlockSimLock fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sim.getOpKey9+ + +getOpKey(slotId: number, callback: AsyncCallback): void + +获取指定卡槽中SIM卡的opkey,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback | 是 | 回调函数 | + +**示例:** + +```js +sim.getOpKey(0, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sim.getOpKey9+ + +getOpKey(slotId: number): Promise + +获取指定卡槽中SIM卡的opkey,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| ---------------- | ----------------------------------------- | +| Promise | 以Promise形式返回指定卡槽中SIM卡的opkey。 | + +**示例:** + +```js +let promise = sim.getOpKey(0); +promise.then(data => { + console.log(`getOpKey success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`getOpKey fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sim.getOpName9+ + +getOpName(slotId: number, callback: AsyncCallback): void + +获取指定卡槽中SIM卡的OpName,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback | 是 | 回调函数 | + +**示例:** + +```js +sim.getOpName(0, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sim.getOpName9+ + +getOpName(slotId: number): Promise + +获取指定卡槽中SIM卡的OpName,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.CoreService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| ---------------- | ------------------------------------------ | +| Promise | 以Promise形式返回指定卡槽中SIM卡的OpName。 | + +**示例:** + +```js +let promise = sim.getOpName(0); +promise.then(data => { + console.log(`getOpName success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.log(`getOpName fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## SimState + +SIM卡状态。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 值 | 说明 | +| --------------------- | ---- | ---------------------------------------------------------- | +| SIM_STATE_UNKNOWN | 0 | SIM卡状态未知,即无法获取准确的状态。 | +| SIM_STATE_NOT_PRESENT | 1 | 表示SIM卡处于not present状态,即卡槽中没有插入SIM卡。 | +| SIM_STATE_LOCKED | 2 | 表示SIM卡处于locked状态,即SIM卡被PIN、PUK或网络锁锁定。 | +| SIM_STATE_NOT_READY | 3 | 表示SIM卡处于not ready状态,即SIM卡在位但无法正常工作。 | +| SIM_STATE_READY | 4 | 表示SIM卡处于ready状态,即SIM卡在位且工作正常。 | +| SIM_STATE_LOADED | 5 | 表示SIM卡处于loaded状态,即SIM卡在位且所有卡文件加载完毕。 | + +## CardType7+ + +卡类型。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 值 | 说明 | +| ----- | ----- | ----- | +|UNKNOWN_CARD | -1 | 未知类型 | +|SINGLE_MODE_SIM_CARD | 10 | 单SIM卡 | +|SINGLE_MODE_USIM_CARD | 20 | 单USIM卡 | +|SINGLE_MODE_RUIM_CARD | 30 | 单RUIM卡 | +|DUAL_MODE_CG_CARD | 40 | 双卡模式C+G | +|CT_NATIONAL_ROAMING_CARD | 41 | 中国电信内部漫游卡 | +|CU_DUAL_MODE_CARD | 42 | 中国联通双模卡 | +|DUAL_MODE_TELECOM_LTE_CARD | 43 | 双模式电信LTE卡 | +|DUAL_MODE_UG_CARD | 50 | 双模式UG卡 | +|SINGLE_MODE_ISIM_CARD8+ | 60 | 单一ISIM卡类型 | + +## LockType8+ + +锁类型。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 值 | 说明 | +| -------- | ---- | ----------- | +| PIN_LOCK | 1 | SIM卡密码锁 | +| FDN_LOCK | 2 | 固定拨号锁 | + +## LockState8+ + +锁状态。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 值 | 说明 | +| -------- | ---- | ---------- | +| LOCK_OFF | 0 | 锁关闭状态 | +| LOCK_ON | 1 | 锁开启状态 | + +## **PersoLockType**8+ + +定制锁类型。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 值 | 说明 | +| ------------ | ---- | ----------------------------------------------- | +| PN_PIN_LOCK | 0 | 定制网络PIN锁*(参照 3GPP TS 22.022 [33])* | +| PN_PUK_LOCK | 1 | 定制网络PUk锁 | +| PU_PIN_LOCK | 2 | 定制网络子集PIN锁*(参照 3GPP TS 22.022 [33])* | +| PU_PUK_LOCK | 3 | 定制网络子集PUK锁 | +| PP_PIN_LOCK | 4 | 定制服务提供者PIN锁*(参照 3GPP TS 22.022 [33])* | +| PP_PUK_LOCK | 5 | 定制服务提供者PUK锁 | +| PC_PIN_LOCK | 6 | 定制企业PIN锁*(参照 3GPP TS 22.022 [33])* | +| PC_PUK_LOCK | 7 | 定制企业Puk锁 | +| SIM_PIN_LOCK | 8 | 定制SIM的PIN锁*(参照 3GPP TS 22.022 [33])* | +| SIM_PUK_LOCK | 9 | 定制SIM的PUK锁 | + +## **LockStatusResponse**7+ + +锁状态响应。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 类型 | 说明 | +| --------------- | ------ | ------------------ | +| result | number | 当前操作的结果 | +| remain?: number | number | 剩余次数(可以为空) | + +## **LockInfo**8+ + +锁状态响应。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 类型 | 说明 | +| -------- | ------------------------ | ------ | +| lockType | [LockType](#LockType8) | 锁类型 | +| password | string | 密码 | +| state | [LockState](#LockState8) | 锁状态 | + +## **PersoLockInfo**8+ + +锁状态响应。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 类型 | 说明 | +| -------- | -------------------------------- | ------------ | +| lockType | [PersoLockType](#PersoLockType8) | 定制锁的类型 | +| password | string | 密码 | + +## **IccAccountInfo**7+ + +Icc账户信息。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 类型 | 说明 | +| ---------- | ------- | ---------------- | +| simId | number | SIM卡ID | +| slotIndex | number | 卡槽ID | +| isEsim | boolean | 标记卡是否是eSim | +| isActive | boolean | 卡是否被激活 | +| iccId | string | ICCID号码 | +| showName | string | SIM卡显示名称 | +| showNumber | string | SIM卡显示号码 | + +## **OperatorConfig**8+ + +运营商配置。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 类型 | 说明 | +| ----- | ------ | ---- | +| field | string | 字段 | +| value | string | 值 | + +## **DiallingNumbersInfo**8+ + +拨号号码信息。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 + +| 名称 | 类型 | 说明 | +| ------------ | ------ | -------- | +| alphaTag | string | 标签 | +| number | string | 号码 | +| recordNumber | number | 记录编号 | +| pin2 | string | pin2密码 | + +## **ContactType**8+ + +联系人类型。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 +| 名称 | 值 | 说明 | +| :-------------- | ---- | ---------- | +| GENERAL_CONTACT | 1 | 通用联系人 | +| FIXED_DIALING | 2 | 固定拨号 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-sms.md b/zh-cn/application-dev/reference/apis/js-apis-sms.md index ed5918167b..cc3cefb397 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-sms.md +++ b/zh-cn/application-dev/reference/apis/js-apis-sms.md @@ -375,6 +375,739 @@ let result = sms.hasSmsCapability(); console.log(`hasSmsCapability: ${JSON.stringify(result)}`); ``` +## sms.splitMessage8+ + +splitMessage(content: string, callback: AsyncCallback>): void + +将长短信拆分为多个片段,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SEND_MESSAGES + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------- | ---- | ----------------------------- | +| content | string | 是 | 指示短消息内容,不能为null。 | +| callback | AsyncCallback> | 是 | 回调函数。 | + +**示例:** + +```js +string content= "long message"; +sms.splitMessage(content, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sms.splitMessage8+ + +splitMessage(content: string): Promise> + +将长短信拆分为多个片段,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SEND_MESSAGES + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ------ | ---- | ------------------------------------ | +| content | string | 是 | 指示短消息内容,不能为{@code null}。 | + +**返回值:** + +| 类型 | 说明 | +| ----------------------- | ----------------------------------- | +| Promise> | 以Promise形式返回多个片段的的结果。 | + +**示例:** + +```js +string content = "long message"; +let promise = sms.splitMessage(content); +promise.then(data => { + console.log(`splitMessage success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`splitMessage fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sms.addSimMessage7+ + +addSimMessage(options: SimMessageOptions, callback: AsyncCallback): void + +添加SIM卡短信,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ------------------------------------------------------------ | +| options | [SimMessageOptions](#SimMessageOptions7) | 是 | slotId: number
smsc: string
pdu: string
status: [SimMessageStatus](#SimMessageStatus7) | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +let simMessageOptions = { + slotId = 0, + smsc = "test", + pdu = "xxxxxx", + status = 0 +}; +sms.addSimMessage(simMessageOptions, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sms.addSimMessage7+ + +addSimMessage(options: SimMessageOptions): Promise + +添加SIM卡短信,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ---------------------------------------- | ---- | ------------------------------------------------------------ | +| options | [SimMessageOptions](#SimMessageOptions7) | 是 | slotId: number
smsc: string
pdu: string
status: [SimMessageStatus](#SimMessageStatus7) | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | ----------------------------- | +| Promise<void> | 以Promise形式返回添加的结果。 | + +**示例:** + +```js +let simMessageOptions = { + slotId = 0, + smsc = "test", + pdu = "xxxxxx", + status = 0 +}; +let promise = sms.addSimMessage(simMessageOptions); +promise.then(data => { + console.log(`addSimMessage success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`addSimMessage fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sms.delSimMessage7+ + +delSimMessage(slotId: number, msgIndex: number, callback: AsyncCallback): void + +删除SIM卡短信,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ----------------------------------------- | +| slotId | number | 是 | SIM卡槽ID:
- 0:卡槽1
- 1:卡槽2 | +| msgIndex | number | 是 | 消息索引 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +let slotId = 0; +let msgIndex = 1; +sms.delSimMessage(slotId, msgIndex, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sms.delSimMessage7+ + +delSimMessage(slotId: number, msgIndex: number): Promise + +删除SIM卡短信,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------ | ---- | ----------------------------------------- | +| slotId | number | 是 | SIM卡槽ID:
- 0:卡槽1
- 1:卡槽2 | +| msgIndex | number | 是 | 消息索引 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | ----------------------------- | +| Promise<void> | 以Promise形式返回删除的结果。 | + +**示例:** + +```js +let slotId = 0; +let msgIndex = 1; +let promise = sms.delSimMessage(slotId, msgIndex); +promise.then(data => { + console.log(`delSimMessage success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`delSimMessage fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sms.updateSimMessage7+ + +updateSimMessage(options: UpdateSimMessageOptions, callback: AsyncCallback): void + +更新SIM卡短信,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------ | +| options | [UpdateSimMessageOptions](#UpdateSimMessageOptions7) | 是 | slotId: number
msgIndex: number
newStatus: [SimMessageStatus](#SimMessageStatus7)
pdu: string
smsc: string | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +let updateSimMessageOptions = { + slotId = 0, + msgIndex = 1, + newStatus = 0, + pdu = "xxxxxxx", + smsc = "test" +}; +sms.updateSimMessage(updateSimMessageOptions, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sms.updateSimMessage7+ + +updateSimMessage(options: UpdateSimMessageOptions): Promise + +更新SIM卡短信,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------ | +| options | [UpdateSimMessageOptions](#UpdateSimMessageOptions7) | 是 | slotId: number
msgIndex: number
newStatus: [SimMessageStatus](#SimMessageStatus7)
pdu: string
smsc: string | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | ----------------------------- | +| Promise<void> | 以Promise形式返回更新的结果。 | + +**示例:** + +```js +let updateSimMessageOptions = { + slotId = 0, + msgIndex = 1, + newStatus = 0, + pdu = "xxxxxxx", + smsc = "test" +}; +let promise = sms.updateSimMessage(updateSimMessageOptions); +promise.then(data => { + console.log(`updateSimMessage success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`updateSimMessage fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sms.getAllSimMessages7+ + +getAllSimMessages(slotId: number, callback: AsyncCallback>): void + +获取所有SIM卡短信,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.RECEIVE_SMS + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------------------------------- | ---- | ----------------------------------------- | +| slotId | number | 是 | SIM卡槽ID:
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback> | 是 | 回调函数。 | + +**示例:** + +```js +let slotId = 0; +sms.getAllSimMessages(slotId, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sms.getAllSimMessages7+ + +getAllSimMessages(slotId: number): Promise> + +获取所有SIM卡短信,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.RECEIVE_SMS + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ----------------------------------------- | +| slotId | number | 是 | SIM卡槽ID:
- 0:卡槽1
- 1:卡槽2 | + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------------- | ---------------------------------- | +| PromiseArray<[SimShortMessage](#SimShortMessage8)\>> | 以Promise形式返回获取的SIM短消息。 | + +**示例:** + +```js +let slotId = 0; +let promise = sms.getAllSimMessages(slotId); +promise.then(data => { + console.log(`getAllSimMessages success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`getAllSimMessages fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sms.setCBConfig7+ + +setCBConfig(options: CBConfigOptions, callback: AsyncCallback): void + +设置CB配置,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.RECEIVE_SMS + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------ | ---- | ------------------------------------------------------------ | +| options | [CBConfigOptions](#CBConfigOptions8) | 是 | slotId: number
smsc: string
pdu: string
status: [SimMessageStatus](#SimMessageStatus7) | +| callback | AsyncCallback<void> | 是 | 回调函数。 | + +**示例:** + +```js +let cbConfigOptions = { + slotId = 0, + smsc = "test", + pdu = "xxxxxxxx", + status = 0 +}; +sms.setCBConfig(cbConfigOptions, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sms.setCBConfig7+ + +setCBConfig(options: CBConfigOptions): Promise + +设置CB配置,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.RECEIVE_SMS + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ------------------------------------ | ---- | ------------------------------------------------------------ | +| options | [CBConfigOptions](#CBConfigOptions8) | 是 | slotId: number
smsc: string
pdu: string
status: [SimMessageStatus](#SimMessageStatus7) | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | ----------------------------- | +| Promise<void> | 以Promise形式返回设置的结果。 | + +**示例:** + +```js +let cbConfigOptions = { + slotId = 0, + smsc = "test", + pdu = "xxxxxxxx", + status = 0 +}; +let promise = sms.setCBConfig(cbConfigOptions); +promise.then(data => + console.log(`setCBConfig success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`setCBConfig fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sms.getSmsSegmentsInfo8+ + +getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean, callback: AsyncCallback): void + +获取短信段信息,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------- | ------------------------------------------------------------ | ---- | ----------------------------------------- | +| slotId | number | 是 | SIM卡槽ID:
- 0:卡槽1
- 1:卡槽2 | +| message | string | 是 | 消息 | +| force7bit | boolean | 是 | 强转7位 | +| callback | AsyncCallback<[SmsSegmentsInfo](#<SmsSegmentsInfo8)> | 是 | 回调函数 | + +**示例:** + +```js +let slotId = 0; +sms.getSmsSegmentsInfo(slotId, "message", false, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sms.getSmsSegmentsInfo8+ + +getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean): Promise + +获取短信段信息,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------- | ------- | ---- | ----------------------------------------- | +| slotId | number | 是 | SIM卡槽ID:
- 0:卡槽1
- 1:卡槽2 | +| message | string | 是 | 消息 | +| force7bit | boolean | 是 | 强转7位 | + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------------------ | ----------------------------- | +| Promise<<[SmsSegmentsInfo](#<SmsSegmentsInfo8)>> | 以Promise形式返回短信段信息。 | + +**示例:** + +```js +let slotId = 0; +let promise = sms.getSmsSegmentsInfo(slotId, "message", false); +promise.then(data => + console.log(`getSmsSegmentsInfo success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`getSmsSegmentsInfo fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sms.isImsSmsSupported8+ + +isImsSmsSupported(callback: AsyncCallback): void + +如果IMS已注册并且在IMS上支持SMS,则支持通过IMS发送SMS,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------- | ---- | ---------- | +| callback | AsyncCallback<boolean> | 是 | 回调函数。 | + +**示例:** + +```js +sms.isImsSmsSupported((err, data) => { + console.log(`callback: err->${JSON.(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sms.isImsSmsSupported8+ + +isImsSmsSupported(): Promise + +如果IMS已注册并且在IMS上支持SMS,则支持通过IMS发送SMS,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.SmsMms + +**返回值:** + +| 类型 | 说明 | +| ---------------------- | ----------------------- | +| Promise<boolean> | 以Promise形式返回结果。 | + +**示例:** + +```js +let promise = sms.isImsSmsSupported(); +promise.then(data => { + console.log(`isImsSmsSupported success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`isImsSmsSupported fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sms.getImsShortMessageFormat8+ + +getImsShortMessageFormat(callback: AsyncCallback): void + +获取IMS上支持的SMS格式,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------- | ---- | ---------- | +| callback | AsyncCallback<string> | 是 | 回调函数。 | + +**示例:** + +```js +sms.getImsShortMessageFormat((err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sms.getImsShortMessageFormat8+ + +getImsShortMessageFormat(): Promise + +获取IMS上支持的SMS格式,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.SmsMms + +**返回值:** + +| 类型 | 说明 | +| --------------------- | -------------------------- | +| Promise<string> | 以Promise形式返回SMS格式。 | + +**示例:** + +```js +let promise = sms.getImsShortMessageFormat(); +promise.then(data => { + console.log(`getImsShortMessageFormat success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`getImsShortMessageFormat fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sms.decodeMms8+ + +decodeMms(mmsFilePathName: string | Array, callback: AsyncCallback): void + +彩信解码,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------------- | ------------------------------------------------------- | ---- | -------------- | +| mmsFilePathName | string \|Array | 是 | 彩信文件路径名 | +| callback | AsyncCallback<[MmsInformation](#MmsInformation8)> | 是 | 回调函数。 | + +**示例:** + +```js +let mmsFilePathName = "filename"; +sms.decodeMms(mmsFilePathName, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sms.decodeMms8+ + +decodeMms(mmsFilePathName: string | Array): Promise + +彩信解码,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------------- | ----------------------- | ---- | -------------- | +| mmsFilePathName | string \|Array | 是 | 彩信文件路径名 | + +**返回值:** + +| 类型 | 说明 | +| --------------------------------------------------------- | --------------------------- | +| Promise<<[MmsInformation](#MmsInformation8)>> | 以Promise形式返回彩信信息。 | + +**示例:** + +```js +let mmsFilePathName = "filename"; +let promise = sms.getSmscAddr(mmsFilePathName); +promise.then(data => { + console.log(`decodeMms success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`decodeMms fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## sms.encodeMms8+ + +encodeMms(mms: MmsInformation, callback: AsyncCallback>): void + +彩信编码,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------- | ---- | ------------------------------------------------------------ | +| mms | [MmsInformation](#MmsInformation8) | 是 | messageType: [MessageType](#MessageType8)
mmsType : [MmsSendReq](#MmsSendReq8) \|[MmsSendConf](#MmsSendConf8)\|[MmsNotificationInd](#MmsNotificationInd8)\|
[MmsRespInd](#MmsRespInd8)\|[MmsRetrieveConf](#MmsRetrieveConf8)\|[MmsAcknowledgeInd](#MmsAcknowledgeInd8)\|
[MmsDeliveryInd](#MmsDeliveryInd8)\|[MmsReadOrigInd](#MmsReadOrigInd8)\|[MmsReadRecInd](#MmsReadRecInd8)
attachment?: Array<[MmsAttachment](#MmsAttachment8)\> | +| callback | AsyncCallback<Array> | 是 | 回调函数。 | + +**示例:** + +```js +let mmsAcknowledgeInd = { + transactionId = "100", + version = 0x10, + reportAllowed = 128 +}; +let mmsInformation = { + messageType = 133, + mmsType = mmsAcknowledgeInd +}; +sms.encodeMms(mmsInformation, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + + +## sms.encodeMms8+ + +encodeMms(mms: MmsInformation): Promise> + +彩信编码,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**系统能力**:SystemCapability.Telephony.SmsMms + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ---------------------------------- | ---- | ------------------------------------------------------------ | +| mms | [MmsInformation](#MmsInformation8) | 是 | messageType: [MessageType](#MessageType8)
mmsType : [MmsSendReq](#MmsSendReq8) \|[MmsSendConf](#MmsSendConf8)\|[MmsNotificationInd](#MmsNotificationInd8)\|
[MmsRespInd](#MmsRespInd8)\|[MmsRetrieveConf](#MmsRetrieveConf8)\|[MmsAcknowledgeInd](#MmsAcknowledgeInd8)\|
[MmsDeliveryInd](#MmsDeliveryInd8)\|[MmsReadOrigInd](#MmsReadOrigInd8)\|[MmsReadRecInd](#MmsReadRecInd8)
attachment?: Array<[MmsAttachment](#MmsAttachment8)\> | + +**返回值:** + +| 类型 | 说明 | +| ----------------------------- | ----------------------------------- | +| Promise<Array> | 以Promise形式返回彩信编码后的结果。 | + +**示例:** + +```js +let mmsAcknowledgeInd = { + transactionId = "100", + version = 0x10, + reportAllowed = 128 +}; +let mmsInformation = { + messageType = 133, + mmsType = mmsAcknowledgeInd +}; +let promise = sms.encodeMms(mmsInformation); +promise.then(data => { + console.log(`encodeMms success, promise: data->${JSON.stringify(data)}`); +}).catch(err => { + console.error(`encodeMms fail, promise: err->${JSON.stringify(err)}`); +}); +``` + ## ShortMessage 短信实例。 @@ -463,4 +1196,407 @@ console.log(`hasSmsCapability: ${JSON.stringify(result)}`); | SEND_SMS_SUCCESS | 0 | 发送短信成功。 | | SEND_SMS_FAILURE_UNKNOWN | 1 | 发送短信失败,原因未知。 | | SEND_SMS_FAILURE_RADIO_OFF | 2 | 发送短信失败,原因为调制解调器关机。 | -| SEND_SMS_FAILURE_SERVICE_UNAVAILABLE | 3 | 发送短信失败,原因为网络不可用、不支持发送或接收短信。 | \ No newline at end of file +| SEND_SMS_FAILURE_SERVICE_UNAVAILABLE | 3 | 发送短信失败,原因为网络不可用、不支持发送或接收短信。 | + +## MmsInformation8+ + +彩信信息。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 类型 | 必填 | 说明 | +| ----------- | ------------------------------------------------------------ | ---- | -------- | +| messageType | [MessageType](#MessageType8) | 是 | 消息类型 | +| mmsType | [MmsSendReq](#MmsSendReq8) \|[MmsSendConf](#MmsSendConf8) \|[MmsNotificationInd](#MmsNotificationInd8) \|[MmsRespInd](#MmsRespInd8) \|[MmsRetrieveConf](#MmsRetrieveConf8)\|[MmsAcknowledgeInd](#MmsAcknowledgeInd8)\|[MmsDeliveryInd](#MmsDeliveryInd8)\|[MmsReadOrigInd](#MmsReadOrigInd8)\|[MmsReadRecInd](#MmsReadOrigInd8) | 是 | 彩信类型 | +| attachment | Array<[MmsAttachment](#MmsAttachment8)\> | 否 | 附件 | + +## MmsSendReq8+ + +彩信发送请求。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 类型 | 必填 | 说明 | +| ---------------- | ------------------------------------ | ---- | ------------ | +| from | [MmsAddress](#MmsAddress8) | 是 | 彩信来源 | +| transactionId | string | 是 | 事务ID | +| contentType | string | 是 | 内容类型 | +| version | [MmsVersionType](#MmsVersionType8) | 是 | 版本 | +| to | Array<[MmsAddress](#MmsAddress8)\> | 否 | 发送至 | +| date | number | 否 | 日期 | +| cc | Array<[MmsAddress](#MmsAddress8)\> | 否 | 抄送 | +| bcc | Array<[MmsAddress](#MmsAddress8)\> | 否 | 暗抄送 | +| subject | string | 否 | 主题 | +| messageClass | number | 否 | 消息类 | +| expiry | number | 否 | 到期 | +| priority | [MmsPriorityType](#MmsPriorityType8) | 否 | 优先 | +| senderVisibility | number | 否 | 发件人可见性 | +| deliveryReport | number | 否 | 交付报告 | +| readReport | number | 否 | 阅读报告 | + +## MmsSendConf8+ + +彩信发送配置。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 类型 | 必填 | 说明 | +| ------------- | ---------------------------------- | ---- | -------- | +| responseState | number | 是 | 响应状态 | +| transactionId | string | 是 | 事务ID | +| version | [MmsVersionType](#MmsVersionType8) | 是 | 版本 | +| messageId | string | 否 | 消息ID | + +## MmsNotificationInd8+ + +彩信通知索引。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 类型 | 必填 | 说明 | +| --------------- | ---------------------------------- | ---- | -------- | +| transactionId | string | 是 | 事务ID | +| messageClass | number | 是 | 消息类 | +| messageSize | number | 是 | 消息大小 | +| expiry | number | 是 | 到期 | +| contentLocation | string | 是 | 内容位置 | +| version | [MmsVersionType](#MmsVersionType8) | 是 | 版本 | +| from | [MmsAddress](#MmsAddress8) | 否 | 来源 | +| subject | string | 否 | 主题 | +| deliveryReport | number | 否 | 状态报告 | +| contentClass | number | 否 | 内容类 | + +## MmsAcknowledgeInd8+ + +彩信确认索引。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 类型 | 必填 | 说明 | +| ------------- | ---------------------------------- | ---- | -------- | +| transactionId | string | 是 | 事务ID | +| version | [MmsVersionType](#MmsVersionType8) | 是 | 版本 | +| reportAllowed | [ReportType](#ReportType8) | 否 | 允许报告 | + +## MmsRetrieveConf8+ + +彩信检索配置。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 类型 | 必填 | 说明 | +| -------------- | ------------------------------------ | ---- | -------- | +| transactionId | string | 是 | 事务ID | +| messageId | string | 是 | 消息ID | +| date | number | 是 | 日期 | +| contentType | string | 是 | 内容类型 | +| to | Array<[MmsAddress](#MmsAddress8)\> | 是 | 发送至 | +| version | [MmsVersionType](#MmsVersionType8) | 是 | 版本 | +| from | [MmsAddress](#MmsAddress8) | 否 | 来源 | +| cc | Array<[MmsAddress](#MmsAddress8)\> | 否 | 抄送 | +| subject | string | 否 | 主题 | +| priority | [MmsPriorityType](#MmsPriorityType8) | 否 | 优先级 | +| deliveryReport | number | 否 | 状态报告 | +| readReport | number | 否 | 阅读报告 | +| retrieveStatus | number | 否 | 检索状态 | +| retrieveText | string | 否 | 检索文本 | + +## MmsReadOrigInd8+ + +彩信读取原始索引。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 类型 | 必填 | 说明 | +| ---------- | ---------------------------------- | ---- | -------- | +| version | [MmsVersionType](#MmsVersionType8) | 是 | 版本 | +| messageId | string | 是 | 消息ID | +| to | Array<[MmsAddress](#MmsAddress8)\> | 是 | 发送至 | +| from | [MmsAddress](#MmsAddress8) | 是 | 来源 | +| date | number | 是 | 日期 | +| readStatus | number | 是 | 阅读状态 | + +## MmsAttachment8+ + +彩信附件。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 类型 | 必填 | 说明 | +| ----------------------- | ------------------------------------ | ---- | ------------------ | +| contentId | string | 是 | 内容ID | +| contentLocation | string | 是 | 内容位置 | +| contentDisposition | [DispositionType](#DispositionType8) | 是 | 内容处理 | +| contentTransferEncoding | string | 是 | 内容传输编码 | +| contentType | string | 是 | 内容类型 | +| isSmil | boolean | 是 | 同步多媒体集成语言 | +| path | string | 否 | 路径 | +| inBuff | Array | 否 | 缓冲区中 | +| fileName | string | 否 | 文件名 | +| charset | [MmsCharSets](#MmsCharSets8) | 否 | 字符集 | + +## MmsAddress8+ + +彩信地址。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ---------------------------- | ---- | ------ | +| address | string | 是 | 地址 | +| charset | [MmsCharSets](#MmsCharSets8) | 是 | 字符集 | + +## MessageType8+ + +消息类型。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 值 | 说明 | +| ------------------------- | ---- | -------------------- | +| TYPE_MMS_SEND_REQ | 128 | 彩信发送请求类型 | +| TYPE_MMS_SEND_CONF | 129 | 彩信发送配置类型 | +| TYPE_MMS_NOTIFICATION_IND | 130 | 彩信通知索引类型 | +| TYPE_MMS_RESP_IND | 131 | 彩信回复索引类型 | +| TYPE_MMS_RETRIEVE_CONF | 132 | 彩信检索配置类型 | +| TYPE_MMS_ACKNOWLEDGE_IND | 133 | 彩信确认索引类型 | +| TYPE_MMS_DELIVERY_IND | 134 | 彩信传送索引类型 | +| TYPE_MMS_READ_REC_IND | 135 | 彩信读取接收索引类型 | +| TYPE_MMS_READ_ORIG_IND | 136 | 彩信读取原始索引类型 | + +## MmsPriorityType8+ + +彩信优先级类型。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 值 | 说明 | +| ---------- | ---- | -------------- | +| MMS_LOW | 128 | 彩信优先级低 | +| MMS_NORMAL | 129 | 彩信优先级正常 | +| MMS_HIGH | 130 | 彩信优先级高 | + +## MmsVersionType8+ + +彩信版本类型。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 值 | 说明 | +| --------------- | ---- | ----------- | +| MMS_VERSION_1_0 | 0x10 | 彩信版本1_0 | +| MMS_VERSION_1_1 | 0x11 | 彩信版本1_1 | +| MMS_VERSION_1_2 | 0x12 | 彩信版本1_2 | +| MMS_VERSION_1_3 | 0x13 | 彩信版本1_3 | + +## MmsCharSets8+ + +彩信字符集。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 值 | 说明 | +| --------------- | ------ | ------------------- | +| BIG5 | 0X07EA | BIG5格式 | +| ISO_10646_UCS_2 | 0X03E8 | ISO_10646_UCS_2格式 | +| ISO_8859_1 | 0X04 | ISO_8859_1格式 | +| ISO_8859_2 | 0X05 | ISO_8859_2格式 | +| ISO_8859_3 | 0X06 | ISO_8859_3格式 | +| ISO_8859_4 | 0X07 | ISO_8859_4格式 | +| ISO_8859_5 | 0X08 | ISO_8859_5格式 | +| ISO_8859_6 | 0X09 | ISO_8859_6格式 | +| ISO_8859_7 | 0X0A | ISO_8859_7格式 | +| ISO_8859_8 | 0X0B | ISO_8859_8格式 | +| ISO_8859_9 | 0X0C | ISO_8859_9格式 | +| SHIFT_JIS | 0X11 | SHIFT_JIS格式 | +| US_ASCII | 0X03 | US_ASCII格式 | +| UTF_8 | 0X6A | UTF_8格式 | + +## DispositionType8+ + +处理类型。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 值 | 说明 | +| ---------- | ---- | -------- | +| FROM_DATA | 0 | 数据来源 | +| ATTACHMENT | 1 | 附件 | +| INLINE | 2 | 内联 | + +## ReportType8+ + +报告类型。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 值 | 说明 | +| ------- | ---- | ---- | +| MMS_YES | 128 | YES | +| MMS_NO | 129 | NO | + +## CBConfigOptions8+ + +小区广播配置选项。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 类型 | 必填 | 说明 | +| -------------- | -------------------- | ---- | ------------ | +| slotId | number | 是 | 卡槽ID | +| enable | boolean | 是 | 可行 | +| startMessageId | number | 是 | 消息起始ID | +| endMessageId | number | 是 | 消息结束ID | +| ranType | [RanType](#RanType7) | 是 | 手机网络制式 | + +## SimMessageStatus7+ + +SIM卡消息状态。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 值 | 说明 | +| ------------------------- | ---- | --------------------------- | +| SIM_MESSAGE_STATUS_FREE | 0 | SIM卡上的状态可用空间 | +| SIM_MESSAGE_STATUS_READ | 1 | 消息已读状态 | +| SIM_MESSAGE_STATUS_UNREAD | 3 | 消息未读状态 | +| SIM_MESSAGE_STATUS_SENT | 5 | 存储发送消息(仅适用于SMS) | +| SIM_MESSAGE_STATUS_UNSENT | 7 | 储未发送消息(仅适用于SMS) | + +## RanType7+ + +手机网络制式。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 值 | 说明 | +| --------- | ---- | ---- | +| TYPE_GSM | 1 | GSM | +| TYPE_CDMA | 2 | CMDA | + +## SmsEncodingScheme8+ + +短信编码方案。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 值 | 说明 | +| -------------------- | ---- | ------------ | +| SMS_ENCODING_UNKNOWN | 0 | 未知短信编码 | +| SMS_ENCODING_7BIT | 1 | 7位短信编码 | +| SMS_ENCODING_8BIT | 2 | 8位短信编码 | +| SMS_ENCODING_16BIT | 3 | 16位短信编码 | + +## SimMessageOptions7+ + +SIM卡消息选项。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | -------------------------------------- | ---- | -------------- | +| slotId | number | 是 | 卡槽ID | +| smsc | string | 是 | 短消息业务中心 | +| pdu | string | 是 | 协议数据单元 | +| status | [SimMessageStatus](#SimMessageStatus7) | 是 | 状态 | + +## UpdateSimMessageOptions7+ + +更新SIM卡消息选项。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 类型 | 必填 | 说明 | +| --------- | -------------------------------------- | ---- | -------------- | +| slotId | number | 是 | 卡槽ID | +| msgIndex | number | 是 | 消息索引 | +| newStatus | [SimMessageStatus](#SimMessageStatus7) | 是 | 新状态 | +| pdu | string | 是 | 协议数据单元 | +| smsc | string | 是 | 短消息业务中心 | + +## SimShortMessage8+ + +SIM卡短消息。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 类型 | 必填 | 说明 | +| ---------------- | -------------------------------------- | ---- | ------------- | +| shortMessage | [ShortMessage](#ShortMessage) | 是 | 短消息 | +| simMessageStatus | [SimMessageStatus](#SimMessageStatus7) | 是 | SIM卡消息状态 | +| indexOnSim | number | 是 | SIM卡索引 | + +## MmsDeliveryInd8+ + +彩信发送标识。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 类型 | 必填 | 说明 | +| --------- | ---------------------------------- | ---- | ------ | +| messageId | string | 是 | 消息ID | +| date | number | 是 | 日期 | +| to | Array<[MmsAddress](#MmsAddress8)\> | 是 | 发送至 | +| status | number | 是 | 状态 | +| version | [MmsVersionType](#MmsVersionType8) | 是 | 版本 | + +## MmsRespInd8+ + +彩信回复标志。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 类型 | 必填 | 说明 | +| ------------- | ---------------------------------- | ---- | -------- | +| transactionId | string | 是 | 事件ID | +| status | number | 是 | 状态 | +| version | [MmsVersionType](#MmsVersionType8) | 是 | 版本 | +| reportAllowed | [ReportType](#ReportType8) | 否 | 允许报告 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-telephony-data.md b/zh-cn/application-dev/reference/apis/js-apis-telephony-data.md index 0f1a07079c..c6b5f42945 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-telephony-data.md +++ b/zh-cn/application-dev/reference/apis/js-apis-telephony-data.md @@ -328,6 +328,240 @@ promise.then((data) => { }); ``` +## data.enableCellularData + +enableCellularData(callback: AsyncCallback): void + +启用蜂窝数据服务,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CellularData + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------- | ---- | ---------- | +| callback | AsyncCallback\ | 是 | 回调函数。 | + +**示例:** + +```js +data.enableCellularData((err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## data.enableCellularData + +enableCellularData(): Promise + +启用蜂窝数据服务,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CellularData + +**返回值:** + +| 类型 | 说明 | +| --------------- | ----------------------- | +| Promise\ | 以Promise形式返回结果。 | + +**示例:** + +```js +let promise = data.enableCellularData(); +promise.then((data) => { + console.log(`enableCellularData success, promise: data->${JSON.stringify(data)}`); +}).catch((err) => { + console.error(`enableCellularData fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## data.disableCellularData + +disableCellularData(callback: AsyncCallback): void + +禁用蜂窝数据服务,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CellularData + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------- | ---- | ---------- | +| callback | AsyncCallback\ | 是 | 回调函数。 | + +**示例:** + +```js +data.disableCellularData((err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## data.disableCellularData + +disableCellularData(): Promise + +禁用蜂窝数据服务,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CellularData + +**返回值:** + +| 类型 | 说明 | +| --------------- | --------------------------- | +| Promise\ | 以Promise形式返回禁用结果。 | + +**示例:** + +```js +let promise = data.disableCellularData(); +promise.then((data) => { + console.log(`disableCellularData success, promise: data->${JSON.stringify(data)}`); +}).catch((err) => { + console.error(`disableCellularData fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## data.enableCellularDataRoaming + +enableCellularDataRoaming(slotId: number, callback: AsyncCallback): void + +启用蜂窝数据漫游,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CellularData + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------- | ---- | ---------------------------------------- | +| slotId | number | 是 | 卡槽ID。
0:卡槽1。
1:卡槽2。 | +| callback | AsyncCallback\ | 是 | 回调函数。 | + +**示例:** + +```js +data.enableCellularDataRoaming(0, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## data.enableCellularDataRoaming + +enableCellularDataRoaming(slotId: number): Promise + +启用蜂窝数据漫游,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CellularData + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ---------------------------------------- | +| slotId | number | 是 | 卡槽ID。
0:卡槽1。
1:卡槽2。 | + +**返回值:** + +| 类型 | 说明 | +| --------------- | ------------------------- | +| Promise\ | 以Promise形式返回启用结果 | + +**示例:** + +```js +let promise = data.enableCellularDataRoaming(0); +promise.then((data) => { + console.log(`enableCellularDataRoaming success, promise: data->${JSON.stringify(data)}`); +}).catch((err) => { + console.error(`enableCellularDataRoaming fail, promise: err->${JSON.stringify(err)}`); +}); +``` + +## data.disableCellularDataRoaming + +disableCellularDataRoaming(slotId: number, callback: AsyncCallback): void + +禁用蜂窝数据漫游,使用callback方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CellularData + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------- | ---- | ---------------------------------------- | +| slotId | number | 是 | 卡槽ID。
0:卡槽1。
1:卡槽2。 | +| callback | AsyncCallback\ | 是 | 回调函数。 | + +**示例:** + +```js +data.disableCellularDataRoaming(0, (err, data) => { + console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); +}); +``` + +## data.disableCellularDataRoaming + +disableCellularDataRoaming(slotId: number): Promise + +禁用蜂窝数据漫游,使用Promise方式作为异步方法。 + +此接口为系统接口。 + +**需要权限**:ohos.permission.SET_TELEPHONY_STATE + +**系统能力**:SystemCapability.Telephony.CellularData + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ---------------------------------------- | +| slotId | number | 是 | 卡槽ID。
0:卡槽1。
1:卡槽2。 | + +**返回值:** + +| 类型 | 说明 | +| --------------- | ------------------------- | +| Promise\ | 以Promise形式返回禁用结果 | + +**示例:** + +```js +let promise = data.disableCellularDataRoaming(0); +promise.then((data) => { + console.log(`disableCellularDataRoaming success, promise: data->${JSON.stringify(data)}`); +}).catch((err) => { + console.error(`disableCellularDataRoaming fail, promise: err->${JSON.stringify(err)}`); +}); +``` + ## DataFlowType 描述蜂窝数据流类型。 @@ -354,4 +588,4 @@ promise.then((data) => { | DATA_STATE_DISCONNECTED | 0 | 表示蜂窝数据链路断开。 | | DATA_STATE_CONNECTING | 1 | 表示正在连接蜂窝数据链路。 | | DATA_STATE_CONNECTED | 2 | 表示蜂窝数据链路已连接。 | -| DATA_STATE_SUSPENDED | 3 | 表示蜂窝数据链路被挂起。 | \ No newline at end of file +| DATA_STATE_SUSPENDED | 3 | 表示蜂窝数据链路被挂起。 | -- GitLab From 43df99b894306a7cf8f0021c5a1da9b685d21c95 Mon Sep 17 00:00:00 2001 From: wusongqing Date: Tue, 12 Jul 2022 11:08:57 +0800 Subject: [PATCH 008/868] update docs against 5940+6428 Signed-off-by: wusongqing --- .../reference/apis/js-apis-display.md | 48 +++++++++++++------ 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-display.md b/en/application-dev/reference/apis/js-apis-display.md index ffbc73ff53..25cf9ed242 100644 --- a/en/application-dev/reference/apis/js-apis-display.md +++ b/en/application-dev/reference/apis/js-apis-display.md @@ -1,5 +1,5 @@ # Display -Provides APIs for managing displays, such as obtaining information about the default display, obtaining information about all displays, and listening for the addition and removal of displays. +The **Display** module provides APIs for managing displays, such as obtaining information about the default display, obtaining information about all displays, and listening for the addition and removal of displays. > **NOTE** > @@ -14,11 +14,11 @@ import display from '@ohos.display'; ## DisplayState -Provides the state of a display. +Enumerates the display states. **System capability**: SystemCapability.WindowManager.WindowManager.Core -| Name| Default Value| Description| +| Name| Value| Description| | -------- | -------- | -------- | | STATE_UNKNOWN | 0 | Unknown.| | STATE_OFF | 1 | The display is shut down.| @@ -56,7 +56,7 @@ Describes the attributes of a display. getDefaultDisplay(callback: AsyncCallback<Display>): void -Obtains the default display object. +Obtains the default display object. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.WindowManager.WindowManager.Core @@ -82,7 +82,7 @@ Obtains the default display object. getDefaultDisplay(): Promise<Display> -Obtains the default display object. +Obtains the default display object. This API uses a promise to return the result. **System capability**: SystemCapability.WindowManager.WindowManager.Core @@ -103,11 +103,31 @@ Obtains the default display object. }); ``` +## display.getDefaultDisplaySync9+ + +getDefaultDisplaySync(): Display + +Obtains the default display object. This API returns the result synchronously. + +**System capability**: SystemCapability.WindowManager.WindowManager.Core + +**Return value** + +| Type | Description | +| ------------------------------| ----------------------------------------------| +| [Display](#display) | Default display object.| + +**Example** + +```js +var displayClass = display.getDefaultDisplaySync(); +``` + ## display.getAllDisplay getAllDisplay(callback: AsyncCallback<Array<Display>>): void -Obtains all the display objects. +Obtains all display objects. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.WindowManager.WindowManager.Core @@ -133,7 +153,7 @@ Obtains all the display objects. getAllDisplay(): Promise<Array<Display>> -Obtains all the display objects. +Obtains all display objects. This API uses a promise to return the result. **System capability**: SystemCapability.WindowManager.WindowManager.Core @@ -158,15 +178,15 @@ Obtains all the display objects. on(type: 'add'|'remove'|'change', callback: Callback<number>): void -Enables listening. +Subscribes to display changes. **System capability**: SystemCapability.WindowManager.WindowManager.Core **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Listening type. The available values are as follows:
- **add**: listening for whether a display is added
- **remove**: listening for whether a display is removed
- **change**: listening for whether a display is changed| - | callback | Callback<number> | Yes| Callback used to return the ID of the display.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type.
- **add**, indicating the display addition event.
- **remove**, indicating the display removal event.
- **change**, indicating the display change event.| +| callback | Callback<number> | Yes| Callback used to return the ID of the display.| **Example** ```js @@ -181,14 +201,14 @@ Enables listening. off(type: 'add'|'remove'|'change', callback?: Callback<number>): void -Disables listening. +Unsubscribes from display changes. **System capability**: SystemCapability.WindowManager.WindowManager.Core **Parameters** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | - | type | string | Yes| Listening type. The available values are as follows:
- **add**: listening for whether a display is added
- **remove**: listening for whether a display is removed
- **change**: listening for whether a display is changed| + | type | string | Yes| Event type.
- **add**, indicating the display addition event.
- **remove**, indicating the display removal event.
- **change**, indicating the display change event.| | callback | Callback<number> | No| Callback used to return the ID of the display.| **Example** -- GitLab From 1997d0381fa65ffd10cce52db244ad725831b73f Mon Sep 17 00:00:00 2001 From: wusongqing Date: Tue, 12 Jul 2022 07:52:17 +0000 Subject: [PATCH 009/868] =?UTF-8?q?=E3=80=90=E6=96=87=E6=A1=A3=E4=BD=93?= =?UTF-8?q?=E9=AA=8C=E5=AE=98=E3=80=91js-apis-ability-context.md=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0=E4=BF=AE=E6=94=B9=20Signed-off-by:=20wusongqing=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/apis/js-apis-ability-context.md | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-ability-context.md b/zh-cn/application-dev/reference/apis/js-apis-ability-context.md index 469b56a35c..77b649bbea 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-ability-context.md +++ b/zh-cn/application-dev/reference/apis/js-apis-ability-context.md @@ -36,7 +36,7 @@ class MainAbility extends Ability { startAbility(want: Want, callback: AsyncCallback<void>): void -启动Ability。 +启动Ability(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -67,7 +67,7 @@ startAbility(want: Want, callback: AsyncCallback<void>): void startAbility(want: Want, options: StartOptions, callback: AsyncCallback<void>): void -启动Ability。 +启动Ability(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -102,7 +102,7 @@ startAbility(want: Want, options: StartOptions, callback: AsyncCallback<void& startAbility(want: Want, options?: StartOptions): Promise<void>; -启动Ability。通过Promise返回结果。 +启动Ability(promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -145,7 +145,7 @@ startAbility(want: Want, options?: StartOptions): Promise<void>; startAbilityForResult(want: Want, callback: AsyncCallback<AbilityResult>): void; -启动Ability并在结束的时候返回执行结果。 +启动Ability并在结束的时候返回执行结果(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -173,7 +173,7 @@ startAbilityForResult(want: Want, callback: AsyncCallback<AbilityResult>): startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback<AbilityResult>): void; -启动Ability并在结束的时候返回执行结果。 +启动Ability并在结束的时候返回执行结果(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -206,7 +206,7 @@ startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback startAbilityForResult(want: Want, options?: StartOptions): Promise<AbilityResult>; -启动Ability并在结束的时候返回执行结果。 +启动Ability并在结束的时候返回执行结果(promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -312,11 +312,11 @@ startAbilityForResultWithAccount(want: Want, accountId: number, options: StartOp ``` - ## AbilityContext.startAbilityForResultWithAccount +## AbilityContext.startAbilityForResultWithAccount startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\; -启动一个Ability并在该Ability帐号销毁时返回执行结果(callback形式)。 +启动一个Ability并在该Ability帐号销毁时返回执行结果(promise形式)。 **需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS @@ -364,7 +364,7 @@ startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartO terminateSelf(callback: AsyncCallback<void>): void; -停止Ability自身。 +停止Ability自身(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -387,7 +387,7 @@ terminateSelf(callback: AsyncCallback<void>): void; terminateSelf(): Promise<void>; -停止Ability自身。通过Promise返回结果。 +停止Ability自身(promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -412,7 +412,7 @@ terminateSelf(): Promise<void>; terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback<void>): void; -停止Ability,并返回给调用startAbilityForResult 接口调用方的相关信息。 +停止Ability,并返回给调用startAbilityForResult 接口调用方的相关信息(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -441,7 +441,7 @@ terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback<voi terminateSelfWithResult(parameter: AbilityResult): Promise<void>; -停止Ability,并返回给调用startAbilityForResult 接口相关信息。 +停止Ability,并返回给调用startAbilityForResult 接口调用方的相关信息(promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -474,7 +474,7 @@ terminateSelfWithResult(parameter: AbilityResult): Promise<void>; connectAbility(want: Want, options: ConnectOptions): number; -使用AbilityInfo.AbilityType.SERVICE模板将当前能力连接到一个能力。 +使用AbilityInfo.AbilityType.SERVICE模板将当前Ability连接到一个Ability。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -515,7 +515,7 @@ connectAbility(want: Want, options: ConnectOptions): number; connectAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number; -使用AbilityInfo.AbilityType.SERVICE模板和account将当前能力连接到一个能力。 +使用AbilityInfo.AbilityType.SERVICE模板和account将当前Ability连接到一个Ability。 **需要权限:** ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS @@ -559,7 +559,7 @@ connectAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions disconnectAbility(connection: number): Promise\; -已成功连接接口。 +断开连接(promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -569,7 +569,7 @@ disconnectAbility(connection: number): Promise\; | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | -| connection | number | 是 | 连接的能力的数字代码。 | +| connection | number | 是 | 连接的Ability的数字代码。 | **返回值:** @@ -592,7 +592,7 @@ disconnectAbility(connection: number): Promise\; disconnectAbility(connection: number, callback:AsyncCallback\): void; -已成功连接接口。 +断开连接(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -602,7 +602,7 @@ disconnectAbility(connection: number, callback:AsyncCallback\): void; | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | -| connection | number | 是 | 连接的能力的数字代码。 | +| connection | number | 是 | 连接的Ability的数字代码。 | | callback | AsyncCallback\ | 是 | 表示指定的回调方法。 | **示例:** @@ -774,7 +774,7 @@ startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): requestPermissionsFromUser(permissions: Array<string>, requestCallback: AsyncCallback<PermissionRequestResult>) : void; -拉起弹窗请求用户授权。 +拉起弹窗请求用户授权(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -800,7 +800,7 @@ requestPermissionsFromUser(permissions: Array<string>, requestCallback: As requestPermissionsFromUser(permissions: Array<string>) : Promise<PermissionRequestResult>; -拉起弹窗请求用户授权。通过Promise返回结果。 +拉起弹窗请求用户授权(promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -833,7 +833,7 @@ requestPermissionsFromUser(permissions: Array<string>) : Promise<Permis setMissionLabel(label: string, callback:AsyncCallback<void>): void; -设置ability在任务中显示的名称。 +设置ability在任务中显示的名称(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -857,7 +857,7 @@ setMissionLabel(label: string, callback:AsyncCallback<void>): void; setMissionLabel(label: string): Promise<void> -设置ability在任务中显示的名称。 +设置ability在任务中显示的名称(promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -886,7 +886,7 @@ setMissionLabel(label: string): Promise<void> setMissionIcon(icon: image.PixelMap, callback:AsyncCallback\): void; -设置当前ability的任务标签。 +设置当前ability在任务中显示的图标(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -896,7 +896,7 @@ setMissionIcon(icon: image.PixelMap, callback:AsyncCallback\): void; | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | -| icon | image.PixelMap | 是 | 在最近的任务中显示的能力图标。 | +| icon | image.PixelMap | 是 | 在最近的任务中显示的ability图标。 | | callback | AsyncCallback\ | 是 | 指定的回调函数的结果。 | **示例:** @@ -928,7 +928,7 @@ setMissionIcon(icon: image.PixelMap, callback:AsyncCallback\): void; setMissionIcon(icon: image.PixelMap): Promise\; -设置当前ability的任务标签。 +设置当前ability在任务中显示的图标(promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -938,7 +938,7 @@ setMissionIcon(icon: image.PixelMap): Promise\; | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | -| icon | image.PixelMap | 是 | 在最近的任务中显示的能力图标。 | +| icon | image.PixelMap | 是 | 在最近的任务中显示的ability图标。 | **返回值:** -- GitLab From a14b40d3f908d8b31380d0e8c3cb6c6035402ea6 Mon Sep 17 00:00:00 2001 From: clevercong Date: Tue, 12 Jul 2022 17:33:30 +0800 Subject: [PATCH 010/868] update call js doc. Signed-off-by: clevercong --- .../reference/apis/js-apis-call.md | 50 +++++-------------- 1 file changed, 12 insertions(+), 38 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-call.md b/zh-cn/application-dev/reference/apis/js-apis-call.md index 8814076563..217391f3c4 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-call.md +++ b/zh-cn/application-dev/reference/apis/js-apis-call.md @@ -518,9 +518,7 @@ promise.then(data => { muteRinger\(callback: AsyncCallback\): void -静音铃声。使用callback异步回调。 - -如果来电铃声响起,手机将停止铃声。否则,此方法不起作用。 +如果来电铃声响起,手机将停止铃声。否则,此方法不起作用。使用callback异步回调。 此接口为系统接口。 @@ -547,9 +545,7 @@ call.muteRinger((err, data) => { muteRinger\(\): Promise -静音铃声。使用Promise异步回调。 - -如果来电铃声响起,手机将停止铃声。否则,此方法不起作用。 +如果来电铃声响起,手机将停止铃声。否则,此方法不起作用。使用Promise异步回调。 此接口为系统接口。 @@ -580,8 +576,6 @@ answer\(callback: AsyncCallback\): void 接听来电。使用callback异步回调。 -指示呼叫应答的标识符。自API 9起,它是可选的 - 此接口为系统接口。 **需要权限**:ohos.permission.ANSWER_CALL @@ -609,8 +603,6 @@ answer\(callId: number, callback: AsyncCallback\): void 接听来电。使用callback异步回调。 -指示呼叫应答的标识符。自API 9起,它是可选的 - 此接口为系统接口。 **需要权限**:ohos.permission.ANSWER_CALL @@ -639,8 +631,6 @@ answer(callId?: number\): Promise 接听来电。使用Promise异步回调。 -指示呼叫应答的标识符。自API 9起,它是可选的 - 此接口为系统接口。 **需要权限**:ohos.permission.ANSWER_CALL @@ -649,9 +639,9 @@ answer(callId?: number\): Promise **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------ | ---- | -------- | -| callId | number | 是 | 呼叫Id。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------------------------------- | +| callId | number | 否 | 呼叫Id。自API 9起,它是可选的。 | **返回值:** @@ -676,8 +666,6 @@ hangup\(callback: AsyncCallback\): void 挂断电话。使用callback异步回调。 -指示挂断呼叫的标识符。自API 9以来,它是可选的。 - 此接口为系统接口。 **系统能力**:SystemCapability.Telephony.CallManager @@ -703,8 +691,6 @@ hangup\(callId: number, callback: AsyncCallback\): void 挂断电话。使用callback异步回调。 -指示挂断呼叫的标识符。自API 9以来,它是可选的。 - 此接口为系统接口。 **系统能力**:SystemCapability.Telephony.CallManager @@ -731,17 +717,15 @@ hangup\(callId?: number\): Promise 挂断电话。使用Promise异步回调。 -指示挂断呼叫的标识符。自API 9以来,它是可选的。 - 此接口为系统接口。 **系统能力**:SystemCapability.Telephony.CallManager **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------ | ---- | -------- | -| callId | number | 是 | 呼叫id。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | --------------------------------- | +| callId | number | 否 | 呼叫id。自API 9以来,它是可选的。 | **返回值:** @@ -766,8 +750,6 @@ reject\(callback: AsyncCallback\): void 拒绝来电。使用callback异步回调。 -指示要拒绝的调用的标识符。自API 9以来,它是可选的。 - 此接口为系统接口。 **系统能力**:SystemCapability.Telephony.CallManager @@ -793,8 +775,6 @@ reject\(options: RejectMessageOptions, callback: AsyncCallback\): void 拒绝来电。使用callback异步回调。 -指示要拒绝的调用的标识符。自API 9以来,它是可选的。 - 此接口为系统接口。 **系统能力**:SystemCapability.Telephony.CallManager @@ -824,8 +804,6 @@ reject(callId: number, callback: AsyncCallback): 拒绝来电。使用callback异步回调。 -指示要拒绝的调用的标识符。自API 9以来,它是可选的。 - 此接口为系统接口。 **系统能力**:SystemCapability.Telephony.CallManager @@ -860,8 +838,6 @@ reject\(callId: number, options: RejectMessageOption, callback: AsyncCallback 拒绝来电。使用Promise异步回调。 -指示要拒绝的调用的标识符。自API 9以来,它是可选的。 - 此接口为系统接口。 **系统能力**:SystemCapability.Telephony.CallManager **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------- | --------------------------------------------- | ---- | -------------- | -| callId | number | 否 | 呼叫Id。 | -| options | [RejectMessageOptions](#RejectMessageOptions) | 否 | 拒绝消息选项。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------- | --------------------------------------------- | ---- | --------------------------------- | +| callId | number | 否 | 呼叫Id。自API 9以来,它是可选的。 | +| options | [RejectMessageOptions](#RejectMessageOptions) | 否 | 拒绝消息选项。 | **返回值:** -- GitLab From 8342a17f805f148d8657b477b15a826443204568 Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Wed, 13 Jul 2022 18:19:11 +0800 Subject: [PATCH 011/868] update docs Signed-off-by: ester.zhou --- .../reference/apis/js-apis-timer.md | 7 ------ .../ts-universal-attributes-sharp-clipping.md | 22 ++++++++++--------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-timer.md b/en/application-dev/reference/apis/js-apis-timer.md index d144a95db8..f9e174b514 100644 --- a/en/application-dev/reference/apis/js-apis-timer.md +++ b/en/application-dev/reference/apis/js-apis-timer.md @@ -3,13 +3,6 @@ ## setTimeout -## Modules to Import - - -``` -import Time from '@ohos.Time'; -``` - setTimeout(handler[,delay[,…args]]): number Sets a timer for the system to call a function after the timer goes off. diff --git a/en/application-dev/reference/arkui-ts/ts-universal-attributes-sharp-clipping.md b/en/application-dev/reference/arkui-ts/ts-universal-attributes-sharp-clipping.md index e0468dfe5e..8fe71bfe50 100644 --- a/en/application-dev/reference/arkui-ts/ts-universal-attributes-sharp-clipping.md +++ b/en/application-dev/reference/arkui-ts/ts-universal-attributes-sharp-clipping.md @@ -1,7 +1,8 @@ # Shape Clipping -> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE** +> **NOTE** +> > This attribute is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version. @@ -13,16 +14,17 @@ None ## Attributes - | Name | Type | Default Value | Description | +| Name | Type | Default Value | Description | | -------- | -------- | -------- | -------- | -| clip | Shape \| boolean | false | Specifies a clip mode. The value **Shape** indicates that the current component is cropped based on the specified shape. The value **boolean** specifies whether to clip the component based on the edge outline. | -| mask | Shape | - | Adds a mask of the specified shape to the current component. | +| clip | Shape \| boolean | false | Clip mode. The value **Shape** indicates that the current component is cropped based on the specified shape. The value **boolean** specifies whether to clip the component based on the edge outline. | +| mask | Shape | - | Mask of the specified shape for the current component. | ## Example - -``` + +```ts +// xxx.ets @Entry @Component struct ClipAndMaskExample { @@ -30,24 +32,24 @@ struct ClipAndMaskExample { Column({ space: 5 }) { Text('clip').fontSize(9).width('90%').fontColor(0xCCCCCC) // Clip the image by using a circle with a diameter of 280px. - Image('/comment/bg.jpg') + Image($r('app.media.example')) .clip(new Circle({ width: 80, height: 80 })) .width('500px').height('280px') Row() { - Image('/comment/bg.jpg').width('500px').height('280px') + Image($r('app.media.example')).width('500px').height('280px') } .clip(true) .borderRadius(20) Text('mask').fontSize(9).width('90%').fontColor(0xCCCCCC) // Add a 500 px x 280 px mask to the image. - Image('/comment/bg.jpg') + Image($r('app.media.example')) .mask(new Rect({ width: '500px', height: '280px' }).fill(Color.Gray)) .width('500px').height('280px') // Add a 280 px x 280 px circle mask to the image. - Image('/comment/bg.jpg') + Image($r('app.media.example')) .mask(new Circle({ width: '280px', height: '280px' }).fill(Color.Gray)) .width('500px').height('281px') } -- GitLab From de55179c4670c6b59acc68b704d1a1628fee5506 Mon Sep 17 00:00:00 2001 From: solanightxie Date: Thu, 14 Jul 2022 01:43:00 +0000 Subject: [PATCH 012/868] update zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md. Signed-off-by: solanightxie --- .../reference/arkui-ts/ts-basic-components-blank.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md index efd45c871b..b5ddb93eee 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md @@ -31,7 +31,7 @@ Blank(min?: Length) | 名称 | 参数类型 | 默认值 | 描述 | | -------- | -------- | -------- | -------- | -| color | Color | 0x00000000 | 设置空白填充的填充颜色。 | +| color | Color \| number \| string \| [Resource](../../ui/ts-types.md#resource类型) | 0x00000000 | 设置空白填充的填充颜色。 | > **说明:** > - 不支持通用属性方法。 -- GitLab From 6cbeb06e8583d26346e8e7512adfb4297ac890f9 Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Thu, 14 Jul 2022 13:41:10 +0800 Subject: [PATCH 013/868] update porting-linux-kernel.md Signed-off-by: ester.zhou --- en/device-dev/porting/porting-linux-kernel.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/en/device-dev/porting/porting-linux-kernel.md b/en/device-dev/porting/porting-linux-kernel.md index b05cc60591..6e3d86e61e 100644 --- a/en/device-dev/porting/porting-linux-kernel.md +++ b/en/device-dev/porting/porting-linux-kernel.md @@ -1,12 +1,12 @@ -# A Method for Rapidly Porting the OpenHarmony Linux Kernel +# A Method for Rapidly Porting the OpenHarmony Linux Kernel -## Overview +## Overview This document describes how to quickly port OpenHarmony to a third-party chip platform by using the existing capabilities of the Linux kernel of the third-party chip platform. -## Overall Porting Approach +## Overall Porting Approach -### Kernel Mode Layer and User Mode Layer +### Kernel Mode Layer and User Mode Layer For easy description, we divide the OpenHarmony architecture into two parts: @@ -20,7 +20,7 @@ The user mode layer includes other parts except the OpenHarmony kernel layer. It The user mode layer of OpenHarmony is loosely coupled with the third-party chip platform and is easy to port. The kernel and HDF at the kernel mode layer are closely coupled with the third-party chip platform and are difficult to port. This document focus on the porting of the kernel mode layer. In addition, it describes only the quick porting of the Linux kernel. It does not include the porting of LiteOS. -### Composition of the Kernel Mode Layer +### Composition of the Kernel Mode Layer The OpenHarmony kernel mode layer can be further divided as follows: @@ -51,7 +51,7 @@ The standard LTS Linux kernel and third-party SoC chip platform code constitute In the following, we elaborate how to port OpenHarmony that uses with the third-party Linux kernel. -### Overall Porting Process +### Overall Porting Process The porting process is as follows: @@ -59,11 +59,11 @@ The porting process is as follows: 2. Port the OpenHarmony basic kernel-mode code. 3. Port OpenHarmony mandatory kernel-mode features \(such as HDF\). -## Procedure +## Procedure The following uses Raspberry Pi 3b \(BCM2837\) as an example to describe how to port OpenHarmony to Raspberry Pi. -### Setting Up the Environment +### Setting Up the Environment 1. Copy the third-party kernel code to the OpenHarmony build environment. @@ -84,8 +84,8 @@ The following uses Raspberry Pi 3b \(BCM2837\) as an example to describe how to # Configure the build environment, and use clang provided by the project to build the Raspberry Pi kernel source code. export PATH=$PROJ_ROOT/prebuilts/clang/ohos/linux-x86_64/llvm/bin:$PROJ_ROOT/prebuilts/gcc/linux-x86/arm/gcc-linaro-7.5.0-arm-linux-gnueabi/bin/:$PATH export MAKE_OPTIONS="ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- CC=clang HOSTCC=clang" - export PRODUCT_PATH=vendor/hisilicon/hispark_taurus_standard - ``` + export PRODUCT_PATH=vendor/hisilicon/hispark_taurus_linux + ``` 3. Comment out the flags that cannot be recognized by **clang**. @@ -96,7 +96,7 @@ The following uses Raspberry Pi 3b \(BCM2837\) as an example to describe how to ``` -### Porting Basic Kernel-Mode Code +### Porting Basic Kernel-Mode Code Currently, the basic kernel-mode code of OpenHarmony is related to the log service. The lightweight kernel log service code includes the following: @@ -125,7 +125,7 @@ Enable the CONFIG macros **CONFIG\_HILOG** and **CONFIG\_HIEVENT** in the kernel For details about how to use the logs, see [Hilog\_lite](https://gitee.com/openharmony/hiviewdfx_hilog_lite/blob/master/README.md). -### Porting the HDF Feature +### Porting the HDF Feature 1. Install HDF patches. @@ -185,14 +185,14 @@ For details about how to use the logs, see [Hilog\_lite](https://gitee.com/openh ![](figures/menuconfig.png) -### Building the Image +### Building the Image ``` # Run the following command: make ${MAKE_OPTIONS} -j33 zImage ``` -### \(Optional\) Building and Running HDF Test Cases +### \(Optional\) Building and Running HDF Test Cases **Overview** -- GitLab From f67c47206ed34950e83066a7ebea492d63d0c572 Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Wed, 13 Jul 2022 15:05:57 +0800 Subject: [PATCH 014/868] update ts-methods-action-sheet.md Signed-off-by: ester.zhou --- .../arkui-ts/ts-methods-action-sheet.md | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/en/application-dev/reference/arkui-ts/ts-methods-action-sheet.md b/en/application-dev/reference/arkui-ts/ts-methods-action-sheet.md index d980bdefea..71c1839a56 100644 --- a/en/application-dev/reference/arkui-ts/ts-methods-action-sheet.md +++ b/en/application-dev/reference/arkui-ts/ts-methods-action-sheet.md @@ -1,7 +1,8 @@ # Action Sheet -> **NOTE**
+> **NOTE** +> > This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version. @@ -17,25 +18,25 @@ None show(options: { paramObject1}) -Defines and shows the action sheet. +Defines and shows an action sheet. - paramObject1 parameters | Name | Type | Mandatory | Default Value | Description | | -------- | -------- | -------- | -------- | -------- | - | title | string \|[Resource](../../ui/ts-types.md#resource) | No | None | Title of the dialog box. | - | message | string \|[Resource](../../ui/ts-types.md#resource) | | | Content of the dialog box. | + | title | string \|[Resource](../../ui/ts-types.md) | No | None | Title of the dialog box. | + | message | string \|[Resource](../../ui/ts-types.md) | | | Content of the dialog box. | | autoCancel | boolean | No | true | Whether to close the dialog box when the overlay is clicked. | - | confirm | {
value: string \|[Resource](../../ui/ts-types.md#resource),
action: () => void
} | number | string | Text content of the confirm button and callback upon button clicking.
**value**: button text.
**action**: callback upon button clicking. | + | confirm | {
value: string \| [Resource](../../ui/ts-types.md),
action: () => void
} | No | - | Text content of the confirm button and callback upon button clicking.
**value**: button text.
**action**: callback upon button clicking. | | cancel | () => void | No | - | Callback invoked when the dialog box is closed after the overlay is clicked. | - | alignment | DialogAlignment | No | DialogAlignment.Default | Alignment mode of the dialog box in the vertical direction. | - | offset | {
dx: Length\|[Resource](../../ui/ts-types.md#resource)
dy: Length\|[Resource](../../ui/ts-types.md#resource)
} | No | - | Offset of the dialog box relative to the alignment position. | - | sheets | Array<SheetInfo> | Yes | - | Options in the dialog box. Each option supports the image, text, and callback. | + | alignment | [DialogAlignment](ts-methods-custom-dialog-box.md) | No | DialogAlignment.Default | Alignment mode of the dialog box in the vertical direction. | + | offset | {
dx: Length,
dy: Length
} | No | {
dx: 0,
dy: 0
} | Offset of the dialog box relative to the alignment position. | + | sheets | Array Date: Thu, 14 Jul 2022 08:26:57 +0000 Subject: [PATCH 015/868] update zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md. Signed-off-by: solanightxie --- .../reference/arkui-ts/ts-basic-components-blank.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md index b5ddb93eee..88a5ed0613 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md @@ -31,7 +31,7 @@ Blank(min?: Length) | 名称 | 参数类型 | 默认值 | 描述 | | -------- | -------- | -------- | -------- | -| color | Color \| number \| string \| [Resource](../../ui/ts-types.md#resource类型) | 0x00000000 | 设置空白填充的填充颜色。 | +| color | [ResourceColor](../../ui/ts-types.md) | 0x00000000 | 设置空白填充的填充颜色。 | > **说明:** > - 不支持通用属性方法。 -- GitLab From 12afe83c470f48d80bc2b2d86fa8329fd06567b7 Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Thu, 14 Jul 2022 16:39:41 +0800 Subject: [PATCH 016/868] update ts-container-list.md Signed-off-by: ester.zhou --- .../reference/arkui-ts/ts-container-list.md | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/en/application-dev/reference/arkui-ts/ts-container-list.md b/en/application-dev/reference/arkui-ts/ts-container-list.md index 5d11634e3b..adfcea2c3e 100644 --- a/en/application-dev/reference/arkui-ts/ts-container-list.md +++ b/en/application-dev/reference/arkui-ts/ts-container-list.md @@ -21,13 +21,14 @@ This component contains the child component [\](ts-container-listitem. ## APIs -List(value:{space?: number, initialIndex?: number}) +List(value:{space?: number | string, initialIndex?: number, scroller?: Scroller}) - Parameters | Name | Type | Mandatory | Default Value | Description | | -------- | -------- | -------- | -------- | -------- | - | space | number | No | 0 | Spacing between list items. | - | initialIndex | number | No | 0 | Item displayed at the beginning of the component when the current list is loaded for the first time, that is, the first item to be displayed. If the configured sequence number is greater than the sequence number of the last item, the setting does not take effect. | + | space | number \| string | No | 0 | Spacing between list items. | + | initialIndex | number | No | 0 | Item displayed at the beginning of the viewport when the current list is loaded for the first time, that is, the first item to be displayed. If the value set is greater than the sequence number of the last item, the setting does not take effect. | + | scroller | [Scroller](ts-container-scroll.md#scroller) | No | - | Controller bound to the list to control the scrolling. | ## Attributes @@ -36,8 +37,8 @@ List(value:{space?: number, initialIndex?: number}) | -------- | -------- | -------- | -------- | | listDirection | [Axis](ts-appendix-enums.md#axis-enums) | Vertical | Direction in which the list items are arranged. For details, see **Axis** enums. | | divider | {
strokeWidth: Length,
color?:Color,
startMargin?: Length,
endMargin?: Length
} | - | Style of the divider for the list items. By default, there is no divider.
**strokeWidth**: stroke width of the divider.
**color**: color of the divider.
**startMargin**: distance between the divider and the start of the list.
**endMargin**: distance between the divider and the end of the list. | -| editMode | boolean | false | Whether the **<List>** component is in editable mode. | -| edgeEffect | EdgeEffect | EdgeEffect.Spring | Sliding effect. For details, see EdgeEffect enums. | +| editMode | boolean | false | Whether the **\** component is in editable mode. | +| edgeEffect | EdgeEffect | EdgeEffect.Spring | Sliding effect. For details, see **EdgeEffect enums**. | | chainAnimation | boolean | false | Whether to display chained animations on this list when it slides or its top and bottom are dragged. The list items are separated with even space, and one item animation starts after the previous animation during basic sliding interactions. The chained animation effect is similar with spring physics.
- **false**: No chained animations are displayed.
- **true**: Chained animations are displayed. | | multiSelectable8+ | boolean | false | Whether to enable mouse frame selection.
- **false**: The mouse frame selection is disabled.
- **true**: The mouse frame selection is enabled. | | restoreId8+ | number | - | Migration ID of the component. During application migration, the status of the component is migrated to the component with the same migration ID on the peer end.
For a **<\List>** component, the status includes the item serial number displayed at the start position. | @@ -48,7 +49,7 @@ List(value:{space?: number, initialIndex?: number}) | Name | Description | | -------- | -------- | | Spring | Similar to the physical dynamic effect of a spring. After scrolling to the edge, the user can continue to scroll for a distance based on the initial speed or by touching the knob of the scrollbar. After the user releases their hand, the knob is rebounded. | - | None | No effect after the scrollbar is moved to the edge. | + | None | No effect when the list is scrolled to the edge. | - ListItemAlign enums @@ -64,7 +65,8 @@ List(value:{space?: number, initialIndex?: number}) | Name | Description | | -------- | -------- | | onItemDelete(index: number) => boolean | Triggered when a list item is deleted. | -| onScrollIndex(firstIndex: number, lastIndex: number) => void | Triggered when the start position and end position of the current list are changed. | +| onScrollBegin9+(dx: number, dy: number) => { dxRemain: number, dyRemain: number } | Triggered when scrolling starts.
Parameters:
- **dx**: amount by which the list will scroll in the horizontal direction.
- **dy**: amount by which the list will scroll in the vertical direction.
Return value:
- **dxRemain**: remaining amount by which the list can scroll in the horizontal direction.
- **dyRemain**: remaining amount by which the list can scroll in the vertical direction. | +| onScrollIndex(firstIndex: number, lastIndex: number) => void | Triggered when the start position and end position of the current list are changed. | > **NOTE** > @@ -106,9 +108,9 @@ struct ListExample { }.editable(true) }, item => item) } - .listDirection(Axis.Vertical) // Arrangement direction - .divider({ strokeWidth: 2, color: 0xFFFFFF, startMargin: 20, endMargin: 20 }) // Divider line - .edgeEffect(EdgeEffect.None) // No effect when sliding to the edge + .listDirection(Axis.Vertical) // Direction in which the list items are arranged. + .divider({ strokeWidth: 2, color: 0xFFFFFF, startMargin: 20, endMargin: 20 }) // Style of the divider for the list items. + .edgeEffect(EdgeEffect.None) // No effect when the list is scrolled to the edge. .chainAnimation(false) // Chained animations are disabled. .onScrollIndex((firstIndex: number, lastIndex: number) => { console.info('first' + firstIndex) @@ -166,7 +168,7 @@ struct ListLanesExample { .lanes({ minLength: 40, maxLength: 60 }) .alignListItem(this.alignListItem) - Button("Change alignListItem: "+ this.alignListItem).onClick(() => { + Button("Change alignListItem:" + this.alignListItem).onClick(() => { if (this.alignListItem == ListItemAlign.Start) { this.alignListItem = ListItemAlign.Center } else if (this.alignListItem == ListItemAlign.Center) { @@ -179,3 +181,4 @@ struct ListLanesExample { } } ``` + -- GitLab From 4cc48891b417e2fa4b0a45afe1d8d428b1b08328 Mon Sep 17 00:00:00 2001 From: solanightxie Date: Thu, 14 Jul 2022 09:41:57 +0000 Subject: [PATCH 017/868] update zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md. Signed-off-by: solanightxie --- .../reference/arkui-ts/ts-universal-attributes-background.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md index 123824d1a5..15d710e5e0 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md @@ -17,8 +17,8 @@ | 名称 | 参数类型 | 默认值 | 描述 | | -------- | -------- | -------- | -------- | -| backgroundColor | Color | - | 设置组件的背景色。 | -| backgroundImage | src: string,
repeat?: [ImageRepeat](ts-appendix-enums.md#imagerepeat枚举说明) | - | src参数:图片地址,支持网络图片资源和本地图片资源地址(不支持svg类型的图片)。
repeat参数:设置背景图片的重复样式,默认不重复。 | +| backgroundColor | [ResourceColor](../../ui/ts-types.md) | - | 设置组件的背景色。 | +| backgroundImage | src: [ResourceStr](../../ui/ts-types.md),
repeat?: [ImageRepeat](ts-appendix-enums.md#imagerepeat枚举说明) | - | src参数:图片地址,支持网络图片资源和本地图片资源地址(不支持svg类型的图片)。
repeat参数:设置背景图片的重复样式,默认不重复。 | | backgroundImageSize | {
width?: Length,
height?: Length
} \| ImageSize | Auto | 设置背景图像的高度和宽度。当输入为{width: Length, height: Length}对象时,如果只设置一个属性,则第二个属性保持图片原始宽高比进行调整。默认保持原图的比例不变。 | | backgroundImagePosition | {
x?: Length,
y?: Length
} \| [Alignment](ts-appendix-enums.md#alignment枚举说明) | {
x: 0,
y: 0
} | 设置背景图在组件中显示位置。 | -- GitLab From 1077043c16ace0b0c44c2feec9ceabe032a5fefb Mon Sep 17 00:00:00 2001 From: solanightxie Date: Thu, 14 Jul 2022 09:50:32 +0000 Subject: [PATCH 018/868] update zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-opacity.md. Signed-off-by: solanightxie --- .../reference/arkui-ts/ts-universal-attributes-opacity.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-opacity.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-opacity.md index c674cb11ba..aa285f3ccb 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-opacity.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-opacity.md @@ -17,7 +17,7 @@ | 名称 | 参数类型 | 默认值 | 描述 | | -------- | -------- | -------- | -------- | -| opacity | number | 1 | 元素的不透明度,取值范围为0到1,1表示为不透明,0表示为完全透明。 | +| opacity | number \| [Resource](../../ui/ts-types.md#resource类型) | 1 | 元素的不透明度,取值范围为0到1,1表示为不透明,0表示为完全透明。 | ## 示例 -- GitLab From 80ea22076e4ad52f7e6a5589669e6de8145566b7 Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Thu, 14 Jul 2022 19:55:17 +0800 Subject: [PATCH 019/868] update docs Signed-off-by: ester.zhou --- .../arkui-js/js-components-basic-input.md | 831 +++++------------- .../ui/ts-application-states-appstorage.md | 2 +- 2 files changed, 231 insertions(+), 602 deletions(-) diff --git a/en/application-dev/reference/arkui-js/js-components-basic-input.md b/en/application-dev/reference/arkui-js/js-components-basic-input.md index 283e9aae6e..1f10982593 100644 --- a/en/application-dev/reference/arkui-js/js-components-basic-input.md +++ b/en/application-dev/reference/arkui-js/js-components-basic-input.md @@ -1,610 +1,239 @@ -# input +# input -The **** component provides an interactive interface to receive user input. It can be a radio button, check box, button, single-line text box, and more. +> **NOTE** +> +> This component is supported since API version 4. Updates will be marked with a superscript to indicate their earliest API version. -## Required Permissions +The **\** component provides an interactive interface to receive user input. It can be a radio button, check box, button, single-line text box, and more. + +## Required Permissions None -## Child Component + +## Child Components Not supported -## Attributes - -In addition to the attributes in [Universal Attributes](js-components-common-attributes.md), the following attributes are supported. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

-

Type

-

Default Value

-

Mandatory

-

Triggered when

-

type

-

string

-

text

-

No

-

Type of the input component. Available values include text, email, date, time, number, password, button, checkbox, and radio.

-

The text, email, date, time, number, and password types can be dynamically switched and modified.

-

The button, checkbox, and radio types cannot be dynamically modified. Available values include:

-
  • button: a button that can be clicked
  • checkbox: a check box
  • radio: a radio button that allows users to select one from multiple others with the same name
  • text: a single-line text field
  • email: a field used for an email address
  • date: date control, including the year, month, and day, but excluding time
  • time: time control, without the time zone
  • number: field for entering digits
  • password: password field, in which characters will be shielded
    NOTE:

    For wearables, only button, radio, and checkbox types are supported.

    -
    -
-

checked

-

boolean

-

false

-

No

-

Whether the <input> component is selected. This attribute is valid only when type is set to checkbox or radio.

-

name

-

string

-

-

-

No

-

Name of the input component.

-

value

-

string

-

-

-

No

-

Value of the input component. When type is radio, this attribute is mandatory and the value must be unique for radio buttons with the same name.

-

placeholder

-

string

-

-

-

No

-

Content of the hint text. This attribute is available only when the component type is set to text, email, date, time, number, or password.

-

maxlength

-

number

-

-

-

No

-

Maximum number of characters that can be entered in the input box. If no value is specified, the number of characters is not limited.

-

enterkeytype

-

string

-

default

-

No

-

Dynamic modification is not supported.

-

Available values include:

-
  • default
  • next
  • go
  • done
  • send
  • Search
-
NOTE:

The soft keyboard is automatically collapsed after you click the Enter button, except when next is displayed for the button.

-
-

headericon

-

string

-

-

-

No

-

Icon resource path before text input. This icon does not support click events and is unavailable for button, checkbox, and radio types. The supported icon image formats are JPG, PNG, and SVG.

-

showcounter5+

-

boolean

-

false

-

No

-

Whether to display the character counter for an input box. This attribute takes effect only when maxlength is set.

-

menuoptions5+

-

Array<MenuOption>

-

-

-

No

-

Menu options displayed after users touch the More button.

-

autofocus6+

-

boolean

-

false

-

No

-

Whether to automatically obtain the focus.

-
NOTE:

This attribute setting does not take effect on the application home page. You can enable a text box on the home page to automatically obtain focus, by delaying the focus method call (for about 100–500 ms) in onActive.

-
-

selectedstart6+

-

number

-

-1

-

No

-

Start position for text selection.

-

selectedend6+

-

number

-

-1

-

No

-

End position for text selection.

-

softkeyboardenabled6+

-

boolean

-

true

-

No

-

Whether to display the soft keyboard during editing.

-

showpasswordicon6+

-

boolean

-

true

-

No

-

Whether to display the icon at the end of the password text box. The setting is valid only when type is set to password.

-
- -**Table 1** MenuOption5+ - - - - - - - - - - - - - - - - -

Name

-

Type

-

Triggered when

-

icon

-

string

-

Path of the icon for a menu option.

-

content

-

string

-

Text content of a menu option.

-
- -## Styles - -In addition to the styles in [Universal Styles](js-components-common-styles.md), the following styles are supported. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

-

Type

-

Default Value

-

Mandatory

-

Triggered when

-

color

-

<color>

-

#e6000000

-

No

-

Font color of the single-line text box or button.

-

font-size

-

<length>

-

16px

-

No

-

Font size of the single-line text box or button.

-

allow-scale

-

boolean

-

true

-

No

-

Whether the font size changes with the system's font size settings.

-
NOTE:

If the config-changes tag of fontSize is configured for abilities in the config.json file, the setting takes effect without application restart.

-
-

placeholder-color

-

<color>

-

#99000000

-

No

-

Color of the hint text in the single-line text box. This attribute is available when the component type is set to text, email, date, time, number, or password.

-

font-weight

-

number | string

-

normal

-

No

-

Font weight of the single-line text box or button. For details, see font-weight of the text component.

-

caret-color6+

-

<color>

-

-

-

No

-

Color of the input cursor.

-
- -## Events - -In addition to the events in [Universal Events](js-components-common-events.md), the following events are supported. - -- When the input component type is set to **text**, **email**, **date**, **time**, **number**, or **password**, the following events are supported. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

-

Parameter

-

Triggered when

-

change

-

{ value:inputValue }

-

Triggered when the content entered in the text box changes. The most recent text entered by the user is returned.

-
NOTE:

If you change the value attribute directly, this event will not be triggered.

-
-

enterkeyclick

-

{ value:enterKey }

-

Triggered when the Enter key on a soft keyboard is pressed. The type of the Enter key is returned, which is of the number type. Available values are as follows:

-
  • 2: returned if enterkeytype is go.
  • 3: returned if enterkeytype is search.
  • 4: returned if enterkeytype is send.
  • 5: returned if enterkeytype is next.
  • 6: returned if enterkeytype is default, done, or is not set.
-

translate5+

-

{ value: selectedText }

-

Triggered when users click the translate button in the pop menu displayed after they select a text segment. The selected text content is returned.

-

share5+

-

{ value: selectedText }

-

Triggered when users click the share button in the pop menu displayed after they select a text segment. The selected text content is returned.

-

search5+

-

{ value: selectedText }

-

Triggered when users click the search button in the pop menu displayed after they select a text segment. The selected text content is returned.

-

optionselect5+

-

{ index:optionIndex, value: selectedText }

-

Triggered when users click a menu option in the pop menu displayed after they select a text segment. This event is valid only when the menuoptions attribute is set. The option index and selected text content are returned.

-

selectchange6+

-

{ start: number, end: number }

-

Triggered when the text selection changes.

-
- -- When the input component type is set to **checkbox** or **radio**, the following events are supported. - - - - - - - - - - - - -

Name

-

Parameter

-

Triggered when

-

change

-

{ checked:true | false }

-

Triggered when the checked status of the checkbox or radio button changes.

-
- - -## Methods - -In addition to the methods in [Universal Methods](js-components-common-methods.md), the following events are supported. - - - - - - - - - - - - - - - - - - - - -

Name

-

Parameter

-

Triggered when

-

focus

-

{focus:true|false}: If focus is not passed, the default value true is used.

-

Obtains or loses the focus of a component. When the component type is set to text, email, date, time, number, or password, the input method can be displayed or collapsed.

-

showError

-

{ error: string }

-

Displays the error message. This attribute is available when the component type is set to text, email, date, time, number, or password.

-

delete6+

-

-

-

Deletes the text content based on the current cursor position when the input component type is set to text, email, date, time, number, or password. If the current input component does not have a cursor, the last character is deleted and the cursor is displayed by default.

-
- -## Example Code - -1. Single-line text box - - ``` - -
- - - -
- ``` - - ``` - /* xxx.css */ - .content { - width: 60%; - flex-direction: column; - align-items: center; - } - .input { - placeholder-color: gray; - } - .button { - background-color: gray; - margin-top: 20px; - } - ``` - - ``` - // xxx.js - import prompt from '@system.prompt' - export default { - change(e){ - prompt.showToast({ - message: "value: " + e.value, - duration: 3000, - }); - }, - enterkeyClick(e){ - prompt.showToast({ - message: "enterkey clicked", - duration: 3000, - }); - }, - buttonClick(e){ - this.$element("input").showError({ - error: 'error text' - }); - }, - } - ``` - - ![](figures/1-2.png) - -2. Common button - - ``` - -
- -
- ``` - - ``` - /* xxx.css */ - .div-button { - flex-direction: column; - align-items: center; - - - } - .button { - margin-top: 30px; - width: 280px; - } - ``` - - ![](figures/en-us_image_0000001198898293.png) - -3. Check box - - ``` - -
- - -
- ``` - - ``` - /* xxx.css */ - .content{ - width: 100%; - height: 200px; - - - align-items: center; - justify-content: center; - } - ``` - - ``` - // xxx.js - import prompt from '@system.prompt' - export default { - checkboxOnChange(e) { - prompt.showToast({ - message:'checked: ' + e.checked, - duration: 3000, - }); - } - } - ``` - - ![](figures/en-us_image_0000001173324749.png) - -4. Radio button - - ``` - -
- - - -
- ``` - - ``` - /* xxx.css */ - .content{ - width: 100%; - height: 200px; - justify-content: center; - align-items: center; - } - ``` - - ``` - // xxx.js - import prompt from '@system.prompt' - export default { - onRadioChange(inputValue, e) { - if (inputValue === e.value) { - prompt.showToast({ - message: 'The chosen radio is ' + e.value, - duration: 3000, - }); - } - } - } - ``` - - ![](figures/1-3.png) +## Attributes + +In addition to the [universal attributes](../arkui-js/js-components-common-attributes.md), the following attributes are supported. + +| Name | Type | Default Value | Mandatory| Description | +| -------------------------------- | ----------------------- | --------- | ---- | ------------------------------------------------------------ | +| type | string | text
| No | Type of the input component. Available values include **text**, **email**, **date**, **time**, **number**, **password**, **button**, **checkbox**, and **radio**.
The **text**, **email**, **date**, **time**, **number**, and **password** types can be dynamically switched and modified.
The **button**, **checkbox**, and **radio** types cannot be dynamically modified.
- **button**: a button that can be clicked.
- **checkbox**: a check box.
- **radio**: a radio button that allows users to select one from multiple others with the same name.
- **text**: a single-line text field.
- **email**: a field used for an email address.
- **date**: date component, including the year, month, and day, but excluding time.
- **time**: time component, without the time zone.
- **number**: field for entering digits.
- **password**: password field, in which characters will be shielded.| +| checked | boolean | false | No | Whether the **\** component is selected. This attribute is valid only when **type** is set to **checkbox** or **radio**. | +| name | string | - | No | Name of the **\** component.
This attribute is mandatory when **type** is set to **radio**. | +| value | string | - | No | Value of the **\** component. When **type** is **radio**, this attribute is mandatory and the value must be unique for radio buttons with the same name.| +| placeholder | string | - | No | Content of the hint text. This attribute is available only when the component type is set to **text**, **email**, **date**, **time**, **number**, or **password**.| +| maxlength | number | - | No | Maximum number of characters that can be entered in the input box. The empty value indicates no limit.| +| enterkeytype | string | default | No | Type of the **Enter** key on the soft keyboard. The value cannot be dynamically updated.
Available values include:
- default
- next
- go
- done
- send
- search
Except for the **next** type, clicking the Enter key hides the soft keyboard.| +| headericon | string | - | No | Icon resource path before text input. This icon does not support click events and is unavailable for **button**, **checkbox**, and **radio** types. The supported icon image formats are JPG, PNG, and SVG.| +| showcounter5+ | boolean | false | No | Whether to display the character counter for an input box. This attribute takes effect only when **maxlength** is set. | +| menuoptions5+ | Array<MeunOption> | - | No | Menu options displayed after users click the **More** button. | +| autofocus6+ | boolean | false | No | Whether to automatically obtain focus.
This attribute setting does not take effect on the application home page. You can enable a text box on the home page to automatically obtain focus, by delaying the **focus** method call (for about 100–500 ms) in **onActive**.| +| selectedstart6+ | number | -1 | No | Start position for text selection. | +| selectedend6+ | number | -1 | No | End position for text selection. | +| softkeyboardenabled6+ | boolean | true | No | Whether to display the soft keyboard during editing. | +| showpasswordicon6+ | boolean | true | No | Whether to display the icon at the end of the password text box. This attribute is available only when **type** is set to **password**. | + +**Table 1** MenuOption5+ + +| Name | Type | Description | +| ------- | ------ | ----------- | +| icon | string | Path of the icon for a menu option.| +| content | string | Text content of a menu option.| + + +## Styles + +In addition to the [universal styles](../arkui-js/js-components-common-styles.md), the following styles are supported. + +| Name | Type | Default Value | Mandatory| Description | +| ------------------------ | -------------------------- | ---------- | ---- | ------------------------------------------------------------ | +| color | <color> | \#e6000000 | No | Font color of the single-line text box or button. | +| font-size | <length> | 16px | No | Font size of the single-line text box or button. | +| allow-scale | boolean | true | No | Whether the font size changes with the system's font size settings.
If the **config-changes** tag of **fontSize** is configured for abilities in the **config.json** file, the setting takes effect without application restart.| +| placeholder-color | <color> | \#99000000 | No | Color of the hint text in the single-line text box. This attribute is available when **type** is set to **text**, **email**, **date**, **time**, **number**, or **password**.| +| font-weight | number \| string | normal | No | Font weight of the single-line text box or button. For details, see **font-weight** of the [**\** component](../arkui-js/js-components-basic-text.md).| +| caret-color6+ | <color> | - | No | Color of the input cursor. | + + +## Events + +In addition to the [universal events](../arkui-js/js-components-common-events.md), the following events are supported. + +- When **type** is set to **text**, **email**, **date**, **time**, **number**, or **password**, the following events are supported. + | Name | Parameter | Description | + | ------------------------- | ---------------------------------------- | ---------------------------------------- | + | change | {
 value: inputValue
 } | Triggered when the content entered in the input box changes. The most recent content entered by the user is returned.
If you change the **value** attribute directly, this event will not be triggered.| + | enterkeyclick | {
 value: enterKey
 } | Triggered when the **Enter** key on the soft keyboard is clicked. The type of the **Enter** key is returned, which is of the number type. Available values are as follows:
- **2**: returned if **enterkeytype** is **go**.
- **3**: returned if **enterkeytype** is **search**.
- **4**: returned if **enterkeytype** is **send**.
- **5**: returned if **enterkeytype** is **next**.
- **6**: returned if **enterkeytype** is **default**, **done**, or is not set.| + | translate5+ | {
 value: selectedText
 } | Triggered when users click the translate button in the menu displayed after they select a text segment. The selected text content is returned.| + | share5+ | {
 value: selectedText
 } | Triggered when users click the share button in the menu displayed after they select a text segment. The selected text content is returned.| + | search5+ | {
 value: selectedText
 } | Triggered when users click the search button in the menu displayed after they select a text segment. The selected text content is returned.| + | optionselect5+ | {
 index: optionIndex,
 value: selectedText
 } | Triggered when users click a menu option in the menu displayed after they select a text segment. This event is valid only when the **menuoptions** attribute is set. The option index and selected text content are returned.| + | selectchange6+ | {
start: number,
end: number
 } | Triggered when the text selection changes. | + +- When **type** is set to **checkbox** or **radio**, the following events are supported. + | Name | Parameter | Description | + | ------ | ---------------------------------------- | ---------------------------------------- | + | change | {
 checked:true \| false 
} | Triggered when the checked status of the **checkbox** or **radio** button changes.| + +## Methods + +In addition to the [universal methods](../arkui-js/js-components-common-methods.md), the following methods are supported. + +| Name | Parameter | Description | +| ------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| focus | {
 focus: true\|false
 }:
If **focus** is not passed, the default value **true** is used.| Obtains or loses focus. When **type** is set to **text**, **email**, **date**, **time**, **number**, or password, the input method can be displayed or hidden.| +| showError | {
 error: string 
} | Displays the error message. This attribute is available when **type** is set to **text**, **email**, **date**, **time**, **number**, or **password**.| +| delete6+ | - | Deletes the text content based on the current cursor position when **type** is set to **text**, **email**, **date**, **time**, **number**, or **password**; deletes the last character and displays the cursor if the current input component does not have a cursor.| + +## Example + +1. Single-line text box + ```html + +
+ + + +
+ ``` + + ```css + /* xxx.css */ + .content { + width: 60%; + flex-direction: column; + align-items: center; + } + .input { + placeholder-color: gray; + } + .button { + background-color: gray; + margin-top: 20px; + } + ``` + + ```js + // xxx.js + import prompt from '@system.prompt' + export default { + change(e){ + prompt.showToast({ + message: "value: " + e.value, + duration: 3000, + }); + }, + enterkeyClick(e){ + prompt.showToast({ + message: "enterkey clicked", + duration: 3000, + }); + }, + buttonClick(e){ + this.$element("input").showError({ + error: 'error text' + }); + }, + } + ``` + + ![1-2](figures/1-2.png) + +2. Common button + ```html + +
+ +
+ ``` + + ```css + /* xxx.css */ + .div-button { + flex-direction: column; + align-items: center; + } + .button { + margin-top: 30px; + width: 280px; + } + ``` + + ![en-us_image_0000001198898293](figures/en-us_image_0000001198898293.png) + +3. Check box + ```html + +
+ +
+ ``` + + ```css + /* xxx.css */ + .content{ + width: 100%; + height: 200px; + align-items: center; + justify-content: center; + } + ``` + + ```js + // xxx.js + import prompt from '@system.prompt' + export default { + checkboxOnChange(e) { + prompt.showToast({ + message:'checked: ' + e.checked, + duration: 3000, + }); + } + } + ``` + + ![en-us_image_0000001173324749](figures/en-us_image_0000001173324749.png) + +4. Radio button + ```html + +
+ + + +
+ ``` + + ```css + /* xxx.css */ + .content{ + width: 100%; + height: 200px; + justify-content: center; + align-items: center; + } + ``` + + ```js + // xxx.js + import prompt from '@system.prompt' + export default { + onRadioChange(inputValue, e) { + if (inputValue === e.value) { + prompt.showToast({ + message: 'The chosen radio is ' + e.value, + duration: 3000, + }); + } + } + } + ``` + + ![1-3](figures/1-3.png) diff --git a/en/application-dev/ui/ts-application-states-appstorage.md b/en/application-dev/ui/ts-application-states-appstorage.md index 66f9e82115..ac77b40dd5 100644 --- a/en/application-dev/ui/ts-application-states-appstorage.md +++ b/en/application-dev/ui/ts-application-states-appstorage.md @@ -62,7 +62,7 @@ struct ComponentA { @StorageProp('languageCode') lang: string = 'en' private label: string = 'count' - private aboutToAppear() { + aboutToAppear() { this.label = (this.lang === 'en') ? 'Number' : 'Count' } -- GitLab From 7600ea5149ff74ae65b939e68497dd89282c1011 Mon Sep 17 00:00:00 2001 From: solanightxie Date: Thu, 14 Jul 2022 12:05:02 +0000 Subject: [PATCH 020/868] update zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md. Signed-off-by: solanightxie --- .../reference/arkui-ts/ts-universal-attributes-popup.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md index 77436ad352..f0998baca4 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md @@ -33,8 +33,8 @@ | -------- | -------- | -------- | -------- | -------- | | builder | () => any | 是 | - | 提示气泡内容的构造器。 | | placement | Placement | 否 | Placement.Bottom | 气泡组件优先显示的位置,当前位置显示不下时,会自动调整位置。 | - | maskColor | [Color](../../ui/ts-types.md#颜色类型) | 否 | - | 提示气泡遮障层的颜色。 | - | popupColor | [Color](../../ui/ts-types.md#颜色类型) | 否 | - | 提示气泡的颜色。 | + | maskColor | [ResourceColor](../../ui/ts-types.md) | 否 | - | 提示气泡遮障层的颜色。 | + | popupColor | [ResourceColor](../../ui/ts-types.md) | 否 | - | 提示气泡的颜色。 | | enableArrow | boolean | 否 | true | 是否显示箭头。
从API Version 9开始,如果箭头所在方位侧的气泡长度不足以显示下箭头,则会默认不显示箭头。比如:placement设置为Left,但气泡高度小于箭头的宽度(32vp),则实际不会显示箭头。 | | autoCancel | boolean | 否 | true | 页面有操作时,是否自动关闭气泡 | | onStateChange | (isVisible: boolean) => void | 否 | - | 弹窗状态变化事件回调,参数为弹窗当前的显示状态。 | -- GitLab From d2c506d9365fdb64a12da683f222eb906924f718 Mon Sep 17 00:00:00 2001 From: solanightxie Date: Thu, 14 Jul 2022 12:28:00 +0000 Subject: [PATCH 021/868] update zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-polymorphic-style.md. Signed-off-by: solanightxie --- .../arkui-ts/ts-universal-attributes-polymorphic-style.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-polymorphic-style.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-polymorphic-style.md index 2363e09c47..a0ae6d4562 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-polymorphic-style.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-polymorphic-style.md @@ -23,7 +23,9 @@ | -------- | -------- | -------- | -------- | -------- | | normal | ()=>void | 否 | - | 组件无状态时的样式。 | | pressed | ()=>void | 否 | - | 组件按下状态的样式。 | - | disabled | ()=>void | 否 | - | 组件禁用状态的样式。 | + | disabled | ()=>void | 否 | - | 组件禁用状态的样式。 | + | focused | ()=>void | 否 | - | 组件聚焦状态的样式。 | + | clicked | ()=>void | 否 | - | 组件点击状态的样式。 | ## 示例 -- GitLab From c321cb071a6ce5e93553a2d3395b96fc5d14b2b7 Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Thu, 14 Jul 2022 16:58:38 +0800 Subject: [PATCH 022/868] update ts-methods-alert-dialog-box.md Signed-off-by: ester.zhou --- .../arkui-ts/ts-methods-alert-dialog-box.md | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/en/application-dev/reference/arkui-ts/ts-methods-alert-dialog-box.md b/en/application-dev/reference/arkui-ts/ts-methods-alert-dialog-box.md index e833069111..30ea8acfed 100644 --- a/en/application-dev/reference/arkui-ts/ts-methods-alert-dialog-box.md +++ b/en/application-dev/reference/arkui-ts/ts-methods-alert-dialog-box.md @@ -1,8 +1,9 @@ # Alert Dialog Box -> **NOTE**
-> This component is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version. +> **NOTE** +> +> This method is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version. The **** component is used to display an alert dialog box. You can set the text content and response callback for an alert dialog box as needed. @@ -10,40 +11,41 @@ The **** component is used to display an alert dialog box. You can ## Attributes -| Name | Type | Default Value | Description | +| Name | Type | Default Value | Description | | -------- | -------- | -------- | -------- | -| show | options: { paramObject1\| paramObject2} | - | Defines and displays the **** component. | +| show | options: { paramObject1 \| paramObject2} | - | Defines and displays the **** component. | - paramObject1 parameters | Name | Type | Mandatory | Default Value | Description | | -------- | -------- | -------- | -------- | -------- | - | title | string \|[Resource](../../ui/ts-types.md#resource) | | | Title of a dialog box. | - | message | string \|[Resource](../../ui/ts-types.md#resource) | | | Content of the dialog box. | + | title | string \| [Resource](../../ui/ts-types.md) | No | - | Title of a dialog box. | + | message | string \| [Resource](../../ui/ts-types.md) | Yes | - | Content of the dialog box. | | autoCancel | boolean | No | true | Whether to close the dialog box when the overlay is clicked. | - | confirm | {
value: string \|[Resource](../../ui/ts-types.md#resource),
fontColor?: Color\|number \|string \|[Resource](../../ui/ts-types.md#resource),
backgroundColor?:Color \|number\|string\|[Resource](../../ui/ts-types.md#resource),
action: () => void
}
| | | Text content, text color, background color, and click callback of the confirm button. | + | confirm | {
value: string \| [Resource](../../ui/ts-types.md),
fontColor?: Color\| number \| string \| [Resource](../../ui/ts-types.md),
backgroundColor?:Color \| number \| string \| [Resource](../../ui/ts-types.md),
action: () => void
}
| No | - | Text content, text color, background color, and click callback of the confirm button. | | cancel | () => void | No | - | Callback invoked when the dialog box is closed after the overlay is clicked. | - | alignment | DialogAlignment | No | DialogAlignment.Default | Alignment mode of the dialog box in the vertical direction. | - | offset | {
dx: Length \|[Resource](../../ui/ts-types.md#resource),
dy: Length \|[Resource](../../ui/ts-types.md#resource)
} | | | Offset of the dialog box relative to the alignment position. | + | alignment | [DialogAlignment](ts-methods-custom-dialog-box.md) | No | DialogAlignment.Default | Alignment mode of the dialog box in the vertical direction. | + | offset | {
dx: Length \| [Resource](../../ui/ts-types.md),
dy: Length \| [Resource](../../ui/ts-types.md)
} | No | - | Offset of the dialog box relative to the alignment position. | | gridCount | number | No | - | Number of grid columns occupied by the width of the dialog box. | - paramObject2 parameters | Name | Type | Mandatory | Default Value | Description | | -------- | -------- | -------- | -------- | -------- | - | title | string \|[Resource](../../ui/ts-types.md#resource) | No | - | Title of a dialog box. | - | message | string \|[Resource](../../ui/ts-types.md#resource) | Yes | - | Content of the dialog box. | + | title | string \| [Resource](../../ui/ts-types.md) | No | - | Title of a dialog box. | + | message | string \| [Resource](../../ui/ts-types.md) | Yes | - | Content of the dialog box. | | autoCancel | boolean | No | true | Whether to close the dialog box when the overlay is clicked. | - | primaryButton | {
value: string \|[Resource](../../ui/ts-types.md#resource),
fontColor?: Color\|number \|string \|[Resource](../../ui/ts-types.md#resource),
backgroundColor?:Color \|number\|string\|[Resource](../../ui/ts-types.md#resource),
action: () => void
}
| | | Text content, text color, background color, and click callback of the primary button. | - | secondaryButton | {
value: string \|[Resource](../../ui/ts-types.md#resource),
fontColor?: Color\|number \|string \|[Resource](../../ui/ts-types.md#resource),
backgroundColor?:Color \|number\|string\|[Resource](../../ui/ts-types.md#resource),
action: () => void
}
| | | Text content, text color, background color, and click callback of the secondary button. | + | primaryButton | {
value: string \| [Resource](../../ui/ts-types.md),
fontColor?: Color \| number \| string \| [Resource](../../ui/ts-types.md),
backgroundColor?:Color \| number\| string\| [Resource](../../ui/ts-types.md),
action: () => void
}
| No | - | Text content, text color, background color, and click callback of the primary button. | + | secondaryButton | {
value: string \|[Resource](../../ui/ts-types.md),
fontColor?: Color \| number \| string \| [Resource](../../ui/ts-types.md),
backgroundColor?:Color \| number\| string\| [Resource](../../ui/ts-types.md),
action: () => void
}
| No | - | Text content, text color, background color, and click callback of the secondary button. | | cancel | () => void | No | - | Callback invoked when the dialog box is closed after the overlay is clicked. | - | alignment | DialogAlignment | No | DialogAlignment.Default | Alignment mode of the dialog box in the vertical direction. | - | offset | {
dx: Length \|[Resource](../../ui/ts-types.md#resource),
dy: Length \|[Resource](../../ui/ts-types.md#resource)
} | | | Offset of the dialog box relative to the alignment position. | + | alignment | [DialogAlignment](ts-methods-custom-dialog-box.md) | No | DialogAlignment.Default | Alignment mode of the dialog box in the vertical direction. | + | offset | {
dx: Length \| [Resource](../../ui/ts-types.md),
dy: Length \| [Resource](../../ui/ts-types.md)
} | No | - | Offset of the dialog box relative to the alignment position. | | gridCount | number | No | - | Number of grid columns occupied by the width of the dialog box. | ## Example -``` +```ts +// xxx.ets @Entry @Component struct AlertDialogExample { -- GitLab From 060c476f9c7b01b985cb158fbc548f0bb3c99f1a Mon Sep 17 00:00:00 2001 From: xuzhihao Date: Tue, 12 Jul 2022 15:40:46 +0800 Subject: [PATCH 023/868] Fix issues of Notification docs Signed-off-by: xuzhihao --- .../reference/apis/js-apis-notification.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-notification.md b/zh-cn/application-dev/reference/apis/js-apis-notification.md index 3684393fab..8d95c5db9e 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-notification.md +++ b/zh-cn/application-dev/reference/apis/js-apis-notification.md @@ -2924,7 +2924,7 @@ function enableSlotCallback(err) { Notification.enableNotificationSlot( { bundle: "ohos.samples.notification", }, - notify.SlotType.SOCIAL_COMMUNICATION, + Notification.SlotType.SOCIAL_COMMUNICATION, true, enableSlotCallback); ``` @@ -2953,7 +2953,7 @@ enableNotificationSlot(bundle: BundleOption, type: SlotType, enable: boolean): P //enableNotificationSlot Notification.enableNotificationSlot( { bundle: "ohos.samples.notification", }, - notify.SlotType.SOCIAL_COMMUNICATION, + Notification.SlotType.SOCIAL_COMMUNICATION, true).then(() => { console.log('====================>enableNotificationSlot====================>'); }); @@ -2961,7 +2961,7 @@ Notification.enableNotificationSlot( ## Notification.isNotificationSlotEnabled 9+ -isNotificationSlotEnabled(bundle: BundleOption, type: SlotType, callback: AsyncCallback): void +isNotificationSlotEnabled(bundle: BundleOption, type: SlotType, callback: AsyncCallback\): void 获取指定类型的渠道使能状态(Callback形式)。 @@ -2975,7 +2975,7 @@ isNotificationSlotEnabled(bundle: BundleOption, type: SlotType, callback: AsyncC | -------- | ----------------------------- | ---- | ---------------------- | | bundle | [BundleOption](#bundleoption) | 是 | 指定包信息。 | | type | [SlotType](#slottype) | 是 | 指定渠道类型。 | -| callback | AsyncCallback\ | 是 | 设定渠道使能回调函数。 | +| callback | AsyncCallback\ | 是 | 设定渠道使能回调函数。 | **示例:** @@ -2987,13 +2987,13 @@ function getEnableSlotCallback(err, data) { Notification.isNotificationSlotEnabled( { bundle: "ohos.samples.notification", }, - notify.SlotType.SOCIAL_COMMUNICATION, + Notification.SlotType.SOCIAL_COMMUNICATION, getEnableSlotCallback); ``` ## Notification.isNotificationSlotEnabled 9+ -isNotificationSlotEnabled(bundle: BundleOption, type: SlotType): Promise +isNotificationSlotEnabled(bundle: BundleOption, type: SlotType): Promise\ 获取指定类型的渠道使能状态(Promise形式)。 @@ -3014,8 +3014,8 @@ isNotificationSlotEnabled(bundle: BundleOption, type: SlotType): Promise { + Notification.SlotType.SOCIAL_COMMUNICATION + ).then((data) => { console.log('====================>isNotificationSlotEnabled====================>'); }); ``` -- GitLab From 9745eccd3b15ce940778eaaca1b02da658370f4e Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Fri, 15 Jul 2022 10:28:09 +0800 Subject: [PATCH 024/868] update js-components-basic-picker-view.md Signed-off-by: ester.zhou --- .../js-components-basic-picker-view.md | 682 +++--------------- 1 file changed, 116 insertions(+), 566 deletions(-) diff --git a/en/application-dev/reference/arkui-js/js-components-basic-picker-view.md b/en/application-dev/reference/arkui-js/js-components-basic-picker-view.md index 7c925bad74..426e227f90 100644 --- a/en/application-dev/reference/arkui-js/js-components-basic-picker-view.md +++ b/en/application-dev/reference/arkui-js/js-components-basic-picker-view.md @@ -1,577 +1,128 @@ -# picker-view +# picker-view -The **** component provides the view that shows an embedded scrollable selector on the screen. +> **NOTE** +> +> This component is supported since API version 4. Updates will be marked with a superscript to indicate their earliest API version. -## Child Components +The **\** component provides the view that shows an embedded scrollable selector on the screen. + + +## Child Components Not supported -## Attributes - -In addition to the attributes in [Universal Attributes](js-components-common-attributes.md), the following attributes are supported. - - - - - - - - - - - - - - - - -

Name

-

Type

-

Default Value

-

Mandatory

-

Description

-

type

-

string

-

text

-

No

-

Type of the scrollable selector, which cannot be changed dynamically. Available values are as follows:

-
  • text: text selector
  • time: time selector
  • date: date selector
  • datetime: date and time selector
  • multi-text: multi-column text selector
-
- -Text selector \(**type** is **text**\) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

-

Type

-

Default Value

-

Mandatory

-

Description

-

range

-

Array

-

-

-

No

-

Value range of the text selector.

-
NOTE:

Use the data binding mode, for example, range = {{data}}. Declare the corresponding variable data: ["15", "20", "25"] in JavaScript.

-
-

selected

-

string

-

0

-

No

-

Default value of the text selector. The value is the index of range.

-

indicatorprefix

-

string

-

-

-

No

-

Prefix field added when a value is specified for the text selector.

-

indicatorsuffix

-

string

-

-

-

No

-

Suffix field added when a value is specified for the text selector.

-
- -Time selector \(**type** is **time**\) - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

-

Type

-

Default Value

-

Mandatory

-

Description

-

containsecond

-

boolean

-

false

-

No

-

Whether seconds are contained.

-

selected

-

string

-

Current time

-

No

-

Default value of the time selector, in the format of HH:mm.

-

If seconds are contained, the format is HH:mm:ss.

-

hours

-

number

-

241-4

-

-5+

-

No

-

Time format used by the time selector. Available values include:

-
  • 12: displayed in 12-hour format and distinguished by a.m. and p.m.
  • 24: displayed in 24-hour format
    NOTE:

    The default value is the most commonly-used hour format in the current locale. 5+

    -
    -
-
- -Date selector \(**type** is **date**\) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

-

Type

-

Default Value

-

Mandatory

-

Description

-

start

-

<time>

-

1970-1-1

-

No

-

Start date of the date selector, in the format of YYYY-MM-DD.

-

end

-

<time>

-

2100-12-31

-

No

-

End date of the date selector, in the format of YYYY-MM-DD.

-

selected

-

string

-

Current date

-

No

-

Default value of the date selector, in the format of YYYY-MM-DD.

-

lunar5+

-

boolean

-

false

-

No

-

Whether the pop-up window displays the lunar calendar.

-

lunarswitch

-

boolean

-

false

-

No

-

Whether to display the lunar calendar switch in the date selector. When this switch is displayed, you can switch between the lunar calendar and Gregorian calendar. Turn on the switch to display the lunar calendar, and turn off the switch to hide the lunar calendar.

-
NOTE:

-
-
- -Date and time selector \(**type** is **datetime**\) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

-

Type

-

Default Value

-

Mandatory

-

Description

-

selected

-

string

-

Current date and time

-

No

-

Default value of the date and time selector. The value can be in the format of MM-DD-HH-mm or YYYY-MM-DD-HH-mm. If the year is not set, the current year is used by default. The value you set is the date selected by default in the pop-up window.

-

hours

-

number

-

241-4

-

-5+

-

No

-

Time format used by the date and time selector. Available values include:

-
  • 12: displayed in 12-hour format and distinguished by a.m. and p.m.
  • 24: displayed in 24-hour format
    NOTE:

    The default value is the most commonly-used hour format in the current locale. 5+

    -
    -
-

lunar5+

-

boolean

-

false

-

No

-

Whether the pop-up window displays the lunar calendar.

-

lunarswitch

-

boolean

-

false

-

No

-

Whether to display the lunar calendar switch in the date and time selector. When this switch is displayed, you can switch between the lunar calendar and Gregorian calendar. Turn on the switch to display the lunar calendar, and turn off the switch to hide the lunar calendar.

-
NOTE:

-

-
- -Multi-column text selector \(**type** is **multi-text**\) - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

-

Type

-

Default Value

-

Mandatory

-

Description

-

columns

-

number

-

-

-

Yes

-

Number of columns in the multi-column text selector.

-

range

-

Two-dimensional array

-

-

-

No

-

Items of the multi-column text selector. range is a two-dimensional array that indicates the number of columns. Each item in the array indicates the data of each column, for example, [["a","b"], ["c","d"]].

-
NOTE:

Use the data binding mode, for example, range = {{data}}. Declare the corresponding variable data: [["a","b"], ["c","d"]] in the JavaScript.

-
-

selected

-

Array

-

0,0,0,...

-

No

-

Default value of the multi-column text selector, which is an array consisting of the indexes of the selected items in each column.

-
- -## Styles - -In addition to the styles in [Universal Styles](js-components-common-styles.md), the following styles are supported. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

-

Type

-

Default Value

-

Mandatory

-

Description

-

color

-

<color>

-

#ffffff

-

No

-

Font color of a candidate item.

-

font-size

-

<length>

-

16px

-

No

-

Font size of a candidate item. The value is of the length type, in pixels.

-

selected-color

-

<color>

-

#ff0a69f7

-

No

-

Font color of the selected item.

-

selected-font-size

-

<length>

-

20px

-

No

-

Font size of the selected item. The value is of the length type, in pixels.

-

disappear-color5+

-

<color>

-

#ffffff

-

No

-

Font color of the items that gradually disappear. Disappearing items are the top option and bottom option of a column containing five options in total.

-
NOTE:

-
-

disappear-font-size5+

-

<length>

-

14px

-

No

-

Font size of the items that gradually disappear. Disappearing items are the top option and bottom option of a column containing five options in total.

-
NOTE:

-
-

font-family

-

string

-

sans-serif

-

No

-

Font type of an item. Font family, in which fonts are separated by commas (,). Each font is set using a font name or font family name. The first font in the family or the font specified by Custom Font Styles is used for the text

-
- -## Events + +## Attributes + +In addition to the [universal attributes](../arkui-js/js-components-common-attributes.md), the following attributes are supported. + +| Name | Type | Default Value | Mandatory | Description | +| ---- | ------ | ---- | ---- | ---------------------------------------- | +| type | string | text | No | Type of the scrollable selector, which cannot be changed dynamically. Available values are as follows:
- **text**: text selector.
- **time**: time selector.
- **date**: date selector.
- **datetime**: date and time selector.
- **multi-text**: multi-column text selector.| + +Text selector (**type** is **text**) + +| Name | Type | Default Value | Mandatory | Description | +| --------------- | ------ | ---- | ---- | ---------------------------------------- | +| range | Array | - | No | Value range of the text selector.
Use the data binding mode, for example, `range = {{data}}`. Declare the corresponding variable `data: ["15", "20", "25"]` in JavaScript.| +| selected | string | 0 | No | Default value of the text selector. The value is the index of **range**. | +| indicatorprefix | string | - | No | Prefix field added when a value is specified for the text selector. | +| indicatorsuffix | string | - | No | Suffix field added when a value is specified for the text selector. | + +Time selector (**type** is **time**) + +| Name | Type | Default Value | Mandatory | Description | +| ------------- | ------- | ----------------------------------- | ---- | ---------------------------------------- | +| containsecond | boolean | false | No | Whether seconds are contained. | +| selected | string | Current time | No | Default value of the time selector, in the format of HH:mm.
If seconds are contained, the format is HH:mm:ss.| +| hours | number | 241-4 | No | Time format used by the time selector. Available values are as follows:
- **12**: displayed in 12-hour format and distinguished by a.m. and p.m.
- **24**: displayed in 24-hour format.
Since API version 5, the default value is the most commonly-used hour format in the current locale.| + +Date selector (**type** is **date**) + +| Name | Type | Default Value | Mandatory | Description | +| ------------------ | ------------ | ---------- | ---- | ---------------------------------------- | +| start | <time> | 1970-1-1 | No | Start date of the date selector, in the format of YYYY-MM-DD. | +| end | <time> | 2100-12-31 | No | End date of the date selector, in the format of YYYY-MM-DD. | +| selected | string | Current date | No | Default value of the date selector, in the format of YYYY-MM-DD. | +| lunar5+ | boolean | false | No | Whether the pop-up window displays the lunar calendar. | +| lunarswitch | boolean | false | No | Whether to display the lunar calendar switch in the date selector. When this switch is displayed, the user can switch between the lunar calendar and Gregorian calendar. Turn on the switch to display the lunar calendar, and turn off the switch to hide the lunar calendar.| + +Date and time selector (**type** is **datetime**) + +| Name | Type | Default Value | Mandatory | Description | +| ------------------ | ------- | ----------------------------------- | ---- | ---------------------------------------- | +| selected | string | Current date and time | No | Default value of the date and time selector. The value can be in the format of MM-DD-HH-mm or YYYY-MM-DD-HH-mm. If the year is not set, the current year is used by default. The value you set is the date selected by default in the pop-up window.| +| hours | number | 241-4 | No | Time format used by the date and time selector. Available values are as follows:
- **12**: displayed in 12-hour format and distinguished by a.m. and p.m.
- **24**: displayed in 24-hour format.
Since API version 5, the default value is the most commonly-used hour format in the current locale.| +| lunar5+ | boolean | false | No | Whether the pop-up window displays the lunar calendar. | +| lunarswitch | boolean | false | No | Whether to display the lunar calendar switch in the date and time selector. When this switch is displayed, the user can switch between the lunar calendar and Gregorian calendar. Turn on the switch to display the lunar calendar, and turn off the switch to hide the lunar calendar.| + +Multi-column text selector (**type** is **multi-text**) + +| Name | Type | Default Value | Mandatory | Description | +| -------- | ------- | --------- | ---- | ---------------------------------------- | +| columns | number | - | Yes | Number of columns in the multi-column text selector. | +| range | Two-dimensional array| - | No | Items of the multi-column text selector. The value is a two-dimensional array that indicates the number of columns. Each item in the array indicates the data of each column, for example, **[["a", "b"], ["c", "d"]]**.
Use the data binding mode, for example, `range = {{data}}`. Declare the corresponding variable `data: ["15", "20", "25"]` in JavaScript.| +| selected | Array | [0,0,0,…]| No | Default value of the multi-column text selector, which is an array consisting of the indexes of the selected items in each column.| + + +## Styles + +In addition to the [universal styles](../arkui-js/js-components-common-styles.md), the following styles are supported. + +| Name | Type | Default Value | Mandatory | Description | +| -------------------------------- | -------------- | ---------- | ---- | ---------------------------------------- | +| color | <color> | \#ffffff | No | Font color of a candidate item. | +| font-size | <length> | 16px | No | Font size of a candidate item. The value is of the length type, in pixels. | +| selected-color | <color> | #ff0a69f7 | No | Font color of the selected item. | +| selected-font-size | <length> | 20px | No | Font size of the selected item. The value is of the length type, in pixels. | +| disappear-color5+ | <color> | \#ffffff | No | Font color of the items that gradually disappear. Disappearing items are the top option and bottom option of a column containing five options in total. | +| disappear-font-size5+ | <length> | 14px | No | Font size of the items that gradually disappear. Disappearing items are the top option and bottom option of a column containing five options in total. | +| font-family | string | sans-serif | No | Font family of the selector, in which fonts are separated by commas (,). Each font is set using a font name or font family name. The first font in the family or the specified [custom font](../arkui-js/js-components-common-customizing-font.md) is used for the text.| + + +## Events The following events are supported. -Text selector \(**type** is **text**\) - - - - - - - - - - - - -

Name

-

Parameter

-

Description

-

change

-

{ newValue: newValue, newSelected: newSelected }

-

Triggered when a value is specified for the text selector.

-
- -Time selector \(**type** is **time**\) - - - - - - - - - - - - -

Name

-

Parameter

-

Description

-

change

-

{ hour: hour, minute: minute, [second:second] }

-

Triggered when a value is specified for the time selector.

-

If seconds are contained, the value contains hour, minute, and second.

-
- -Date selector \(**type** is **date**\) - - - - - - - - - - - - -

Name

-

Parameter

-

Description

-

change

-

{ year:year, month:month, day:day }

-

Triggered when a value is specified for the date selector.

-
- -Date and time selector \(**type** is **datetime**\) - - - - - - - - - - - - -

Name

-

Parameter

-

Description

-

change

-

{ year:year, month:month, day:day, hour:hour, minute:minute }

-

Triggered when a value is specified for the date and time selector.

-
- -Multi-text selector \(**type** is **multi-text**\) - - - - - - - - - - - - -

Name

-

Parameter

-

Description

-

columnchange

-

{ column:column, newValue:newValue, newSelected:newSelected }

-

Triggered when the value of a column in the multi-column selector changes. column indicates the column whose value has changed, newValue indicates the selected value, and newSelected indicates the index of the selected value.

-
- -## Methods +Text selector (**type** is **text**) + +| Name | Parameter | Description | +| ------ | ---------------------------------------- | --------------- | +| change | { newValue: newValue, newSelected: newSelected } | Triggered when a value is specified for the text selector.| + +Time selector (**type** is **time**) + +| Name | Parameter | Description | +| ------ | ---------------------------------------- | ------------------------------- | +| change | { hour: hour, minute: minute, [second:second]} | Triggered when a value is specified for the time selector.
If seconds are contained, the value contains hour, minute, and second.| + +Date selector (**type** is **date**) + +| Name | Parameter | Description | +| ------ | ---------------------------------------- | --------------- | +| change | { year:year, month:month, day:day } | Triggered when a value is specified for the date selector.| + +Date and time selector (**type** is **datetime**) + +| Name | Parameter | Description | +| ------ | ---------------------------------------- | ----------------- | +| change | { year:year, month:month, day:day,  hour:hour, minute:minute } | Triggered when a value is specified for the date and time selector.| + +Multi-text selector (**type** is **multi-text**) + +| Name | Parameter | Description | +| ------------ | ---------------------------------------- | ---------------------------------------- | +| columnchange | { column:column, newValue:newValue, newSelected:newSelected } | Triggered when the value of a column in the multi-column selector changes.
**column**: column whose value has changed.
**newValue**: selected value.
**newSelected**: index of the selected value.| + + +## Methods Not supported -## Example Code -``` +## Example + +```html
@@ -581,7 +132,7 @@ Not supported
``` -``` +```css /* xxx.css */ .container { flex-direction: column; @@ -603,7 +154,7 @@ Not supported } ``` -``` +```js /* xxx.js */ export default { data: { @@ -633,5 +184,4 @@ export default { } ``` -![](figures/lite_bar-4.png) - +![lite_bar-4](figures/lite_bar-4.png) -- GitLab From 891e0cb5fc1de53e892d518d2fd69b93a3acb6b7 Mon Sep 17 00:00:00 2001 From: solanightxie Date: Fri, 15 Jul 2022 03:12:02 +0000 Subject: [PATCH 025/868] update zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md. Signed-off-by: solanightxie --- .../reference/arkui-ts/ts-universal-attributes-popup.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md index f0998baca4..9be60d4e9b 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md @@ -33,8 +33,8 @@ | -------- | -------- | -------- | -------- | -------- | | builder | () => any | 是 | - | 提示气泡内容的构造器。 | | placement | Placement | 否 | Placement.Bottom | 气泡组件优先显示的位置,当前位置显示不下时,会自动调整位置。 | - | maskColor | [ResourceColor](../../ui/ts-types.md) | 否 | - | 提示气泡遮障层的颜色。 | - | popupColor | [ResourceColor](../../ui/ts-types.md) | 否 | - | 提示气泡的颜色。 | + | maskColor | [ResourceColor](../../ui/ts-types.md#resourcecolor类型8) | 否 | - | 提示气泡遮障层的颜色。 | + | popupColor | [ResourceColor](../../ui/ts-types.md#resourcecolor类型8) | 否 | - | 提示气泡的颜色。 | | enableArrow | boolean | 否 | true | 是否显示箭头。
从API Version 9开始,如果箭头所在方位侧的气泡长度不足以显示下箭头,则会默认不显示箭头。比如:placement设置为Left,但气泡高度小于箭头的宽度(32vp),则实际不会显示箭头。 | | autoCancel | boolean | 否 | true | 页面有操作时,是否自动关闭气泡 | | onStateChange | (isVisible: boolean) => void | 否 | - | 弹窗状态变化事件回调,参数为弹窗当前的显示状态。 | -- GitLab From ac66bef8cf81b57b0eecf488de9ed1a2d1f5ddc2 Mon Sep 17 00:00:00 2001 From: solanightxie Date: Fri, 15 Jul 2022 03:21:19 +0000 Subject: [PATCH 026/868] update zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md. Signed-off-by: solanightxie --- .../reference/arkui-ts/ts-basic-components-blank.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md index 88a5ed0613..eb42fce5ae 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md @@ -31,7 +31,7 @@ Blank(min?: Length) | 名称 | 参数类型 | 默认值 | 描述 | | -------- | -------- | -------- | -------- | -| color | [ResourceColor](../../ui/ts-types.md) | 0x00000000 | 设置空白填充的填充颜色。 | +| color | [ResourceColor](../../ui/ts-types.md#resourcecolor类型8) | 0x00000000 | 设置空白填充的填充颜色。 | > **说明:** > - 不支持通用属性方法。 -- GitLab From b817696d995cf93f340d8283d5d67f86f083e8e8 Mon Sep 17 00:00:00 2001 From: solanightxie Date: Fri, 15 Jul 2022 03:51:20 +0000 Subject: [PATCH 027/868] update zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md. Signed-off-by: solanightxie --- .../reference/arkui-ts/ts-universal-attributes-background.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md index 15d710e5e0..f360ac0de2 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md @@ -17,8 +17,8 @@ | 名称 | 参数类型 | 默认值 | 描述 | | -------- | -------- | -------- | -------- | -| backgroundColor | [ResourceColor](../../ui/ts-types.md) | - | 设置组件的背景色。 | -| backgroundImage | src: [ResourceStr](../../ui/ts-types.md),
repeat?: [ImageRepeat](ts-appendix-enums.md#imagerepeat枚举说明) | - | src参数:图片地址,支持网络图片资源和本地图片资源地址(不支持svg类型的图片)。
repeat参数:设置背景图片的重复样式,默认不重复。 | +| backgroundColor | [ResourceColor](../../ui/ts-types.md#resourcecolor类型8) | - | 设置组件的背景色。 | +| backgroundImage | src: [ResourceStr](../../ui/ts-types.md#resourcestr类型8),
repeat?: [ImageRepeat](ts-appendix-enums.md#imagerepeat枚举说明) | - | src参数:图片地址,支持网络图片资源和本地图片资源地址(不支持svg类型的图片)。
repeat参数:设置背景图片的重复样式,默认不重复。 | | backgroundImageSize | {
width?: Length,
height?: Length
} \| ImageSize | Auto | 设置背景图像的高度和宽度。当输入为{width: Length, height: Length}对象时,如果只设置一个属性,则第二个属性保持图片原始宽高比进行调整。默认保持原图的比例不变。 | | backgroundImagePosition | {
x?: Length,
y?: Length
} \| [Alignment](ts-appendix-enums.md#alignment枚举说明) | {
x: 0,
y: 0
} | 设置背景图在组件中显示位置。 | -- GitLab From 189ca459f0d942dda640e85b251b89c4ae27af8e Mon Sep 17 00:00:00 2001 From: solanightxie Date: Fri, 15 Jul 2022 03:58:35 +0000 Subject: [PATCH 028/868] update zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md. Signed-off-by: solanightxie --- .../reference/arkui-ts/ts-universal-attributes-popup.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md index 9be60d4e9b..f0998baca4 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md @@ -33,8 +33,8 @@ | -------- | -------- | -------- | -------- | -------- | | builder | () => any | 是 | - | 提示气泡内容的构造器。 | | placement | Placement | 否 | Placement.Bottom | 气泡组件优先显示的位置,当前位置显示不下时,会自动调整位置。 | - | maskColor | [ResourceColor](../../ui/ts-types.md#resourcecolor类型8) | 否 | - | 提示气泡遮障层的颜色。 | - | popupColor | [ResourceColor](../../ui/ts-types.md#resourcecolor类型8) | 否 | - | 提示气泡的颜色。 | + | maskColor | [ResourceColor](../../ui/ts-types.md) | 否 | - | 提示气泡遮障层的颜色。 | + | popupColor | [ResourceColor](../../ui/ts-types.md) | 否 | - | 提示气泡的颜色。 | | enableArrow | boolean | 否 | true | 是否显示箭头。
从API Version 9开始,如果箭头所在方位侧的气泡长度不足以显示下箭头,则会默认不显示箭头。比如:placement设置为Left,但气泡高度小于箭头的宽度(32vp),则实际不会显示箭头。 | | autoCancel | boolean | 否 | true | 页面有操作时,是否自动关闭气泡 | | onStateChange | (isVisible: boolean) => void | 否 | - | 弹窗状态变化事件回调,参数为弹窗当前的显示状态。 | -- GitLab From 5df479362263678f59d6702bcaf90a17ff90dbe4 Mon Sep 17 00:00:00 2001 From: solanightxie Date: Fri, 15 Jul 2022 04:03:35 +0000 Subject: [PATCH 029/868] update zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md. Signed-off-by: solanightxie --- .../reference/arkui-ts/ts-basic-components-blank.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md index eb42fce5ae..88a5ed0613 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-blank.md @@ -31,7 +31,7 @@ Blank(min?: Length) | 名称 | 参数类型 | 默认值 | 描述 | | -------- | -------- | -------- | -------- | -| color | [ResourceColor](../../ui/ts-types.md#resourcecolor类型8) | 0x00000000 | 设置空白填充的填充颜色。 | +| color | [ResourceColor](../../ui/ts-types.md) | 0x00000000 | 设置空白填充的填充颜色。 | > **说明:** > - 不支持通用属性方法。 -- GitLab From e6c44b1fe85bb27917d911299bfedde8231b2b54 Mon Sep 17 00:00:00 2001 From: solanightxie Date: Fri, 15 Jul 2022 04:04:47 +0000 Subject: [PATCH 030/868] update zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md. Signed-off-by: solanightxie --- .../reference/arkui-ts/ts-universal-attributes-background.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md index f360ac0de2..15d710e5e0 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-background.md @@ -17,8 +17,8 @@ | 名称 | 参数类型 | 默认值 | 描述 | | -------- | -------- | -------- | -------- | -| backgroundColor | [ResourceColor](../../ui/ts-types.md#resourcecolor类型8) | - | 设置组件的背景色。 | -| backgroundImage | src: [ResourceStr](../../ui/ts-types.md#resourcestr类型8),
repeat?: [ImageRepeat](ts-appendix-enums.md#imagerepeat枚举说明) | - | src参数:图片地址,支持网络图片资源和本地图片资源地址(不支持svg类型的图片)。
repeat参数:设置背景图片的重复样式,默认不重复。 | +| backgroundColor | [ResourceColor](../../ui/ts-types.md) | - | 设置组件的背景色。 | +| backgroundImage | src: [ResourceStr](../../ui/ts-types.md),
repeat?: [ImageRepeat](ts-appendix-enums.md#imagerepeat枚举说明) | - | src参数:图片地址,支持网络图片资源和本地图片资源地址(不支持svg类型的图片)。
repeat参数:设置背景图片的重复样式,默认不重复。 | | backgroundImageSize | {
width?: Length,
height?: Length
} \| ImageSize | Auto | 设置背景图像的高度和宽度。当输入为{width: Length, height: Length}对象时,如果只设置一个属性,则第二个属性保持图片原始宽高比进行调整。默认保持原图的比例不变。 | | backgroundImagePosition | {
x?: Length,
y?: Length
} \| [Alignment](ts-appendix-enums.md#alignment枚举说明) | {
x: 0,
y: 0
} | 设置背景图在组件中显示位置。 | -- GitLab From 3478c7bf89b4ff39a993aeee17c48b2b1b32a926 Mon Sep 17 00:00:00 2001 From: solanightxie Date: Fri, 15 Jul 2022 06:53:24 +0000 Subject: [PATCH 031/868] update zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md. Signed-off-by: solanightxie --- .../reference/arkui-ts/ts-basic-components-button.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md index 27ac9a9267..234c8df164 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md @@ -28,7 +28,7 @@ | stateEffect | boolean | 否 | true | 按钮按下时是否开启切换效果,当状态置为false时,点击效果关闭。 | -- Button(label?: string, options?: { type?: ButtonType, stateEffect?: boolean }) +- Button(label?: [ResourceStr](../../ui/ts-types.md), options?: { type?: ButtonType, stateEffect?: boolean }) 使用文本内容创建相应的按钮组件,此时Button无法包含子组件。 @@ -36,7 +36,7 @@ | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | -------- | -------- | -------- | -------- | -------- | - | label | string | 否 | - | 按钮文本内容。 | + | label | [ResourceStr](../../ui/ts-types.md) | 否 | - | 按钮文本内容。 | | options | Object | 否 | - | 见options参数说明。 | -- GitLab From c4208a47b48828d52089e813544cebfa510376b7 Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Fri, 15 Jul 2022 15:52:44 +0800 Subject: [PATCH 032/868] hdi api Signed-off-by: duangavin123 --- zh-cn/device-dev/api/Readme-CN.md | 219 + zh-cn/device-dev/api/____attribute____.md | 34 + zh-cn/device-dev/api/_alignment.md | 51 + zh-cn/device-dev/api/_alloc_info.md | 27 + zh-cn/device-dev/api/_audio.md | 1319 ++++ zh-cn/device-dev/api/_audio_adapter.md | 326 + .../api/_audio_adapter_descriptor.md | 25 + zh-cn/device-dev/api/_audio_attribute.md | 263 + zh-cn/device-dev/api/_audio_capture.md | 84 + zh-cn/device-dev/api/_audio_control.md | 214 + zh-cn/device-dev/api/_audio_dev_ext_info.md | 25 + .../api/_audio_device_descriptor.md | 25 + zh-cn/device-dev/api/_audio_manager.md | 148 + zh-cn/device-dev/api/_audio_mix_ext_info.md | 24 + .../api/_audio_mmap_buffer_descripter.md | 27 + zh-cn/device-dev/api/_audio_port.md | 25 + zh-cn/device-dev/api/_audio_port_cap.md | 77 + .../device-dev/api/_audio_port_capability.md | 34 + zh-cn/device-dev/api/_audio_render.md | 297 + zh-cn/device-dev/api/_audio_route.md | 26 + zh-cn/device-dev/api/_audio_route_node.md | 28 + .../api/_audio_sample_attributes.md | 35 + zh-cn/device-dev/api/_audio_scene.md | 100 + .../device-dev/api/_audio_scene_descriptor.md | 31 + .../device-dev/api/_audio_session_ext_info.md | 23 + .../api/_audio_sub_port_capability.md | 25 + zh-cn/device-dev/api/_audio_time_stamp.md | 26 + zh-cn/device-dev/api/_audio_volume.md | 242 + zh-cn/device-dev/api/_auth_result_info.md | 98 + zh-cn/device-dev/api/_auth_solution.md | 98 + zh-cn/device-dev/api/_battery_info.md | 224 + zh-cn/device-dev/api/_buffer_data.md | 24 + zh-cn/device-dev/api/_camera.md | 1837 ++++++ zh-cn/device-dev/api/_codec.md | 1346 ++++ zh-cn/device-dev/api/_codec_callback_type.md | 38 + .../device-dev/api/_codec_comp_capability.md | 155 + .../api/_codec_component_manager.md | 148 + zh-cn/device-dev/api/_codec_component_type.md | 54 + zh-cn/device-dev/api/_comp_ver_info.md | 78 + zh-cn/device-dev/api/_credential_info.md | 124 + zh-cn/device-dev/api/_d_a_c.md | 160 + zh-cn/device-dev/api/_dac_io_msg.md | 24 + zh-cn/device-dev/api/_device_funcs.md | 59 + zh-cn/device-dev/api/_device_info.md | 194 + zh-cn/device-dev/api/_display.md | 3359 ++++++++++ zh-cn/device-dev/api/_display_capability.md | 31 + zh-cn/device-dev/api/_display_info.md | 25 + zh-cn/device-dev/api/_display_mode_info.md | 26 + zh-cn/device-dev/api/_enroll_param.md | 72 + zh-cn/device-dev/api/_enrolled_info.md | 59 + zh-cn/device-dev/api/_event_info.md | 103 + zh-cn/device-dev/api/_event_package.md | 77 + zh-cn/device-dev/api/_executor_info.md | 152 + .../device-dev/api/_executor_register_info.md | 111 + zh-cn/device-dev/api/_executor_send_msg.md | 57 + zh-cn/device-dev/api/_face_auth_types_8idl.md | 46 + .../api/_get_buffer_handle_usage_params.md | 77 + zh-cn/device-dev/api/_gfx_funcs.md | 239 + zh-cn/device-dev/api/_gfx_opt.md | 33 + zh-cn/device-dev/api/_gralloc_funcs.md | 273 + zh-cn/device-dev/api/_h_d_r_capability.md | 27 + zh-cn/device-dev/api/_h_d_r_meta_data.md | 24 + zh-cn/device-dev/api/_hdf_face_auth.md | 157 + zh-cn/device-dev/api/_hdf_pin_auth.md | 127 + .../api/_hdf_thermal_callback_info.md | 38 + zh-cn/device-dev/api/_hdf_user_auth.md | 115 + .../api/_i_battery_callback_8idl.md | 40 + .../api/_i_battery_interface_8idl.md | 36 + zh-cn/device-dev/api/_i_circle.md | 26 + .../api/_i_face_auth_interface_8idl.md | 34 + zh-cn/device-dev/api/_i_input_interface.md | 64 + zh-cn/device-dev/api/_i_line.md | 27 + .../api/_i_pin_auth_interface_8idl.md | 34 + .../api/_i_power_hdi_callback_8idl.md | 40 + .../device-dev/api/_i_power_interface_8idl.md | 40 + zh-cn/device-dev/api/_i_rect.md | 26 + zh-cn/device-dev/api/_i_surface.md | 35 + .../api/_i_thermal_callback_8idl.md | 40 + .../api/_i_thermal_interface_8idl.md | 40 + .../api/_i_user_auth_interface_8idl.md | 34 + zh-cn/device-dev/api/_i_wi_fi.md | 369 ++ zh-cn/device-dev/api/_i_wi_fi_ap.md | 101 + zh-cn/device-dev/api/_i_wi_fi_base_feature.md | 259 + zh-cn/device-dev/api/_i_wi_fi_sta.md | 99 + zh-cn/device-dev/api/_identify_result_info.md | 72 + zh-cn/device-dev/api/_input.md | 194 + zh-cn/device-dev/api/_input_controller.md | 276 + zh-cn/device-dev/api/_input_extra_cmd.md | 51 + zh-cn/device-dev/api/_input_manager.md | 156 + .../device-dev/api/_input_report_event_cb.md | 65 + zh-cn/device-dev/api/_input_reporter.md | 132 + zh-cn/device-dev/api/_layer_alpha.md | 27 + zh-cn/device-dev/api/_layer_buffer.md | 29 + zh-cn/device-dev/api/_layer_funcs.md | 1267 ++++ zh-cn/device-dev/api/_layer_info.md | 29 + zh-cn/device-dev/api/_light.md | 159 + zh-cn/device-dev/api/_light_effect.md | 57 + zh-cn/device-dev/api/_light_flash_effect.md | 70 + zh-cn/device-dev/api/_light_info.md | 57 + zh-cn/device-dev/api/_light_interface.md | 108 + ...h_o_s_1_1_camera_1_1_capture_ended_info.md | 24 + ...h_o_s_1_1_camera_1_1_capture_error_info.md | 24 + .../_o_h_o_s_1_1_camera_1_1_capture_info.md | 25 + ..._o_h_o_s_1_1_camera_1_1_i_camera_device.md | 30 + ...1_1_camera_1_1_i_camera_device_callback.md | 25 + .../_o_h_o_s_1_1_camera_1_1_i_camera_host.md | 35 + ...s_1_1_camera_1_1_i_camera_host_callback.md | 26 + ..._1_camera_1_1_i_offline_stream_operator.md | 26 + ..._h_o_s_1_1_camera_1_1_i_stream_operator.md | 33 + ...1_camera_1_1_i_stream_operator_callback.md | 27 + ...o_h_o_s_1_1_camera_1_1_stream_attribute.md | 31 + .../_o_h_o_s_1_1_camera_1_1_stream_info.md | 32 + ...o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md | 25 + ...o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md | 27 + .../api/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md | 24 + .../api/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md | 28 + .../api/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md | 24 + .../api/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md | 57 + .../_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md | 20 + zh-cn/device-dev/api/_omx_codec_buffer.md | 194 + zh-cn/device-dev/api/_pin_auth_types_8idl.md | 46 + zh-cn/device-dev/api/_power_types_8idl.md | 42 + zh-cn/device-dev/api/_present_timestamp.md | 24 + zh-cn/device-dev/api/_property_object.md | 25 + zh-cn/device-dev/api/_range_value.md | 51 + zh-cn/device-dev/api/_rect.md | 51 + zh-cn/device-dev/api/_rectangle.md | 24 + zh-cn/device-dev/api/_schedule_info.md | 111 + zh-cn/device-dev/api/_sensor.md | 326 + zh-cn/device-dev/api/_sensor_events.md | 122 + zh-cn/device-dev/api/_sensor_information.md | 148 + zh-cn/device-dev/api/_sensor_interface.md | 234 + zh-cn/device-dev/api/_sta_info.md | 46 + zh-cn/device-dev/api/_support_buffer_type.md | 77 + zh-cn/device-dev/api/_template_info.md | 85 + zh-cn/device-dev/api/_thermal_types_8idl.md | 41 + zh-cn/device-dev/api/_thermal_zone_info.md | 55 + zh-cn/device-dev/api/_types_8idl.md | 49 + zh-cn/device-dev/api/_u_s_b.md | 1718 +++++ zh-cn/device-dev/api/_use_buffer_type.md | 77 + zh-cn/device-dev/api/_user_auth_types_8idl.md | 52 + zh-cn/device-dev/api/_verify_alloc_info.md | 26 + zh-cn/device-dev/api/_vibrator.md | 171 + zh-cn/device-dev/api/_vibrator_interface.md | 208 + zh-cn/device-dev/api/_video_port_cap.md | 116 + zh-cn/device-dev/api/_w_l_a_n.md | 304 + zh-cn/device-dev/api/annotated.md | 265 + zh-cn/device-dev/api/audio__adapter_8h.md | 31 + zh-cn/device-dev/api/audio__attribute_8h.md | 31 + zh-cn/device-dev/api/audio__capture_8h.md | 31 + zh-cn/device-dev/api/audio__control_8h.md | 31 + zh-cn/device-dev/api/audio__manager_8h.md | 38 + zh-cn/device-dev/api/audio__render_8h.md | 31 + zh-cn/device-dev/api/audio__scene_8h.md | 31 + zh-cn/device-dev/api/audio__types_8h.md | 75 + zh-cn/device-dev/api/audio__volume_8h.md | 31 + zh-cn/device-dev/api/battery.md | 118 + .../device-dev/api/codec__callback__if_8h.md | 41 + .../device-dev/api/codec__common__type_8h.md | 46 + .../device-dev/api/codec__component__if_8h.md | 41 + .../api/codec__component__manager_8h.md | 41 + .../api/codec__component__type_8h.md | 68 + zh-cn/device-dev/api/dac__if_8h.md | 36 + zh-cn/device-dev/api/display__device_8h.md | 48 + zh-cn/device-dev/api/display__gfx_8h.md | 39 + zh-cn/device-dev/api/display__gralloc_8h.md | 39 + zh-cn/device-dev/api/display__layer_8h.md | 39 + zh-cn/device-dev/api/display__type_8h.md | 82 + .../api/face__auth_2_i_executor_8idl.md | 34 + .../face__auth_2_i_executor_callback_8idl.md | 34 + zh-cn/device-dev/api/files.md | 133 + zh-cn/device-dev/api/icamera__device_8h.md | 31 + .../api/icamera__device__callback_8h.md | 31 + zh-cn/device-dev/api/icamera__host_8h.md | 31 + .../api/icamera__host__callback_8h.md | 31 + zh-cn/device-dev/api/index.md | 37 + zh-cn/device-dev/api/input__controller_8h.md | 31 + zh-cn/device-dev/api/input__manager_8h.md | 39 + zh-cn/device-dev/api/input__reporter_8h.md | 31 + zh-cn/device-dev/api/input__type_8h.md | 56 + .../api/interface_i_battery_callback.md | 56 + .../api/interface_i_battery_interface.md | 409 ++ zh-cn/device-dev/api/interface_i_executor.md | 296 + .../api/interface_i_executor_callback.md | 85 + .../api/interface_i_face_auth_interface.md | 58 + .../api/interface_i_pin_auth_interface.md | 58 + .../api/interface_i_power_hdi_callback.md | 61 + .../api/interface_i_power_interface.md | 178 + .../api/interface_i_thermal_callback.md | 56 + .../api/interface_i_thermal_interface.md | 171 + .../api/interface_i_user_auth_interface.md | 585 ++ .../api/interface_pin_i_executor.md | 270 + .../api/interface_pin_i_executor_callback.md | 85 + .../api/ioffline__stream__operator_8h.md | 31 + zh-cn/device-dev/api/istream__operator_8h.md | 31 + .../api/istream__operator__callback_8h.md | 31 + zh-cn/device-dev/api/light_8typeh.md | 29 + zh-cn/device-dev/api/light__if_8h.md | 35 + .../api/pin__auth_2_i_executor_8idl.md | 34 + .../pin__auth_2_i_executor_callback_8idl.md | 38 + zh-cn/device-dev/api/power.md | 112 + zh-cn/device-dev/api/sensor__if_8h.md | 39 + zh-cn/device-dev/api/sensor__type_8h.md | 59 + zh-cn/device-dev/api/thermal.md | 45 + .../api/toctopics/____attribute____.md | 78 - zh-cn/device-dev/api/toctopics/_alignment.md | 58 - zh-cn/device-dev/api/toctopics/_alloc_info.md | 51 - zh-cn/device-dev/api/toctopics/_audio.md | 2319 ------- .../api/toctopics/_audio_adapter.md | 527 -- .../toctopics/_audio_adapter_descriptor.md | 41 - .../api/toctopics/_audio_attribute.md | 427 -- .../api/toctopics/_audio_capture.md | 149 - .../api/toctopics/_audio_control.md | 316 - .../api/toctopics/_audio_dev_ext_info.md | 41 - .../api/toctopics/_audio_device_descriptor.md | 41 - .../api/toctopics/_audio_manager.md | 223 - .../api/toctopics/_audio_mix_ext_info.md | 36 - .../_audio_mmap_buffer_descripter.md | 51 - zh-cn/device-dev/api/toctopics/_audio_port.md | 41 - .../api/toctopics/_audio_port_cap.md | 88 - .../api/toctopics/_audio_port_capability.md | 86 - .../device-dev/api/toctopics/_audio_render.md | 485 -- .../device-dev/api/toctopics/_audio_route.md | 46 - .../api/toctopics/_audio_route_node.md | 56 - .../api/toctopics/_audio_sample_attributes.md | 91 - .../device-dev/api/toctopics/_audio_scene.md | 140 - .../api/toctopics/_audio_scene_descriptor.md | 53 - .../api/toctopics/_audio_session_ext_info.md | 31 - .../toctopics/_audio_sub_port_capability.md | 41 - .../api/toctopics/_audio_time_stamp.md | 38 - .../device-dev/api/toctopics/_audio_volume.md | 367 -- .../api/toctopics/_auth_result_info.md | 111 - .../api/toctopics/_auth_solution.md | 111 - .../device-dev/api/toctopics/_battery_info.md | 257 - .../device-dev/api/toctopics/_buffer_data.md | 36 - zh-cn/device-dev/api/toctopics/_camera.md | 2825 -------- zh-cn/device-dev/api/toctopics/_codec.md | 2595 -------- .../api/toctopics/_codec_callback_type.md | 54 - .../api/toctopics/_codec_comp_capability.md | 178 - .../api/toctopics/_codec_component_manager.md | 211 - .../api/toctopics/_codec_component_type.md | 125 - .../api/toctopics/_comp_ver_info.md | 88 - .../api/toctopics/_credential_info.md | 141 - zh-cn/device-dev/api/toctopics/_d_a_c.md | 240 - zh-cn/device-dev/api/toctopics/_dac_io_msg.md | 36 - .../device-dev/api/toctopics/_device_funcs.md | 211 - .../device-dev/api/toctopics/_device_info.md | 223 - zh-cn/device-dev/api/toctopics/_display.md | 5817 ----------------- .../api/toctopics/_display_capability.md | 71 - .../device-dev/api/toctopics/_display_info.md | 41 - .../api/toctopics/_display_mode_info.md | 46 - .../device-dev/api/toctopics/_enroll_param.md | 81 - .../api/toctopics/_enrolled_info.md | 66 - zh-cn/device-dev/api/toctopics/_event_info.md | 118 - .../api/toctopics/_event_package.md | 88 - .../api/toctopics/_executor_info.md | 173 - .../api/toctopics/_executor_register_info.md | 126 - .../api/toctopics/_executor_send_msg.md | 64 - .../api/toctopics/_face_auth_types_8idl.md | 94 - .../_get_buffer_handle_usage_params.md | 88 - zh-cn/device-dev/api/toctopics/_gfx_funcs.md | 380 -- zh-cn/device-dev/api/toctopics/_gfx_opt.md | 81 - .../api/toctopics/_gralloc_funcs.md | 422 -- .../api/toctopics/_h_d_r_capability.md | 51 - .../api/toctopics/_h_d_r_meta_data.md | 36 - .../api/toctopics/_hdf_face_auth.md | 401 -- .../device-dev/api/toctopics/_hdf_pin_auth.md | 299 - .../toctopics/_hdf_thermal_callback_info.md | 43 - .../api/toctopics/_hdf_user_auth.md | 275 - .../api/toctopics/_i_battery_callback_8idl.md | 58 - .../toctopics/_i_battery_interface_8idl.md | 54 - zh-cn/device-dev/api/toctopics/_i_circle.md | 46 - .../toctopics/_i_face_auth_interface_8idl.md | 52 - .../api/toctopics/_i_input_interface.md | 73 - zh-cn/device-dev/api/toctopics/_i_line.md | 51 - .../toctopics/_i_pin_auth_interface_8idl.md | 52 - .../toctopics/_i_power_hdi_callback_8idl.md | 58 - .../api/toctopics/_i_power_interface_8idl.md | 58 - zh-cn/device-dev/api/toctopics/_i_rect.md | 46 - zh-cn/device-dev/api/toctopics/_i_surface.md | 91 - .../api/toctopics/_i_thermal_callback_8idl.md | 58 - .../toctopics/_i_thermal_interface_8idl.md | 58 - .../toctopics/_i_user_auth_interface_8idl.md | 52 - zh-cn/device-dev/api/toctopics/_i_wi_fi.md | 577 -- zh-cn/device-dev/api/toctopics/_i_wi_fi_ap.md | 152 - .../api/toctopics/_i_wi_fi_base_feature.md | 420 -- .../device-dev/api/toctopics/_i_wi_fi_sta.md | 142 - .../api/toctopics/_identify_result_info.md | 81 - zh-cn/device-dev/api/toctopics/_input.md | 462 -- .../api/toctopics/_input_controller.md | 452 -- .../api/toctopics/_input_extra_cmd.md | 58 - .../api/toctopics/_input_manager.md | 240 - .../api/toctopics/_input_report_event_cb.md | 102 - .../api/toctopics/_input_reporter.md | 191 - .../device-dev/api/toctopics/_layer_alpha.md | 51 - .../device-dev/api/toctopics/_layer_buffer.md | 61 - .../device-dev/api/toctopics/_layer_funcs.md | 2160 ------ zh-cn/device-dev/api/toctopics/_layer_info.md | 53 - zh-cn/device-dev/api/toctopics/_light.md | 295 - .../device-dev/api/toctopics/_light_effect.md | 64 - .../api/toctopics/_light_flash_effect.md | 79 - zh-cn/device-dev/api/toctopics/_light_info.md | 64 - .../api/toctopics/_light_interface.md | 158 - ...h_o_s_1_1_camera_1_1_capture_ended_info.md | 36 - ...h_o_s_1_1_camera_1_1_capture_error_info.md | 36 - .../_o_h_o_s_1_1_camera_1_1_capture_info.md | 41 - ..._o_h_o_s_1_1_camera_1_1_i_camera_device.md | 66 - ...1_1_camera_1_1_i_camera_device_callback.md | 41 - .../_o_h_o_s_1_1_camera_1_1_i_camera_host.md | 73 - ...s_1_1_camera_1_1_i_camera_host_callback.md | 46 - ..._1_camera_1_1_i_offline_stream_operator.md | 46 - ..._h_o_s_1_1_camera_1_1_i_stream_operator.md | 81 - ...1_camera_1_1_i_stream_operator_callback.md | 51 - ...o_h_o_s_1_1_camera_1_1_stream_attribute.md | 71 - .../_o_h_o_s_1_1_camera_1_1_stream_info.md | 76 - ...o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md | 41 - ...o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md | 51 - .../_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md | 36 - .../_o_h_o_s_1_1_u_s_b_1_1_usb_info.md | 56 - .../_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md | 36 - .../_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md | 204 - .../_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md | 37 - .../api/toctopics/_omx_codec_buffer.md | 223 - .../api/toctopics/_power_types_8idl.md | 68 - .../api/toctopics/_present_timestamp.md | 36 - .../api/toctopics/_property_object.md | 41 - .../device-dev/api/toctopics/_range_value.md | 58 - zh-cn/device-dev/api/toctopics/_rect.md | 58 - zh-cn/device-dev/api/toctopics/_rectangle.md | 36 - .../api/toctopics/_schedule_info.md | 126 - zh-cn/device-dev/api/toctopics/_sensor.md | 742 --- .../api/toctopics/_sensor_events.md | 139 - .../api/toctopics/_sensor_information.md | 170 - .../api/toctopics/_sensor_interface.md | 369 -- zh-cn/device-dev/api/toctopics/_sta_info.md | 51 - .../api/toctopics/_support_buffer_type.md | 88 - .../api/toctopics/_template_info.md | 96 - .../api/toctopics/_thermal_types_8idl.md | 63 - .../api/toctopics/_thermal_zone_info.md | 62 - zh-cn/device-dev/api/toctopics/_types_8idl.md | 85 - zh-cn/device-dev/api/toctopics/_u_s_b.md | 2664 -------- .../api/toctopics/_use_buffer_type.md | 88 - .../api/toctopics/_user_auth_types_8idl.md | 124 - .../api/toctopics/_verify_alloc_info.md | 46 - zh-cn/device-dev/api/toctopics/_vibrator.md | 188 - .../api/toctopics/_vibrator_interface.md | 148 - .../api/toctopics/_video_port_cap.md | 133 - zh-cn/device-dev/api/toctopics/_w_l_a_n.md | 537 -- zh-cn/device-dev/api/toctopics/annotated.md | 261 - .../api/toctopics/audio__adapter_8h.md | 39 - .../api/toctopics/audio__attribute_8h.md | 39 - .../api/toctopics/audio__capture_8h.md | 39 - .../api/toctopics/audio__control_8h.md | 39 - .../api/toctopics/audio__manager_8h.md | 56 - .../api/toctopics/audio__render_8h.md | 39 - .../api/toctopics/audio__scene_8h.md | 39 - .../api/toctopics/audio__types_8h.md | 215 - .../api/toctopics/audio__volume_8h.md | 39 - zh-cn/device-dev/api/toctopics/battery.md | 280 - .../api/toctopics/codec__callback__if_8h.md | 63 - .../api/toctopics/codec__common__type_8h.md | 88 - .../api/toctopics/codec__component__if_8h.md | 63 - .../toctopics/codec__component__manager_8h.md | 63 - .../toctopics/codec__component__type_8h.md | 180 - zh-cn/device-dev/api/toctopics/dac__if_8h.md | 62 - .../api/toctopics/display__device_8h.md | 88 - .../api/toctopics/display__gfx_8h.md | 61 - .../api/toctopics/display__gralloc_8h.md | 61 - .../api/toctopics/display__layer_8h.md | 61 - .../api/toctopics/display__type_8h.md | 258 - .../toctopics/face__auth_2_i_executor_8idl.md | 52 - .../face__auth_2_i_executor_callback_8idl.md | 52 - zh-cn/device-dev/api/toctopics/files.md | 131 - .../api/toctopics/icamera__device_8h.md | 39 - .../toctopics/icamera__device__callback_8h.md | 39 - .../api/toctopics/icamera__host_8h.md | 39 - .../toctopics/icamera__host__callback_8h.md | 39 - zh-cn/device-dev/api/toctopics/index.md | 37 - .../api/toctopics/input__controller_8h.md | 39 - .../api/toctopics/input__manager_8h.md | 61 - .../api/toctopics/input__reporter_8h.md | 39 - .../api/toctopics/input__type_8h.md | 128 - .../toctopics/interface_i_battery_callback.md | 72 - .../interface_i_battery_interface.md | 609 -- .../api/toctopics/interface_i_executor.md | 764 --- .../interface_i_executor_callback.md | 165 - .../interface_i_face_auth_interface.md | 74 - .../interface_i_pin_auth_interface.md | 74 - .../interface_i_power_hdi_callback.md | 68 - .../toctopics/interface_i_power_interface.md | 239 - .../toctopics/interface_i_thermal_callback.md | 72 - .../interface_i_thermal_interface.md | 241 - .../interface_i_user_auth_interface.md | 982 --- .../ioffline__stream__operator_8h.md | 39 - .../api/toctopics/istream__operator_8h.md | 39 - .../istream__operator__callback_8h.md | 39 - .../device-dev/api/toctopics/light_8typeh.md | 45 - .../device-dev/api/toctopics/light__if_8h.md | 57 - .../toctopics/pin__auth_2_i_executor_8idl.md | 52 - .../pin__auth_2_i_executor_callback_8idl.md | 56 - zh-cn/device-dev/api/toctopics/power.md | 245 - .../device-dev/api/toctopics/sensor__if_8h.md | 61 - .../api/toctopics/sensor__type_8h.md | 125 - zh-cn/device-dev/api/toctopics/thermal.md | 94 - zh-cn/device-dev/api/toctopics/total.md | 7 - zh-cn/device-dev/api/toctopics/types_8h.md | 153 - ...n_audio_scene_descriptor_1_1_scene_desc.md | 36 - .../api/toctopics/union_port_cap.md | 58 - .../device-dev/api/toctopics/usb__info_8h.md | 44 - .../api/toctopics/usbd__client_8h.md | 39 - .../api/toctopics/usbd__subscriber_8h.md | 39 - .../device-dev/api/toctopics/usbd__type_8h.md | 112 - .../api/toctopics/vibrator__if_8h.md | 61 - .../api/toctopics/vibrator__type_8h.md | 39 - .../device-dev/api/toctopics/wifi__hal_8h.md | 78 - .../toctopics/wifi__hal__ap__feature_8h.md | 61 - .../toctopics/wifi__hal__base__feature_8h.md | 100 - .../toctopics/wifi__hal__sta__feature_8h.md | 56 - zh-cn/device-dev/api/total.md | 7 + zh-cn/device-dev/api/types_8h.md | 61 + ...n_audio_scene_descriptor_1_1_scene_desc.md | 24 + zh-cn/device-dev/api/union_port_cap.md | 51 + zh-cn/device-dev/api/usb__info_8h.md | 32 + zh-cn/device-dev/api/usbd__client_8h.md | 31 + zh-cn/device-dev/api/usbd__subscriber_8h.md | 31 + zh-cn/device-dev/api/usbd__type_8h.md | 58 + zh-cn/device-dev/api/vibrator__if_8h.md | 39 + zh-cn/device-dev/api/vibrator__type_8h.md | 33 + zh-cn/device-dev/api/wifi__hal_8h.md | 46 + .../api/wifi__hal__ap__feature_8h.md | 39 + .../api/wifi__hal__base__feature_8h.md | 54 + .../api/wifi__hal__sta__feature_8h.md | 38 + .../api/zh-cn_bookmap_0000001343320953.md | 219 - 433 files changed, 27876 insertions(+), 44599 deletions(-) create mode 100644 zh-cn/device-dev/api/Readme-CN.md create mode 100644 zh-cn/device-dev/api/____attribute____.md create mode 100644 zh-cn/device-dev/api/_alignment.md create mode 100644 zh-cn/device-dev/api/_alloc_info.md create mode 100644 zh-cn/device-dev/api/_audio.md create mode 100644 zh-cn/device-dev/api/_audio_adapter.md create mode 100644 zh-cn/device-dev/api/_audio_adapter_descriptor.md create mode 100644 zh-cn/device-dev/api/_audio_attribute.md create mode 100644 zh-cn/device-dev/api/_audio_capture.md create mode 100644 zh-cn/device-dev/api/_audio_control.md create mode 100644 zh-cn/device-dev/api/_audio_dev_ext_info.md create mode 100644 zh-cn/device-dev/api/_audio_device_descriptor.md create mode 100644 zh-cn/device-dev/api/_audio_manager.md create mode 100644 zh-cn/device-dev/api/_audio_mix_ext_info.md create mode 100644 zh-cn/device-dev/api/_audio_mmap_buffer_descripter.md create mode 100644 zh-cn/device-dev/api/_audio_port.md create mode 100644 zh-cn/device-dev/api/_audio_port_cap.md create mode 100644 zh-cn/device-dev/api/_audio_port_capability.md create mode 100644 zh-cn/device-dev/api/_audio_render.md create mode 100644 zh-cn/device-dev/api/_audio_route.md create mode 100644 zh-cn/device-dev/api/_audio_route_node.md create mode 100644 zh-cn/device-dev/api/_audio_sample_attributes.md create mode 100644 zh-cn/device-dev/api/_audio_scene.md create mode 100644 zh-cn/device-dev/api/_audio_scene_descriptor.md create mode 100644 zh-cn/device-dev/api/_audio_session_ext_info.md create mode 100644 zh-cn/device-dev/api/_audio_sub_port_capability.md create mode 100644 zh-cn/device-dev/api/_audio_time_stamp.md create mode 100644 zh-cn/device-dev/api/_audio_volume.md create mode 100644 zh-cn/device-dev/api/_auth_result_info.md create mode 100644 zh-cn/device-dev/api/_auth_solution.md create mode 100644 zh-cn/device-dev/api/_battery_info.md create mode 100644 zh-cn/device-dev/api/_buffer_data.md create mode 100644 zh-cn/device-dev/api/_camera.md create mode 100644 zh-cn/device-dev/api/_codec.md create mode 100644 zh-cn/device-dev/api/_codec_callback_type.md create mode 100644 zh-cn/device-dev/api/_codec_comp_capability.md create mode 100644 zh-cn/device-dev/api/_codec_component_manager.md create mode 100644 zh-cn/device-dev/api/_codec_component_type.md create mode 100644 zh-cn/device-dev/api/_comp_ver_info.md create mode 100644 zh-cn/device-dev/api/_credential_info.md create mode 100644 zh-cn/device-dev/api/_d_a_c.md create mode 100644 zh-cn/device-dev/api/_dac_io_msg.md create mode 100644 zh-cn/device-dev/api/_device_funcs.md create mode 100644 zh-cn/device-dev/api/_device_info.md create mode 100644 zh-cn/device-dev/api/_display.md create mode 100644 zh-cn/device-dev/api/_display_capability.md create mode 100644 zh-cn/device-dev/api/_display_info.md create mode 100644 zh-cn/device-dev/api/_display_mode_info.md create mode 100644 zh-cn/device-dev/api/_enroll_param.md create mode 100644 zh-cn/device-dev/api/_enrolled_info.md create mode 100644 zh-cn/device-dev/api/_event_info.md create mode 100644 zh-cn/device-dev/api/_event_package.md create mode 100644 zh-cn/device-dev/api/_executor_info.md create mode 100644 zh-cn/device-dev/api/_executor_register_info.md create mode 100644 zh-cn/device-dev/api/_executor_send_msg.md create mode 100644 zh-cn/device-dev/api/_face_auth_types_8idl.md create mode 100644 zh-cn/device-dev/api/_get_buffer_handle_usage_params.md create mode 100644 zh-cn/device-dev/api/_gfx_funcs.md create mode 100644 zh-cn/device-dev/api/_gfx_opt.md create mode 100644 zh-cn/device-dev/api/_gralloc_funcs.md create mode 100644 zh-cn/device-dev/api/_h_d_r_capability.md create mode 100644 zh-cn/device-dev/api/_h_d_r_meta_data.md create mode 100644 zh-cn/device-dev/api/_hdf_face_auth.md create mode 100644 zh-cn/device-dev/api/_hdf_pin_auth.md create mode 100644 zh-cn/device-dev/api/_hdf_thermal_callback_info.md create mode 100644 zh-cn/device-dev/api/_hdf_user_auth.md create mode 100644 zh-cn/device-dev/api/_i_battery_callback_8idl.md create mode 100644 zh-cn/device-dev/api/_i_battery_interface_8idl.md create mode 100644 zh-cn/device-dev/api/_i_circle.md create mode 100644 zh-cn/device-dev/api/_i_face_auth_interface_8idl.md create mode 100644 zh-cn/device-dev/api/_i_input_interface.md create mode 100644 zh-cn/device-dev/api/_i_line.md create mode 100644 zh-cn/device-dev/api/_i_pin_auth_interface_8idl.md create mode 100644 zh-cn/device-dev/api/_i_power_hdi_callback_8idl.md create mode 100644 zh-cn/device-dev/api/_i_power_interface_8idl.md create mode 100644 zh-cn/device-dev/api/_i_rect.md create mode 100644 zh-cn/device-dev/api/_i_surface.md create mode 100644 zh-cn/device-dev/api/_i_thermal_callback_8idl.md create mode 100644 zh-cn/device-dev/api/_i_thermal_interface_8idl.md create mode 100644 zh-cn/device-dev/api/_i_user_auth_interface_8idl.md create mode 100644 zh-cn/device-dev/api/_i_wi_fi.md create mode 100644 zh-cn/device-dev/api/_i_wi_fi_ap.md create mode 100644 zh-cn/device-dev/api/_i_wi_fi_base_feature.md create mode 100644 zh-cn/device-dev/api/_i_wi_fi_sta.md create mode 100644 zh-cn/device-dev/api/_identify_result_info.md create mode 100644 zh-cn/device-dev/api/_input.md create mode 100644 zh-cn/device-dev/api/_input_controller.md create mode 100644 zh-cn/device-dev/api/_input_extra_cmd.md create mode 100644 zh-cn/device-dev/api/_input_manager.md create mode 100644 zh-cn/device-dev/api/_input_report_event_cb.md create mode 100644 zh-cn/device-dev/api/_input_reporter.md create mode 100644 zh-cn/device-dev/api/_layer_alpha.md create mode 100644 zh-cn/device-dev/api/_layer_buffer.md create mode 100644 zh-cn/device-dev/api/_layer_funcs.md create mode 100644 zh-cn/device-dev/api/_layer_info.md create mode 100644 zh-cn/device-dev/api/_light.md create mode 100644 zh-cn/device-dev/api/_light_effect.md create mode 100644 zh-cn/device-dev/api/_light_flash_effect.md create mode 100644 zh-cn/device-dev/api/_light_info.md create mode 100644 zh-cn/device-dev/api/_light_interface.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_error_info.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_info.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_device.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_host.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_stream_attribute.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_stream_info.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md create mode 100644 zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md create mode 100644 zh-cn/device-dev/api/_omx_codec_buffer.md create mode 100644 zh-cn/device-dev/api/_pin_auth_types_8idl.md create mode 100644 zh-cn/device-dev/api/_power_types_8idl.md create mode 100644 zh-cn/device-dev/api/_present_timestamp.md create mode 100644 zh-cn/device-dev/api/_property_object.md create mode 100644 zh-cn/device-dev/api/_range_value.md create mode 100644 zh-cn/device-dev/api/_rect.md create mode 100644 zh-cn/device-dev/api/_rectangle.md create mode 100644 zh-cn/device-dev/api/_schedule_info.md create mode 100644 zh-cn/device-dev/api/_sensor.md create mode 100644 zh-cn/device-dev/api/_sensor_events.md create mode 100644 zh-cn/device-dev/api/_sensor_information.md create mode 100644 zh-cn/device-dev/api/_sensor_interface.md create mode 100644 zh-cn/device-dev/api/_sta_info.md create mode 100644 zh-cn/device-dev/api/_support_buffer_type.md create mode 100644 zh-cn/device-dev/api/_template_info.md create mode 100644 zh-cn/device-dev/api/_thermal_types_8idl.md create mode 100644 zh-cn/device-dev/api/_thermal_zone_info.md create mode 100644 zh-cn/device-dev/api/_types_8idl.md create mode 100644 zh-cn/device-dev/api/_u_s_b.md create mode 100644 zh-cn/device-dev/api/_use_buffer_type.md create mode 100644 zh-cn/device-dev/api/_user_auth_types_8idl.md create mode 100644 zh-cn/device-dev/api/_verify_alloc_info.md create mode 100644 zh-cn/device-dev/api/_vibrator.md create mode 100644 zh-cn/device-dev/api/_vibrator_interface.md create mode 100644 zh-cn/device-dev/api/_video_port_cap.md create mode 100644 zh-cn/device-dev/api/_w_l_a_n.md create mode 100644 zh-cn/device-dev/api/annotated.md create mode 100644 zh-cn/device-dev/api/audio__adapter_8h.md create mode 100644 zh-cn/device-dev/api/audio__attribute_8h.md create mode 100644 zh-cn/device-dev/api/audio__capture_8h.md create mode 100644 zh-cn/device-dev/api/audio__control_8h.md create mode 100644 zh-cn/device-dev/api/audio__manager_8h.md create mode 100644 zh-cn/device-dev/api/audio__render_8h.md create mode 100644 zh-cn/device-dev/api/audio__scene_8h.md create mode 100644 zh-cn/device-dev/api/audio__types_8h.md create mode 100644 zh-cn/device-dev/api/audio__volume_8h.md create mode 100644 zh-cn/device-dev/api/battery.md create mode 100644 zh-cn/device-dev/api/codec__callback__if_8h.md create mode 100644 zh-cn/device-dev/api/codec__common__type_8h.md create mode 100644 zh-cn/device-dev/api/codec__component__if_8h.md create mode 100644 zh-cn/device-dev/api/codec__component__manager_8h.md create mode 100644 zh-cn/device-dev/api/codec__component__type_8h.md create mode 100644 zh-cn/device-dev/api/dac__if_8h.md create mode 100644 zh-cn/device-dev/api/display__device_8h.md create mode 100644 zh-cn/device-dev/api/display__gfx_8h.md create mode 100644 zh-cn/device-dev/api/display__gralloc_8h.md create mode 100644 zh-cn/device-dev/api/display__layer_8h.md create mode 100644 zh-cn/device-dev/api/display__type_8h.md create mode 100644 zh-cn/device-dev/api/face__auth_2_i_executor_8idl.md create mode 100644 zh-cn/device-dev/api/face__auth_2_i_executor_callback_8idl.md create mode 100644 zh-cn/device-dev/api/files.md create mode 100644 zh-cn/device-dev/api/icamera__device_8h.md create mode 100644 zh-cn/device-dev/api/icamera__device__callback_8h.md create mode 100644 zh-cn/device-dev/api/icamera__host_8h.md create mode 100644 zh-cn/device-dev/api/icamera__host__callback_8h.md create mode 100644 zh-cn/device-dev/api/index.md create mode 100644 zh-cn/device-dev/api/input__controller_8h.md create mode 100644 zh-cn/device-dev/api/input__manager_8h.md create mode 100644 zh-cn/device-dev/api/input__reporter_8h.md create mode 100644 zh-cn/device-dev/api/input__type_8h.md create mode 100644 zh-cn/device-dev/api/interface_i_battery_callback.md create mode 100644 zh-cn/device-dev/api/interface_i_battery_interface.md create mode 100644 zh-cn/device-dev/api/interface_i_executor.md create mode 100644 zh-cn/device-dev/api/interface_i_executor_callback.md create mode 100644 zh-cn/device-dev/api/interface_i_face_auth_interface.md create mode 100644 zh-cn/device-dev/api/interface_i_pin_auth_interface.md create mode 100644 zh-cn/device-dev/api/interface_i_power_hdi_callback.md create mode 100644 zh-cn/device-dev/api/interface_i_power_interface.md create mode 100644 zh-cn/device-dev/api/interface_i_thermal_callback.md create mode 100644 zh-cn/device-dev/api/interface_i_thermal_interface.md create mode 100644 zh-cn/device-dev/api/interface_i_user_auth_interface.md create mode 100644 zh-cn/device-dev/api/interface_pin_i_executor.md create mode 100644 zh-cn/device-dev/api/interface_pin_i_executor_callback.md create mode 100644 zh-cn/device-dev/api/ioffline__stream__operator_8h.md create mode 100644 zh-cn/device-dev/api/istream__operator_8h.md create mode 100644 zh-cn/device-dev/api/istream__operator__callback_8h.md create mode 100644 zh-cn/device-dev/api/light_8typeh.md create mode 100644 zh-cn/device-dev/api/light__if_8h.md create mode 100644 zh-cn/device-dev/api/pin__auth_2_i_executor_8idl.md create mode 100644 zh-cn/device-dev/api/pin__auth_2_i_executor_callback_8idl.md create mode 100644 zh-cn/device-dev/api/power.md create mode 100644 zh-cn/device-dev/api/sensor__if_8h.md create mode 100644 zh-cn/device-dev/api/sensor__type_8h.md create mode 100644 zh-cn/device-dev/api/thermal.md delete mode 100644 zh-cn/device-dev/api/toctopics/____attribute____.md delete mode 100644 zh-cn/device-dev/api/toctopics/_alignment.md delete mode 100644 zh-cn/device-dev/api/toctopics/_alloc_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_adapter.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_adapter_descriptor.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_attribute.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_capture.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_control.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_dev_ext_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_device_descriptor.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_manager.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_mix_ext_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_mmap_buffer_descripter.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_port.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_port_cap.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_port_capability.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_render.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_route.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_route_node.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_sample_attributes.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_scene.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_scene_descriptor.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_session_ext_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_sub_port_capability.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_time_stamp.md delete mode 100644 zh-cn/device-dev/api/toctopics/_audio_volume.md delete mode 100644 zh-cn/device-dev/api/toctopics/_auth_result_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_auth_solution.md delete mode 100644 zh-cn/device-dev/api/toctopics/_battery_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_buffer_data.md delete mode 100644 zh-cn/device-dev/api/toctopics/_camera.md delete mode 100644 zh-cn/device-dev/api/toctopics/_codec.md delete mode 100644 zh-cn/device-dev/api/toctopics/_codec_callback_type.md delete mode 100644 zh-cn/device-dev/api/toctopics/_codec_comp_capability.md delete mode 100644 zh-cn/device-dev/api/toctopics/_codec_component_manager.md delete mode 100644 zh-cn/device-dev/api/toctopics/_codec_component_type.md delete mode 100644 zh-cn/device-dev/api/toctopics/_comp_ver_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_credential_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_d_a_c.md delete mode 100644 zh-cn/device-dev/api/toctopics/_dac_io_msg.md delete mode 100644 zh-cn/device-dev/api/toctopics/_device_funcs.md delete mode 100644 zh-cn/device-dev/api/toctopics/_device_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_display.md delete mode 100644 zh-cn/device-dev/api/toctopics/_display_capability.md delete mode 100644 zh-cn/device-dev/api/toctopics/_display_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_display_mode_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_enroll_param.md delete mode 100644 zh-cn/device-dev/api/toctopics/_enrolled_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_event_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_event_package.md delete mode 100644 zh-cn/device-dev/api/toctopics/_executor_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_executor_register_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_executor_send_msg.md delete mode 100644 zh-cn/device-dev/api/toctopics/_face_auth_types_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/_get_buffer_handle_usage_params.md delete mode 100644 zh-cn/device-dev/api/toctopics/_gfx_funcs.md delete mode 100644 zh-cn/device-dev/api/toctopics/_gfx_opt.md delete mode 100644 zh-cn/device-dev/api/toctopics/_gralloc_funcs.md delete mode 100644 zh-cn/device-dev/api/toctopics/_h_d_r_capability.md delete mode 100644 zh-cn/device-dev/api/toctopics/_h_d_r_meta_data.md delete mode 100644 zh-cn/device-dev/api/toctopics/_hdf_face_auth.md delete mode 100644 zh-cn/device-dev/api/toctopics/_hdf_pin_auth.md delete mode 100644 zh-cn/device-dev/api/toctopics/_hdf_thermal_callback_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_hdf_user_auth.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_battery_callback_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_battery_interface_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_circle.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_face_auth_interface_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_input_interface.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_line.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_pin_auth_interface_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_power_hdi_callback_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_power_interface_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_rect.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_surface.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_thermal_callback_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_thermal_interface_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_user_auth_interface_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_wi_fi.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_wi_fi_ap.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_wi_fi_base_feature.md delete mode 100644 zh-cn/device-dev/api/toctopics/_i_wi_fi_sta.md delete mode 100644 zh-cn/device-dev/api/toctopics/_identify_result_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_input.md delete mode 100644 zh-cn/device-dev/api/toctopics/_input_controller.md delete mode 100644 zh-cn/device-dev/api/toctopics/_input_extra_cmd.md delete mode 100644 zh-cn/device-dev/api/toctopics/_input_manager.md delete mode 100644 zh-cn/device-dev/api/toctopics/_input_report_event_cb.md delete mode 100644 zh-cn/device-dev/api/toctopics/_input_reporter.md delete mode 100644 zh-cn/device-dev/api/toctopics/_layer_alpha.md delete mode 100644 zh-cn/device-dev/api/toctopics/_layer_buffer.md delete mode 100644 zh-cn/device-dev/api/toctopics/_layer_funcs.md delete mode 100644 zh-cn/device-dev/api/toctopics/_layer_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_light.md delete mode 100644 zh-cn/device-dev/api/toctopics/_light_effect.md delete mode 100644 zh-cn/device-dev/api/toctopics/_light_flash_effect.md delete mode 100644 zh-cn/device-dev/api/toctopics/_light_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_light_interface.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_error_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_stream_attribute.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_stream_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md delete mode 100644 zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md delete mode 100644 zh-cn/device-dev/api/toctopics/_omx_codec_buffer.md delete mode 100644 zh-cn/device-dev/api/toctopics/_power_types_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/_present_timestamp.md delete mode 100644 zh-cn/device-dev/api/toctopics/_property_object.md delete mode 100644 zh-cn/device-dev/api/toctopics/_range_value.md delete mode 100644 zh-cn/device-dev/api/toctopics/_rect.md delete mode 100644 zh-cn/device-dev/api/toctopics/_rectangle.md delete mode 100644 zh-cn/device-dev/api/toctopics/_schedule_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_sensor.md delete mode 100644 zh-cn/device-dev/api/toctopics/_sensor_events.md delete mode 100644 zh-cn/device-dev/api/toctopics/_sensor_information.md delete mode 100644 zh-cn/device-dev/api/toctopics/_sensor_interface.md delete mode 100644 zh-cn/device-dev/api/toctopics/_sta_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_support_buffer_type.md delete mode 100644 zh-cn/device-dev/api/toctopics/_template_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_thermal_types_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/_thermal_zone_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_types_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/_u_s_b.md delete mode 100644 zh-cn/device-dev/api/toctopics/_use_buffer_type.md delete mode 100644 zh-cn/device-dev/api/toctopics/_user_auth_types_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/_verify_alloc_info.md delete mode 100644 zh-cn/device-dev/api/toctopics/_vibrator.md delete mode 100644 zh-cn/device-dev/api/toctopics/_vibrator_interface.md delete mode 100644 zh-cn/device-dev/api/toctopics/_video_port_cap.md delete mode 100644 zh-cn/device-dev/api/toctopics/_w_l_a_n.md delete mode 100644 zh-cn/device-dev/api/toctopics/annotated.md delete mode 100644 zh-cn/device-dev/api/toctopics/audio__adapter_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/audio__attribute_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/audio__capture_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/audio__control_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/audio__manager_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/audio__render_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/audio__scene_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/audio__types_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/audio__volume_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/battery.md delete mode 100644 zh-cn/device-dev/api/toctopics/codec__callback__if_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/codec__common__type_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/codec__component__if_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/codec__component__manager_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/codec__component__type_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/dac__if_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/display__device_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/display__gfx_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/display__gralloc_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/display__layer_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/display__type_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/face__auth_2_i_executor_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/face__auth_2_i_executor_callback_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/files.md delete mode 100644 zh-cn/device-dev/api/toctopics/icamera__device_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/icamera__device__callback_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/icamera__host_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/icamera__host__callback_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/index.md delete mode 100644 zh-cn/device-dev/api/toctopics/input__controller_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/input__manager_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/input__reporter_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/input__type_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/interface_i_battery_callback.md delete mode 100644 zh-cn/device-dev/api/toctopics/interface_i_battery_interface.md delete mode 100644 zh-cn/device-dev/api/toctopics/interface_i_executor.md delete mode 100644 zh-cn/device-dev/api/toctopics/interface_i_executor_callback.md delete mode 100644 zh-cn/device-dev/api/toctopics/interface_i_face_auth_interface.md delete mode 100644 zh-cn/device-dev/api/toctopics/interface_i_pin_auth_interface.md delete mode 100644 zh-cn/device-dev/api/toctopics/interface_i_power_hdi_callback.md delete mode 100644 zh-cn/device-dev/api/toctopics/interface_i_power_interface.md delete mode 100644 zh-cn/device-dev/api/toctopics/interface_i_thermal_callback.md delete mode 100644 zh-cn/device-dev/api/toctopics/interface_i_thermal_interface.md delete mode 100644 zh-cn/device-dev/api/toctopics/interface_i_user_auth_interface.md delete mode 100644 zh-cn/device-dev/api/toctopics/ioffline__stream__operator_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/istream__operator_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/istream__operator__callback_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/light_8typeh.md delete mode 100644 zh-cn/device-dev/api/toctopics/light__if_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/pin__auth_2_i_executor_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/pin__auth_2_i_executor_callback_8idl.md delete mode 100644 zh-cn/device-dev/api/toctopics/power.md delete mode 100644 zh-cn/device-dev/api/toctopics/sensor__if_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/sensor__type_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/thermal.md delete mode 100644 zh-cn/device-dev/api/toctopics/total.md delete mode 100644 zh-cn/device-dev/api/toctopics/types_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/union_audio_scene_descriptor_1_1_scene_desc.md delete mode 100644 zh-cn/device-dev/api/toctopics/union_port_cap.md delete mode 100644 zh-cn/device-dev/api/toctopics/usb__info_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/usbd__client_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/usbd__subscriber_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/usbd__type_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/vibrator__if_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/vibrator__type_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/wifi__hal_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/wifi__hal__ap__feature_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/wifi__hal__base__feature_8h.md delete mode 100644 zh-cn/device-dev/api/toctopics/wifi__hal__sta__feature_8h.md create mode 100644 zh-cn/device-dev/api/total.md create mode 100644 zh-cn/device-dev/api/types_8h.md create mode 100644 zh-cn/device-dev/api/union_audio_scene_descriptor_1_1_scene_desc.md create mode 100644 zh-cn/device-dev/api/union_port_cap.md create mode 100644 zh-cn/device-dev/api/usb__info_8h.md create mode 100644 zh-cn/device-dev/api/usbd__client_8h.md create mode 100644 zh-cn/device-dev/api/usbd__subscriber_8h.md create mode 100644 zh-cn/device-dev/api/usbd__type_8h.md create mode 100644 zh-cn/device-dev/api/vibrator__if_8h.md create mode 100644 zh-cn/device-dev/api/vibrator__type_8h.md create mode 100644 zh-cn/device-dev/api/wifi__hal_8h.md create mode 100644 zh-cn/device-dev/api/wifi__hal__ap__feature_8h.md create mode 100644 zh-cn/device-dev/api/wifi__hal__base__feature_8h.md create mode 100644 zh-cn/device-dev/api/wifi__hal__sta__feature_8h.md delete mode 100644 zh-cn/device-dev/api/zh-cn_bookmap_0000001343320953.md diff --git a/zh-cn/device-dev/api/Readme-CN.md b/zh-cn/device-dev/api/Readme-CN.md new file mode 100644 index 0000000000..741ee1efc4 --- /dev/null +++ b/zh-cn/device-dev/api/Readme-CN.md @@ -0,0 +1,219 @@ +# Native API参数参考 + +- NativeAPI参考 + - [Audio](_audio.md) + - [Battery](battery.md) + - [Camera](_camera.md) + - [Codec](_codec.md) + - [Display](_display.md) + - [DAC](_d_a_c.md) + - [HdfFaceAuth](_hdf_face_auth.md) + - [Input](_input.md) + - [Light](_light.md) + - [HdfPinAuth](_hdf_pin_auth.md) + - [Power](power.md) + - [Sensor](_sensor.md) + - [Thermal](thermal.md) + - [USB](_u_s_b.md) + - [HdfUserAuth](_hdf_user_auth.md) + - [Vibrator](_vibrator.md) + - [WLAN](_w_l_a_n.md) +- 头文件和结构体 + - 头文件 + - [audio_adapter.h](audio__adapter_8h.md) + - [audio_attribute.h](audio__attribute_8h.md) + - [audio_capture.h](audio__capture_8h.md) + - [audio_control.h](audio__control_8h.md) + - [audio_manager.h](audio__manager_8h.md) + - [audio_render.h](audio__render_8h.md) + - [audio_scene.h](audio__scene_8h.md) + - [audio_types.h](audio__types_8h.md) + - [audio_volume.h](audio__volume_8h.md) + - [codec_callback_if.h](codec__callback__if_8h.md) + - [codec_common_type.h](codec__common__type_8h.md) + - [codec_component_if.h](codec__component__if_8h.md) + - [codec_component_manager.h](codec__component__manager_8h.md) + - [codec_component_type.h](codec__component__type_8h.md) + - [dac_if.h](dac__if_8h.md) + - [display_device.h](display__device_8h.md) + - [display_gfx.h](display__gfx_8h.md) + - [display_gralloc.h](display__gralloc_8h.md) + - [display_layer.h](display__layer_8h.md) + - [display_type.h](display__type_8h.md) + - [icamera_device_callback.h](icamera__device__callback_8h.md) + - [icamera_device.h](icamera__device_8h.md) + - [icamera_host_callback.h](icamera__host__callback_8h.md) + - [icamera_host.h](icamera__host_8h.md) + - [input_controller.h](input__controller_8h.md) + - [input_manager.h](input__manager_8h.md) + - [input_reporter.h](input__reporter_8h.md) + - [input_type.h](input__type_8h.md) + - [ioffline_stream_operator.h](ioffline__stream__operator_8h.md) + - [istream_operator_callback.h](istream__operator__callback_8h.md) + - [istream_operator.h](istream__operator_8h.md) + - [light_if.h](light__if_8h.md) + - [light_type.h](light_8typeh.md) + - [sensor_if.h](sensor__if_8h.md) + - [sensor_type.h](sensor__type_8h.md) + - [types.h](types_8h.md) + - [usb_info.h](usb__info_8h.md) + - [usbd_client.h](usbd__client_8h.md) + - [usbd_subscriber.h](usbd__subscriber_8h.md) + - [usbd_type.h](usbd__type_8h.md) + - [vibrator_if.h](vibrator__if_8h.md) + - [vibrator_type.h](vibrator__type_8h.md) + - [wifi_hal_ap_feature.h](wifi__hal__ap__feature_8h.md) + - [wifi_hal_base_feature.h](wifi__hal__base__feature_8h.md) + - [wifi_hal_sta_feature.h](wifi__hal__sta__feature_8h.md) + - [wifi_hal.h](wifi__hal_8h.md) + - [IExecutor.idl](face__auth_2_i_executor_8idl.md) + - [IExecutorCallback.idl](face__auth_2_i_executor_callback_8idl.md) + - [FaceAuthTypes.idl](_face_auth_types_8idl.md) + - [PinAuthTypes.idl](_pin_auth_types_8idl.md) + - [IBatteryCallback.idl](_i_battery_callback_8idl.md) + - [IBatteryInterface.idl](_i_battery_interface_8idl.md) + - [IExecutor.idl](pin__auth_2_i_executor_8idl.md) + - [IExecutorCallback.idl](pin__auth_2_i_executor_callback_8idl.md) + - [IFaceAuthInterface.idl](_i_face_auth_interface_8idl.md) + - [IPinAuthInterface.idl](_i_pin_auth_interface_8idl.md) + - [IPowerHdiCallback.idl](_i_power_hdi_callback_8idl.md) + - [IPowerInterface.idl](_i_power_interface_8idl.md) + - [IThermalInterface.idl](_i_thermal_interface_8idl.md) + - [IThermalCallback.idl](_i_thermal_callback_8idl.md) + - [IUserAuthInterface.idl](_i_user_auth_interface_8idl.md) + - [PowerTypes.idl](_power_types_8idl.md) + - [ThermalTypes.idl](_thermal_types_8idl.md) + - [Types.idl](_types_8idl.md) + - [UserAuthTypes.idl](_user_auth_types_8idl.md) + - 结构体 + - [__attribute__](____attribute____.md) + - [Alignment](_alignment.md) + - [AllocInfo](_alloc_info.md) + - [AudioAdapter](_audio_adapter.md) + - [AudioAdapterDescriptor](_audio_adapter_descriptor.md) + - [AudioAttribute](_audio_attribute.md) + - [AudioCapture](_audio_capture.md) + - [AudioControl](_audio_control.md) + - [AudioDevExtInfo](_audio_dev_ext_info.md) + - [AudioDeviceDescriptor](_audio_device_descriptor.md) + - [AudioManager](_audio_manager.md) + - [AudioMixExtInfo](_audio_mix_ext_info.md) + - [AudioMmapBufferDescripter](_audio_mmap_buffer_descripter.md) + - [AudioPort](_audio_port.md) + - [AudioPortCap](_audio_port_cap.md) + - [AudioPortCapability](_audio_port_capability.md) + - [AudioRender](_audio_render.md) + - [AudioRoute](_audio_route.md) + - [AudioRouteNode](_audio_route_node.md) + - [AudioSampleAttributes](_audio_sample_attributes.md) + - [AudioScene](_audio_scene.md) + - [AudioSceneDescriptor](_audio_scene_descriptor.md) + - [AudioSceneDescriptor::SceneDesc](union_audio_scene_descriptor_1_1_scene_desc.md) + - [AudioSessionExtInfo](_audio_session_ext_info.md) + - [AudioSubPortCapability](_audio_sub_port_capability.md) + - [AudioTimeStamp](_audio_time_stamp.md) + - [AudioVolume](_audio_volume.md) + - [AuthResultInfo](_auth_result_info.md) + - [AuthSolution](_auth_solution.md) + - [BatteryInfo](_battery_info.md) + - [BufferData](_buffer_data.md) + - [CodecCallbackType](_codec_callback_type.md) + - [CodecCompCapability](_codec_comp_capability.md) + - [CodecComponentManager](_codec_component_manager.md) + - [CodecComponentType](_codec_component_type.md) + - [CompVerInfo](_comp_ver_info.md) + - [CredentialInfo](_credential_info.md) + - [DacIoMsg](_dac_io_msg.md) + - [DeviceFuncs](_device_funcs.md) + - [DeviceInfo](_device_info.md) + - [DisplayCapability](_display_capability.md) + - [DisplayInfo](_display_info.md) + - [DisplayModeInfo](_display_mode_info.md) + - [EnrolledInfo](_enrolled_info.md) + - [EnrollParam](_enroll_param.md) + - [EventInfo](_event_info.md) + - [EventPackage](_event_package.md) + - [ExecutorInfo](_executor_info.md) + - [ExecutorRegisterInfo](_executor_register_info.md) + - [ExecutorSendMsg](_executor_send_msg.md) + - [GetBufferHandleUsageParams](_get_buffer_handle_usage_params.md) + - [GfxFuncs](_gfx_funcs.md) + - [GfxOpt](_gfx_opt.md) + - [GrallocFuncs](_gralloc_funcs.md) + - [HdfThermalCallbackInfo](_hdf_thermal_callback_info.md) + - [HDRCapability](_h_d_r_capability.md) + - [HDRMetaData](_h_d_r_meta_data.md) + - [IBatteryCallback](interface_i_battery_callback.md) + - [IBatteryInterface](interface_i_battery_interface.md) + - [ICircle](_i_circle.md) + - [IdentifyResultInfo](_identify_result_info.md) + - [IExecutor](interface_i_executor.md) + - [IExecutor](interface_pin_i_executor.md) + - [IExecutorCallback](interface_i_executor_callback.md) + - [IExecutorCallback](interface_pin_i_executor_callback.md) + - [IFaceAuthInterface](interface_i_face_auth_interface.md) + - [IInputInterface](_i_input_interface.md) + - [ILine](_i_line.md) + - [InputController](_input_controller.md) + - [InputExtraCmd](_input_extra_cmd.md) + - [InputManager](_input_manager.md) + - [InputReporter](_input_reporter.md) + - [InputReportEventCb](_input_report_event_cb.md) + - [IPinAuthInterface](interface_i_pin_auth_interface.md) + - [IPowerHdiCallback](interface_i_power_hdi_callback.md) + - [IPowerInterface](interface_i_power_interface.md) + - [IRect](_i_rect.md) + - [ISurface](_i_surface.md) + - [IThermalCallback](interface_i_thermal_callback.md) + - [IThermalInterface](interface_i_thermal_interface.md) + - [IUserAuthInterface](interface_i_user_auth_interface.md) + - [IWiFi](_i_wi_fi.md) + - [IWiFiAp](_i_wi_fi_ap.md) + - [IWiFiBaseFeature](_i_wi_fi_base_feature.md) + - [IWiFiSta](_i_wi_fi_sta.md) + - [LayerAlpha](_layer_alpha.md) + - [LayerBuffer](_layer_buffer.md) + - [LayerFuncs](_layer_funcs.md) + - [LayerInfo](_layer_info.md) + - [LightEffect](_light_effect.md) + - [LightFlashEffect](_light_flash_effect.md) + - [LightInfo](_light_info.md) + - [LightInterface](_light_interface.md) + - [OHOS::Camera::CaptureEndedInfo](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md) + - [OHOS::Camera::CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md) + - [OHOS::Camera::CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md) + - [OHOS::Camera::ICameraDevice](_o_h_o_s_1_1_camera_1_1_i_camera_device.md) + - [OHOS::Camera::ICameraDeviceCallback](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md) + - [OHOS::Camera::ICameraHost](_o_h_o_s_1_1_camera_1_1_i_camera_host.md) + - [OHOS::Camera::ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md) + - [OHOS::Camera::IOfflineStreamOperator](_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md) + - [OHOS::Camera::IStreamOperator](_o_h_o_s_1_1_camera_1_1_i_stream_operator.md) + - [OHOS::Camera::IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md) + - [OHOS::Camera::StreamAttribute](_o_h_o_s_1_1_camera_1_1_stream_attribute.md) + - [OHOS::Camera::StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md) + - [OHOS::USB::UsbCtrlTransfer](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md) + - [OHOS::USB::UsbdClient](_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md) + - [OHOS::USB::UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) + - [OHOS::USB::USBDeviceInfo](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md) + - [OHOS::USB::UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md) + - [OHOS::USB::UsbInfo](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md) + - [OHOS::USB::UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) + - [OmxCodecBuffer](_omx_codec_buffer.md) + - [PortCap](union_port_cap.md) + - [PresentTimestamp](_present_timestamp.md) + - [PropertyObject](_property_object.md) + - [RangeValue](_range_value.md) + - [Rect](_rect.md) + - [Rectangle](_rectangle.md) + - [ScheduleInfo](_schedule_info.md) + - [SensorEvents](_sensor_events.md) + - [SensorInformation](_sensor_information.md) + - [SensorInterface](_sensor_interface.md) + - [StaInfo](_sta_info.md) + - [SupportBufferType](_support_buffer_type.md) + - [TemplateInfo](_template_info.md) + - [ThermalZoneInfo](_thermal_zone_info.md) + - [UseBufferType](_use_buffer_type.md) + - [VerifyAllocInfo](_verify_alloc_info.md) + - [VibratorInterface](_vibrator_interface.md) + - [VideoPortCap](_video_port_cap.md) diff --git a/zh-cn/device-dev/api/____attribute____.md b/zh-cn/device-dev/api/____attribute____.md new file mode 100644 index 0000000000..c783085e55 --- /dev/null +++ b/zh-cn/device-dev/api/____attribute____.md @@ -0,0 +1,34 @@ +# __attribute__ + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [fd](_display.md#fd) | 句柄 fd, -1代表不支持。 | +| [reserveInts](_display.md#reserveints) | reserve数组的个数。 | +| [reserve](_display.md#reserve) [0] | reserve数组。 | +| [baseAddr](_display.md#baseaddr) | 内存的初始地址。 | +| [yOffset](_display.md#yoffset) | Y的偏移量。 | +| [uOffset](_display.md#uoffset) | U的偏移量。 | +| [vOffset](_display.md#voffset) | V的偏移量。 | +| [yStride](_display.md#ystride) | Y的stride信息。 | +| [uvStride](_display.md#uvstride) | UV的stride信息。 | +| [uvStep](_display.md#uvstep) | UV的step信息。 | + + +## **详细描述** + +扩展数据句柄结构体定义 + +YUV描述信息结构体定义 diff --git a/zh-cn/device-dev/api/_alignment.md b/zh-cn/device-dev/api/_alignment.md new file mode 100644 index 0000000000..fe001f65e7 --- /dev/null +++ b/zh-cn/device-dev/api/_alignment.md @@ -0,0 +1,51 @@ +# Alignment + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [widthAlignment](#widthalignment) | 宽的对齐值。 | +| [heightAlignment](#heightalignment) | 高的对齐值。 | + + +## **详细描述** + +对齐结构定义,包含宽高的对齐值。 + + +## **类成员变量说明** + + +### heightAlignment + + +``` +int32_t Alignment::heightAlignment +``` + +**描述:** + +高的对齐值。 + + +### widthAlignment + + +``` +int32_t Alignment::widthAlignment +``` + +**描述:** + +宽的对齐值。 diff --git a/zh-cn/device-dev/api/_alloc_info.md b/zh-cn/device-dev/api/_alloc_info.md new file mode 100644 index 0000000000..6873294ab8 --- /dev/null +++ b/zh-cn/device-dev/api/_alloc_info.md @@ -0,0 +1,27 @@ +# AllocInfo + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [width](_display.md#width-67) | 申请内存宽度 | +| [height](_display.md#height-67) | 申请内存高度 | +| [usage](_display.md#usage-12) | 申请内存的使用场景 | +| [format](_display.md#format-12) | 申请内存格式 | +| [expectedSize](_display.md#expectedsize) | 申请内存大小 | + + +## **详细描述** + +定义关于要分配的内存的信息。 diff --git a/zh-cn/device-dev/api/_audio.md b/zh-cn/device-dev/api/_audio.md new file mode 100644 index 0000000000..3ea52c14e2 --- /dev/null +++ b/zh-cn/device-dev/api/_audio.md @@ -0,0 +1,1319 @@ +# Audio + + +## **汇总** + + +### 文件 + + | 文件 | 描述 | +| -------- | -------- | +| [audio_adapter.h](audio__adapter_8h.md) | Audio适配器的接口定义文件 | +| [audio_attribute.h](audio__attribute_8h.md) | Audio属性的接口定义文件 | +| [audio_capture.h](audio__capture_8h.md) | Audio录音的接口定义文件 | +| [audio_control.h](audio__control_8h.md) | Audio控制的接口定义文件 | +| [audio_manager.h](audio__manager_8h.md) | Audio适配器管理及加载的接口定义文件 | +| [audio_render.h](audio__render_8h.md) | Audio播放的接口定义文件 | +| [audio_scene.h](audio__scene_8h.md) | Audio场景的接口定义文件 | +| [audio_types.h](audio__types_8h.md) | Audio模块接口定义中使用的自定义数据类型 | +| [audio_volume.h](audio__volume_8h.md) | Audio音量的接口定义文件 | + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [AudioAdapter](_audio_adapter.md) | AudioAdapter音频适配器接口 [更多...](_audio_adapter.md) | +| [AudioAttribute](_audio_attribute.md) | AudioAttribute音频属性接口 [更多...](_audio_attribute.md) | +| [AudioCapture](_audio_capture.md) | AudioCapture音频录音接口 [更多...](_audio_capture.md) | +| [AudioControl](_audio_control.md) | AudioControl音频控制接口 [更多...](_audio_control.md) | +| [AudioManager](_audio_manager.md) | AudioManager音频适配器管理接口 [更多...](_audio_manager.md) | +| [AudioRender](_audio_render.md) | AudioRender音频播放接口 [更多...](_audio_render.md) | +| [AudioScene](_audio_scene.md) | AudioScene音频场景接口 [更多...](_audio_scene.md) | +| [AudioPort](_audio_port.md) | 音频端口 [更多...](_audio_port.md) | +| [AudioAdapterDescriptor](_audio_adapter_descriptor.md) | 音频适配器描述符 [更多...](_audio_adapter_descriptor.md) | +| [AudioDeviceDescriptor](_audio_device_descriptor.md) | 音频设备描述符 [更多...](_audio_device_descriptor.md) | +| [AudioSceneDescriptor](_audio_scene_descriptor.md) | 音频场景描述符 [更多...](_audio_scene_descriptor.md) | +| [AudioSceneDescriptor::SceneDesc](union_audio_scene_descriptor_1_1_scene_desc.md) | 音频场景描述 [更多...](union_audio_scene_descriptor_1_1_scene_desc.md) | +| [AudioSampleAttributes](_audio_sample_attributes.md) | 音频采样属性 [更多...](_audio_sample_attributes.md) | +| [AudioTimeStamp](_audio_time_stamp.md) | 音频时间戳 [更多...](_audio_time_stamp.md) | +| [AudioSubPortCapability](_audio_sub_port_capability.md) | 音频子端口的支持能力 [更多...](_audio_sub_port_capability.md) | +| [AudioPortCapability](_audio_port_capability.md) | 音频端口的支持能力 [更多...](_audio_port_capability.md) | +| [AudioMmapBufferDescripter](_audio_mmap_buffer_descripter.md) | mmap缓冲区描述符 [更多...](_audio_mmap_buffer_descripter.md) | +| [AudioDevExtInfo](_audio_dev_ext_info.md) | 音频设备拓展信息 [更多...](_audio_dev_ext_info.md) | +| [AudioMixExtInfo](_audio_mix_ext_info.md) | 音轨拓展信息 [更多...](_audio_mix_ext_info.md) | +| [AudioSessionExtInfo](_audio_session_ext_info.md) | 会话拓展信息 [更多...](_audio_session_ext_info.md) | +| [AudioRouteNode](_audio_route_node.md) | 音频路由节点 [更多...](_audio_route_node.md) | +| [AudioRoute](_audio_route.md) | 音频路由信息 [更多...](_audio_route.md) | +| [AudioVolume](_audio_volume.md) | AudioVolume音频音量接口 [更多...](_audio_volume.md) | + + +### 类型定义 + + | 类型定义 | 描述 | +| -------- | -------- | +| AudioHandle | 音频句柄 | +| ([RenderCallback](#rendercallback)) (enum [AudioCallbackType](#audiocallbacktype), void \*reserved, void \*cookie) | 回调函数指针 [更多...](#rendercallback) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [AudioPortDirection](#audioportdirection) { [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1872427638083931,link:zh-cn_topic_0000001295254272.xml#gga68ff7140b15790debbac4bbc62f8e9f8af54f110a0f64337d474989fbac06bc22](#gga68ff7140b15790debbac4bbc62f8e9f8af54f110a0f64337d474989fbac06bc22) = 0x1u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1956179113083931,link:zh-cn_topic_0000001295254272.xml#gga68ff7140b15790debbac4bbc62f8e9f8a154a6db110515b7afde52d3a36d57846](#gga68ff7140b15790debbac4bbc62f8e9f8a154a6db110515b7afde52d3a36d57846) = 0x2u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1870613635083931,link:zh-cn_topic_0000001295254272.xml#gga68ff7140b15790debbac4bbc62f8e9f8a87e14fe9da9c332ba29185b9213d7bbf](#gga68ff7140b15790debbac4bbc62f8e9f8a87e14fe9da9c332ba29185b9213d7bbf) = 0x3u } | 音频端口的类型 [更多...](#audioportdirection) | +| [AudioPortPin](#audioportpin) {   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1493981061083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ad2f867652c04c17517db7731af03bf20](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ad2f867652c04c17517db7731af03bf20) = 0x0u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref685216793083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ab1070439bab93e06446c21157771dd6f](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ab1070439bab93e06446c21157771dd6f) = 0x1u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1812227293083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a271013721c8840cc2700c19b3ff8d0a6](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a271013721c8840cc2700c19b3ff8d0a6) = 0x2u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref44597532083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a411e9037214c75d22c9080505cf9cae6](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a411e9037214c75d22c9080505cf9cae6) = 0x4u,   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1840039063083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ab4aaa2ec71ec77480f60743cd79340b9](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ab4aaa2ec71ec77480f60743cd79340b9) = 0x8u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1181985818083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a4fdca959c8b32bc9a30a36882bd3bdaa](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a4fdca959c8b32bc9a30a36882bd3bdaa) = 0x10u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1740611064083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a933d2d5aadef8b45038be8be69b56b27](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a933d2d5aadef8b45038be8be69b56b27) = 0x20u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1483273702083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a336001f5685d9c206b1251714553b485](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a336001f5685d9c206b1251714553b485) = 0x8000001u,   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref2052340513083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835aaeca21ac0a7b249905d1cea5b683f574](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835aaeca21ac0a7b249905d1cea5b683f574) = 0x8000002u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1541442973083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a5146add03ff98f06648567bb0e02a477](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a5146add03ff98f06648567bb0e02a477) = 0x8000004u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1972742366083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ad6b81dc30e45f9f79801bf1e8ee0caef](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ad6b81dc30e45f9f79801bf1e8ee0caef) = 0x8000008u } | 音频适配器端口的PIN脚 [更多...](#audioportpin) | +| [AudioCategory](#audiocategory) { [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref297140569083931,link:zh-cn_topic_0000001295254272.xml#ggaf210d41d152890f3aaf2aaac99bd28d5a6ac6cfd90dcc34de100c1cecb3df44c3](#ggaf210d41d152890f3aaf2aaac99bd28d5a6ac6cfd90dcc34de100c1cecb3df44c3) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1959787488083931,link:zh-cn_topic_0000001295254272.xml#ggaf210d41d152890f3aaf2aaac99bd28d5a474576c773934a0df994bad4cf781b41](#ggaf210d41d152890f3aaf2aaac99bd28d5a474576c773934a0df994bad4cf781b41), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1760094621083931,link:zh-cn_topic_0000001295254272.xml#ggaf210d41d152890f3aaf2aaac99bd28d5aa5361a2d3ed6703c130417ec243d0a69](#ggaf210d41d152890f3aaf2aaac99bd28d5aa5361a2d3ed6703c130417ec243d0a69), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref871250563083931,link:zh-cn_topic_0000001295254272.xml#ggaf210d41d152890f3aaf2aaac99bd28d5a7a6ef7c82e9a5eb63d004056eb13c894](#ggaf210d41d152890f3aaf2aaac99bd28d5a7a6ef7c82e9a5eb63d004056eb13c894) } | 音频类型(category) [更多...](#audiocategory) | +| [AudioFormat](#audioformat) {   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1847971465083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59a321cc2160af35aa86b8ee55f231ef1e6](#gga98d5d077cca088ddf77314871474fe59a321cc2160af35aa86b8ee55f231ef1e6) = 0x1u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1261428183083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59ae188cf87c8f2e6218c74b3b2385068e6](#gga98d5d077cca088ddf77314871474fe59ae188cf87c8f2e6218c74b3b2385068e6) = 0x2u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1801870868083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59a21eb864e2117df577dcd90ad81da3b14](#gga98d5d077cca088ddf77314871474fe59a21eb864e2117df577dcd90ad81da3b14) = 0x3u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref620562518083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59adf7a0bf1f3dd15c9c43fac07c0c6ea26](#gga98d5d077cca088ddf77314871474fe59adf7a0bf1f3dd15c9c43fac07c0c6ea26) = 0x4u,   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1087097448083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59a5a781e6f8b145066ae7fb2c310804bab](#gga98d5d077cca088ddf77314871474fe59a5a781e6f8b145066ae7fb2c310804bab) = 0x1000001u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1830475719083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59a3d4bc5d534d0452635455ed8d2cade57](#gga98d5d077cca088ddf77314871474fe59a3d4bc5d534d0452635455ed8d2cade57) = 0x1000002u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1989338155083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59ad4baf87ff9f4684c03483c572052b700](#gga98d5d077cca088ddf77314871474fe59ad4baf87ff9f4684c03483c572052b700) = 0x1000003u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1985412102083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59a4b8d42988fecf03e2bf73c4395501852](#gga98d5d077cca088ddf77314871474fe59a4b8d42988fecf03e2bf73c4395501852) = 0x1000004u,   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1803238353083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59abaddb86f122d3185de9407dbc673bf0e](#gga98d5d077cca088ddf77314871474fe59abaddb86f122d3185de9407dbc673bf0e) = 0x1000005u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref391270671083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59ab610e0121e0b5076b3f78831e3c237fd](#gga98d5d077cca088ddf77314871474fe59ab610e0121e0b5076b3f78831e3c237fd) = 0x1000006u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1730725146083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59a625f7a608bd66462e532762af64c5393](#gga98d5d077cca088ddf77314871474fe59a625f7a608bd66462e532762af64c5393) = 0x2000001u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref379396610083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59a6284a1ee0d6034eab8836f5d6352b3da](#gga98d5d077cca088ddf77314871474fe59a6284a1ee0d6034eab8836f5d6352b3da) = 0x2000002u,   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref203695405083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59a46432573957951a919c84b00504b46b0](#gga98d5d077cca088ddf77314871474fe59a46432573957951a919c84b00504b46b0) = 0x2000003u } | 音频格式 [更多...](#audioformat) | +| [AudioChannelMask](#audiochannelmask) { [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref469505431083931,link:zh-cn_topic_0000001295254272.xml#gga137eb03027d5947ea294b32f5095b83ca0419483310bfc5abe46a0c586070ed18](#gga137eb03027d5947ea294b32f5095b83ca0419483310bfc5abe46a0c586070ed18) = 0x1, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1505633910083931,link:zh-cn_topic_0000001295254272.xml#gga137eb03027d5947ea294b32f5095b83ca05525a25c5912eda05e9a8786a743a75](#gga137eb03027d5947ea294b32f5095b83ca05525a25c5912eda05e9a8786a743a75) = 0x2, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1774752327083931,link:zh-cn_topic_0000001295254272.xml#gga137eb03027d5947ea294b32f5095b83ca0479e1cd2137cbbad68efae1d2b2c9a9](#gga137eb03027d5947ea294b32f5095b83ca0479e1cd2137cbbad68efae1d2b2c9a9) = 0x1u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref81777348083931,link:zh-cn_topic_0000001295254272.xml#gga137eb03027d5947ea294b32f5095b83ca70f2212ea5439c13f7fcba3e30b15c1a](#gga137eb03027d5947ea294b32f5095b83ca70f2212ea5439c13f7fcba3e30b15c1a) = 0x3u } | 音频通道掩码(mask) [更多...](#audiochannelmask) | +| [AudioSampleRatesMask](#audiosampleratesmask) {   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1216525371083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4ca046a26906a4df81bfc38c583ba3606e9](#gga7053fcaa56d1dc47d2fcd83ee131fe4ca046a26906a4df81bfc38c583ba3606e9) = 0x1u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1589795186083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4caf1f34aa763f2bf6d5f43178f2d335d10](#gga7053fcaa56d1dc47d2fcd83ee131fe4caf1f34aa763f2bf6d5f43178f2d335d10) = 0x2u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref201634848083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4ca5f13b000ef455b858506fc90d17e2dd7](#gga7053fcaa56d1dc47d2fcd83ee131fe4ca5f13b000ef455b858506fc90d17e2dd7) = 0x4u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1523021230083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4ca3102248493467e00d16c2cf1971635a7](#gga7053fcaa56d1dc47d2fcd83ee131fe4ca3102248493467e00d16c2cf1971635a7) = 0x8u,   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref292096040083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4cae7cfb2244a15cd133373cfa5e96ec82e](#gga7053fcaa56d1dc47d2fcd83ee131fe4cae7cfb2244a15cd133373cfa5e96ec82e) = 0x10u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref701474512083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4cacce4defc0cf23abfe52d399b4aa68fdf](#gga7053fcaa56d1dc47d2fcd83ee131fe4cacce4defc0cf23abfe52d399b4aa68fdf) = 0x20u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref440698404083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4ca5594285d8ef3897e9f29a15e0795b814](#gga7053fcaa56d1dc47d2fcd83ee131fe4ca5594285d8ef3897e9f29a15e0795b814) = 0x40u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1331816390083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4ca52345265822f55a62b2e038438daf37e](#gga7053fcaa56d1dc47d2fcd83ee131fe4ca52345265822f55a62b2e038438daf37e) = 0x80u,   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1378568104083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4caa52c49624fecf6d9f1d075d0d3ad0bbf](#gga7053fcaa56d1dc47d2fcd83ee131fe4caa52c49624fecf6d9f1d075d0d3ad0bbf) = 0x100u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1527587012083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4caf111a8b9762ec169361a106ba7efdb0f](#gga7053fcaa56d1dc47d2fcd83ee131fe4caf111a8b9762ec169361a106ba7efdb0f) = 0x200u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1311588140083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4caa9e4deb07b2a7c32e5a19b8c81d9fd0d](#gga7053fcaa56d1dc47d2fcd83ee131fe4caa9e4deb07b2a7c32e5a19b8c81d9fd0d) = 0x400u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref835932715083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4ca41f8d22ab95c84d0acb3d0c78679274c](#gga7053fcaa56d1dc47d2fcd83ee131fe4ca41f8d22ab95c84d0acb3d0c78679274c) = 0xFFFFFFFFu } | 音频采样频率MASK [更多...](#audiosampleratesmask) | +| [AudioPortPassthroughMode](#audioportpassthroughmode) { [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref2003128552083931,link:zh-cn_topic_0000001295254272.xml#gga186d2d4f9a2ecacb80cd2cce2bd26f0ea48da60ec7958d35e8884e67cc32cb465](#gga186d2d4f9a2ecacb80cd2cce2bd26f0ea48da60ec7958d35e8884e67cc32cb465) = 0x1, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1340675146083931,link:zh-cn_topic_0000001295254272.xml#gga186d2d4f9a2ecacb80cd2cce2bd26f0eaf44936c424fbadafda9e1a12829b291f](#gga186d2d4f9a2ecacb80cd2cce2bd26f0eaf44936c424fbadafda9e1a12829b291f) = 0x2, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref431072076083931,link:zh-cn_topic_0000001295254272.xml#gga186d2d4f9a2ecacb80cd2cce2bd26f0eada09d902428d269446b94c2b7e9eb95e](#gga186d2d4f9a2ecacb80cd2cce2bd26f0eada09d902428d269446b94c2b7e9eb95e) = 0x4, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref731183987083931,link:zh-cn_topic_0000001295254272.xml#gga186d2d4f9a2ecacb80cd2cce2bd26f0ea6fd7a77031d807247e159c3deec07e11](#gga186d2d4f9a2ecacb80cd2cce2bd26f0ea6fd7a77031d807247e159c3deec07e11) = 0x8 } | 音频端口的数据透传模式 [更多...](#audioportpassthroughmode) | +| [AudioSampleFormat](#audiosampleformat) {   [AUDIO_SAMPLE_FORMAT_S8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a2d8a330d2cb71268562e1c4da0c4eabc), [AUDIO_SAMPLE_FORMAT_S8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a4eb79a5d6d99244902cfb5c65f225c80), [AUDIO_SAMPLE_FORMAT_U8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab6d04d1d87a9a243b195ab6be183600e), [AUDIO_SAMPLE_FORMAT_U8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aeffb8620959b836e01622c7dc82ebc6d),   [AUDIO_SAMPLE_FORMAT_S16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a4422a2a04509e492ef823189d454d5a3), [AUDIO_SAMPLE_FORMAT_S16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a11a1fb37c21f722383a37fc5e6075dfe), [AUDIO_SAMPLE_FORMAT_U16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757af961944b4c8e77ee56defc30e6e61eb5), [AUDIO_SAMPLE_FORMAT_U16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a08ba605e3e58479ebb7432ff5d6d0972),   [AUDIO_SAMPLE_FORMAT_S24](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a102520af7c50d1ee4951e472f5f921e4), [AUDIO_SAMPLE_FORMAT_S24P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ae245cf6bd637c1f1304b38746f8940d6), [AUDIO_SAMPLE_FORMAT_U24](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a0d5fc3d14030aad7bc17d894bf4fc5c9), [AUDIO_SAMPLE_FORMAT_U24P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a0e8b7681ec3461988cb7fdd0f3616b2e),   [AUDIO_SAMPLE_FORMAT_S32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a46819088770f843230d2b094fd8d14ba), [AUDIO_SAMPLE_FORMAT_S32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a7883f8a4bede55eb4ffaf6ecb47f6841), [AUDIO_SAMPLE_FORMAT_U32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757afae09ccb9fdae65e73e5584a4c3a6d16), [AUDIO_SAMPLE_FORMAT_U32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a915025bfdcf9491a21b2d38dec7998cc),   [AUDIO_SAMPLE_FORMAT_S64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a2e5477f7cc05dcc271b50e570dfd0452), [AUDIO_SAMPLE_FORMAT_S64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab07b4d40994980a8012a79dc4a69a794), [AUDIO_SAMPLE_FORMAT_U64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a959950ea0f2b6c0e17d752640238c23b), [AUDIO_SAMPLE_FORMAT_U64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aad2c58522f7d16111756c1731bf52044),   [AUDIO_SAMPLE_FORMAT_F32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ac3cb5729241a7f73210d97d4fe0002fe), [AUDIO_SAMPLE_FORMAT_F32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a1121b8995d1083f61b2fa0afcc45143f), [AUDIO_SAMPLE_FORMAT_F64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a72f064169d0282fa8a152aea546056c3), [AUDIO_SAMPLE_FORMAT_F64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a1f0e407cd152b27f7b0ff761d26bb300),   [AUDIO_SAMPLE_FMT_U8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aad65a5b895b3dba000167dbb6c19b9ab), [AUDIO_SAMPLE_FMT_S16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a40335eaa7ca378540941909ed02b51a0), [AUDIO_SAMPLE_FMT_S32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab98feafb8396c0190a4fb719a15ab7c5), [AUDIO_SAMPLE_FMT_FLOAT](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ac2fb27a42b3f79e51dd71ce05b42f9db),   [AUDIO_SAMPLE_FMT_DOUBLE](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757afb8b12c44b4799f59a533609b4c360b5), [AUDIO_SAMPLE_FMT_U8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a8eb00238e7aa21d69f056d9292eb64d9), [AUDIO_SAMPLE_FMT_S16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a93008db1a966fee4a91b515fedc78cec), [AUDIO_SAMPLE_FMT_S32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a6bb874f2726bb94d08914b366ae947d6),   [AUDIO_SAMPLE_FMT_FLOATP](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a8a635bbd6c5df1a8a0fadb1d9602ea74), [AUDIO_SAMPLE_FMT_DOUBLEP](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a467bd88ce7f736a433425695ed0a0dbc), [AUDIO_SAMPLE_FMT_INVALID](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a5c8f7c2c0f84e70f609f8fd4ffd2c910) } | 原始音频样本格式 [更多...](#audiosampleformat) | +| [AudioChannelMode](#audiochannelmode) {   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1444525694083931,link:zh-cn_topic_0000001295254272.xml#gga78aab1fafb9657451804e42b42897123aa97ec21f6627e1dfd4854b5b470cdfba](#gga78aab1fafb9657451804e42b42897123aa97ec21f6627e1dfd4854b5b470cdfba) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1758738400083931,link:zh-cn_topic_0000001295254272.xml#gga78aab1fafb9657451804e42b42897123a47fd61e4531acb6b5cc058ac26af5d51](#gga78aab1fafb9657451804e42b42897123a47fd61e4531acb6b5cc058ac26af5d51), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref92277550083931,link:zh-cn_topic_0000001295254272.xml#gga78aab1fafb9657451804e42b42897123a3341b11cad1d47bda2b4a2be60dda023](#gga78aab1fafb9657451804e42b42897123a3341b11cad1d47bda2b4a2be60dda023), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref2092924788083931,link:zh-cn_topic_0000001295254272.xml#gga78aab1fafb9657451804e42b42897123a3f2e41939cc24c51213d8730c32e74e9](#gga78aab1fafb9657451804e42b42897123a3f2e41939cc24c51213d8730c32e74e9),   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1344286562083931,link:zh-cn_topic_0000001295254272.xml#gga78aab1fafb9657451804e42b42897123a2c1537bccd5c2a05d1c515e58ec4481e](#gga78aab1fafb9657451804e42b42897123a2c1537bccd5c2a05d1c515e58ec4481e), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref965246877083931,link:zh-cn_topic_0000001295254272.xml#gga78aab1fafb9657451804e42b42897123a485c0423ce07fbb7f844a387ed9bb546](#gga78aab1fafb9657451804e42b42897123a485c0423ce07fbb7f844a387ed9bb546), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref118340556083931,link:zh-cn_topic_0000001295254272.xml#gga78aab1fafb9657451804e42b42897123a0878cdf6f3e0d9ae9ae1f61b7f74257e](#gga78aab1fafb9657451804e42b42897123a0878cdf6f3e0d9ae9ae1f61b7f74257e), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1234763433083931,link:zh-cn_topic_0000001295254272.xml#gga78aab1fafb9657451804e42b42897123a22540143eb96abf8176e73c19fc0d8e5](#gga78aab1fafb9657451804e42b42897123a22540143eb96abf8176e73c19fc0d8e5) } | 音频播放的通道模式 [更多...](#audiochannelmode) | +| [AudioDrainNotifyType](#audiodrainnotifytype) { [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref775607707083931,link:zh-cn_topic_0000001295254272.xml#gga6359642a80d38bd309683186d904306da4963b68236fd3314ffee8bc02c1b5d9f](#gga6359642a80d38bd309683186d904306da4963b68236fd3314ffee8bc02c1b5d9f), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1047403888083931,link:zh-cn_topic_0000001295254272.xml#gga6359642a80d38bd309683186d904306da6502b8f1bc5e947ef45638a2155b5dff](#gga6359642a80d38bd309683186d904306da6502b8f1bc5e947ef45638a2155b5dff) } | DrainBuffer函数结束类型 [更多...](#audiodrainnotifytype) | +| [AudioCallbackType](#audiocallbacktype) {   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1832461030083931,link:zh-cn_topic_0000001295254272.xml#ggae6a108ed6d40bf9adc9124f59501e1a8ae5f3f33b8d4de2b6ae2004e46db16b4f](#ggae6a108ed6d40bf9adc9124f59501e1a8ae5f3f33b8d4de2b6ae2004e46db16b4f), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1794398377083931,link:zh-cn_topic_0000001295254272.xml#ggae6a108ed6d40bf9adc9124f59501e1a8a88770682790de22125afbee7fd0da618](#ggae6a108ed6d40bf9adc9124f59501e1a8a88770682790de22125afbee7fd0da618), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1867274954083931,link:zh-cn_topic_0000001295254272.xml#ggae6a108ed6d40bf9adc9124f59501e1a8a67b1cc122ca5bf96b68cb28bfbdfe9a8](#ggae6a108ed6d40bf9adc9124f59501e1a8a67b1cc122ca5bf96b68cb28bfbdfe9a8), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref483828898083931,link:zh-cn_topic_0000001295254272.xml#ggae6a108ed6d40bf9adc9124f59501e1a8a569f62b68b379f66e63bd8f0f8500421](#ggae6a108ed6d40bf9adc9124f59501e1a8a569f62b68b379f66e63bd8f0f8500421),   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1991332510083931,link:zh-cn_topic_0000001295254272.xml#ggae6a108ed6d40bf9adc9124f59501e1a8a5372856fbf3214e0c54c4d4d4046bfe8](#ggae6a108ed6d40bf9adc9124f59501e1a8a5372856fbf3214e0c54c4d4d4046bfe8) } | 回调函数通知事件类型 [更多...](#audiocallbacktype) | +| [AudioPortRole](#audioportrole) { [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref2141548492083931,link:zh-cn_topic_0000001295254272.xml#gga9262d2f01824bf765fd79c2e78c9a62da87fb7ced5a0e447f2bbd1b7730d2eb7b](#gga9262d2f01824bf765fd79c2e78c9a62da87fb7ced5a0e447f2bbd1b7730d2eb7b) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref450998328083931,link:zh-cn_topic_0000001295254272.xml#gga9262d2f01824bf765fd79c2e78c9a62da22faadd2246a6ca5995c14560a9b9332](#gga9262d2f01824bf765fd79c2e78c9a62da22faadd2246a6ca5995c14560a9b9332) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1555569095083931,link:zh-cn_topic_0000001295254272.xml#gga9262d2f01824bf765fd79c2e78c9a62da6f2b666591eb7bb9106d1d998ca18ab7](#gga9262d2f01824bf765fd79c2e78c9a62da6f2b666591eb7bb9106d1d998ca18ab7) = 2 } | 音频端口角色 [更多...](#audioportrole) | +| [AudioPortType](#audioporttype) { [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1968248538083931,link:zh-cn_topic_0000001295254272.xml#ggaad9bcf12b3ab430a2f96a2af7505173bae8d72365ca8cd78b9245c874fbe06227](#ggaad9bcf12b3ab430a2f96a2af7505173bae8d72365ca8cd78b9245c874fbe06227) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref124855075083931,link:zh-cn_topic_0000001295254272.xml#ggaad9bcf12b3ab430a2f96a2af7505173ba52c6725d10840f7524b001ff71452439](#ggaad9bcf12b3ab430a2f96a2af7505173ba52c6725d10840f7524b001ff71452439) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref644032916083931,link:zh-cn_topic_0000001295254272.xml#ggaad9bcf12b3ab430a2f96a2af7505173baee29a064c72da8740173cd9e618681c1](#ggaad9bcf12b3ab430a2f96a2af7505173baee29a064c72da8740173cd9e618681c1) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1440590184083931,link:zh-cn_topic_0000001295254272.xml#ggaad9bcf12b3ab430a2f96a2af7505173ba1e16adb8496d8a0e28f0794334c425ec](#ggaad9bcf12b3ab430a2f96a2af7505173ba1e16adb8496d8a0e28f0794334c425ec) = 3 } | 音频端口类型 [更多...](#audioporttype) | +| [AudioSessionType](#audiosessiontype) { [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref250576326083931,link:zh-cn_topic_0000001295254272.xml#ggab242c41d88b46812f204052ba8509ccea0b887608f198d74497a4eb44c51f9fce](#ggab242c41d88b46812f204052ba8509ccea0b887608f198d74497a4eb44c51f9fce) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1097777551083931,link:zh-cn_topic_0000001295254272.xml#ggab242c41d88b46812f204052ba8509ccea5cd6f49112fc8a0f97fd83b0fd48b25a](#ggab242c41d88b46812f204052ba8509ccea5cd6f49112fc8a0f97fd83b0fd48b25a), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1048520415083931,link:zh-cn_topic_0000001295254272.xml#ggab242c41d88b46812f204052ba8509ccead78430579e471af7153917fbcc5aa6b4](#ggab242c41d88b46812f204052ba8509ccead78430579e471af7153917fbcc5aa6b4), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1887504163083931,link:zh-cn_topic_0000001295254272.xml#ggab242c41d88b46812f204052ba8509ccea8721a5a0498b144056551b41030afbb7](#ggab242c41d88b46812f204052ba8509ccea8721a5a0498b144056551b41030afbb7) } | 端口会话类型 [更多...](#audiosessiontype) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [GetAudioManagerFuncs](#getaudiomanagerfuncs) (void) | 获取音频适配器管理接口的操作函数列表,详情参考[AudioManager](_audio_manager.md)[更多...](#getaudiomanagerfuncs) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| [AudioPort::dir](#dir) | 音频端口的类型。 | +| [AudioPort::portId](#portid-14) | 音频端口的ID。 | +| [AudioPort::portName](#portname) | 音频端口的名称。 | +| [AudioAdapterDescriptor::adapterName](#adaptername) | 音频适配器的名称。 | +| [AudioAdapterDescriptor::portNum](#portnum) | 一个音频适配器支持的端口数目。 | +| [AudioAdapterDescriptor::ports](#ports) | 一个音频适配器支持的端口列表。 | +| [AudioDeviceDescriptor::portId](#portid-24) | 音频端口ID。 | +| [AudioDeviceDescriptor::pins](#pins) | 音频端口上的PIN脚(输出、输入)。 | +| [AudioDeviceDescriptor::desc](#desc-15) | 以字符串命名的音频设备。 | +| [AudioSceneDescriptor::SceneDesc::id](#id) | 音频场景的ID。 | +| [AudioSceneDescriptor::SceneDesc::desc](#desc-35) | 以字符串命名的音频场景。 | +| [AudioSceneDescriptor::scene](#scene) | 音频场景的名称。 | +| [AudioSceneDescriptor::desc](#desc-25) | 音频设备描述符。 | +| [AudioSampleAttributes::type](#type-13) | 音频类型。 | +| [AudioSampleAttributes::interleaved](#interleaved) | 音频数据交织的标记。 | +| [AudioSampleAttributes::format](#format) | 音频数据格式。 | +| [AudioSampleAttributes::sampleRate](#samplerate) | 音频采样频率。 | +| [AudioSampleAttributes::channelCount](#channelcount-12) | 音频通道数目,如单通道(mono)为1、立体声(stereo)为2。 | +| [AudioSampleAttributes::period](#period) | 音频采样周期。 | +| [AudioSampleAttributes::frameSize](#framesize) | 音频数据的帧大小。 | +| [AudioSampleAttributes::isBigEndian](#isbigendian) | 音频数据的大端标志。 | +| [AudioSampleAttributes::isSignedData](#issigneddata) | 音频数据的有符号或无符号标志。 | +| [AudioSampleAttributes::startThreshold](#startthreshold) | 音频渲染开始阈值。 | +| [AudioSampleAttributes::stopThreshold](#stopthreshold) | 音频渲染停止阈值。 | +| [AudioSampleAttributes::silenceThreshold](#silencethreshold) | 音频捕获缓冲区阈值。 | +| [AudioSampleAttributes::streamId](#streamid-12) | 渲染或捕获的音频标识符。 | +| [AudioTimeStamp::tvSec](#tvsec) | tvSec时间,单位:秒。 | +| [AudioTimeStamp::tvNSec](#tvnsec) | tvNSec时间,单位:纳秒。 | +| [AudioSubPortCapability::portId](#portid-34) | 子端口ID。 | +| [AudioSubPortCapability::desc](#desc-45) | 以字符串命名的子端口。 | +| [AudioSubPortCapability::mask](#mask) | 数据透传模式。 | +| [AudioPortCapability::deviceType](#devicetype) | 设备输出、输入类型。 | +| [AudioPortCapability::deviceId](#deviceid) | 绑定(bind)设备ID,唯一的设备识别符。 | +| [AudioPortCapability::hardwareMode](#hardwaremode) | 是否支持设备绑定处理。 | +| [AudioPortCapability::formatNum](#formatnum) | 支持的音频格式数目。 | +| [AudioPortCapability::formats](#formats) | 支持的音频格式。 | +| [AudioPortCapability::sampleRateMasks](#sampleratemasks) | 支持的音频采样频率(8k、16k、32k、48k)。 | +| [AudioPortCapability::channelMasks](#channelmasks) | 设备的声道布局掩码(mask)。 | +| [AudioPortCapability::channelCount](#channelcount-22) | 支持的最大声道总数。 | +| [AudioPortCapability::subPortsNum](#subportsnum) | 支持的子端口数目(仅用于输出设备)。 | +| [AudioPortCapability::subPorts](#subports) | 支持的子端口列表。 | +| [AudioPortCapability::supportSampleFormatNum](#supportsampleformatnum) | 支持的音频样本格式数量。 | +| [AudioPortCapability::supportSampleFormats](#supportsampleformats) | 支持的音频样本格式。 | +| [AudioMmapBufferDescripter::memoryAddress](#memoryaddress) | 指向mmap缓冲区的指针。 | +| [AudioMmapBufferDescripter::memoryFd](#memoryfd) | mmap缓冲区的文件描述符。 | +| [AudioMmapBufferDescripter::totalBufferFrames](#totalbufferframes) | 缓冲区总大小,单位:帧。 | +| [AudioMmapBufferDescripter::transferFrameSize](#transferframesize) | 传输大小,单位:帧。 | +| [AudioMmapBufferDescripter::isShareable](#isshareable) | mmap缓冲区是否可以在进程间共享。 | +| [AudioDevExtInfo::moduleId](#moduleid-12) | 音频流绑定的模块ID。 | +| [AudioDevExtInfo::type](#type-23) | 音频端口上的PIN脚(输出、输入)。 | +| [AudioDevExtInfo::desc](#desc-55) | 地址描述。 | +| [AudioMixExtInfo::moduleId](#moduleid-22) | 流所属模块标识符。 | +| [AudioMixExtInfo::streamId](#streamid-22) | 由调用者传递的Render或Capture标识符。 | +| [AudioSessionExtInfo::sessionType](#sessiontype) | 音频会话类型。 | +| [AudioRouteNode::portId](#portid-44) | 音频端口ID。 | +| [AudioRouteNode::role](#role) | 指定端口角色为sink或source。 | +| [AudioRouteNode::type](#type-33) | 指定端口类型。 | +| [AudioRouteNode::device](#device) | 设备特定信息。 | +| [AudioRouteNode::mix](#mix) | 音轨特定信息。 | +| [AudioRouteNode::session](#session) | 会话特定信息。 | +| [AudioRoute::sourcesNum](#sourcesnum) | 发送端节点数量。 | +| [AudioRoute::sources](#sources) | 发送端列表。 | +| [AudioRoute::sinksNum](#sinksnum) | 接受端节点数量。 | +| [AudioRoute::sinks](#sinks) | 接受端列表。 | + + +## **详细描述** + +Audio模块接口定义。 + +音频接口涉及自定义类型、驱动加载接口、驱动适配器接口、音频播放(render)接口、音频录音(capture)接口等。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **类型定义说明** + + +### RenderCallback + + +``` +typedef int32_t(* RenderCallback) (enum AudioCallbackType, void *reserved, void *cookie) +``` + +**描述:** + +回调函数指针 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| AudioCallbackType | 回调函数响应类型 | +| reserved | 保留字段 | +| cookie | 用于传递数据 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +RegCallback + + +## **枚举类型说明** + + +### AudioCallbackType + + +``` +enum AudioCallbackType +``` + +**描述:** + +回调函数通知事件类型 + + | 枚举值 | 描述 | +| -------- | -------- | +| AUDIO_NONBLOCK_WRITE_COMPELETED | 非阻塞式写完成 | +| AUDIO_DRAIN_COMPELETED | DrainBuffer完成 | +| AUDIO_FLUSH_COMPLETED | Flush完成 | +| AUDIO_RENDER_FULL | Render缓冲区已满 | +| AUDIO_ERROR_OCCUR | 发生了错误 | + + +### AudioCategory + + +``` +enum AudioCategory +``` + +**描述:** + +音频类型(category) + + | 枚举值 | 描述 | +| -------- | -------- | +| AUDIO_IN_MEDIA | 媒体 | +| AUDIO_IN_COMMUNICATION | 通信 | +| AUDIO_IN_RINGTONE | 铃声 | +| AUDIO_IN_CALL | 呼叫 | + + +### AudioChannelMask + + +``` +enum AudioChannelMask +``` + +**描述:** + +音频通道掩码(mask) + +定义音频声道的位置 + + | 枚举值 | 描述 | +| -------- | -------- | +| AUDIO_CHANNEL_FRONT_LEFT | 声道布局前左 | +| AUDIO_CHANNEL_FRONT_RIGHT | 声道布局前右 | +| AUDIO_CHANNEL_MONO | 单声道 | +| AUDIO_CHANNEL_STEREO | 立体声,由左右声道组成(FRONT_LEFT \| FRONT_RIGHT) | + + +### AudioChannelMode + + +``` +enum AudioChannelMode +``` + +**描述:** + +音频播放的通道模式 + +> ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:** +> 下面的模式是针对双通道立体声的音频播放而设置,其他不支持。 + + | 枚举值 | 描述 | +| -------- | -------- | +| AUDIO_CHANNEL_NORMAL | 正常模式,不做处理 | +| AUDIO_CHANNEL_BOTH_LEFT | 两个声道全部为左声道声音 | +| AUDIO_CHANNEL_BOTH_RIGHT | 两个声道全部为右声道声音 | +| AUDIO_CHANNEL_EXCHANGE | 左右声道数据互换,左声道为右声道声音,右声道为左声道声音 | +| AUDIO_CHANNEL_MIX | 左右两个声道输出为左右声道相加(混音) | +| AUDIO_CHANNEL_LEFT_MUTE | 左声道静音,右声道播放原右声道声音 | +| AUDIO_CHANNEL_RIGHT_MUTE | 右声道静音,左声道播放原左声道声音 | +| AUDIO_CHANNEL_BOTH_MUTE | 左右声道均静音 | + + +### AudioDrainNotifyType + + +``` +enum AudioDrainNotifyType +``` + +**描述:** + +DrainBuffer函数结束类型 + + | 枚举值 | 描述 | +| -------- | -------- | +| AUDIO_DRAIN_NORMAL_MODE | DrainBuffer在所有数据播放结束后返回 | +| AUDIO_DRAIN_EARLY_MODE | DrainBuffer()在当前曲目的所有数据播放完之前返回,以便留出时间给音频服务做连续性曲目切换 | + + +### AudioFormat + + +``` +enum AudioFormat +``` + +**描述:** + +音频格式 + + | 枚举值 | 描述 | +| -------- | -------- | +| AUDIO_FORMAT_PCM_8_BIT | 8bit位宽pcm格式 | +| AUDIO_FORMAT_PCM_16_BIT | 16bit位宽pcm格式 | +| AUDIO_FORMAT_PCM_24_BIT | 24bit位宽pcm格式 | +| AUDIO_FORMAT_PCM_32_BIT | 32bit位宽pcm格式 | +| AUDIO_FORMAT_AAC_MAIN | AAC MAIN格式 | +| AUDIO_FORMAT_AAC_LC | AAC LC格式 | +| AUDIO_FORMAT_AAC_LD | AAC LD格式 | +| AUDIO_FORMAT_AAC_ELD | AAC ELD格式 | +| AUDIO_FORMAT_AAC_HE_V1 | AAC HE_V1格式 | +| AUDIO_FORMAT_AAC_HE_V2 | AAC HE_V2格式 | +| AUDIO_FORMAT_G711A | G711A格式 | +| AUDIO_FORMAT_G711U | G711u格式 | +| AUDIO_FORMAT_G726 | G726格式 | + + +### AudioPortDirection + + +``` +enum AudioPortDirection +``` + +**描述:** + +音频端口的类型 + + | 枚举值 | 描述 | +| -------- | -------- | +| PORT_OUT | 音频输出端口。 | +| PORT_IN | 音频输入端口。 | +| PORT_OUT_IN | 音频输出/入端口,同时支持输出和输入能力(OUT \| IN)。 | + + +### AudioPortPassthroughMode + + +``` +enum AudioPortPassthroughMode +``` + +**描述:** + +音频端口的数据透传模式 + + | 枚举值 | 描述 | +| -------- | -------- | +| PORT_PASSTHROUGH_LPCM | 立体声pcm | +| PORT_PASSTHROUGH_RAW | HDMI透传 | +| PORT_PASSTHROUGH_HBR2LBR | 蓝光次世代音频降规格输出 | +| PORT_PASSTHROUGH_AUTO | 根据HDMI EDID能力自动匹配 | + + +### AudioPortPin + + +``` +enum AudioPortPin +``` + +**描述:** + +音频适配器端口的PIN脚 + + | 枚举值 | 描述 | +| -------- | -------- | +| PIN_NONE | 无效PIN | +| PIN_OUT_SPEAKER | 喇叭输出 | +| PIN_OUT_HEADSET | 有线耳机输出 | +| PIN_OUT_LINEOUT | Lineout输出 | +| PIN_OUT_HDMI | HDMI输出 | +| PIN_OUT_USB | USB设备输出 | +| PIN_OUT_USB_EXT | 扩展 USB 设备输出 | +| PIN_IN_MIC | Mic输入 | +| PIN_IN_HS_MIC | 有线耳机Mic输入 | +| PIN_IN_LINEIN | Linein输入 | +| PIN_IN_USB_EXT | 扩展 USB 设备输入 | + + +### AudioPortRole + + +``` +enum AudioPortRole +``` + +**描述:** + +音频端口角色 + + | 枚举值 | 描述 | +| -------- | -------- | +| AUDIO_PORT_UNASSIGNED_ROLE | 未指定端口角色 | +| AUDIO_PORT_SOURCE_ROLE | 指定端口为发送端角色 | +| AUDIO_PORT_SINK_ROLE | 指定端口为接受端角色 | + + +### AudioPortType + + +``` +enum AudioPortType +``` + +**描述:** + +音频端口类型。 + + | 枚举值 | 描述 | +| -------- | -------- | +| AUDIO_PORT_UNASSIGNED_TYPE | 未指定端口类型 | +| AUDIO_PORT_DEVICE_TYPE | 指定端口为设备类型 | +| AUDIO_PORT_MIX_TYPE | 指定端口类型为复合类型 | +| AUDIO_PORT_SESSION_TYPE | 指定端口为会话类型 | + + +### AudioSampleFormat + + +``` +enum AudioSampleFormat +``` + +**描述:** + +原始音频样本格式 + + | 枚举值 | 描述 | +| -------- | -------- | +| AUDIO_SAMPLE_FORMAT_S8 | 8bit位宽有符号交织样本 | +| AUDIO_SAMPLE_FORMAT_S8P | 8bit位宽有符号非交织样本 | +| AUDIO_SAMPLE_FORMAT_U8 | 8bit位宽无符号交织样本 | +| AUDIO_SAMPLE_FORMAT_U8P | 8bit位宽无符号非交织样本 | +| AUDIO_SAMPLE_FORMAT_S16 | 16bit位宽有符号交织样本 | +| AUDIO_SAMPLE_FORMAT_S16P | 16bit位宽有符号非交织样本 | +| AUDIO_SAMPLE_FORMAT_U16 | 16bit位宽无符号交织样本 | +| AUDIO_SAMPLE_FORMAT_U16P | 16bit位宽无符号非交织样本 | +| AUDIO_SAMPLE_FORMAT_S24 | 24bit位宽有符号交织样本 | +| AUDIO_SAMPLE_FORMAT_S24P | 24bit位宽有符号非交织样本 | +| AUDIO_SAMPLE_FORMAT_U24 | 24bit位宽无符号交织样本 | +| AUDIO_SAMPLE_FORMAT_U24P | 24bit位宽无符号非交织样本 | +| AUDIO_SAMPLE_FORMAT_S32 | 32bit位宽有符号交织样本 | +| AUDIO_SAMPLE_FORMAT_S32P | 32bit位宽有符号非交织样本 | +| AUDIO_SAMPLE_FORMAT_U32 | 32bit位宽无符号交织样本 | +| AUDIO_SAMPLE_FORMAT_U32P | 32bit位宽无符号非交织样本 | +| AUDIO_SAMPLE_FORMAT_S64 | 64bit位宽有符号交织样本 | +| AUDIO_SAMPLE_FORMAT_S64P | 64bit位宽有符号非交织样本 | +| AUDIO_SAMPLE_FORMAT_U64 | 64bit位宽无符号交织样本 | +| AUDIO_SAMPLE_FORMAT_U64P | 64bit位宽无符号非交织样本 | +| AUDIO_SAMPLE_FORMAT_F32 | 32bit位宽浮点型交织样本 | +| AUDIO_SAMPLE_FORMAT_F32P | 64bit位宽浮点型非交织样本 | +| AUDIO_SAMPLE_FORMAT_F64 | 64bit位宽双精度浮点型交织样本 | +| AUDIO_SAMPLE_FORMAT_F64P | 64bit位宽双精度浮点型非交织样本 | +| AUDIO_SAMPLE_FMT_U8 | 无符号8位整型,打包格式 | +| AUDIO_SAMPLE_FMT_S16 | 带符号16位整型,打包格式 | +| AUDIO_SAMPLE_FMT_S32 | 带符号32位整型,打包格式 | +| AUDIO_SAMPLE_FMT_FLOAT | 浮点型,打包格式 | +| AUDIO_SAMPLE_FMT_DOUBLE | 双精度浮点型,打包格式 | +| AUDIO_SAMPLE_FMT_U8P | 无符号8位整型,平面格式 | +| AUDIO_SAMPLE_FMT_S16P | 带符号16位整型,平面格式 | +| AUDIO_SAMPLE_FMT_S32P | 带符号32位整型,平面格式 | +| AUDIO_SAMPLE_FMT_FLOATP | 浮点型,平面格式 | +| AUDIO_SAMPLE_FMT_DOUBLEP | 双精度浮点型,平面格式 | +| AUDIO_SAMPLE_FMT_INVALID | 无效采样格式 | + + +### AudioSampleRatesMask + + +``` +enum AudioSampleRatesMask +``` + +**描述:** + +音频采样频率MASK + + | 枚举值 | 描述 | +| -------- | -------- | +| AUDIO_SAMPLE_RATE_MASK_8000 | 8K 采样频率 | +| AUDIO_SAMPLE_RATE_MASK_12000 | 12K 采样频率 | +| AUDIO_SAMPLE_RATE_MASK_11025 | 11.025K 采样频率 | +| AUDIO_SAMPLE_RATE_MASK_16000 | 16K 采样频率 | +| AUDIO_SAMPLE_RATE_MASK_22050 | 22.050K 采样频率 | +| AUDIO_SAMPLE_RATE_MASK_24000 | 24K 采样频率 | +| AUDIO_SAMPLE_RATE_MASK_32000 | 32K 采样频率 | +| AUDIO_SAMPLE_RATE_MASK_44100 | 44.1K 采样频率 | +| AUDIO_SAMPLE_RATE_MASK_48000 | 48K 采样频率 | +| AUDIO_SAMPLE_RATE_MASK_64000 | 64K 采样频率 | +| AUDIO_SAMPLE_RATE_MASK_96000 | 96K 采样频率 | +| AUDIO_SAMPLE_RATE_MASK_INVALID | 无效的采样频率 | + + +### AudioSessionType + + +``` +enum AudioSessionType +``` + +**描述:** + +端口会话类型 + + | 枚举值 | 描述 | +| -------- | -------- | +| AUDIO_OUTPUT_STAGE_SESSION | 会话绑定到指定输出流 | +| AUDIO_OUTPUT_MIX_SESSION | 会话绑定到特定音轨 | +| AUDIO_ALLOCATE_SESSION | 会话ID需重新申请 | +| AUDIO_INVALID_SESSION | 无效会话类型 | + + +## **函数说明** + + +### GetAudioManagerFuncs() + + +``` +struct AudioManager* GetAudioManagerFuncs (void ) +``` + +**描述:** + +获取音频适配器管理接口的操作函数列表,详情参考[AudioManager](_audio_manager.md)。 + +**返回:** + +成功返回一个音频适配器管理接口的对象,失败返回NULL。 + + +## **变量说明** + + +### adapterName + + +``` +const char* AudioAdapterDescriptor::adapterName +``` + +**描述:** + +音频适配器的名称。 + + +### channelCount [1/2] + + +``` +uint32_t AudioSampleAttributes::channelCount +``` + +**描述:** + +音频通道数目,如单通道(mono)为1、立体声(stereo)为2。 + + +### channelCount [2/2] + + +``` +unsigned int AudioPortCapability::channelCount +``` + +**描述:** + +支持的最大声道总数。 + + +### channelMasks + + +``` +enum AudioChannelMask AudioPortCapability::channelMasks +``` + +**描述:** + +设备的声道布局掩码(mask),详情参考[AudioChannelMask](#audiochannelmask)。 + + +### desc [1/5] + + +``` +const char* AudioDeviceDescriptor::desc +``` + +**描述:** + +以字符串命名的音频设备。 + + +### desc [2/5] + + +``` +struct AudioDeviceDescriptor AudioSceneDescriptor::desc +``` + +**描述:** + +音频设备描述符。 + + +### desc [3/5] + + +``` +const char* AudioSceneDescriptor::SceneDesc::desc +``` + +**描述:** + +以字符串命名的音频场景。 + + +### desc [4/5] + + +``` +const char* AudioSubPortCapability::desc +``` + +**描述:** + +以字符串命名的子端口。 + + +### desc [5/5] + + +``` +const char* AudioDevExtInfo::desc +``` + +**描述:** + +地址描述。 + + +### deviceId + + +``` +unsigned int AudioPortCapability::deviceId +``` + +**描述:** + +绑定(bind)设备ID,唯一的设备识别符。 + + +### deviceType + + +``` +unsigned int AudioPortCapability::deviceType +``` + +**描述:** + +设备输出、输入类型。 + + +### dir + + +``` +enum AudioPortDirection AudioPort::dir +``` + +**描述:** + +音频端口的类型,详情参考[AudioPortDirection](#audioportdirection)。 + + +### format + + +``` +enum AudioFormat AudioSampleAttributes::format +``` + +**描述:** + +音频数据格式,详情参考[AudioFormat](#audioformat)。 + + +### formatNum + + +``` +unsigned int AudioPortCapability::formatNum +``` + +**描述:** + +支持的音频格式数目。 + + +### formats + + +``` +enum AudioFormat* AudioPortCapability::formats +``` + +**描述:** + +支持的音频格式,详情参考[AudioFormat](#audioformat)。 + + +### frameSize + + +``` +uint32_t AudioSampleAttributes::frameSize +``` + +**描述:** + +音频数据的帧大小。 + + +### hardwareMode + + +``` +bool AudioPortCapability::hardwareMode +``` + +**描述:** + +是否支持设备绑定处理。 + + +### id + + +``` +unsigned int AudioSceneDescriptor::SceneDesc::id +``` + +**描述:** + +音频场景的ID。 + + +### interleaved + + +``` +bool AudioSampleAttributes::interleaved +``` + +**描述:** + +音频数据交织的标记。 + + +### isBigEndian + + +``` +bool AudioSampleAttributes::isBigEndian +``` + +**描述:** + +音频数据的大端标志。 + + +### isShareable + + +``` +int32_t AudioMmapBufferDescripter::isShareable +``` + +**描述:** + +mmap缓冲区是否可以在进程间共享。 + + +### isSignedData + + +``` +bool AudioSampleAttributes::isSignedData +``` + +**描述:** + +音频数据的有符号或无符号标志 + + +### mask + + +``` +enum AudioPortPassthroughMode AudioSubPortCapability::mask +``` + +**描述:** + +数据透传模式,详情参考[AudioPortPassthroughMode](#audioportpassthroughmode)。 + + +### memoryAddress + + +``` +void* AudioMmapBufferDescripter::memoryAddress +``` + +**描述:** + +指向mmap缓冲区的指针。 + + +### memoryFd + + +``` +int32_t AudioMmapBufferDescripter::memoryFd +``` + +**描述:** + +mmap缓冲区的文件描述符。 + + +### moduleId [1/2] + + +``` +int32_t AudioDevExtInfo::moduleId +``` + +**描述:** + +音频流绑定的模块ID。 + + +### moduleId [2/2] + + +``` +int32_t AudioMixExtInfo::moduleId +``` + +**描述:** + +流所属模块标识符。 + + +### period + + +``` +uint32_t AudioSampleAttributes::period +``` + +**描述:** + +音频采样周期。 + + +### pins + + +``` +enum AudioPortPin AudioDeviceDescriptor::pins +``` + +**描述:** + +音频端口上的PIN脚(输出、输入),详情参考[AudioPortPin](#audioportpin)。 + + +### portId [1/4] + + +``` +unsigned int AudioPort::portId +``` + +**描述:** + +音频端口的ID。 + + +### portId [2/4] + + +``` +unsigned int AudioDeviceDescriptor::portId +``` + +**描述:** + +音频端口ID。 + + +### portId [3/4] + + +``` +unsigned int AudioSubPortCapability::portId +``` + +**描述:** + +子端口ID。 + + +### portId [4/4] + + +``` +int32_t AudioRouteNode::portId +``` + +**描述:** + +音频端口ID。 + + +### portName + + +``` +const char* AudioPort::portName +``` + +**描述:** + +音频端口的名称。 + + +### portNum + + +``` +unsigned int AudioAdapterDescriptor::portNum +``` + +**描述:** + +一个音频适配器支持的端口数目。 + + +### ports + + +``` +struct AudioPort* AudioAdapterDescriptor::ports +``` + +**描述:** + +一个音频适配器支持的端口列表。 + + +### role + + +``` +enum AudioPortRole AudioRouteNode::role +``` + +**描述:** + +指定端口角色为sink或source。 + + +### sampleRate + + +``` +unsigned int AudioSampleAttributes::sampleRate +``` + +**描述:** + +音频采样频率。 + + +### sampleRateMasks + + +``` +unsigned int AudioPortCapability::sampleRateMasks +``` + +**描述:** + +支持的音频采样频率(8k、16k、32k、48k)。 + + +### scene + + +``` +union AudioSceneDescriptor::SceneDesc AudioSceneDescriptor::scene +``` + +**描述:** + +音频场景的名称。 + + +### sessionType + + +``` +enum AudioSessionType AudioSessionExtInfo::sessionType +``` + +**描述:** + +音频会话类型。 + + +### silenceThreshold + + +``` +uint32_t AudioSampleAttributes::silenceThreshold +``` + +**描述:** + +音频捕获缓冲区阈值。 + + +### sinks + + +``` +const struct AudioRouteNode* AudioRoute::sinks +``` + +**描述:** + +接受端列表。 + + +### sinksNum + + +``` +uint32_t AudioRoute::sinksNum +``` + +**描述:** + +接受端节点数量。 + + +### sources + + +``` +const struct AudioRouteNode* AudioRoute::sources +``` + +**描述:** + +发送端列表。 + + +### sourcesNum + + +``` +uint32_t AudioRoute::sourcesNum +``` + +**描述:** + +发送端节点数量。 + + +### startThreshold + + +``` +uint32_t AudioSampleAttributes::startThreshold +``` + +**描述:** + +音频渲染开始阈值。 + + +### stopThreshold + + +``` +uint32_t AudioSampleAttributes::stopThreshold +``` + +**描述:** + +音频渲染停止阈值。 + + +### streamId [1/2] + + +``` +int32_t AudioSampleAttributes::streamId +``` + +**描述:** + +渲染或捕获的音频标识符。 + + +### streamId [2/2] + + +``` +int32_t AudioMixExtInfo::streamId +``` + +**描述:** + +由调用者传递的Render或Capture标识符。 + + +### subPorts + + +``` +struct AudioSubPortCapability* AudioPortCapability::subPorts +``` + +**描述:** + +支持的子端口列表。 + + +### subPortsNum + + +``` +unsigned int AudioPortCapability::subPortsNum +``` + +**描述:** + +支持的子端口数目(仅用于输出设备)。 + + +### supportSampleFormatNum + + +``` +uint32_t AudioPortCapability::supportSampleFormatNum +``` + +**描述:** + +支持的音频样本格式数量。 + + +### supportSampleFormats + + +``` +enum AudioSampleFormat* AudioPortCapability::supportSampleFormats +``` + +**描述:** + +支持的音频样本格式,详请参考[AudioSampleFormat](_codec.md#audiosampleformat)。 + + +### totalBufferFrames + + +``` +int32_t AudioMmapBufferDescripter::totalBufferFrames +``` + +**描述:** + +缓冲区总大小,单位:帧。 + + +### transferFrameSize + + +``` +int32_t AudioMmapBufferDescripter::transferFrameSize +``` + +**描述:** + +传输大小,单位:帧。 + + +### tvNSec + + +``` +int64_t AudioTimeStamp::tvNSec +``` + +**描述:** + +tvNSec时间,单位:纳秒。 + + +### tvSec + + +``` +int64_t AudioTimeStamp::tvSec +``` + +**描述:** + +tvSec时间,单位:秒。 + + +### type [1/3] + + +``` +enum AudioCategory AudioSampleAttributes::type +``` + +**描述:** + +音频类型,详情参考[AudioCategory](#audiocategory)。 + + +### type [2/3] + + +``` +enum AudioPortPin AudioDevExtInfo::type +``` + +**描述:** + +音频端口上的PIN脚(输出、输入),详情参考[AudioPortPin](#audioportpin)。 + + +### type [3/3] + + +``` +enum AudioPortType AudioRouteNode::type +``` + +**描述:** + +指定端口类型。 + + +### device + + +``` + struct AudioDevExtInfo AudioRouteNode::device +``` + +**描述:** + +设备特定信息。 + + +### mix + + +``` + struct AudioMixExtInfo AudioRouteNode::mix +``` + +**描述:** + +音轨特定信息。 + + +### session + + +``` + struct AudioSessionExtInfo AudioRouteNode::session +``` + +**描述:** + +会话特定信息。 diff --git a/zh-cn/device-dev/api/_audio_adapter.md b/zh-cn/device-dev/api/_audio_adapter.md new file mode 100644 index 0000000000..93cfd84b00 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_adapter.md @@ -0,0 +1,326 @@ +# AudioAdapter + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [InitAllPorts](#initallports) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref241992660083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter) | 初始化一个音频适配器所有的端口驱动 [更多...](#initallports) | +| ( [CreateRender](#createrender) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref1249519733083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, const struct [AudioDeviceDescriptor](_audio_device_descriptor.md) \*desc, const struct [AudioSampleAttributes](_audio_sample_attributes.md) \*attrs, struct [AudioRender](_audio_render.md) \*\*render) | 创建一个音频播放(render)接口的对象 [更多...](#createrender) | +| ( [DestroyRender](#destroyrender) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref194522153083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, struct [AudioRender](_audio_render.md) \*render) | 销毁一个音频播放(render)接口的对象 [更多...](#destroyrender) | +| ( [CreateCapture](#createcapture) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref933286157083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, const struct [AudioDeviceDescriptor](_audio_device_descriptor.md) \*desc, const struct [AudioSampleAttributes](_audio_sample_attributes.md) \*attrs, struct [AudioCapture](_audio_capture.md) \*\*capture) | 创建一个音频录音(capture)接口的对象 [更多...](#createcapture) | +| ( [DestroyCapture](#destroycapture) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref145884804083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, struct [AudioCapture](_audio_capture.md) \*capture) | 销毁一个音频录音(capture)接口的对象 [更多...](#destroycapture) | +| ( [GetPortCapability](#getportcapability) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref974312331083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, struct [AudioPort](_audio_port.md) \*port, struct [AudioPortCapability](_audio_port_capability.md) \*capability) | 获取一个音频适配器的端口驱动的能力集 [更多...](#getportcapability) | +| ( [SetPassthroughMode](#setpassthroughmode) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref1432990851083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, struct [AudioPort](_audio_port.md) \*port, enum [AudioPortPassthroughMode](_audio.md#audioportpassthroughmode) mode) | 设置音频端口驱动的数据透传模式 [更多...](#setpassthroughmode) | +| ( [GetPassthroughMode](#getpassthroughmode) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref883432727083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, struct [AudioPort](_audio_port.md) \*port, enum [AudioPortPassthroughMode](_audio.md#audioportpassthroughmode) \*mode) | 获取音频端口驱动的数据透传模式 [更多...](#getpassthroughmode) | +| ( [UpdateAudioRoute](#updateaudioroute) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref362795572083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, const struct [AudioRoute](_audio_route.md) \*route, int32_t \*routeHandle) | 更新一个或多个发送端和接受端之间的路由 [更多...](#updateaudioroute) | +| ( [ReleaseAudioRoute](#releaseaudioroute) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref410918381083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, int32_t routeHandle) | 释放一个音频路由. [更多...](#releaseaudioroute) | + + +## **详细描述** + +AudioAdapter音频适配器接口 + +提供音频适配器(声卡)对外支持的驱动能力,包括初始化端口、创建render、创建capture、获取端口能力集等 + +**参见:** + +[AudioRender](_audio_render.md) + +[AudioCapture](_audio_capture.md) + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### CreateCapture + + +``` +int32_t(* AudioAdapter::CreateCapture) (struct AudioAdapter *adapter, const struct AudioDeviceDescriptor *desc, const struct AudioSampleAttributes *attrs, struct AudioCapture **capture) +``` + +**描述:** + +创建一个音频录音(capture)接口的对象 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| adapter | 待操作的音频适配器的指针 | +| desc | 指向要启动的音频适配器的描述符的指针 | +| attrs | 指向要打开的音频采样属性的指针 | +| capture | 指向AudioCapture对象的二级指针 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetPortCapability](#getportcapability) + +[DestroyCapture](#destroycapture) + + +### CreateRender + + +``` +int32_t(* AudioAdapter::CreateRender) (struct AudioAdapter *adapter, const struct AudioDeviceDescriptor *desc, const struct AudioSampleAttributes *attrs, struct AudioRender **render) +``` + +**描述:** + +创建一个音频播放(render)接口的对象 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| adapter | 待操作的音频适配器对象 | +| desc | 待打开的音频设备描述符 | +| attrs | 待打开的音频采样属性 | +| render | 获取的音频播放接口的对象实例保存到render中 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetPortCapability](#getportcapability) + +[DestroyRender](#destroyrender) + + +### DestroyCapture + + +``` +int32_t(* AudioAdapter::DestroyCapture) (struct AudioAdapter *adapter, struct AudioCapture *capture) +``` + +**描述:** + +销毁一个音频录音(capture)接口的对象 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| adapter | 待操作的音频适配器对象 | +| capture | 待操作的音频录音接口对象 | + +**注意:** + +在音频录音过程中,不能销毁该接口对象 + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[CreateCapture](#createcapture) + + +### DestroyRender + + +``` +int32_t(* AudioAdapter::DestroyRender) (struct AudioAdapter *adapter, struct AudioRender *render) +``` + +**描述:** + +销毁一个音频播放(render)接口的对象 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| adapter | 待操作的音频适配器对象 | +| render | 待操作的音频播放接口对象 | + +**注意:** + +在音频播放过程中,不能销毁该接口对象 + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[CreateRender](#createrender) + + +### GetPassthroughMode + + +``` +int(* AudioAdapter::GetPassthroughMode) (struct AudioAdapter *adapter, struct AudioPort *port, enum AudioPortPassthroughMode *mode) +``` + +**描述:** + +获取音频端口驱动的数据透传模式 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| adapter | 待操作的音频适配器对象 | +| port | 待获取的端口 | +| mode | 获取的传输模式保存到mode中 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[SetPassthroughMode](#setpassthroughmode) + + +### GetPortCapability + + +``` +int(* AudioAdapter::GetPortCapability) (struct AudioAdapter *adapter, struct AudioPort *port, struct AudioPortCapability *capability) +``` + +**描述:** + +获取一个音频适配器的端口驱动的能力集 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| adapter | 待操作的音频适配器对象 | +| port | 待获取的端口 | +| capability | 获取的端口能力保存到capability中 | + +**返回:** + +成功返回值0,失败返回负值 + + +### InitAllPorts + + +``` +int(* AudioAdapter::InitAllPorts) (struct AudioAdapter *adapter) +``` + +**描述:** + +初始化一个音频适配器所有的端口驱动 + +在音频服务中,调用其他驱动接口前需要首先调用该接口检查端口是否已经初始化完成,如果端口驱动初始化完成,则函数返回值0, 否则返回负值,如果端口没有初始化完成,则需要等待一段时间(例如100ms)后重新进行检查,直到端口初始化完成后再继续操作 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| adapter | 待操作的音频适配器对象 | + +**返回:** + +成功返回值0,失败返回负值 + + +### ReleaseAudioRoute + + +``` +int32_t(* AudioAdapter::ReleaseAudioRoute) (struct AudioAdapter *adapter, int32_t routeHandle) +``` + +**描述:** + +释放一个音频路由. + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| adapter | 待操作的音频适配器对象 | +| routeHandle | 待释放的路由句柄. | + +**返回:** + +成功返回值0,失败返回负值 + + +### SetPassthroughMode + + +``` +int(* AudioAdapter::SetPassthroughMode) (struct AudioAdapter *adapter, struct AudioPort *port, enum AudioPortPassthroughMode mode) +``` + +**描述:** + +设置音频端口驱动的数据透传模式 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| adapter | 待操作的音频适配器对象 | +| port | 待设置的端口 | +| mode | 待设置的传输模式 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetPassthroughMode](#getpassthroughmode) + + +### UpdateAudioRoute + + +``` +int32_t(* AudioAdapter::UpdateAudioRoute) (struct AudioAdapter *adapter, const struct AudioRoute *route, int32_t *routeHandle) +``` + +**描述:** + +更新一个或多个发送端和接受端之间的路由 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| adapter | 待操作的音频适配器对象 | +| route | 路由信息 | +| routeHandle | 生成的路由句柄 | + +**返回:** + +成功返回值0,失败返回负值 diff --git a/zh-cn/device-dev/api/_audio_adapter_descriptor.md b/zh-cn/device-dev/api/_audio_adapter_descriptor.md new file mode 100644 index 0000000000..37968692e3 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_adapter_descriptor.md @@ -0,0 +1,25 @@ +# AudioAdapterDescriptor + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [adapterName](_audio.md#adaptername) | 音频适配器的名称。 | +| [portNum](_audio.md#portnum) | 一个音频适配器支持的端口数目。 | +| [ports](_audio.md#ports) | 一个音频适配器支持的端口列表。 | + + +## **详细描述** + +音频适配器描述符。 diff --git a/zh-cn/device-dev/api/_audio_attribute.md b/zh-cn/device-dev/api/_audio_attribute.md new file mode 100644 index 0000000000..84a9d471c6 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_attribute.md @@ -0,0 +1,263 @@ +# AudioAttribute + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [GetFrameSize](#getframesize) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, uint64_t \*size) | 获取音频帧(frame)的大小 [更多...](#getframesize) | +| ( [GetFrameCount](#getframecount) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, uint64_t \*count) | 获取音频buffer中的音频帧数 [更多...](#getframecount) | +| ( [SetSampleAttributes](#setsampleattributes) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, const struct [AudioSampleAttributes](_audio_sample_attributes.md) \*attrs) | 设置音频采样的属性参数 [更多...](#setsampleattributes) | +| ( [GetSampleAttributes](#getsampleattributes) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, struct [AudioSampleAttributes](_audio_sample_attributes.md) \*attrs) | 获取音频采样的属性参数 [更多...](#getsampleattributes) | +| ( [GetCurrentChannelId](#getcurrentchannelid) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, uint32_t \*channelId) | 获取音频的数据通道ID [更多...](#getcurrentchannelid) | +| ( [SetExtraParams](#setextraparams) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, const char \*keyValueList) | 设置音频拓展参数 [更多...](#setextraparams) | +| ( [GetExtraParams](#getextraparams) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, char \*keyValueList) | 获取音频拓展参数 [更多...](#getextraparams) | +| ( [ReqMmapBuffer](#reqmmapbuffer) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, int32_t reqSize, struct [AudioMmapBufferDescripter](_audio_mmap_buffer_descripter.md) \*desc) | 请求mmap缓冲区 [更多...](#reqmmapbuffer) | +| ( [GetMmapPosition](#getmmapposition) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, uint64_t \*frames, struct [AudioTimeStamp](_audio_time_stamp.md) \*time) | 获取当前mmap的读/写位置 [更多...](#getmmapposition) | + + +## **详细描述** + +AudioAttribute音频属性接口 + +提供音频播放(render)或录音(capture)需要的公共属性驱动能力,包括获取帧(frame)信息、设置采样属性等。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### GetCurrentChannelId + + +``` +int32_t(* AudioAttribute::GetCurrentChannelId) (AudioHandle handle, uint32_t *channelId) +``` + +**描述:** + +获取音频的数据通道ID + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| channelId | 获取的通道ID保存到channelId中 | + +**返回:** + +成功返回值0,失败返回负值 + + +### GetExtraParams + + +``` +int32_t(* AudioAttribute::GetExtraParams) (AudioHandle handle, char *keyValueList) +``` + +**描述:** + +获取音频拓展参数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| keyValueList | 拓展参数键值对字符串列表,格式为key=value,多个键值对通过分号分割 | + +**返回:** + +成功返回值0,失败返回负值。 + + +### GetFrameCount + + +``` +int32_t(* AudioAttribute::GetFrameCount) (AudioHandle handle, uint64_t *count) +``` + +**描述:** + +获取音频buffer中的音频帧数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| count | 一个音频buffer中包含的音频帧数,获取后保存到count中 | + +**返回:** + +成功返回值0,失败返回负值 + + +### GetFrameSize + + +``` +int32_t(* AudioAttribute::GetFrameSize) (AudioHandle handle, uint64_t *size) +``` + +**描述:** + +获取音频帧(frame)的大小 + +获取一帧音频数据的长度(字节数) + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| size | 获取的音频帧大小(字节数)保存到size中 | + +**返回:** + +成功返回值0,失败返回负值 + + +### GetMmapPosition + + +``` +int32_t(* AudioAttribute::GetMmapPosition) (AudioHandle handle, uint64_t *frames, struct AudioTimeStamp *time) +``` + +**描述:** + +获取当前mmap的读/写位置 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| frames | 获取的音频帧计数保存到frames中 | +| time | 获取的关联时间戳保存到time中 | + +**返回:** + +成功返回值0,失败返回负值 + + +### GetSampleAttributes + + +``` +int32_t(* AudioAttribute::GetSampleAttributes) (AudioHandle handle, struct AudioSampleAttributes *attrs) +``` + +**描述:** + +获取音频采样的属性参数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| attrs | 获取的音频采样属性(例如采样频率、采样精度、通道)保存到attrs中 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[SetSampleAttributes](#setsampleattributes) + + +### ReqMmapBuffer + + +``` +int32_t(* AudioAttribute::ReqMmapBuffer) (AudioHandle handle, int32_t reqSize, struct AudioMmapBufferDescripter *desc) +``` + +**描述:** + +请求mmap缓冲区 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| reqSize | 请求缓冲区的大小 | +| desc | 缓冲区描述符 | + +**返回:** + +成功返回值0,失败返回负值 + + +### SetExtraParams + + +``` +int32_t(* AudioAttribute::SetExtraParams) (AudioHandle handle, const char *keyValueList) +``` + +**描述:** + +设置音频拓展参数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| keyValueList | 拓展参数键值对字符串列表,格式为key=value,多个键值对通过分号分割 | + +**返回:** + +成功返回值0,失败返回负值 + + +### SetSampleAttributes + + +``` +int32_t(* AudioAttribute::SetSampleAttributes) (AudioHandle handle, const struct AudioSampleAttributes *attrs) +``` + +**描述:** + +设置音频采样的属性参数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| attrs | 待设置的音频采样属性,例如采样频率、采样精度、通道 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetSampleAttributes](#getsampleattributes) diff --git a/zh-cn/device-dev/api/_audio_capture.md b/zh-cn/device-dev/api/_audio_capture.md new file mode 100644 index 0000000000..3616e2f1a7 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_capture.md @@ -0,0 +1,84 @@ +# AudioCapture + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| control | 音频控制能力接口,详情参考[AudioControl](_audio_control.md) | +| attr | 音频属性能力接口,详情参考[AudioAttribute](_audio_attribute.md) | +| scene | 音频场景能力接口,详情参考[AudioScene](_audio_scene.md) | +| volume | 音频音量能力接口,详情参考[AudioVolume](_audio_volume.md) | +| ( [CaptureFrame](#captureframe) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348293893.xml#xref1398623145083931,link:zh-cn_topic_0000001348293893.xml](zh-cn_topic_0000001348293893.xml) \*capture, void \*frame, uint64_t requestBytes, uint64_t \*replyBytes) | 从音频驱动中录制(capture)一帧输入数据(录音,音频上行数据) [更多...](#captureframe) | +| ( [GetCapturePosition](#getcaptureposition) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348293893.xml#xref599411735083931,link:zh-cn_topic_0000001348293893.xml](zh-cn_topic_0000001348293893.xml) \*capture, uint64_t \*frames, struct [AudioTimeStamp](_audio_time_stamp.md) \*time) | 获取音频输入帧数的上一次计数 [更多...](#getcaptureposition) | + + +## **详细描述** + +AudioCapture音频录音接口。 + + +## **类成员变量说明** + + +### CaptureFrame + + +``` +int32_t(* AudioCapture::CaptureFrame) (struct AudioCapture *capture, void *frame, uint64_t requestBytes, uint64_t *replyBytes) +``` + +**描述:** + +从音频驱动中录制(capture)一帧输入数据(录音,音频上行数据) + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| capture | 待操作的音频录音接口对象 | +| frame | 待存放输入数据的音频frame | +| requestBytes | 待存放输入数据的音频frame大小(字节数) | +| replyBytes | 实际读取到的音频数据长度(字节数),获取后保存到replyBytes中 | + +**返回:** + +成功返回值0,失败返回负值 + + +### GetCapturePosition + + +``` +int32_t(* AudioCapture::GetCapturePosition) (struct AudioCapture *capture, uint64_t *frames, struct AudioTimeStamp *time) +``` + +**描述:** + +获取音频输入帧数的上一次计数 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| capture | 待操作的音频录音接口对象 | +| frames | 获取的音频帧计数保存到frames中 | +| time | 获取的关联时间戳保存到time中 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[CaptureFrame](#captureframe) diff --git a/zh-cn/device-dev/api/_audio_control.md b/zh-cn/device-dev/api/_audio_control.md new file mode 100644 index 0000000000..1d4d71c6d8 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_control.md @@ -0,0 +1,214 @@ +# AudioControl + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [Start](#start) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle) | 启动一个音频播放(render)或录音(capture)处理 [更多...](#start) | +| ( [Stop](#stop) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle) | 停止一个音频播放(render)或录音(capture)处理 [更多...](#stop) | +| ( [Pause](#pause) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle) | 暂停一个音频播放(render)或录音(capture)处理 [更多...](#pause) | +| ( [Resume](#resume) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle) | 恢复一个音频播放(render)或录音(capture)处理 [更多...](#resume) | +| ( [Flush](#flush) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle) | 刷新音频缓冲区buffer中的数据 [更多...](#flush) | +| ( [TurnStandbyMode](#turnstandbymode) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle) | 设置或去设置设备的待机模式 [更多...](#turnstandbymode) | +| ( [AudioDevDump](#audiodevdump) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, int32_t range, int32_t fd) | Dump音频设备信息 [更多...](#audiodevdump) | + + +## **详细描述** + +AudioControl音频控制接口。 + +提供音频播放(render)或录音(capture)需要的公共控制驱动能力,包括Start、Stop、Pause、Resume、Flush等。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### AudioDevDump + + +``` +int32_t(* AudioControl::AudioDevDump) (AudioHandle handle, int32_t range, int32_t fd) +``` + +**描述:** + +Dump音频设备信息 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| range | Dump信息范围,分为简要信息、全量信息 | +| fd | 指定Dump目标文件 | + +**返回:** + +成功返回值0,失败返回负值 + + +### Flush + + +``` +int32_t(* AudioControl::Flush) (AudioHandle handle) +``` + +**描述:** + +刷新音频缓冲区buffer中的数据 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | + +**返回:** + +成功返回值0,失败返回负值 + + +### Pause + + +``` +int32_t(* AudioControl::Pause) (AudioHandle handle) +``` + +**描述:** + +暂停一个音频播放(render)或录音(capture)处理 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[Resume](#resume) + + +### Resume + + +``` +int32_t(* AudioControl::Resume) (AudioHandle handle) +``` + +**描述:** + +恢复一个音频播放(render)或录音(capture)处理 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[Pause](#pause) + + +### Start + + +``` +int32_t(* AudioControl::Start) (AudioHandle handle) +``` + +**描述:** + +启动一个音频播放(render)或录音(capture)处理 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[Stop](#stop) + + +### Stop + + +``` +int32_t(* AudioControl::Stop) (AudioHandle handle) +``` + +**描述:** + +停止一个音频播放(render)或录音(capture)处理 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[Start](#start) + + +### TurnStandbyMode + + +``` +int32_t(* AudioControl::TurnStandbyMode) (AudioHandle handle) +``` + +**描述:** + +设置或去设置设备的待机模式 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | + +**返回:** + +设置设备待机模式成功返回值0,再次执行后去设置待机模式成功返回正值,失败返回负值 diff --git a/zh-cn/device-dev/api/_audio_dev_ext_info.md b/zh-cn/device-dev/api/_audio_dev_ext_info.md new file mode 100644 index 0000000000..1a4a421f84 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_dev_ext_info.md @@ -0,0 +1,25 @@ +# AudioDevExtInfo + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [moduleId](_audio.md#moduleid-12) | 音频流绑定的模块ID。 | +| [type](_audio.md#type-23) | 音频端口上的PIN脚(输出、输入),详情参考[AudioPortPin](_audio.md#audioportpin)。 | +| [desc](_audio.md#desc-55) | 地址描述。 | + + +## **详细描述** + +音频设备拓展信息。 diff --git a/zh-cn/device-dev/api/_audio_device_descriptor.md b/zh-cn/device-dev/api/_audio_device_descriptor.md new file mode 100644 index 0000000000..5e10acce99 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_device_descriptor.md @@ -0,0 +1,25 @@ +# AudioDeviceDescriptor + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [portId](_audio.md#portid-24) | 频端口ID。 | +| [pins](_audio.md#pins) | 音频端口上的PIN脚(输出、输入),详情参考[AudioPortPin](_audio.md#audioportpin)。 | +| [desc](_audio.md#desc-15) | 以字符串命名的音频设备。 | + + +## **详细描述** + +音频场景描述符。 diff --git a/zh-cn/device-dev/api/_audio_manager.md b/zh-cn/device-dev/api/_audio_manager.md new file mode 100644 index 0000000000..5bba4066ef --- /dev/null +++ b/zh-cn/device-dev/api/_audio_manager.md @@ -0,0 +1,148 @@ +# AudioManager + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [GetAllAdapters](#getalladapters) )(struct AudioAdapterManager \*manager, struct [AudioAdapterDescriptor](_audio_adapter_descriptor.md) \*\*descs, int \*size) | 获取音频驱动中支持的所有适配器的列表 [更多...](#getalladapters) | +| ( [LoadAdapter](#loadadapter) )(struct AudioAdapterManager \*manager, const struct [AudioAdapterDescriptor](_audio_adapter_descriptor.md) \*desc, struct [AudioAdapter](_audio_adapter.md) \*\*adapter) | 加载一个音频适配器(声卡)的驱动 [更多...](#loadadapter) | +| ( [UnloadAdapter](#unloadadapter) )(struct AudioAdapterManager \*manager, struct [AudioAdapter](_audio_adapter.md) \*adapter) | 卸载音频适配器(声卡)的驱动 [更多...](#unloadadapter) | +| ( [ReleaseAudioManagerObject](#releaseaudiomanagerobject) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413505.xml#xref1843940824083931,link:zh-cn_topic_0000001348413505.xml](zh-cn_topic_0000001348413505.xml) \*object) | 释放音频管理接口对象 [更多...](#releaseaudiomanagerobject) | + + +## **详细描述** + +AudioManager音频适配器管理接口 + +按照音频服务下发的音频适配器(声卡)描述符加载一个具体的音频适配器驱动程序 + +参见: + +[AudioAdapter](_audio_adapter.md) + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### GetAllAdapters + + +``` +int(* AudioManager::GetAllAdapters) (struct AudioAdapterManager *manager, struct AudioAdapterDescriptor **descs, int *size) +``` + +**描述:** + +获取音频驱动中支持的所有适配器的列表 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| manager | 待操作的音频管理接口对象 | +| descs | 获取到的音频适配器列表保存到descs中 | +| size | 获取到的音频适配器列表的长度保存到size中 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[LoadAdapter](#loadadapter) + + +### LoadAdapter + + +``` +int(* AudioManager::LoadAdapter) (struct AudioAdapterManager *manager, const struct AudioAdapterDescriptor *desc, struct AudioAdapter **adapter) +``` + +**描述:** + +加载一个音频适配器(声卡)的驱动 + +加载一个具体的音频驱动,例如usb驱动,在具体实现中可能加载的是一个动态链接库(\*.so) + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| manager | 待操作的音频管理接口对象 | +| desc | 待加载的音频适配器描述符 | +| adapter | 获取的音频适配器接口的对象实例保存到adapter中 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetAllAdapters](#getalladapters) + +[UnloadAdapter](#unloadadapter) + + +### ReleaseAudioManagerObject + + +``` +bool(* AudioManager::ReleaseAudioManagerObject) (struct AudioManager *object) +``` + +**描述:** + +释放音频管理接口对象 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| object | 待操作的音频管理接口对象 | + +**返回:** + +成功返回ture,失败返回false + + +### UnloadAdapter + + +``` +void(* AudioManager::UnloadAdapter) (struct AudioAdapterManager *manager, struct AudioAdapter *adapter) +``` + +**描述:** + +卸载音频适配器(声卡)的驱动 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| manager | 待操作的音频管理接口对象 | +| adapter | 待卸载的音频适配器接口的对象 | + +**参见:** + +[LoadAdapter](#loadadapter) diff --git a/zh-cn/device-dev/api/_audio_mix_ext_info.md b/zh-cn/device-dev/api/_audio_mix_ext_info.md new file mode 100644 index 0000000000..fcf31a5000 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_mix_ext_info.md @@ -0,0 +1,24 @@ +# AudioMixExtInfo + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [moduleId](_audio.md#moduleid-22) | 流所属模块标识符。 | +| [streamId](_audio.md#streamid-22) | 由调用者传递的Render或Capture标识符。 | + + +## **详细描述** + +音轨拓展信息。 diff --git a/zh-cn/device-dev/api/_audio_mmap_buffer_descripter.md b/zh-cn/device-dev/api/_audio_mmap_buffer_descripter.md new file mode 100644 index 0000000000..cd301a7d69 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_mmap_buffer_descripter.md @@ -0,0 +1,27 @@ +# AudioMmapBufferDescripter + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [memoryAddress](_audio.md#memoryaddress) | 指向mmap缓冲区的指针。 | +| [memoryFd](_audio.md#memoryfd) | mmap缓冲区的文件描述符。 | +| [totalBufferFrames](_audio.md#totalbufferframes) | 缓冲区总大小,单位:帧。 | +| [transferFrameSize](_audio.md#transferframesize) | 传输大小,单位:帧。 | +| [isShareable](_audio.md#isshareable) | mmap缓冲区是否可以在进程间共享。 | + + +## **详细描述** + +mmap缓冲区描述符。 diff --git a/zh-cn/device-dev/api/_audio_port.md b/zh-cn/device-dev/api/_audio_port.md new file mode 100644 index 0000000000..5ad207379d --- /dev/null +++ b/zh-cn/device-dev/api/_audio_port.md @@ -0,0 +1,25 @@ +# AudioPort + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [dir](_audio.md#dir) | 音频端口的类型,详情参考[AudioPortDirection](_audio.md#audioportdirection)。 | +| [portId](_audio.md#portid-14) | 音频端口的ID。 | +| [portName](_audio.md#portname) | 音频端口的名称。 | + + +## **详细描述** + +音频端口。 diff --git a/zh-cn/device-dev/api/_audio_port_cap.md b/zh-cn/device-dev/api/_audio_port_cap.md new file mode 100644 index 0000000000..6545ac35c4 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_port_cap.md @@ -0,0 +1,77 @@ +# AudioPortCap + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [sampleFormats](#sampleformats) [[SAMPLE_FMT_NUM](_codec.md#ga9bda75c363e9bcff915cdd521dd7ba84)] | 支持的音频采样格式,详见[AudioSampleFormat](_codec.md#audiosampleformat)。 | +| [sampleRate](#samplerate) [[SAMPLE_RATE_NUM](_codec.md#ga0d905eaa05b4b6fcec76924eb795d7fe)] | 支持的音频采样率,详见[AudioSampleRate](_codec.md#audiosamplerate)。 | +| [channelLayouts](#channellayouts) [[CHANNEL_NUM](_codec.md#ga6511732d5b29a6781cf38783157f21e1)] | 支持的音频通道数channel layouts。 | +| [channelCount](#channelcount) [[CHANNEL_NUM](_codec.md#ga6511732d5b29a6781cf38783157f21e1)] | 支持的音频通道数。 | + + +## **详细描述** + +定义音频编解码能力。 + + +## **类成员变量说明** + + +### channelCount + + +``` +int32_t AudioPortCap::channelCount[CHANNEL_NUM] +``` + +**描述:** + +支持的音频通道数 + + +### channelLayouts + + +``` +int32_t AudioPortCap::channelLayouts[CHANNEL_NUM] +``` + +**描述:** + +支持的音频通道数channel layouts + + +### sampleFormats + + +``` +int32_t AudioPortCap::sampleFormats[SAMPLE_FMT_NUM] +``` + +**描述:** + +支持的音频采样格式,详见[AudioSampleFormat](_codec.md#audiosampleformat) + + +### sampleRate + + +``` +int32_t AudioPortCap::sampleRate[SAMPLE_RATE_NUM] +``` + +**描述:** + +支持的音频采样率,详见[AudioSampleRate](_codec.md#audiosamplerate) diff --git a/zh-cn/device-dev/api/_audio_port_capability.md b/zh-cn/device-dev/api/_audio_port_capability.md new file mode 100644 index 0000000000..40a05c9e22 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_port_capability.md @@ -0,0 +1,34 @@ +# AudioPortCapability + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [deviceType](_audio.md#devicetype) | 设备输出、输入类型。 | +| [deviceId](_audio.md#deviceid) | 绑定(bind)设备ID,唯一的设备识别符。 | +| [hardwareMode](_audio.md#hardwaremode) | 是否支持设备绑定处理。 | +| [formatNum](_audio.md#formatnum) | 支持的音频格式数目。 | +| [formats](_audio.md#formats) | 支持的音频格式,详情参考[AudioFormat](_audio.md#audioformat)。 | +| [sampleRateMasks](_audio.md#sampleratemasks) | 支持的音频采样频率(8k、16k、32k、48k)。 | +| [channelMasks](_audio.md#channelmasks) | 设备的声道布局掩码(mask),详情参考[AudioChannelMask](_audio.md#audiochannelmask)。 | +| [channelCount](_audio.md#channelcount-22) | 支持的最大声道总数。 | +| [subPortsNum](_audio.md#subportsnum) | 支持的子端口数目(仅用于输出设备)。 | +| [subPorts](_audio.md#subports) | 支持的子端口列表。 | +| [supportSampleFormatNum](_audio.md#supportsampleformatnum) | 支持的音频样本格式数量。 | +| [supportSampleFormats](_audio.md#supportsampleformats) | 支持的音频样本格式,详请参考[AudioSampleFormat](_codec.md#audiosampleformat)。 | + + +## **详细描述** + +音频端口的支持能力。 diff --git a/zh-cn/device-dev/api/_audio_render.md b/zh-cn/device-dev/api/_audio_render.md new file mode 100644 index 0000000000..274cc0fc3b --- /dev/null +++ b/zh-cn/device-dev/api/_audio_render.md @@ -0,0 +1,297 @@ +# AudioRender + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| control | 音频控制能力接口,详情参考[AudioControl](_audio_control.md) | +| attr | 音频属性能力接口,详情参考[AudioAttribute](_audio_attribute.md) | +| scene | 音频场景能力接口,详情参考[AudioScene](_audio_scene.md) | +| volume | 音频音量能力接口,详情参考[AudioVolume](_audio_volume.md) | +| ( [GetLatency](#getlatency) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref1137711430083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, uint32_t \*ms) | 获取音频硬件驱动估计的延迟时间 [更多...](#getlatency) | +| ( [RenderFrame](#renderframe) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref1032115116083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, const void \*frame, uint64_t requestBytes, uint64_t \*replyBytes) | 往音频驱动中播放(render)一帧输出数据(放音,音频下行数据) [更多...](#renderframe) | +| ( [GetRenderPosition](#getrenderposition) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref1361225145083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, uint64_t \*frames, struct [AudioTimeStamp](_audio_time_stamp.md) \*time) | 获取音频输出帧数的上一次计数 [更多...](#getrenderposition) | +| ( [SetRenderSpeed](#setrenderspeed) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref298100406083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, float speed) | 设置一个音频的播放速度 [更多...](#setrenderspeed) | +| ( [GetRenderSpeed](#getrenderspeed) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref1265100196083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, float \*speed) | 获取一个音频当前的播放速度 [更多...](#getrenderspeed) | +| ( [SetChannelMode](#setchannelmode) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref1614877322083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, enum [AudioChannelMode](_audio.md#audiochannelmode) mode) | 设置音频播放的通道模式 [更多...](#setchannelmode) | +| ( [GetChannelMode](#getchannelmode) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref1553230681083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, enum [AudioChannelMode](_audio.md#audiochannelmode) \*mode) | 获取音频播放当前的通道模式 [更多...](#getchannelmode) | +| ( [RegCallback](#regcallback) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref16984183083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, [RenderCallback](_audio.md#rendercallback) callback, void \*cookie) | 注册音频回调函数,用于放音过程中缓冲区数据写、DrainBuffer完成通知 [更多...](#regcallback) | +| ( [DrainBuffer](#drainbuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref1454572723083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, enum [AudioDrainNotifyType](_audio.md#audiodrainnotifytype) \*type) | 排空缓冲区中的数据 [更多...](#drainbuffer) | + + +## **详细描述** + +AudioRender音频播放接口 + +提供音频播放支持的驱动能力,包括音频控制、音频属性、音频场景、音频音量、获取硬件延迟时间、播放音频帧数据(render frame)等 + +**参见:** + +[AudioControl](_audio_control.md) + +[AudioAttribute](_audio_attribute.md) + +[AudioScene](_audio_scene.md) + +[AudioVolume](_audio_volume.md) + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### DrainBuffer + + +``` +int32_t(* AudioRender::DrainBuffer) (struct AudioRender *render, enum AudioDrainNotifyType *type) +``` + +**描述:** + +排空缓冲区中的数据 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| render | 待操作的音频播放接口对象 | +| type | DrainBuffer的操作类型,详情请参考[AudioDrainNotifyType](_audio.md#audiodrainnotifytype) | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[RegCallback](#regcallback) + + +### GetChannelMode + + +``` +int32_t(* AudioRender::GetChannelMode) (struct AudioRender *render, enum AudioChannelMode *mode) +``` + +**描述:** + +获取音频播放当前的通道模式 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| render | 待操作的音频播放接口对象 | +| mode | 获取的通道模式保存到mode中 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[SetChannelMode](#setchannelmode) + + +### GetLatency + + +``` +int32_t(* AudioRender::GetLatency) (struct AudioRender *render, uint32_t *ms) +``` + +**描述:** + +获取音频硬件驱动估计的延迟时间 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| render | 待操作的音频播放接口对象 | +| ms | 获取的延迟时间(单位:毫秒)保存到ms中 | + +**返回:** + +成功返回值0,失败返回负值 + + +### GetRenderPosition + + +``` +int32_t(* AudioRender::GetRenderPosition) (struct AudioRender *render, uint64_t *frames, struct AudioTimeStamp *time) +``` + +**描述:** + +获取音频输出帧数的上一次计数 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| render | 待操作的音频播放接口对象 | +| frames | 获取的音频帧计数保存到frames中 | +| time | 获取的关联时间戳保存到time中 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[RenderFrame](#renderframe) + + +### GetRenderSpeed + + +``` +int32_t(* AudioRender::GetRenderSpeed) (struct AudioRender *render, float *speed) +``` + +**描述:** + +获取一个音频当前的播放速度 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| render | 待操作的音频播放接口对象 | +| speed | 获取的播放速度保存到speed中 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[SetRenderSpeed](#setrenderspeed) + + +### RegCallback + + +``` +int32_t(* AudioRender::RegCallback) (struct AudioRender *render, RenderCallback callback, void *cookie) +``` + +**描述:** + +注册音频回调函数,用于放音过程中缓冲区数据写、DrainBuffer完成通知 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| render | 待操作的音频播放接口对象 | +| callback | 注册的回调函数 | +| cookie | 回调函数的入参 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[RegCallback](#regcallback) + + +### RenderFrame + + +``` +int32_t(* AudioRender::RenderFrame) (struct AudioRender *render, const void *frame, uint64_t requestBytes, uint64_t *replyBytes) +``` + +**描述:** + +往音频驱动中播放(render)一帧输出数据(放音,音频下行数据) + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| render | 待操作的音频播放接口对象 | +| frame | 待写入的输出数据的音频frame | +| requestBytes | 待写入的输出数据的音频frame大小(字节数) | +| replyBytes | 实际写入的音频数据长度(字节数),获取后保存到replyBytes中 | + +**返回:** + +成功返回值0,失败返回负值 + + +### SetChannelMode + + +``` +int32_t(* AudioRender::SetChannelMode) (struct AudioRender *render, enum AudioChannelMode mode) +``` + +**描述:** + +设置音频播放的通道模式 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| render | 待操作的音频播放接口对象 | +| speed | 待设置的通道模式 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetChannelMode](#getchannelmode) + + +### SetRenderSpeed + + +``` +int32_t(* AudioRender::SetRenderSpeed) (struct AudioRender *render, float speed) +``` + +**描述:** + +设置一个音频的播放速度 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| render | 待操作的音频播放接口对象 | +| speed | 待设置的播放速度 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetRenderSpeed](#getrenderspeed) diff --git a/zh-cn/device-dev/api/_audio_route.md b/zh-cn/device-dev/api/_audio_route.md new file mode 100644 index 0000000000..d4db5cedde --- /dev/null +++ b/zh-cn/device-dev/api/_audio_route.md @@ -0,0 +1,26 @@ +# AudioRoute + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [sourcesNum](_audio.md#sourcesnum) | 发送端节点数量。 | +| [sources](_audio.md#sources) | 发送端列表。 | +| [sinksNum](_audio.md#sinksnum) | 接受端节点数量。 | +| [sinks](_audio.md#sinks) | 接受端列表。 | + + +## **详细描述** + +音频路由信息。 diff --git a/zh-cn/device-dev/api/_audio_route_node.md b/zh-cn/device-dev/api/_audio_route_node.md new file mode 100644 index 0000000000..2686ecf9b5 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_route_node.md @@ -0,0 +1,28 @@ +# AudioRouteNode + + +## **述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [portId](_audio.md#portid-44) | 音频端口ID。 | +| [role](_audio.md#role) | 指定端口角色为sink或source。 | +| [type](_audio.md#type-33) | 指定端口类型。 | +| [device](_audio.md#device) | 设备特定信息。 | +| [mix](_audio.md#mix) | 音轨特定信息。 | +| [session](_audio.md#session) | 会话特定信息。 | + + +## **详细描述** + +音频路由节点。 diff --git a/zh-cn/device-dev/api/_audio_sample_attributes.md b/zh-cn/device-dev/api/_audio_sample_attributes.md new file mode 100644 index 0000000000..8b2c871f1c --- /dev/null +++ b/zh-cn/device-dev/api/_audio_sample_attributes.md @@ -0,0 +1,35 @@ +# AudioSampleAttributes + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [type](_audio.md#type-13) | 音频类型,详情参考[AudioCategory](_audio.md#audiocategory)。 | +| [interleaved](_audio.md#interleaved) | 音频数据交织的标记。 | +| [format](_audio.md#format) | 音频数据格式,详情参考[AudioFormat](_audio.md#audioformat)。 | +| [sampleRate](_audio.md#samplerate) | 音频采样频率。 | +| [channelCount](_audio.md#channelcount-12) | 音频通道数目,如单通道(mono)为1、立体声(stereo)为2。 | +| [period](_audio.md#period) | 音频采样周期。 | +| [frameSize](_audio.md#framesize) | 音频数据的帧大小。 | +| [isBigEndian](_audio.md#isbigendian) | 音频数据的大端标志。 | +| [isSignedData](_audio.md#issigneddata) | 音频数据的有符号或无符号标志。 | +| [startThreshold](_audio.md#startthreshold) | 音频渲染开始阈值。 | +| [stopThreshold](_audio.md#stopthreshold) | 音频渲染停止阈值。 | +| [silenceThreshold](_audio.md#silencethreshold) | 音频捕获缓冲区阈值。 | +| [streamId](_audio.md#streamid-12) | 渲染或捕获的音频标识符。 | + + +## **详细描述** + +音频采样属性。 diff --git a/zh-cn/device-dev/api/_audio_scene.md b/zh-cn/device-dev/api/_audio_scene.md new file mode 100644 index 0000000000..520381a9b4 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_scene.md @@ -0,0 +1,100 @@ +# AudioScene + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [CheckSceneCapability](#checkscenecapability) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, const struct [AudioSceneDescriptor](_audio_scene_descriptor.md) \*scene, bool \*supported) | 是否支持某个音频场景的配置 [更多...](#checkscenecapability) | +| ( [SelectScene](#selectscene) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, const struct [AudioSceneDescriptor](_audio_scene_descriptor.md) \*scene) | 选择音频场景 [更多...](#selectscene) | + + +## **详细描述** + +AudioScene音频场景接口。 + +提供音频播放(render)或录音(capture)需要的公共场景驱动能力,包括选择音频场景等。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### CheckSceneCapability + + +``` +int32_t(* AudioScene::CheckSceneCapability) (AudioHandle handle, const struct AudioSceneDescriptor *scene, bool *supported) +``` + +**描述:** + +是否支持某个音频场景的配置 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| scene | 待获取的音频场景描述符 | +| supported | 是否支持的状态保存到supported中,true表示支持,false表示不支持 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[SelectScene](#selectscene) + + +### SelectScene + + +``` +int32_t(* AudioScene::SelectScene) (AudioHandle handle, const struct AudioSceneDescriptor *scene) +``` + +**描述:** + +选择音频场景 + +- 1. 选择一个非常具体的音频场景(应用场景和输出设备的组合),例如同样是使用手机中的喇叭作为输出设备 + - 在媒体播放场景scene为media_speaker + - 在语音通话免提场景scene为voice_speaker + +- 2. 只是选择一个音频场景,例如使用场景为媒体播放(media)、电影播放(movie)、游戏播放(game) + +- 3. 只是选择一个音频输出设备,例如输出设备为听筒(receiver)、喇叭(speaker)、有线耳机(headset) + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| scene | 待设置的音频场景描述符 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[CheckSceneCapability](#checkscenecapability) diff --git a/zh-cn/device-dev/api/_audio_scene_descriptor.md b/zh-cn/device-dev/api/_audio_scene_descriptor.md new file mode 100644 index 0000000000..c7838b44b9 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_scene_descriptor.md @@ -0,0 +1,31 @@ +# AudioSceneDescriptor + + +## **概述** + +**所属模块:** + +[Audio](_audio.md)[更多...](union_audio_scene_descriptor_1_1_scene_desc.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [SceneDesc](union_audio_scene_descriptor_1_1_scene_desc.md) | 音频场景描述 [AudioSceneDescriptor::SceneDesc](union_audio_scene_descriptor_1_1_scene_desc.md) | + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [scene](_audio.md#scene) | 音频场景的名称。 | +| [desc](_audio.md#desc-25) | 音频设备描述符。 | + + +## **详细描述** + +音频场景描述符。 diff --git a/zh-cn/device-dev/api/_audio_session_ext_info.md b/zh-cn/device-dev/api/_audio_session_ext_info.md new file mode 100644 index 0000000000..d48ad30792 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_session_ext_info.md @@ -0,0 +1,23 @@ +# AudioSessionExtInfo + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [sessionType](_audio.md#sessiontype) | 音频会话类型。 | + + +## **详细描述** + +会话拓展信息。 diff --git a/zh-cn/device-dev/api/_audio_sub_port_capability.md b/zh-cn/device-dev/api/_audio_sub_port_capability.md new file mode 100644 index 0000000000..1bc223b1d5 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_sub_port_capability.md @@ -0,0 +1,25 @@ +# AudioSubPortCapability + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [portId](_audio.md#portid-34) | 子端口ID。 | +| [desc](_audio.md#desc-45) | 以字符串命名的子端口。 | +| [mask](_audio.md#mask) | 数据透传模式,详情参考[AudioPortPassthroughMode](_audio.md#audioportpassthroughmode)。 | + + +## **详细描述** + +音频子端口的支持能力。 diff --git a/zh-cn/device-dev/api/_audio_time_stamp.md b/zh-cn/device-dev/api/_audio_time_stamp.md new file mode 100644 index 0000000000..ec53fdefc9 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_time_stamp.md @@ -0,0 +1,26 @@ +# AudioTimeStamp + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [tvSec](_audio.md#tvsec) | tvSec时间,单位:秒。 | +| [tvNSec](_audio.md#tvnsec) | tvNSec时间,单位:纳秒。 | + + +## **详细描述** + +音频时间戳。 + +时间定义,POSIX timespec的替代品。 diff --git a/zh-cn/device-dev/api/_audio_volume.md b/zh-cn/device-dev/api/_audio_volume.md new file mode 100644 index 0000000000..2766ba7eb2 --- /dev/null +++ b/zh-cn/device-dev/api/_audio_volume.md @@ -0,0 +1,242 @@ +# AudioVolume + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [SetMute](#setmute) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, bool mute) | 设置音频的静音状态 [更多...](#setmute) | +| ( [GetMute](#getmute) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, bool \*mute) | 获取音频的静音状态 [更多...](#getmute) | +| ( [SetVolume](#setvolume) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, float volume) | 设置一个音频流的音量 [更多...](#setvolume) | +| ( [GetVolume](#getvolume) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, float \*volume) | 获取一个音频流的音量 [更多...](#getvolume) | +| ( [GetGainThreshold](#getgainthreshold) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, float \*min, float \*max) | 获取音频流增益的阈值 [更多...](#getgainthreshold) | +| ( [GetGain](#getgain) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, float \*gain) | 获取音频流的增益 [更多...](#getgain) | +| ( [SetGain](#setgain) )([AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) handle, float gain) | 设置音频流的增益 [更多...](#setgain) | + + +## **详细描述** + +AudioVolume音频音量接口。 + +提供音频播放(render)或录音(capture)需要的公共音量驱动能力,包括静音操作、设置音量、设置增益等。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### GetGain + + +``` +int32_t(* AudioVolume::GetGain) (AudioHandle handle, float *gain) +``` + +**描述:** + +获取音频流的增益 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| gain | 保存当前获取到的增益到gain中 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetGainThreshold](#getgainthreshold) + +[SetGain](#setgain) + + +### GetGainThreshold + + +``` +int32_t(* AudioVolume::GetGainThreshold) (AudioHandle handle, float *min, float *max) +``` + +**描述:** + +获取音频流增益的阈值 + +在具体的功能实现中,可以根据芯片平台的实际情况来进行处理: + +- 1. 可以使用实际的增益值,例如增益的范围为-50db ~ 6db + +- 2. 也可以将增益范围设定为0.0~1.0,如果增益的范围为-50db ~ 6db, 则增益的映射关系为0.0表示静音,1.0表示最大增益(6db) + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| min | 获取的音频增益的阈值下限保存到min中 | +| max | 获取的音频增益的阈值上限保存到max中 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetGain](#getgain) + +[SetGain](#setgain) + + +### GetMute + + +``` +int32_t(* AudioVolume::GetMute) (AudioHandle handle, bool *mute) +``` + +**描述:** + +获取音频的静音状态 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| mute | 获取的静音状态保存到mute中,true表示静音操作、false表示取消静音操作 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[SetMute](#setmute) + + +### GetVolume + + +``` +int32_t(* AudioVolume::GetVolume) (AudioHandle handle, float *volume) +``` + +**描述:** + +获取一个音频流的音量 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| volume | 获取的音量保存到volume中,范围0.0~1.0 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[SetVolume](#setvolume) + + +### SetGain + + +``` +int32_t(* AudioVolume::SetGain) (AudioHandle handle, float gain) +``` + +**描述:** + +设置音频流的增益 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| gain | gain 待设置的增益 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetGainThreshold](#getgainthreshold) + +[GetGain](#getgain) + + +### SetMute + + +``` +int32_t(* AudioVolume::SetMute) (AudioHandle handle, bool mute) +``` + +**描述:** + +设置音频的静音状态 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| mute | 待设置的静音状态,true表示静音操作、false表示取消静音操作 | + +**返回:** + +成功返回值0,失败返回负值 + +**参见:** + +[GetMute](#getmute) + + +### SetVolume + + +``` +int32_t(* AudioVolume::SetVolume) (AudioHandle handle, float volume) +``` + +**描述:** + +设置一个音频流的音量。 + +音量的取值范围是0.0~1.0,如果音频服务中的音量等级为15级(0 ~ 15), 则音量的映射关系为0.0表示静音,1.0表示最大音量等级(15) + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 待操作的音频句柄 | +| volume | 待设置的音量,范围0.0~1.0 | + +**返回:** + +成功返回值0,失败返回负值 diff --git a/zh-cn/device-dev/api/_auth_result_info.md b/zh-cn/device-dev/api/_auth_result_info.md new file mode 100644 index 0000000000..e524bce35d --- /dev/null +++ b/zh-cn/device-dev/api/_auth_result_info.md @@ -0,0 +1,98 @@ +# AuthResultInfo + + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [result](#result) | 用户身份认证结果。 | +| [freezingTime](#freezingtime) | 认证方式被冻结的时间。 | +| [remainTimes](#remaintimes) | 认证方式距离被冻结的可处理认证请求次数。 | +| [msgs](#msgs) | 执行器发送的消息。 | +| [token](#token) | 用户身份认证令牌。 | + + +## **详细描述** + +用户身份认证结果信息。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### freezingTime + + +``` +int AuthResultInfo::freezingTime +``` + +**描述:** + +认证方式被冻结的时间。 + + +### msgs + + +``` +struct ExecutorSendMsg [] AuthResultInfo::msgs +``` + +**描述:** + +执行器发送的消息。 + + +### remainTimes + + +``` +int AuthResultInfo::remainTimes +``` + +**描述:** + +认证方式距离被冻结的可处理认证请求次数。 + + +### result + + +``` +unsigned int AuthResultInfo::result +``` + +**描述:** + +用户身份认证结果。 + + +### token + + +``` +unsigned char [] AuthResultInfo::token +``` + +**描述:** + +用户身份认证令牌。 diff --git a/zh-cn/device-dev/api/_auth_solution.md b/zh-cn/device-dev/api/_auth_solution.md new file mode 100644 index 0000000000..2dd325dbaa --- /dev/null +++ b/zh-cn/device-dev/api/_auth_solution.md @@ -0,0 +1,98 @@ +# AuthSolution + + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [userId](#userid) | 用户ID。 | +| [authTrustLevel](#authtrustlevel) | 认证结果可信等级。 | +| [authType](#authtype) | 用户认证凭据类型AuthType}。 | +| [executorId](#executorid) | 既定用户认证凭据类型的执行器ID。 | +| [challenge](#challenge) | 挑战值,用于签发认证令牌。 | + + +## **详细描述** + +认证方案。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### authTrustLevel + + +``` +unsigned int AuthSolution::authTrustLevel +``` + +**描述:** + +认证结果可信等级。 + + +### authType + + +``` +enum AuthType AuthSolution::authType +``` + +**描述:** + +用户认证凭据类型AuthType}。 + + +### challenge + + +``` +unsigned char [] AuthSolution::challenge +``` + +**描述:** + +挑战值,用于签发认证令牌。 + + +### executorId + + +``` +unsigned int AuthSolution::executorId +``` + +**描述:** + +既定用户认证凭据类型的执行器ID。 + + +### userId + + +``` +int AuthSolution::userId +``` + +**描述:** + +用户ID。 diff --git a/zh-cn/device-dev/api/_battery_info.md b/zh-cn/device-dev/api/_battery_info.md new file mode 100644 index 0000000000..8373d179fa --- /dev/null +++ b/zh-cn/device-dev/api/_battery_info.md @@ -0,0 +1,224 @@ +# BatteryInfo + + +## **概述** + +**所属模块:** + +[Battery](battery.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [capacity](#capacity) | 表示电池的电量百分比。 | +| [voltage](#voltage) | 表示电池的电压。 | +| [temperature](#temperature) | 表示电池的温度 | +| [healthState](#healthstate) | 表示电池的健康状态。 | +| [pluggedType](#pluggedtype) | 表示电池的充电设备类型。 | +| [pluggedMaxCurrent](#pluggedmaxcurrent) | 表示电池的最大充电电流。 | +| [pluggedMaxVoltage](#pluggedmaxvoltage) | 表示电池的最大充电电压。 | +| [chargeState](#chargestate) | 表示电池的充电状态。 | +| [chargeCounter](#chargecounter) | 表示电池的充电次数。 | +| [totalEnergy](#totalenergy) | 表示电池的总容量。 | +| [curAverage](#curaverage) | 表示电池的平均电流。 | +| [curNow](#curnow) | 表示电池的实时电流。 | +| [remainEnergy](#remainenergy) | 表示电池的剩余容量。 | +| [present](#present) | 表示是否支持电池或者电池是否在位。 | +| [technology](#technology) | 表示电池的技术型号。 | + + +## **详细描述** + +电池相关信息。 + +**Since:** + +3.1 + + +## **类成员变量说明** + + +### capacity + + +``` +int BatteryInfo::capacity +``` + +**描述:** + +表示电池的电量百分比。 + + +### chargeCounter + + +``` +int BatteryInfo::chargeCounter +``` + +**描述:** + +表示电池的充电次数。 + + +### chargeState + + +``` +int BatteryInfo::chargeState +``` + +**描述:** + +表示电池的充电状态。 + + +### curAverage + + +``` +int BatteryInfo::curAverage +``` + +**描述:** + +表示电池的平均电流。 + + +### curNow + + +``` +int BatteryInfo::curNow +``` + +**描述:** + +表示电池的实时电流。 + + +### healthState + + +``` +int BatteryInfo::healthState +``` + +**描述:** + +表示电池的健康状态。 + + +### pluggedMaxCurrent + + +``` +int BatteryInfo::pluggedMaxCurrent +``` + +**描述:** + +表示电池的最大充电电流。 + + +### pluggedMaxVoltage + + +``` +int BatteryInfo::pluggedMaxVoltage +``` + +**描述:** + +表示电池的最大充电电压。 + + +### pluggedType + + +``` +int BatteryInfo::pluggedType +``` + +**描述:** + +表示电池的充电设备类型。 + + +### present + + +``` +byte BatteryInfo::present +``` + +**描述:** + +表示是否支持电池或者电池是否在位。 + + +### remainEnergy + + +``` +int BatteryInfo::remainEnergy +``` + +**描述:** + +表示电池的剩余容量。 + + +### technology + + +``` +String BatteryInfo::technology +``` + +**描述:** + +表示电池的技术型号。 + + +### temperature + + +``` +int BatteryInfo::temperature +``` + +**描述:** + +表示电池的温度 + + +### totalEnergy + + +``` +int BatteryInfo::totalEnergy +``` + +**描述:** + +表示电池的总容量。 + + +### voltage + + +``` +int BatteryInfo::voltage +``` + +**描述:** + +表示电池的电压。 diff --git a/zh-cn/device-dev/api/_buffer_data.md b/zh-cn/device-dev/api/_buffer_data.md new file mode 100644 index 0000000000..667b9b2a71 --- /dev/null +++ b/zh-cn/device-dev/api/_buffer_data.md @@ -0,0 +1,24 @@ +# BufferData + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [phyAddr](_display.md#phyaddr-12) | 物理内存地址。 | +| [virAddr](_display.md#viraddr) | 虚拟内存地址。 | + + +## **详细描述** + +定义一层的缓冲区数据,包括虚拟和物理内存地址。 diff --git a/zh-cn/device-dev/api/_camera.md b/zh-cn/device-dev/api/_camera.md new file mode 100644 index 0000000000..3523eb86d0 --- /dev/null +++ b/zh-cn/device-dev/api/_camera.md @@ -0,0 +1,1837 @@ +# Camera + + +## **汇总** + + +### 文件 + + | 文件 | 描述 | +| -------- | -------- | +| [icamera_device.h](icamera__device_8h.md) | Camera设备操作接口。 | +| [icamera_device_callback.h](icamera__device__callback_8h.md) | Camera设备的回调接口,主要包含camera设备发生错误时和上报metadata的回调函数。 | +| [icamera_host.h](icamera__host_8h.md) | Camera服务的管理类,对上层提供HDI接口。 | +| [icamera_host_callback.h](icamera__host__callback_8h.md) | ICameraHost的回调接口,提供Camera设备和闪关灯状态变化的回调函数,回调函数由调用者实现。 | +| [ioffline_stream_operator.h](ioffline__stream__operator_8h.md) | 离线流的操作接口。 | +| [istream_operator.h](istream__operator_8h.md) | 流的操作接口。 | +| [istream_operator_callback.h](istream__operator__callback_8h.md) | [IStreamOperator](istream__operator_8h.md)相关的回调,这些回调均由调用者实现。 | +| [types.h](types_8h.md) | Camera模块HDI接口使用的数据类型。 | + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [OHOS::Camera::ICameraDevice](_o_h_o_s_1_1_camera_1_1_i_camera_device.md) | Camera设备操作。[更多...](_o_h_o_s_1_1_camera_1_1_i_camera_device.md) | +| [OHOS::Camera::ICameraDeviceCallback](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md) | Camera设备操作回调。[更多...](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md) | +| [OHOS::Camera::ICameraHost](_o_h_o_s_1_1_camera_1_1_i_camera_host.md) | Camera服务的管理类。[更多...](_o_h_o_s_1_1_camera_1_1_i_camera_host.md) | +| [OHOS::Camera::ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md) | Camera服务的管理回调。[更多...](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md) | +| [OHOS::Camera::IOfflineStreamOperator](_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md) | 离线流的操作类。[更多...](_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md) | +| [OHOS::Camera::IStreamOperator](_o_h_o_s_1_1_camera_1_1_i_stream_operator.md) | 流的操作类。[更多...](_o_h_o_s_1_1_camera_1_1_i_stream_operator.md) | +| [OHOS::Camera::IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md) | 流的操作回调类。[更多...](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md) | +| [OHOS::Camera::StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md) | 流信息,用于创建流时传入相关的配置参数。 [更多...](_o_h_o_s_1_1_camera_1_1_stream_info.md) | +| [OHOS::Camera::StreamAttribute](_o_h_o_s_1_1_camera_1_1_stream_attribute.md) | 流的属性。 [更多...](_o_h_o_s_1_1_camera_1_1_stream_attribute.md) | +| [OHOS::Camera::CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md) | 捕获请求的相关信息。 [更多...](_o_h_o_s_1_1_camera_1_1_capture_info.md) | +| [OHOS::Camera::CaptureEndedInfo](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md) | 捕获结束相关信息,用于捕获结束回调 **OnCaptureEnded**。 [更多...](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md) | +| [OHOS::Camera::CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md) | 流错误信息,用于回调 **OnCaptureError**。 [更多...](_o_h_o_s_1_1_camera_1_1_capture_error_info.md) | + + +### 类型定义 + + | 类型定义 | 描述 | +| -------- | -------- | +| **OHOS::Camera::CameraAbility** = CameraMetadata | Camera设备能力集合。 | +| **OHOS::Camera::CameraSetting** = CameraMetadata | Camera设置参数,包括sensor帧率,3A相关参数等。 | +| **OHOS::Camera::MetaType** = int32_t | 整型。 | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [OHOS::Camera::CamRetCode](#camretcode) : int32_t {   [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1850988613083931,link:zh-cn_topic_0000001348293917.xml#gga9ecee2f0e6599644dc440c9e1c553b80aac4124a539038c0eb9752f19bd41db9a](#gga9ecee2f0e6599644dc440c9e1c553b80aac4124a539038c0eb9752f19bd41db9a) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref571563113083931,link:zh-cn_topic_0000001348293917.xml#gga9ecee2f0e6599644dc440c9e1c553b80a6d812337e14eb19f8afb2e70f3aad1a0](#gga9ecee2f0e6599644dc440c9e1c553b80a6d812337e14eb19f8afb2e70f3aad1a0) = -1, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1849826001083931,link:zh-cn_topic_0000001348293917.xml#gga9ecee2f0e6599644dc440c9e1c553b80a7250a9e68d64f0804d92f99e8cbc1e7e](#gga9ecee2f0e6599644dc440c9e1c553b80a7250a9e68d64f0804d92f99e8cbc1e7e) = -2, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref291745369083931,link:zh-cn_topic_0000001348293917.xml#gga9ecee2f0e6599644dc440c9e1c553b80a9cfb72153a13ecf08abb34d59bec2223](#gga9ecee2f0e6599644dc440c9e1c553b80a9cfb72153a13ecf08abb34d59bec2223) = -3,   [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1135011021083931,link:zh-cn_topic_0000001348293917.xml#gga9ecee2f0e6599644dc440c9e1c553b80ae66837f5eefe837cf5777083e1aaadcc](#gga9ecee2f0e6599644dc440c9e1c553b80ae66837f5eefe837cf5777083e1aaadcc) = -4, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1556125922083931,link:zh-cn_topic_0000001348293917.xml#gga9ecee2f0e6599644dc440c9e1c553b80a0322e66dfb3b398ead3bd50c823415cd](#gga9ecee2f0e6599644dc440c9e1c553b80a0322e66dfb3b398ead3bd50c823415cd) = -5, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1550105245083931,link:zh-cn_topic_0000001348293917.xml#gga9ecee2f0e6599644dc440c9e1c553b80a2b74d8a616b4360eec8826d9810c03c0](#gga9ecee2f0e6599644dc440c9e1c553b80a2b74d8a616b4360eec8826d9810c03c0) = -6 } | HDI接口的返回值。 [更多...](#camretcode) | +| [OHOS::Camera::ResultCallbackMode](#resultcallbackmode) : int32_t { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1226878426083931,link:zh-cn_topic_0000001348293917.xml#gga0290782009631708fe5351c54f019353a25a4a7cc14577e328d08dd1a758f784c](#gga0290782009631708fe5351c54f019353a25a4a7cc14577e328d08dd1a758f784c), [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref460002598083931,link:zh-cn_topic_0000001348293917.xml#gga0290782009631708fe5351c54f019353ab84abaca84197e5e75dc1210519ea37c](#gga0290782009631708fe5351c54f019353ab84abaca84197e5e75dc1210519ea37c) } | metadata的上报模式。 [更多...](#resultcallbackmode) | +| [OHOS::Camera::OperationMode](#operationmode) : int32_t { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1051962412083931,link:zh-cn_topic_0000001348293917.xml#ggac397708a7aefbcf48c8a32b8af367ffda66a457d6883b55722bda11ac9a47e4dd](#ggac397708a7aefbcf48c8a32b8af367ffda66a457d6883b55722bda11ac9a47e4dd) = 0 } | 流的使用模式。 [更多...](#operationmode) | +| [OHOS::Camera::StreamIntent](#streamintent) : int32_t {   [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1306449757083931,link:zh-cn_topic_0000001348293917.xml#gga2b195a400dc0113b8185900ddc231c19a2ec888585737101c7bc133d302e4ce0a](#gga2b195a400dc0113b8185900ddc231c19a2ec888585737101c7bc133d302e4ce0a) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref992295979083931,link:zh-cn_topic_0000001348293917.xml#gga2b195a400dc0113b8185900ddc231c19ad480442d11e56ef84ac7018df5637b6a](#gga2b195a400dc0113b8185900ddc231c19ad480442d11e56ef84ac7018df5637b6a) = 1, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1450183959083931,link:zh-cn_topic_0000001348293917.xml#gga2b195a400dc0113b8185900ddc231c19a5898656f053185f8a374bc35cbd4d784](#gga2b195a400dc0113b8185900ddc231c19a5898656f053185f8a374bc35cbd4d784) = 2, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1077440175083931,link:zh-cn_topic_0000001348293917.xml#gga2b195a400dc0113b8185900ddc231c19a67891a15f68cdc23c2b1bb6fdfe2d72f](#gga2b195a400dc0113b8185900ddc231c19a67891a15f68cdc23c2b1bb6fdfe2d72f) = 3,   [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref101962597083931,link:zh-cn_topic_0000001348293917.xml#gga2b195a400dc0113b8185900ddc231c19a817268e94893ff41b8a03147dfbbc94b](#gga2b195a400dc0113b8185900ddc231c19a817268e94893ff41b8a03147dfbbc94b) = 4, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref685898295083931,link:zh-cn_topic_0000001348293917.xml#gga2b195a400dc0113b8185900ddc231c19a4ca8b162608a384d4335d04a56ac3e72](#gga2b195a400dc0113b8185900ddc231c19a4ca8b162608a384d4335d04a56ac3e72) = 5 } | 流的类型。 [更多...](#streamintent) | +| [OHOS::Camera::EncodeType](#encodetype) : int32_t { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref859827503083931,link:zh-cn_topic_0000001348293917.xml#gga57d3c5974b8119b90f6f43592bd4b1d1af72ea69717272db8b03c0d2281c2f221](#gga57d3c5974b8119b90f6f43592bd4b1d1af72ea69717272db8b03c0d2281c2f221) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1499327670083931,link:zh-cn_topic_0000001348293917.xml#gga57d3c5974b8119b90f6f43592bd4b1d1a6d21ce4760d97641e66c9a6a58df6105](#gga57d3c5974b8119b90f6f43592bd4b1d1a6d21ce4760d97641e66c9a6a58df6105) = 1, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref610982733083931,link:zh-cn_topic_0000001348293917.xml#gga57d3c5974b8119b90f6f43592bd4b1d1a60e25172afdb6ca5f18db408485c1cdf](#gga57d3c5974b8119b90f6f43592bd4b1d1a60e25172afdb6ca5f18db408485c1cdf) = 2, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1698357165083931,link:zh-cn_topic_0000001348293917.xml#gga57d3c5974b8119b90f6f43592bd4b1d1a1cf15a45d92fa0eae74c778f09d4bae7](#gga57d3c5974b8119b90f6f43592bd4b1d1a1cf15a45d92fa0eae74c778f09d4bae7) = 3 } | 流数据的编码类型。 [更多...](#encodetype) | +| [OHOS::Camera::StreamSupportType](#streamsupporttype) : int32_t { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref459418693083931,link:zh-cn_topic_0000001348293917.xml#gga2de5b91b51f744902c071f89d9302d56a96466427b9427c04c0a9f9a74e21b222](#gga2de5b91b51f744902c071f89d9302d56a96466427b9427c04c0a9f9a74e21b222), [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref645113807083931,link:zh-cn_topic_0000001348293917.xml#gga2de5b91b51f744902c071f89d9302d56afb9ebd5b0f7137f06e0b636247e7419e](#gga2de5b91b51f744902c071f89d9302d56afb9ebd5b0f7137f06e0b636247e7419e), [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref783121376083931,link:zh-cn_topic_0000001348293917.xml#gga2de5b91b51f744902c071f89d9302d56a5e0d17d563241a98d968bbdb5facf05e](#gga2de5b91b51f744902c071f89d9302d56a5e0d17d563241a98d968bbdb5facf05e) } | 动态配置流的切换方式,使用场景参考 [IsStreamsSupported](#isstreamssupported) 。 [更多...](#streamsupporttype) | +| [OHOS::Camera::CameraStatus](#camerastatus) { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref183254253083931,link:zh-cn_topic_0000001348293917.xml#ggac2c065c30743f0053f460a6683845dadaefabd193aca6ec50ad022c4003b079bd](#ggac2c065c30743f0053f460a6683845dadaefabd193aca6ec50ad022c4003b079bd) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref2094706049083931,link:zh-cn_topic_0000001348293917.xml#ggac2c065c30743f0053f460a6683845dada41bd9156c9456c38aa47cf0b8b2486a2](#ggac2c065c30743f0053f460a6683845dada41bd9156c9456c38aa47cf0b8b2486a2) = 1 } | Camera设备状态。 [更多...](#camerastatus) | +| [OHOS::Camera::FlashlightStatus](#flashlightstatus) : uint32_t { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1498042712083931,link:zh-cn_topic_0000001348293917.xml#gga1a82bc94cb6ff38f7fd0dfcffab71df3a624df2112053caa6316c6ee443758d1a](#gga1a82bc94cb6ff38f7fd0dfcffab71df3a624df2112053caa6316c6ee443758d1a) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref2115915477083931,link:zh-cn_topic_0000001348293917.xml#gga1a82bc94cb6ff38f7fd0dfcffab71df3a9f360d5fdf77e2f7c1c123f3ba45bc0c](#gga1a82bc94cb6ff38f7fd0dfcffab71df3a9f360d5fdf77e2f7c1c123f3ba45bc0c) = 1, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref2110333559083931,link:zh-cn_topic_0000001348293917.xml#gga1a82bc94cb6ff38f7fd0dfcffab71df3a7fae7a9c7a791d240f3b6f6399988e8c](#gga1a82bc94cb6ff38f7fd0dfcffab71df3a7fae7a9c7a791d240f3b6f6399988e8c) = 2 } | 闪光灯状态。 [更多...](#flashlightstatus) | +| [OHOS::Camera::CameraEvent](#cameraevent) : uint32_t { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref660282900083931,link:zh-cn_topic_0000001348293917.xml#gga14253812c3a39d52d827589bf5e5b970a85028d1dd16bef4b3f60e9543f2c89d8](#gga14253812c3a39d52d827589bf5e5b970a85028d1dd16bef4b3f60e9543f2c89d8) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref99073138083931,link:zh-cn_topic_0000001348293917.xml#gga14253812c3a39d52d827589bf5e5b970a715b664103cdf584fb48ed5e7c591c06](#gga14253812c3a39d52d827589bf5e5b970a715b664103cdf584fb48ed5e7c591c06) = 1 } | Camera事件。 [更多...](#cameraevent) | +| [OHOS::Camera::ErrorType](#errortype) : uint32_t { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref729496342083931,link:zh-cn_topic_0000001348293917.xml#gga4d1b650185695d9df8652593a7bc522dad0dde9e602d14d5b583be24c5014f998](#gga4d1b650185695d9df8652593a7bc522dad0dde9e602d14d5b583be24c5014f998) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1208893271083931,link:zh-cn_topic_0000001348293917.xml#gga4d1b650185695d9df8652593a7bc522da2b8e229bcb457de66e7b2882502a4df6](#gga4d1b650185695d9df8652593a7bc522da2b8e229bcb457de66e7b2882502a4df6) = 1 } | 设备错误类型,用于设备错误回调 [OnError](#onerror)。 [更多...](#errortype) | +| [OHOS::Camera::StreamError](#streamerror) { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1631822168083931,link:zh-cn_topic_0000001348293917.xml#gga376e6d566c73ec98e29b7dd93763aee6ae724e09ec34e66e49c86734ceffa2a26](#gga376e6d566c73ec98e29b7dd93763aee6ae724e09ec34e66e49c86734ceffa2a26) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref960469187083931,link:zh-cn_topic_0000001348293917.xml#gga376e6d566c73ec98e29b7dd93763aee6a9300ec08f81b121b74ec589fca815952](#gga376e6d566c73ec98e29b7dd93763aee6a9300ec08f81b121b74ec589fca815952) = 1 } | 流错误类型,用于流错误类型 [CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md)。 [更多...](#streamerror) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| **OHOS::Camera::ICameraDevice::DECLARE_INTERFACE_DESCRIPTOR** (u"HDI.Camera.V1_0.Device") | IPC通信token校验。 | +| [OHOS::Camera::ICameraDevice::GetStreamOperator](#getstreamoperator) (const OHOS::sptr< [IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md) > &callback, OHOS::sptr< [IStreamOperator](_o_h_o_s_1_1_camera_1_1_i_stream_operator.md) > &streamOperator)=0 | 获取流操作句柄。 [更多...](#getstreamoperator) | +| [OHOS::Camera::ICameraDevice::UpdateSettings](#updatesettings) (const std::shared_ptr< CameraSetting > &settings)=0 | 更新设备控制参数。 [更多...](#updatesettings) | +| [OHOS::Camera::ICameraDevice::SetResultMode](#setresultmode) (const [ResultCallbackMode](#resultcallbackmode) &mode)=0 | 设置metadata上报模式,逐帧上报还是设备状态变化时上报。 [更多...](#setresultmode) | +| [OHOS::Camera::ICameraDevice::GetEnabledResults](#getenabledresults) (std::vector< MetaType > &results)=0 | 查询使能的metadata。 [更多...](#getenabledresults) | +| [OHOS::Camera::ICameraDevice::EnableResult](#enableresult) (const std::vector< MetaType > &results)=0 | 打开metadata上报开关。 [更多...](#enableresult) | +| [OHOS::Camera::ICameraDevice::DisableResult](#disableresult) (const std::vector< MetaType > &results)=0 | 关闭metadata上报开关。 [更多...](#disableresult) | +| [OHOS::Camera::ICameraDevice::Close](#close) ()=0 | 关闭Camera设备。 [更多...](#close) | +| **OHOS::Camera::ICameraDeviceCallback::DECLARE_INTERFACE_DESCRIPTOR** (u"HDI.Camera.V1_0.DeviceCallback") | IPC通信token校验。 | +| [OHOS::Camera::ICameraDeviceCallback::OnError](#onerror) ([ErrorType](#errortype) type, int32_t errorCode)=0 | 设备发生错误时调用,由调用者实现,用于返回错误信息给调用者。 [更多...](#onerror) | +| [OHOS::Camera::ICameraDeviceCallback::OnResult](#onresult) (uint64_t timestamp, const std::shared_ptr< CameraMetadata > &result)=0 | 上报camera设备相关的metadata的回调,上报方式查看 [SetResultMode](#setresultmode)。 [更多...](#onresult) | +| **OHOS::Camera::ICameraHost::DECLARE_INTERFACE_DESCRIPTOR** (u"HDI.Camera.V1_0.Host") | IPC通信token校验。 | +| [OHOS::Camera::ICameraHost::Get](#get) (const char \*serviceName) | 获取ICameraHost实例。 [更多...](#get) | +| [OHOS::Camera::ICameraHost::SetCallback](#setcallback) (const OHOS::sptr< [ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md) > &callback)=0 | 设置ICameraHost回调接口,回调函数参考 [ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md)。 [更多...](#setcallback) | +| [OHOS::Camera::ICameraHost::GetCameraIds](#getcameraids) (std::vector< std::string > &cameraIds)=0 | 获取当前可用的Camera设备ID列表。 [更多...](#getcameraids) | +| [OHOS::Camera::ICameraHost::GetCameraAbility](#getcameraability) (const std::string &cameraId, std::shared_ptr< CameraAbility > &ability)=0 | 获取Camera设备能力集合。 [更多...](#getcameraability) | +| [OHOS::Camera::ICameraHost::OpenCamera](#opencamera) (const std::string &cameraId, const OHOS::sptr< [ICameraDeviceCallback](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md) > &callback, OHOS::sptr< [ICameraDevice](_o_h_o_s_1_1_camera_1_1_i_camera_device.md) > &device)=0 | 打开Camera设备。 [更多...](#opencamera) | +| [OHOS::Camera::ICameraHost::SetFlashlight](#setflashlight) (const std::string &cameraId, bool &isEnable)=0 | 打开或关闭闪光灯。 [更多...](#setflashlight) | +| **OHOS::Camera::ICameraHostCallback::DECLARE_INTERFACE_DESCRIPTOR** (u"HDI.Camera.V1_0.HostCallback") | IPC通信token校验。 | +| [OHOS::Camera::ICameraHostCallback::OnCameraStatus](#oncamerastatus) (const std::string &cameraId, [CameraStatus](#camerastatus) status)=0 | 用于Camera设备状态变化时上报状态信息给调用者。 [更多...](#oncamerastatus) | +| [OHOS::Camera::ICameraHostCallback::OnFlashlightStatus](#onflashlightstatus) (const std::string &cameraId, [FlashlightStatus](#flashlightstatus) status)=0 | 用于在闪光灯状态变化时上报状态信息给调用者。 [更多...](#onflashlightstatus) | +| [OHOS::Camera::ICameraHostCallback::OnCameraEvent](#oncameraevent) (const std::string &cameraId, [CameraEvent](#cameraevent) event)=0 | 在相机事件发生时调用。 [更多...](#oncameraevent) | +| **OHOS::Camera::IOfflineStreamOperator::DECLARE_INTERFACE_DESCRIPTOR** (u"HDI.Camera.V1_0.OfflineStreamOperator") | IPC通信token校验。 | +| [OHOS::Camera::IOfflineStreamOperator::CancelCapture](#cancelcapture-12) (int captureId)=0 | 取消捕获请求。 [更多...](#cancelcapture-12) | +| [OHOS::Camera::IOfflineStreamOperator::ReleaseStreams](#releasestreams-12) (const std::vector< int > &streamIds)=0 | 释放离线流。 [更多...](#releasestreams-12) | +| [OHOS::Camera::IOfflineStreamOperator::Release](#release) ()=0 | 释放所有离线流。 [更多...](#release) | +| **OHOS::Camera::IStreamOperator::DECLARE_INTERFACE_DESCRIPTOR** (u"HDI.Camera.V1_0.StreamOperator") | IPC通信token校验。 | +| [OHOS::Camera::IStreamOperator::IsStreamsSupported](#isstreamssupported) ([OperationMode](#operationmode) mode, const std::shared_ptr< CameraMetadata > &modeSetting, const std::vector< std::shared_ptr< [StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md) >> &info, [StreamSupportType](#streamsupporttype) &type)=0 | 查询是否支持添加参数对应的流 [更多...](#isstreamssupported) | +| [OHOS::Camera::IStreamOperator::CreateStreams](#createstreams) (const std::vector< std::shared_ptr< [StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md) >> &streamInfos)=0 | 创建流。 [更多...](#createstreams) | +| [OHOS::Camera::IStreamOperator::ReleaseStreams](#releasestreams-22) (const std::vector< int > &streamIds)=0 | 释放流。 [更多...](#releasestreams-22) | +| [OHOS::Camera::IStreamOperator::CommitStreams](#commitstreams) ([OperationMode](#operationmode) mode, const std::shared_ptr< CameraMetadata > &modeSetting)=0 | 配置流。 [更多...](#commitstreams) | +| [OHOS::Camera::IStreamOperator::GetStreamAttributes](#getstreamattributes) (std::vector< std::shared_ptr< [StreamAttribute](_o_h_o_s_1_1_camera_1_1_stream_attribute.md) >> &attributes)=0 | 获取流的属性。 [更多...](#getstreamattributes) | +| [OHOS::Camera::IStreamOperator::AttachBufferQueue](#attachbufferqueue) (int streamId, const OHOS::sptr< OHOS::IBufferProducer > &producer)=0 | 绑定生产者句柄和指定流。 [更多...](#attachbufferqueue) | +| [OHOS::Camera::IStreamOperator::DetachBufferQueue](#detachbufferqueue) (int streamId)=0 | 解除生产者句柄和指定流的绑定关系。 [更多...](#detachbufferqueue) | +| [OHOS::Camera::IStreamOperator::Capture](#capture) (int captureId, const std::shared_ptr< [CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md) > &info, bool isStreaming)=0 | 捕获图像。 [更多...](#capture) | +| [OHOS::Camera::IStreamOperator::CancelCapture](#cancelcapture-22) (int captureId)=0 | 取消捕获。 [更多...](#cancelcapture-22) | +| [OHOS::Camera::IStreamOperator::ChangeToOfflineStream](#changetoofflinestream) (const std::vector< int > &streamIds, OHOS::sptr< [IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md) > &callback, OHOS::sptr< [IOfflineStreamOperator](_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md) > &offlineOperator)=0 | 将指定流转换成离线流。 [更多...](#changetoofflinestream) | +| **OHOS::Camera::IStreamOperatorCallback::DECLARE_INTERFACE_DESCRIPTOR** (u"HDI.Camera.V1_0.StreamOperatorCallback") | IPC通信token校验。 | +| [OHOS::Camera::IStreamOperatorCallback::OnCaptureStarted](#oncapturestarted) (int32_t captureId, const std::vector< int32_t > &streamIds)=0 | 捕获开始回调,在捕获开始时调用。 [更多...](#oncapturestarted) | +| [OHOS::Camera::IStreamOperatorCallback::OnCaptureEnded](#oncaptureended) (int32_t captureId, const std::vector< std::shared_ptr< [CaptureEndedInfo](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md) >> &infos)=0 | 捕获结束回调,在捕获结束时调用。 [更多...](#oncaptureended) | +| [OHOS::Camera::IStreamOperatorCallback::OnCaptureError](#oncaptureerror) (int32_t captureId, const std::vector< std::shared_ptr< [CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md) >> &infos)=0 | 捕获错误回调,在捕获过程中发生错误时调用。 [更多...](#oncaptureerror) | +| [OHOS::Camera::IStreamOperatorCallback::OnFrameShutter](#onframeshutter) (int32_t captureId, const std::vector< int32_t > &streamIds, uint64_t timestamp)=0 | 帧捕获回调。 [更多...](#onframeshutter) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| [OHOS::Camera::StreamInfo::streamId_](#streamid-14) | 流的ID,用于在设备内唯一标识一条流。 | +| [OHOS::Camera::StreamInfo::width_](#width-12) | 图像宽度。 | +| [OHOS::Camera::StreamInfo::height_](#height-12) | 图像高度。 | +| [OHOS::Camera::StreamInfo::format_](#format) | 图像格式。 | +| [OHOS::Camera::StreamInfo::dataspace_](#dataspace) | 图像颜色空间。 | +| [OHOS::Camera::StreamInfo::intent_](#intent) | 流类型。 | +| [OHOS::Camera::StreamInfo::tunneledMode_](#tunneledmode) | 隧道模式,值为true时开启,false关闭。 | +| [OHOS::Camera::StreamInfo::bufferQueue_](#bufferqueue) | 图形提供的生产者句柄。 | +| [OHOS::Camera::StreamInfo::minFrameDuration_](#minframeduration) | 最小帧间隔。 | +| [OHOS::Camera::StreamInfo::encodeType_](#encodetype) | 编码类型。 | +| [OHOS::Camera::StreamAttribute::streamId_](#streamid-24) | 流的ID,用于在设备内唯一标识一条流。 | +| [OHOS::Camera::StreamAttribute::width_](#width-22) | 图像宽度。 | +| [OHOS::Camera::StreamAttribute::height_](#height-22) | 图像高度。 | +| [OHOS::Camera::StreamAttribute::overrideFormat_](#overrideformat) | 重写的图像格式。 | +| [OHOS::Camera::StreamAttribute::overrideDataspace_](#overridedataspace) | 重写的图像颜色空间。 | +| [OHOS::Camera::StreamAttribute::producerUsage_](#producerusage) | 重写后的生产者的使用方式。 | +| [OHOS::Camera::StreamAttribute::producerBufferCount_](#producerbuffercount) | 重写后的生产者缓存数量。 | +| [OHOS::Camera::StreamAttribute::maxBatchCaptureCount_](#maxbatchcapturecount) | 连拍支持的最大捕获帧数量。 | +| [OHOS::Camera::StreamAttribute::maxCaptureCount_](#maxcapturecount) | 最大的并发捕获请求个数,默认为1。 | +| [OHOS::Camera::CaptureInfo::streamIds_](#streamids) | 捕获的流ID集合。 | +| [OHOS::Camera::CaptureInfo::captureSetting_](#capturesetting) | 捕获的配置信息。 | +| [OHOS::Camera::CaptureInfo::enableShutterCallback_](#enableshuttercallback) | 使能捕获回调。 | +| [OHOS::Camera::CaptureEndedInfo::streamId_](#streamid-34) | 捕获的流ID。 | +| [OHOS::Camera::CaptureEndedInfo::frameCount_](#framecount) | 捕获结束时已经抓取的帧数。 | +| [OHOS::Camera::CaptureErrorInfo::streamId_](#streamid-44) | 流ID。 | +| [OHOS::Camera::CaptureErrorInfo::error_](#error) | 错误类型。 | + + +## **详细描述** + +Camera模块接口定义。 + +Camera模块涉及相机设备的操作、流的操作、离线流的操作和各种回调等。 + +**Since:** + +1.0 + + +## **枚举类型说明** + + +### CameraEvent + + +``` +enum OHOS::Camera::CameraEvent : uint32_t +``` + +**描述:** + +Camera事件。 + + | 枚举值 | **描述** | +| -------- | -------- | +| CAMERA_EVENT_DEVICE_ADD | Camera设备增加事件。 | +| CAMERA_EVENT_DEVICE_RMV | Camera设备删除事件。 | + + +### CameraStatus + + +``` +enum OHOS::Camera::CameraStatus +``` + +**描述:** + +Camera设备状态。 + + | 枚举值 | **描述** | +| -------- | -------- | +| UN_AVAILABLE | 设备当前不在位或者不可用。 | +| AVAILABLE | 设备当前可用。 | + + +### CamRetCode + + +``` +enum OHOS::Camera::CamRetCode : int32_t +``` + +**描述:** + +HDI接口的返回值。 + + | 枚举值 | **描述** | +| -------- | -------- | +| NO_ERROR | 调用成功。 | +| CAMERA_BUSY | 设备当前忙。 | +| INSUFFICIENT_RESOURCES | 资源不足。 | +| INVALID_ARGUMENT | 参数错误。 | +| METHOD_NOT_SUPPORTED | 不支持当前调用方法。 | +| CAMERA_CLOSED | Camera设备已经关闭。 | +| DEVICE_ERROR | 驱动层发生严重错误。 | + + +### EncodeType + + +``` +enum OHOS::Camera::EncodeType : int32_t +``` + +**描述:** + +流数据的编码类型。 + + | 枚举值 | **描述** | +| -------- | -------- | +| ENCODE_TYPE_NULL | 未设置编码类型 | +| ENCODE_TYPE_H264 | 编码类型为H264。 | +| ENCODE_TYPE_H265 | 编码类型为H265。 | +| ENCODE_TYPE_JPEG | 编码类型为JPEG。 | + + +### ErrorType + + +``` +enum OHOS::Camera::ErrorType : uint32_t +``` + +**描述:** + +设备错误类型,用于设备错误回调 **OnError**。 + + | 枚举值 | **描述** | +| -------- | -------- | +| FATAL_ERROR | 严重错误,需要关闭camera设备。 | +| REQUEST_TIMEOUT | 请求超时,需要关闭camera设备。 | + + +### FlashlightStatus + + +``` +enum OHOS::Camera::FlashlightStatus : uint32_t +``` + +**描述:** + +闪光灯状态。 + + | 枚举值 | **描述** | +| -------- | -------- | +| FLASHLIGHT_OFF | 闪光灯关闭。 | +| FLASHLIGHT_ON | 闪光灯开启。 | +| FLASHLIGHT_UNAVAILABLE | 闪光灯当前不可用。 | + + +### OperationMode + + +``` +enum OHOS::Camera::OperationMode : int32_t +``` + +**描述:** + +流的使用模式。 + + | 枚举值 | **描述** | +| -------- | -------- | +| NORMAL | 普通模式。 | + + +### ResultCallbackMode + + +``` +enum OHOS::Camera::ResultCallbackMode : int32_t +``` + +**描述:** + +metadata的上报模式。 + + | 枚举值 | **描述** | +| -------- | -------- | +| PER_FRAME | 每帧上报。 | +| ON_CHANGED | 设备状态变化时上报。 | + + +### StreamError + + +``` +enum OHOS::Camera::StreamError +``` + +**描述:** + +流错误类型,用于流错误类型 [CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md)。 + + | 枚举值 | **描述** | +| -------- | -------- | +| UNKNOWN_ERROR | 流未知错误。 | +| BUFFER_LOST | 丢包。 | + + +### StreamIntent + + +``` +enum OHOS::Camera::StreamIntent : int32_t +``` + +**描述:** + +流的类型。 + + | 枚举值 | **描述** | +| -------- | -------- | +| PREVIEW | 流数据用于显示,即预览流。 | +| VIDEO | 流数据用于编码生成录像,即录像流。 | +| STILL_CAPTURE | 流数据用于编码生成照片,即拍照流。 | +| POST_VIEW | 流数据用于保存缩略图。 | +| ANALYZE | 流数据用于图像分析。 | +| CUSTOM | 自定义类型。 | + + +### StreamSupportType + + +``` +enum OHOS::Camera::StreamSupportType : int32_t +``` + +**描述:** + +动态配置流的切换方式,使用场景参考 [IsStreamsSupported](#isstreamssupported) 。 + + | 枚举值 | 描述 | +| -------- | -------- | +| DYNAMIC_SUPPORTED | 支持动态配置流,对应的流参数直接生效。 | +| RE_CONFIGURED_REQUIRED | 不支持动态配置流,对应的参数需要停止流然后重新配置流才能生效。 | +| NOT_SUPPORTED | 不支持对应的流参数配置。 | + + +## **函数说明** + + +### AttachBufferQueue() + + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::AttachBufferQueue (int streamId, const OHOS::sptr < OHOS::IBufferProducer > & producer ) +``` + +**描述:** + +绑定生产者句柄和指定流。 + +如果在 [CreateStreams](#createstreams) 创建流时已经指定了生产者句柄,则不需要调用该接口。如果需要重新绑定, 需先调用 [DetachBufferQueue](#detachbufferqueue) 进行解绑,然后再绑定。 对于一些IOT设备,可能不需要或者不支持预览流的图像数据缓存流转,那么不需要绑定生产者句柄, 此时在创建流时 [CreateStreams](#createstreams) 的 [StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md) 参数的生产者句柄bufferQueue_为空,而 tunneledMode_需设置为false。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| streamId | [IN] 用于标识要绑定的流。 | +| producer | [IN] 生产者句柄。 | + +**返回:** + +NO_ERROR 表示执行成功。 + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**参见:** + +[DetachBufferQueue](#detachbufferqueue) + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### CancelCapture() [1/2] + + +``` +virtual CamRetCode OHOS::Camera::IOfflineStreamOperator::CancelCapture (int captureId) +``` + +**描述:** + +取消捕获请求。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| captureId | [IN] 用于标识要取消的捕获请求。 | + +**返回:** + +NO_ERROR 表示执行成功。 + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + + +### CancelCapture() [2/2] + + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::CancelCapture (int captureId) +``` + +**描述:** + +取消捕获。 + +取消连续捕获时会调用 **OnCaptureEnded**。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| captureId | 用于标识要取消的捕获请求 | + +**返回:** + +NO_ERROR 表示执行成功。 + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**参见:** + +[Capture](#capture) + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### Capture() + + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::Capture (int captureId, const std::shared_ptr< CaptureInfo > & info, bool isStreaming ) +``` + +**描述:** + +捕获图像。 + +本接口必须在调用 [CommitStreams](#commitstreams) 配置流之后调用。 图像捕获有两种模式,分别是连续捕获和单次捕获。 + +- 连续捕获即触发之后模块内部进行连续的捕获, 消费者可以连续收到图像数据,不需要多次调用本接口,若再次调用了本接口, 则停止当前捕获,更新捕获信息,再进行一次新的捕获,多用于预览、录像或者连拍场景。 + +- 单次捕获即触发之后只捕获一帧图像数据,用于单次拍照场景。 捕获启动时,会调用 **OnCaptureStarted** 来通知调用者捕获已经启动。 + +连续捕获需调用 [CancelCapture](#cancelcapture-22) 来停止捕获。 捕获结束时,会调用 **OnCaptureEnded** 来通知调用者捕获的帧计数等信息。 [CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md) 的 enableShutterCallback_ 使能 **OnFrameShutter**,使能后每次捕获触发 **OnFrameShutter** 对于多个流同时捕获的场景,本模块内部保证同时上报多路流捕获数据。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| captureId | [IN] 捕获请求的唯一标识,由调用者指定,调用者需保证在Camera设备打开期间,捕获请求ID是唯一的。 | +| info | [IN] 捕获请求的参数信息,具体信息查看 [CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md)。 | +| isStreaming | [IN] 是否连续捕获,true表示连续捕获,否则为单次捕获。 | + +**返回:** + +NO_ERROR 表示执行成功。 + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**参见:** + +OnFrameShutter + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### ChangeToOfflineStream() + + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::ChangeToOfflineStream (const std::vector< int > & streamIds, OHOS::sptr< IStreamOperatorCallback > & callback, OHOS::sptr< IOfflineStreamOperator > & offlineOperator ) +``` + +**描述:** + +将指定流转换成离线流。 + +离线流只能由拍照流转换而来,其他流不支持。 一些设备处理能力有限,可能导致拍照时算法处理时间较长,从而引起捕获请求堆积在模块内部,而转换为离线 流之后,可关闭底层设备,由离线流接替,进行后续的处理。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| streamIds | [IN] 用于指定要转换成离线流的流集合。 | +| callback | [IN] 用于设置离线流的回调。 | +| offlineOperator | [OUT] 转换后的离线流。 | + +**返回:** + +NO_ERROR 表示执行成功; + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### Close() + + +``` +virtual void OHOS::Camera::ICameraDevice::Close () +``` + +**描述:** + +关闭Camera设备。 + +**参见:** + +[OpenCamera](#opencamera) + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### CommitStreams() + + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::CommitStreams (OperationMode mode, const std::shared_ptr< CameraMetadata > & modeSetting ) +``` + +**描述:** + +配置流。 + +本接口需在调用 [CreateStreams](#createstreams) 创建流之后调用。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| mode | [IN] 流运行的模式,支持的模式定义在 **OperationMode**。 | +| modeSetting | [IN] 流的配置参数,包括帧率,ZOOM等信息。 | + +**返回:** + +NO_ERROR 表示执行成功; + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### CreateStreams() + + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::CreateStreams (const std::vector< std::shared_ptr< StreamInfo >> & streamInfos) +``` + +**描述:** + +创建流。 + +此函数接口依据输入的流信息创建流,调用该接口之前需先通过 [IsStreamsSupported](#isstreamssupported) 查询HAL是否支持要创建的流。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| streamInfos | [IN] 流信息列表,流信息定义在 [StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md)。输入的流信息可能会被修改,需通过 [GetStreamAttributes](#getstreamattributes) 获取最新的流属性。 | + +**返回:** + +NO_ERROR 表示执行成功; + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### DetachBufferQueue() + + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::DetachBufferQueue (int streamId) +``` + +**描述:** + +解除生产者句柄和指定流的绑定关系。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| streamId | [IN] 用于标识要解除绑定的流。 | + +**返回:** + +NO_ERROR 表示执行成功; + +其他值表示执行失败,具体错误码查看[CamRetCode](#camretcode)。 + +**参见:** + +[AttachBufferQueue](#attachbufferqueue) + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### DisableResult() + + +``` +virtual CamRetCode OHOS::Camera::ICameraDevice::DisableResult (const std::vector< MetaType > & results) +``` + +**描述:** + +关闭metadata上报开关。 + +屏蔽之后,相应的**OnResult**不再上报,需 [EnableResult](#enableresult) 使能之后才上报。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| results | [IN] 需要关闭上报开关的metadata。 | + +**返回:** + +NO_ERROR 表示执行成功。 + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**参见:** + +[EnableResult](#enableresult) + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### EnableResult() + + +``` +virtual CamRetCode OHOS::Camera::ICameraDevice::EnableResult (const std::vector< MetaType > & results) +``` + +**描述:** + +打开metadata上报开关。 + +**OnResult** 只上报此接口使能后的metadata。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| results | [IN] 需要打开上报开关的metadata。 | + +**返回:** + +NO_ERROR 表示执行成功。 + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**参见:** + +[DisableResult](#disableresult) + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### Get() + + +``` +static sptr OHOS::Camera::ICameraHost::Get (const char * serviceName) +``` + +**描述:** + +获取ICameraHost实例。 + +此接口为Camera调用入口,需要先通过该接口获取ICameraHost实例,然后通过ICameraHost实例进行其它操作。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| serviceName | [IN] 要获取的ICameraHost实例的名称,当前实现中实例名称固定为camera_service。 | + +**返回:** + +成功返回ICameraHost实例,失败返回nullptr。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### GetCameraAbility() + + +``` +virtual CamRetCode OHOS::Camera::ICameraHost::GetCameraAbility (const std::string & cameraId, std::shared_ptr< CameraAbility > & ability ) +``` + +**描述:** + +获取Camera设备能力集合。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| cameraId | [IN] 用于指定要操作的camera设备,通过 [GetCameraIds](#getcameraids) 获取。 | +| ability | [OUT] 返回cameraId对应Camera设备的能力集合。 | + +**返回:** + +NO_ERROR 表示执行成功。 + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**参见:** + +[GetCameraIds](#getcameraids) + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### GetCameraIds() + + +``` +virtual CamRetCode OHOS::Camera::ICameraHost::GetCameraIds (std::vector< std::string > & cameraIds) +``` + +**描述:** + +获取当前可用的Camera设备ID列表。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| cameraIds | [OUT] 返回当前可用的设备列表 | + +**返回:** + +NO_ERROR 表示执行成功。 + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**参见:** + +[GetCameraAbility](#getcameraability) + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### GetEnabledResults() + + +``` +virtual CamRetCode OHOS::Camera::ICameraDevice::GetEnabledResults (std::vector< MetaType > & results) +``` + +**描述:** + +查询使能的metadata。 + +[EnableResult](#enableresult) 使能需要上报的metadata之后,可通过此接口查询使能的metadata。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| results | [OUT] 所有使能的metadata。 | + +**返回:** + +NO_ERROR 表示执行成功。 + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### GetStreamAttributes() + + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::GetStreamAttributes (std::vector< std::shared_ptr< StreamAttribute >> & attributes) +``` + +**描述:** + +获取流的属性。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| attributes | [OUT] 用于获取流的属性。在调用[CreateStreams](#createstreams) 时,通过参数streamInfos携带的流信息 可能会被重写,因此通过该接口获取的流属性可能会。 和 [CreateStreams](#createstreams) 输入的流信息存在差异。 | + +**返回:** + +NO_ERROR 表示执行成功。 + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### GetStreamOperator() + + +``` +virtual CamRetCode OHOS::Camera::ICameraDevice::GetStreamOperator (const OHOS::sptr< IStreamOperatorCallback > & callback, OHOS::sptr< IStreamOperator > & streamOperator ) +``` + +**描述:** + +获取流操作句柄。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| callback | [IN] 设置流回调接口,详细可查看 [IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md), 用于上报捕获开始 **OnCaptureStarted**,捕获结束 **OnCaptureEnded**, **OnCaptureError** 捕获错误等信息。 | +| streamOperator | [OUT] 返回流操作句柄。 | + +**返回:** + +NO_ERROR 表示执行成功。 + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### IsStreamsSupported() + + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::IsStreamsSupported (OperationMode mode, const std::shared_ptr< CameraMetadata > & modeSetting, const std::vector< std::shared_ptr< StreamInfo >> & info, StreamSupportType & type ) +``` + +**描述:** + +查询是否支持添加参数对应的流。 + +流是指从底层设备输出,经本模块内部各环节处理,最终传递到上层服务或者应用的一组数据序列 本模块支持的流的类型有预览流,录像流,拍照流等,更多类型可查看 **StreamIntent**。 + +此函数接口根据输入的运行模式和配置信息以及当前模块中正在运行的流,查询是否支持动态添加流。 + +- 如果本模块支持在不停止其他流的情况下添加新流,或者即使停止其他流但上层服务或应用不感知,则通过type参数返回DYNAMIC_SUPPORTED,上层服务或应用可以直接添加新流。 + +- 如果本模块支持添加新流但需要上层服务或应用先停止所有流的捕获,则通过type参数返回RE_CONFIGURED_REQUIRED。 + +- 如果不支持添加输入的新流,则返回NOT_SUPPORTED。 + +此函数需要在调用 [CreateStreams](#createstreams) 创建流之前调用。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| mode | [IN] 流运行的模式,支持的模式参考 **OperationMode**。 | +| modeSetting | [IN] 流的配置,包括帧率,3A等配置信息。 | +| info | [IN] 流的配置信息,具体参考 [StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md)。 | +| type | [OUT] 对动态配置流的支持类型,支持类型定义在 **StreamSupportType**。 | + +**返回:** + +NO_ERROR 表示执行成功。 + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### OnCameraEvent() + + +``` +virtual void OHOS::Camera::ICameraHostCallback::OnCameraEvent (const std::string & cameraId, CameraEvent event ) +``` + +**描述:** + +在相机事件发生时调用。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| cameraId | 表示相机事件绑定的相机ID。 | +| event | 表示相机事件类型。 | + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### OnCameraStatus() + + +``` +virtual void OHOS::Camera::ICameraHostCallback::OnCameraStatus (const std::string & cameraId, CameraStatus status ) +``` + +**描述:** + +用于Camera设备状态变化时上报状态信息给调用者。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| cameraId | [IN] 状态发生变化的Camera设备ID。 | +| status | [IN] 最新的设备状态。 | + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### OnCaptureEnded() + + +``` +virtual void OHOS::Camera::IStreamOperatorCallback::OnCaptureEnded (int32_t captureId, const std::vector< std::shared_ptr< CaptureEndedInfo >> & infos ) +``` + +**描述:** + +捕获结束回调,在捕获结束时调用。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| captureId | [IN] 用于标识回调对应的捕获请求。 | +| infos | [IN] 捕获结束相关信息。 | + +**参见:** + +[OnCaptureStarted](#oncapturestarted) + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### OnCaptureError() + + +``` +virtual void OHOS::Camera::IStreamOperatorCallback::OnCaptureError (int32_t captureId, const std::vector< std::shared_ptr< CaptureErrorInfo >> & infos ) +``` + +**描述:** + +捕获错误回调,在捕获过程中发生错误时调用。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| captureId | [IN] 用于标识回调对应的捕获请求。 | +| infos | [IN] 捕获错误信息列表。 | + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### OnCaptureStarted() + + +``` +virtual void OHOS::Camera::IStreamOperatorCallback::OnCaptureStarted (int32_t captureId, const std::vector< int32_t > & streamIds ) +``` + +**描述:** + +捕获开始回调,在捕获开始时调用。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| captureId | [IN] 用于标识回调对应的捕获请求。 | +| streamIds | [IN] 回调对应的流集合。 | + +**参见:** + +[OnCaptureEnded](#oncaptureended) + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### OnError() + + +``` +virtual void OHOS::Camera::ICameraDeviceCallback::OnError (ErrorType type, int32_t errorCode ) +``` + +**描述:** + +设备发生错误时调用,由调用者实现,用于返回错误信息给调用者。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| type | [IN] 错误类型,具体错误类型可参考 **ErrorType**。 | +| errorCode | [IN] 错误码,当前暂未使用。 | + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### OnFlashlightStatus() + + +``` +virtual void OHOS::Camera::ICameraHostCallback::OnFlashlightStatus (const std::string & cameraId, FlashlightStatus status ) +``` + +**描述:** + +用于在闪光灯状态变化时上报状态信息给调用者。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| cameraId | [IN] 状态发生变化的闪关灯所绑定的Camera设备ID。 | +| status | [IN] 最新的闪光灯状态。 | + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### OnFrameShutter() + + +``` +virtual void OHOS::Camera::IStreamOperatorCallback::OnFrameShutter (int32_t captureId, const std::vector< int32_t > & streamIds, uint64_t timestamp ) +``` + +**描述:** + +帧捕获回调。 + +通过 **Capture** 的输入参数 [CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md) 的enableShutterCallback_使能该回调, 使能后每次捕获均会触发此回调。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| captureId | [IN] 用于标识回调对应的捕获请求。 | +| streamIds | [IN] 回调对应的流集合。 | +| timestamp | [IN] 该接口被调用时的时间戳。 | + +**参见:** + +Capture + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### OnResult() + + +``` +virtual void OHOS::Camera::ICameraDeviceCallback::OnResult (uint64_t timestamp, const std::shared_ptr< CameraMetadata > & result ) +``` + +**描述:** + +上报camera设备相关的metadata的回调,上报方式查看 [SetResultMode](#setresultmode)。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| timestamp | [IN] metadata上报的时间戳。 | +| result | [IN] 上报的metadata,上报的metadata由 **EnableResult** 指定, 可通过 **GetEnabledResults** 查询,**DisableResult** 关闭上报开关。 | + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### OpenCamera() + + +``` +virtual CamRetCode OHOS::Camera::ICameraHost::OpenCamera (const std::string & cameraId, const OHOS::sptr< ICameraDeviceCallback > & callback, OHOS::sptr< ICameraDevice > & device ) +``` + +**描述:** + +打开Camera设备。 + +打开指定的Camera设备,通过此接口可以获取到ICameraDevice对象,通过ICameraDevice对象可以操作具体的Camera设备。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| cameraId | [IN] 需要打开的Camera设备ID,可通过 [GetCameraIds](#getcameraids) 接口获取当前已有Camera设备列表。 | +| callback | [IN] camera设备相关的回调函数,具体参见 [ICameraDeviceCallback](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md)。 | +| device | [OUT] 返回当前要打开的Camera设备ID对应的ICameraDevice对象。 | + +**返回:** + +NO_ERROR 表示执行成功; + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**参见:** + +[GetCameraIds](#getcameraids) + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### Release() + + +``` +virtual CamRetCode OHOS::Camera::IOfflineStreamOperator::Release () +``` + +**描述:** + +释放所有离线流。 + +**返回:** + +NO_ERROR 表示执行成功; + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### ReleaseStreams() [1/2] + + +``` +virtual CamRetCode OHOS::Camera::IOfflineStreamOperator::ReleaseStreams (const std::vector< int > & streamIds) +``` + +**描述:** + +释放离线流。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| streamIds | 用于标识要释放的离线流集合。 | + +**返回:** + +NO_ERROR 表示执行成功。 + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### ReleaseStreams() [2/2] + + +``` +virtual CamRetCode OHOS::Camera::IStreamOperator::ReleaseStreams (const std::vector< int > & streamIds) +``` + +**描述:** + +释放流。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| streamIds | [IN] 要释放的流ID列表。 | + +**返回:** + +NO_ERROR 表示执行成功; + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### SetCallback() + + +``` +virtual CamRetCode OHOS::Camera::ICameraHost::SetCallback (const OHOS::sptr< ICameraHostCallback > & callback) +``` + +**描述:** + +设置ICameraHost回调接口,回调函数参考 [ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md)。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| callback | [IN] 要设置的回调函数。 | + +**返回:** + +NO_ERROR 表示执行成功。 + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### SetFlashlight() + + +``` +virtual CamRetCode OHOS::Camera::ICameraHost::SetFlashlight (const std::string & cameraId, bool & isEnable ) +``` + +**描述:** + +打开或关闭闪光灯。 + +该接口只能由打开cameraId指定Camera设备的调用者调用。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| cameraId | [IN] 闪光灯对应的Camera设备ID。 | +| isEnable | [IN] true打开闪光灯,false关闭闪光灯。 | + +**返回:** + +NO_ERROR 表示执行成功。 + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**参见:** + +[GetCameraIds](#getcameraids) + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### SetResultMode() + + +``` +virtual CamRetCode OHOS::Camera::ICameraDevice::SetResultMode (const ResultCallbackMode & mode) +``` + +**描述:** + +设置metadata上报模式,逐帧上报还是设备状态变化时上报。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| mode | [IN] metadata的上报模式,逐帧上报或者设备状态变化时上报,查看 **ResultCallbackMode**。 | + +**返回:** + +NO_ERROR 表示执行成功。 + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### UpdateSettings() + + +``` +virtual CamRetCode OHOS::Camera::ICameraDevice::UpdateSettings (const std::shared_ptr< CameraSetting > & settings) +``` + +**描述:** + +更新设备控制参数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| settings | [IN] Camera设置参数,包括sensor帧率,3A相关参数等。 | + +**返回:** + +NO_ERROR 表示执行成功。 + +其他值表示执行失败,具体错误码查看 [CamRetCode](#camretcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **变量说明** + + +### bufferQueue_ + + +``` +OHOS::sptr OHOS::Camera::StreamInfo::bufferQueue_ +``` + +**描述:** + +图形提供的生产者句柄。 + + +### captureSetting_ + + +``` +std::shared_ptr OHOS::Camera::CaptureInfo::captureSetting_ +``` + +**描述:** + +捕获的配置信息。 + + +### dataspace_ + + +``` +int OHOS::Camera::StreamInfo::dataspace_ +``` + +**描述:** + +图像颜色空间。 + + +### enableShutterCallback_ + + +``` +bool OHOS::Camera::CaptureInfo::enableShutterCallback_ +``` + +**描述:** + +使能捕获回调,每一次捕获后都会触发 **OnFrameShutter**。 + + +### encodeType_ + + +``` +EncodeType OHOS::Camera::StreamInfo::encodeType_ +``` + +**描述:** + +编码类型。 + + +### error_ + + +``` +StreamError OHOS::Camera::CaptureErrorInfo::error_ +``` + +**描述:** + +错误类型。 + + +### format_ + + +``` +int OHOS::Camera::StreamInfo::format_ +``` + +**描述:** + +图像格式。 + + +### frameCount_ + + +``` +int OHOS::Camera::CaptureEndedInfo::frameCount_ +``` + +**描述:** + +捕获结束时已经抓取的帧数。 + + +### height_ [1/2] + + +``` +int OHOS::Camera::StreamInfo::height_ +``` + +**描述:** + +图像高度。 + + +### height_ [2/2] + + +``` +int OHOS::Camera::StreamAttribute::height_ +``` + +**描述:** + +图像高度。 + + +### intent_ + + +``` +StreamIntent OHOS::Camera::StreamInfo::intent_ +``` + +**描述:** + +流类型。 + + +### maxBatchCaptureCount_ + + +``` +int OHOS::Camera::StreamAttribute::maxBatchCaptureCount_ +``` + +**描述:** + +连拍支持的最大捕获帧数量。 + + +### maxCaptureCount_ + + +``` +int OHOS::Camera::StreamAttribute::maxCaptureCount_ +``` + +**描述:** + +最大的并发捕获请求个数,默认为1。 + + +### minFrameDuration_ + + +``` +int OHOS::Camera::StreamInfo::minFrameDuration_ +``` + +**描述:** + +最小帧间隔。 + + +### overrideDataspace_ + + +``` +int OHOS::Camera::StreamAttribute::overrideDataspace_ +``` + +**描述:** + +重写的图像颜色空间。 + + +### overrideFormat_ + + +``` +int OHOS::Camera::StreamAttribute::overrideFormat_ +``` + +**描述:** + +重写的图像格式。 + + +### producerBufferCount_ + + +``` +int OHOS::Camera::StreamAttribute::producerBufferCount_ +``` + +**描述:** + +重写后的生产者缓存数量。 + + +### producerUsage_ + + +``` +int OHOS::Camera::StreamAttribute::producerUsage_ +``` + +**描述:** + +重写后的生产者的使用方式。 + + +### streamId_ [1/4] + + +``` +int OHOS::Camera::StreamInfo::streamId_ +``` + +**描述:** + +流的ID,用于在设备内唯一标识一条流。 + + +### streamId_ [2/4] + + +``` +int OHOS::Camera::StreamAttribute::streamId_ +``` + +**描述:** + +流的ID,用于在设备内唯一标识一条流。 + + +### streamId_ [3/4] + + +``` +int OHOS::Camera::CaptureEndedInfo::streamId_ +``` + +**描述:** + +捕获的流ID。 + + +### streamId_ [4/4] + + +``` +int OHOS::Camera::CaptureErrorInfo::streamId_ +``` + +**描述:** + +流ID。 + + +### streamIds_ + + +``` +std::vector OHOS::Camera::CaptureInfo::streamIds_ +``` + +**描述:** + +捕获的流ID集合。 + + +### tunneledMode_ + + +``` +bool OHOS::Camera::StreamInfo::tunneledMode_ +``` + +**描述:** + +隧道模式,值为true时开启,false关闭。 + +开启隧道模式后,HAL不直接和上层交互,通过图形提供的生产者句柄来传递帧数据, 对于一些IOT设备,可能不需要或者不支持预览流的图像数据缓存流转,此时需要关闭隧道模式。 + + +### width_ [1/2] + + +``` +int OHOS::Camera::StreamInfo::width_ +``` + +**描述:** + +图像宽度。 + + +### width_ [2/2] + + +``` +int OHOS::Camera::StreamAttribute::width_ +``` + +**描述:** + +图像宽度。 diff --git a/zh-cn/device-dev/api/_codec.md b/zh-cn/device-dev/api/_codec.md new file mode 100644 index 0000000000..9371a0598b --- /dev/null +++ b/zh-cn/device-dev/api/_codec.md @@ -0,0 +1,1346 @@ +# Codec + + +## **汇总** + + +### 文件 + + | 文件 | 描述 | +| -------- | -------- | +| [codec_callback_if.h](codec__callback__if_8h.md) | 主要包括回调函数接口定义。 | +| [codec_common_type.h](codec__common__type_8h.md) | Codec模块接口定义中使用的自定义数据类型。 | +| [codec_component_if.h](codec__component__if_8h.md) | 主要包括Codec组件接口定义。 | +| [codec_component_manager.h](codec__component__manager_8h.md) | 主要包括Codec组件管理类接口。 | +| [codec_component_type.h](codec__component__type_8h.md) | Codec模块接口定义中使用的自定义数据类型。 | + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [CodecCallbackType](_codec_callback_type.md) | Codec回调接口定义。 [更多...](_codec_callback_type.md) | +| [Alignment](_alignment.md) | 对齐结构定义,包含宽高的对齐值。 [更多...](_alignment.md) | +| [Rect](_rect.md) | 矩形的定义。 [更多...](_rect.md) | +| [RangeValue](_range_value.md) | 取值范围的定义。 [更多...](_range_value.md) | +| [CodecComponentType](_codec_component_type.md) | Codec组件接口定义。 [更多...](_codec_component_type.md) | +| [CodecComponentManager](_codec_component_manager.md) | Codec组件管理类接口定义。 [更多...](_codec_component_manager.md) | +| [VideoPortCap](_video_port_cap.md) | 定义视频编解码能力。 [更多...](_video_port_cap.md) | +| [AudioPortCap](_audio_port_cap.md) | 定义音频编解码能力。 [更多...](_audio_port_cap.md) | +| [PortCap](union_port_cap.md) | 定义音视频编解码能力。 [更多...](union_port_cap.md) | +| [CodecCompCapability](_codec_comp_capability.md) | 定义Codec编解码能力。 [更多...](_codec_comp_capability.md) | +| [OmxCodecBuffer](_omx_codec_buffer.md) | Codec buffer信息的定义。 [更多...](_omx_codec_buffer.md) | +| [CompVerInfo](_comp_ver_info.md) | 定义组件版本信息。 [更多...](_comp_ver_info.md) | +| [EventInfo](_event_info.md) | 定义事件上报信息。 [更多...](_event_info.md) | +| [SupportBufferType](_support_buffer_type.md) | SupportBuffer类型定义。 [更多...](_support_buffer_type.md) | +| [UseBufferType](_use_buffer_type.md) | UseBuffer类型定义。 [更多...](_use_buffer_type.md) | +| [GetBufferHandleUsageParams](_get_buffer_handle_usage_params.md) | BufferHandleUsage类型定义。 [更多...](_get_buffer_handle_usage_params.md) | + + +### 宏定义 + + | 宏定义 | 描述 | +| -------- | -------- | +| SAMPLE_FMT_NUM    32 | 采样格式最大值。 | +| UUID_LENGTH    128 | 定义UUID长度。 | +| PIX_FORMAT_NUM    16 | 支持的像素格式数组大小。 | +| SAMPLE_FORMAT_NUM    12 | 支持的音频采样格式数组大小。 | +| SAMPLE_RATE_NUM    16 | 支持的音频采样率数组大小。 | +| CHANNEL_NUM    16 | 支持的音频通道数组大小。 | +| NAME_LENGTH    32 | 组件名称大小。 | +| PROFILE_NUM    256 | 支持的profile数组大小。 | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [CodecType](#codectype) {   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1226574869083931,link:zh-cn_topic_0000001348174217.xml#gga03b4b6ae5fb82af68d46aaea3d3e4d79a19c3c7765c55583a64e21938e2439261](#gga03b4b6ae5fb82af68d46aaea3d3e4d79a19c3c7765c55583a64e21938e2439261), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1400049721083931,link:zh-cn_topic_0000001348174217.xml#gga03b4b6ae5fb82af68d46aaea3d3e4d79ad8044bc5b7d871723be90b5b6a094992](#gga03b4b6ae5fb82af68d46aaea3d3e4d79ad8044bc5b7d871723be90b5b6a094992), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1868464496083931,link:zh-cn_topic_0000001348174217.xml#gga03b4b6ae5fb82af68d46aaea3d3e4d79ae4ade329585f6c202847138e3f9cd4a4](#gga03b4b6ae5fb82af68d46aaea3d3e4d79ae4ade329585f6c202847138e3f9cd4a4), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref351084008083931,link:zh-cn_topic_0000001348174217.xml#gga03b4b6ae5fb82af68d46aaea3d3e4d79a7f7f3d3880168089c1de6d1ebc3dbb54](#gga03b4b6ae5fb82af68d46aaea3d3e4d79a7f7f3d3880168089c1de6d1ebc3dbb54),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref700718642083931,link:zh-cn_topic_0000001348174217.xml#gga03b4b6ae5fb82af68d46aaea3d3e4d79a7314b0d0e4638eaaeb8690b8555a6546](#gga03b4b6ae5fb82af68d46aaea3d3e4d79a7314b0d0e4638eaaeb8690b8555a6546) } | 枚举编解码的类型。 [更多...](#codectype) | +| [Profile](#profile) {   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1657963075083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01a6d67944b4958ad33b0eeb851bbcd169f](#gga85b10143618f300ff4f5bc6d45c72c01a6d67944b4958ad33b0eeb851bbcd169f) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2118494792083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01ad91765d6dcad7253a924d3cb30501e44](#gga85b10143618f300ff4f5bc6d45c72c01ad91765d6dcad7253a924d3cb30501e44) = 0x1000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref558204117083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01aada4d857818cd9aa1ad62cdf608dab6b](#gga85b10143618f300ff4f5bc6d45c72c01aada4d857818cd9aa1ad62cdf608dab6b), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref719764591083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01ab4255dc0e7450af4f526b85acbabfd3e](#gga85b10143618f300ff4f5bc6d45c72c01ab4255dc0e7450af4f526b85acbabfd3e),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1592491779083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01a9b54f7a8c45ea6d4804133d8de4b8dd8](#gga85b10143618f300ff4f5bc6d45c72c01a9b54f7a8c45ea6d4804133d8de4b8dd8), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2093958921083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01afaaacd4f6bdadac28b5cf49ae8f8470a](#gga85b10143618f300ff4f5bc6d45c72c01afaaacd4f6bdadac28b5cf49ae8f8470a), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1758087689083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01a7c8028283d1ff60e486b3305bf8c1adc](#gga85b10143618f300ff4f5bc6d45c72c01a7c8028283d1ff60e486b3305bf8c1adc), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1928953065083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01a5bab002f00d3d7281aedc4807123a47a](#gga85b10143618f300ff4f5bc6d45c72c01a5bab002f00d3d7281aedc4807123a47a) = 0x2000,   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref166414379083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01a323c1d6e02363f1717f7e6b33fd9a646](#gga85b10143618f300ff4f5bc6d45c72c01a323c1d6e02363f1717f7e6b33fd9a646), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref27655933083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01ab9406e6bf30a0c128c3639cce51fe246](#gga85b10143618f300ff4f5bc6d45c72c01ab9406e6bf30a0c128c3639cce51fe246), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref231585948083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01ae0d37dc2c7d39753a80f6e0ba64e5e22](#gga85b10143618f300ff4f5bc6d45c72c01ae0d37dc2c7d39753a80f6e0ba64e5e22) = 0x3000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2079710423083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01a811b9e02d8b0afa93e7ab8d2aa7e5de6](#gga85b10143618f300ff4f5bc6d45c72c01a811b9e02d8b0afa93e7ab8d2aa7e5de6) } | 枚举Codec规格。 [更多...](#profile) | +| [AudioSampleRate](#audiosamplerate) {   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1918023658083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842a65d5a1e4d1f048a33d29c9a3b6f540bd](#ggaa0280074adafe6d2581d31f71512b842a65d5a1e4d1f048a33d29c9a3b6f540bd) = 8000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref864113223083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842ac8379e14b05cdac5edfcc931ac8b33a9](#ggaa0280074adafe6d2581d31f71512b842ac8379e14b05cdac5edfcc931ac8b33a9) = 12000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1504523782083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842a57b1853b1e309bf1aa5b3a35b06b0f81](#ggaa0280074adafe6d2581d31f71512b842a57b1853b1e309bf1aa5b3a35b06b0f81) = 11025, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref215148463083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842a43395f0fe94ae2949778468e4488c3ee](#ggaa0280074adafe6d2581d31f71512b842a43395f0fe94ae2949778468e4488c3ee) = 16000,   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref291741590083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842a5e8155ecfa865686a66e004e37ce1e54](#ggaa0280074adafe6d2581d31f71512b842a5e8155ecfa865686a66e004e37ce1e54) = 22050, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref955843961083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842abd4c09d52f3da25adb108e9aa503119d](#ggaa0280074adafe6d2581d31f71512b842abd4c09d52f3da25adb108e9aa503119d) = 24000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1548100102083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842a1f94827fe757ad2857d970638b6f8d66](#ggaa0280074adafe6d2581d31f71512b842a1f94827fe757ad2857d970638b6f8d66) = 32000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1810460978083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842ac880553f2ee154a240d9414598e006a2](#ggaa0280074adafe6d2581d31f71512b842ac880553f2ee154a240d9414598e006a2) = 44100,   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1133692547083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842ade6dd509c28b66127c42d2634866b89c](#ggaa0280074adafe6d2581d31f71512b842ade6dd509c28b66127c42d2634866b89c) = 48000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref735747655083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842a925218c15bb8522796e623a09d99dbc3](#ggaa0280074adafe6d2581d31f71512b842a925218c15bb8522796e623a09d99dbc3) = 64000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1390737663083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842a48336a808a2ebcf5956995140e2d73dd](#ggaa0280074adafe6d2581d31f71512b842a48336a808a2ebcf5956995140e2d73dd) = 96000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref261510881083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842a0cb82ce52fb70b359a0b2232f7f465a2](#ggaa0280074adafe6d2581d31f71512b842a0cb82ce52fb70b359a0b2232f7f465a2) } | 枚举音频采样率。 [更多...](#audiosamplerate) | +| [CodecCapsMask](#codeccapsmask) { [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1008129247083931,link:zh-cn_topic_0000001348174217.xml#gga9e2fbfb8a5881de2f495933f90f23b3fa30c688a80d3e64a3f5c2a13da89eef3c](#gga9e2fbfb8a5881de2f495933f90f23b3fa30c688a80d3e64a3f5c2a13da89eef3c) = 0x1, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1068884083931,link:zh-cn_topic_0000001348174217.xml#gga9e2fbfb8a5881de2f495933f90f23b3fa33911c21f51bcd1980645cac6d0729ca](#gga9e2fbfb8a5881de2f495933f90f23b3fa33911c21f51bcd1980645cac6d0729ca) = 0x2, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1215364952083931,link:zh-cn_topic_0000001348174217.xml#gga9e2fbfb8a5881de2f495933f90f23b3fa423e1b0d0a7dc9e4abeeded920aafb5b](#gga9e2fbfb8a5881de2f495933f90f23b3fa423e1b0d0a7dc9e4abeeded920aafb5b) = 0x4, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref825851473083931,link:zh-cn_topic_0000001348174217.xml#gga9e2fbfb8a5881de2f495933f90f23b3fa0da8339e6a216573d7dc3b8d4380d96d](#gga9e2fbfb8a5881de2f495933f90f23b3fa0da8339e6a216573d7dc3b8d4380d96d) = 0x10000 } | 枚举播放能力。 [更多...](#codeccapsmask) | +| [CodecProcessMode](#codecprocessmode) {   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref611947245083931,link:zh-cn_topic_0000001348174217.xml#gga5bec468886b760c542669b1615613dc4a0324b4efc6d2095c788806bf387955fe](#gga5bec468886b760c542669b1615613dc4a0324b4efc6d2095c788806bf387955fe) = 0X1, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref177076729083931,link:zh-cn_topic_0000001348174217.xml#gga5bec468886b760c542669b1615613dc4acba39cb03563db7f38634009575fdc21](#gga5bec468886b760c542669b1615613dc4acba39cb03563db7f38634009575fdc21) = 0X2, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1743979161083931,link:zh-cn_topic_0000001348174217.xml#gga5bec468886b760c542669b1615613dc4a2ebd571bd15c86c289b04617e78584ec](#gga5bec468886b760c542669b1615613dc4a2ebd571bd15c86c289b04617e78584ec) = 0X4, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1013858360083931,link:zh-cn_topic_0000001348174217.xml#gga5bec468886b760c542669b1615613dc4a73009c59abb2943e3363ad0aeefa81c1](#gga5bec468886b760c542669b1615613dc4a73009c59abb2943e3363ad0aeefa81c1) = 0X100,   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1641056342083931,link:zh-cn_topic_0000001348174217.xml#gga5bec468886b760c542669b1615613dc4ab943f6f6a762a47e663b74f42941fe9e](#gga5bec468886b760c542669b1615613dc4ab943f6f6a762a47e663b74f42941fe9e) = 0X200, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1328533278083931,link:zh-cn_topic_0000001348174217.xml#gga5bec468886b760c542669b1615613dc4a5421710be01e8656530fb22f39e766ea](#gga5bec468886b760c542669b1615613dc4a5421710be01e8656530fb22f39e766ea) = 0X400 } | 枚举编解码处理模式。 [更多...](#codecprocessmode) | +| [AvCodecRole](#avcodecrole) {   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref173493394083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5ac261edd4c0d6eed15f6317024810dee2](#gga7c1ff03fc0cd5a8f738afae873b5d5d5ac261edd4c0d6eed15f6317024810dee2) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref688238919083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5adebef2ce1107d74e5d4f91d3452c823d](#gga7c1ff03fc0cd5a8f738afae873b5d5d5adebef2ce1107d74e5d4f91d3452c823d), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1904733606083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5af84180255d50e9ae94cedfc35ad19056](#gga7c1ff03fc0cd5a8f738afae873b5d5d5af84180255d50e9ae94cedfc35ad19056), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref978692029083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5a9e653abe452b248670825bd468f59d20](#gga7c1ff03fc0cd5a8f738afae873b5d5d5a9e653abe452b248670825bd468f59d20) = 0x10000,   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2040328027083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5ac9627d3deaca6bbf69f03c0dee1b6c05](#gga7c1ff03fc0cd5a8f738afae873b5d5d5ac9627d3deaca6bbf69f03c0dee1b6c05) = 0x10000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1552553578083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5a033c0faacbd270fa2c539686e6d60551](#gga7c1ff03fc0cd5a8f738afae873b5d5d5a033c0faacbd270fa2c539686e6d60551), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref389010746083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5ae0170e900d835de44884f483b28b10f8](#gga7c1ff03fc0cd5a8f738afae873b5d5d5ae0170e900d835de44884f483b28b10f8), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref297358192083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5a1bd136ced64ce1ab7b9e45fb0f5d75b6](#gga7c1ff03fc0cd5a8f738afae873b5d5d5a1bd136ced64ce1ab7b9e45fb0f5d75b6),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1063220299083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5a30e0f43909d411eb0f4c4fd8f9216dd8](#gga7c1ff03fc0cd5a8f738afae873b5d5d5a30e0f43909d411eb0f4c4fd8f9216dd8), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref829862961083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5aec847c178f28118703297fb600907338](#gga7c1ff03fc0cd5a8f738afae873b5d5d5aec847c178f28118703297fb600907338), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1628407345083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5aee058a8e8a635efc2ed3328440a58e45](#gga7c1ff03fc0cd5a8f738afae873b5d5d5aee058a8e8a635efc2ed3328440a58e45) } | 枚举音视频编解码组件类型。 [更多...](#avcodecrole) | +| [AudioSampleFormat](#audiosampleformat) {   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2003574848083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a2d8a330d2cb71268562e1c4da0c4eabc](#gga97cfd5633b2133e7ebe42dbb9b03e757a2d8a330d2cb71268562e1c4da0c4eabc), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref620047795083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a4eb79a5d6d99244902cfb5c65f225c80](#gga97cfd5633b2133e7ebe42dbb9b03e757a4eb79a5d6d99244902cfb5c65f225c80), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref142894648083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757ab6d04d1d87a9a243b195ab6be183600e](#gga97cfd5633b2133e7ebe42dbb9b03e757ab6d04d1d87a9a243b195ab6be183600e), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref6705514083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757aeffb8620959b836e01622c7dc82ebc6d](#gga97cfd5633b2133e7ebe42dbb9b03e757aeffb8620959b836e01622c7dc82ebc6d),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref66699849083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a4422a2a04509e492ef823189d454d5a3](#gga97cfd5633b2133e7ebe42dbb9b03e757a4422a2a04509e492ef823189d454d5a3), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1172713521083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a11a1fb37c21f722383a37fc5e6075dfe](#gga97cfd5633b2133e7ebe42dbb9b03e757a11a1fb37c21f722383a37fc5e6075dfe), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1455558145083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757af961944b4c8e77ee56defc30e6e61eb5](#gga97cfd5633b2133e7ebe42dbb9b03e757af961944b4c8e77ee56defc30e6e61eb5), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref104700168083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a08ba605e3e58479ebb7432ff5d6d0972](#gga97cfd5633b2133e7ebe42dbb9b03e757a08ba605e3e58479ebb7432ff5d6d0972),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1333780014083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a102520af7c50d1ee4951e472f5f921e4](#gga97cfd5633b2133e7ebe42dbb9b03e757a102520af7c50d1ee4951e472f5f921e4), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref924177791083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757ae245cf6bd637c1f1304b38746f8940d6](#gga97cfd5633b2133e7ebe42dbb9b03e757ae245cf6bd637c1f1304b38746f8940d6), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2030780353083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a0d5fc3d14030aad7bc17d894bf4fc5c9](#gga97cfd5633b2133e7ebe42dbb9b03e757a0d5fc3d14030aad7bc17d894bf4fc5c9), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref350166403083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a0e8b7681ec3461988cb7fdd0f3616b2e](#gga97cfd5633b2133e7ebe42dbb9b03e757a0e8b7681ec3461988cb7fdd0f3616b2e),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2089368438083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a46819088770f843230d2b094fd8d14ba](#gga97cfd5633b2133e7ebe42dbb9b03e757a46819088770f843230d2b094fd8d14ba), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref828579509083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a7883f8a4bede55eb4ffaf6ecb47f6841](#gga97cfd5633b2133e7ebe42dbb9b03e757a7883f8a4bede55eb4ffaf6ecb47f6841), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1544127027083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757afae09ccb9fdae65e73e5584a4c3a6d16](#gga97cfd5633b2133e7ebe42dbb9b03e757afae09ccb9fdae65e73e5584a4c3a6d16), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2141626376083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a915025bfdcf9491a21b2d38dec7998cc](#gga97cfd5633b2133e7ebe42dbb9b03e757a915025bfdcf9491a21b2d38dec7998cc),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref584049049083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a2e5477f7cc05dcc271b50e570dfd0452](#gga97cfd5633b2133e7ebe42dbb9b03e757a2e5477f7cc05dcc271b50e570dfd0452), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1992155113083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757ab07b4d40994980a8012a79dc4a69a794](#gga97cfd5633b2133e7ebe42dbb9b03e757ab07b4d40994980a8012a79dc4a69a794), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1735639451083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a959950ea0f2b6c0e17d752640238c23b](#gga97cfd5633b2133e7ebe42dbb9b03e757a959950ea0f2b6c0e17d752640238c23b), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1946681433083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757aad2c58522f7d16111756c1731bf52044](#gga97cfd5633b2133e7ebe42dbb9b03e757aad2c58522f7d16111756c1731bf52044),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1380270506083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757ac3cb5729241a7f73210d97d4fe0002fe](#gga97cfd5633b2133e7ebe42dbb9b03e757ac3cb5729241a7f73210d97d4fe0002fe), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref614528807083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a1121b8995d1083f61b2fa0afcc45143f](#gga97cfd5633b2133e7ebe42dbb9b03e757a1121b8995d1083f61b2fa0afcc45143f), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref898289380083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a72f064169d0282fa8a152aea546056c3](#gga97cfd5633b2133e7ebe42dbb9b03e757a72f064169d0282fa8a152aea546056c3), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2105995988083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a1f0e407cd152b27f7b0ff761d26bb300](#gga97cfd5633b2133e7ebe42dbb9b03e757a1f0e407cd152b27f7b0ff761d26bb300),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref181714056083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757aad65a5b895b3dba000167dbb6c19b9ab](#gga97cfd5633b2133e7ebe42dbb9b03e757aad65a5b895b3dba000167dbb6c19b9ab), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1331090330083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a40335eaa7ca378540941909ed02b51a0](#gga97cfd5633b2133e7ebe42dbb9b03e757a40335eaa7ca378540941909ed02b51a0), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref786053352083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757ab98feafb8396c0190a4fb719a15ab7c5](#gga97cfd5633b2133e7ebe42dbb9b03e757ab98feafb8396c0190a4fb719a15ab7c5), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2109222277083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757ac2fb27a42b3f79e51dd71ce05b42f9db](#gga97cfd5633b2133e7ebe42dbb9b03e757ac2fb27a42b3f79e51dd71ce05b42f9db),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref612599514083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757afb8b12c44b4799f59a533609b4c360b5](#gga97cfd5633b2133e7ebe42dbb9b03e757afb8b12c44b4799f59a533609b4c360b5), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref667066201083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a8eb00238e7aa21d69f056d9292eb64d9](#gga97cfd5633b2133e7ebe42dbb9b03e757a8eb00238e7aa21d69f056d9292eb64d9), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1989032944083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a93008db1a966fee4a91b515fedc78cec](#gga97cfd5633b2133e7ebe42dbb9b03e757a93008db1a966fee4a91b515fedc78cec), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1021492727083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a6bb874f2726bb94d08914b366ae947d6](#gga97cfd5633b2133e7ebe42dbb9b03e757a6bb874f2726bb94d08914b366ae947d6),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref257850676083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a8a635bbd6c5df1a8a0fadb1d9602ea74](#gga97cfd5633b2133e7ebe42dbb9b03e757a8a635bbd6c5df1a8a0fadb1d9602ea74), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref385515098083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a467bd88ce7f736a433425695ed0a0dbc](#gga97cfd5633b2133e7ebe42dbb9b03e757a467bd88ce7f736a433425695ed0a0dbc), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref342798447083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a5c8f7c2c0f84e70f609f8fd4ffd2c910](#gga97cfd5633b2133e7ebe42dbb9b03e757a5c8f7c2c0f84e70f609f8fd4ffd2c910) } | 枚举音频采样格式。 [更多...](#audiosampleformat) | +| [CodecBufferType](#codecbuffertype) {   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1110288353083931,link:zh-cn_topic_0000001348174217.xml#ggaf63c168decbe7dc156ad3b4d575a0d46aba35b6e9b3ca08afcb012f723c07baee](#ggaf63c168decbe7dc156ad3b4d575a0d46aba35b6e9b3ca08afcb012f723c07baee) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2088381045083931,link:zh-cn_topic_0000001348174217.xml#ggaf63c168decbe7dc156ad3b4d575a0d46a4df6de0078bcf908fdb12d0ec1486899](#ggaf63c168decbe7dc156ad3b4d575a0d46a4df6de0078bcf908fdb12d0ec1486899) = 0x1, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref858706672083931,link:zh-cn_topic_0000001348174217.xml#ggaf63c168decbe7dc156ad3b4d575a0d46aaba95e9bf8ffbd7fe7512bc842d70ca5](#ggaf63c168decbe7dc156ad3b4d575a0d46aaba95e9bf8ffbd7fe7512bc842d70ca5) = 0x2, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref995851734083931,link:zh-cn_topic_0000001348174217.xml#ggaf63c168decbe7dc156ad3b4d575a0d46a90db1a10a238c832937c7a0e02287a79](#ggaf63c168decbe7dc156ad3b4d575a0d46a90db1a10a238c832937c7a0e02287a79) = 0x4,   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2022100500083931,link:zh-cn_topic_0000001348174217.xml#ggaf63c168decbe7dc156ad3b4d575a0d46a931ecc36727f5eb3baba00e0d2b8771e](#ggaf63c168decbe7dc156ad3b4d575a0d46a931ecc36727f5eb3baba00e0d2b8771e) = 0x8 } | 定义buffer类型。 [更多...](#codecbuffertype) | +| [ShareMemTypes](#sharememtypes) { [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2102640873083931,link:zh-cn_topic_0000001348174217.xml#ggae84516e039a3963772dfeebd4937cb8daa268821c7f672c1b968aeed0ad745dd0](#ggae84516e039a3963772dfeebd4937cb8daa268821c7f672c1b968aeed0ad745dd0) = 0x1, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1705786981083931,link:zh-cn_topic_0000001348174217.xml#ggae84516e039a3963772dfeebd4937cb8daa5af6f1eec0b9f19c72a1085cef7c0ff](#ggae84516e039a3963772dfeebd4937cb8daa5af6f1eec0b9f19c72a1085cef7c0ff) = 0x2 } | 枚举共享内存类型。 [更多...](#sharememtypes) | +| [OmxIndexCodecExType](#omxindexcodecextype) { [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1239243344083931,link:zh-cn_topic_0000001348174217.xml#gga0ab3a4efe29745d2b49944c4014e0c28a228f8b3c93f68da516a76db3f594625d](#gga0ab3a4efe29745d2b49944c4014e0c28a228f8b3c93f68da516a76db3f594625d) = OMX_IndexKhronosExtensions + 0x00a00000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref234312713083931,link:zh-cn_topic_0000001348174217.xml#gga0ab3a4efe29745d2b49944c4014e0c28aaab75f888d711f3168327535312117fa](#gga0ab3a4efe29745d2b49944c4014e0c28aaab75f888d711f3168327535312117fa), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1353327798083931,link:zh-cn_topic_0000001348174217.xml#gga0ab3a4efe29745d2b49944c4014e0c28a353c3ccfb9985619526c0c7a28c9cce8](#gga0ab3a4efe29745d2b49944c4014e0c28a353c3ccfb9985619526c0c7a28c9cce8), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref663473178083931,link:zh-cn_topic_0000001348174217.xml#gga0ab3a4efe29745d2b49944c4014e0c28a3dea5e61dc211290d54d79d35679199d](#gga0ab3a4efe29745d2b49944c4014e0c28a3dea5e61dc211290d54d79d35679199d) } | 枚举Codec扩展index。 [更多...](#omxindexcodecextype) | +| [OmxVideoExType](#omxvideoextype) { [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref979218263083931,link:zh-cn_topic_0000001348174217.xml#ggab1cbacdf16bc8912e69547b37022a9c1acf4ea0b624499e3a53c3b36f6217f6fe](#ggab1cbacdf16bc8912e69547b37022a9c1acf4ea0b624499e3a53c3b36f6217f6fe) = 11 } | 枚举Codec扩展编码类型。 [更多...](#omxvideoextype) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [CodecCallbackTypeGet](#codeccallbacktypeget) (struct HdfRemoteService \*remote) | 实例化CodecCallbackType对象。 [更多...](#codeccallbacktypeget) | +| [CodecCallbackTypeRelease](#codeccallbacktyperelease) (struct [CodecCallbackType](_codec_callback_type.md) \*instance) | 释放CodecCallbackType对象。 [更多...](#codeccallbacktyperelease) | +| [CodecComponentTypeGet](#codeccomponenttypeget) (struct HdfRemoteService \*remote) | 实例化CodecComponentType对象。 [更多...](#codeccomponenttypeget) | +| [CodecComponentTypeRelease](#codeccomponenttyperelease) (struct [CodecComponentType](_codec_component_type.md) \*instance) | 释放CodecComponentType对象。 [更多...](#codeccomponenttyperelease) | +| [GetCodecComponentManager](#getcodeccomponentmanager) (void) | 实例化CodecComponentManager对象。 [更多...](#getcodeccomponentmanager) | +| [CodecComponentManagerRelease](#codeccomponentmanagerrelease) (void) | 释放CodecComponentManager对象。 [更多...](#codeccomponentmanagerrelease) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| [CodecCallbackType::remote](#remote) | 指向HdfRemoteService的指针。 [更多...](#remote) | +| ( [CodecCallbackType::EventHandler](#eventhandler) )(struct [CodecCallbackType](_codec_callback_type.md) \*self, enum OMX_EVENTTYPE event, struct [EventInfo](_event_info.md) \*info) | 事件上报。 [更多...](#eventhandler) | +| ( [CodecCallbackType::EmptyBufferDone](#emptybufferdone) )(struct [CodecCallbackType](_codec_callback_type.md) \*self, int8_t \*appData, uint32_t appDataLen, const struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 上报输入buffer编码或者解码处理完毕。 [更多...](#emptybufferdone) | +| ( [CodecCallbackType::FillBufferDone](#fillbufferdone) )(struct [CodecCallbackType](_codec_callback_type.md) \*self, int8_t \*appData, uint32_t appDataLen, struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 上报输出buffer填充完毕。 [更多...](#fillbufferdone) | +| ( [CodecComponentType::GetComponentVersion](#getcomponentversion) )(struct [CodecComponentType](_codec_component_type.md) \*self, struct [CompVerInfo](_comp_ver_info.md) \*verInfo) | 获取Codec组件版本号。 [更多...](#getcomponentversion) | +| ( [CodecComponentType::SendCommand](#sendcommand) )(struct [CodecComponentType](_codec_component_type.md) \*self, enum OMX_COMMANDTYPE cmd, uint32_t param, int8_t \*cmdData, uint32_t cmdDataLen) | 发送命令给组件。 [更多...](#sendcommand) | +| ( [CodecComponentType::GetParameter](#getparameter) )(struct [CodecComponentType](_codec_component_type.md) \*self, uint32_t paramIndex, int8_t \*paramStruct, uint32_t paramStructLen) | 获取组件参数设置。 [更多...](#getparameter) | +| ( [CodecComponentType::SetParameter](#setparameter) )(struct [CodecComponentType](_codec_component_type.md) \*self, uint32_t index, int8_t \*paramStruct, uint32_t paramStructLen) | 设置组件需要的参数。 [更多...](#setparameter) | +| ( [CodecComponentType::GetConfig](#getconfig) )(struct [CodecComponentType](_codec_component_type.md) \*self, uint32_t index, int8_t \*cfgStruct, uint32_t cfgStructLen) | 获取组件的配置结构。 [更多...](#getconfig) | +| ( [CodecComponentType::SetConfig](#setconfig) )(struct [CodecComponentType](_codec_component_type.md) \*self, uint32_t index, int8_t \*cfgStruct, uint32_t cfgStructLen) | 设置组件的配置。 [更多...](#setconfig) | +| ( [CodecComponentType::GetExtensionIndex](#getextensionindex) )(struct [CodecComponentType](_codec_component_type.md) \*self, const char \*paramName, uint32_t \*indexType) | 根据字符串获取组件的扩展索引。 [更多...](#getextensionindex) | +| ( [CodecComponentType::GetState](#getstate) )(struct [CodecComponentType](_codec_component_type.md) \*self, enum OMX_STATETYPE \*state) | 获取组件的当前状态。 [更多...](#getstate) | +| ( [CodecComponentType::ComponentTunnelRequest](#componenttunnelrequest) )(struct [CodecComponentType](_codec_component_type.md) \*self, uint32_t port, int32_t tunneledComp, uint32_t tunneledPort, struct OMX_TUNNELSETUPTYPE \*tunnelSetup) | 设置组件采用Tunnel方式通信。 [更多...](#componenttunnelrequest) | +| ( [CodecComponentType::UseBuffer](#usebuffer) )(struct [CodecComponentType](_codec_component_type.md) \*self, uint32_t portIndex, struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 指定组件端口的buffer。 [更多...](#usebuffer) | +| ( [CodecComponentType::AllocateBuffer](#allocatebuffer) )(struct [CodecComponentType](_codec_component_type.md) \*self, uint32_t portIndex, struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 向组件申请端口buffer。 [更多...](#allocatebuffer) | +| ( [CodecComponentType::FreeBuffer](#freebuffer) )(struct [CodecComponentType](_codec_component_type.md) \*self, uint32_t portIndex, const struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 释放buffer。 [更多...](#freebuffer) | +| ( [CodecComponentType::EmptyThisBuffer](#emptythisbuffer) )(struct [CodecComponentType](_codec_component_type.md) \*self, const struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 编解码输入待处理buffer。 [更多...](#emptythisbuffer) | +| ( [CodecComponentType::FillThisBuffer](#fillthisbuffer) )(struct [CodecComponentType](_codec_component_type.md) \*self, const struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 编解码输出填充buffer。 [更多...](#fillthisbuffer) | +| ( [CodecComponentType::SetCallbacks](#setcallbacks) )(struct [CodecComponentType](_codec_component_type.md) \*self, struct [CodecCallbackType](_codec_callback_type.md) \*callback, int8_t \*appData, uint32_t appDataLen) | 设置Codec组件的回调函数。 [更多...](#setcallbacks) | +| ( [CodecComponentType::ComponentDeInit](#componentdeinit) )(struct [CodecComponentType](_codec_component_type.md) \*self) | 组件去初始化。 [更多...](#componentdeinit) | +| ( [CodecComponentType::UseEglImage](#useeglimage) )(struct [CodecComponentType](_codec_component_type.md) \*self, struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer, uint32_t portIndex, int8_t \*eglImage, uint32_t eglImageLen) | 使用已在EGL中申请的空间。 [更多...](#useeglimage) | +| ( [CodecComponentType::ComponentRoleEnum](#componentroleenum) )(struct [CodecComponentType](_codec_component_type.md) \*self, uint8_t \*role, uint32_t roleLen, uint32_t index) | 获取组件角色。 [更多...](#componentroleenum) | + + +## **详细描述** + +Codec模块接口定义。 + +Codec模块涉及自定义类型、音视频编解码组件初始化、参数设置、数据的轮转和控制等。 + +**Since:** + +3.1 + +**Version:** + +2.0 + + +## **枚举类型说明** + + +### AudioSampleFormat + + +``` +enum AudioSampleFormat +``` + +**描述:** + +枚举音频采样格式。 + +- 对于planar的采样格式,每个声道的数据是独立存储在data中。 + +- 对于packed的采样格式,只使用第一个data,每个声道的数据是交错存储的。 + + | 枚举值 | 描述 | +| -------- | -------- | +| AUDIO_SAMPLE_FORMAT_S8 | 8bit位宽有符号交织样本。 | +| AUDIO_SAMPLE_FORMAT_S8P | 8bit位宽有符号非交织样本。 | +| AUDIO_SAMPLE_FORMAT_U8 | 8bit位宽无符号交织样本。 | +| AUDIO_SAMPLE_FORMAT_U8P | 8bit位宽无符号非交织样本。 | +| AUDIO_SAMPLE_FORMAT_S16 | 16bit位宽有符号交织样本。 | +| AUDIO_SAMPLE_FORMAT_S16P | 16bit位宽有符号非交织样本。 | +| AUDIO_SAMPLE_FORMAT_U16 | 16bit位宽无符号交织样本。 | +| AUDIO_SAMPLE_FORMAT_U16P | 16bit位宽无符号非交织样本。 | +| AUDIO_SAMPLE_FORMAT_S24 | 24bit位宽有符号交织样本。 | +| AUDIO_SAMPLE_FORMAT_S24P | 24bit位宽有符号非交织样本。 | +| AUDIO_SAMPLE_FORMAT_U24 | 24bit位宽无符号交织样本。 | +| AUDIO_SAMPLE_FORMAT_U24P | 24bit位宽无符号非交织样本。 | +| AUDIO_SAMPLE_FORMAT_S32 | 32bit位宽有符号交织样本。 | +| AUDIO_SAMPLE_FORMAT_S32P | 32bit位宽有符号非交织样本。 | +| AUDIO_SAMPLE_FORMAT_U32 | 32bit位宽无符号交织样本。 | +| AUDIO_SAMPLE_FORMAT_U32P | 32bit位宽无符号非交织样本。 | +| AUDIO_SAMPLE_FORMAT_S64 | 64bit位宽有符号交织样本。 | +| AUDIO_SAMPLE_FORMAT_S64P | 64bit位宽有符号非交织样本。 | +| AUDIO_SAMPLE_FORMAT_U64 | 64bit位宽无符号交织样本。 | +| AUDIO_SAMPLE_FORMAT_U64P | 64bit位宽无符号非交织样本。 | +| AUDIO_SAMPLE_FORMAT_F32 | 32bit位宽浮点型交织样本。 | +| AUDIO_SAMPLE_FORMAT_F32P | 64bit位宽浮点型非交织样本。 | +| AUDIO_SAMPLE_FORMAT_F64 | 64bit位宽双精度浮点型交织样本。 | +| AUDIO_SAMPLE_FORMAT_F64P | 64bit位宽双精度浮点型非交织样本。 | +| AUDIO_SAMPLE_FMT_U8 | 无符号8位整型,打包格式。 | +| AUDIO_SAMPLE_FMT_S16 | 带符号16位整型,打包格式。 | +| AUDIO_SAMPLE_FMT_S32 | 带符号32位整型,打包格式。 | +| AUDIO_SAMPLE_FMT_FLOAT | 浮点型,打包格式。 | +| AUDIO_SAMPLE_FMT_DOUBLE | 双精度浮点型,打包格式。 | +| AUDIO_SAMPLE_FMT_U8P | 无符号8位整型,平面格式。 | +| AUDIO_SAMPLE_FMT_S16P | 带符号16位整型,平面格式。 | +| AUDIO_SAMPLE_FMT_S32P | 带符号32位整型,平面格式。 | +| AUDIO_SAMPLE_FMT_FLOATP | 浮点型,平面格式。 | +| AUDIO_SAMPLE_FMT_DOUBLEP | 双精度浮点型,平面格式。 | +| AUDIO_SAMPLE_FMT_INVALID | 无效采样格式。 | + + +### AudioSampleRate + + +``` +enum AudioSampleRate +``` + +**描述:** + +枚举音频采样率 + + | 枚举值 | 描述 | +| -------- | -------- | +| AUD_SAMPLE_RATE_8000 | 8K采样率 | +| AUD_SAMPLE_RATE_12000 | 12K采样率 | +| AUD_SAMPLE_RATE_11025 | 11.025K采样率 | +| AUD_SAMPLE_RATE_16000 | 16K采样率 | +| AUD_SAMPLE_RATE_22050 | 22.050K采样率 | +| AUD_SAMPLE_RATE_24000 | 24K采样率 | +| AUD_SAMPLE_RATE_32000 | 32K采样率 | +| AUD_SAMPLE_RATE_44100 | 44.1K采样率 | +| AUD_SAMPLE_RATE_48000 | 48K采样率 | +| AUD_SAMPLE_RATE_64000 | 64K采样率 | +| AUD_SAMPLE_RATE_96000 | 96K采样率 | +| AUD_SAMPLE_RATE_INVALID | 无效采样率 | + + +### AvCodecRole + + +``` +enum AvCodecRole +``` + +**描述:** + +枚举音视频编解码组件类型。 + + | 枚举值 | 描述 | +| -------- | -------- | +| MEDIA_ROLETYPE_IMAGE_JPEG | 图像JPEG媒体类型 | +| MEDIA_ROLETYPE_VIDEO_AVC | 视频H.264媒体类型 | +| MEDIA_ROLETYPE_VIDEO_HEVC | 视频H.265媒体类型 | +| MEDIA_ROLETYPE_AUDIO_FIRST | 音频编解码器类型 | +| MEDIA_ROLETYPE_AUDIO_AAC | 音频AAC媒体类型 | +| MEDIA_ROLETYPE_AUDIO_G711A | 音频G711A媒体类型 | +| MEDIA_ROLETYPE_AUDIO_G711U | 音频G711U媒体类型 | +| MEDIA_ROLETYPE_AUDIO_G726 | 音频G726媒体类型 | +| MEDIA_ROLETYPE_AUDIO_PCM | 音频PCM媒体类型 | +| MEDIA_ROLETYPE_AUDIO_MP3 | 音频MP3媒体类型 | +| MEDIA_ROLETYPE_INVALID | 无效媒体类型 | + + +### CodecBufferType + + +``` +enum CodecBufferType +``` + +**描述:** + +定义buffer类型。 + + | 枚举值 | 描述 | +| -------- | -------- | +| CODEC_BUFFER_TYPE_INVALID | 无效buffer类型 | +| CODEC_BUFFER_TYPE_VIRTUAL_ADDR | 虚拟地址类型 | +| CODEC_BUFFER_TYPE_AVSHARE_MEM_FD | 共享内存类型 | +| CODEC_BUFFER_TYPE_HANDLE | handle类型 | +| CODEC_BUFFER_TYPE_DYNAMIC_HANDLE | 动态handle类型 | + + +### CodecCapsMask + + +``` +enum CodecCapsMask +``` + +**描述:** + +枚举播放能力。 + + | 枚举值 | 描述 | +| -------- | -------- | +| CODEC_CAP_ADAPTIVE_PLAYBACK | 自适应播放能力 | +| CODEC_CAP_SECURE_PLAYBACK | 安全播放能力 | +| CODEC_CAP_TUNNEL_PLAYBACK | 通道播放能力 | +| CODEC_CAP_MULTI_PLANE | 视频图像平面/音频通道平面能力 | + + +### CodecProcessMode + + +``` +enum CodecProcessMode +``` + +**描述:** + +枚举编解码处理模式。 + + | 枚举值 | 描述 | +| -------- | -------- | +| PROCESS_BLOCKING_INPUT_BUFFER | 同步模式输入buffer | +| PROCESS_BLOCKING_OUTPUT_BUFFER | 同步模式输出buffer | +| PROCESS_BLOCKING_CONTROL_FLOW | 同步模式控制流 | +| PROCESS_NONBLOCKING_INPUT_BUFFER | 异步模式输入buffer | +| PROCESS_NONBLOCKING_OUTPUT_BUFFER | 异步模式输出buffer | +| PROCESS_NONBLOCKING_CONTROL_FLOW | 异步模式控制流 | + + +### CodecType + + +``` +enum CodecType +``` + +**描述:** + +枚举编解码的类型。 + + | 枚举值 | 描述 | +| -------- | -------- | +| VIDEO_DECODER | 视频解码类型 | +| VIDEO_ENCODER | 视频编码类型 | +| AUDIO_DECODER | 音频解码类型 | +| AUDIO_ENCODER | 音频编码类型 | +| INVALID_TYPE | 无效类型 | + + +### OmxIndexCodecExType + + +``` +enum OmxIndexCodecExType +``` + +**描述:** + +枚举Codec扩展index。 + + | 枚举值 | 描述 | +| -------- | -------- | +| OMX_IndexExtBufferTypeStartUnused | BufferType 扩展index | +| OMX_IndexParamSupportBufferType | SupportBuffer类型 | +| OMX_IndexParamUseBufferType | UseBuffer类型 | +| OMX_IndexParamGetBufferHandleUsage | GetBufferHandleUsage类型 | + + +### OmxVideoExType + + +``` +enum OmxVideoExType +``` + +**描述:** + +枚举Codec扩展编码类型。 + + | 枚举值 | 描述 | +| -------- | -------- | +| OMX_VIDEO_CodingHEVC | HEVC编码类型 | + + +### Profile + + +``` +enum Profile +``` + +**描述:** + +枚举Codec规格。 + + | 枚举值 | 描述 | +| -------- | -------- | +| INVALID_PROFILE | 无效的规格。 | +| AAC_LC_PROFILE | AAC低复杂度规格。 | +| AAC_MAIN_PROFILE | AAC主规格。 | +| AAC_HE_V1_PROFILE | AAC高效率和频带重现规格,又称为HEAAC,AAC+,或者AACPlusV1。 | +| AAC_HE_V2_PROFILE | AAC高效率和频带重现以及变量立体声规格,又称为AAC++或者AACPlusV2。 | +| AAC_LD_PROFILE | AAC低延迟规格。 | +| AAC_ELD_PROFILE | AAC增强型低延迟规格。 | +| AVC_BASELINE_PROFILE | H.264低规格。 | +| AVC_MAIN_PROFILE | H.264主规格。 | +| AVC_HIGH_PROFILE | H.264高规格。 | +| HEVC_MAIN_PROFILE | H.265主规格。 | +| HEVC_MAIN_10_PROFILE | H.265 10比特主规格。 | + + +### ShareMemTypes + + +``` +enum ShareMemTypes +``` + +**描述:** + +枚举共享内存类型。 + + | 枚举值 | 描述 | +| -------- | -------- | +| READ_WRITE_TYPE | 可读可写的共享内存类型 | +| READ_ONLY_TYPE | 可读的共享内存类型 | + + +## **函数说明** + + +### CodecCallbackTypeGet() + + +``` +struct CodecCallbackType* CodecCallbackTypeGet (struct HdfRemoteService * remote) +``` + +**描述:** + +实例化CodecCallbackType对象。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| remote | 输入参数,指向HdfRemoteService的指针。 | + +**返回:** + +实例化CodecCallbackType对象。 + +**Since:** + +3.1 + + +### CodecCallbackTypeRelease() + + +``` +void CodecCallbackTypeRelease (struct CodecCallbackType * instance) +``` + +**描述:** + +释放CodecCallbackType对象。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| instance | 输入参数,指向CodecCallbackType实例的指针。 | + +**Since:** + +3.1 + + +### CodecComponentManagerRelease() + + +``` +void CodecComponentManagerRelease (void ) +``` + +**描述:** + +释放CodecComponentManager对象。 + +**Since:** + +3.1 + + +### CodecComponentTypeGet() + + +``` +struct CodecComponentType* CodecComponentTypeGet (struct HdfRemoteService * remote) +``` + +**描述:** + +实例化CodecComponentType对象。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| remote | 输入参数,指向RemoteService的指针。 | + +**返回:** + +实例化的CodecComponentType对象。 + +**Since:** + +3.1 + + +### CodecComponentTypeRelease() + + +``` +void CodecComponentTypeRelease (struct CodecComponentType * instance) +``` + +**描述:** + +释放CodecComponentType对象。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| instance | 输入参数,指向CodecComponentType实例的指针。 | + +**Since:** + +3.1 + + +### GetCodecComponentManager() + + +``` +struct CodecComponentManager* GetCodecComponentManager (void ) +``` + +**描述:** + +实例化CodecComponentManager对象。 + +**返回:** + +实例化的CodecComponentManager对象。 + +**Since:** + +3.1 + + +## **变量说明** + + +### AllocateBuffer + + +``` +int32_t(* CodecComponentType::AllocateBuffer) (struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer) +``` + +**描述:** + +向组件申请端口buffer。 + +向组件申请分配新的buffer,此接口在以下情况下使用: + +- 当组件处于OMX_StateLoaded状态,并且用户已经向组件发送OMX_StateIdle状态转换请求。 + +- 当组件处于OMX_StateWaitForResources状态,所需的资源可用,并且组件已准备好进入OMX_StateIdle状态。 + +- 在去使能端口上,组件处于OMX_StateExecuting、OMX_StatePause或OMX_StateIdle状态。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | +| portIndex | 输入参数,指定的组件端口。 | +| buffer | 输入输出参数,指向要申请的buffer结构体[OmxCodecBuffer](_omx_codec_buffer.md)指针。 | + +**返回:** + +HDF_SUCCESS 表示申请buffer成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,申请buffer失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,申请buffer失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,申请buffer失败。 + +**Since:** + +3.1 + + +### ComponentDeInit + + +``` +int32_t(* CodecComponentType::ComponentDeInit) (struct CodecComponentType *self) +``` + +**描述:** + +组件去初始化。 + +调用此接口使组件去初始化,当组件处于OMX_StateLoaded状态时,将直接关闭组件。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | + +**返回:** + +HDF_SUCCESS 表示去初始化成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,去初始化失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,去初始化失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,去初始化失败。 + +**Since:** + +3.1 + + +### ComponentRoleEnum + + +``` +int32_t(* CodecComponentType::ComponentRoleEnum) (struct CodecComponentType *self, uint8_t *role, uint32_t roleLen, uint32_t index) +``` + +**描述:** + +获取组件角色。 + +根据组件角色索引获取对应组件角色。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | +| role | 输出参数,角色名称。 | +| roleLen | 输入参数,role字节数。 | +| index | 输入参数,角色的索引,一个组件可能支持多种角色。 | + +**返回:** + +HDF_SUCCESS 表示获取角色成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,获取角色失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,获取角色失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取角色失败。 + +**Since:** + +3.1 + + +### ComponentTunnelRequest + + +``` +int32_t(* CodecComponentType::ComponentTunnelRequest) (struct CodecComponentType *self, uint32_t port, int32_t tunneledComp, uint32_t tunneledPort, struct OMX_TUNNELSETUPTYPE *tunnelSetup) +``` + +**描述:** + +设置组件采用Tunnel方式通信。 + +当组件处于OMX_StateLoaded 状态时,用户通过调用此接口确定组件是否可以进行Tunnel传输,如果可以则设置组件的Tunnel传输。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | +| port | 输入参数,组件设置的端口。 | +| tunneledComp | 输入参数,组件的tunnel handle。 | +| tunneledPort | 输入参数,组件用来Tunnel通信的端口。 | +| tunnelSetup | 输入输出参数,指向Tunnel设置的结构体**OMX_TUNNELSETUPTYPE**指针。 | + +**返回:** + +HDF_SUCCESS 表示设置成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,设置失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,设置失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,设置失败。 + +**Since:** + +3.1 + + +### EmptyBufferDone + + +``` +int32_t(* CodecCallbackType::EmptyBufferDone) (struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, const struct OmxCodecBuffer *buffer) +``` + +**描述:** + +上报输入buffer编码或者解码处理完毕。 + +组件运行过程中向上报告输入buffer已经使用完毕。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的callback指针。 | +| appData | 输入参数,上层数据,通常是设置回调时给入的上层实例。 | +| appDataLen | 输入参数,appData字节数。 | +| buffer | 输入参数,已经处理完毕的输入buffer信息[OmxCodecBuffer](_omx_codec_buffer.md)。 | + +**返回:** + +HDF_SUCCESS 表示上报成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,上报失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,上报失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,上报失败。 + +**Since:** + +3.1 + + +### EmptyThisBuffer + + +``` +int32_t(* CodecComponentType::EmptyThisBuffer) (struct CodecComponentType *self, const struct OmxCodecBuffer *buffer) +``` + +**描述:** + +编解码输入待处理buffer。 + +此接口在组件处于OMX_StateExecuting或者OMX_StatePause状态时调用。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | +| buffer | 输入参数,指向[OmxCodecBuffer](_omx_codec_buffer.md)结构体的指针。 | + +**返回:** + +HDF_SUCCESS 表示输入buffer成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,输入buffer失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,输入buffer失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,输入buffer失败。 + +**Since:** + +3.1 + + +### EventHandler + + +``` +int32_t(* CodecCallbackType::EventHandler) (struct CodecCallbackType *self, enum OMX_EVENTTYPE event, struct EventInfo *info) +``` + +**描述:** + +事件上报。 + +组件运行过程中向上报告错误事件、命令完成事件、端口设置更改事件等。 + +- 当eEvent为OMX_EventCmdComplete,eventData为NULL,data1数据为OMX_COMMANDTYPE,此时,当data1为OMX_CommandStateSet,data2表示状态,其它情况下,data2表示端口。 + +- 当event为OMX_EventError时,data1表示错误码,data2和eventData都为0。 + +- 当event为OMX_EventMark时,data1和data2都为0,eventData指向mark指针。 + +- 当event为OMX_EventPortSettingsChanged时,data1表示端口,data2和eventData为0。 + +- 当event为OMX_EventBufferFlag时,data1表示端口,data2表示flag,eventData为0。 + +- 当event为OMX_EventResourcesAcquired或OMX_EventDynamicResourcesAvailable时,data1、data2和eventData都为0。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的callback指针。 | +| event | 输入参数,要通知的事件类型,详见**OMX_EVENTTYPE**。 | +| info | 输入参数,指向事件上报携带的信息指针,详见[EventInfo](_event_info.md)。 | + +**返回:** + +HDF_SUCCESS 表示事件上报成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,事件上报失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,事件上报失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,事件上报失败。 + +**Since:** + +3.1 + + +### FillBufferDone + + +``` +int32_t(* CodecCallbackType::FillBufferDone) (struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, struct OmxCodecBuffer *buffer) +``` + +**描述:** + +上报输出buffer填充完毕。 + +组件运行过程中向上报告输出buffer已经填充完毕。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的callback指针。 | +| appData | 输入参数,上层数据,通常是设置回调时给入的上层实例。 | +| appDataLen | 输入参数,appData字节数。 | +| buffer | 输入参数,已经填充完毕的buffer信息[OmxCodecBuffer](_omx_codec_buffer.md)。 | + +**返回:** + +HDF_SUCCESS 表示上报成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,上报失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,上报失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,上报失败。 + +**Since:** + +3.1 + + +### FillThisBuffer + + +``` +int32_t(* CodecComponentType::FillThisBuffer) (struct CodecComponentType *self, const struct OmxCodecBuffer *buffer) +``` + +**描述:** + +编解码输出填充buffer。 + +此接口在组件处于OMX_StateExecuting或者OMX_StatePause状态时调用。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | +| buffer | 输入参数,指向[OmxCodecBuffer](_omx_codec_buffer.md)结构体的指针。 | + +**返回:** + +HDF_SUCCESS 表示填充buffer成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,填充buffer失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,填充buffer失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,填充buffer失败。 + +**Since:** + +3.1 + + +### FreeBuffer + + +``` +int32_t(* CodecComponentType::FreeBuffer) (struct CodecComponentType *self, uint32_t portIndex, const struct OmxCodecBuffer *buffer) +``` + +**描述:** + +释放buffer。 + +此接口在以下情况下使用: + +- 当组件处于OMX_StateIdle状态,并且已经向组件发送OMX_StateLoaded状态转换请求。 + +- 在去使能端口上,组件处于OMX_StateExecuting、OMX_StatePause或OMX_StateIdle时调用。 + +- 此接口调用可随时进行,但是如果未在上述情况下执行,可能会导致组件上报OMX_ErrorPortUnpopulated事件。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | +| portIndex | 输入参数,指定的组件端口。 | +| buffer | 输入参数,指向[OmxCodecBuffer](_omx_codec_buffer.md)结构体的指针。 | + +**返回:** + +HDF_SUCCESS 表示释放buffer成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,释放buffer失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,释放buffer失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,释放buffer失败。 + +**Since:** + +3.1 + + +### GetComponentVersion + + +``` +int32_t(* CodecComponentType::GetComponentVersion) (struct CodecComponentType *self, struct CompVerInfo *verInfo) +``` + +**描述:** + +获取Codec组件版本号。 + +通过查询组件,返回组件版本信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | +| verInfo | 输出参数,指向组件版本信息的指针,详见[CompVerInfo](_comp_ver_info.md)。 | + +**返回:** + +HDF_SUCCESS 表示获取版本号成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,获取版本号失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,获取版本号失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取版本号失败。 + +**Since:** + +3.1 + + +### GetConfig + + +``` +int32_t(* CodecComponentType::GetConfig) (struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen) +``` + +**描述:** + +获取组件的配置结构。 + +加载组件后可以随时调用此接口获取组件的配置。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | +| index | 输入参数,待填充结构的索引,详见**OMX_INDEXTYPE**。 | +| cfgStruct | 输入输出参数,指向由组件填充的应用程序分配的结构体指针。 | +| cfgStructLen | 输入参数,上层传入的cfgStruct字节数。 | + +**返回:** + +HDF_SUCCESS 表示获取配置成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,获取配置失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,获取配置失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取配置失败。 + +**Since:** + +3.1 + + +### GetExtensionIndex + + +``` +int32_t(* CodecComponentType::GetExtensionIndex) (struct CodecComponentType *self, const char *paramName, uint32_t *indexType) +``` + +**描述:** + +根据字符串获取组件的扩展索引。 + +将扩展字符串转换为Openmax IL结构索引。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | +| paramName | 输入参数,组件用来转换为配置索引的字符串。 | +| indexType | 输出参数,由paramName转换的配置索引,详见**OMX_INDEXTYPE**。 | + +**返回:** + +HDF_SUCCESS 表示获取扩展索引成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,获取扩展索引失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,获取扩展索引失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取扩展索引失败。 + +**Since:** + +3.1 + + +### GetParameter + + +``` +int32_t(* CodecComponentType::GetParameter) (struct CodecComponentType *self, uint32_t paramIndex, int8_t *paramStruct, uint32_t paramStructLen) +``` + +**描述:** + +获取组件参数设置。 + +当组件处于除了OMX_StateInvalid(组件状态异常)之外的其他状态,用户可通过此接口获取组件参数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | +| paramIndex | 输入参数,待填充结构的索引,详见**OMX_INDEXTYPE**。 | +| paramStruct | 输入输出参数,指向由组件填充的应用程序分配的结构体指针。 | +| paramStructLen | 输入参数,paramStruct字节数。 | + +**返回:** + +HDF_SUCCESS 表示获取参数成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,获取参数失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,获取参数失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取参数失败。 + +**Since:** + +3.1 + + +### GetState + + +``` +int32_t(* CodecComponentType::GetState) (struct CodecComponentType *self, enum OMX_STATETYPE *state) +``` + +**描述:** + +获取组件的当前状态。 + +用户可调用此接口获取组件的当前状态,组件状态详见**OMX_STATETYPE**。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | +| state | 输出参数,指向获取到的状态指针,组件状态详见**OMX_STATETYPE**。 | + +**返回:** + +HDF_SUCCESS 表示获取状态成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,获取状态失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,获取状态失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取状态失败。 + +**Since:** + +3.1 + + +### remote + + +``` +struct HdfRemoteService* CodecCallbackType::remote +``` + +**描述:** + +指向HdfRemoteService的指针。 + +**Since:** + +3.1 + + +### SendCommand + + +``` +int32_t(* CodecComponentType::SendCommand) (struct CodecComponentType *self, enum OMX_COMMANDTYPE cmd, uint32_t param, int8_t *cmdData, uint32_t cmdDataLen) +``` + +**描述:** + +发送命令给组件。 + +发送命令给组件,当命令为设置状态时,会有事件回调通知结果给上层,其他命令则没有事件上报。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | +| cmd | 输入参数,组件要执行的命令,详见**OMX_COMMANDTYPE**。 | +| param | 输入参数,组件要执行的命令携带的参数。
- 当cmd为OMX_CommandStateSet时,param的值详见**OMX_STATETYPE**。
- 当cmd为OMX_CommandFlush、OMX_CommandPortDisable、OMX_CommandPortEnable、OMX_CommandMarkBuffer时,param为目标端口。 | +| cmdData | 输入参数,当cmd为OMX_CommandMarkBuffer时,指向OMX_MARKTYPE结构体指针。 | +| cmdDataLen | 输入参数,上层传递的cmdData字节数。 | + +**返回:** + +HDF_SUCCESS 表示发送命令成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,发送命令失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,发送命令失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,发送命令失败。 + +**Since:** + +3.1 + + +### SetCallbacks + + +``` +int32_t(* CodecComponentType::SetCallbacks) (struct CodecComponentType *self, struct CodecCallbackType *callback, int8_t *appData, uint32_t appDataLen) +``` + +**描述:** + +设置Codec组件的回调函数。 + +当组件处于OMX_StateLoaded状态时,使用此回调函数向上通知事件以及上报可用的输入输出信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | +| callback | 输入参数,指向回调函数[CodecCallbackType](_codec_callback_type.md)对象指针。 | +| appData | 输入参数,指向应用程序定义的值的指针,该值将在回调期间返回。 | +| appDataLen | 输入参数,上层传递的appData字节数。 | + +**返回:** + +HDF_SUCCESS 表示设置回调成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,设置回调失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,设置回调失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,设置回调失败。 + +**Since:** + +3.1 + + +### SetConfig + + +``` +int32_t(* CodecComponentType::SetConfig) (struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen) +``` + +**描述:** + +设置组件的配置。 + +加载组件后可以随时调用此接口设置组件的配置。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | +| index | 输入参数,要设置的结构索引,详见**OMX_INDEXTYPE**。 | +| cfgStruct | 输入参数,指向组件用于初始化的应用程序分配结构的指针。 | +| cfgStructLen | 输入参数,cfgStruct字节数。 | + +**返回:** + +HDF_SUCCESS 表示设置配置成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,设置失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,设置失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,设置失败。 + +**Since:** + +3.1 + + +### SetParameter + + +``` +int32_t(* CodecComponentType::SetParameter) (struct CodecComponentType *self, uint32_t index, int8_t *paramStruct, uint32_t paramStructLen) +``` + +**描述:** + +设置组件需要的参数。 + +当组件处于OMX_StateLoaded、OMX_StateWaitForResources状态或者端口是去使能状态,用户可通过此接口设置组件参数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | +| index | 输入参数,要设置的结构索引,详见**OMX_INDEXTYPE**。 | +| paramStruct | 输入参数,指向组件用于初始化的应用程序分配结构的指针。 | +| paramStructLen | 输入参数,paramStruct字节数。 | + +**返回:** + +HDF_SUCCESS 表示设置参数成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,设置参数失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,设置参数失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,设置参数失败。 + +**Since:** + +3.1 + + +### UseBuffer + + +``` +int32_t(* CodecComponentType::UseBuffer) (struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer) +``` + +**描述:** + +指定组件端口的buffer。 + +此接口在以下情况下使用: + +- 当组件处于OMX_StateLoaded状态,并且用户已经向组件发送OMX_StateIdle状态转换请求。 + +- 当组件处于OMX_StateWaitForResources状态,所需的资源可用,并且组件已准备好进入OMX_StateIdle状态。 + +- 在去使能端口上,组件处于OMX_StateExecuting、OMX_StatePause或OMX_StateIdle状态。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | +| portIndex | 输入参数,指定的组件端口。 | +| buffer | 输入输出参数,指向要使用的buffer结构体[OmxCodecBuffer](_omx_codec_buffer.md)指针。 | + +**返回:** + +HDF_SUCCESS 表示指定成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,指定失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,指定失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,指定失败。 + +**Since:** + +3.1 + + +### UseEglImage + + +``` +int32_t(* CodecComponentType::UseEglImage) (struct CodecComponentType *self, struct OmxCodecBuffer *buffer, uint32_t portIndex, int8_t *eglImage, uint32_t eglImageLen) +``` + +**描述:** + +使用已在EGL中申请的空间。 + +此接口在以下情况下使用: + +- 当组件处于OMX_StateLoaded状态,并且已经向组件发送OMX_StateIdle状态转换请求。 + +- 当组件处于OMX_StateWaitForResources状态,所需的资源可用,并且组件已准备好进入OMX_StateIdle状态。 + +- 在去使能端口上,组件处于OMX_StateExecuting、OMX_StatePause或OMX_StateIdle状态。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| self | 输入参数,指向要操作的Codec组件指针。 | +| buffer | 输入输出参数,指向[OmxCodecBuffer](_omx_codec_buffer.md)结构体的指针。 | +| portIndex | 输入参数,指定的组件端口。 | +| eglImage | 输入参数,EGL申请的图像指针。 | +| eglImageLen | 输入参数,eglImage字节数。 | + +**返回:** + +HDF_SUCCESS 表示使用成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,使用失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,使用失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,使用失败。 + +**Since:** + +3.1 diff --git a/zh-cn/device-dev/api/_codec_callback_type.md b/zh-cn/device-dev/api/_codec_callback_type.md new file mode 100644 index 0000000000..491c500c29 --- /dev/null +++ b/zh-cn/device-dev/api/_codec_callback_type.md @@ -0,0 +1,38 @@ +# CodecCallbackType + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [remote](_codec.md#remote) | 指向HdfRemoteService的指针。 [更多...](_codec.md#remote) | +| ( [EventHandler](_codec.md#eventhandler) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295094404.xml#xref452479393083931,link:zh-cn_topic_0000001295094404.xml](zh-cn_topic_0000001295094404.xml) \*self, enum OMX_EVENTTYPE event, struct [EventInfo](_event_info.md) \*info) | 事件上报。 [更多...](_codec.md#eventhandler) | +| ( [EmptyBufferDone](_codec.md#emptybufferdone) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295094404.xml#xref1077915705083931,link:zh-cn_topic_0000001295094404.xml](zh-cn_topic_0000001295094404.xml) \*self, int8_t \*appData, uint32_t appDataLen, const struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 上报输入buffer编码或者解码处理完毕。 [更多...](_codec.md#emptybufferdone) | +| ( [FillBufferDone](_codec.md#fillbufferdone) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295094404.xml#xref1123615867083931,link:zh-cn_topic_0000001295094404.xml](zh-cn_topic_0000001295094404.xml) \*self, int8_t \*appData, uint32_t appDataLen, struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 上报输出buffer填充完毕。 [更多...](_codec.md#fillbufferdone) | + + +## **详细描述** + +Codec回调接口定义。 + +提供了以下3种回调函数: + +- 组件错误事件、命令完成事件、端口设置等事件回调,详见EventHandler。 + +- 输入端口处理完buffer回调,详见EmptyBufferDone。 + +- 输出端口填充完buffer回调,详见FillBufferDone。 通过以下两种方式注册回调: + +- 创建组件时,通过CreateComponent方法。 + +- 当组件处于OMX_StateLoaded状态时,通过SetCallbacks方法注册回调。 diff --git a/zh-cn/device-dev/api/_codec_comp_capability.md b/zh-cn/device-dev/api/_codec_comp_capability.md new file mode 100644 index 0000000000..f8900208d5 --- /dev/null +++ b/zh-cn/device-dev/api/_codec_comp_capability.md @@ -0,0 +1,155 @@ +# CodecCompCapability + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [role](#role) | 媒体类型。 | +| [type](#type) | 编解码类型。 | +| [compName](#compname) [[NAME_LENGTH](_codec.md#gaf71324c57f05ff9e24bd384925dd6b17)] | 编解码组件名称。 | +| [supportProfiles](#supportprofiles) [[PROFILE_NUM](_codec.md#gaab6353cb3662bdc672ae8ab90df529ce)] | 支持的profiles,详见[Profile](_codec.md#profile)。 | +| [maxInst](#maxinst) | 最大实例。 | +| [isSoftwareCodec](#issoftwarecodec) | 软件编解码还是硬件编解码。 | +| [processModeMask](#processmodemask) | 编解码处理模式掩码,详见[CodecProcessMode](_codec.md#codecprocessmode)。 | +| [capsMask](#capsmask) | 编解码播放能力掩码,详见[CodecCapsMask](_codec.md#codeccapsmask)。 | +| [bitRate](#bitrate) | 支持的码率范围。 | +| [port](#port) | 支持的音视频编解码能力。 | + + +## **详细描述** + +定义Codec编解码能力。 + + +## **类成员变量说明** + + +### bitRate + + +``` +RangeValue CodecCompCapability::bitRate +``` + +**描述:** + +支持的码率范围 + + +### capsMask + + +``` +uint32_t CodecCompCapability::capsMask +``` + +**描述:** + +编解码播放能力掩码,详见[CodecCapsMask](_codec.md#codeccapsmask). + + +### compName + + +``` +char CodecCompCapability::compName[NAME_LENGTH] +``` + +**描述:** + +编解码组件名称 + + +### isSoftwareCodec + + +``` +bool CodecCompCapability::isSoftwareCodec +``` + +**描述:** + +软件编解码还是硬件编解码 + + +### maxInst + + +``` +int32_t CodecCompCapability::maxInst +``` + +**描述:** + +最大实例 + + +### port + + +``` +PortCap CodecCompCapability::port +``` + +**描述:** + +支持的音视频编解码能力 + + +### processModeMask + + +``` +int32_t CodecCompCapability::processModeMask +``` + +**描述:** + +编解码处理模式掩码,详见[CodecProcessMode](_codec.md#codecprocessmode). + + +### role + + +``` +AvCodecRole CodecCompCapability::role +``` + +**描述:** + +媒体类型 + + +### supportProfiles + + +``` +int32_t CodecCompCapability::supportProfiles[PROFILE_NUM] +``` + +**描述:** + +支持的profiles,详见[Profile](_codec.md#profile) + + +### type + + +``` +CodecType CodecCompCapability::type +``` + +**描述:** + +编解码类型 diff --git a/zh-cn/device-dev/api/_codec_component_manager.md b/zh-cn/device-dev/api/_codec_component_manager.md new file mode 100644 index 0000000000..22b2d95f61 --- /dev/null +++ b/zh-cn/device-dev/api/_codec_component_manager.md @@ -0,0 +1,148 @@ +# CodecComponentManager + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ([GetComponentNum](#getcomponentnum) )() | 获取Codec编解码组件数量。 [更多...](#getcomponentnum) | +| ( [GetComponentCapabilityList](#getcomponentcapabilitylist) )([CodecCompCapability](_codec_comp_capability.md) \*capList, int32_t count) | 获取编解码能力集表。 [更多...](#getcomponentcapabilitylist) | +| ( [CreateComponent](#createcomponent) )(struct [CodecComponentType](_codec_component_type.md) \*\*component, char \*compName, void \*appData, int32_t appDataSize, struct [CodecCallbackType](_codec_callback_type.md) \*callbacks) | 创建Codec组件实例。 [更多...](#createcomponent) | +| ( [DestroyComponent](#destroycomponent))(struct [CodecComponentType](_codec_component_type.md) \*component) | 销毁组件实例。 [更多...](#destroycomponent) | + + +## **详细描述** + +Codec组件管理类接口定义。 + +主要提供以下功能: + +- 获取Codec编解码组件数量以及编解码能力集表。 + +- 创建/销毁Codec组件。 + + +## **类成员变量说明** + + +### CreateComponent + + +``` +int32_t(* CodecComponentManager::CreateComponent) (struct CodecComponentType **component, char *compName, void *appData, int32_t appDataSize, struct CodecCallbackType *callbacks) +``` + +**描述:** + +创建Codec组件实例。 + +根据组件名称创建Codec组件实例。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| component | 输出参数,指向Codec组件的指针。 | +| compName | 输入参数,组件名称。 | +| appData | 输入参数,指向应用程序定义的值的指针,该值将在回调期间返回。 | +| appDataSize | 输入参数,appData字节数。 | +| callbacks | 输入参数,回调接口,指向OMX_CALLBACKTYPE结构的指针,详见[CodecCallbackType](_codec_callback_type.md)。 | + +**返回:** + +HDF_SUCCESS 表示创建组件成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,创建组件失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,创建组件失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,创建组件失败。 + + +### DestroyComponent + + +``` +int32_t(* CodecComponentManager::DestroyComponent) (struct CodecComponentType *component) +``` + +**描述:** + +销毁组件实例。 + +销毁指定的Codec组件。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| component | 输入参数,需要销毁的Codec组件。 | + +**返回:** + +HDF_SUCCESS 表示销毁组件成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,销毁组件失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,销毁组件失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,销毁组件失败。 + + +### GetComponentCapabilityList + + +``` +int32_t(* CodecComponentManager::GetComponentCapabilityList) (CodecCompCapability *capList, int32_t count) +``` + +**描述:** + +获取编解码能力集表。 + +用户可通过此接口了解Codec模块提供了哪些编解码能力,对应的能力体现在[CodecCompCapability](_codec_comp_capability.md)结构体。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| capList | 输出参数,返回全部组件的能力集表[CodecCompCapability](_codec_comp_capability.md)。 | +| count | 输入参数,编解码组件数量,由[GetComponentNum](#getcomponentnum)获得。 | + +**返回:** + +HDF_SUCCESS 表示获取能力集表成功。 + +HDF_ERR_INVALID_PARAM 表示参数无效,获取能力集表失败。 + +HDF_ERR_INVALID_OBJECT 表示对象无效,获取能力集表失败。 + +HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取能力集表失败。 + + +### GetComponentNum + + +``` +int32_t(* CodecComponentManager::GetComponentNum) () +``` + +**描述:** + +获取Codec编解码组件数量。 + +通过此接口获取Codec编解码组件数量,用来获取全部编解码能力集。 + +**返回:** + +Codec编解码组件数量。 diff --git a/zh-cn/device-dev/api/_codec_component_type.md b/zh-cn/device-dev/api/_codec_component_type.md new file mode 100644 index 0000000000..5799b29326 --- /dev/null +++ b/zh-cn/device-dev/api/_codec_component_type.md @@ -0,0 +1,54 @@ +# CodecComponentType + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [GetComponentVersion](_codec.md#getcomponentversion) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1521256091083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, struct [CompVerInfo](_comp_ver_info.md) \*verInfo) | 获取Codec组件版本号。 [更多...](_codec.md#getcomponentversion) | +| ( [SendCommand](_codec.md#sendcommand) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref2020788308083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, enum OMX_COMMANDTYPE cmd, uint32_t param, int8_t \*cmdData, uint32_t cmdDataLen) | 发送命令给组件。 [更多...](_codec.md#sendcommand) | +| ( [GetParameter](_codec.md#getparameter) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref2071182762083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint32_t paramIndex, int8_t \*paramStruct, uint32_t paramStructLen) | 获取组件参数设置。 [更多...](_codec.md#getparameter) | +| ( [SetParameter](_codec.md#setparameter) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1874982936083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint32_t index, int8_t \*paramStruct, uint32_t paramStructLen) | 设置组件需要的参数。 [更多...](_codec.md#setparameter) | +| ( [GetConfig](_codec.md#getconfig) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref921941812083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint32_t index, int8_t \*cfgStruct, uint32_t cfgStructLen) | 获取组件的配置结构。 [更多...](_codec.md#getconfig) | +| ( [SetConfig](_codec.md#setconfig) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1073566491083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint32_t index, int8_t \*cfgStruct, uint32_t cfgStructLen) | 设置组件的配置。 [更多...](_codec.md#setconfig) | +| ( [GetExtensionIndex](_codec.md#getextensionindex) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref68113596083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, const char \*paramName, uint32_t \*indexType) | 根据字符串获取组件的扩展索引。 [更多...](_codec.md#getextensionindex) | +| ( [GetState](_codec.md#getstate) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1226754841083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, enum OMX_STATETYPE \*state) | 获取组件的当前状态。 [更多...](_codec.md#getstate) | +| ( [ComponentTunnelRequest](_codec.md#componenttunnelrequest) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1739461855083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint32_t port, int32_t tunneledComp, uint32_t tunneledPort, struct OMX_TUNNELSETUPTYPE \*tunnelSetup) | 设置组件采用Tunnel方式通信。 [更多...](_codec.md#componenttunnelrequest) | +| ( [UseBuffer](_codec.md#usebuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref2135329427083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint32_t portIndex, struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 指定组件端口的buffer。 [更多...](_codec.md#usebuffer) | +| ( [AllocateBuffer](_codec.md#allocatebuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref857621490083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint32_t portIndex, struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 向组件申请端口buffer。 [更多...](_codec.md#allocatebuffer) | +| ( [FreeBuffer](_codec.md#freebuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1026220701083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint32_t portIndex, const struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 释放buffer。 [更多...](_codec.md#freebuffer) | +| ( [EmptyThisBuffer](_codec.md#emptythisbuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1735359869083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, const struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 编解码输入待处理buffer。 [更多...](_codec.md#emptythisbuffer) | +| ( [FillThisBuffer](_codec.md#fillthisbuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1574208746083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, const struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 编解码输出填充buffer。 [更多...](_codec.md#fillthisbuffer) | +| ( [SetCallbacks](_codec.md#setcallbacks) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1922857471083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, struct [CodecCallbackType](_codec_callback_type.md) \*callback, int8_t \*appData, uint32_t appDataLen) | 设置Codec组件的回调函数。 [更多...](_codec.md#setcallbacks) | +| ( [ComponentDeInit](_codec.md#componentdeinit) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1721252790083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self) | 组件去初始化。 [更多...](_codec.md#componentdeinit) | +| ( [UseEglImage](_codec.md#useeglimage) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref872648430083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer, uint32_t portIndex, int8_t \*eglImage, uint32_t eglImageLen) | 使用已在EGL中申请的空间。 [更多...](_codec.md#useeglimage) | +| ( [ComponentRoleEnum](_codec.md#componentroleenum) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1661834974083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint8_t \*role, uint32_t roleLen, uint32_t index) | 获取组件角色。 [更多...](_codec.md#componentroleenum) | + + +## **详细描述** + +Codec组件接口定义。 + +主要提供以下功能: + +- 获取组件的版本。 + +- 组件参数配置的获取和设置。 + +- 发送命令至组件及获取组件状态。 + +- 设置回调函数。 + +- 设置/释放组件使用的buffer。 + +- 编解码输入输出buffer处理 具体方法使用详见函数说明。 diff --git a/zh-cn/device-dev/api/_comp_ver_info.md b/zh-cn/device-dev/api/_comp_ver_info.md new file mode 100644 index 0000000000..ddf1830d2f --- /dev/null +++ b/zh-cn/device-dev/api/_comp_ver_info.md @@ -0,0 +1,78 @@ +# CompVerInfo + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [compName](#compname) [[NAME_LENGTH](_codec.md#gaf71324c57f05ff9e24bd384925dd6b17)] | 组件名称 | +| [compUUID](#compuuid) [[UUID_LENGTH](_codec.md#ga9226162b034cc837cd977f0fcf611c2c)] | 组件的UUID标识符 | +| [compVersion](#compversion) | OMX组件版本信息 | +| [specVersion](#specversion) | 构建组件所依据的规范的版本信息 | + + +## **Details** + + +## **详细描述** + + +## **类成员变量说明** + + +### compName + + +``` +char CompVerInfo::compName[NAME_LENGTH] +``` + +**描述:** + +组件名称 + + +### compUUID + + +``` +uint8_t CompVerInfo::compUUID[UUID_LENGTH] +``` + +**描述:** + +组件的UUID标识符 + + +### compVersion + + +``` +union OMX_VERSIONTYPE CompVerInfo::compVersion +``` + +**描述:** + +OMX组件版本信息 + + +### specVersion + + +``` +union OMX_VERSIONTYPE CompVerInfo::specVersion +``` + +**描述:** + +构建组件所依据的规范的版本信息 diff --git a/zh-cn/device-dev/api/_credential_info.md b/zh-cn/device-dev/api/_credential_info.md new file mode 100644 index 0000000000..44106f40d3 --- /dev/null +++ b/zh-cn/device-dev/api/_credential_info.md @@ -0,0 +1,124 @@ +# CredentialInfo + + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [credentialId](#credentialid) | 认证凭据ID。 | +| [index](#index) | 用户认证框架的执行器索引。 | +| [templateId](#templateid) | 认证凭据模版ID。 | +| [authType](#authtype) | 用户认证凭据类型AuthType}。 | +| [executorType](#executortype) | 执行器类型。 | +| [executorId](#executorid) | 既定用户认证凭据类型的执行器ID。 | +| [extraInfo](#extrainfo) | 其他相关信息,用于支持信息扩展。 | + + +## **详细描述** + +认证凭据信息。 + +**自动:** + +3.2 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### authType + + +``` +enum AuthType CredentialInfo::authType +``` + +**描述:** + +用户认证凭据类型。 + + +### credentialId + + +``` +unsigned long CredentialInfo::credentialId +``` + +**描述:** + +认证凭据ID。 + + +### executorId + + +``` +unsigned int CredentialInfo::executorId +``` + +**描述:** + +既定用户认证凭据类型的执行器ID。 + + +### executorType + + +``` +unsigned int CredentialInfo::executorType +``` + +**描述:** + +执行器类型。 + + +### extraInfo + + +``` +unsigned char [] CredentialInfo::extraInfo +``` + +**描述:** + +其他相关信息,用于支持信息扩展。 + + +### index + + +``` +unsigned long CredentialInfo::index +``` + +**描述:** + +用户认证框架的执行器索引。 + + +### templateId + + +``` +unsigned long CredentialInfo::templateId +``` + +**描述:** + +认证凭据模版ID。 diff --git a/zh-cn/device-dev/api/_d_a_c.md b/zh-cn/device-dev/api/_d_a_c.md new file mode 100644 index 0000000000..9449f873e5 --- /dev/null +++ b/zh-cn/device-dev/api/_d_a_c.md @@ -0,0 +1,160 @@ +# DAC + + +## **汇总** + + +### 文件 + + | 文件 | 描述 | +| -------- | -------- | +| [dac_if.h](dac__if_8h.md) | 声明标准DAC接口函数。 | + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [DacIoMsg](_dac_io_msg.md) | DAC设备信息传输结构体 [更多...](_dac_io_msg.md) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [DacOpen](#dacopen) (uint32_t number) | 获取DAC控制器的句柄。 [更多...](#dacopen) | +| [DacClose](#dacclose) (DevHandle handle) | 释放DAC控制器的句柄。 [更多...](#dacclose) | +| [DacWrite](#dacwrite) (DevHandle handle, uint32_t channel, uint32_t val) | 启动DAC设备进行传输,将目标值写入指定的DAC通道。 [更多...](#dacwrite) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| [DacIoMsg::number](#number) | DAC设备号 | +| [DacIoMsg::channel](#channel) | DAC设备通道号 | + + +## **详细描述** + +提供数模转换器 (DAC) 接口。 + +该模块允许驱动程序在DAC控制器上执行操作以访问DAC通道上的设备,包括创建和销毁DAC控制器句柄和写入数据。 + +**Since:** + +3.1 + + +## **函数说明** + + +### DacClose() + + +``` +void DacClose (DevHandle handle) +``` + +**描述:** + +释放DAC控制器的句柄。 + +如果不再需要访问DAC控制器,则应调用该函数关闭其句柄,以释放未使用的内存资源。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 表示指向DAC控制器的设备句柄的指针。 | + +**Since:** + +3.1 + + +### DacOpen() + + +``` +DevHandle DacOpen (uint32_t number) +``` + +**描述:** + +获取DAC控制器的句柄。 + +您必须在访问DAC设备之前调用此函数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| number | 表示DAC控制器ID。 | + +**返回:** + +DAC控制器的DevHandle指针 表示操作成功。 + +NULL 表示操作失败。 + +**Since:** + +3.1 + + +### DacWrite() + + +``` +int32_t DacWrite (DevHandle handle, uint32_t channel, uint32_t val ) +``` + +**描述:** + +启动DAC设备进行传输,将目标值写入指定的DAC通道。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 表示通过DacOpen获取的DAC控制器设备句柄的指针。 | +| channel | 表示DAC传输消息所通过的通道。 | +| val | 表示设定的目标值。 | + +**返回:** + +0 表示操作成功。 + +负值 表示操作失败。 + +**Since:** + +3.1 + + +## **变量说明** + + +### channel + + +``` +uint32_t DacIoMsg::channel +``` + +**描述:** + +DAC设备通道号 + + +### number + + +``` +uint32_t DacIoMsg::number +``` + +**描述:** + +DAC设备号 diff --git a/zh-cn/device-dev/api/_dac_io_msg.md b/zh-cn/device-dev/api/_dac_io_msg.md new file mode 100644 index 0000000000..b506f7dfb8 --- /dev/null +++ b/zh-cn/device-dev/api/_dac_io_msg.md @@ -0,0 +1,24 @@ +# DacIoMsg + + +## **概述** + +**所属模块:** + +[DAC](_d_a_c.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [number](_d_a_c.md#number) | DAC设备号 | +| [channel](_d_a_c.md#channel) | DAC设备通道号 | + + +## **详细描述** + +DAC设备信息传输结构体。 diff --git a/zh-cn/device-dev/api/_device_funcs.md b/zh-cn/device-dev/api/_device_funcs.md new file mode 100644 index 0000000000..a423b267c5 --- /dev/null +++ b/zh-cn/device-dev/api/_device_funcs.md @@ -0,0 +1,59 @@ +# DeviceFuncs + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( **RegHotPlugCallback** )(HotPlugCallback callback, void \*data) | 注册热插拔事件回调 | +| ( **RegDisplayVBlankCallback** )(uint32_t devId, VBlankCallback callback, void \*data) | 注册VBlank事件回调。 | +| ( **RegDisplayRefreshCallback** )(uint32_t devId, RefreshCallback callback, void \*data) | 刷新请求回调。 | +| ( **GetDisplayCapability** )(uint32_t devId, [DisplayCapability](_display_capability.md) \*info) | 获取显示设备能力集。 | +| ( **GetDisplaySupportedModes** )(uint32_t devId, uint32_t \*num, [DisplayModeInfo](_display_mode_info.md) \*modes) | 获取显示设备支持的显示模式信息。 | +| ( **GetDisplayMode** )(uint32_t devId, uint32_t \*modeId) | 获取显示设备当前的显示模式。 | +| ( **SetDisplayMode** )(uint32_t devId, uint32_t modeId) | 设置显示设备的显示模式。 | +| ( **GetDisplayPowerStatus** )(uint32_t devId, [DispPowerStatus](_display.md#disppowerstatus) \*status) | 获取显示设备当前的电源状态。 | +| ( **SetDisplayPowerStatus** )(uint32_t devId, [DispPowerStatus](_display.md#disppowerstatus) status) | 设置显示设备当前的电源状态。 | +| ( **GetDisplayBacklight** )(uint32_t devId, uint32_t \*level) | 获取显示设备当前的背光值。 | +| ( **SetDisplayBacklight** )(uint32_t devId, uint32_t level) | 设置显示设备当前的背光值。 | +| ( **GetDisplayProperty** )(uint32_t devId, uint32_t id, uint64_t \*value) | 获取显示设备属性值。 | +| ( **SetDisplayProperty** )(uint32_t devId, uint32_t id, uint64_t value) | 设置显示设备属性值。 | +| ( **PrepareDisplayLayers** )(uint32_t devId, bool \*needFlushFb) | 显示设备合成前准备 | +| ( **GetDisplayCompChange** )(uint32_t devId, uint32_t \*num, uint32_t \*Layers, int32_t \*type) | 获取显示设备合成类型有变化的layer | +| ( **SetDisplayClientCrop** )(uint32_t devId, [IRect](_i_rect.md) \*rect) | 设置显示设备的裁剪区域。 | +| ( **SetDisplayClientDestRect** )(uint32_t devId, [IRect](_i_rect.md) \*rect) | 设置显示设备的显示区域。 | +| ( **SetDisplayClientBuffer** )(uint32_t devId, const BufferHandle \*buffer, int32_t fence) | 设置显示设备的显示缓存。 | +| ( **SetDisplayClientDamage** )(uint32_t devId, uint32_t num, [IRect](_i_rect.md) \*rect) | 设置显示设备的显示脏区 | +| ( **SetDisplayVsyncEnabled** )(uint32_t devId, bool enabled) | 使能垂直同步信号。 | +| ( **GetDisplayReleaseFence** )(uint32_t devId, uint32_t \*num, uint32_t \*layers, int32_t \*fences) | 获取显示图层fence。 | +| ( **GetDisplaySupportedColorGamuts** )(uint32_t devId, uint32_t \*num, [ColorGamut](_display.md#colorgamut) \*gamuts) | 获取显示设备支持的色域信息。 | +| ( **GetDisplayColorGamut** )(uint32_t devId, [ColorGamut](_display.md#colorgamut) \*gamut) | 获取显示设备当前的色域模式。 | +| ( **SetDisplayColorGamut** )(uint32_t devId, [ColorGamut](_display.md#colorgamut) gamut) | 设置显示设备当前的色域模式。 | +| ( **GetDisplayGamutMap** )(uint32_t devId, [GamutMap](_display.md#gamutmap) \*gamutMap) | 获取显示设备当前的色域映射模式。 | +| ( **SetDisplayGamutMap** )(uint32_t devId, [GamutMap](_display.md#gamutmap) gamutMap) | 设置显示设备当前的色域映射模式。 | +| ( **SetDisplayColorTransform** )(uint32_t devId, const float \*matrix) | 设置显示设备当前的4x4的颜色转换矩阵。 | +| ( **GetHDRCapabilityInfos** )(uint32_t devId, [HDRCapability](_h_d_r_capability.md) \*info) | 获取显示设备支持的HDR属性信息。 | +| ( **GetSupportedMetadataKey** )(uint32_t devId, uint32_t \*num, [HDRMetadataKey](_display.md#hdrmetadatakey) \*keys) | 获取显示设备支持的 HDRMetadataKey。 | +| ( **Commit** )(uint32_t devId, int32_t \*fence) | 提交合成送显请求。 | +| ( **InvokeDisplayCmd** )(uint32_t devId,...) | 调用显示设备命令。 | +| ( **CreateVirtualDisplay** )(uint32_t width, uint32_t height, int32_t \*format, uint32_t \*devId) | 创建虚拟显示设备。 | +| ( **DestroyVirtualDisplay** )(uint32_t devId) | 销毁虚拟显示设备。 | +| ( **SetVirtualDisplayBuffer** )(uint32_t devId, BufferHandle \*buffer, int32_t fence) | 设置虚拟屏的输出缓存。 | +| ( **GetWriteBackFrame** )(uint32_t devId, BufferHandle \*buffer, int32_t \*fence) | 获取显示设备的回写帧。 | +| ( **CreateWriteBack** )(uint32_t \*devId, uint32_t width, uint32_t height, int32_t \*format) | 对指定显示设备创建回写点。 | +| ( **DestroyWriteBack** )(uint32_t devId) | 销毁指定显示设备的回写点。 | + + +## **详细描述** + +显示设备控制接口结构体,定义显示设备控制接口函数指针。 diff --git a/zh-cn/device-dev/api/_device_info.md b/zh-cn/device-dev/api/_device_info.md new file mode 100644 index 0000000000..592bd0305d --- /dev/null +++ b/zh-cn/device-dev/api/_device_info.md @@ -0,0 +1,194 @@ +# DeviceInfo + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [devIndex](#devindex) | 设备索引 | +| [fd](#fd) | 设备对应的文件描述符 | +| [service](#service) | 设备对应的服务 | +| [listener](#listener) | 设备对应的事件监听器 | +| [devType](#devtype) | 设备类型 | +| [powerStatus](#powerstatus) | 电源状态 | +| [chipInfo](#chipinfo) [CHIP_INFO_LEN] | 驱动芯片编码信息 | +| [vendorName](#vendorname) [VENDOR_NAME_LEN] | 模组厂商名 | +| [chipName](#chipname) [CHIP_NAME_LEN] | 驱动芯片型号 | +| [devNodePath](#devnodepath) [MAX_NODE_PATH_LEN] | 设备文件路径 | +| [solutionX](#solutionx) | x方向分辨率 | +| [solutionY](#solutiony) | y方向分辨率 | +| [callback](#callback) | 数据上报回调函数 [InputReportEventCb](_input_report_event_cb.md) | + + +## **详细描述** + +input设备基础设备信息 + + +## **类成员变量说明** + + +### callback + + +``` +InputReportEventCb* DeviceInfo::callback +``` + +**描述:** + +数据上报回调函数 [InputReportEventCb](_input_report_event_cb.md) + + +### chipInfo + + +``` +char DeviceInfo::chipInfo[CHIP_INFO_LEN] +``` + +**描述:** + +驱动芯片编码信息 + + +### chipName + + +``` +char DeviceInfo::chipName[CHIP_NAME_LEN] +``` + +**描述:** + +驱动芯片型号 + + +### devIndex + + +``` +uint32_t DeviceInfo::devIndex +``` + +**描述:** + +设备索引 + + +### devNodePath + + +``` +char DeviceInfo::devNodePath[MAX_NODE_PATH_LEN] +``` + +**描述:** + +设备文件路径 + + +### devType + + +``` +uint32_t DeviceInfo::devType +``` + +**描述:** + +设备类型 + + +### fd + + +``` +int32_t DeviceInfo::fd +``` + +**描述:** + +设备对应的文件描述符 + + +### listener + + +``` +void* DeviceInfo::listener +``` + +**描述:** + +设备对应的事件监听器 + + +### powerStatus + + +``` +uint32_t DeviceInfo::powerStatus +``` + +**描述:** + +电源状态 + + +### service + + +``` +void* DeviceInfo::service +``` + +**描述:** + +设备对应的服务 + + +### solutionX + + +``` +uint32_t DeviceInfo::solutionX +``` + +**描述:** + +x方向分辨率 + + +### solutionY + + +``` +uint32_t DeviceInfo::solutionY +``` + +**描述:** + +y方向分辨率 + + +### vendorName + + +``` +char DeviceInfo::vendorName[VENDOR_NAME_LEN] +``` + +**描述:** + +模组厂商名 diff --git a/zh-cn/device-dev/api/_display.md b/zh-cn/device-dev/api/_display.md new file mode 100644 index 0000000000..76e1605577 --- /dev/null +++ b/zh-cn/device-dev/api/_display.md @@ -0,0 +1,3359 @@ +# Display + + +## **汇总** + + +### 文件 + + | 文件 | 描述 | +| -------- | -------- | +| [display_device.h](display__device_8h.md) | 显示设备控制接口声明。 | +| [display_gfx.h](display__gfx_8h.md) | 显示硬件加速驱动接口声明。 | +| [display_gralloc.h](display__gralloc_8h.md) | 显示内存驱动接口声明。 | +| [display_layer.h](display__layer_8h.md) | 显示图层驱动接口声明。 | +| [display_type.h](display__type_8h.md) | 显示类型定义,定义显示驱动接口所使用的数据类型。 | + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [DeviceFuncs](_device_funcs.md) | 显示设备控制接口结构体,定义显示设备控制接口函数指针。 [更多...](_device_funcs.md) | +| [GfxFuncs](_gfx_funcs.md) | 显示硬件加速驱动接口结构体,定义硬件加速驱动接口函数指针。 [更多...](_gfx_funcs.md) | +| [GrallocFuncs](_gralloc_funcs.md) | 显示内存驱动接口结构体,定义显示内存驱动接口函数指针。 [更多...](_gralloc_funcs.md) | +| [LayerFuncs](_layer_funcs.md) | 显示图层驱动接口结构体,定义显示图层驱动接口函数指针。 [更多...](_layer_funcs.md) | +| [DisplayInfo](_display_info.md) | 定义显示信息结构体 [更多...](_display_info.md) | +| [LayerInfo](_layer_info.md) | 定义图层信息结构体 [更多...](_layer_info.md) | +| [LayerAlpha](_layer_alpha.md) | 定义图层Alpha信息的结构体 [更多...](_layer_alpha.md) | +| [BufferData](_buffer_data.md) | 定义一层的缓冲区数据,包括虚拟和物理内存地址。 [更多...](_buffer_data.md) | +| [LayerBuffer](_layer_buffer.md) | 图层Buffer,用于存放图层数据。 [更多...](_layer_buffer.md) | +| [IRect](_i_rect.md) | 定义矩形信息 [更多...](_i_rect.md) | +| [ISurface](_i_surface.md) | 用于存放窗口相关信息的结构体定义,提供给硬件加速使用,例如图像合成,位图搬移等操作。 [更多...](_i_surface.md) | +| [ILine](_i_line.md) | 线条描述结构体定义,用于硬件加速绘制直线。 [更多...](_i_line.md) | +| [ICircle](_i_circle.md) | 圆形描述结构体定义,用于硬件加速绘制圆形。 [更多...](_i_circle.md) | +| [Rectangle](_rectangle.md) | 矩形描述结构体定义,用于硬件加速绘制矩形, [更多...](_rectangle.md) | +| [GfxOpt](_gfx_opt.md) | 图像硬件加速相关的操作选项结构体定义,用于图像硬件加速时的操作选项。 [更多...](_gfx_opt.md) | +| [PropertyObject](_property_object.md) | 定义包含名称、属性ID和值的属性对象。 [更多...](_property_object.md) | +| [DisplayCapability](_display_capability.md) | 定义输出性能。 [更多...](_display_capability.md) | +| [DisplayModeInfo](_display_mode_info.md) | 定义输出模式信息。 [更多...](_display_mode_info.md) | +| [AllocInfo](_alloc_info.md) | 定义关于要分配的内存的信息。 [更多...](_alloc_info.md) | +| [HDRCapability](_h_d_r_capability.md) | HDR属性结构体定义 [更多...](_h_d_r_capability.md) | +| [HDRMetaData](_h_d_r_meta_data.md) | HDR元数据结构体定义 [更多...](_h_d_r_meta_data.md) | +| [VerifyAllocInfo](_verify_alloc_info.md) | 用于验证内存分配信息的结构体定义 [更多...](_verify_alloc_info.md) | +| [PresentTimestamp](_present_timestamp.md) | 上屏时间戳结构体定义 [更多...](_present_timestamp.md) | +| [__attribute__](____attribute____.md) | 扩展数据句柄结构体定义 [更多...](____attribute____.md) | + + +### 宏定义 + + | 宏定义 | 描述 | +| -------- | -------- | +| **PROPERTY_NAME_LEN**   50 | 属性名字长度。 | + + +### 类型定义 + + | 类型定义 | 描述 | +| -------- | -------- | +| ([HotPlugCallback](#hotplugcallback)) (uint32_t devId, bool connected, void \*data) | 热插拔事件回调。[更多...](#hotplugcallback) | +| ([VBlankCallback](#vblankcallback)) (unsigned int sequence, uint64_t ns, void \*data) | VBlank 事件回调。 [更多...](#vblankcallback) | +| ([RefreshCallback](#refreshcallback)) (uint32_t devId, void \*data) | 刷新请求回调。[更多...](#refreshcallback) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [DispErrCode](#disperrcode) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref467931723083931,link:zh-cn_topic_0000001295414172.xml#gga12a925dadef7573cd74d63d06824f9b0a188daac95e787159d50ff9546536035b](#gga12a925dadef7573cd74d63d06824f9b0a188daac95e787159d50ff9546536035b) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref461318324083931,link:zh-cn_topic_0000001295414172.xml#gga12a925dadef7573cd74d63d06824f9b0afdffc20c71fb142c3e7f01323a31d742](#gga12a925dadef7573cd74d63d06824f9b0afdffc20c71fb142c3e7f01323a31d742) = -1, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1573229612083931,link:zh-cn_topic_0000001295414172.xml#gga12a925dadef7573cd74d63d06824f9b0a5bdb0a826a652f51e6c82685ae08ede8](#gga12a925dadef7573cd74d63d06824f9b0a5bdb0a826a652f51e6c82685ae08ede8) = -2, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref628139164083931,link:zh-cn_topic_0000001295414172.xml#gga12a925dadef7573cd74d63d06824f9b0a330e09be303bc7056f6115830bbd2370](#gga12a925dadef7573cd74d63d06824f9b0a330e09be303bc7056f6115830bbd2370) = -3,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref116149628083931,link:zh-cn_topic_0000001295414172.xml#gga12a925dadef7573cd74d63d06824f9b0a82fbcdba6c699059bc04b491c92424ac](#gga12a925dadef7573cd74d63d06824f9b0a82fbcdba6c699059bc04b491c92424ac) = -4, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1147568460083931,link:#entry1871899482083931p0](#entry1871899482083931p0) = -5, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref632114308083931,link:zh-cn_topic_0000001295414172.xml#gga12a925dadef7573cd74d63d06824f9b0af186ab511133fa3280c54d2c44358882](#gga12a925dadef7573cd74d63d06824f9b0af186ab511133fa3280c54d2c44358882) = -6, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref183420496083931,link:zh-cn_topic_0000001295414172.xml#gga12a925dadef7573cd74d63d06824f9b0ac11b678fc04745ff4d91f4398b83c427](#gga12a925dadef7573cd74d63d06824f9b0ac11b678fc04745ff4d91f4398b83c427) = -7,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1225838925083931,link:zh-cn_topic_0000001295414172.xml#gga12a925dadef7573cd74d63d06824f9b0ad133674b9f3b857a12791479aaf58cf8](#gga12a925dadef7573cd74d63d06824f9b0ad133674b9f3b857a12791479aaf58cf8) = -8 } | 返回值类型定义。 [更多...](#disperrcode) | +| [LayerType](#layertype) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref33455598083931,link:zh-cn_topic_0000001295414172.xml#gga56943a0946e5f15e5e58054b8e7a04a4a6ef157ea82a5d4c1715b3cddcca38d6f](#gga56943a0946e5f15e5e58054b8e7a04a4a6ef157ea82a5d4c1715b3cddcca38d6f), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1928108280083931,link:zh-cn_topic_0000001295414172.xml#gga56943a0946e5f15e5e58054b8e7a04a4ac33e449941bc0e4d039b4b5bed853a78](#gga56943a0946e5f15e5e58054b8e7a04a4ac33e449941bc0e4d039b4b5bed853a78), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1214480178083931,link:zh-cn_topic_0000001295414172.xml#gga56943a0946e5f15e5e58054b8e7a04a4a0aef2c460a206fa00c742219d65be477](#gga56943a0946e5f15e5e58054b8e7a04a4a0aef2c460a206fa00c742219d65be477), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1743879312083931,link:zh-cn_topic_0000001295414172.xml#gga56943a0946e5f15e5e58054b8e7a04a4a44b3a657e6bf4f1f5709c03a94a11019](#gga56943a0946e5f15e5e58054b8e7a04a4a44b3a657e6bf4f1f5709c03a94a11019),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1133479067083931,link:zh-cn_topic_0000001295414172.xml#gga56943a0946e5f15e5e58054b8e7a04a4acd813c5ad9a2be97c85a97d4bdf1cb57](#gga56943a0946e5f15e5e58054b8e7a04a4acd813c5ad9a2be97c85a97d4bdf1cb57) } | 图层类型定义。 [更多...](#layertype) | +| {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref146139778083931,link:zh-cn_topic_0000001295414172.xml#ggadf764cbdea00d65edcd07bb9953ad2b7a9bb139ab93fcaceac48e52bac1be53dc](#ggadf764cbdea00d65edcd07bb9953ad2b7a9bb139ab93fcaceac48e52bac1be53dc) = (1 << 0), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1607643731083931,link:zh-cn_topic_0000001295414172.xml#ggadf764cbdea00d65edcd07bb9953ad2b7a29217cbafbb6666fe1e8d96f3c368a4d](#ggadf764cbdea00d65edcd07bb9953ad2b7a29217cbafbb6666fe1e8d96f3c368a4d) = (1 << 1), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1226143925083931,link:zh-cn_topic_0000001295414172.xml#ggadf764cbdea00d65edcd07bb9953ad2b7a9126b10e53b48304a5d9c351b1ace6d4](#ggadf764cbdea00d65edcd07bb9953ad2b7a9126b10e53b48304a5d9c351b1ace6d4) = (1 << 2), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1354412377083931,link:zh-cn_topic_0000001295414172.xml#ggadf764cbdea00d65edcd07bb9953ad2b7af7d33fd75c60375bef211629ff02d8c4](#ggadf764cbdea00d65edcd07bb9953ad2b7af7d33fd75c60375bef211629ff02d8c4) = (1 << 3),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1235654974083931,link:zh-cn_topic_0000001295414172.xml#ggadf764cbdea00d65edcd07bb9953ad2b7a16042b501b66017d663c3f5bcd24a20f](#ggadf764cbdea00d65edcd07bb9953ad2b7a16042b501b66017d663c3f5bcd24a20f) = (1 << 4), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1166165519083931,link:zh-cn_topic_0000001295414172.xml#ggadf764cbdea00d65edcd07bb9953ad2b7a553664654199ebde6733a830cbe0a369](#ggadf764cbdea00d65edcd07bb9953ad2b7a553664654199ebde6733a830cbe0a369) = (1 << 5), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref867019725083931,link:zh-cn_topic_0000001295414172.xml#ggadf764cbdea00d65edcd07bb9953ad2b7a110b955655861ef11167e907be5f18fc](#ggadf764cbdea00d65edcd07bb9953ad2b7a110b955655861ef11167e907be5f18fc) = (1 << 6), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref475703695083931,link:zh-cn_topic_0000001295414172.xml#ggadf764cbdea00d65edcd07bb9953ad2b7a44d0fd6e88dbbe9e78c44cc8e5bddc22](#ggadf764cbdea00d65edcd07bb9953ad2b7a44d0fd6e88dbbe9e78c44cc8e5bddc22) = (1 << 7) } | 缓冲区定义。[更多...](#anonymous-enum) | +| [PixelFormat](#pixelformat) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1732209840083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aabdea255b6e5f2920977f11d21445b34a](#gga60883d4958a60b91661e97027a85072aabdea255b6e5f2920977f11d21445b34a) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2042431780083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa5740c66a546552c0c5a4bc06850af584](#gga60883d4958a60b91661e97027a85072aa5740c66a546552c0c5a4bc06850af584), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1240468655083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aabde13e8f357e39981973929309bb0e0e](#gga60883d4958a60b91661e97027a85072aabde13e8f357e39981973929309bb0e0e), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2130788661083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa5fae320872be3ffdda0d371cec048ec6](#gga60883d4958a60b91661e97027a85072aa5fae320872be3ffdda0d371cec048ec6),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref58537565083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa4c16147153b63d7ba71b257111afdd62](#gga60883d4958a60b91661e97027a85072aa4c16147153b63d7ba71b257111afdd62), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref999360489083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aaa479ac0d983fde9b4f7f0e1a3b3e230f](#gga60883d4958a60b91661e97027a85072aaa479ac0d983fde9b4f7f0e1a3b3e230f), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2110176620083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aacbb91256e8c45a51410a9f6caae2d04c](#gga60883d4958a60b91661e97027a85072aacbb91256e8c45a51410a9f6caae2d04c), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1175419870083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa7d18a83da06902c104208031ed487942](#gga60883d4958a60b91661e97027a85072aa7d18a83da06902c104208031ed487942),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref278468690083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa85e5dd1a0e547c0031baffd02abb31a0](#gga60883d4958a60b91661e97027a85072aa85e5dd1a0e547c0031baffd02abb31a0), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref495124063083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aadc1387526a271d8c6db7729de06474b1](#gga60883d4958a60b91661e97027a85072aadc1387526a271d8c6db7729de06474b1), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2005992881083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa720a429fa57133f6e27ef8c8fa1c404a](#gga60883d4958a60b91661e97027a85072aa720a429fa57133f6e27ef8c8fa1c404a), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1851802084083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa24a7181b7fb4019e7c19739bd9b65ff0](#gga60883d4958a60b91661e97027a85072aa24a7181b7fb4019e7c19739bd9b65ff0),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref981238871083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa90b462672221691ed66cacb07dd2e05f](#gga60883d4958a60b91661e97027a85072aa90b462672221691ed66cacb07dd2e05f), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1496414706083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa7ff77397bf2cf52b4614a46264f8ce01](#gga60883d4958a60b91661e97027a85072aa7ff77397bf2cf52b4614a46264f8ce01), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref18225218083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aaec581b908c291e2bd0155e25169f9629](#gga60883d4958a60b91661e97027a85072aaec581b908c291e2bd0155e25169f9629), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref911606020083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa6b5a7b35e00fc25146de0c9bf88b0230](#gga60883d4958a60b91661e97027a85072aa6b5a7b35e00fc25146de0c9bf88b0230),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1458046858083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa2f3d4ada099b2e8d84ec4501fbc8bed9](#gga60883d4958a60b91661e97027a85072aa2f3d4ada099b2e8d84ec4501fbc8bed9), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1137952576083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aaaf1a20dc0a597258cfe6aca806a8e0de](#gga60883d4958a60b91661e97027a85072aaaf1a20dc0a597258cfe6aca806a8e0de), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref562635814083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa2319d4a75dae0b56776fa63d525e308b](#gga60883d4958a60b91661e97027a85072aa2319d4a75dae0b56776fa63d525e308b), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1618305575083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa1b19279f89c8cfb60e7d77ce23cd5f43](#gga60883d4958a60b91661e97027a85072aa1b19279f89c8cfb60e7d77ce23cd5f43),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref758967891083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aaeb31c670120a1fbc96a0e0887997fe16](#gga60883d4958a60b91661e97027a85072aaeb31c670120a1fbc96a0e0887997fe16), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1617335806083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aac73c2a84907a53ed95a329007b5c8992](#gga60883d4958a60b91661e97027a85072aac73c2a84907a53ed95a329007b5c8992), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref298059959083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aabdf1224848278508479ce97f637dd711](#gga60883d4958a60b91661e97027a85072aabdf1224848278508479ce97f637dd711), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref73739201083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa8bf97d66e26b3aad7c83dfa70e2bc451](#gga60883d4958a60b91661e97027a85072aa8bf97d66e26b3aad7c83dfa70e2bc451),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref357426934083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa0d1db50eb492f9073abdd2d662c56396](#gga60883d4958a60b91661e97027a85072aa0d1db50eb492f9073abdd2d662c56396), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1072753167083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa1fa43c8a197d5c974a35b8bf02ab386e](#gga60883d4958a60b91661e97027a85072aa1fa43c8a197d5c974a35b8bf02ab386e), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref250680627083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aaa2fe085e63428ea76e1d975175001dc6](#gga60883d4958a60b91661e97027a85072aaa2fe085e63428ea76e1d975175001dc6), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref403598730083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aab04eb6e1d940e42f3b4cc20c0a44c4ee](#gga60883d4958a60b91661e97027a85072aab04eb6e1d940e42f3b4cc20c0a44c4ee),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref281652873083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa3d80e785bed28e2b3f5c7df563500962](#gga60883d4958a60b91661e97027a85072aa3d80e785bed28e2b3f5c7df563500962), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref793358918083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa3dc5a0a5ad2f21218b446c477277210a](#gga60883d4958a60b91661e97027a85072aa3dc5a0a5ad2f21218b446c477277210a), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2099129983083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa3980def5b133584bdb2982a71f07798e](#gga60883d4958a60b91661e97027a85072aa3980def5b133584bdb2982a71f07798e), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1329036123083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aadfd69bd5b421aad5bdd39d5f33317197](#gga60883d4958a60b91661e97027a85072aadfd69bd5b421aad5bdd39d5f33317197),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1795868980083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aaf851031c336e8d9f57c940c5f52381f4](#gga60883d4958a60b91661e97027a85072aaf851031c336e8d9f57c940c5f52381f4), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref626327261083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa317a761939335025379d382074a1541c](#gga60883d4958a60b91661e97027a85072aa317a761939335025379d382074a1541c), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref910922561083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa67668ea067a31a8479aece94094bc547](#gga60883d4958a60b91661e97027a85072aa67668ea067a31a8479aece94094bc547) = 0X7FFF0000, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref440016946083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa07086bb3356c9c88959eee00c0982684](#gga60883d4958a60b91661e97027a85072aa07086bb3356c9c88959eee00c0982684) = 0X7FFFFFFF } | 像素格式类型定义。 [更多...](#pixelformat) | +| [TransformType](#transformtype) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref775310058083931,link:zh-cn_topic_0000001295414172.xml#ggaa65f3b21a9a92ff022e435a7304126d2a68e349e9d45a8eba440e2a7a3ba31ec9](#ggaa65f3b21a9a92ff022e435a7304126d2a68e349e9d45a8eba440e2a7a3ba31ec9) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref436596700083931,link:zh-cn_topic_0000001295414172.xml#ggaa65f3b21a9a92ff022e435a7304126d2a685062467b0c1a3164556335b467c886](#ggaa65f3b21a9a92ff022e435a7304126d2a685062467b0c1a3164556335b467c886), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1295314303083931,link:zh-cn_topic_0000001295414172.xml#ggaa65f3b21a9a92ff022e435a7304126d2a186263164422bb8f0eb5f7b7d195a3d1](#ggaa65f3b21a9a92ff022e435a7304126d2a186263164422bb8f0eb5f7b7d195a3d1), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1082872368083931,link:zh-cn_topic_0000001295414172.xml#ggaa65f3b21a9a92ff022e435a7304126d2a554e734d2a23790b248c5ce39816c18f](#ggaa65f3b21a9a92ff022e435a7304126d2a554e734d2a23790b248c5ce39816c18f),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1630028750083931,link:zh-cn_topic_0000001295414172.xml#ggaa65f3b21a9a92ff022e435a7304126d2a9b6ff871536aeef2a8e3ce4a753988ed](#ggaa65f3b21a9a92ff022e435a7304126d2a9b6ff871536aeef2a8e3ce4a753988ed) } | 图层变换类型定义。 [更多...](#transformtype) | +| [BlendType](#blendtype) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1630535161083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817ae410edb34509ca21425fe5872bbc7e2f](#ggaab1839ed4aab1030dfda801a51e68817ae410edb34509ca21425fe5872bbc7e2f) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1293460839083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a6330cee419fbdafc0b25f0aa068814e5](#ggaab1839ed4aab1030dfda801a51e68817a6330cee419fbdafc0b25f0aa068814e5), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1180798558083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817af01da0c255cdbf67d0774a67c2d221b5](#ggaab1839ed4aab1030dfda801a51e68817af01da0c255cdbf67d0774a67c2d221b5), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1762594512083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817ad4c0cd02aa4b5f4849e2b29a26481dde](#ggaab1839ed4aab1030dfda801a51e68817ad4c0cd02aa4b5f4849e2b29a26481dde),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref978725557083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a21f03e8d04a58ed0684b39eb84bdb89f](#ggaab1839ed4aab1030dfda801a51e68817a21f03e8d04a58ed0684b39eb84bdb89f), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref54214776083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a74e681f6c9027bb2cf0bda3b72d2dd9e](#ggaab1839ed4aab1030dfda801a51e68817a74e681f6c9027bb2cf0bda3b72d2dd9e), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref504312733083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a19f528828d75c34e18375219f113d9bb](#ggaab1839ed4aab1030dfda801a51e68817a19f528828d75c34e18375219f113d9bb), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref737668884083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a404e05a118462520e878c23f89808199](#ggaab1839ed4aab1030dfda801a51e68817a404e05a118462520e878c23f89808199),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1002570120083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817ac0dc902b4928413d367376e4c842d909](#ggaab1839ed4aab1030dfda801a51e68817ac0dc902b4928413d367376e4c842d909), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1482844901083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817ada473c7e3bf2b1102349489416aefefc](#ggaab1839ed4aab1030dfda801a51e68817ada473c7e3bf2b1102349489416aefefc), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref942142713083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a0129b4506a06b1a6df297bcf685f5f89](#ggaab1839ed4aab1030dfda801a51e68817a0129b4506a06b1a6df297bcf685f5f89), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2109257292083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817adbdb329830e5b4d9fa2b17d5d6d7894f](#ggaab1839ed4aab1030dfda801a51e68817adbdb329830e5b4d9fa2b17d5d6d7894f),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1722590029083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a167c3b256e051244066d8e53cdd5529d](#ggaab1839ed4aab1030dfda801a51e68817a167c3b256e051244066d8e53cdd5529d), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1078349153083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a4686a5f30c73982d625a05db021e9b15](#ggaab1839ed4aab1030dfda801a51e68817a4686a5f30c73982d625a05db021e9b15), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1719812602083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817ae549aa3794365df8965a2c3853c8da99](#ggaab1839ed4aab1030dfda801a51e68817ae549aa3794365df8965a2c3853c8da99), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1718413401083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a3cc39f12fa8bceba626a33c2d82a8bf7](#ggaab1839ed4aab1030dfda801a51e68817a3cc39f12fa8bceba626a33c2d82a8bf7),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1072135724083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817ad0650812ac2aa9eee228f48ac514b44a](#ggaab1839ed4aab1030dfda801a51e68817ad0650812ac2aa9eee228f48ac514b44a) } | 显示内存类型定义。 [更多...](#blendtype) | +| [RopType](#roptype) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref742002375083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a6358a786ec3b81000a07b343424cee0d](#gga24265f7618fbdba53d3da4806d3097c4a6358a786ec3b81000a07b343424cee0d) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref17811207083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a96c89f7b89a9048d355b4dc467224f4c](#gga24265f7618fbdba53d3da4806d3097c4a96c89f7b89a9048d355b4dc467224f4c), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2043334490083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a54d054ea6920cb88f374f70e8d41f934](#gga24265f7618fbdba53d3da4806d3097c4a54d054ea6920cb88f374f70e8d41f934), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2053741826083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4af4a5d5dc0f15249001cff7ef32fadef1](#gga24265f7618fbdba53d3da4806d3097c4af4a5d5dc0f15249001cff7ef32fadef1),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1527355910083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4ad777eea18ba9f4e071b00aa060db00e3](#gga24265f7618fbdba53d3da4806d3097c4ad777eea18ba9f4e071b00aa060db00e3), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2065629750083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4afa63c8e2a6a39d50954cb6316576b4e9](#gga24265f7618fbdba53d3da4806d3097c4afa63c8e2a6a39d50954cb6316576b4e9), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1601085310083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a79433776e85bb80ad0306ced0b82947c](#gga24265f7618fbdba53d3da4806d3097c4a79433776e85bb80ad0306ced0b82947c), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref92248121083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4ad6c4d2458a9caaa079a3e5907d636e8a](#gga24265f7618fbdba53d3da4806d3097c4ad6c4d2458a9caaa079a3e5907d636e8a),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1093756523083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a2a069e2105c5b8d4dac5d174c76eb9d4](#gga24265f7618fbdba53d3da4806d3097c4a2a069e2105c5b8d4dac5d174c76eb9d4), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1280708123083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a33c37c5ce718e876f43141dc5a028375](#gga24265f7618fbdba53d3da4806d3097c4a33c37c5ce718e876f43141dc5a028375), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref596450312083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a2acacab882af44bba09878bd58e18695](#gga24265f7618fbdba53d3da4806d3097c4a2acacab882af44bba09878bd58e18695), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref231000186083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4afaea3c47612082914332b78ca8c331b3](#gga24265f7618fbdba53d3da4806d3097c4afaea3c47612082914332b78ca8c331b3),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref261991109083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a91bae697f9dea25ac4d7be011958a45d](#gga24265f7618fbdba53d3da4806d3097c4a91bae697f9dea25ac4d7be011958a45d), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1444974344083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a3580b77320e4829da046b8739c61d6b8](#gga24265f7618fbdba53d3da4806d3097c4a3580b77320e4829da046b8739c61d6b8), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1590052574083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a8195ac0d37e0d69b2cd71dd7362d3fd3](#gga24265f7618fbdba53d3da4806d3097c4a8195ac0d37e0d69b2cd71dd7362d3fd3), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1361443035083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a533a614b27da8a81b67ada085b018618](#gga24265f7618fbdba53d3da4806d3097c4a533a614b27da8a81b67ada085b018618),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2083205639083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4aa858b07e214a7f62625e24776806c74b](#gga24265f7618fbdba53d3da4806d3097c4aa858b07e214a7f62625e24776806c74b) } | 硬件加速支持的ROP操作类型。 [更多...](#roptype) | +| [ColorKey](#colorkey) { [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1866201489083931,link:zh-cn_topic_0000001295414172.xml#gga4fe6fb05c7ba0048b1739d88f4d4878ea629b31de258db2ce01cb757b85bd5273](#gga4fe6fb05c7ba0048b1739d88f4d4878ea629b31de258db2ce01cb757b85bd5273) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1057243463083931,link:zh-cn_topic_0000001295414172.xml#gga4fe6fb05c7ba0048b1739d88f4d4878ea5e3271e73dce39d0806ff8e9cba011bc](#gga4fe6fb05c7ba0048b1739d88f4d4878ea5e3271e73dce39d0806ff8e9cba011bc), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref278164484083931,link:zh-cn_topic_0000001295414172.xml#gga4fe6fb05c7ba0048b1739d88f4d4878ea6921c2c202aa69293467baa6c33fae05](#gga4fe6fb05c7ba0048b1739d88f4d4878ea6921c2c202aa69293467baa6c33fae05), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref297021214083931,link:zh-cn_topic_0000001295414172.xml#gga4fe6fb05c7ba0048b1739d88f4d4878ea32cedc8986de2c290bf2ec193d88cabf](#gga4fe6fb05c7ba0048b1739d88f4d4878ea32cedc8986de2c290bf2ec193d88cabf) } | Color key操作类型定义,即硬件加速支持的Color key操作类型。 [更多...](#colorkey) | +| [MirrorType](#mirrortype) { [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1622625061083931,link:zh-cn_topic_0000001295414172.xml#gga08d32376574b541d162d8534adb78fd0a5ad82fcc8af04f92571e185b61eeb309](#gga08d32376574b541d162d8534adb78fd0a5ad82fcc8af04f92571e185b61eeb309) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1262697891083931,link:zh-cn_topic_0000001295414172.xml#gga08d32376574b541d162d8534adb78fd0ae35099d9fd28c2974661bcce36a9ea5c](#gga08d32376574b541d162d8534adb78fd0ae35099d9fd28c2974661bcce36a9ea5c), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1443537263083931,link:zh-cn_topic_0000001295414172.xml#gga08d32376574b541d162d8534adb78fd0afd82e59546a645fd29bc779c50bfa733](#gga08d32376574b541d162d8534adb78fd0afd82e59546a645fd29bc779c50bfa733), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref579554716083931,link:zh-cn_topic_0000001295414172.xml#gga08d32376574b541d162d8534adb78fd0ad9e357a2c2f7dc0e3ca5a351ec457410](#gga08d32376574b541d162d8534adb78fd0ad9e357a2c2f7dc0e3ca5a351ec457410) } | 硬件加速支持的镜像操作类型定义 [更多...](#mirrortype) | +| [Connection](#connection) { [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1976252805083931,link:zh-cn_topic_0000001295414172.xml#ggab0845c0c8d309ee865c78b095b00e671ab5c8a92e6af2e63e769dd8f711564760](#ggab0845c0c8d309ee865c78b095b00e671ab5c8a92e6af2e63e769dd8f711564760) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref137781331083931,link:zh-cn_topic_0000001295414172.xml#ggab0845c0c8d309ee865c78b095b00e671a7a691a2430ec26878897b5fbc9c22a4c](#ggab0845c0c8d309ee865c78b095b00e671a7a691a2430ec26878897b5fbc9c22a4c), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref302409363083931,link:zh-cn_topic_0000001295414172.xml#ggab0845c0c8d309ee865c78b095b00e671acdaad1112073e3e2ea032424c38c34e1](#ggab0845c0c8d309ee865c78b095b00e671acdaad1112073e3e2ea032424c38c34e1) } | 热插拔连接类型定义 [更多...](#connection) | +| [InterfaceType](#interfacetype) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1452208663083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9da717f9ae7960ba280c6c6b8822c6d8b66](#ggaf1ef2c97e255bd7f21d3b7614b283d9da717f9ae7960ba280c6c6b8822c6d8b66) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1121895311083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9da210dbbea7e5c30b693515bba570474d4](#ggaf1ef2c97e255bd7f21d3b7614b283d9da210dbbea7e5c30b693515bba570474d4), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref632913210083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9da89a4e456ceffa55cb93b2c6f4792c96b](#ggaf1ef2c97e255bd7f21d3b7614b283d9da89a4e456ceffa55cb93b2c6f4792c96b), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2037575674083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9daf23a0b7607d3fdc7eac791d62c5f9cd5](#ggaf1ef2c97e255bd7f21d3b7614b283d9daf23a0b7607d3fdc7eac791d62c5f9cd5),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1854194160083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9da54a83297ab61376574854e804a6158e1](#ggaf1ef2c97e255bd7f21d3b7614b283d9da54a83297ab61376574854e804a6158e1), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1974798167083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9da83ef625db890ee1ddb4e874d6155405f](#ggaf1ef2c97e255bd7f21d3b7614b283d9da83ef625db890ee1ddb4e874d6155405f), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1128524956083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9dabf3991ede75cb3bb454372174d63ec29](#ggaf1ef2c97e255bd7f21d3b7614b283d9dabf3991ede75cb3bb454372174d63ec29), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1601425364083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9daad740e6f901f40965d2824415fcb9041](#ggaf1ef2c97e255bd7f21d3b7614b283d9daad740e6f901f40965d2824415fcb9041),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref834357467083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9da5db1f365e675d992f47ce797339beff5](#ggaf1ef2c97e255bd7f21d3b7614b283d9da5db1f365e675d992f47ce797339beff5), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1826677317083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9da5b9c7382dfdcc029e467c6339bf90915](#ggaf1ef2c97e255bd7f21d3b7614b283d9da5b9c7382dfdcc029e467c6339bf90915), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1227458094083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9da4d64c32b687840c7e08e28a2892ac222](#ggaf1ef2c97e255bd7f21d3b7614b283d9da4d64c32b687840c7e08e28a2892ac222), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref65502257333,link:#p106611424171011](#p106611424171011) } | 枚举接口类型。 [更多...](#interfacetype) | +| [DispPowerStatus](#disppowerstatus) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref378646307083931,link:zh-cn_topic_0000001295414172.xml#gga0f3c8af6e9d40730b0d2e0fbbf8e627da89e258c21283c662af2145bd3f9fc9a0](#gga0f3c8af6e9d40730b0d2e0fbbf8e627da89e258c21283c662af2145bd3f9fc9a0), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1015948368083931,link:zh-cn_topic_0000001295414172.xml#gga0f3c8af6e9d40730b0d2e0fbbf8e627da604748a7de21aa992c1f72c252fc77a7](#gga0f3c8af6e9d40730b0d2e0fbbf8e627da604748a7de21aa992c1f72c252fc77a7), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref821302934083931,link:zh-cn_topic_0000001295414172.xml#gga0f3c8af6e9d40730b0d2e0fbbf8e627da5605db047fd50c64fa0a13d8e558d479](#gga0f3c8af6e9d40730b0d2e0fbbf8e627da5605db047fd50c64fa0a13d8e558d479), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref21224644083931,link:zh-cn_topic_0000001295414172.xml#gga0f3c8af6e9d40730b0d2e0fbbf8e627daddd660122faa920f2adcd81e83d22c85](#gga0f3c8af6e9d40730b0d2e0fbbf8e627daddd660122faa920f2adcd81e83d22c85),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1203211795083931,link:zh-cn_topic_0000001295414172.xml#gga0f3c8af6e9d40730b0d2e0fbbf8e627dad1f590a00c02d7335bfc24edbea92037](#gga0f3c8af6e9d40730b0d2e0fbbf8e627dad1f590a00c02d7335bfc24edbea92037) } | 枚举显示状态 [更多...](#disppowerstatus) | +| [CompositionType](#compositiontype) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1830977517083931,link:zh-cn_topic_0000001295414172.xml#ggae5d7b642670cf3dc6654131dfa115fe5afc7ab4757f19ed87ea6d1603478edbe8](#ggae5d7b642670cf3dc6654131dfa115fe5afc7ab4757f19ed87ea6d1603478edbe8), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1161941610083931,link:zh-cn_topic_0000001295414172.xml#ggae5d7b642670cf3dc6654131dfa115fe5aa51390e0da602171f2d042a94c6b75bf](#ggae5d7b642670cf3dc6654131dfa115fe5aa51390e0da602171f2d042a94c6b75bf), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1097843950083931,link:zh-cn_topic_0000001295414172.xml#ggae5d7b642670cf3dc6654131dfa115fe5a663feec453d4509980f3bb34f641303b](#ggae5d7b642670cf3dc6654131dfa115fe5a663feec453d4509980f3bb34f641303b), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref700721638083931,link:zh-cn_topic_0000001295414172.xml#ggae5d7b642670cf3dc6654131dfa115fe5a89ea30239d366a6968c7dff429a99aa9](#ggae5d7b642670cf3dc6654131dfa115fe5a89ea30239d366a6968c7dff429a99aa9),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2089060453083931,link:zh-cn_topic_0000001295414172.xml#ggae5d7b642670cf3dc6654131dfa115fe5a05f5ab2a5da295c0fdc7e19e9a121f3e](#ggae5d7b642670cf3dc6654131dfa115fe5a05f5ab2a5da295c0fdc7e19e9a121f3e), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref81247533083931,link:zh-cn_topic_0000001295414172.xml#ggae5d7b642670cf3dc6654131dfa115fe5a7c1535ef8d388f878fae7c722d69855e](#ggae5d7b642670cf3dc6654131dfa115fe5a7c1535ef8d388f878fae7c722d69855e), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref776657651083931,link:zh-cn_topic_0000001295414172.xml#ggae5d7b642670cf3dc6654131dfa115fe5a400576aea4b15e011ddd21748d16f9ca](#ggae5d7b642670cf3dc6654131dfa115fe5a400576aea4b15e011ddd21748d16f9ca), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1598485913356,link:#p488974221219](#p488974221219) } | 枚举特殊层的组合类型。 [更多...](#compositiontype) | +| [ColorGamut](#colorgamut) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1320572072083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3a7d7d95bebc0ddb4d10da05b449bab1bf](#gga7e865f6dbae09a004be2949b473fd7c3a7d7d95bebc0ddb4d10da05b449bab1bf) = -1, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref680538601083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3af0e1dba48215d4d19bd9a3536a736cdb](#gga7e865f6dbae09a004be2949b473fd7c3af0e1dba48215d4d19bd9a3536a736cdb) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2112483204083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3affa91ab208128bec9b981e7020bcbfa9](#gga7e865f6dbae09a004be2949b473fd7c3affa91ab208128bec9b981e7020bcbfa9) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref977909621083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3a248480b6ae7ad6c5327dd7cb5cfd0a85](#gga7e865f6dbae09a004be2949b473fd7c3a248480b6ae7ad6c5327dd7cb5cfd0a85) = 2,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1659526516083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3a98eb540d5a93ab3ad4256907eec89c4e](#gga7e865f6dbae09a004be2949b473fd7c3a98eb540d5a93ab3ad4256907eec89c4e) = 3, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref750726964083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3a8327e3fc0a79c9935dd9279c10c841c5](#gga7e865f6dbae09a004be2949b473fd7c3a8327e3fc0a79c9935dd9279c10c841c5) = 4, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1950926867083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3a3377a7df82b495c65f3f7ab2b1655100](#gga7e865f6dbae09a004be2949b473fd7c3a3377a7df82b495c65f3f7ab2b1655100) = 5, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1621900951083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3ad79cdc9f86f3b581453c523a03a876d3](#gga7e865f6dbae09a004be2949b473fd7c3ad79cdc9f86f3b581453c523a03a876d3) = 6,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref300730856083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3a79ff774719c5b83287b298d39ee274f3](#gga7e865f6dbae09a004be2949b473fd7c3a79ff774719c5b83287b298d39ee274f3) = 7, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref269858315083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3aa8191f5fca2ad767fa56767b41f4dec5](#gga7e865f6dbae09a004be2949b473fd7c3aa8191f5fca2ad767fa56767b41f4dec5) = 8, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref185185729083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3ad4f624c7b578dacaa732cd9556724797](#gga7e865f6dbae09a004be2949b473fd7c3ad4f624c7b578dacaa732cd9556724797) = 9, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref327662541083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3a5d07e2f0d8e570c5e16ccff05e12cb29](#gga7e865f6dbae09a004be2949b473fd7c3a5d07e2f0d8e570c5e16ccff05e12cb29) = 10 } | 色域类型枚举值 [更多...](#colorgamut) | +| [GamutMap](#gamutmap) { [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1218064531083931,link:zh-cn_topic_0000001295414172.xml#gga5700b58f1bc340e309a0962101ad7fa4acdf75e246ac2f53f37ef9e11b5561535](#gga5700b58f1bc340e309a0962101ad7fa4acdf75e246ac2f53f37ef9e11b5561535) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref121550703083931,link:zh-cn_topic_0000001295414172.xml#gga5700b58f1bc340e309a0962101ad7fa4af3824abcccbd8d85d28e34149e9aaa33](#gga5700b58f1bc340e309a0962101ad7fa4af3824abcccbd8d85d28e34149e9aaa33) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref874892009083931,link:zh-cn_topic_0000001295414172.xml#gga5700b58f1bc340e309a0962101ad7fa4afd4e1cb10b8032108ab070925b73e270](#gga5700b58f1bc340e309a0962101ad7fa4afd4e1cb10b8032108ab070925b73e270) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref340489629083931,link:zh-cn_topic_0000001295414172.xml#gga5700b58f1bc340e309a0962101ad7fa4ad0f9722a0efd51910ac5f2f63fd86a10](#gga5700b58f1bc340e309a0962101ad7fa4ad0f9722a0efd51910ac5f2f63fd86a10) = 3 } | 枚举色域的映射类型 [更多...](#gamutmap) | +| [ColorDataSpace](#colordataspace) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref878538396083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca5a0aa62f13715cbdf2b5ec1e26e76225](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca5a0aa62f13715cbdf2b5ec1e26e76225) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref213046039083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad778a31f4c8e3431f5240f98c70f577d](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad778a31f4c8e3431f5240f98c70f577d) = 0x00000001, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1054907918083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca7d346fa865c56c76f62c7f6ab92511ec](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca7d346fa865c56c76f62c7f6ab92511ec) = 0x00000002, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1479012727083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccae29ccb674444c3f81f0a46361d7ce63c](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccae29ccb674444c3f81f0a46361d7ce63c) = 0x00000003,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1386886784083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca16c4c57e66f86b20269db0d5d6382ded](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca16c4c57e66f86b20269db0d5d6382ded) = 0x00000004, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref784825585083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca0a0a0c633a41a5f30596a5168a3267ca](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca0a0a0c633a41a5f30596a5168a3267ca) = 0x00000005, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1056392053083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca3d4a0608dd5c682fc020bfc68a425e15](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca3d4a0608dd5c682fc020bfc68a425e15) = 0x00000006, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref965963320083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa6dc448a5d0d16a7d2610edb29fff407](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa6dc448a5d0d16a7d2610edb29fff407) = 0x00000007,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref221255855083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6b100b6876c7e77106df92b9c8cf7d2b](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6b100b6876c7e77106df92b9c8cf7d2b) = 0x00000008, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1433734811083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca53a60a5ed93129597841bde263e9a798](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca53a60a5ed93129597841bde263e9a798) = 0x00000009, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1953311748083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa66ffaf12ec59488cccbd2170cc3d2c8](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa66ffaf12ec59488cccbd2170cc3d2c8) = 0x0000000a, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref722710803083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca0fe652843eafbf7a93b645a71342dce0](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca0fe652843eafbf7a93b645a71342dce0) = 0x00000100,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref807869741083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa2e1f70b023dd5ae3a31771217d958cc](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa2e1f70b023dd5ae3a31771217d958cc) = 0x00000200, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1259865942083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca47dd20703e8d8135aedfb687b75ef66c](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca47dd20703e8d8135aedfb687b75ef66c) = 0x00000300, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1984327463083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab031ec808cc46bee79d2c96460615206](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab031ec808cc46bee79d2c96460615206) = 0x00000400, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref561552060083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca078b8dad4e1eb6720c81c841b3f417d9](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca078b8dad4e1eb6720c81c841b3f417d9) = 0x00000500,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1263948536083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad6abe514be2fa6c57b2aec5a5eb6fc7d](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad6abe514be2fa6c57b2aec5a5eb6fc7d) = 0x00000600, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1183051809083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca850b419cb0075b5bd44df5708fc9c87f](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca850b419cb0075b5bd44df5708fc9c87f) = 0x00000700, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2118794799083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca24a6d830fca211b067260df9583a1b2b](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca24a6d830fca211b067260df9583a1b2b) = 0x00000800, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1273459295083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca4a6d68c7a2219cada2edf0e9d7bc46f8](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca4a6d68c7a2219cada2edf0e9d7bc46f8) = 0x00000900,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref708368044083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca77342396f1154be94079d0d76fc5e829](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca77342396f1154be94079d0d76fc5e829) = 0x00010000, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2084997452083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca200541efc2ee0d21e37a7200e7a08a54](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca200541efc2ee0d21e37a7200e7a08a54) = 0x00020000, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref550019244083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab51307e81936be84b6504a98197fb1ee](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab51307e81936be84b6504a98197fb1ee) = 0x00030000, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref599760488083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccafd6ac339ebbdbbdd7fee540a6fad5ec2](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccafd6ac339ebbdbbdd7fee540a6fad5ec2) = 0x00040000,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1337337657083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab640f36320dafb19066dfcaccc836999](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab640f36320dafb19066dfcaccc836999) = GAMUT_BT601 \| TRANSFORM_FUNC_SMPTE_170M \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1816105061083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6cd475c6421764e5d71d71f1de75d638](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6cd475c6421764e5d71d71f1de75d638) = GAMUT_BT601 \| TRANSFORM_FUNC_SMPTE_170M \| PRESION_LIMITED, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1498990098083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad2bc96da52c18ef9bb26320507747176](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad2bc96da52c18ef9bb26320507747176) = GAMUT_BT709 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref770259992083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca03631fd75bc6ec7280ce2c68a129e4fd](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca03631fd75bc6ec7280ce2c68a129e4fd) = GAMUT_BT709 \| TRANSFORM_FUNC_LINEAR \| PRESION_EXTENDED,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1144035591083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaaffba49d9c1c335387cd8153becad65a](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaaffba49d9c1c335387cd8153becad65a) = GAMUT_BT709 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1776467667083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca049878481c3ed46dbd6cfea995e2f0d5](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca049878481c3ed46dbd6cfea995e2f0d5) = GAMUT_BT709 \| TRANSFORM_FUNC_SRGB \| PRESION_EXTENDED, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1982944600083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca14381e6d202b6bda3c90264b05d31838](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca14381e6d202b6bda3c90264b05d31838) = GAMUT_BT709 \| TRANSFORM_FUNC_SMPTE_170M \| PRESION_LIMITED, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1756810240083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad03af85a7ff4c1069a97bfb603f7d694](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad03af85a7ff4c1069a97bfb603f7d694) = GAMUT_DCI_P3 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1597065210083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca9de9b32e0e7c172c77922af8904ba3a2](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca9de9b32e0e7c172c77922af8904ba3a2) = GAMUT_DCI_P3 \| TRANSFORM_FUNC_GM2_6 \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1497114999083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca8bcb3a4ed6039d158b9c32ba99fceaff](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca8bcb3a4ed6039d158b9c32ba99fceaff) = GAMUT_DISPLAY_P3 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1059463390083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca2fac97f61868100034eb40fdba9a9d3f](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca2fac97f61868100034eb40fdba9a9d3f) = GAMUT_DCI_P3 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1845514239083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca1f855c7b4bd5f8a9cc29f3e335a9f2f4](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca1f855c7b4bd5f8a9cc29f3e335a9f2f4) = GAMUT_ADOBE_RGB \| TRANSFORM_FUNC_GM2_2 \| PRECISION_FULL,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1108373610083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca27315309a3b866eda00f17825ee9532d](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca27315309a3b866eda00f17825ee9532d) = GAMUT_BT2020 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1250807752083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa63d6a3a8bb1c6c5b383cb7010f61d72](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa63d6a3a8bb1c6c5b383cb7010f61d72) = GAMUT_BT2020 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1723753803083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6de02e882e01743ce5ca07a17d481930](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6de02e882e01743ce5ca07a17d481930) = GAMUT_BT2020 \| TRANSFORM_FUNC_SMPTE_170M \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1603971625083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccac2e37c91fc9bd29641cf95d74aa7862c](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccac2e37c91fc9bd29641cf95d74aa7862c) = GAMUT_BT2020 \| TRANSFORM_FUNC_ST2084 \| PRECISION_FULL,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref910505882083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad5b0a069ac80df8d045265e88f9b5e71](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad5b0a069ac80df8d045265e88f9b5e71) = GAMUT_BT2020 \| TRANSFORM_FUNC_HLG \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1521841710083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaeab2d55af8e3568130cf69fa614b3c9d](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaeab2d55af8e3568130cf69fa614b3c9d) = GAMUT_BT2020 \| TRANSFORM_FUNC_ST2084 \| PRESION_LIMITED } | 枚举颜色空间的类型 [更多...](#colordataspace) | +| [HDRFormat](#hdrformat) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref665428812083931,link:zh-cn_topic_0000001295414172.xml#ggabdc446aa6fa47c5dd8d1b7d87bed2566a0799ce04a1873f60ed59c3d30dcda69a](#ggabdc446aa6fa47c5dd8d1b7d87bed2566a0799ce04a1873f60ed59c3d30dcda69a) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref638522815083931,link:zh-cn_topic_0000001295414172.xml#ggabdc446aa6fa47c5dd8d1b7d87bed2566ac43f1175d92c85033e0a85c7a14266a7](#ggabdc446aa6fa47c5dd8d1b7d87bed2566ac43f1175d92c85033e0a85c7a14266a7) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2122250653083931,link:zh-cn_topic_0000001295414172.xml#ggabdc446aa6fa47c5dd8d1b7d87bed2566ada5b15b3c4b4cc64593452113ac1d4dc](#ggabdc446aa6fa47c5dd8d1b7d87bed2566ada5b15b3c4b4cc64593452113ac1d4dc) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref6932435083931,link:zh-cn_topic_0000001295414172.xml#ggabdc446aa6fa47c5dd8d1b7d87bed2566a2c6e7224778e782cbbd478e4c11282e2](#ggabdc446aa6fa47c5dd8d1b7d87bed2566a2c6e7224778e782cbbd478e4c11282e2) = 3,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1192919169083931,link:zh-cn_topic_0000001295414172.xml#ggabdc446aa6fa47c5dd8d1b7d87bed2566abc6f25afdafdebb03fd137de1917389d](#ggabdc446aa6fa47c5dd8d1b7d87bed2566abc6f25afdafdebb03fd137de1917389d) = 4, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1193677514083931,link:zh-cn_topic_0000001295414172.xml#ggabdc446aa6fa47c5dd8d1b7d87bed2566a84318c5a162e5b9b822e38e675117e42](#ggabdc446aa6fa47c5dd8d1b7d87bed2566a84318c5a162e5b9b822e38e675117e42) = 5 } | 枚举HDR格式 [更多...](#hdrformat) | +| [HDRMetadataKey](#hdrmetadatakey) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1884505899083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a92c0f5eaba344bee22c657040b606fd3](#gga5d7d90acb5c568e62a02b18446f37789a92c0f5eaba344bee22c657040b606fd3) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref651614535083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a405841a4999556bd36281870d579dc7e](#gga5d7d90acb5c568e62a02b18446f37789a405841a4999556bd36281870d579dc7e) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2104996214083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a08f31a74e8df3253c6326879818dfe1b](#gga5d7d90acb5c568e62a02b18446f37789a08f31a74e8df3253c6326879818dfe1b) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1726732454083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a19db3eede73e96c6a25dc4d31e5846e1](#gga5d7d90acb5c568e62a02b18446f37789a19db3eede73e96c6a25dc4d31e5846e1) = 3,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref149187678083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a23e7112a9c4aaf15bc2a529344a61939](#gga5d7d90acb5c568e62a02b18446f37789a23e7112a9c4aaf15bc2a529344a61939) = 4, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref957659268083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a5a34485b5884d8bd86273750b9d47b0b](#gga5d7d90acb5c568e62a02b18446f37789a5a34485b5884d8bd86273750b9d47b0b) = 5, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref254163734083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789ac12237b3de1eee6176c690e7f14ab339](#gga5d7d90acb5c568e62a02b18446f37789ac12237b3de1eee6176c690e7f14ab339) = 6, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1227069924083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a331c8b69a7d9484c9eaea70e78a34921](#gga5d7d90acb5c568e62a02b18446f37789a331c8b69a7d9484c9eaea70e78a34921) = 7,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1152477491083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789ac27053151e1fa76e58dc3281d843ad74](#gga5d7d90acb5c568e62a02b18446f37789ac27053151e1fa76e58dc3281d843ad74) = 8, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref974552333083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a345f5cea142c7357e0b9de5ccfc86bed](#gga5d7d90acb5c568e62a02b18446f37789a345f5cea142c7357e0b9de5ccfc86bed) = 9, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref332772781083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a9897f53fcb179afc9c90f8c7ca0ac254](#gga5d7d90acb5c568e62a02b18446f37789a9897f53fcb179afc9c90f8c7ca0ac254) = 10, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref819598522083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a8d285ea7b6246f62b7e7a65e5a870bfe](#gga5d7d90acb5c568e62a02b18446f37789a8d285ea7b6246f62b7e7a65e5a870bfe) = 11,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1771466287083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a89ef9c02321a94080f185c7fea3f6d1d](#gga5d7d90acb5c568e62a02b18446f37789a89ef9c02321a94080f185c7fea3f6d1d) = 12, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1713611155083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789ac99c4612b3aee2bfede23070fe32ac7e](#gga5d7d90acb5c568e62a02b18446f37789ac99c4612b3aee2bfede23070fe32ac7e) = 13 } | 枚举HDR元数据关键字 [更多...](#hdrmetadatakey) | +| [PresentTimestampType](#presenttimestamptype) { [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref660661019083931,link:zh-cn_topic_0000001295414172.xml#ggabdba71665ea5ba4004ac1a9fbeb505f3ad6e47ab1a80ab94cccb5e465610ff45d](#ggabdba71665ea5ba4004ac1a9fbeb505f3ad6e47ab1a80ab94cccb5e465610ff45d) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1774566629083931,link:zh-cn_topic_0000001295414172.xml#ggabdba71665ea5ba4004ac1a9fbeb505f3a5c06391b9583b69d37c7a0518dd10f09](#ggabdba71665ea5ba4004ac1a9fbeb505f3a5c06391b9583b69d37c7a0518dd10f09) = 1 << 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1494486451083931,link:zh-cn_topic_0000001295414172.xml#ggabdba71665ea5ba4004ac1a9fbeb505f3afd872c457c9dade672aaaec5de622ff7](#ggabdba71665ea5ba4004ac1a9fbeb505f3afd872c457c9dade672aaaec5de622ff7) = 1 << 1 } | 上屏时间戳类型枚举值 [更多...](#presenttimestamptype) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [DeviceInitialize](#deviceinitialize) ([DeviceFuncs](_device_funcs.md) \*\*funcs) | 实现显示设备控制接口的初始化,申请操作显示设备控制接口的资源,并获取对应的操作接口。 [更多...](#deviceinitialize) | +| [DeviceUninitialize](#deviceuninitialize) ([DeviceFuncs](_device_funcs.md) \*funcs) | 取消显示设备控制接口的初始化,释放控制接口使用到的资源。 [更多...](#deviceuninitialize) | +| [GfxInitialize](#gfxinitialize) ([GfxFuncs](_gfx_funcs.md) \*\*funcs) | 获取硬件加速相关的操作接口指针。 [更多...](#gfxinitialize) | +| [GfxUninitialize](#gfxuninitialize) ([GfxFuncs](_gfx_funcs.md) \*funcs) | 释放硬件加速相关的操作接口指针。 [更多...](#gfxuninitialize) | +| [GrallocInitialize](#grallocinitialize) ([GrallocFuncs](_gralloc_funcs.md) \*\*funcs) | 初始化内存模块,并获取内存提供的操作接口。 [更多...](#grallocinitialize) | +| [GrallocUninitialize](#grallocuninitialize) ([GrallocFuncs](_gralloc_funcs.md) \*funcs) | 取消初始化内存模块,并释放内存操作接口指针。 [更多...](#grallocuninitialize) | +| [LayerInitialize](#layerinitialize) ([LayerFuncs](_layer_funcs.md) \*\*funcs) | 实现图层初始化功能,申请图层使用的资源,并获取图层提供的操作接口。 [更多...](#layerinitialize) | +| [LayerUninitialize](#layeruninitialize) ([LayerFuncs](_layer_funcs.md) \*funcs) | 取消图层初始化功能,释放图层使用到的资源,并释放图层操作接口指针。 [更多...](#layeruninitialize) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| ( [DeviceFuncs::RegHotPlugCallback](#reghotplugcallback) )([HotPlugCallback](#hotplugcallback) callback, void \*data) | 注册热插拔事件回调。 [更多...](#reghotplugcallback) | +| ( [DeviceFuncs::RegDisplayVBlankCallback](#regdisplayvblankcallback) )(uint32_t devId, [VBlankCallback](#vblankcallback) callback, void \*data) | 注册VBlank事件回调。 [更多...](#regdisplayvblankcallback) | +| ( [DeviceFuncs::RegDisplayRefreshCallback](#regdisplayrefreshcallback) )(uint32_t devId, [RefreshCallback](#refreshcallback) callback, void \*data) | 刷新请求回调。 [更多...](#regdisplayrefreshcallback) | +| ( [DeviceFuncs::GetDisplayCapability](#getdisplaycapability) )(uint32_t devId, [DisplayCapability](_display_capability.md) \*info) | 获取显示设备能力集。 [更多...](#getdisplaycapability) | +| ( [DeviceFuncs::GetDisplaySupportedModes](#getdisplaysupportedmodes) )(uint32_t devId, uint32_t \*num, [DisplayModeInfo](_display_mode_info.md) \*modes) | 获取显示设备支持的显示模式信息。 [更多...](#getdisplaysupportedmodes) | +| ( [DeviceFuncs::GetDisplayMode](#getdisplaymode) )(uint32_t devId, uint32_t \*modeId) | 获取显示设备当前的显示模式。 [更多...](#getdisplaymode) | +| ( [DeviceFuncs::SetDisplayMode](#setdisplaymode) )(uint32_t devId, uint32_t modeId) | 设置显示设备的显示模式。 [更多...](#setdisplaymode) | +| ( [DeviceFuncs::GetDisplayPowerStatus](#getdisplaypowerstatus) )(uint32_t devId, [DispPowerStatus](#disppowerstatus) \*status) | 获取显示设备当前的电源状态。 [更多...](#getdisplaypowerstatus) | +| ([ DeviceFuncs::SetDisplayPowerStatus](#setdisplaypowerstatus) )(uint32_t devId, [DispPowerStatus](#disppowerstatus) status) | 设置显示设备当前的电源状态。 [更多...](#setdisplaypowerstatus) | +| ( [DeviceFuncs::GetDisplayBacklight](#getdisplaybacklight) )(uint32_t devId, uint32_t \*level) | 获取显示设备当前的背光值。 [更多...](#getdisplaybacklight) | +| ( [DeviceFuncs::SetDisplayBacklight](#setdisplaybacklight) )(uint32_t devId, uint32_t level) | 设置显示设备当前的背光值。 [更多...](#setdisplaybacklight) | +| ( [DeviceFuncs::GetDisplayProperty](#getdisplayproperty) )(uint32_t devId, uint32_t id, uint64_t \*value) | 获得显示设备属性值。 [更多...](#getdisplayproperty) | +| ( [DeviceFuncs::SetDisplayProperty](#setdisplayproperty) )(uint32_t devId, uint32_t id, uint64_t value) | 设置显示设备属性值。 [更多...](#setdisplayproperty) | +| ( [DeviceFuncs::PrepareDisplayLayers](#preparedisplaylayers) )(uint32_t devId, bool \*needFlushFb) | 显示设备合成前准备。 [更多...](#preparedisplaylayers) | +| ( [DeviceFuncs::GetDisplayCompChange](#getdisplaycompchange) )(uint32_t devId, uint32_t \*num, uint32_t \*Layers, int32_t \*type) | 获取显示设备合成类型有变化的layer。 [更多...](#getdisplaycompchange) | +| ( [DeviceFuncs::SetDisplayClientCrop](#setdisplayclientcrop) )(uint32_t devId, [IRect](_i_rect.md) \*rect) | 设置显示设备的裁剪区域。 [更多...](#setdisplayclientcrop) | +| ( [DeviceFuncs::SetDisplayClientDestRect](#setdisplayclientdestrect) )(uint32_t devId, [IRect](_i_rect.md) \*rect) | 设置显示设备的显示区域。 [更多...](#setdisplayclientdestrect) | +| ( [DeviceFuncs::SetDisplayClientBuffer](#setdisplayclientbuffer) )(uint32_t devId, const BufferHandle \*buffer, int32_t fence) | 设置显示设备的显示缓存。 [更多...](#setdisplayclientbuffer) | +| ( [DeviceFuncs::SetDisplayClientDamage](#setdisplayclientdamage) )(uint32_t devId, uint32_t num, [IRect](_i_rect.md) \*rect) | 设置显示设备的显示脏区。 [更多...](#setdisplayclientdamage) | +| ( [DeviceFuncs::SetDisplayVsyncEnabled](#setdisplayvsyncenabled) )(uint32_t devId, bool enabled) | 使能垂直同步信号。 [更多...](#setdisplayvsyncenabled) | +| ( [DeviceFuncs::GetDisplayReleaseFence](#getdisplayreleasefence) )(uint32_t devId, uint32_t \*num, uint32_t \*layers, int32_t \*fences) | 获取显示图层fence。 [更多...](#getdisplayreleasefence) | +| ( [DeviceFuncs::GetDisplaySupportedColorGamuts](#getdisplaysupportedcolorgamuts) )(uint32_t devId, uint32_t \*num, [ColorGamut](#colorgamut) \*gamuts) | 获取显示设备支持的色域信息。 [更多...](#getdisplaysupportedcolorgamuts) | +| ( [DeviceFuncs::GetDisplayColorGamut](#getdisplaycolorgamut) )(uint32_t devId, [ColorGamut](#colorgamut) \*gamut) | 获取显示设备当前的色域模式。 [更多...](#getdisplaycolorgamut) | +| ( [DeviceFuncs::SetDisplayColorGamut](#setdisplaycolorgamut) )(uint32_t devId, [ColorGamut](#colorgamut) gamut) | 设置显示设备当前的色域模式。 [更多...](#setdisplaycolorgamut) | +| ( [DeviceFuncs::GetDisplayGamutMap](#getdisplaygamutmap) )(uint32_t devId, [ColorGamut](#colorgamut) \*gamutMap) | 获取显示设备当前的色域映射模式。 [更多...](#getdisplaygamutmap) | +| ( [DeviceFuncs::SetDisplayGamutMap](#setdisplaygamutmap) )(uint32_t devId, [ColorGamut](#colorgamut) gamutMap) | 设置显示设备当前的色域映射模式。 [更多...](#setdisplaygamutmap) | +| ( [DeviceFuncs::SetDisplayColorTransform](#setdisplaycolortransform) )(uint32_t devId, const float \*matrix) | 设置显示设备当前的4x4的颜色转换矩阵。 [更多...](#setdisplaycolortransform) | +| ( [DeviceFuncs::GetHDRCapabilityInfos](#gethdrcapabilityinfos) )(uint32_t devId, [HDRCapability](_h_d_r_capability.md) \*info) | 获取显示设备支持的HDR属性信息。 [更多...](#gethdrcapabilityinfos) | +| ( [DeviceFuncs::GetSupportedMetadataKey](#getsupportedmetadatakey) )(uint32_t devId, uint32_t \*num, [HDRMetadataKey](#hdrmetadatakey) \*keys) | 获取显示设备支持的 HDRMetadataKey。 [更多...](#getsupportedmetadatakey) | +| ( [DeviceFuncs::Commit](#commit) )(uint32_t devId, int32_t \*fence) | 提交合成送显请求。 [更多...](#commit) | +| ( [DeviceFuncs::InvokeDisplayCmd](#invokedisplaycmd) )(uint32_t devId,...) | 调用显示设备命令。 [更多...](#invokedisplaycmd) | +| ([ DeviceFuncs::CreateVirtualDisplay](#createvirtualdisplay) )(uint32_t width, uint32_t height, int32_t \*format, uint32_t \*devId) | 创建虚拟显示设备。 [更多...](#createvirtualdisplay) | +| ( [DeviceFuncs::DestroyVirtualDisplay](#destroyvirtualdisplay) )(uint32_t devId) | 销毁虚拟显示设备。 [更多...](#destroyvirtualdisplay) | +| ( [DeviceFuncs::SetVirtualDisplayBuffer](#setvirtualdisplaybuffer) )(uint32_t devId, BufferHandle \*buffer, int32_t fence) | 设置虚拟屏的输出缓存。 [更多...](#setvirtualdisplaybuffer) | +| ( [DeviceFuncs::GetWriteBackFrame](#getwritebackframe) )(uint32_t devId, BufferHandle \*buffer, int32_t \*fence) | 获取显示设备的回写帧。 [更多...](#getwritebackframe) | +| ( [DeviceFuncs::CreateWriteBack](#createwriteback) )(uint32_t \*devId, uint32_t width, uint32_t height, int32_t \*format) | 对指定显示设备创建回写点。 [更多...](#createwriteback) | +| ( [DeviceFuncs::DestroyWriteBack](#destroywriteback) )(uint32_t devId) | 销毁指定显示设备的回写点。 [更多...](#destroywriteback) | +| [DisplayInfo::width](#width-17) | 显示屏宽度 | +| [DisplayInfo::height](#height-17) | 显示屏高度 | +| [DisplayInfo::rotAngle](#rotangle) | 显示屏旋转角度 | +| [LayerInfo::width](#width-27) | 图层宽度 | +| [LayerInfo::height](#height-27) | 图层高度 | +| [LayerInfo::type](#type-13) | 图层类型,包括图形层、视频层和媒体播放模式 | +| [LayerInfo::bpp](#bpp) | 每像素所占bit数 | +| [LayerInfo::pixFormat](#pixformat-12) | 图层像素格式 | +| [LayerAlpha::enGlobalAlpha](#englobalalpha-12) | 全局alpha使能标志 | +| [LayerAlpha::enPixelAlpha](#enpixelalpha-12) | 像素alpha使能标志 | +| [LayerAlpha::alpha0](#alpha0-12) | alpha0值,取值范围:[0, 255] | +| [LayerAlpha::alpha1](#alpha1-12) | alpha1值,取值范围:[0, 255] | +| [LayerAlpha::gAlpha](#galpha) | 全局alpha值,取值范围:[0, 255] | +| [BufferData::phyAddr](#phyaddr-12) | 物理内存地址 | +| [BufferData::virAddr](#viraddr) | 虚拟内存地址 | +| [LayerBuffer::fenceId](#fenceid) | buffer 的fence号r | +| [LayerBuffer::width](#width-37) | buffer宽度 | +| [LayerBuffer::height](#height-37) | buffer高度 | +| [LayerBuffer::pitch](#pitch) | 一行数据所占字节数 | +| [LayerBuffer::pixFormat](#pixformat-22) | buffer像素格式r | +| [LayerBuffer::data](#data) | 图层buffer数据 | +| [LayerBuffer::hdl](#hdl) | 图层buffer句柄 | +| [IRect::x](#x-12) | 矩形框起始x坐标 | +| [IRect::y](#y-12) | 矩形框起始y坐标 | +| [IRect::w](#w) | 矩形框宽度 | +| [IRect::h](#h) | 矩形框高度 | +| [ISurface::phyAddr](#phyaddr-22) | 图像首地址 | +| [ISurface::height](#height-47) | 图像高度 | +| [ISurface::width](#width-47) | 图像宽度 | +| [ISurface::stride](#stride) | 图像跨度 | +| [ISurface::enColorFmt](#encolorfmt) | 图像格式 | +| [ISurface::bYCbCrClut](#bycbcrclut) | CLUT表是否位于 YCbCr 空间 | +| [ISurface::bAlphaMax255](#balphamax255) | 图像alpha最大值为255还是128 | +| [ISurface::bAlphaExt1555](#balphaext1555) | 是否使能1555的Alpha扩展 | +| [ISurface::alpha0](#alpha0-22) | Alpha0值,取值范围:[0,255] | +| [ISurface::alpha1](#alpha1-22) | Alpha1值,取值范围:[0,255] | +| [ISurface::cbcrPhyAddr](#cbcrphyaddr) | CbCr分量地址 | +| [ISurface::cbcrStride](#cbcrstride) | CbCr分量跨度 | +| [ISurface::clutPhyAddr](#clutphyaddr) | Clut表首地址,用作颜色扩展或颜色校正 | +| [ILine::x0](#x0) | 线条起点的x坐标 | +| [ILine::y0](#y0) | 线条起点的y坐标 | +| [ILine::x1](#x1) | 线条终点的x坐标 | +| [ILine::y1](#y1) | 线条终点的y坐标 | +| [ILine::color](#color-13) | 线条颜色 | +| [ICircle::x](#x-22) | 圆心x坐标 | +| [ICircle::y](#y-22) | 圆心y坐标r | +| [ICircle::r](#r) | 圆的半径 | +| [ICircle::color](#color-23) | 圆的颜色 | +| [Rectangle::rect](#rect) | 矩形区域 | +| [Rectangle::color](#color-33) | 矩形颜色 | +| [GfxOpt::enGlobalAlpha](#englobalalpha-22) | 全局alpha使能位 | +| [GfxOpt::globalAlpha](#globalalpha) | 全局alpha的值 | +| [GfxOpt::enPixelAlpha](#enpixelalpha-22) | 像素alpha使能位 | +| [GfxOpt::blendType](#blendtype) | 混合方式 | +| [GfxOpt::colorKeyFrom](#colorkeyfrom) | 色键模式 | +| [GfxOpt::enableRop](#enablerop) | Rop功能使能位 | +| [GfxOpt::colorRopType](#colorroptype) | 颜色的Rop类型 | +| [GfxOpt::alphaRopType](#alpharoptype) | Alpha的Rop类型 | +| [GfxOpt::enableScale](#enablescale) | 缩放功能使能位 | +| [GfxOpt::rotateType](#rotatetype) | 旋转类型 | +| [GfxOpt::mirrorType](#mirrortype) | 镜像类型 | +| [PropertyObject::name](#name-12) [PROPERTY_NAME_LEN] | 属性名称 | +| [PropertyObject::propId](#propid) | 属性ID | +| [PropertyObject::value](#value-12) | 属性值 | +| [DisplayCapability::name](#name-22) [PROPERTY_NAME_LEN] | 显示设备名称 | +| [DisplayCapability::type](#type-23) | 显示屏接口类型 | +| [DisplayCapability::phyWidth](#phywidth) | 物理宽度 | +| [DisplayCapability::phyHeight](#phyheight) | 物理高度 | +| [DisplayCapability::supportLayers](#supportlayers) | 支持的图层数 | +| [DisplayCapability::virtualDispCount](#virtualdispcount) | 支持的虚拟屏数 | +| [DisplayCapability::supportWriteBack](#supportwriteback) | 是否支持回写 | +| [DisplayCapability::propertyCount](#propertycount) | 属性数组大小 | +| [DisplayCapability::props](#props) | 属性数组 | +| [DisplayModeInfo::width](#width-57) | 像素宽度 | +| [DisplayModeInfo::height](#height-57) | 像素高度 | +| [DisplayModeInfo::freshRate](#freshrate) | 刷新速率 | +| [DisplayModeInfo::id](#id) | 模式ID | +| [AllocInfo::width](#width-67) | 申请内存宽度 | +| [AllocInfo::height](#height-67) | 申请内存高度 | +| [AllocInfo::usage](#usage-12) | 申请内存的使用场景 | +| [AllocInfo::format](#format-12) | 申请内存格式 | +| [AllocInfo::expectedSize](#expectedsize) | 申请内存大小 | +| [HDRCapability::formatCount](#formatcount) | 支持的HDR格式的数量 | +| [HDRCapability::formats](#formats) | 支持的HDR格式的数组首地址 | +| [HDRCapability::maxLum](#maxlum) | 最大的光亮度luminance值 | +| [HDRCapability::maxAverageLum](#maxaveragelum) | 最大的平均光亮度luminance值 | +| [HDRCapability::minLum](#minlum) | 最小的光亮度luminance值 | +| [HDRMetaData::key](#key) | HDR元数据关键字 | +| [HDRMetaData::value](#value-22) | 关键字对应的值 | +| [VerifyAllocInfo::width](#width-77) | 分配内存的宽度 | +| [VerifyAllocInfo::height](#height-77) | 分配内存的高度 | +| [VerifyAllocInfo::usage](#usage-22) | 内存的用处 | +| [VerifyAllocInfo::format](#format-22) | 分配内存的像素格式 | +| [PresentTimestamp::type](#type-33) | 上屏时间戳类型 | +| [PresentTimestamp::time](#time) | 类型对应的值 | +| [__attribute__::fd](#fd) | 句柄 fd,-1代表不支持 | +| [__attribute__::reserveInts](#reserveints) | reserve数组的个数 | +| [__attribute__::reserve](#reserve) [0] | reserve数组 | +| [__attribute__::baseAddr](#baseaddr) | 内存的初始地址 | +| [__attribute__::yOffset](#yoffset) | Y的偏移量 | +| [__attribute__::uOffset](#uoffset) | U的偏移量 | +| [__attribute__::vOffset](#voffset) | V的偏移量 | +| [__attribute__::yStride](#ystride) | Y的stride信息 | +| [__attribute__::uvStride](#uvstride) | UV的stride信息 | +| [__attribute__::uvStep](#uvstep) | UV的step信息 | + + +## **详细描述** + +显示模块驱动接口定义。 + +提供给图形系统使用的驱动接口,包括图层管理、设备控制、图形硬件加速、显示内存管理和回调接口等。 + +**Since:** + +1.0 + +**Version:** + +2.0 + + +## **类型定义说明** + + +### HotPlugCallback + + +``` +typedef void(* HotPlugCallback) (uint32_t devId, bool connected, void *data) +``` + +**描述:** + +热插拔事件回调。 + +当有热插拔事件发生时,会回调该接口,需要通过RegHotPlugCallback注册该回调接口。 + +\@paramdevId 输入参数,显示设备ID,此ID由HDI实现层生成,并通过当前回调接口传递给图形服务使用,用以标记当前连接的显示设备。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| connected | 输入参数,指明设备的连接状态,ture代表连接,false代表断开。 | +| data | 输出参数,图形服务携带的私有数据,该参数携带的是RegHotPlugCallback接口注册时传递的私有数据地址,详情参考 RegHotPlugCallback 接口注册时传递的地址。 | + + +### RefreshCallback + + +``` +typedef void(* RefreshCallback) (uint32_t devId, void *data) +``` + +**描述:** + +刷新请求回调。 + +刷新请求回调,当接口实现层需要图形服务刷新数据帧时会回调该接口,需要通过RegDisplayRefreshCallback注册该回调接口。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID。 | +| data | 输出参数,图形服务携带的私有数据,该参数携带的是RegDisplayRefreshCallback接口注册时传递的地址。 | + + +### VBlankCallback + + +``` +typedef void(* VBlankCallback) (unsigned int sequence, uint64_t ns, void *data) +``` + +**描述:** + +VBlank 事件回调。 + +垂直同步事件回调接口,需要通过RegDisplayVBlankCallback注册该回调接口。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| sequence | 输入参数,指明VBlank序列,是一个累加值。 | +| ns | 输入参数,该次VBlank事件的时间戳,以纳秒为单位。 | +| data | 输出参数,图形服务携带的私有数据,该参数携带的是RegDisplayVBlankCallback接口注册时传递的地址。 | + + +## **枚举类型说明** + + +### anonymous enum + + +``` +anonymous enum +``` + +**描述:** + +缓冲区定义。 + + | 枚举值 | 描述 | +| -------- | -------- | +| HBM_USE_CPU_READ | CPU 读缓冲 | +| HBM_USE_CPU_WRITE | CPU 写内存 | +| HBM_USE_MEM_MMZ | MMZ | +| HBM_USE_MEM_DMA | DMA缓冲区 | +| HBM_USE_MEM_SHARE | 共享内存缓冲区 | +| HBM_USE_MEM_MMZ_CACHE | MMZ缓存 | +| HBM_USE_MEM_FB | 帧缓存 | +| HBM_USE_ASSIGN_SIZE | 内存分配 | + + +### BlendType + + +``` +enum BlendType +``` + +**描述:** + +显示内存类型定义。 + +根据图形系统指定的类型进行分配,包括带cache或者不带cache的内存。 + + | 枚举值 | 描述 | +| -------- | -------- | +| BLEND_NONE | No 混合操作 | +| BLEND_CLEAR | CLEAR 混合操作 | +| BLEND_SRC | SRC 混合操作 | +| BLEND_SRCOVER | SRC_OVER 混合操作 | +| BLEND_DSTOVER | DST_OVER 混合操作 | +| BLEND_SRCIN | SRC_IN 混合操作 | +| BLEND_DSTIN | DST_IN 混合操作 | +| BLEND_SRCOUT | SRC_OUT 混合操作 | +| BLEND_DSTOUT | DST_OUT 混合操作 | +| BLEND_SRCATOP | SRC_ATOP 混合操作 | +| BLEND_DSTATOP | DST_ATOP 混合操作 | +| BLEND_ADD | ADD 混合操作 | +| BLEND_XOR | XOR 混合操作 | +| BLEND_DST | DST 混合操作 | +| BLEND_AKS | AKS 混合操作 | +| BLEND_AKD | AKD 混合操作 | +| BLEND_BUTT | 空操作 | + + +### ColorDataSpace + + +``` +enum ColorDataSpace +``` + +**描述:** + +枚举颜色空间的类型 + + | 枚举值 | 描述 | +| -------- | -------- | +| COLOR_DATA_SPACE_UNKNOWN | 未知的 | +| GAMUT_BT601 | BT601色域 | +| GAMUT_BT709 | BT709色域 | +| GAMUT_DCI_P3 | DCI_P3色域 | +| GAMUT_SRGB | SRGB色域 | +| GAMUT_ADOBE_RGB | ADOBE_RGB色域 | +| GAMUT_DISPLAY_P3 | DISPLAY_P3色域 | +| GAMUT_BT2020 | BT2020色域 | +| GAMUT_BT2100_PQ | BT2100_PQ色域 | +| GAMUT_BT2100_HLG | BT2100_HLG色域 | +| GAMUT_DISPLAY_BT2020 | DISPLAY_BT2020色域 | +| TRANSFORM_FUNC_UNSPECIFIED | UNSPECIFIED转换函数 | +| TRANSFORM_FUNC_LINEAR | LINEAR转换函数 | +| TRANSFORM_FUNC_SRGB | SRGB转换函数 | +| TRANSFORM_FUNC_SMPTE_170M | SMPTE_170M转换函数 | +| TRANSFORM_FUNC_GM2_2 | GM2_2转换函数 | +| TRANSFORM_FUNC_GM2_6 | GM2_6转换函数 | +| TRANSFORM_FUNC_GM2_8 | GM2_8转换函数 | +| TRANSFORM_FUNC_ST2084 | ST2084转换函数 | +| TRANSFORM_FUNC_HLG | HLG转换函数 | +| PRECISION_UNSPECIFIED | UNSPECIFIED精度 | +| PRECISION_FULL | FULL精度 | +| PRESION_LIMITED | LIMITED精度 | +| PRESION_EXTENDED | EXTENDED精度 | +| BT601_SMPTE170M_FULL | BT601色域 \| SMPTE_170M转换函数 \| FULL精度 | +| BT601_SMPTE170M_LIMITED | BT601色域 \| SMPTE_170M转换函数 \| LIMITED精度 | +| BT709_LINEAR_FULL | BT709色域 \| LINEAR转换函数 \| FULL精度 | +| BT709_LINEAR_EXTENDED | BT709色域 \| LINEAR转换函数 \| EXTENDED精度 | +| BT709_SRGB_FULL | BT709色域 \| SRGB转换函数 \| FULL精度 | +| BT709_SRGB_EXTENDED | BT709色域 \| SRGB转换函数 \| EXTENDED精度 | +| BT709_SMPTE170M_LIMITED | BT709色域 \| SMPTE_170M转换函数 \| LIMITED精度 | +| DCI_P3_LINEAR_FULL | DCI_P3色域 \| LINEAR转换函数 \| FULL精度 | +| DCI_P3_GAMMA26_FULL | DCI_P3色域 \| GM2_6转换函数 \| FULL精度 | +| DISPLAY_P3_LINEAR_FULL | DISPLAY_P3色域 \| LINEAR转换函数 \| FULL精度 | +| DCI_P3_SRGB_FULL | DCI_P3色域 \| SRGB转换函数 \| FULL精度 | +| ADOBE_RGB_GAMMA22_FULL | ADOBE_RGB色域 \| GM2_2转换函数 \| FULL精度 | +| BT2020_LINEAR_FULL | BT2020色域 \| LINEAR转换函数 \| FULL精度 | +| BT2020_SRGB_FULL | BT2020色域 \| SRGB转换函数 \| FULL精度 | +| BT2020_SMPTE170M_FULL | BT2020色域 \| SMPTE_170M转换函数 \| FULL精度 | +| BT2020_ST2084_FULL | BT2020色域 \| ST2084转换函数 \| FULL精度 | +| BT2020_HLG_FULL | BT2020色域 \| HLG转换函数 \| FULL精度 | +| BT2020_ST2084_LIMITED | BT2020色域 \| ST2084转换函数 \| LIMITED精度 | + + +### ColorGamut + + +``` +enum ColorGamut +``` + +**描述:** + +色域类型枚举值。 + + | 枚举值 | 描述 | +| -------- | -------- | +| COLOR_GAMUT_INVALID | 无效值 | +| COLOR_GAMUT_NATIVE | 默认值 | +| COLOR_GAMUT_SATNDARD_BT601 | Standard BT601类型 | +| COLOR_GAMUT_STANDARD_BT709 | Standard BT709类型 | +| COLOR_GAMUT_DCI_P3 | DCI P3类型 | +| COLOR_GAMUT_SRGB | SRGB类型 | +| COLOR_GAMUT_ADOBE_RGB | Adobe RGB类型 | +| COLOR_GAMUT_DISPLAY_P3 | display P3类型 | +| COLOR_GAMUT_BT2020 | BT2020类型 | +| COLOR_GAMUT_BT2100_PQ | BT2100 PQ类型 | +| COLOR_GAMUT_BT2100_HLG | BT2100 HLG类型 | +| COLOR_GAMUT_DISPLAY_BT2020 | Display BT2020类型 | + + +### ColorKey + + +``` +enum ColorKey +``` + +**描述:** + +Color key操作类型定义,即硬件加速支持的Color key操作类型。 + + | 枚举值 | 描述 | +| -------- | -------- | +| CKEY_NONE | 不使用colorkey | +| CKEY_SRC | 使用源colorkey | +| CKEY_DST | 使用目标colorkey | +| CKEY_BUTT | 空操作 | + + +### CompositionType + + +``` +enum CompositionType +``` + +**描述:** + +枚举特殊层的组合类型。 + + | 枚举值 | 描述 | +| -------- | -------- | +| COMPOSITION_CLIENT | Client 合成类型,使用CPU或者GPU合成。 | +| COMPOSITION_DEVICE | Device 合成类型,使用Device合成。 | +| COMPOSITION_CURSOR | Cursor合成类型,用于光标合成。 | +| COMPOSITION_VIDEO | Video合成类型,用于视频层合成。 | +| COMPOSITION_DEVICE_CLEAR | Device clear 合成类型,device会清除目标区域。 | +| COMPOSITION_CLIENT_CLEAR | Client clear 合成类型,service会清除目标区域。 | +| COMPOSITION_TUNNEL | Tunnel 合成类型,用于tunnel。 | +| COMPOSITION_BUTT | 合成类型,一个不可用类型,用于默认初始化。 | + + +### Connection + + +``` +enum Connection +``` + +**描述:** + +热插拔连接类型定义 + + | 枚举值 | 描述 | +| -------- | -------- | +| CON_INVALID | 无效类型 | +| CONNECTED | 已连接 | +| DISCONNECTED | 断开连接 | + + +### DispErrCode + + +``` +enum DispErrCode +``` + +**描述:** + +返回值类型定义。 + + | 枚举值 | 描述 | +| -------- | -------- | +| DISPLAY_SUCCESS | 成功 | +| DISPLAY_FAILURE | 失败 | +| DISPLAY_FD_ERR | fd错误 | +| DISPLAY_PARAM_ERR | 参数错误 | +| DISPLAY_NULL_PTR | 空指针 | +| DISPLAY_NOT_SUPPORT | 不支持的特性 | +| DISPLAY_NOMEM | 内存不足 | +| DISPLAY_SYS_BUSY | 系统繁忙 | +| DISPLAY_NOT_PERM | 操作不允许 | + + +### DispPowerStatus + + +``` +enum DispPowerStatus +``` + +**描述:** + +枚举显示状态 + + | 枚举值 | 描述 | +| -------- | -------- | +| POWER_STATUS_ON | 上电模式 | +| POWER_STATUS_STANDBY | 待机模式 | +| POWER_STATUS_SUSPEND | 休眠模式 | +| POWER_STATUS_OFF | 下电模式 | +| POWER_STATUS_BUTT | 默认模式 | + + +### GamutMap + + +``` +enum GamutMap +``` + +**描述:** + +枚举色域的映射类型 + + | 枚举值 | 描述 | +| -------- | -------- | +| GAMUT_MAP_CONSTANT | 不变 | +| GAMUT_MAP_EXPANSION | 映射增强 | +| GAMUT_MAP_HDR_CONSTANT | 不变,用于HDR | +| GAMUT_MAP_HDR_EXPANSION | 映射增强,用于HDR | + + +### HDRFormat + + +``` +enum HDRFormat +``` + +**描述:** + +枚举HDR格式 + + | 枚举值 | 描述 | +| -------- | -------- | +| NOT_SUPPORT_HDR | 不支持HDR | +| DOLBY_VISION | Dolby Vision格式 | +| HDR10 | HDR10格式 | +| HLG | HLG格式 | +| HDR10_PLUS | HDR10 Plus格式 | +| HDR_VIVID | Vivid格式 | + + +### HDRMetadataKey + + +``` +enum HDRMetadataKey +``` + +**描述:** + +枚举HDR元数据关键字 + + | 枚举值 | 描述 | +| -------- | -------- | +| MATAKEY_RED_PRIMARY_X | 红基色X坐标 | +| MATAKEY_RED_PRIMARY_Y | 红基色Y坐标 | +| MATAKEY_GREEN_PRIMARY_X | 绿基色X坐标 | +| MATAKEY_GREEN_PRIMARY_Y | 绿基色Y坐标 | +| MATAKEY_BLUE_PRIMARY_X | 蓝基色X坐标 | +| MATAKEY_BLUE_PRIMARY_Y | 蓝基色Y坐标 | +| MATAKEY_WHITE_PRIMARY_X | 白点X坐标 | +| MATAKEY_WHITE_PRIMARY_Y | 白点Y坐标 | +| MATAKEY_MAX_LUMINANCE | 最大的光亮度 | +| MATAKEY_MIN_LUMINANCE | 最小的光亮度 | +| MATAKEY_MAX_CONTENT_LIGHT_LEVEL | 最大的内容亮度水平 | +| MATAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL | 最大的帧平均亮度水平 | +| MATAKEY_HDR10_PLUS | HDR10 Plus | +| MATAKEY_HDR_VIVID | Vivid | + + +### InterfaceType + + +``` +enum InterfaceType +``` + +**描述:** + +枚举接口类型。 + + | 枚举值 | 描述 | +| -------- | -------- | +| DISP_INTF_HDMI | HDMI 接口 | +| DISP_INTF_LCD | LCD 接口 | +| DISP_INTF_BT1120 | BT1120 接口 | +| DISP_INTF_BT656 | BT656 接口 | +| DISP_INTF_YPBPR | YPBPR 接口 | +| DISP_INTF_RGB | RGB 接口 | +| DISP_INTF_CVBS | CVBS 接口 | +| DISP_INTF_SVIDEO | SVIDEO 接口 | +| DISP_INTF_VGA | VGA 接口 | +| DISP_INTF_MIPI | MIPI 接口 | +| DISP_INTF_PANEL | PANEL 接口 | +| DISP_INTF_BUTT | BUTT接口,一个不可用类型,用于默认初始化。 | + + +### LayerType + + +``` +enum LayerType +``` + +**描述:** + +图层类型定义。 + + | 枚举值 | 描述 | +| -------- | -------- | +| LAYER_TYPE_GRAPHIC | 图形层 | +| LAYER_TYPE_OVERLAY | 视频层 | +| LAYER_TYPE_SDIEBAND | 媒体播放 | +| LAYER_TYPE_CURSOR | 光标层 | +| LAYER_TYPE_BUTT | 空图层 | + + +### MirrorType + + +``` +enum MirrorType +``` + +**描述:** + +硬件加速支持的镜像操作类型定义 + + | 枚举值 | 描述 | +| -------- | -------- | +| MIRROR_NONE | 不使用镜像 | +| MIRROR_LR | 左右镜像 | +| MIRROR_TB | 上下镜像 | +| MIRROR_BUTT | 空操作 | + + +### PixelFormat + + +``` +enum PixelFormat +``` + +**描述:** + +像素格式类型定义。 + + | 枚举值 | 描述 | +| -------- | -------- | +| PIXEL_FMT_CLUT8 | CLUT8 格式 | +| PIXEL_FMT_CLUT1 | CLUT1 格式 | +| PIXEL_FMT_CLUT4 | CLUT4 格式 | +| PIXEL_FMT_RGB_565 | RGB565 格式 | +| PIXEL_FMT_RGBA_5658 | RGBA5658 格式 | +| PIXEL_FMT_RGBX_4444 | RGBX4444 格式 | +| PIXEL_FMT_RGBA_4444 | RGBA4444 格式 | +| PIXEL_FMT_RGB_444 | RGB444 格式 | +| PIXEL_FMT_RGBX_5551 | RGBX5551 格式 | +| PIXEL_FMT_RGBA_5551 | RGBA5551 格式 | +| PIXEL_FMT_RGB_555 | RGB555 格式 | +| PIXEL_FMT_RGBX_8888 | RGBX8888 格式 | +| PIXEL_FMT_RGBA_8888 | RGBA8888 格式 | +| PIXEL_FMT_RGB_888 | RGB888 格式 | +| PIXEL_FMT_BGR_565 | BGR565 格式 | +| PIXEL_FMT_BGRX_4444 | BGRX4444 格式 | +| PIXEL_FMT_BGRA_4444 | BGRA4444 格式 | +| PIXEL_FMT_BGRX_5551 | BGRX5551 格式 | +| PIXEL_FMT_BGRA_5551 | BGRA5551 格式 | +| PIXEL_FMT_BGRX_8888 | BGRX8888 格式 | +| PIXEL_FMT_BGRA_8888 | BGRA8888 格式 | +| PIXEL_FMT_YUV_422_I | YUV422 交错格式 | +| PIXEL_FMT_YCBCR_422_SP | YCBCR422 半平面格式 | +| PIXEL_FMT_YCRCB_422_SP | YCRCB422 半平面格式 | +| PIXEL_FMT_YCBCR_420_SP | YCBCR420 半平面格式 | +| PIXEL_FMT_YCRCB_420_SP | YCRCB420 半平面格式 | +| PIXEL_FMT_YCBCR_422_P | YCBCR422 平面格式 | +| PIXEL_FMT_YCRCB_422_P | YCRCB422 平面格式 | +| PIXEL_FMT_YCBCR_420_P | YCBCR420 平面格式 | +| PIXEL_FMT_YCRCB_420_P | YCRCB420 平面格式 | +| PIXEL_FMT_YUYV_422_PKG | YUYV422 打包格式 | +| PIXEL_FMT_UYVY_422_PKG | UYVY422 打包格式t | +| PIXEL_FMT_YVYU_422_PKG | YVYU422 打包格式 | +| PIXEL_FMT_VYUY_422_PKG | VYUY422 打包格式 | +| PIXEL_FMT_VENDER_MASK | vendor mask 格式 | +| PIXEL_FMT_BUTT | Invalid 像素格式 | + + +### PresentTimestampType + + +``` +enum PresentTimestampType +``` + +**描述:** + +上屏时间戳类型枚举值。 + + | 枚举值 | 描述 | +| -------- | -------- | +| HARDWARE_DISPLAY_PTS_UNSUPPORTED | 不支持 | +| HARDWARE_DISPLAY_PTS_DELAY | Delay 时延类型 | +| HARDWARE_DISPLAY_PTS_TIMESTAMP | 时间戳类型 | + + +### RopType + + +``` +enum RopType +``` + +**描述:** + +硬件加速支持的ROP操作类型。 + +硬件加速支持的ROP操作类型,在将前景位图的RGB颜色分量和Alpha分量值与背景位图的RGB颜色 分量值和Alpha分量值进行按位的布尔运算(包括按位与,按位或等),将结果输出。 + + | 枚举值 | 描述 | +| -------- | -------- | +| ROP_BLACK | 黑色 | +| ROP_NOTMERGEPEN | ~(S2+S1) | +| ROP_MASKNOTPEN | ~S2&S1 | +| ROP_NOTCOPYPEN | ~S2 | +| ROP_MASKPENNOT | S2&~S1 | +| ROP_NOT | ~S1 | +| ROP_XORPEN | S2^S1 | +| ROP_NOTMASKPEN | ~(S2&S1) | +| ROP_MASKPEN | S2&S1 | +| ROP_NOTXORPEN | ~(S2^S1) | +| ROP_NOP | S1 | +| ROP_MERGENOTPEN | ~S2+S1 | +| ROP_COPYPE | S2 | +| ROP_MERGEPENNOT | S2+~S1 | +| ROP_MERGEPEN | S2+S1 | +| ROP_WHITE | 白色 | +| ROP_BUTT | 无效值 | + + +### TransformType + + +``` +enum TransformType +``` + +**描述:** + +图层变换类型定义。 + + | 枚举值 | 描述 | +| -------- | -------- | +| ROTATE_NONE | 不旋转 | +| ROTATE_90 | 旋转90度 | +| ROTATE_180 | 旋转180度 | +| ROTATE_270 | 旋转270度 | +| ROTATE_BUTT | 无效操作 | + + +## **函数说明** + + +### DeviceInitialize() + + +``` +int32_t DeviceInitialize (DeviceFuncs **funcs) +``` + +**描述:** + +实现显示设备控制接口的初始化,申请操作显示设备控制接口的资源,并获取对应的操作接口。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| funcs | 输出参数,显示设备控制接口指针,初始化时分配内存,调用者不需要分配内存,调用者获取该指针用于操作显示设备。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### DeviceUninitialize() + + +``` +int32_t DeviceUninitialize (DeviceFuncs * funcs) +``` + +**描述:** + +取消显示设备控制接口的初始化,释放控制接口使用到的资源。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| funcs | 输出参数,显示设备控制接口指针,用于释放初始化函数中分配的操作指针内存。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### GfxInitialize() + + +``` +int32_t GfxInitialize (GfxFuncs **funcs) +``` + +**描述:** + +获取硬件加速相关的操作接口指针。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| funcs | 输出参数,硬件加速模块操作接口指针,调用者不需要分配内存,调用者获取该指针操作硬件加速。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### GfxUninitialize() + + +``` +int32_t GfxUninitialize (GfxFuncs * funcs) +``` + +**描述:** + +释放硬件加速相关的操作接口指针。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| funcs | 输出参数,硬件加速操作接口指针。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### GrallocInitialize() + + +``` +int32_t GrallocInitialize (GrallocFuncs **funcs) +``` + +**描述:** + +初始化内存模块,并获取内存提供的操作接口。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| funcs | 输出参数,内存模块操作接口指针,初始化内存模块时分配内存,调用者不需要分配内存,调用者获取该指针操作内存。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### GrallocUninitialize() + + +``` +int32_t GrallocUninitialize (GrallocFuncs * funcs) +``` + +**描述:** + +取消初始化内存模块,并释放内存操作接口指针。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| funcs | 输出参数,内存操作接口指针,用于释放内存初始化函数中分配的操作指针内存。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### LayerInitialize() + + +``` +int32_t LayerInitialize (LayerFuncs **funcs) +``` + +**描述:** + +实现图层初始化功能,申请图层使用的资源,并获取图层提供的操作接口。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| funcs | 输出参数,图层操作接口指针,初始化图层时分配内存,调用者不需要分配内存,调用者获取该指针操作图层。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + +**参见:** + +[LayerUninitialize](#layeruninitialize) + + +### LayerUninitialize() + + +``` +int32_t LayerUninitialize (LayerFuncs * funcs) +``` + +**描述:** + +取消图层初始化功能,释放图层使用到的资源,并释放图层操作接口指针。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| funcs | 输出参数,图层操作接口指针,用于释放图层初始化函数中分配的操作指针内存。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + +**参见:** + +[LayerInitialize](#layerinitialize) + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **变量说明** + + +### alpha0 [1/2] + + +``` +uint8_t LayerAlpha::alpha0 +``` + +**描述:** + +alpha0值,取值范围:[0, 255] + + +### alpha0 [2/2] + + +``` +uint8_t ISurface::alpha0 +``` + +**描述:** + +Alpha0值,取值范围:[0,255] + + +### alpha1 [1/2] + + +``` +uint8_t LayerAlpha::alpha1 +``` + +**描述:** + +alpha1值,取值范围:[0, 255] + + +### alpha1 [2/2] + + +``` +uint8_t ISurface::alpha1 +``` + +**描述:** + +Alpha1值,取值范围:[0,255] + + +### alphaRopType + + +``` +RopType GfxOpt::alphaRopType +``` + +**描述:** + +Alpha的Rop类型 + + +### bAlphaExt1555 + + +``` +bool ISurface::bAlphaExt1555 +``` + +**描述:** + +是否使能1555的Alpha扩展 + + +### bAlphaMax255 + + +``` +bool ISurface::bAlphaMax255 +``` + +**描述:** + +图像alpha最大值为255还是128 + + +### baseAddr + + +``` +void* __attribute__::baseAddr +``` + +**描述:** + +内存的初始地址 + + +### blendType + + +``` +BlendType GfxOpt::blendType +``` + +**描述:** + +混合方式 + + +### bpp + + +``` +int32_t LayerInfo::bpp +``` + +**描述:** + +每像素所占bit数 + + +### bYCbCrClut + + +``` +bool ISurface::bYCbCrClut +``` + +**描述:** + +CLUT表是否位于 YCbCr 空间 + + +### cbcrPhyAddr + + +``` +uint64_t ISurface::cbcrPhyAddr +``` + +**描述:** + +CbCr分量地址 + + +### cbcrStride + + +``` +int32_t ISurface::cbcrStride +``` + +**描述:** + +CbCr分量跨度 + + +### clutPhyAddr + + +``` +uint64_t ISurface::clutPhyAddr +``` + +**描述:** + +Clut表首地址,用作颜色扩展或颜色校正 + + +### color [1/3] + + +``` +uint32_t ILine::color +``` + +**描述:** + +线条颜色 + + +### color [2/3] + + +``` +uint32_t ICircle::color +``` + +**描述:** + +圆的颜色 + + +### color [3/3] + + +``` +uint32_t Rectangle::color +``` + +**描述:** + +矩形颜色 + + +### colorKeyFrom + + +``` +ColorKey GfxOpt::colorKeyFrom +``` + +**描述:** + +色键模式 + + +### colorRopType + + +``` +RopType GfxOpt::colorRopType +``` + +**描述:** + +颜色的Rop类型 + + +### Commit + + +``` +int32_t(* DeviceFuncs::Commit) (uint32_t devId, int32_t *fence) +``` + +**描述:** + +提交合成送显请求。 + +图形服务通过该接口向接口实现层提交合成送显请求,如果有硬件合成层,接口实现层需要在这时进行合成,并且把最终合成的数据送到硬件进行显示。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| fences | 输出参数,fence首地址,指向fence数组的首地址。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### CreateVirtualDisplay + + +``` +int32_t(* DeviceFuncs::CreateVirtualDisplay) (uint32_t width, uint32_t height, int32_t *format, uint32_t *devId) +``` + +**描述:** + +创建虚拟显示设备。 + +该接口用于创建一个虚拟显示设备。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| width | 输入参数,指定显示设备的像素宽度。 | +| height | 输入参数,指定显示设备的像素高度。 | +| format | 输出参数,指定显示设备的像素格式。 详情参考[ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref738382043153217,link:zh-cn_topic_0000001347985105.xml#ga60883d4958a60b91661e97027a85072a](zh-cn_topic_0000001347985105.xml#ga60883d4958a60b91661e97027a85072a),接口实现层可以根据硬件需求,修改format并返回给图形服务。 | +| devId | 输出参数,用于接口层返回创建的设备ID。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### CreateWriteBack + + +``` +int32_t(* DeviceFuncs::CreateWriteBack) (uint32_t *devId, uint32_t width, uint32_t height, int32_t *format) +``` + +**描述:** + +对指定显示设备创建回写点。 + +该接口用来对指定的设备创建一个回写点,如果回写点数量超过了限制,接口实现层将会返回失败。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID,接口实现层在创建完回写点后将回写点设备ID存放在该参数中返回给图形服务。 | +| width | 输入参数,回写像素宽度。 | +| height | 输入参数,回写像素高度。 | +| format | 输入参数,回写点数据格式,详情参考[PixelFormat](#pixelformat),接口实现层可以根据硬件需求,修改format并返回给图形服务。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### data + + +``` +BufferData LayerBuffer::data +``` + +**描述:** + +图层buffer数据 + + +### DestroyVirtualDisplay + + +``` +int32_t(* DeviceFuncs::DestroyVirtualDisplay) (uint32_t devId) +``` + +**描述:** + +销毁虚拟显示设备。 + +该接口用于销毁指定的虚拟显示设备。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### DestroyWriteBack + + +``` +int32_t(* DeviceFuncs::DestroyWriteBack) (uint32_t devId) +``` + +**描述:** + +销毁指定显示设备的回写点。 + +该接口用來销毁指定的回写点。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### enableRop + + +``` +bool GfxOpt::enableRop +``` + +**描述:** + +Rop功能使能位 + + +### enableScale + + +``` +bool GfxOpt::enableScale +``` + +**描述:** + +缩放功能使能位 + + +### enColorFmt + + +``` +PixelFormat ISurface::enColorFmt +``` + +**描述:** + +图像格式 + + +### enGlobalAlpha [1/2] + + +``` +bool LayerAlpha::enGlobalAlpha +``` + +**描述:** + +全局alpha使能标志 + + +### enGlobalAlpha [2/2] + + +``` +bool GfxOpt::enGlobalAlpha +``` + +**描述:** + +全局alpha使能位 + + +### enPixelAlpha [1/2] + + +``` +bool LayerAlpha::enPixelAlpha +``` + +**描述:** + +像素alpha使能标志 + + +### enPixelAlpha [2/2] + + +``` +bool GfxOpt::enPixelAlpha +``` + +**描述:** + +像素alpha使能位 + + +### expectedSize + + +``` +uint32_t AllocInfo::expectedSize +``` + +**描述:** + +申请内存大小 + + +### fd + + +``` +int32_t __attribute__::fd +``` + +**描述:** + +句柄 fd,-1代表不支持。 + + +### fenceId + + +``` +int32_t LayerBuffer::fenceId +``` + +**描述:** + +buffer 的fence号 + + +### format [1/2] + + +``` +PixelFormat AllocInfo::format +``` + +**描述:** + +申请内存格式 + + +### format [2/2] + + +``` +PixelFormat VerifyAllocInfo::format +``` + +**描述:** + +分配内存的像素格式 + + +### formatCount + + +``` +uint32_t HDRCapability::formatCount +``` + +**描述:** + +支持的HDR格式的数量 + + +### formats + + +``` +HDRFormat* HDRCapability::formats +``` + +**描述:** + +支持的HDR格式的数组首地址 + + +### freshRate + + +``` +uint32_t DisplayModeInfo::freshRate +``` + +**描述:** + +刷新速率 + + +### gAlpha + + +``` +uint8_t LayerAlpha::gAlpha +``` + +**描述:** + +全局alpha值,取值范围:[0, 255] + + +### GetDisplayBacklight + + +``` +int32_t(* DeviceFuncs::GetDisplayBacklight) (uint32_t devId, uint32_t *level) +``` + +**描述:** + +获取显示设备当前的背光值。 + +图形服务可以通过该接口获取设置显示设备的背光值。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| level | 输出参数,保存对应设备的背光值,由接口实现层进行写入。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### GetDisplayCapability + + +``` +int32_t(* DeviceFuncs::GetDisplayCapability) (uint32_t devId, DisplayCapability *info) +``` + +**描述:** + +获取显示设备能力集。 + +图形服务可以通过该接口获取显示设备具备哪些显示能力。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| info | 输出参数,设备支持的能力级信息,详情参考 {\@DisplayCapability}。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### GetDisplayColorGamut + + +``` +int32_t(* DeviceFuncs::GetDisplayColorGamut) (uint32_t devId, ColorGamut *gamut) +``` + +**描述:** + +获取显示设备当前的色域模式。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| gamut | 输出参数,保存对应设备的色域模式,由接口实现层进行写入。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### GetDisplayCompChange + + +``` +int32_t(* DeviceFuncs::GetDisplayCompChange) (uint32_t devId, uint32_t *num, uint32_t *Layers, int32_t *type) +``` + +**描述:** + +获取显示设备合成类型有变化的layer。 + +在合成准备阶段,显示设备会根据设备的合成能力修改图层的合成类型,该接口会返回哪些图层合成类型发生了变化。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| num | 输出参数,表示合成类型发生了变化的图层数量。 | +| Layers | 输出参数,指向图层数组首地址。 | +| type | 输出参数,指向合成类型数组首地址。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### GetDisplayGamutMap + + +``` +int32_t(* DeviceFuncs::GetDisplayGamutMap) (uint32_t devId, GamutMap *gamutMap) +``` + +**描述:** + +获取显示设备当前的色域映射模式。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| gamutMap | 输出参数,保存对应设备的色域映射模式,由接口实现层进行写入。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### GetDisplayMode + + +``` +int32_t(* DeviceFuncs::GetDisplayMode) (uint32_t devId, uint32_t *modeId) +``` + +**描述:** + +获取显示设备当前的显示模式。 + +图形服务可以通过该接口获取显示设备当前的显示模式。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| modeId | 输出参数,存放当前设备的显示模式ID, 由接口实现层进行数据的写入。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### GetDisplayPowerStatus + + +``` +int32_t(* DeviceFuncs::GetDisplayPowerStatus) (uint32_t devId, DispPowerStatus *status) +``` + +**描述:** + +获取显示设备当前的电源状态。 + +图形服务可以通过该接口获设置显示设备的电源状态。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| status | 输出参数,保存对应设备的电源状态,由接口实现层进行状态的写入。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### GetDisplayProperty + + +``` +int32_t(* DeviceFuncs::GetDisplayProperty) (uint32_t devId, uint32_t id, uint64_t *value) +``` + +**描述:** + +获得显示设备属性值。 + +图形服务可以通过该接口获取显示设备具体的属性值。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| id | 输入参数,由接口GetDisplayCapability返回属性ID。 | +| level | 输出参数,属性ID对应的属性值,由接口实现层写入。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### GetDisplayReleaseFence + + +``` +int32_t(* DeviceFuncs::GetDisplayReleaseFence) (uint32_t devId, uint32_t *num, uint32_t *layers, int32_t *fences) +``` + +**描述:** + +获取显示图层fence。 + +图形服务在调用接口Commit后,需要通过该接口获取图层的fence信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| num | 输出参数,图层个数。 | +| layers | 输出参数,图层首地址,指向图层数组的首地址。 | +| fences | 输出参数,fence首地址,指向fence数组的首地址。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### GetDisplaySupportedColorGamuts + + +``` +int32_t(* DeviceFuncs::GetDisplaySupportedColorGamuts) (uint32_t devId, uint32_t *num, ColorGamut *gamuts) +``` + +**描述:** + +获取显示设备支持的色域信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| num | 输出参数,设备支持的色域数组个数。 | +| gamuts | 输出参数,色域首地址,指向色域数组首地址。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### GetDisplaySupportedModes + + +``` +int32_t(* DeviceFuncs::GetDisplaySupportedModes) (uint32_t devId, uint32_t *num, DisplayModeInfo *modes) +``` + +**描述:** + +获取显示设备支持的显示模式信息。 + +图形服务可以通过该接口获取到显示设备支持哪些显示模式。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| num | 输出参数,设备支持的模式数量。 | +| modes | 输出参数,设备支持的所有模式信息,包括所有能支持的分辨率和刷新率,每一个模式实现层都有一个Id与之对应,在获取当前模式 和设置当前模式时都会使用到,详情参考 {\@DisplayModeInfo}。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### GetHDRCapabilityInfos + + +``` +int32_t(* DeviceFuncs::GetHDRCapabilityInfos) (uint32_t devId, HDRCapability *info) +``` + +**描述:** + +获取显示设备支持的HDR属性信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| info | 输出参数,保存对应设备的HDR属性信息,由接口实现层进行写入。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### GetSupportedMetadataKey + + +``` +int32_t(* DeviceFuncs::GetSupportedMetadataKey) (uint32_t devId, uint32_t *num, HDRMetadataKey *keys) +``` + +**描述:** + +获取显示设备支持的 HDRMetadataKey。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| num | 输出参数,设备支持的HDRMetadataKey数组个数。 | +| keys | 输出参数,HDRMetadataKey首地址,指向HDRMetadataKey数组首地址。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### GetWriteBackFrame + + +``` +int32_t(* DeviceFuncs::GetWriteBackFrame) (uint32_t devId, BufferHandle *buffer, int32_t *fence) +``` + +**描述:** + +获取显示设备的回写帧。 + +该接口用来获取devId指定的回写点数据,接口实现层将显示设备回写点的数据写入到设置的缓存中。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| buffer | 输出参数,回写点数据缓存。 | +| fence | 输出参数,同步栅栏,图形服务在调用该接口时,需要将Buffer的release fence 传入,标记该缓存是否可以被写入,接口实现层在接口返回前需要将buffer的acquirce fence 写入回传给图形服务,用来标记回写数据是否已经写入缓存。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### globalAlpha + + +``` +uint32_t GfxOpt::globalAlpha +``` + +**描述:** + +全局alpha的值 + + +### h + + +``` +int32_t IRect::h +``` + +**描述:** + +矩形框高度 + + +### hdl + + +``` +BufferHandle* LayerBuffer::hdl +``` + +**描述:** + +图层buffer句柄 + + +### height [1/7] + + +``` +uint32_t DisplayInfo::height +``` + +**描述:** + +显示屏高度 + + +### height [2/7] + + +``` +int32_t LayerInfo::height +``` + +**描述:** + +图层高度 + + +### height [3/7] + + +``` +int32_t LayerBuffer::height +``` + +**描述:** + +buffer高度 + + +### height [4/7] + + +``` +int32_t ISurface::height +``` + +**描述:** + +图像高度 + + +### height [5/7] + + +``` +int32_t DisplayModeInfo::height +``` + +**描述:** + +像素高度 + + +### height [6/7] + + +``` +uint32_t AllocInfo::height +``` + +**描述:** + +申请内存高度 + + +### height [7/7] + + +``` +uint32_t VerifyAllocInfo::height +``` + +**描述:** + +分配内存的高度 + + +### id + + +``` +int32_t DisplayModeInfo::id +``` + +**描述:** + +模式ID + + +### InvokeDisplayCmd + + +``` +int32_t(* DeviceFuncs::InvokeDisplayCmd) (uint32_t devId,...) +``` + +**描述:** + +调用显示设备命令。 + +该接口用于图形服务和接口实现层之间的接口扩展,如果由临时接口新增可以通过该接口进行扩展,不用增加新的接口定义。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### key + + +``` +HDRMetadataKey HDRMetaData::key +``` + +**描述:** + +HDR元数据关键字 + + +### maxAverageLum + + +``` +float HDRCapability::maxAverageLum +``` + +**描述:** + +最大的平均光亮度luminance值 + + +### maxLum + + +``` +float HDRCapability::maxLum +``` + +**描述:** + +最大的光亮度luminance值 + + +### minLum + + +``` +float HDRCapability::minLum +``` + +**描述:** + +最小的光亮度luminance值 + + +### mirrorType + + +``` +MirrorType GfxOpt::mirrorType +``` + +**描述:** + +镜像类型 + + +### name [1/2] + + +``` +char PropertyObject::名称[PROPERTY_NAME_LEN] +``` + +**描述:** + +属性名称 + + +### name [2/2] + + +``` +char DisplayCapability::名称[PROPERTY_NAME_LEN] +``` + +**描述:** + +显示设备名称 + + +### phyAddr [1/2] + + +``` +uint64_t BufferData::phyAddr +``` + +**描述:** + +物理内存地址 + + +### phyAddr [2/2] + + +``` +uint64_t ISurface::phyAddr +``` + +**描述:** + +图像首地址 + + +### phyHeight + + +``` +uint32_t DisplayCapability::phyHeight +``` + +**描述:** + +物理高度 + + +### phyWidth + + +``` +uint32_t DisplayCapability::phyWidth +``` + +**描述:** + +物理宽度 + + +### pitch + + +``` +int32_t LayerBuffer::pitch +``` + +**描述:** + +一行数据所占字节数 + + +### pixFormat [1/2] + + +``` +PixelFormat LayerInfo::pixFormat +``` + +**描述:** + +图层像素格式 + + +### pixFormat [2/2] + + +``` +PixelFormat LayerBuffer::pixFormat +``` + +**描述:** + +buffer像素格式 + + +### PrepareDisplayLayers + + +``` +int32_t(* DeviceFuncs::PrepareDisplayLayers) (uint32_t devId, bool *needFlushFb) +``` + +**描述:** + +显示设备合成前准备。 + +图形服务在合成前需要通过该接口通知显示设备进行合成前的准备工作。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| needFlushFb | 输出参数,接口实现层通过该参数指示图形服务在commit前是否需要通过SetDisplayClientBuffer重新设置显示帧存。 true表示需要设置显示帧存,false表示不需要。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### propertyCount + + +``` +uint32_t DisplayCapability::propertyCount +``` + +**描述:** + +属性数组大小 + + +### propId + + +``` +uint32_t PropertyObject::propId +``` + +**描述:** + +属性ID + + +### props + + +``` +PropertyObject* DisplayCapability::props +``` + +**描述:** + +属性数组 + + +### r + + +``` +int32_t ICircle::r +``` + +**描述:** + +圆的半径 + + +### rect + + +``` +IRect Rectangle::rect +``` + +**描述:** + +矩形区域 + + +### RegDisplayRefreshCallback + + +``` +int32_t(* DeviceFuncs::RegDisplayRefreshCallback) (uint32_t devId, RefreshCallback callback, void *data) +``` + +**描述:** + +刷新请求回调。 + +注册刷新请求事件回调,当实现层有刷新需求时,实现层通过回调注册的接口通知图形服务。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| callback | 输入参数,刷新请求事件回调实例,当有接口实现层有刷新请求时,需要通过该实例通知图形服务。 | +| data | 输出参数,图形服务携带的私有数据,在事件回调接口中需要返回给图形服务。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### RegDisplayVBlankCallback + + +``` +int32_t(* DeviceFuncs::RegDisplayVBlankCallback) (uint32_t devId, VBlankCallback callback, void *data) +``` + +**描述:** + +注册VBlank事件回调。 + +注册VBlank事件回调,当有VBlank事件发生时接口实现层需要回调注册的接口。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| callback | 输入参数,VBlank事件回调实例,当有VBlank事件发生时并且DisplayVsync处于Enable状态,接口实现层需要通过该实例通知图形服务。 | +| data | 输出参数,图形服务携带的私有数据,在事件回调接口中需要返回给图形服务。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### RegHotPlugCallback + + +``` +int32_t(* DeviceFuncs::RegHotPlugCallback) ((HotPlugCallback callback, void *data) +``` + +**描述:** + +注册热插拔事件回调。 + +注册热插拔事件回调,当有热插拔事件发生时接口实现层需要回调注册的接口。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| callback | 输入参数,热插拔事件回调实例,当有热插拔事件发生时,接口实现层需要通过该实例通知图形服务。 | +| data | 输出参数,图形服务携带的私有数据,在事件回调接口中需要返回给图形服务。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### reserve + + +``` +int32_t __attribute__::reserve[0] +``` + +**描述:** + +reserve数组 + + +### reserveInts + + +``` +uint32_t __attribute__::reserveInts +``` + +**描述:** + +reserve数组的个数 + + +### rotAngle + + +``` +int32_t DisplayInfo::rotAngle +``` + +**描述:** + +显示屏旋转角度 + + +### rotateType + + +``` +TransformType GfxOpt::rotateType +``` + +**描述:** + +旋转类型 + + +### SetDisplayBacklight + + +``` +int32_t(* DeviceFuncs::SetDisplayBacklight) (uint32_t devId, uint32_t level) +``` + +**描述:** + +设置显示设备当前的背光值。 + +图形服务可以通过该接口获设置显示设备的背光值。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| level | 输入参数,表示需要设置的背光值。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### SetDisplayClientBuffer + + +``` +int32_t(* DeviceFuncs::SetDisplayClientBuffer) (uint32_t devId, const BufferHandle *buffer, int32_t fence) +``` + +**描述:** + +设置显示设备的显示缓存。 + +图形服务可以通过该接口将显示缓存设置给显示设备,显示设备硬件合成结果将会存放在该显示缓存中。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| buffer | 输入参数,显示缓存。 | +| fence | 输入参数,同步栅栏,标识显示缓存是否可以访问,有图形服务创建和释放,接口实现层需要等待同步栅栏发送信号后才能使用显示缓存。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### SetDisplayClientCrop + + +``` +int32_t(* DeviceFuncs::SetDisplayClientCrop) (uint32_t devId, IRect *rect) +``` + +**描述:** + +设置显示设备的裁剪区域。 + +图形服务可以通过该接口设置显示设备的ClientBuffer的裁剪区域,裁剪区域不能超过ClientBuffer的大小。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| rect | 输入参数,ClientBuffer的裁剪区域。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### SetDisplayClientDamage + + +``` +int32_t(* DeviceFuncs::SetDisplayClientDamage) (uint32_t devId, uint32_t num, IRect *rect) +``` + +**描述:** + +设置显示设备的显示脏区。 + +图形服务可以通过该接口设置显示设备脏区,接口实现层可以根据该区域进行区域刷新,脏区是由多个矩形区域组合起来的。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| num | 输入参数,矩形个数。 | +| rect | 输入参数,区域矩形指针,指向矩形数组的首地址。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### SetDisplayClientDestRect + + +``` +int32_t(* DeviceFuncs::SetDisplayClientDestRect) (uint32_t devId, IRect *rect) +``` + +**描述:** + +设置显示设备的显示区域。 + +图形服务可以通过该接口设置显示设备的显示区域。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| rect | 输入参数,显示区域。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### SetDisplayColorGamut + + +``` +int32_t(* DeviceFuncs::SetDisplayColorGamut) (uint32_t devId, ColorGamut gamut) +``` + +**描述:** + +设置显示设备当前的色域模式。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| gamut | 输入参数,表示需要设置的色域模式。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### SetDisplayColorTransform + + +``` +int32_t(* DeviceFuncs::SetDisplayColorTransform) (uint32_t devId, const float *matrix) +``` + +**描述:** + +设置显示设备当前的4x4的颜色转换矩阵。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| matrix | 输入参数,表示需要设置的颜色转换模式。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### SetDisplayGamutMap + + +``` +int32_t(* DeviceFuncs::SetDisplayGamutMap) (uint32_t devId, GamutMap gamutMap) +``` + +**描述:** + +设置显示设备当前的色域映射模式。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| gamutMap | 输入参数,表示需要设置的色域映射模式。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### SetDisplayMode + + +``` +int32_t(* DeviceFuncs::SetDisplayMode) (uint32_t devId, uint32_t modeId) +``` + +**描述:** + +设置显示设备的显示模式。 + +图形服务可以通过该接口获设置显示设备的显示模式。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| modeId | 输入参数,指明需要设置的模式ID,接口实现层将设备切换到该参数对应的显示模式。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### SetDisplayPowerStatus + + +``` +int32_t(* DeviceFuncs::SetDisplayPowerStatus) (uint32_t devId, DispPowerStatus status) +``` + +**描述:** + +设置显示设备当前的电源状态。 + +图形服务可以通过该接口获设置显示设备的电源状态。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| status | 输入参数,表示需要设置的电源状态。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### SetDisplayProperty + + +``` +int32_t(* DeviceFuncs::SetDisplayProperty) (uint32_t devId, uint32_t id, uint64_t value) +``` + +**描述:** + +设置显示设备属性值。 + +图形服务可以通过该接口设置显示设备具体的属性值。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| id | 输入参数,由接口GetDisplayCapability返回属性ID。 | +| value | 输入参数,需要设置的属性值。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### SetDisplayVsyncEnabled + + +``` +int32_t(* DeviceFuncs::SetDisplayVsyncEnabled) (uint32_t devId, bool enabled) +``` + +**描述:** + +使能垂直同步信号。 + +图形服务可以通过该接口使能或取消垂直同步信号,当有垂直同步信号产生时,接口实现层需要回调图形服务通过RegDisplayVBlankCallback注册的 VBlankCallback 回调。 图形服务在需要刷新显示时需要使能垂直同步信号,在收到VBlankCallback事件回调时再进行合成送显,不需要刷新显示时需要取消垂直同步信号。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| enabled | 输入参数,使能状态,true表示能,false表示不能。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### SetVirtualDisplayBuffer + + +``` +int32_t(* DeviceFuncs::SetVirtualDisplayBuffer) (uint32_t devId, BufferHandle *buffer, int32_t fence) +``` + +**描述:** + +设置虚拟屏的输出缓存。 + +该接口用于设置虚拟屏输出缓存,接口实现层需要将虚拟屏的输出放入到该缓存中,接口实现层需要等待同步栅栏发送信号后才能使用缓存。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| buffer | 输出参数,输出缓存。 | +| fence | 输出参数,同步栅栏。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](#disperrcode)。 + + +### stride + + +``` +int32_t ISurface::stride +``` + +**描述:** + +图像跨度 + + +### supportLayers + + +``` +uint32_t DisplayCapability::supportLayers +``` + +**描述:** + +支持的图层数 + + +### supportWriteBack + + +``` +bool DisplayCapability::supportWriteBack +``` + +**描述:** + +是否支持回写 + + +### time + + +``` +int64_t PresentTimestamp::time +``` + +**描述:** + +类型对应的值 + + +### type [1/3] + + +``` +LayerType LayerInfo::type +``` + +**描述:** + +图层类型,包括图形层、视频层和媒体播放模式 + + +### type [2/3] + + +``` +InterfaceType DisplayCapability::type +``` + +**描述:** + +显示屏接口类型 + + +### type [3/3] + + +``` +PresentTimestampType PresentTimestamp::type +``` + +**描述:** + +上屏时间戳类型 + + +### uOffset + + +``` +size_t __attribute__::uOffset +``` + +**描述:** + +U的偏移量 + + +### usage [1/2] + + +``` +uint64_t AllocInfo::usage +``` + +**描述:** + +申请内存的使用场景 + + +### usage [2/2] + + +``` +uint64_t VerifyAllocInfo::usage +``` + +**描述:** + +内存的用处 + + +### uvStep + + +``` +size_t __attribute__::uvStep +``` + +**描述:** + +UV的step信息 + + +### uvStride + + +``` +size_t __attribute__::uvStride +``` + +**描述:** + +UV的stride信息 + + +### value [1/2] + + +``` +uint64_t PropertyObject::value +``` + +**描述:** + +属性值 + + +### value [2/2] + + +``` +float HDRMetaData::value +``` + +**描述:** + +关键字对应的值 + + +### virAddr + + +``` +void* BufferData::virAddr +``` + +**描述:** + +虚拟内存地址 + + +### virtualDispCount + + +``` +uint32_t DisplayCapability::virtualDispCount +``` + +**描述:** + +支持的虚拟屏数 + + +### vOffset + + +``` +size_t __attribute__::vOffset +``` + +**描述:** + +V的偏移量 + + +### w + + +``` +int32_t IRect::w +``` + +**描述:** + +矩形框宽度 + + +### width [1/7] + + +``` +uint32_t DisplayInfo::width +``` + +**描述:** + +显示屏宽度 + + +### width [2/7] + + +``` +int32_t LayerInfo::width +``` + +**描述:** + +图层宽度 + + +### width [3/7] + + +``` +int32_t LayerBuffer::width +``` + +**描述:** + +buffer宽度 + + +### width [4/7] + + +``` +int32_t ISurface::width +``` + +**描述:** + +图像宽度 + + +### width [5/7] + + +``` +int32_t DisplayModeInfo::width +``` + +**描述:** + +像素宽度 + + +### width [6/7] + + +``` +uint32_t AllocInfo::width +``` + +**描述:** + +申请内存宽度 + + +### width [7/7] + + +``` +uint32_t VerifyAllocInfo::width +``` + +**描述:** + +分配内存的宽度 + + +### x [1/2] + + +``` +int32_t IRect::x +``` + +**描述:** + +矩形框起始x坐标 + + +### x [2/2] + + +``` +int32_t ICircle::x +``` + +**描述:** + +圆心x坐标 + + +### x0 + + +``` +int32_t ILine::x0 +``` + +**描述:** + +线条起点的x坐标 + + +### x1 + + +``` +int32_t ILine::x1 +``` + +**描述:** + +线条终点的x坐标 + + +### y [1/2] + + +``` +int32_t IRect::y +``` + +**描述:** + +矩形框起始y坐标 + + +### y [2/2] + + +``` +int32_t ICircle::y +``` + +**描述:** + +圆心y坐标r + + +### y0 + + +``` +int32_t ILine::y0 +``` + +**描述:** + +线条起点的y坐标 + + +### y1 + + +``` +int32_t ILine::y1 +``` + +**描述:** + +线条终点的y坐标 + + +### yOffset + + +``` +size_t __attribute__::yOffset +``` + +**描述:** + +Y的偏移量 + + +### yStride + + +``` +size_t __attribute__::yStride +``` + +**描述:** + +Y的stride信息 diff --git a/zh-cn/device-dev/api/_display_capability.md b/zh-cn/device-dev/api/_display_capability.md new file mode 100644 index 0000000000..a4a43e5cb5 --- /dev/null +++ b/zh-cn/device-dev/api/_display_capability.md @@ -0,0 +1,31 @@ +# DisplayCapability + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [name](_display.md#name-22) [PROPERTY_NAME_LEN] | 显示设备名称 | +| [type](_display.md#type-23) | 显示屏接口类型 | +| [phyWidth](_display.md#phywidth) | 物理宽度 | +| [phyHeight](_display.md#phyheight) | 物理高度 | +| [supportLayers](_display.md#supportlayers) | 支持的图层数 | +| [virtualDispCount](_display.md#virtualdispcount) | 支持的虚拟屏数 | +| [supportWriteBack](_display.md#supportwriteback) | 是否支持回写 | +| [propertyCount](_display.md#propertycount) | 属性数组大小 | +| [props](_display.md#props) | 属性数组 | + + +## **详细描述** + +定义输出性能。 diff --git a/zh-cn/device-dev/api/_display_info.md b/zh-cn/device-dev/api/_display_info.md new file mode 100644 index 0000000000..b67997b6de --- /dev/null +++ b/zh-cn/device-dev/api/_display_info.md @@ -0,0 +1,25 @@ +# DisplayInfo + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [width](_display.md#width-17) | 显示屏宽度 | +| [height](_display.md#height-17) | 显示屏高度 | +| [rotAngle](_display.md#rotangle) | 显示屏旋转角度 | + + +## **详细描述** + +定义显示信息结构体。 diff --git a/zh-cn/device-dev/api/_display_mode_info.md b/zh-cn/device-dev/api/_display_mode_info.md new file mode 100644 index 0000000000..eafd58d19e --- /dev/null +++ b/zh-cn/device-dev/api/_display_mode_info.md @@ -0,0 +1,26 @@ +# DisplayModeInfo + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [width](_display.md#width-57) | 像素宽度 | +| [height](_display.md#height-57) | 像素高度 | +| [freshRate](_display.md#freshrate) | 刷新速率 | +| [id](_display.md#id) | 模式ID | + + +## **详细描述** + +定义输出模式信息。 diff --git a/zh-cn/device-dev/api/_enroll_param.md b/zh-cn/device-dev/api/_enroll_param.md new file mode 100644 index 0000000000..62e7e41698 --- /dev/null +++ b/zh-cn/device-dev/api/_enroll_param.md @@ -0,0 +1,72 @@ +# EnrollParam + + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [authType](#authtype) | 用户认证凭据类型。 | +| [executorType](#executortype) | 执行器类型。 | +| [executorId](#executorid) | 既定用户认证凭据类型的执行器ID。 | + + +## **详细描述** + +注册认证凭据参数。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### authType + + +``` +enum AuthType EnrollParam::authType +``` + +**描述:** + +用户认证凭据类型。 + + +### executorId + + +``` +unsigned int EnrollParam::executorId +``` + +**描述:** + +既定用户认证凭据类型的执行器ID。 + + +### executorType + + +``` +unsigned int EnrollParam::executorType +``` + +**描述:** + +执行器类型。 diff --git a/zh-cn/device-dev/api/_enrolled_info.md b/zh-cn/device-dev/api/_enrolled_info.md new file mode 100644 index 0000000000..36c6ffd6e1 --- /dev/null +++ b/zh-cn/device-dev/api/_enrolled_info.md @@ -0,0 +1,59 @@ +# EnrolledInfo + + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [enrolledId](#enrolledid) | 注册ID,用户注册新的认证凭据时会更新注册ID。 | +| [authType](#authtype) | 用户认证凭据类型。 | + + +## **详细描述** + +注册信息。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### authType + + +``` +enum AuthType EnrolledInfo::authType +``` + +**描述:** + +用户认证凭据类型AuthType}。 + + +### enrolledId + + +``` +unsigned long EnrolledInfo::enrolledId +``` + +**描述:** + +注册ID,用户注册新的认证凭据时会更新注册ID。 diff --git a/zh-cn/device-dev/api/_event_info.md b/zh-cn/device-dev/api/_event_info.md new file mode 100644 index 0000000000..02b70dc552 --- /dev/null +++ b/zh-cn/device-dev/api/_event_info.md @@ -0,0 +1,103 @@ +# EventInfo + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [appData](#appdata) | 设置回调时给入的上层实例。 | +| [appDataLen](#appdatalen) | appData字节数。 | +| [data1](#data1) | 事件上报携带的数据1。 | +| [data2](#data2) | 事件上报携带的数据2。 | +| [eventData](#eventdata) | 事件上报携带的数据信息。 | +| [eventDataLen](#eventdatalen) | eventData字节数。 | + + +## **详细描述** + +定义事件上报信息。 + + +## **类成员变量说明** + + +### appData + + +``` +int8_t* EventInfo::appData +``` + +**描述:** + +设置回调时给入的上层实例 + + +### appDataLen + + +``` +uint32_t EventInfo::appDataLen +``` + +**描述:** + +appData字节数 + + +### data1 + + +``` +uint32_t EventInfo::data1 +``` + +**描述:** + +事件上报携带的数据1 + + +### data2 + + +``` +uint32_t EventInfo::data2 +``` + +**描述:** + +事件上报携带的数据2 + + +### eventData + + +``` +int8_t* EventInfo::eventData +``` + +**描述:** + +事件上报携带的数据信息 + + +### eventDataLen + + +``` +uint32_t EventInfo::eventDataLen +``` + +**描述:** + +eventData字节数 diff --git a/zh-cn/device-dev/api/_event_package.md b/zh-cn/device-dev/api/_event_package.md new file mode 100644 index 0000000000..6ea01ee6fa --- /dev/null +++ b/zh-cn/device-dev/api/_event_package.md @@ -0,0 +1,77 @@ +# EventPackage + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [type](#type) | 输入事件的属性 | +| [code](#code) | 输入事件的特定编码项 | +| [value](#value) | 输入事件编码项对应的值 | +| [timestamp](#timestamp) | 输入事件对应的时间戳 | + + +## **详细描述** + +input事件数据包结构。 + + +## **类成员变量说明** + + +### code + + +``` +uint32_t EventPackage::code +``` + +**描述:** + +输入事件的特定编码项 + + +### timestamp + + +``` +uint64_t EventPackage::timestamp +``` + +**描述:** + +输入事件对应的时间戳 + + +### type + + +``` +uint32_t EventPackage::type +``` + +**描述:** + +输入事件的属性 + + +### value + + +``` +int32_t EventPackage::value +``` + +**描述:** + +输入事件编码项对应的值 diff --git a/zh-cn/device-dev/api/_executor_info.md b/zh-cn/device-dev/api/_executor_info.md new file mode 100644 index 0000000000..ebf70e726e --- /dev/null +++ b/zh-cn/device-dev/api/_executor_info.md @@ -0,0 +1,152 @@ +# ExecutorInfo + + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) | [HdfPinAuth](_hdf_pin_auth.md) | [HdfUserAuth](_hdf_user_auth.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [sensorId](#sensorid) | 传感器ID,不同传感器在人脸/口令认证驱动内的唯一标识。 | +| [executorType](#executortype) | 执行器类型,根据执行器支持的能力/算法类型进行分类。 | +| [index](#index) | 用户认证框架的执行器索引。 | +| [executorRole](#executorrole) | 执行器角色ExecutorRole。 | +| [authType](#authtype) | 用户认证凭据类型。 | +| [esl](#esl) | 执行器安全等级。 | +| [publicKey](#publickey) | 执行器公钥,用于校验该执行器私钥签名的信息。 | +| [extraInfo](#extrainfo) | 其他相关信息,用于支持信息扩展。 | +| [info](#info) | 执行器注册信息ExecutorRegisterInfo。 | + + +## **详细描述** + +执行器信息。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### authType + + +``` +enum AuthType ExecutorInfo::authType +``` + +**描述:** + +用户认证凭据类型。 + + +### esl + + +``` +enum ExecutorSecureLevel ExecutorInfo::esl +``` + +**描述:** + +执行器安全等级ExecutorSecureLevel。 + + +### executorRole + + +``` +enum ExecutorRole ExecutorInfo::executorRole +``` + +**描述:** + +执行器角色ExecutorRole。 + + +### executorType + + +``` +unsigned int ExecutorInfo::executorType +``` + +**描述:** + +执行器类型,根据执行器支持的能力/算法类型进行分类。 + + +### extraInfo + + +``` +unsigned char [] ExecutorInfo::extraInfo +``` + +**描述:** + +其他相关信息,用于支持信息扩展。 + + +### index + + +``` +unsigned long ExecutorInfo::index +``` + +**描述:** + +用户认证框架的执行器索引。 + + +### info + + +``` +struct ExecutorRegisterInfo ExecutorInfo::info +``` + +**描述:** + +执行器注册信息ExecutorRegisterInfo。 + + +### publicKey + + +``` +unsigned char [] ExecutorInfo::publicKey +``` + +**描述:** + +执行器公钥,用于校验该执行器私钥签名的信息。 + + +### sensorId + + +``` +unsigned short ExecutorInfo::sensorId +``` + +**描述:** + +传感器ID,不同传感器在人脸认证驱动内的唯一标识。 + +传感器ID,不同传感器在口令认证驱动内的唯一标识。 diff --git a/zh-cn/device-dev/api/_executor_register_info.md b/zh-cn/device-dev/api/_executor_register_info.md new file mode 100644 index 0000000000..c236a726ce --- /dev/null +++ b/zh-cn/device-dev/api/_executor_register_info.md @@ -0,0 +1,111 @@ +# ExecutorRegisterInfo + + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [authType](#authtype) | 用户认证凭据类型。 | +| [executorRole](#executorrole) | 执行器角色ExecutorRole。 | +| [executorId](#executorid) | 既定用户认证凭据类型的执行器ID。 | +| [executorType](#executortype) | 执行器类型,根据执行器支持的认证能力进行分类。 | +| [esl](#esl) | 执行器安全等级ExecutorSecureLevel。 | +| [publicKey](#publickey) | 执行器公钥,用于校验该执行器私钥签名的信息。 | + + +## **详细描述** + +执行器注册信息。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### authType + + +``` +enum AuthType ExecutorRegisterInfo::authType +``` + +**描述:** + +用户认证凭据类型。 + + +### esl + + +``` +enum ExecutorSecureLevel ExecutorRegisterInfo::esl +``` + +**描述:** + +执行器安全等级ExecutorSecureLevel。 + + +### executorId + + +``` +unsigned int ExecutorRegisterInfo::executorId +``` + +**描述:** + +既定用户认证凭据类型的执行器ID。 + + +### executorRole + + +``` +enum ExecutorRole ExecutorRegisterInfo::executorRole +``` + +**描述:** + +执行器角色ExecutorRole。 + + +### executorType + + +``` +unsigned int ExecutorRegisterInfo::executorType +``` + +**描述:** + +执行器类型,根据执行器支持的认证能力进行分类。 + + +### publicKey + + +``` +unsigned char [] ExecutorRegisterInfo::publicKey +``` + +**描述:** + +执行器公钥,用于校验该执行器私钥签名的信息。 diff --git a/zh-cn/device-dev/api/_executor_send_msg.md b/zh-cn/device-dev/api/_executor_send_msg.md new file mode 100644 index 0000000000..c9ce8546ee --- /dev/null +++ b/zh-cn/device-dev/api/_executor_send_msg.md @@ -0,0 +1,57 @@ +# ExecutorSendMsg + + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [index](#index) | 用户认证框架的执行器索引。 | +| [msg](#msg) | 执行器发送的消息。 | + + +## **详细描述** + +执行器发送的消息。 + +**Since:** + +3.2 + +**Version:** + + +## **类成员变量说明** + + +### index + + +``` +unsigned int ExecutorSendMsg::index +``` + +**描述:** + +用户认证框架的执行器索引。 + + +### msg + + +``` +unsigned char [] ExecutorSendMsg::msg +``` + +**描述:** + +执行器发送的消息。 diff --git a/zh-cn/device-dev/api/_face_auth_types_8idl.md b/zh-cn/device-dev/api/_face_auth_types_8idl.md new file mode 100644 index 0000000000..d9a3ac360a --- /dev/null +++ b/zh-cn/device-dev/api/_face_auth_types_8idl.md @@ -0,0 +1,46 @@ +# FaceAuthTypes.idl + + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [ExecutorInfo](_executor_info.md) | 执行器信息。 [更多...](_executor_info.md) | +| [TemplateInfo](_template_info.md) | 凭据模版信息。 [更多...](_template_info.md) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [AuthType](_hdf_face_auth.md#authtype) : int { [PIN](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a048efb7462d3f8cced82716c66926168) = 1, [FACE](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a5cfae78048cf95359061c2e812e7d691) = 2, [FINGERPRINT](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1ad03eae85b35bf9bc22d787c8913b795a) = 4 } | 枚举用户认证凭据类型。 [更多...](_hdf_face_auth.md#authtype) | +| [ExecutorRole](_hdf_face_auth.md#executorrole) : int { [COLLECTOR](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a539c54e76bcc96cddb85f0cabcff39ec) = 1, [VERIFIER](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a1286a5d974d0c68d7bc43ffc0576a6d4) = 2, [ALL_IN_ONE](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a7eebd77a403f81c5968b4c2898ee6fd4) = 3 } | 枚举执行器角色。 [更多...](_hdf_face_auth.md#executorrole) | +| [ExecutorSecureLevel](_hdf_face_auth.md#executorsecurelevel) : int { [ESL0](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa0cd05a2adda94d3c676fca84f96c0638) = 0, [ESL1](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fae6a34bbf2764541238bf81569faf29d3) = 1, [ESL2](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa8f898bca57625d548a011ba2aaf4285f) = 2, [ESL3](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa9a6fb8a4530b6a09dba2fbfdf2e6c2e9) = 3 } | 枚举执行器安全等级。 [更多...](_hdf_face_auth.md#executorsecurelevel) | +| [CommandId](_hdf_face_auth.md#commandid) : int { [LOCK_TEMPLATE](_hdf_face_auth.md#entry1378875880083931p0) = 1, [UNLOCK_TEMPLATE](_hdf_face_auth.md#entry1786148552083931p0) = 2, [VENDOR_COMMAND_BEGIN](_hdf_face_auth.md#entry1330595345083931p0) = 10000 } | 枚举人脸认证功能相关操作命令。 [更多...](_hdf_face_auth.md#commandid) | +| [FaceTipsCode](_hdf_face_auth.md#facetipscode) : int {   [FACE_AUTH_TIP_TOO_BRIGHT](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007aa973b57b70bddf6e04ea0d1d8ac84bbc) = 1, [FACE_AUTH_TIP_TOO_DARK](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a9e812580c2600ebd4847ac05478805fe) = 2, [FACE_AUTH_TIP_TOO_CLOSE](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007adbd6a2cd4effac8f2d08a406c21cee17) = 3, [FACE_AUTH_TIP_TOO_FAR](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a557c72d5d5dd9cc4ca52406d442a085e) = 4,   [FACE_AUTH_TIP_TOO_HIGH](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007ac573361a2c459a0d0f95f7691819611b) = 5, [FACE_AUTH_TIP_TOO_LOW](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a1fbbe62377b7746848761d4fc1e591d8) = 6, [FACE_AUTH_TIP_TOO_RIGHT](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a8b8f69a132ab5e9e4770fbe25efe6810) = 7, [FACE_AUTH_TIP_TOO_LEFT](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a4f1f1ab1bed69c0968981c6ecc52a572) = 8,   [FACE_AUTH_TIP_TOO_MUCH_MOTION](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a19f794720c79aaeb2b2cb895eca6c4fd) = 9, [FACE_AUTH_TIP_POOR_GAZE](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a93c89c83ede9a3b5a15e90a1975176b7) = 10, [FACE_AUTH_TIP_NOT_DETECTED](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007aa41ae58b84dbfe8b467de7a11ad236f8) = 11, [VENDOR_FACE_AUTH_TIP_BEGIN](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007abef2f1de5f74c324a7dd8958a279caab) = 10000 } | 枚举提示信息编码。 [更多...](_hdf_face_auth.md#facetipscode) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.face_auth.v1_0 | 人脸认证接口的包路径 | + + +## **详细描述** + +定义人脸认证驱动的枚举类和数据结构。 + +**Since:** + +3.2 diff --git a/zh-cn/device-dev/api/_get_buffer_handle_usage_params.md b/zh-cn/device-dev/api/_get_buffer_handle_usage_params.md new file mode 100644 index 0000000000..2f5936c9d1 --- /dev/null +++ b/zh-cn/device-dev/api/_get_buffer_handle_usage_params.md @@ -0,0 +1,77 @@ +# GetBufferHandleUsageParams + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [size](#size) | 结构体大小 | +| [version](#version) | 组件版本信息 | +| [portIndex](#portindex) | 端口索引 | +| [usage](#usage) | 使用率 | + + +## **详细描述** + +BufferHandleUsage类型定义。 + + +## **类成员变量说明** + + +### portIndex + + +``` +uint32_t GetBufferHandleUsageParams::portIndex +``` + +**描述:** + +端口索引 + + +### size + + +``` +uint32_t GetBufferHandleUsageParams::size +``` + +**描述:** + +结构体大小 + + +### usage + + +``` +uint32_t GetBufferHandleUsageParams::usage +``` + +**描述:** + +usage + + +### version + + +``` +union OMX_VERSIONTYPE GetBufferHandleUsageParams::version +``` + +**描述:** + +组件版本信息 diff --git a/zh-cn/device-dev/api/_gfx_funcs.md b/zh-cn/device-dev/api/_gfx_funcs.md new file mode 100644 index 0000000000..76ed3097f7 --- /dev/null +++ b/zh-cn/device-dev/api/_gfx_funcs.md @@ -0,0 +1,239 @@ +# GfxFuncs + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [InitGfx](#initgfx) )(void) | 初始化硬件加速。 [更多...](#initgfx) | +| ( [DeinitGfx](#deinitgfx) )(void) | 去初始化硬件加速。 [更多...](#deinitgfx) | +| ( [FillRect](#fillrect) )([ISurface](_i_surface.md) \*surface, [IRect](_i_rect.md) \*rect, uint32_t color, [GfxOpt](_gfx_opt.md) \*opt) | 填充矩形,用一种颜色填充画布上指定矩形区域的矩形框。 [更多...](#fillrect) | +| ( [DrawRectangle](#drawrectangle) )([ISurface](_i_surface.md) \*surface, [Rectangle](_rectangle.md) \*rect, uint32_t color, [GfxOpt](_gfx_opt.md) \*opt) | 绘制矩形框,用一种颜色在画布上绘制指定区域的矩形框。 [更多...](#drawrectangle) | +| ( [DrawLine](#drawline) )([ISurface](_i_surface.md) \*surface, [ILine](_i_line.md) \*line, [GfxOpt](_gfx_opt.md) \*opt) | 绘制直线,使用一种颜色在画布上绘制一条直线。 [更多...](#drawline) | +| ( [DrawCircle](#drawcircle) )([ISurface](_i_surface.md) \*surface, [ICircle](_i_circle.md) \*circle, [GfxOpt](_gfx_opt.md) \*opt) | 绘制圆形,使用一种颜色在画布上绘制指定圆心和半径的圆。 [更多...](#drawcircle) | +| ( [Blit](#blit) )([ISurface](_i_surface.md) \*srcSurface, [IRect](_i_rect.md) \*srcRect, [ISurface](_i_surface.md) \*dstSurface, [IRect](_i_rect.md) \*dstRect, [GfxOpt](_gfx_opt.md) \*opt) | 位图搬移 [更多...](#blit) | +| ( [Sync](#sync) )(int32_t timeOut) | 硬件加速同步。 [更多...](#sync) | + + +## **详细描述** + +显示硬件加速驱动接口结构体,定义硬件加速驱动接口函数指针。 + + +## **类成员变量说明** + + +### Blit + + +``` +int32_t(* GfxFuncs::Blit) (ISurface *srcSurface, IRect *srcRect, ISurface *dstSurface, IRect *dstRect, GfxOpt *opt) +``` + +**描述:** + +位图搬移 + +在位图搬移过程中,可以实现色彩空间转换、缩放、旋转等功能。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| srcSurface | 输入参数,源位图信息。 | +| srcRect | 输入参数,源位图搬移区域。 | +| dstSurface | 输出参数,目标位图信息。 | +| dstRect | 输出参数,目标位图区域。 | +| opt | 输入参数,硬件加速选项。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### DeinitGfx + + +``` +int32_t(* GfxFuncs::DeinitGfx) (void) +``` + +**描述:** + +去初始化硬件加速。 + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[InitGfx](#initgfx) + + +### DrawCircle + + +``` +int32_t(* GfxFuncs::DrawCircle) (ISurface *surface, ICircle *circle, GfxOpt *opt) +``` + +**描述:** + +绘制圆形,使用一种颜色在画布上绘制指定圆心和半径的圆。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| surface | 输入参数,画布。 | +| circle | 输入参数,圆形结构。 | +| opt | 输入参数,硬件加速选项。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### DrawLine + + +``` +int32_t(* GfxFuncs::DrawLine) (ISurface *surface, ILine *line, GfxOpt *opt) +``` + +**描述:** + +绘制直线,使用一种颜色在画布上绘制一条直线。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| surface | 输入参数,画布。 | +| line | 输入参数,直线结构。 | +| opt | 输入参数,硬件加速选项。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### DrawRectangle + + +``` +int32_t(* GfxFuncs::DrawRectangle) (ISurface *surface, Rectangle *rect, uint32_t color, GfxOpt *opt) +``` + +**描述:** + +绘制矩形框,用一种颜色在画布上绘制指定区域的矩形框。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| surface | 输入参数,画布。 | +| rect | 输入参数,矩形框结构。 | +| color | 输入参数,绘制的颜色。 | +| opt | 输入参数,硬件加速选项。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### FillRect + + +``` +int32_t(* GfxFuncs::FillRect) (ISurface *surface, IRect *rect, uint32_t color, GfxOpt *opt) +``` + +**描述:** + +填充矩形,用一种颜色填充画布上指定矩形区域的矩形框。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| surface | 输入参数,画布。 | +| rect | 输入参数,填充的矩形区域。 | +| color | 输入参数,填充的颜色。 | +| opt | 输入参数,硬件加速选项。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### InitGfx + + +``` +int32_t(* GfxFuncs::InitGfx) (void) +``` + +**描述:** + +初始化硬件加速。 + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[DeinitGfx](#deinitgfx) + + +### Sync + + +``` +int32_t(* GfxFuncs::Sync) (int32_t timeOut) +``` + +**描述:** + +硬件加速同步。 + +在使用硬件加速模块进行图像绘制、图像叠加、图像搬移时,通过调用该接口进行硬件同步,该接口会等待硬件加速完成。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| timeOut | 输入参数,硬件加速同步超时设置,设置为0表示无超时,等待直到硬件加速完成。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 diff --git a/zh-cn/device-dev/api/_gfx_opt.md b/zh-cn/device-dev/api/_gfx_opt.md new file mode 100644 index 0000000000..00fdaa09fd --- /dev/null +++ b/zh-cn/device-dev/api/_gfx_opt.md @@ -0,0 +1,33 @@ +# GfxOpt + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [enGlobalAlpha](_display.md#englobalalpha-22) | 全局alpha使能标志 | +| [globalAlpha](_display.md#globalalpha) | 全局alpha的值 | +| [enPixelAlpha](_display.md#enpixelalpha-22) | 像素alpha使能标志 | +| [blendType](_display.md#blendtype) | 混合方式 | +| [colorKeyFrom](_display.md#colorkeyfrom) | 色键模式 | +| [enableRop](_display.md#enablerop) | Rop功能使能位 | +| [colorRopType](_display.md#colorroptype) | 颜色的Rop类型 | +| [alphaRopType](_display.md#alpharoptype) | Alpha的Rop类型 | +| [enableScale](_display.md#enablescale) | 缩放功能使能位 | +| [rotateType](_display.md#rotatetype) | 旋转类型 | +| [mirrorType](_display.md#mirrortype) | 镜像类型 | + + +## **详细描述** + +图像硬件加速相关的操作选项结构体定义,用于图像硬件加速时的操作选项。 diff --git a/zh-cn/device-dev/api/_gralloc_funcs.md b/zh-cn/device-dev/api/_gralloc_funcs.md new file mode 100644 index 0000000000..d67c99a3dd --- /dev/null +++ b/zh-cn/device-dev/api/_gralloc_funcs.md @@ -0,0 +1,273 @@ +# GrallocFuncs + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [AllocMem](#allocmem) )(const [AllocInfo](_alloc_info.md) \*info, BufferHandle \*\*handle) | 显示内存分配。 [更多...](#allocmem) | +| ( [FreeMem](#freemem) )(BufferHandle \*handle) | 显示内存释放。 [更多...](#freemem) | +| ( [Mmap](#mmap) )(BufferHandle \*handle) | 显示内存映射,将内存映射到对应的进程地址空间中。 [更多...](#mmap) | +| ( [MmapYUV](#mmapyuv) )(BufferHandle \*handle, YUVDescInfo \*info) | YUV 内存映射。 [更多...](#mmapyuv) | +| ( [MmapCache](#mmapcache) )(BufferHandle \*handle) | 显示内存映射,将内存映射为 cache 内存到对应的进程地址空间中。 [更多...](#mmapcache) | +| ( [Unmap](#unmap) )(BufferHandle \*handle) | 内存反映射,将内存进行反映射。 [更多...](#unmap) | +| ( [FlushCache](#flushcache) )(BufferHandle \*handle) | 刷新cache,刷新cache里的内容到内存并且使cache里的内容无效。 [更多...](#flushcache) | +| ( [FlushMCache](#flushmcache) )(BufferHandle \*handle) | 刷新Mmap映射的cache,刷新Mmap映射的cache里的内容到内存并且使cache里的内容无效。 [更多...](#flushmcache) | +| ( [InvalidateCache](#invalidatecache) )(BufferHandle \*handle) | 使cache中的内容无效用以存储更新内存内容。 [更多...](#invalidatecache) | +| ( [IsSupportedAlloc](#issupportedalloc) )(uint32_t num, const [VerifyAllocInfo](_verify_alloc_info.md) \*infos, bool \*supporteds) | 检测给定的VerifyAllocInfo数组信息能否申请内存成功。 [更多...](#issupportedalloc) | + + +## **详细描述** + +显示内存驱动接口结构体,定义显示内存驱动接口函数指针。 + + +## **类成员变量说明** + + +### AllocMem + + +``` +int32_t(* GrallocFuncs::AllocMem) (const AllocInfo *info, BufferHandle **handle) +``` + +**描述:** + +显示内存分配。 + +根据GUI图形系统传递的参数分配内存,分配的内存根据类型可分为共享内存、cache内存和非cache内存等。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| info | 输入参数,指示申请内存AllocInfo信息. | +| handle | 输入参数,指向申请的内存handle指针。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### FlushCache + + +``` +int32_t(* GrallocFuncs::FlushCache) (BufferHandle *handle) +``` + +**描述:** + +刷新cache,刷新cache里的内容到内存并且使cache里的内容无效。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 输出参数,待刷新cache的handle指针。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### FlushMCache + + +``` +int32_t(* GrallocFuncs::FlushMCache) (BufferHandle *handle) +``` + +**描述:** + +刷新Mmap映射的cache,刷新Mmap映射的cache里的内容到内存并且使cache里的内容无效。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 输出参数,待刷新cache的handle指针。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### FreeMem + + +``` +void(* GrallocFuncs::FreeMem) (BufferHandle *handle) +``` + +**描述:** + +显示内存释放。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 输入参数,待释放的内存handle指针。 | + +**返回:** + +成功返回有效地址,失败返回NULL。 + + +### InvalidateCache + + +``` +int32_t(* GrallocFuncs::InvalidateCache) (BufferHandle *handle) +``` + +**描述:** + +使cache中的内容无效用以存储更新内存内容。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 输出参数,待无效cache的handle指针。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### IsSupportedAlloc + + +``` +int32_t(* GrallocFuncs::IsSupportedAlloc) (uint32_t num, const VerifyAllocInfo *infos, bool *supporteds) +``` + +**描述:** + +检测给定的VerifyAllocInfo数组信息能否申请内存成功。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| num | 输入参数,VerifyAllocInfo数组个数。 | +| infos | 输出参数,VerifyAllocInfo数组首地址。 | +| supporteds | 输出参数,supporteds数组首地址, 表示能否申请成功。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### Mmap + + +``` +void*(* GrallocFuncs::Mmap) (BufferHandle *handle) +``` + +**描述:** + +显示内存映射,将内存映射到对应的进程地址空间中。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 输入参数,待映射内存handle指针。 | + +**返回:** + +成功返回有效地址,失败返回NULL。 + + +### MmapCache + + +``` +void*(* GrallocFuncs::MmapCache) (BufferHandle *handle) +``` + +**描述:** + +显示内存映射,将内存映射为 cache 内存到对应的进程地址空间中。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 输出参数,待映射内存 handle 指针。 | + +**返回:** + +成功返回有效地址,失败返回 NULL。 + + +### MmapYUV + + +``` +void*(* GrallocFuncs::MmapYUV) (BufferHandle *handle, YUVDescInfo *info) +``` + +**描述:** + +YUV 内存映射。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 输出参数,指示内存映射的输出缓存。 | +| info | 输出参数,指示内存映射的YUVDescInfo信息。 | + +**返回:** + +成功返回有效地址,失败返回 NULL。 + + +### Unmap + + +``` +int32_t(* GrallocFuncs::Unmap) (BufferHandle *handle) +``` + +**描述:** + +内存反映射,将内存进行反映射。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 输出参数,待反映射内存handle指针。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 diff --git a/zh-cn/device-dev/api/_h_d_r_capability.md b/zh-cn/device-dev/api/_h_d_r_capability.md new file mode 100644 index 0000000000..08d19bbbbf --- /dev/null +++ b/zh-cn/device-dev/api/_h_d_r_capability.md @@ -0,0 +1,27 @@ +# HDRCapability + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [formatCount](_display.md#formatcount) | 支持的HDR格式的数量 | +| [formats](_display.md#formats) | 支持的HDR格式的数组首地址 | +| [maxLum](_display.md#maxlum) | 最大的光亮度luminance值 | +| [maxAverageLum](_display.md#maxaveragelum) | 最大的平均光亮度luminance值 | +| [minLum](_display.md#minlum) | 最小的光亮度luminance值 | + + +## **详细描述** + +HDR属性结构体定义。 diff --git a/zh-cn/device-dev/api/_h_d_r_meta_data.md b/zh-cn/device-dev/api/_h_d_r_meta_data.md new file mode 100644 index 0000000000..d20665318f --- /dev/null +++ b/zh-cn/device-dev/api/_h_d_r_meta_data.md @@ -0,0 +1,24 @@ +# HDRMetaData + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [key](_display.md#key) | HDR元数据关键字。 | +| [value](_display.md#value-22) | 关键字对应的值。 | + + +## **详细描述** + +HDR元数据结构体定义。 diff --git a/zh-cn/device-dev/api/_hdf_face_auth.md b/zh-cn/device-dev/api/_hdf_face_auth.md new file mode 100644 index 0000000000..39f59d2b97 --- /dev/null +++ b/zh-cn/device-dev/api/_hdf_face_auth.md @@ -0,0 +1,157 @@ +# HdfFaceAuth + + +## **汇总** + + +### 文件 + + | 文件 | 描述 | +| -------- | -------- | +| [FaceAuthTypes.idl](_face_auth_types_8idl.md) | 定义人脸认证驱动的枚举类和数据结构。 | +| [IExecutor.idl](face__auth_2_i_executor_8idl.md) | 定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 | +| [IExecutorCallback.idl](face__auth_2_i_executor_callback_8idl.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和信息。 | +| [IFaceAuthInterface.idl](_i_face_auth_interface_8idl.md) | 定义获取人脸认证驱动的执行器列表接口,用于从人脸认证驱动获取执行器对象列表。 | + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [ExecutorInfo](_executor_info.md) | 执行器信息。 [更多...](_executor_info.md) | +| [TemplateInfo](_template_info.md) | 凭据模版信息。 [更多...](_template_info.md) | +| [IExecutor](interface_i_executor.md) | 定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 [更多...](interface_i_executor.md) | +| [IExecutorCallback](interface_i_executor_callback.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见[IExecutor](interface_i_executor.md)。 [更多...](interface_i_executor_callback.md) | +| [IFaceAuthInterface](interface_i_face_auth_interface.md) | 定义获取人脸认证驱动的执行器列表接口。 [更多...](interface_i_face_auth_interface.md) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [AuthType](#authtype) : int {   [PIN](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a048efb7462d3f8cced82716c66926168) = 1, [FACE](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a5cfae78048cf95359061c2e812e7d691) = 2, [FINGERPRINT](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1ad03eae85b35bf9bc22d787c8913b795a) = 4 } | 枚举用户认证凭据类型。 [更多...](#authtype) | +| [ExecutorRole](#executorrole) : int {   [COLLECTOR](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a539c54e76bcc96cddb85f0cabcff39ec) = 1, [VERIFIER](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a1286a5d974d0c68d7bc43ffc0576a6d4) = 2, [ALL_IN_ONE](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a7eebd77a403f81c5968b4c2898ee6fd4) = 3 } | 枚举执行器角色。 [更多...](#executorrole) | +| [ExecutorSecureLevel](#executorsecurelevel) : int {   [ESL0](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa0cd05a2adda94d3c676fca84f96c0638) = 0, [ESL1](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fae6a34bbf2764541238bf81569faf29d3) = 1, [ESL2](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa8f898bca57625d548a011ba2aaf4285f) = 2, [ESL3](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa9a6fb8a4530b6a09dba2fbfdf2e6c2e9) = 3 } | 枚举执行器安全等级。 [更多...](#executorsecurelevel) | +| [CommandId](#commandid) : int { [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref313653401083931,link:#entry1378875880083931p0](#entry1378875880083931p0) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref148718194083931,link:#entry1786148552083931p0](#entry1786148552083931p0) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref2084154321083931,link:#entry1330595345083931p0](#entry1330595345083931p0) = 10000 } | 枚举人脸认证功能相关操作命令。 [更多...](#commandid) | +| [FaceTipsCode](#facetipscode) : int {   [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref1058539048083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007aa973b57b70bddf6e04ea0d1d8ac84bbc](#ggafe283e29a705391d97054a4b9d5fe007aa973b57b70bddf6e04ea0d1d8ac84bbc) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref2091712261083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007a9e812580c2600ebd4847ac05478805fe](#ggafe283e29a705391d97054a4b9d5fe007a9e812580c2600ebd4847ac05478805fe) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref2114375419083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007adbd6a2cd4effac8f2d08a406c21cee17](#ggafe283e29a705391d97054a4b9d5fe007adbd6a2cd4effac8f2d08a406c21cee17) = 3, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref640599540083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007a557c72d5d5dd9cc4ca52406d442a085e](#ggafe283e29a705391d97054a4b9d5fe007a557c72d5d5dd9cc4ca52406d442a085e) = 4,   [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref716207804083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007ac573361a2c459a0d0f95f7691819611b](#ggafe283e29a705391d97054a4b9d5fe007ac573361a2c459a0d0f95f7691819611b) = 5, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref1534653669083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007a1fbbe62377b7746848761d4fc1e591d8](#ggafe283e29a705391d97054a4b9d5fe007a1fbbe62377b7746848761d4fc1e591d8) = 6, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref840994427083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007a8b8f69a132ab5e9e4770fbe25efe6810](#ggafe283e29a705391d97054a4b9d5fe007a8b8f69a132ab5e9e4770fbe25efe6810) = 7, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref480644543083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007a4f1f1ab1bed69c0968981c6ecc52a572](#ggafe283e29a705391d97054a4b9d5fe007a4f1f1ab1bed69c0968981c6ecc52a572) = 8,   [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref1440203875083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007a19f794720c79aaeb2b2cb895eca6c4fd](#ggafe283e29a705391d97054a4b9d5fe007a19f794720c79aaeb2b2cb895eca6c4fd) = 9, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref1366149389083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007a93c89c83ede9a3b5a15e90a1975176b7](#ggafe283e29a705391d97054a4b9d5fe007a93c89c83ede9a3b5a15e90a1975176b7) = 10, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref1532937057083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007aa41ae58b84dbfe8b467de7a11ad236f8](#ggafe283e29a705391d97054a4b9d5fe007aa41ae58b84dbfe8b467de7a11ad236f8) = 11, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref1048618882083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007abef2f1de5f74c324a7dd8958a279caab](#ggafe283e29a705391d97054a4b9d5fe007abef2f1de5f74c324a7dd8958a279caab) = 10000 } | 枚举提示信息编码。 [更多...](#facetipscode) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.face_auth.v1_0 | 人脸认证接口的包路径 | + + +## **详细描述** + +提供人脸认证驱动的标准API接口。 + +人脸认证驱动为人脸认证服务提供统一的访问接口。获取人脸认证驱动代理后,人脸认证服务可以调用相关接口获取执行器,获取人脸认证执行器后, 人脸认证服务可以调用相关接口获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 + +**Since:** + +3.2 + + +## **枚举类型说明** + + +### AuthType + + +``` +enum AuthType : int +``` + +**描述:** + +枚举用户认证凭据类型。 + + | 枚举值 | 描述 | +| -------- | -------- | +| PIN | 认证凭据类型为口令。 | +| FACE | 认证凭据类型为人脸。 | +| FINGERPRINT | 认证凭据类型为指纹。 | + + +### CommandId + + +``` +enum CommandId : int +``` + +**描述:** + +枚举人脸认证功能相关操作命令。 + + | 枚举值 | 描述 | +| -------- | -------- | +| LOCK_TEMPLATE | 锁定人脸模版。 | +| UNLOCK_TEMPLATE | 解锁人脸模版。 | +| VENDOR_COMMAND_BEGIN | 用于厂商自定义操作指令。 | + + +### ExecutorRole + + +``` +enum ExecutorRole : int +``` + +**描述:** + +枚举执行器角色。 + + | 枚举值 | 描述 | +| -------- | -------- | +| COLLECTOR | 执行器角色为采集器,提供用户认证时的数据采集能力,需要和认证器配合完成用户认证。 | +| VERIFIER | 执行器角色为认证器,提供用户认证时数据处理能力,读取存储凭据模板信息并完成比对。 | +| ALL_IN_ONE | 执行器角色为全功能执行器,可提供用户认证数据采集、处理、储存及比对能力。 | + + +### ExecutorSecureLevel + + +``` +enum ExecutorSecureLevel : int +``` + +**描述:** + +枚举执行器安全等级。 + + | 枚举值 | 描述 | +| -------- | -------- | +| ESL0 | 执行器安全级别为0,关键操作在无访问控制执行环境中完成。 | +| ESL1 | 执行器安全级别为1,关键操作在有访问控制的执行环境中完成。 | +| ESL2 | 执行器安全级别为2,关键操作在可信执行环境中完成。 | +| ESL3 | 执行器安全级别为3,关键操作在高安环境如独立安全芯片中完成。 | + + +### FaceTipsCode + + +``` +enum FaceTipsCode : int +``` + +**描述:** + +枚举提示信息编码。 + + | 枚举值 | 描述 | +| -------- | -------- | +| FACE_AUTH_TIP_TOO_BRIGHT | 获取的人脸图像由于光照度高而过亮。 | +| FACE_AUTH_TIP_TOO_DARK | 获取的人脸图像由于光照度低而过暗。 | +| FACE_AUTH_TIP_TOO_CLOSE | 人脸离设备过近。 | +| FACE_AUTH_TIP_TOO_FAR | 人脸离设备过远。 | +| FACE_AUTH_TIP_TOO_HIGH | 设备过高,只拍到人脸的上半部分。 | +| FACE_AUTH_TIP_TOO_LOW | 设备过低,只拍到人脸的下半部分。 | +| FACE_AUTH_TIP_TOO_RIGHT | 设备偏右,只拍到人脸的右侧部分。 | +| FACE_AUTH_TIP_TOO_LEFT | 设备偏左,只拍到人脸的左侧部分。 | +| FACE_AUTH_TIP_TOO_MUCH_MOTION | 人脸信息采集过程中,人脸移动过多。 | +| FACE_AUTH_TIP_POOR_GAZE | 用户未注视设备。 | +| FACE_AUTH_TIP_NOT_DETECTED | 未检测到人脸。 | +| VENDOR_FACE_AUTH_TIP_BEGIN | 用于厂商自定义提示信息。 | diff --git a/zh-cn/device-dev/api/_hdf_pin_auth.md b/zh-cn/device-dev/api/_hdf_pin_auth.md new file mode 100644 index 0000000000..938de8ac0e --- /dev/null +++ b/zh-cn/device-dev/api/_hdf_pin_auth.md @@ -0,0 +1,127 @@ +# HdfPinAuth + + +## **汇总** + + +### 文件 + + | 文件 | 描述 | +| -------- | -------- | +| [IExecutor.idl](pin__auth_2_i_executor_8idl.md) | 定义执行器标准API接口。接口可用于获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。 | +| [IExecutorCallback.idl](pin__auth_2_i_executor_callback_8idl.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和获取信息。 | +| [IPinAuthInterface.idl](_i_pin_auth_interface_8idl.md) | 定义获取口令认证驱动的执行器列表接口,用于从口令认证驱动获取执行器对象列表。 | +| [PinAuthTypes.idl](_pin_auth_types_8idl.md) | 定义口令认证驱动的枚举类和数据结构。 | + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IExecutor](interface_pin_i_executor.md) | 定义执行器标准API接口。接口可用于获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。[更多...](interface_pin_i_executor.md) | +| [IExecutorCallback](interface_i_executor_callback.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见[IExecutor](interface_i_executor.md)。 [更多...](interface_i_executor_callback.md) | +| [IPinAuthInterface](interface_i_pin_auth_interface.md) | 定义获取口令认证驱动的执行器列表接口。 [更多...](interface_i_pin_auth_interface.md) | +| [ExecutorInfo](_executor_info.md) | 执行器信息。 [更多...](_executor_info.md) | +| [TemplateInfo](_template_info.md) | 凭据模版信息。 [更多...](_template_info.md) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [AuthType](#authtype) : int {   [PIN](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a048efb7462d3f8cced82716c66926168) = 1, [FACE](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a5cfae78048cf95359061c2e812e7d691) = 2, [FINGERPRINT](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1ad03eae85b35bf9bc22d787c8913b795a) = 4 } | 枚举用户认证凭据类型。 [更多...](#authtype) | +| [ExecutorRole](#executorrole) : int {   [COLLECTOR](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a539c54e76bcc96cddb85f0cabcff39ec) = 1, [VERIFIER](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a1286a5d974d0c68d7bc43ffc0576a6d4) = 2, [ALL_IN_ONE](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a7eebd77a403f81c5968b4c2898ee6fd4) = 3 } | 枚举执行器角色。 [更多...](#executorrole) | +| [ExecutorSecureLevel](#executorsecurelevel) : int {   [ESL0](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa0cd05a2adda94d3c676fca84f96c0638) = 0, [ESL1](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fae6a34bbf2764541238bf81569faf29d3) = 1, [ESL2](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa8f898bca57625d548a011ba2aaf4285f) = 2, [ESL3](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa9a6fb8a4530b6a09dba2fbfdf2e6c2e9) = 3 } | 枚举执行器安全等级。 [更多...](#executorsecurelevel) | +| [CommandId](#commandid) : int { [ERROR:Invalid link:zh-cn_topic_0000001295254320.xml#xref679966451083931,link:zh-cn_topic_0000001295254320.xml#gga5633c8cc52bef1a4df7539c7bb6febe7a88ec7d5086d2469ba843c7fcceade8a6](#gga5633c8cc52bef1a4df7539c7bb6febe7a88ec7d5086d2469ba843c7fcceade8a6) = 0 } | 枚举口令认证相关功能操作命令。 [更多...](#commandid) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.pin_auth.v1_0 | 口令认证接口的包路径 | + + +## **详细描述** + +提供口令认证驱动的标准API接口。 + +口令认证驱动为口令认证服务提供统一的访问接口。获取口令认证驱动代理后,口令认证服务可以调用相关接口获取执行器,获取口令认证执行器后, 口令认证服务可以调用相关接口获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。 + +**Since:** + +3.2 + + +## **枚举类型说明** + + +### AuthType + + +``` +enum AuthType : int +``` + +**描述:** + +枚举用户认证凭据类型。 + + | 枚举值 | 描述 | +| -------- | -------- | +| PIN | 认证凭据类型为口令。 | +| FACE | 认证凭据类型为人脸。 | +| FINGERPRINT | 认证凭据类型为指纹。 | + + +### CommandId + + +``` +enum CommandId : int +``` + +**描述:** + +枚举口令认证相关功能操作命令。 + + | 枚举值 | 描述 | +| -------- | -------- | +| DEFAULT | 默认无效操作命令。 | + + +### ExecutorRole + + +``` +enum ExecutorRole : int +``` + +**描述:** + +枚举执行器角色。 + + | 枚举值 | 描述 | +| -------- | -------- | +| COLLECTOR | 执行器角色为采集器,提供用户认证时的数据采集能力,需要和认证器配合完成用户认证。 | +| VERIFIER | 执行器角色为认证器,提供用户认证时数据处理能力,读取存储凭据模板信息并完成比对。 | +| ALL_IN_ONE | 执行器角色为全功能执行器,可提供用户认证数据采集、处理、储存及比对能力。 | + + +### ExecutorSecureLevel + + +``` +enum ExecutorSecureLevel : int +``` + +**描述:** + +枚举执行器安全等级。 + + | 枚举值 | 描述 | +| -------- | -------- | +| ESL0 | 执行器安全级别为0,关键操作在无访问控制执行环境中完成。 | +| ESL1 | 执行器安全级别为1,关键操作在有访问控制的执行环境中完成。 | +| ESL2 | 执行器安全级别为2,关键操作在可信执行环境中完成。 | +| ESL3 | 执行器安全级别为3,关键操作在高安环境如独立安全芯片中完成。 | diff --git a/zh-cn/device-dev/api/_hdf_thermal_callback_info.md b/zh-cn/device-dev/api/_hdf_thermal_callback_info.md new file mode 100644 index 0000000000..5652e991ce --- /dev/null +++ b/zh-cn/device-dev/api/_hdf_thermal_callback_info.md @@ -0,0 +1,38 @@ +# HdfThermalCallbackInfo + + +## **概述** + +**所属模块:** + +[Thermal](thermal.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [info](#info) | 设备发热的信息列表。 | + + +## **详细描述** + +设备发热的信息列表。 + + +## **类成员变量说明** + + +### info + + +``` +List HdfThermalCallbackInfo::info +``` + +**描述:** + +设备发热的信息列表。 diff --git a/zh-cn/device-dev/api/_hdf_user_auth.md b/zh-cn/device-dev/api/_hdf_user_auth.md new file mode 100644 index 0000000000..2f919f29ba --- /dev/null +++ b/zh-cn/device-dev/api/_hdf_user_auth.md @@ -0,0 +1,115 @@ +# HdfUserAuth + + +## **汇总** + + +### 文件 + + | 文件 | 描述 | +| -------- | -------- | +| [IUserAuthInterface.idl](_i_user_auth_interface_8idl.md) | 声明用户认证驱动的API接口。接口可用于注册执行器,管理用户认证凭据,完成PIN码和生物特征认证。 | +| [UserAuthTypes.idl](_user_auth_types_8idl.md) | 定义用户认证驱动的枚举类和数据结构。 | + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IUserAuthInterface](interface_i_user_auth_interface.md) | 声明用户认证驱动的API接口。 [更多...](interface_i_user_auth_interface.md) | +| [ExecutorRegisterInfo](_executor_register_info.md) | 执行器注册信息。 [更多...](_executor_register_info.md) | +| [ExecutorInfo](_executor_info.md) | 执行器信息。 [更多...](_executor_info.md) | +| [ScheduleInfo](_schedule_info.md) | 调度信息。 [更多...](_schedule_info.md) | +| [AuthSolution](_auth_solution.md) | 认证方案。 [更多...](_auth_solution.md) | +| [ExecutorSendMsg](_executor_send_msg.md) | 执行器发送的消息。 [更多...](_executor_send_msg.md) | +| [AuthResultInfo](_auth_result_info.md) | 用户身份认证结果信息。 [更多...](_auth_result_info.md) | +| [IdentifyResultInfo](_identify_result_info.md) | 用户身份识别结果信息。 [更多...](_identify_result_info.md) | +| [EnrollParam](_enroll_param.md) | 注册认证凭据参数。 [更多...](_enroll_param.md) | +| [CredentialInfo](_credential_info.md) | 认证凭据信息。 [更多...](_credential_info.md) | +| [EnrolledInfo](_enrolled_info.md) | 注册信息。 [更多...](_enrolled_info.md) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [AuthType](#authtype) : int {   [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref2099463766083931,link:zh-cn_topic_0000001295573820.xml#gga89fed1f0b2adadc0ab678c1c6b9570a1a048efb7462d3f8cced82716c66926168](#gga89fed1f0b2adadc0ab678c1c6b9570a1a048efb7462d3f8cced82716c66926168) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref1101090273083931,link:zh-cn_topic_0000001295573820.xml#gga89fed1f0b2adadc0ab678c1c6b9570a1a5cfae78048cf95359061c2e812e7d691](#gga89fed1f0b2adadc0ab678c1c6b9570a1a5cfae78048cf95359061c2e812e7d691) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref2144839375083931,link:zh-cn_topic_0000001295573820.xml#gga89fed1f0b2adadc0ab678c1c6b9570a1ad03eae85b35bf9bc22d787c8913b795a](#gga89fed1f0b2adadc0ab678c1c6b9570a1ad03eae85b35bf9bc22d787c8913b795a) = 4, [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref258518135083931,link:zh-cn_topic_0000001295573820.xml#gga89fed1f0b2adadc0ab678c1c6b9570a1ab1d5eac4b1dca480c8056eaea7663b7a](#gga89fed1f0b2adadc0ab678c1c6b9570a1ab1d5eac4b1dca480c8056eaea7663b7a) = 0 } | 枚举用户认证凭据类型。 [更多...](#authtype) | +| [ExecutorRole](#executorrole) : int {   [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref1855863902083931,link:zh-cn_topic_0000001295573820.xml#ggaef26ea73ebd494278e243c53b41ea7e5a539c54e76bcc96cddb85f0cabcff39ec](#ggaef26ea73ebd494278e243c53b41ea7e5a539c54e76bcc96cddb85f0cabcff39ec) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref1503416700083931,link:zh-cn_topic_0000001295573820.xml#ggaef26ea73ebd494278e243c53b41ea7e5a1286a5d974d0c68d7bc43ffc0576a6d4](#ggaef26ea73ebd494278e243c53b41ea7e5a1286a5d974d0c68d7bc43ffc0576a6d4) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref902051378083931,link:zh-cn_topic_0000001295573820.xml#ggaef26ea73ebd494278e243c53b41ea7e5a7eebd77a403f81c5968b4c2898ee6fd4](#ggaef26ea73ebd494278e243c53b41ea7e5a7eebd77a403f81c5968b4c2898ee6fd4) = 3 } | 枚举执行器角色。 [更多...](#executorrole) | +| [ExecutorSecureLevel](#executorsecurelevel) : int {   [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref984255741083931,link:zh-cn_topic_0000001295573820.xml#gga955c57d8720719916dd806106356fa0fa0cd05a2adda94d3c676fca84f96c0638](#gga955c57d8720719916dd806106356fa0fa0cd05a2adda94d3c676fca84f96c0638) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref1990347701083931,link:zh-cn_topic_0000001295573820.xml#gga955c57d8720719916dd806106356fa0fae6a34bbf2764541238bf81569faf29d3](#gga955c57d8720719916dd806106356fa0fae6a34bbf2764541238bf81569faf29d3) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref849727353083931,link:zh-cn_topic_0000001295573820.xml#gga955c57d8720719916dd806106356fa0fa8f898bca57625d548a011ba2aaf4285f](#gga955c57d8720719916dd806106356fa0fa8f898bca57625d548a011ba2aaf4285f) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref1372842813083931,link:zh-cn_topic_0000001295573820.xml#gga955c57d8720719916dd806106356fa0fa9a6fb8a4530b6a09dba2fbfdf2e6c2e9](#gga955c57d8720719916dd806106356fa0fa9a6fb8a4530b6a09dba2fbfdf2e6c2e9) = 3 } | 枚举执行器安全等级。 [更多...](#executorsecurelevel) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.user_auth.v1_0 | 用户认证接口的包路径 | + + +## **详细描述** + +提供用户认证驱动的标准API接口。 + +用户认证驱动为用户认证服务提供统一的访问接口。获取用户认证驱动代理后,用户认证服务可以调用相关接口注册执行器,管理用户认证凭据, 完成PIN码和生物特征。 + +**Since:** + +3.2 + + +## **枚举类型说明** + + +### AuthType + + +``` +enum AuthType : int +``` + +**描述:** + +枚举用户认证凭据类型。 + + | 枚举值 | 描述 | +| -------- | -------- | +| PIN | 认证凭据类型为口令。 | +| FACE | 认证凭据类型为人脸。 | +| FINGERPRINT | 认证凭据类型为指纹。 | +| ALL | 表示包含所有认证凭据类型。 | + + +### ExecutorRole + + +``` +enum ExecutorRole : int +``` + +**描述:** + +枚举执行器角色。 + + | 枚举值 | 描述 | +| -------- | -------- | +| COLLECTOR | 执行器角色为采集器,提供用户认证时的数据采集能力,需要和认证器配合完成用户认证。 | +| VERIFIER | 执行器角色为认证器,提供用户认证时数据处理能力,读取存储凭据模板信息并完成比对。 | +| ALL_IN_ONE | 执行器角色为全功能执行器,可提供用户认证数据采集、处理、储存及比对能力。 | + + +### ExecutorSecureLevel + + +``` +enum ExecutorSecureLevel : int +``` + +**描述:** + +枚举执行器安全等级。 + + | 枚举值 | 描述 | +| -------- | -------- | +| ESL0 | 执行器安全级别为0,关键操作在无访问控制执行环境中完成。 | +| ESL1 | 执行器安全级别为1,关键操作在有访问控制的执行环境中完成。 | +| ESL2 | 执行器安全级别为2,关键操作在可信执行环境中完成。 | +| ESL3 | 执行器安全级别为3,关键操作在高安环境如独立安全芯片中完成。 | diff --git a/zh-cn/device-dev/api/_i_battery_callback_8idl.md b/zh-cn/device-dev/api/_i_battery_callback_8idl.md new file mode 100644 index 0000000000..9689750599 --- /dev/null +++ b/zh-cn/device-dev/api/_i_battery_callback_8idl.md @@ -0,0 +1,40 @@ +# IBatteryCallback.idl + + +## **概述** + +**所属模块:** + +[Battery](battery.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IBatteryCallback](interface_i_battery_callback.md) | 电池信息的回调。 [更多...](interface_i_battery_callback.md) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.battery.v1_0 | 电池信息接口的包路径 | + + +## **详细描述** + +电池信息的回调。 + +电池模块为电池服务提供的订阅电池信息变化的回调。 + +**Since:** + +3.1 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/_i_battery_interface_8idl.md b/zh-cn/device-dev/api/_i_battery_interface_8idl.md new file mode 100644 index 0000000000..7a4a80ad0c --- /dev/null +++ b/zh-cn/device-dev/api/_i_battery_interface_8idl.md @@ -0,0 +1,36 @@ +# IBatteryInterface.idl + + +## **概述** + +**所属模块:** + +[Battery](battery.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IBatteryInterface](interface_i_battery_interface.md) | 获取、订阅电池信息的接口。 [更多...](interface_i_battery_interface.md) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.battery.v1_0 | 电池信息接口的包路径 | + + +## **详细描述** + +获取、订阅电池信息的接口。 + +服务获取此对象后,可以调用相关的接口获取、订阅电池信息。 + +**Since:** + +3.1 diff --git a/zh-cn/device-dev/api/_i_circle.md b/zh-cn/device-dev/api/_i_circle.md new file mode 100644 index 0000000000..1bc7edaa14 --- /dev/null +++ b/zh-cn/device-dev/api/_i_circle.md @@ -0,0 +1,26 @@ +# ICircle + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [x](_display.md#x-22) | 矩形框起始X坐标。 | +| [y](_display.md#y-22) | 矩形框起始Y坐标。 | +| [r](_display.md#r) | 圆的半径。 | +| [color](_display.md#color-23) | 圆的颜色。 | + + +## **详细描述** + +圆形描述结构体定义,用于硬件加速绘制圆形。 diff --git a/zh-cn/device-dev/api/_i_face_auth_interface_8idl.md b/zh-cn/device-dev/api/_i_face_auth_interface_8idl.md new file mode 100644 index 0000000000..3776682000 --- /dev/null +++ b/zh-cn/device-dev/api/_i_face_auth_interface_8idl.md @@ -0,0 +1,34 @@ +# IFaceAuthInterface.idl + + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IFaceAuthInterface](interface_i_face_auth_interface.md) | 定义获取人脸认证驱动的执行器列表接口。 [更多...](interface_i_face_auth_interface.md) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.face_auth.v1_0 | 人脸认证接口的包路径 | + + +## **详细描述** + +定义获取人脸认证驱动的执行器列表接口,用于从人脸认证驱动获取执行器对象列表。 + +**Since:** + +3.2 diff --git a/zh-cn/device-dev/api/_i_input_interface.md b/zh-cn/device-dev/api/_i_input_interface.md new file mode 100644 index 0000000000..d2308b6bd9 --- /dev/null +++ b/zh-cn/device-dev/api/_i_input_interface.md @@ -0,0 +1,64 @@ +# IInputInterface + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [iInputManager](#iinputmanager) | input设备的设备管理接口。 | +| [iInputController](#iinputcontroller) | input设备的业务控制接口。 | +| [iInputReporter](#iinputreporter) | input设备的数据上报接口。 | + + +## **详细描述** + +定义用于提供输入设备驱动能力的接口。 + + +## **类成员变量说明** + + +### iInputController + + +``` +InputController* IInputInterface::iInputController +``` + +**描述:** + +input设备的业务控制接口 + + +### iInputManager + + +``` +InputManager* IInputInterface::iInputManager +``` + +**描述:** + +input设备的设备管理接口 + + +### iInputReporter + + +``` +InputReporter* IInputInterface::iInputReporter +``` + +**描述:** + +input设备的数据上报接口 diff --git a/zh-cn/device-dev/api/_i_line.md b/zh-cn/device-dev/api/_i_line.md new file mode 100644 index 0000000000..ee33cb7f53 --- /dev/null +++ b/zh-cn/device-dev/api/_i_line.md @@ -0,0 +1,27 @@ +# ILine + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [x0](_display.md#x0) | 线条起点的X坐标。 | +| [y0](_display.md#y0) | 线条起点的Y坐标。 | +| [x1](_display.md#x1) | 线条终点的X坐标。 | +| [y1](_display.md#y1) | 线条终点的Y坐标。 | +| [color](_display.md#color-13) | 线条颜色。 | + + +## **详细描述** + +线条描述结构体定义,用于硬件加速绘制直线。 diff --git a/zh-cn/device-dev/api/_i_pin_auth_interface_8idl.md b/zh-cn/device-dev/api/_i_pin_auth_interface_8idl.md new file mode 100644 index 0000000000..75007400f1 --- /dev/null +++ b/zh-cn/device-dev/api/_i_pin_auth_interface_8idl.md @@ -0,0 +1,34 @@ +# IPinAuthInterface.idl + + +## **概述** + +**所属模块:** + +[HdfPinAuth](_hdf_pin_auth.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IPinAuthInterface](interface_i_pin_auth_interface.md) | 定义获取口令认证驱动的执行器列表接口。 [更多...](interface_i_pin_auth_interface.md) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.pin_auth.v1_0 | 口令认证接口的包路径 | + + +## **详细描述** + +定义获取口令认证驱动的执行器列表接口,用于从口令认证驱动获取执行器对象列表。 + +**Since:** + +3.2 diff --git a/zh-cn/device-dev/api/_i_power_hdi_callback_8idl.md b/zh-cn/device-dev/api/_i_power_hdi_callback_8idl.md new file mode 100644 index 0000000000..58b8511542 --- /dev/null +++ b/zh-cn/device-dev/api/_i_power_hdi_callback_8idl.md @@ -0,0 +1,40 @@ +# IPowerHdiCallback.idl + + +## **概述** + +**所属模块:** + +[Power](power.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IPowerHdiCallback](interface_i_power_hdi_callback.md) | 休眠/唤醒状态的回调。 [更多...](interface_i_power_hdi_callback.md) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.power.v1_0 | 电源接口的包路径 | + + +## **详细描述** + +休眠/唤醒状态的回调。 + +电源模块为电源服务提供的订阅休眠/唤醒状态的回调。 + +**Since:** + +3.1 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/_i_power_interface_8idl.md b/zh-cn/device-dev/api/_i_power_interface_8idl.md new file mode 100644 index 0000000000..b6899c701f --- /dev/null +++ b/zh-cn/device-dev/api/_i_power_interface_8idl.md @@ -0,0 +1,40 @@ +# IPowerInterface.idl + + +## **概述** + +**所属模块:** + +[Power](power.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IPowerInterface](interface_i_power_interface.md) | 休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 [更多...](interface_i_power_interface.md) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.power.v1_0 | 电源接口的包路径 | + + +## **详细描述** + +休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 + +电源模块为电源服务提供休眠/唤醒操作、订阅休眠/唤醒状态和运行锁管理的接口。 + +**Since:** + +3.1 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/_i_rect.md b/zh-cn/device-dev/api/_i_rect.md new file mode 100644 index 0000000000..f2b8f481e4 --- /dev/null +++ b/zh-cn/device-dev/api/_i_rect.md @@ -0,0 +1,26 @@ +# IRect + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [x](_display.md#x-12) | 矩形框起始X坐标。 | +| [y](_display.md#y-12) | 矩形框起始Y坐标。 | +| [w](_display.md#w) | 矩形框宽度。 | +| [h](_display.md#h) | 矩形框高度。 | + + +## **详细描述** + +定义矩形信息。 diff --git a/zh-cn/device-dev/api/_i_surface.md b/zh-cn/device-dev/api/_i_surface.md new file mode 100644 index 0000000000..2108ff2709 --- /dev/null +++ b/zh-cn/device-dev/api/_i_surface.md @@ -0,0 +1,35 @@ +# ISurface + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [phyAddr](_display.md#phyaddr-22) | 图像首地址 | +| [height](_display.md#height-47) | 图像高度 | +| [width](_display.md#width-47) | 图像宽度 | +| [stride](_display.md#stride) | 图像跨度 | +| [enColorFmt](_display.md#encolorfmt) | 图像格式 | +| [bYCbCrClut](_display.md#bycbcrclut) | CLUT表是否位于 YCbCr 空间 | +| [bAlphaMax255](_display.md#balphamax255) | 图像alpha最大值为255还是128 | +| [bAlphaExt1555](_display.md#balphaext1555) | 是否使能1555的Alpha扩展 | +| [alpha0](_display.md#alpha0-22) | Alpha0值,取值范围:[0,255] | +| [alpha1](_display.md#alpha1-22) | Alpha1值,取值范围:[0,255] | +| [cbcrPhyAddr](_display.md#cbcrphyaddr) | CLUT表首地址,用作颜色扩展或颜色校正 | +| [cbcrStride](_display.md#cbcrstride) | CbCr分量跨度 | +| [clutPhyAddr](_display.md#clutphyaddr) | CbCr分量地址 | + + +## **详细描述** + +用于存放窗口相关信息的结构体定义,提供给硬件加速使用,例如图像合成,位图搬移等操作。 diff --git a/zh-cn/device-dev/api/_i_thermal_callback_8idl.md b/zh-cn/device-dev/api/_i_thermal_callback_8idl.md new file mode 100644 index 0000000000..5a4758d6b9 --- /dev/null +++ b/zh-cn/device-dev/api/_i_thermal_callback_8idl.md @@ -0,0 +1,40 @@ +# IThermalCallback.idl + + +## **概述** + +**所属模块:** + +[Thermal](thermal.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IThermalCallback](interface_i_thermal_callback.md) | 订阅设备发热状态的回调。 [更多...](interface_i_thermal_callback.md) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.thermal.v1_0 | 设备温度管理接口的包路径 | + + +## **详细描述** + +设备发热状态的回调。 + +热模块为热服务提供的设备发热状态的回调。 + +**Since:** + +3.1 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/_i_thermal_interface_8idl.md b/zh-cn/device-dev/api/_i_thermal_interface_8idl.md new file mode 100644 index 0000000000..06a9236486 --- /dev/null +++ b/zh-cn/device-dev/api/_i_thermal_interface_8idl.md @@ -0,0 +1,40 @@ +# IThermalInterface.idl + + +## **概述** + +**所属模块:** + +[Thermal](thermal.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IThermalInterface](interface_i_thermal_interface.md) | 设备温度管理、控制及订阅接口。 [更多...](interface_i_thermal_interface.md) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.thermal.v1_0 | 设备温度管理接口的包路径 | + + +## **详细描述** + +设备温度管理、控制及订阅接口。 + +热模块为热服务提供的设备温度管理、控制及订阅接口。 + +**Since:** + +3.1 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/_i_user_auth_interface_8idl.md b/zh-cn/device-dev/api/_i_user_auth_interface_8idl.md new file mode 100644 index 0000000000..7f3c5bd015 --- /dev/null +++ b/zh-cn/device-dev/api/_i_user_auth_interface_8idl.md @@ -0,0 +1,34 @@ +# IUserAuthInterface.idl + + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IUserAuthInterface](interface_i_user_auth_interface.md) | 声明用户认证驱动的API接口。 [更多...](interface_i_user_auth_interface.md) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.user_auth.v1_0 | 用户认证接口的包路径 | + + +## **详细描述** + +声明用户认证驱动的API接口。接口可用于注册执行器,管理用户认证凭据,完成PIN码和生物特征认证。 + +**Since:** + +3.2 diff --git a/zh-cn/device-dev/api/_i_wi_fi.md b/zh-cn/device-dev/api/_i_wi_fi.md new file mode 100644 index 0000000000..ebbd3612dd --- /dev/null +++ b/zh-cn/device-dev/api/_i_wi_fi.md @@ -0,0 +1,369 @@ +# IWiFi + + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [start](#start) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348293957.xml#xref459063066083932,link:zh-cn_topic_0000001348293957.xml](zh-cn_topic_0000001348293957.xml) \*iwifi) | 创建HAL和驱动之间的通道及获取驱动网卡信息,该函数调用在创建IWiFi实体后进行。 [更多...](#start) | +| ( [stop](#stop) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348293957.xml#xref1577893620083932,link:zh-cn_topic_0000001348293957.xml](zh-cn_topic_0000001348293957.xml) \*iwifi) | 销毁HAL和驱动之间的通道,该函数调用在销毁IWiFi实体前进行。 [更多...](#stop) | +| ( [getSupportFeature](#getsupportfeature) )(uint8_t \*supType, uint32_t size) | 获取该设备支持的WLAN特性(不考虑当前的使用状态)。 [更多...](#getsupportfeature) | +| ( [getSupportCombo](#getsupportcombo) )(uint64_t \*combo, uint32_t size) | 获取多网卡共存情况。 [更多...](#getsupportcombo) | +| ( [createFeature](#createfeature) )(int32_t type, struct [IWiFiBaseFeature](_i_wi_fi_base_feature.md) \*\*ifeature) | 根据输入类型创建对应的特性[IWiFiBaseFeature](_i_wi_fi_base_feature.md)。 [更多...](#createfeature) | +| ( [getFeatureByIfName](#getfeaturebyifname) )(const char \*ifName, struct [IWiFiBaseFeature](_i_wi_fi_base_feature.md) \*\*ifeature) | 通过网络接口名字获取对应的特性。 [更多...](#getfeaturebyifname) | +| ( [registerEventCallback](#registereventcallback) )([CallbackFunc](_w_l_a_n.md#callbackfunc) cbFunc, const char \*ifName) | 注册IWiFi的回调函数,监听异步事件。 [更多...](#registereventcallback) | +| ( [unregisterEventCallback](#unregistereventcallback) )([CallbackFunc](_w_l_a_n.md#callbackfunc) cbFunc, const char \*ifName) | 去注册IWiFi的回调函数。 [更多...](#unregistereventcallback) | +| ( [destroyFeature](#destroyfeature) )(struct [IWiFiBaseFeature](_i_wi_fi_base_feature.md) \*ifeature) | 根据输入类型销毁对应的特性[IWiFiBaseFeature](_i_wi_fi_base_feature.md)。 [更多...](#destroyfeature) | +| ( [resetDriver](#resetdriver) )(const uint8_t chipId, const char \*ifName) | 重置具有指定芯片ID的WLAN驱动程序。 [更多...](#resetdriver) | +| ( [getNetDevInfo](#getnetdevinfo) )(struct NetDeviceInfoResult \*netDeviceInfoResult) | 获取网络设备信息(设备索引、网卡名字、MAC等信息)。 [更多...](#getnetdevinfo) | +| ( [getPowerMode](#getpowermode) )(const char \*ifName, uint8_t \*mode) | 获取正在使用的功率模式。 [更多...](#getpowermode) | +| ( [setPowerMode](#setpowermode) )(const char \*ifName, uint8_t mode) | 设置功率模式 [更多...](#setpowermode) | + + +## **详细描述** + +HAL对WLAN服务提供的基本能力。 + +用于创建HAL与驱动的通道,创建/获取/销毁WLAN特性等。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### createFeature + + +``` +int32_t(* IWiFi::createFeature) (int32_t type, struct IWiFiBaseFeature **ifeature) +``` + +**描述:** + +根据输入类型创建对应的特性[IWiFiBaseFeature](_i_wi_fi_base_feature.md)。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| type | 输入参数,创建的feature类型。 | +| ifeature | 输出参数,获取创建的feature对象。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### destroyFeature + + +``` +int32_t(* IWiFi::destroyFeature) (struct IWiFiBaseFeature *ifeature) +``` + +**描述:** + +根据输入类型销毁对应的特性[IWiFiBaseFeature](_i_wi_fi_base_feature.md)。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| ifeature | 输入参数,销毁的feature对象。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### getFeatureByIfName + + +``` +int32_t(* IWiFi::getFeatureByIfName) (const char *ifName, struct IWiFiBaseFeature **ifeature) +``` + +**描述:** + +通过网络接口名字获取对应的特性。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| ifName | 输入参数,网卡名称。 | +| ifeature | 输出参数,获取该网络接口名字的feature对象。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### getNetDevInfo + + +``` +int32_t(* IWiFi::getNetDevInfo) (struct NetDeviceInfoResult *netDeviceInfoResult) +``` + +**描述:** + +获取网络设备信息(设备索引、网卡名字、MAC等信息)。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| netDeviceInfoResult | 输出参数,得到的网络设备信息。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### getPowerMode + + +``` +int32_t(* IWiFi::getPowerMode) (const char *ifName, uint8_t *mode) +``` + +**描述:** + +获取正在使用的功率模式。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| ifName | 输入参数,网卡名称。 | +| mode | 输出参数,功率模式,包括睡眠模式(待机状态运行)、一般模式(正常额定功率运行)、穿墙模式(最大功率运行,提高信号强度和覆盖面积)。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### getSupportCombo + + +``` +int32_t(* IWiFi::getSupportCombo) (uint64_t *combo, uint32_t size) +``` + +**描述:** + +获取多网卡共存情况。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| combo | 输出参数,基于芯片的能力保存当前所有支持的多网卡共存情况(比如支持AP,STA,P2P等不同组合的共存)。 | +| size | 输入参数,combo数组的长度。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### getSupportFeature + + +``` +int32_t(* IWiFi::getSupportFeature) (uint8_t *supType, uint32_t size) +``` + +**描述:** + +获取该设备支持的WLAN特性(不考虑当前的使用状态)。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| supType | 输出参数,保存当前设备支持的特性。 | +| size | 输入参数,supType数组的长度。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### registerEventCallback + + +``` +int32_t(* IWiFi::registerEventCallback) (CallbackFunc cbFunc, const char *ifName) +``` + +**描述:** + +注册IWiFi的回调函数,监听异步事件。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| cbFunc | 输入参数,注册的回调函数。 | +| ifName | 输入参数,网卡名称。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### resetDriver + + +``` +int32_t(* IWiFi::resetDriver) (const uint8_t chipId, const char *ifName) +``` + +**描述:** + +重置具有指定芯片ID的WLAN驱动程序。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| chipId | 输入参数,需要进行重置驱动的对应芯片ID。 | +| ifName | 输入参数,网卡名称。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### setPowerMode + + +``` +int32_t(* IWiFi::setPowerMode) (const char *ifName, uint8_t mode) +``` + +**描述:** + +设置功率模式 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| ifName | 输入参数,网卡名称。 | +| mode | 输入参数,功率模式,包括睡眠模式(待机状态运行)、一般模式(正常额定功率运行)、穿墙模式(最大功率运行,提高信号强度和覆盖面积)。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### start + + +``` +int32_t(* IWiFi::start) (struct IWiFi *iwifi) +``` + +**描述:** + +创建HAL和驱动之间的通道及获取驱动网卡信息,该函数调用在创建IWiFi实体后进行。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| iwifi | 输入参数,IWiFi对象。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### stop + + +``` +int32_t(* IWiFi::stop) (struct IWiFi *iwifi) +``` + +**描述:** + +销毁HAL和驱动之间的通道,该函数调用在销毁IWiFi实体前进行。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| iwifi | 输入参数,IWiFi对象。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### unregisterEventCallback + + +``` +int32_t(* IWiFi::unregisterEventCallback) (CallbackFunc cbFunc, const char *ifName) +``` + +**描述:** + +去注册IWiFi的回调函数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| cbFunc | 输入参数,去注册的回调函数。 | +| ifName | 输入参数,网卡名称。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 diff --git a/zh-cn/device-dev/api/_i_wi_fi_ap.md b/zh-cn/device-dev/api/_i_wi_fi_ap.md new file mode 100644 index 0000000000..0c02c1ccb3 --- /dev/null +++ b/zh-cn/device-dev/api/_i_wi_fi_ap.md @@ -0,0 +1,101 @@ +# IWiFiAp + + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [baseFeature](#basefeature) | 基本特性。 | +| ( [getAsscociatedStas](#getasscociatedstas) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001348174149.xml#xref1123713694083932,link:zh-cn_topic_0000001348174149.xml](zh-cn_topic_0000001348174149.xml) \*apFeature, struct [StaInfo](_sta_info.md) \*staInfo, uint32_t count, uint32_t \*num) | 获取连接上的所有STA的信息(目前只包含MAC地址)。 [更多...](#getasscociatedstas) | +| ( [setCountryCode](#setcountrycode) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001348174149.xml#xref2129805954083932,link:zh-cn_topic_0000001348174149.xml](zh-cn_topic_0000001348174149.xml) \*apFeature, const char \*code, uint32_t len) | 设置国家码(表示AP射频所在的国家,规定了AP射频特性,包括AP的发送功率、支持的信道等。其目的是为了使AP的射频特性符合不同国家或区域的法律法规要求)。 [更多...](#setcountrycode) | + + +## **详细描述** + +继承了IWiFiBaseFeature基本特性,并包含AP模式下获取连接STA的信息和设置国家码的功能。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### baseFeature + + +``` +struct IWiFiBaseFeature IWiFiAp::baseFeature +``` + +**描述:** + +基本特性。 + + +### getAsscociatedStas + + +``` +int32_t(* IWiFiAp::getAsscociatedStas) (const struct IWiFiAp *apFeature, struct StaInfo *staInfo, uint32_t count, uint32_t *num) +``` + +**描述:** + +获取连接上的所有STA的信息(目前只包含MAC地址)。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| apFeature | 输入参数,AP特性[ERROR:Invalid link:zh-cn_topic_0000001348174149.xml#xref901054971083932,link:zh-cn_topic_0000001348174149.xml](zh-cn_topic_0000001348174149.xml)。 | +| staInfo | 输出参数,保存与AP连接的STA的基本信息。 | +| count | 输入参数,staInfo结构体数组的元素个数。 | +| num | 输出参数,实际连接的STA的个数。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### setCountryCode + + +``` +int32_t(* IWiFiAp::setCountryCode) (const struct IWiFiAp *apFeature, const char *code, uint32_t len) +``` + +**描述:** + +设置国家码(表示AP射频所在的国家,规定了AP射频特性,包括AP的发送功率、支持的信道等。其目的是为了使AP的射频特性符合不同国家或区域的法律法规要求)。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| apFeature | 输入参数,AP特性[ERROR:Invalid link:zh-cn_topic_0000001348174149.xml#xref1659529054083932,link:zh-cn_topic_0000001348174149.xml](zh-cn_topic_0000001348174149.xml)。 | +| code | 输入参数,设置的国家码。 | +| len | 输入参数,国家码长度。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 diff --git a/zh-cn/device-dev/api/_i_wi_fi_base_feature.md b/zh-cn/device-dev/api/_i_wi_fi_base_feature.md new file mode 100644 index 0000000000..6664dab742 --- /dev/null +++ b/zh-cn/device-dev/api/_i_wi_fi_base_feature.md @@ -0,0 +1,259 @@ +# IWiFiBaseFeature + + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [ifName](#ifname) [[IFNAME_MAX_LEN](_w_l_a_n.md#ga63637ece87095ff8d153f650434ecf97)] | 网卡名称。 | +| **type** | 特性的类型,参考[FeatureType](_w_l_a_n.md#featuretype)。 | +| ( [getNetworkIfaceName](#getnetworkifacename) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1160037662083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml) \*baseFeature) | 根据基本特性获取网卡名称。 [更多...](#getnetworkifacename) | +| ( [getFeatureType](#getfeaturetype) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref2042681197083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml) \*baseFeature) | 获取基本特性的类型[FeatureType](_w_l_a_n.md#featuretype)。 [更多...](#getfeaturetype) | +| ( [setMacAddress](#setmacaddress) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1120460385083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml) \*baseFeature, unsigned char \*mac, uint8_t len) | 根据传入参数设置对应网卡的MAC地址。 [更多...](#setmacaddress) | +| ( [getDeviceMacAddress](#getdevicemacaddress) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref330712474083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml) \*baseFeature, unsigned char \*mac, uint8_t len) | 获取设备的MAC地址。 [更多...](#getdevicemacaddress) | +| ( [getValidFreqsWithBand](#getvalidfreqswithband) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1369279207083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml) \*baseFeature, int32_t band, int32_t \*freqs, uint32_t count, uint32_t \*num) | 获取指定频段(2.4G或者5G)下支持的频率。 [更多...](#getvalidfreqswithband) | +| ( [setTxPower](#settxpower) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1878860227083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml) \*baseFeature, int32_t power) | 设置发射功率。 [更多...](#settxpower) | +| ( [getChipId](#getchipid) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref407053875083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml) \*baseFeature, uint8_t \*chipId) | 获得当前驱动的芯片ID。 [更多...](#getchipid) | +| ( [getIfNamesByChipId](#getifnamesbychipid) )(const uint8_t chipId, char \*\*ifNames, uint32_t \*num) | 通过芯片ID获得当前芯片所有的网卡名称。 [更多...](#getifnamesbychipid) | + + +## **详细描述** + +WLAN基本特性操作接口,包括获取网卡名称,设置MAC地址,设置发射功率等公共能力接口。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### getChipId + + +``` +int32_t(* IWiFiBaseFeature::getChipId) (const struct IWiFiBaseFeature *baseFeature, uint8_t *chipId) +``` + +**描述:** + +获得当前驱动的芯片ID。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref473855951083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml)。 | +| chipId | 输出参数,获得的芯片ID。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### getDeviceMacAddress + + +``` +int32_t(* IWiFiBaseFeature::getDeviceMacAddress) (const struct IWiFiBaseFeature *baseFeature, unsigned char *mac, uint8_t len) +``` + +**描述:** + +获取设备的MAC地址。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1226402066083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml)。 | +| mac | 输出参数,获得的MAC地址。 | +| len | 输入参数,获得的MAC地址长度。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### getFeatureType + + +``` +int32_t(*IWiFiBaseFeature::getFeatureType) (const struct IWiFiBaseFeature *baseFeature) +``` + +**描述:** + +获取基本特性的类型[FeatureType](_w_l_a_n.md#featuretype)。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1934582661083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml)。 | + +**返回:** + +如果操作成功,则返回特性类型。 + +如果操作失败,则返回负值。 + + +### getIfNamesByChipId + + +``` +int32_t(* IWiFiBaseFeature::getIfNamesByChipId) (const uint8_t chipId, char **ifNames, uint32_t *num) +``` + +**描述:** + +通过芯片ID获得当前芯片所有的网卡名称。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| chipId | 输入参数,需要获取网卡名称的芯片ID。 | +| ifNames | 输出参数,网卡名称。 | +| num | 输出参数,网卡的数量。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### getNetworkIfaceName + + +``` +const char*(* IWiFiBaseFeature::getNetworkIfaceName) (const struct IWiFiBaseFeature *baseFeature) +``` + +**描述:** + +根据基本特性获取网卡名称。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1207169342083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml)。 | + +**返回:** + +如果操作成功,则返回网卡名称。 + +如果操作失败,则返回NULL。 + + +### getValidFreqsWithBand + + +``` +int32_t(* IWiFiBaseFeature::getValidFreqsWithBand) (const struct IWiFiBaseFeature *baseFeature, int32_t band, int32_t *freqs, uint32_t count, uint32_t *num) +``` + +**描述:** + +获取指定频段(2.4G或者5G)下支持的频率。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1345697859083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml)。 | +| band | 输入参数,指定的一个频段。 | +| freqs | 输出参数,保存支持的频率。 | +| count | 输入参数,频率数组的元素个数。 | +| num | 输出参数,实际支持的频率个数。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### ifName + + +``` +char IWiFiBaseFeature::ifName[IFNAME_MAX_LEN] +``` + +**描述:** + +网卡名称。 + + +### setMacAddress + + +``` +int32_t(* IWiFiBaseFeature::setMacAddress) (const struct IWiFiBaseFeature *baseFeature, unsigned char *mac, uint8_t len) +``` + +**描述:** + +根据传入参数设置对应网卡的MAC地址。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1858718007083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml)。 | +| mac | 输入参数,设置的MAC地址。 | +| len | 输入参数,设置的MAC地址长度。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### setTxPower + + +``` +int32_t(* IWiFiBaseFeature::setTxPower) (const struct IWiFiBaseFeature *baseFeature, int32_t power) +``` + +**描述:** + +设置发射功率。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref793467134083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml)。 | +| power | 输入参数,设置的发射功率。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 diff --git a/zh-cn/device-dev/api/_i_wi_fi_sta.md b/zh-cn/device-dev/api/_i_wi_fi_sta.md new file mode 100644 index 0000000000..70ba26cbdd --- /dev/null +++ b/zh-cn/device-dev/api/_i_wi_fi_sta.md @@ -0,0 +1,99 @@ +# IWiFiSta + + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [baseFeature](#basefeature) | 基本特性。 | +| ( [setScanningMacAddress](#setscanningmacaddress) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001295414208.xml#xref1079443811083932,link:zh-cn_topic_0000001295414208.xml](zh-cn_topic_0000001295414208.xml) \*staFeature, unsigned char \*scanMac, uint8_t len) | 设置扫描单个MAC地址。 [更多...](#setscanningmacaddress) | +| ( [startScan](#startscan) )(const char \*ifName, WifiScan \*scan) | 启动扫描。 [更多...](#startscan) | + + +## **详细描述** + +继承了[IWiFiBaseFeature](_i_wi_fi_base_feature.md)基本特性,额外包含设置扫描单个MAC地址功能。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### baseFeature + + +``` +struct IWiFiBaseFeature IWiFiSta::baseFeature +``` + +**描述:** + +基本特性。 + + +### setScanningMacAddress + + +``` +int32_t(* IWiFiSta::setScanningMacAddress) (const struct IWiFiSta *staFeature, unsigned char *scanMac, uint8_t len) +``` + +**描述:** + +设置扫描单个MAC地址。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| staFeature | 输入参数,STA特性[ERROR:Invalid link:zh-cn_topic_0000001295414208.xml#xref557822862083932,link:zh-cn_topic_0000001295414208.xml](zh-cn_topic_0000001295414208.xml)。 | +| scanMac | 输入参数,设置STA扫描的MAC地址。 | +| len | 输入参数,MAC地址的长度。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### startScan + + +``` +int32_t(* IWiFiSta::startScan) (const char *ifName, WifiScan *scan) +``` + +**描述:** + +启动扫描。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| ifName | 输入参数,网卡名称。 | +| scan | 输入参数,扫描参数。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 diff --git a/zh-cn/device-dev/api/_identify_result_info.md b/zh-cn/device-dev/api/_identify_result_info.md new file mode 100644 index 0000000000..f990a2d18b --- /dev/null +++ b/zh-cn/device-dev/api/_identify_result_info.md @@ -0,0 +1,72 @@ +# IdentifyResultInfo + + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [result](#result) | 用户身份识别结果。 | +| [userId](#userid) | 用户ID。 | +| [token](#token) | 用户身份识别令牌。 | + + +## **详细描述** + +用户身份识别结果信息。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### result + + +``` +int IdentifyResultInfo::result +``` + +**描述:** + +用户身份识别结果。 + + +### token + + +``` +unsigned char [] IdentifyResultInfo::token +``` + +**描述:** + +用户身份识别令牌。 + + +### userId + + +``` +int IdentifyResultInfo::userId +``` + +**描述:** + +用户ID。 diff --git a/zh-cn/device-dev/api/_input.md b/zh-cn/device-dev/api/_input.md new file mode 100644 index 0000000000..18675b371e --- /dev/null +++ b/zh-cn/device-dev/api/_input.md @@ -0,0 +1,194 @@ +# Input + + +## **汇总** + + +### 文件 + + | 文件 | 描述 | +| -------- | -------- | +| [input_controller.h](input__controller_8h.md) | 描述input设备业务控制相关的接口声明。 | +| [input_manager.h](input__manager_8h.md) | 描述input设备管理相关的接口声明。 | +| [input_reporter.h](input__reporter_8h.md) | 描述input设备数据上报相关的接口声明。 | +| [input_type.h](input__type_8h.md) | input设备相关的类型定义,定义了input设备驱动接口所使用的结构体及枚举类型。 | + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [InputController](_input_controller.md) | 提供input设备业务控制相关的接口。 [更多...](_input_controller.md) | +| [InputManager](_input_manager.md) | 提供input设备管理相关的接口。 [更多...](_input_manager.md) | +| [IInputInterface](_i_input_interface.md) | 定义用于提供输入设备驱动能力的接口。[更多...](_i_input_interface.md) | +| [InputReporter](_input_reporter.md) | 提供input设备数据上报相关的接口。 [更多...](_input_reporter.md) | +| [EventPackage](_event_package.md) | input事件数据包结构 [更多...](_event_package.md) | +| [InputReportEventCb](_input_report_event_cb.md) | 此结构体定义了输入事件回调函数并提供给input服务使用 [更多...](_input_report_event_cb.md) | +| [DeviceInfo](_device_info.md) | input设备基础设备信息 [更多...](_device_info.md) | +| [InputExtraCmd](_input_extra_cmd.md) | 扩展指令的数据结构 [更多...](_input_extra_cmd.md) | + + +### 宏定义 + + | 宏定义 | 描述 | +| -------- | -------- | +| **MAX_INPUT_DEV_NUM**   32 | Input设备最大数量。 | +| **MAX_NODE_PATH_LEN**   64 | 节点路径最大长度。 | +| **CHIP_INFO_LEN**   10 | 芯片信息长度。 | +| **CHIP_NAME_LEN**   10 | 芯片名称长度。 | +| **VENDOR_NAME_LEN**   10 | 厂商名称长度。 | +| **SELF_TEST_RESULT_LEN**   20 | 自测结果长度。 | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [RetStatus](#retstatus) {   [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1300857390083931,link:zh-cn_topic_0000001295094392.xml#gga85d58a5185669daa4995e332b63eba7aa4b6c3821e689826c4323c4eb759b4d3a](#gga85d58a5185669daa4995e332b63eba7aa4b6c3821e689826c4323c4eb759b4d3a) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1409989604083931,link:zh-cn_topic_0000001295094392.xml#gga85d58a5185669daa4995e332b63eba7aa07d986b0ee365020834af82a31dfce11](#gga85d58a5185669daa4995e332b63eba7aa07d986b0ee365020834af82a31dfce11) = -1, [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref452864304083931,link:zh-cn_topic_0000001295094392.xml#gga85d58a5185669daa4995e332b63eba7aa5f54ab958e21a298da35c3c5c1c36d85](#gga85d58a5185669daa4995e332b63eba7aa5f54ab958e21a298da35c3c5c1c36d85) = -2, [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref961590603083931,link:zh-cn_topic_0000001295094392.xml#gga85d58a5185669daa4995e332b63eba7aaddf6c11b0fac107e0123b83cfc4a1185](#gga85d58a5185669daa4995e332b63eba7aaddf6c11b0fac107e0123b83cfc4a1185) = -3,   [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref924512393083931,link:zh-cn_topic_0000001295094392.xml#gga85d58a5185669daa4995e332b63eba7aa157cd4f4736dd1f05eb2e13dbc7123ed](#gga85d58a5185669daa4995e332b63eba7aa157cd4f4736dd1f05eb2e13dbc7123ed) = -4, [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1348525150083931,link:zh-cn_topic_0000001295094392.xml#gga85d58a5185669daa4995e332b63eba7aabdaeb2a27983bd66ff6e24d4df255f59](#gga85d58a5185669daa4995e332b63eba7aabdaeb2a27983bd66ff6e24d4df255f59) = -5, [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1671886965083931,link:zh-cn_topic_0000001295094392.xml#gga85d58a5185669daa4995e332b63eba7aa8978f7ee3d0ddd70f5077c21efc4a97a](#gga85d58a5185669daa4995e332b63eba7aa8978f7ee3d0ddd70f5077c21efc4a97a) = -6 } | 定义返回值类型 [更多...](#retstatus) | +| [InputDevType](#inputdevtype) {   [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1555941679083931,link:zh-cn_topic_0000001295094392.xml#ggaa8225ba155dfa1ef2c4119c832bc4dd3a621678554aac2b37ac244b80fc33da0d](#ggaa8225ba155dfa1ef2c4119c832bc4dd3a621678554aac2b37ac244b80fc33da0d), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref490402822083931,link:zh-cn_topic_0000001295094392.xml#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4c4c8407342021cc06a95aa13ebeaca1](#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4c4c8407342021cc06a95aa13ebeaca1), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref233720602083931,link:zh-cn_topic_0000001295094392.xml#ggaa8225ba155dfa1ef2c4119c832bc4dd3a3a4137efe666a3aaccf267d597879fdc](#ggaa8225ba155dfa1ef2c4119c832bc4dd3a3a4137efe666a3aaccf267d597879fdc), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1190476620083931,link:zh-cn_topic_0000001295094392.xml#ggaa8225ba155dfa1ef2c4119c832bc4dd3abe68740c1d125d3d474fdadc7d31d11c](#ggaa8225ba155dfa1ef2c4119c832bc4dd3abe68740c1d125d3d474fdadc7d31d11c),   [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1309699275083931,link:zh-cn_topic_0000001295094392.xml#ggaa8225ba155dfa1ef2c4119c832bc4dd3a2815a25dde3e56e1f8eb57f20049e8c0](#ggaa8225ba155dfa1ef2c4119c832bc4dd3a2815a25dde3e56e1f8eb57f20049e8c0), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1202673028083931,link:zh-cn_topic_0000001295094392.xml#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4ef2ab6bc355e2321664709716d1d04f](#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4ef2ab6bc355e2321664709716d1d04f), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref2038943016083931,link:zh-cn_topic_0000001295094392.xml#ggaa8225ba155dfa1ef2c4119c832bc4dd3a8cd6b27ac631b9d3fa89a17ddca37291](#ggaa8225ba155dfa1ef2c4119c832bc4dd3a8cd6b27ac631b9d3fa89a17ddca37291), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref753753548083931,link:zh-cn_topic_0000001295094392.xml#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4097247eba52062f47a1aa99414033de](#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4097247eba52062f47a1aa99414033de) } | 定义input设备类型 [更多...](#inputdevtype) | +| [PowerStatus](#powerstatus) { [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref2104217090083931,link:zh-cn_topic_0000001295094392.xml#gga65e6bb4d942c22dba9975253b0a1d73fa5edb1acdc509659046de9cb61bd9508a](#gga65e6bb4d942c22dba9975253b0a1d73fa5edb1acdc509659046de9cb61bd9508a), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref612508396083931,link:zh-cn_topic_0000001295094392.xml#gga65e6bb4d942c22dba9975253b0a1d73fa2a6aab1b3d50dae2b6ba43779e185ea5](#gga65e6bb4d942c22dba9975253b0a1d73fa2a6aab1b3d50dae2b6ba43779e185ea5), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1485213206083931,link:zh-cn_topic_0000001295094392.xml#gga65e6bb4d942c22dba9975253b0a1d73fa8895c64802d558830d46bcd921830e9d](#gga65e6bb4d942c22dba9975253b0a1d73fa8895c64802d558830d46bcd921830e9d), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1055889242083931,link:zh-cn_topic_0000001295094392.xml#gga65e6bb4d942c22dba9975253b0a1d73fa728020b31c626f749d426cbe8f0f92fe](#gga65e6bb4d942c22dba9975253b0a1d73fa728020b31c626f749d426cbe8f0f92fe) } | 定义电源状态 [更多...](#powerstatus) | +| [CapacitanceTest](#capacitancetest) {   [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref188734445083931,link:zh-cn_topic_0000001295094392.xml#ggae96e484cfd64ea37b5b7782f57f38a21aedd31f50c79a36cc8e084d69a3fc695b](#ggae96e484cfd64ea37b5b7782f57f38a21aedd31f50c79a36cc8e084d69a3fc695b), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref335398850083931,link:zh-cn_topic_0000001295094392.xml#ggae96e484cfd64ea37b5b7782f57f38a21abfe92c879dc84b5b071899a7ec5cc41d](#ggae96e484cfd64ea37b5b7782f57f38a21abfe92c879dc84b5b071899a7ec5cc41d), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1929415567083931,link:zh-cn_topic_0000001295094392.xml#ggae96e484cfd64ea37b5b7782f57f38a21a93335d88212604ade3b0bfe7e619916f](#ggae96e484cfd64ea37b5b7782f57f38a21a93335d88212604ade3b0bfe7e619916f), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref2014653915083931,link:zh-cn_topic_0000001295094392.xml#ggae96e484cfd64ea37b5b7782f57f38a21a31afc25da895db4eaa2af6cec1d6b37c](#ggae96e484cfd64ea37b5b7782f57f38a21a31afc25da895db4eaa2af6cec1d6b37c),   [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1192159830083931,link:zh-cn_topic_0000001295094392.xml#ggae96e484cfd64ea37b5b7782f57f38a21a9d739cecefd291b39152e3815445aa20](#ggae96e484cfd64ea37b5b7782f57f38a21a9d739cecefd291b39152e3815445aa20) } | 定义容值测试类型 [更多...](#capacitancetest) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [GetInputInterface](#getinputinterface) ([IInputInterface](_i_input_interface.md) \*\*interface) | input服务通过调用此接口获取操作input设备的所有接口。 [更多...](#getinputinterface) | + + +## **详细描述** + +Input模块驱动接口声明。 + +本模块为Input服务提供相关驱动接口,包括input设备的打开和关闭、input事件获取、设备信息查询、回调函数注册、特性状态控制等接口。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **枚举类型说明** + + +### CapacitanceTest + + +``` +enum CapacitanceTest +``` + +**描述:** + +定义容值测试类型 + + | 枚举值 | 描述 | +| -------- | -------- | +| BASE_TEST | 基础容值测试 | +| FULL_TEST | 全量容值自检测试 | +| MMI_TEST | MMI容值测试 | +| RUNNING_TEST | 老化容值测试 | +| TEST_TYPE_UNKNOWN | 未知的测试类型 | + + +### InputDevType + + +``` +enum InputDevType +``` + +**描述:** + +定义input设备类型 + + | 枚举值 | 描述 | +| -------- | -------- | +| INDEV_TYPE_TOUCH | 触摸屏。 | +| INDEV_TYPE_KEY | 物理按键。 | +| INDEV_TYPE_KEYBOARD | 键盘。 | +| INDEV_TYPE_MOUSE | 鼠标。 | +| INDEV_TYPE_BUTTON | 虚拟按键。 | +| INDEV_TYPE_CROWN | 表冠。 | +| INDEV_TYPE_ENCODER | 自定义编码的特定功能或者事件。 | +| INDEV_TYPE_UNKNOWN | 未知输入设备类型。 | + + +### PowerStatus + + +``` +enum PowerStatus +``` + +**描述:** + +定义电源状态 + + | 枚举值 | 描述 | +| -------- | -------- | +| INPUT_RESUME | 正常唤醒。 | +| INPUT_SUSPEND | 休眠下电模式。 | +| INPUT_LOW_POWER | 休眠低功耗模式。 | +| INPUT_POWER_STATUS_UNKNOWN | 未知电源状态。 | + + +### RetStatus + + +``` +enum RetStatus +``` + +**描述:** + +定义返回值类型 + + | 枚举值 | 描述 | +| -------- | -------- | +| INPUT_SUCCESS | 成功。 | +| INPUT_FAILURE | 失败。 | +| INPUT_INVALID_PARAM | 无效参数。 | +| INPUT_NOMEM | 内存不足。 | +| INPUT_NULL_PTR | 空指针。 | +| INPUT_TIMEOUT | 执行超时。 | +| INPUT_UNSUPPORTED | 特性不支持。 | + + +## **函数说明** + + +### GetInputInterface() + + +``` +int32_t GetInputInterface (IInputInterface **interface) +``` + +**描述:** + +input服务通过调用此接口获取操作input设备的所有接口。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| interface | 对input设备进行接口操作的指针,通常在input服务启动后,通过调用此函数获取input设备操作接口 | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/_input_controller.md b/zh-cn/device-dev/api/_input_controller.md new file mode 100644 index 0000000000..5cdf213f38 --- /dev/null +++ b/zh-cn/device-dev/api/_input_controller.md @@ -0,0 +1,276 @@ +# InputController + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [SetPowerStatus](#setpowerstatus) )(uint32_t devIndex, uint32_t status) | 设置电源状态 [更多...](#setpowerstatus) | +| ( [GetPowerStatus](#getpowerstatus) )(uint32_t devIndex, uint32_t \*status) | 获取电源状态 [更多...](#getpowerstatus) | +| ( [GetDeviceType](#getdevicetype) )(uint32_t devIndex, uint32_t \*deviceType) | 获取devIndex对应的input设备的类型 [更多...](#getdevicetype) | +| ( [GetChipInfo](#getchipinfo) )(uint32_t devIndex, char \*chipInfo, uint32_t length) | 获取器件对应的编码信息 [更多...](#getchipinfo) | +| ( [GetVendorName](#getvendorname) )(uint32_t devIndex, char \*vendorName, uint32_t length) | 获取devIndex对应的模组厂商名 [更多...](#getvendorname) | +| ( [GetChipName](#getchipname) )(uint32_t devIndex, char \*chipName, uint32_t length) | 获取devIndex对应的驱动芯片名 [更多...](#getchipname) | +| ( [SetGestureMode](#setgesturemode) )(uint32_t devIndex, uint32_t gestureMode) | 设置手势模式 [更多...](#setgesturemode) | +| ( [RunCapacitanceTest](#runcapacitancetest) )(uint32_t devIndex, uint32_t testType, char \*result, uint32_t length) | 执行容值自检测试 [更多...](#runcapacitancetest) | +| ( [RunExtraCommand](#runextracommand) )(uint32_t devIndex, [InputExtraCmd](_input_extra_cmd.md) \*cmd) | 执行拓展指令 [更多...](#runextracommand) | + + +## **详细描述** + +提供input设备业务控制相关的接口。 + +此类接口包含电源状态的设置、特性的使能、器件信息的获取,以及产线相关的测试功能接口。 + + +## **类成员变量说明** + + +### GetChipInfo + + +``` +int32_t(* InputController::GetChipInfo) (uint32_t devIndex, char *chipInfo, uint32_t length) +``` + +**描述:** + +获取器件对应的编码信息 + +一款产品通常会有多家模组和Driver IC,上层应用如果关注具体器件型号,则通过此接口来获取。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devIndex | Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。 | +| chipInfo | 获取的对应设备索引的器件编码信息。 | +| length | 保存器件芯片信息的内存长度。 | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + + +### GetChipName + + +``` +int32_t(* InputController::GetChipName) (uint32_t devIndex, char *chipName, uint32_t length) +``` + +**描述:** + +获取devIndex对应的驱动芯片名 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devIndex | Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。 | +| chipName | 获取的对应设备索引的驱动芯片名。 | +| length | 保存驱动芯片名的内存长度。 | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + + +### GetDeviceType + + +``` +int32_t(* InputController::GetDeviceType) (uint32_t devIndex, uint32_t *deviceType) +``` + +**描述:** + +获取devIndex对应的input设备的类型 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devIndex | Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。 | +| deviceType | 获取的对应设备索引的设备类型,具体参考**InputDevType**。 | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + + +### GetPowerStatus + + +``` +int32_t(* InputController::GetPowerStatus) (uint32_t devIndex, uint32_t *status) +``` + +**描述:** + +获取电源状态 + +在系统休眠或者唤醒时,input服务或电源管理模块获取电源状态,以便驱动IC能正常进入对应的休眠模式。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devIndex | Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。 | +| status | 获取的对应设备索引的电源状态,具体参考**PowerStatus**。 | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus。** + + +### GetVendorName + + +``` +int32_t(* InputController::GetVendorName) (uint32_t devIndex, char *vendorName, uint32_t length) +``` + +**描述:** + +获取devIndex对应的模组厂商名 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devIndex | Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。 | +| vendorName | 获取的对应设备索引的模组厂商名。 | +| length | 保存模组厂商名的内存长度。 | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + + +### RunCapacitanceTest + + +``` +int32_t(* InputController::RunCapacitanceTest) (uint32_t devIndex, uint32_t testType, char *result, uint32_t length) +``` + +**描述:** + +执行容值自检测试 + +启动不同检测场景下的容值自检测试,并获取测试结果,容值自检项由器件厂商自定义, 一般包括RawData测试、 \* 短路检测、开路检测、干扰检测、行列差检测等测试项。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devIndex | Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。 | +| testType | 容值测试的测试类型,具体参考**CapacitanceTest**。 | +| result | 容值测试的结果,成功则输出“SUCCESS”,失败则返回对应的错误提示 。 | +| length | 保存容值测试结果的内存长度。 | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + + +### RunExtraCommand + + +``` +int32_t(* InputController::RunExtraCommand) (uint32_t devIndex, InputExtraCmd *cmd) +``` + +**描述:** + +执行拓展指令 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devIndex | Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。 | +| cmd | 拓展指令数据包,包括指令编码及参数,具体参考**InputExtraCmd**。 | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + + +### SetGestureMode + + +``` +int32_t(* InputController::SetGestureMode) (uint32_t devIndex, uint32_t gestureMode) +``` + +**描述:** + +设置手势模式 + +上层应用开关手势模式,即设置手势模式的对应使能bit + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devIndex | Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。 | +| gestureMode | 手势模式的开关状态 | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + + +### SetPowerStatus + + +``` +int32_t(* InputController::SetPowerStatus) (uint32_t devIndex, uint32_t status) +``` + +**描述:** + +设置电源状态 + +在系统休眠或者唤醒时,input服务或电源管理模块设置电源状态,以使驱动IC能正常进入对应的休眠模式。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devIndex | Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。 | +| status | 设置的电源状态,input服务控制input设备进入resume或者suspend等状态[PowerStatus](_input.md#powerstatus)。 | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 diff --git a/zh-cn/device-dev/api/_input_extra_cmd.md b/zh-cn/device-dev/api/_input_extra_cmd.md new file mode 100644 index 0000000000..56083e65b9 --- /dev/null +++ b/zh-cn/device-dev/api/_input_extra_cmd.md @@ -0,0 +1,51 @@ +# InputExtraCmd + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [cmdCode](#cmdcode) | 指令对应的编码。 | +| [cmdValue](#cmdvalue) | 指令传输的数据。 | + + +## **详细描述** + +扩展指令的数据结构。 + + +## **类成员变量说明** + + +### cmdCode + + +``` +const char* InputExtraCmd::cmdCode +``` + +**描述:** + +指令对应的编码 + + +### cmdValue + + +``` +const char* InputExtraCmd::cmdValue +``` + +**描述:** + +指令传输的数据 diff --git a/zh-cn/device-dev/api/_input_manager.md b/zh-cn/device-dev/api/_input_manager.md new file mode 100644 index 0000000000..e1299baf01 --- /dev/null +++ b/zh-cn/device-dev/api/_input_manager.md @@ -0,0 +1,156 @@ +# InputManager + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [ScanInputDevice](#scaninputdevice) )(DevDesc \*staArr, uint32_t arrLen) | input服务用于扫描所有在线设备。 [更多...](#scaninputdevice) | +| ( [OpenInputDevice](#openinputdevice) )(uint32_t devIndex) | input服务打开对应设备的设备文件 [更多...](#openinputdevice) | +| ( [CloseInputDevice](#closeinputdevice) )(uint32_t devIndex) | input服务关闭对应设备的设备文件 [更多...](#closeinputdevice) | +| ( [GetInputDevice](#getinputdevice) )(uint32_t devIndex, [DeviceInfo](_device_info.md) \*\*devInfo) | input服务获取对应ID的设备信息 [更多...](#getinputdevice) | +| ( [GetInputDeviceList](#getinputdevicelist) )(uint32_t \*devNum, [DeviceInfo](_device_info.md) \*\*devList, uint32_t size) | input服务获取所有input设备列表的设备信息 [更多...](#getinputdevicelist) | + + +## **详细描述** + +提供input设备管理相关的接口。 + +此类接口包含input设备的扫描、打开和关闭、特定设备信息查询,以及所有设备列表信息获取等接口。 + + +## **类成员变量说明** + + +### CloseInputDevice + + +``` +int32_t(* InputManager::CloseInputDevice) (uint32_t devIndex) +``` + +**描述:** + +input服务关闭对应设备的设备文件 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devIndex | Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备 | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + + +### GetInputDevice + + +``` +int32_t(* InputManager::GetInputDevice) (uint32_t devIndex, DeviceInfo **devInfo) +``` + +**描述:** + +input服务获取对应ID的设备信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devIndex | Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。 | +| devInfo | 即devIndex对应设备的设备信息,具体参考**DeviceInfo**。 | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + + +### GetInputDeviceList + + +``` +int32_t(* InputManager::GetInputDeviceList) (uint32_t *devNum, DeviceInfo **devList, uint32_t size) +``` + +**描述:** + +input服务获取所有input设备列表的设备信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devNum | 当前已经注册过的所有input设备的总数。 | +| devInfo | input设备列表所对应的设备信息,具体参考**DeviceInfo**。 | +| size | 即指定deviceList数组对应的元素个数。 | + +返回: + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + + +### OpenInputDevice + + +``` +int32_t(* InputManager::OpenInputDevice) (uint32_t devIndex) +``` + +**描述:** + +input服务打开对应设备的设备文件 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devIndex | Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。 | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + + +### ScanInputDevice + + +``` +int32_t(* InputManager::ScanInputDevice) (DevDesc *staArr, uint32_t arrLen) +``` + +**描述:** + +input服务用于扫描所有在线设备。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| staArr | 存放Input设备扫描信息的数组,信息包含设备索引以及设备类型。 | +| arrLen | staArr数组的长度信息。 | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 diff --git a/zh-cn/device-dev/api/_input_report_event_cb.md b/zh-cn/device-dev/api/_input_report_event_cb.md new file mode 100644 index 0000000000..ae16339487 --- /dev/null +++ b/zh-cn/device-dev/api/_input_report_event_cb.md @@ -0,0 +1,65 @@ +# InputReportEventCb + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [ReportEventPkgCallback](#reporteventpkgcallback) )(const [EventPackage](_event_package.md) \*\*pkgs, uint32_t count, uint32_t devIndex) | 输入事件数据上报的回调函数 [更多...](#reporteventpkgcallback) | +| ( [ReportHotPlugEventCallback](#reporthotplugeventcallback) )(const HotPlugEvent \*event) | 热插拔事件上报的回调函数 [更多...](#reporthotplugeventcallback) | + + +## **详细描述** + +此结构体定义了输入事件回调函数并提供给input服务使用。 + + +## **类成员变量说明** + + +### ReportEventPkgCallback + + +``` +void(* InputReportEventCb::ReportEventPkgCallback) (const EventPackage **pkgs, uint32_t count, uint32_t devIndex) +``` + +**描述:** + +输入事件数据上报的回调函数 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| eventData | 驱动上报的input事件数据。 | +| count | Input事件数据包的个数。 | +| devIndex | Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。 | + + +### ReportHotPlugEventCallback + + +``` +void(* InputReportEventCb::ReportHotPlugEventCallback) (const HotPlugEvent *event) +``` + +**描述:** + +热插拔事件上报的回调函数 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| event | 上报的热插拔事件数据 | diff --git a/zh-cn/device-dev/api/_input_reporter.md b/zh-cn/device-dev/api/_input_reporter.md new file mode 100644 index 0000000000..fa80efaff1 --- /dev/null +++ b/zh-cn/device-dev/api/_input_reporter.md @@ -0,0 +1,132 @@ +# InputReporter + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [RegisterReportCallback](#registerreportcallback) )(uint32_t devIndex, [InputReportEventCb](_input_report_event_cb.md) \*callback) | 注册对应设备的回调函数 [更多...](#registerreportcallback) | +| ( [UnregisterReportCallback](#unregisterreportcallback) )(uint32_t devIndex) | 注销对应设备的回调函数 [更多...](#unregisterreportcallback) | +| ( [RegisterHotPlugCallback](#registerhotplugcallback) )([InputReportEventCb](_input_report_event_cb.md) \*callback) | 注册Input设备的热插拔回调函数 [更多...](#registerhotplugcallback) | +| ( [UnregisterHotPlugCallback](#unregisterhotplugcallback) )(void) | 注销Input设备的热插拔回调函数 [更多...](#unregisterhotplugcallback) | + + +## **详细描述** + +提供input设备数据上报相关的接口。 + +此类接口包含input设备的数据上报回调函数的注册和注销。 + + +## **类成员变量说明** + + +### RegisterHotPlugCallback + + +``` +int32_t(* InputReporter::RegisterHotPlugCallback) (InputReportEventCb *callback) +``` + +**描述:** + +注册Input设备的热插拔回调函数 + +input服务通过此接口注册回调函数到hdi中,所有Input设备由此函数进行热插拔事件上报 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| callback | 回调函数的函数指针 | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + + +### RegisterReportCallback + + +``` +int32_t(* InputReporter::RegisterReportCallback) (uint32_t devIndex, InputReportEventCb *callback) +``` + +**描述:** + +注册对应设备的回调函数 + +input服务通过此接口注册数据回调函数到hdi中,hdi通过此回调函数上报input事件 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devIndex | Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备 | +| callback | 回调函数的函数指针 | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + + +### UnregisterHotPlugCallback + + +``` +int32_t(* InputReporter::UnregisterHotPlugCallback) (void) +``` + +**描述:** + +注销Input设备的热插拔回调函数 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| 无 | - | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 + + +### UnregisterReportCallback + + +``` +int32_t(* InputReporter::UnregisterReportCallback) (uint32_t devIndex) +``` + +**描述:** + +注销对应设备的回调函数 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devIndex | Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备 | + +**返回:** + +Returns INPUT_SUCCESS 表示执行成功。 + +Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 diff --git a/zh-cn/device-dev/api/_layer_alpha.md b/zh-cn/device-dev/api/_layer_alpha.md new file mode 100644 index 0000000000..9dc52678ae --- /dev/null +++ b/zh-cn/device-dev/api/_layer_alpha.md @@ -0,0 +1,27 @@ +# LayerAlpha + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [enGlobalAlpha](_display.md#englobalalpha-12) | 全局alpha使能标志 | +| [enPixelAlpha](_display.md#enpixelalpha-12) | 像素alpha使能标志 | +| [alpha0](_display.md#alpha0-12) | alpha0值,取值范围:[0, 255] | +| [alpha1](_display.md#alpha1-12) | alpha1值,取值范围:[0, 255] | +| [gAlpha](_display.md#galpha) | 全局alpha值,取值范围:[0, 255] | + + +## **详细描述** + +定义图层Alpha信息的结构体。 diff --git a/zh-cn/device-dev/api/_layer_buffer.md b/zh-cn/device-dev/api/_layer_buffer.md new file mode 100644 index 0000000000..179aa36a39 --- /dev/null +++ b/zh-cn/device-dev/api/_layer_buffer.md @@ -0,0 +1,29 @@ +# LayerBuffer + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [fenceId](_display.md#fenceid) | buffer的fence号 | +| [width](_display.md#width-37) | buffer宽度 | +| [height](_display.md#height-37) | buffer高度 | +| [pitch](_display.md#pitch) | 一行数据所占字节数 | +| [pixFormat](_display.md#pixformat-22) | 图层像素格式 | +| [data](_display.md#data) | 图层buffer数据 | +| [hdl](_display.md#hdl) | 图层buffer句柄 | + + +## **详细描述** + +图层Buffer,用于存放图层数据。 diff --git a/zh-cn/device-dev/api/_layer_funcs.md b/zh-cn/device-dev/api/_layer_funcs.md new file mode 100644 index 0000000000..6868d6a838 --- /dev/null +++ b/zh-cn/device-dev/api/_layer_funcs.md @@ -0,0 +1,1267 @@ +# LayerFuncs + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [InitDisplay](#initdisplay) )(uint32_t devId) | 初始化显示设备。 [更多...](#initdisplay) | +| ( [DeinitDisplay](#deinitdisplay) )(uint32_t devId) | 取消初始化显示设备。 [更多...](#deinitdisplay) | +| ( [GetDisplayInfo](#getdisplayinfo) )(uint32_t devId, [DisplayInfo](_display_info.md) \*dispInfo) | 获取显示设备相关信息。 [更多...](#getdisplayinfo) | +| ( [CreateLayer](#createlayer) )(uint32_t devId, const [LayerInfo](_layer_info.md) \*layerInfo, uint32_t \*layerId) | 打开图层。 [更多...](#createlayer) | +| ( [CloseLayer](#closelayer) )(uint32_t devId, uint32_t layerId) | 关闭图层。 [更多...](#closelayer) | +| ( [SetLayerVisible](#setlayervisible) )(uint32_t devId, uint32_t layerId, bool visible) | 设置图层是否可见。 [更多...](#setlayervisible) | +| ( [GetLayerVisibleState](#getlayervisiblestate) )(uint32_t devId, uint32_t layerId, bool \*visible) | 获取图层是否可见状态。 [更多...](#getlayervisiblestate) | +| ( [SetLayerSize](#setlayersize) )(uint32_t devId, uint32_t layerId, [IRect](_i_rect.md) \*rect) | 设置图层大小。 [更多...](#setlayersize) | +| ( [GetLayerSize](#getlayersize) )(uint32_t devId, uint32_t layerId, [IRect](_i_rect.md) \*rect) | 获取图层大小。 [更多...](#getlayersize) | +| ( [SetLayerCrop](#setlayercrop) )(uint32_t devId, uint32_t layerId, [IRect](_i_rect.md) \*rect) | 设置图层裁剪区域。 [更多...](#setlayercrop) | +| ( [SetLayerZorder](#setlayerzorder) )(uint32_t devId, uint32_t layerId, uint32_t zorder) | 设置图层Z轴次序。 [更多...](#setlayerzorder) | +| ( [GetLayerZorder](#getlayerzorder) )(uint32_t devId, uint32_t layerId, uint32_t \*zorder) | 获取图层Z轴次序。 [更多...](#getlayerzorder) | +| ( [SetLayerPreMulti](#setlayerpremulti) )(uint32_t devId, uint32_t layerId, bool preMul) | 设置图层预乘。 [更多...](#setlayerpremulti) | +| ( [GetLayerPreMulti](#getlayerpremulti) )(uint32_t devId, uint32_t layerId, bool \*preMul) | 获取图层预乘标识。 [更多...](#getlayerpremulti) | +| ( [SetLayerAlpha](#setlayeralpha) )(uint32_t devId, uint32_t layerId, [LayerAlpha](_layer_alpha.md) \*alpha) | 设置图层alpha值。 [更多...](#setlayeralpha) | +| ( [GetLayerAlpha](#getlayeralpha) )(uint32_t devId, uint32_t layerId, [LayerAlpha](_layer_alpha.md) \*alpha) | 获取图层alpha值。 [更多...](#getlayeralpha) | +| ( [SetLayerColorKey](#setlayercolorkey) )(uint32_t devId, uint32_t layerId, bool enable, uint32_t key) | 设置图层colorkey属性,在图层叠加时使用。 [更多...](#setlayercolorkey) | +| ( [GetLayerColorKey](#getlayercolorkey) )(uint32_t devId, uint32_t layerId, bool \*enable, uint32_t \*key) | 获取图层colorkey。 [更多...](#getlayercolorkey) | +| ( [SetLayerPalette](#setlayerpalette) )(uint32_t devId, uint32_t layerId, uint32_t \*palette, uint32_t len) | 设置图层调色板。 [更多...](#setlayerpalette) | +| ( [GetLayerPalette](#getlayerpalette) )(uint32_t devId, uint32_t layerId, uint32_t \*palette, uint32_t len) | 获取图层调色板。 [更多...](#getlayerpalette) | +| ( [SetTransformMode](#settransformmode) )(uint32_t devId, uint32_t layerId, [TransformType](_display.md#transformtype) type) | 设置图层变换模式,根据不同的场景设置图层的旋转、缩放、移位等。 [更多...](#settransformmode) | +| ( [SetLayerCompression](#setlayercompression) )(uint32_t devId, uint32_t layerId, int32_t compType) | 设置图层压缩功能 [更多...](#setlayercompression) | +| ( [GetLayerCompression](#getlayercompression) )(uint32_t devId, uint32_t layerId, int32_t \*compType) | 获取图层压缩功能是否打开。 [更多...](#getlayercompression) | +| ( [SetLayerDirtyRegion](#setlayerdirtyregion) )(uint32_t devId, uint32_t layerId, [IRect](_i_rect.md) \*region) | 设置图层刷新区域。 [更多...](#setlayerdirtyregion) | +| ( [GetLayerBuffer](#getlayerbuffer) )(uint32_t devId, uint32_t layerId, [LayerBuffer](_layer_buffer.md) \*buffer) | 获取图层的buffer。 [更多...](#getlayerbuffer) | +| ( [Flush](#flush) )(uint32_t devId, uint32_t layerId, [LayerBuffer](_layer_buffer.md) \*buffer) | 刷新图层。 [更多...](#flush) | +| ( [WaitForVBlank](#waitforvblank) )(uint32_t devId, uint32_t layerId, int32_t timeOut) | 实现等待帧消隐期到来功能。 [更多...](#waitforvblank) | +| ( [SnapShot](#snapshot) )(uint32_t devId, [LayerBuffer](_layer_buffer.md) \*buffer) | 实现抓图功能。 [更多...](#snapshot) | +| ( [SetLayerVisibleRegion](#setlayervisibleregion) )(uint32_t devId, uint32_t layerId, uint32_t num, [IRect](_i_rect.md) \*rect) | 设置一个图层的可见区域 [更多...](#setlayervisibleregion) | +| ( [SetLayerBuffer](#setlayerbuffer) )(uint32_t devId, uint32_t layerId, const BufferHandle \*buffer, int32_t fence) | 设置一个层的缓冲区。 [更多...](#setlayerbuffer) | +| ( [InvokeLayerCmd](#invokelayercmd) )(uint32_t devId, uint32_t layerId, uint32_t cmd,...) | 扩展接口 [更多...](#invokelayercmd) | +| ( [SetLayerCompositionType](#setlayercompositiontype) )(uint32_t devId, uint32_t layerId, [CompositionType](_display.md#compositiontype) type) | 设置客户端期望的组合类型 [更多...](#setlayercompositiontype) | +| ( [SetLayerBlendType](#setlayerblendtype) )(uint32_t devId, uint32_t layerId, [BlendType](_display.md#blendtype) type) | 设置混合类型 [更多...](#setlayerblendtype) | +| ( [SetLayerColorTransform](#setlayercolortransform) )(uint32_t devId, uint32_t layerId, const float \*matrix) | 设置图层当前的颜色转换矩阵。 [更多...](#setlayercolortransform) | +| ( [SetLayerColorDataSpace](#setlayercolordataspace) )(uint32_t devId, uint32_t layerId, [ColorDataSpace](_display.md#colordataspace) colorSpace) | 设置图层的颜色数据空间。 [更多...](#setlayercolordataspace) | +| ( [GetLayerColorDataSpace](#getlayercolordataspace) )(uint32_t devId, uint32_t layerId, [ColorDataSpace](_display.md#colordataspace) \*colorSpace) | 获取图层当前的颜色数据空间。 [更多...](#getlayercolordataspace) | +| ( [SetLayerMetaData](#setlayermetadata) )(uint32_t devId, uint32_t layerId, uint32_t num, const [HDRMetaData](_h_d_r_meta_data.md) \*metaData) | 设置图层的HDRmetaData。 [更多...](#setlayermetadata) | +| ( [SetLayerMetaDataSet](#setlayermetadataset) )(uint32_t devId, uint32_t layerId, [HDRMetadataKey](_display.md#hdrmetadatakey) key, uint32_t num, const uint8_t \*metaData) | 设置图层的metaData set。 [更多...](#setlayermetadataset) | +| ( [GetSupportedPresentTimestamp](#getsupportedpresenttimestamp) )(uint32_t devId, uint32_t layerId, [PresentTimestampType](_display.md#presenttimestamptype) \*type) | 获取图层支持的上屏时间戳类型。 [更多...](#getsupportedpresenttimestamp) | +| ( [GetHwPresentTimestamp](#gethwpresenttimestamp) )(uint32_t devId, uint32_t layerId, [PresentTimestamp](_present_timestamp.md) \*pts) | 获取图层的上屏时间戳信息。 [更多...](#gethwpresenttimestamp) | +| ( [SetLayerTunnelHandle](#setlayertunnelhandle) )(uint32_t devId, uint32_t layerId, ExtDataHandle \*handle) | 设置图层的tunnel句柄。 [更多...](#setlayertunnelhandle) | +| ( [GetLayerReleaseFence](#getlayerreleasefence) )(uint32_t devId, uint32_t layerId, int32_t \*fence) | 获取图层的同步栅栏。 [更多...](#getlayerreleasefence) | + + +## **详细描述** + +显示图层驱动接口结构体,定义显示图层驱动接口函数指针。 + + +## **类成员变量说明** + + +### CloseLayer + + +``` +int32_t(* LayerFuncs::CloseLayer) (uint32_t devId, uint32_t layerId) +``` + +**描述:** + +关闭图层。 + +在完成显示后,如果不在需要使用图层,调用关闭图层接口关闭图层。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +**OpenLayer** + + +### CreateLayer + + +``` +int32_t(* LayerFuncs::CreateLayer) (uint32_t devId, const LayerInfo *layerInfo, uint32_t *layerId) +``` + +**描述:** + +打开图层。 + +GUI在使用图层时,需要先根据图层信息打开图层,打开图层成功可获得图层ID,根据图层ID使用图层各接口。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerInfo | 输入参数,图层信息,上层GUI打开图层时需传递图层信息,包括图层类型,图层大小,像素格式等信息。 | +| layerId | 输入参数,图层ID,打开图层成功后返回给GUI的图层ID,用于标识唯一的图层。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[CloseLayer](#closelayer) + + +### DeinitDisplay + + +``` +int32_t(* LayerFuncs::DeinitDisplay) (uint32_t devId) +``` + +**描述:** + +取消初始化显示设备。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[InitDisplay](#initdisplay) + + +### Flush + + +``` +int32_t(* LayerFuncs::Flush) (uint32_t devId, uint32_t layerId, LayerBuffer *buffer) +``` + +**描述:** + +刷新图层。 + +将buffer显示数据刷新到指定的layerId图层上,实现图像数据显示到屏幕上。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| buffer | 输出参数,待刷新的buffer。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### GetDisplayInfo + + +``` +int32_t(* LayerFuncs::GetDisplayInfo) (uint32_t devId, DisplayInfo *dispInfo) +``` + +**描述:** + +获取显示设备相关信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| dispInfo | 输出参数,显示相关信息。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### GetHwPresentTimestamp + + +``` +int32_t(* LayerFuncs::GetHwPresentTimestamp) (uint32_t devId, uint32_t layerId, PresentTimestamp *pts) +``` + +**描述:** + +获取图层的上屏时间戳信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| layerId | 输入参数,指示需要操作的图层ID。 | +| pts | 输出参数,保存图层的上屏时间戳信息, 由接口实现层进行写入。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### GetLayerAlpha + + +``` +int32_t(* LayerFuncs::GetLayerAlpha) (uint32_t devId, uint32_t layerId, LayerAlpha *alpha) +``` + +**描述:** + +获取图层alpha值。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| alpha | 输出参数,保存获取的图层alpha值。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[SetLayerAlpha](#setlayeralpha) + + +### GetLayerBuffer + + +``` +int32_t(* LayerFuncs::GetLayerBuffer) (uint32_t devId, uint32_t layerId, LayerBuffer *buffer) +``` + +**描述:** + +获取图层的buffer。 + +向buffer中绘图后,调用Flush接口显示到屏幕上。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| buffer | 输出参数,保存获取的图层buffer。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[Flush](#flush) + + +### GetLayerColorDataSpace + + +``` +int32_t(* LayerFuncs::GetLayerColorDataSpace) (uint32_t devId, uint32_t layerId, ColorDataSpace *colorSpace) +``` + +**描述:** + +获取图层当前的颜色数据空间。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| layerId | 输入参数,指示需要操作的图层ID。 | +| colorSpace | 输出参数,保存对应图层的颜色数据空间。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### GetLayerColorKey + + +``` +int32_t(* LayerFuncs::GetLayerColorKey) (uint32_t devId, uint32_t layerId, bool *enable, uint32_t *key) +``` + +**描述:** + +获取图层colorkey。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| enable | 输出参数,保存获取的enable色键使能标识。 | +| key | 输出参数,保存获取的色键值,即颜色值。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[SetLayerColorKey](#setlayercolorkey) + + +### GetLayerCompression + + +``` +int32_t(* LayerFuncs::GetLayerCompression) (uint32_t devId, uint32_t layerId, int32_t *compType) +``` + +**描述:** + +获取图层压缩功能是否打开。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| compType | 输出参数,保存获取的图层压缩功能状态。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[SetLayerCompression](#setlayercompression) + + +### GetLayerPalette + + +``` +int32_t(* LayerFuncs::GetLayerPalette) (uint32_t devId, uint32_t layerId, uint32_t *palette, uint32_t len) +``` + +**描述:** + +获取图层调色板。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| palette | 输出参数,保存获取的图层调色板。 | +| len | 输入参数,调色板长度。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[SetLayerPalette](#setlayerpalette) + + +### GetLayerPreMulti + + +``` +int32_t(* LayerFuncs::GetLayerPreMulti) (uint32_t devId, uint32_t layerId, bool *preMul) +``` + +**描述:** + +获取图层预乘标识。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| preMul | 输出参数,保存获取的图层预乘使能标识。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[SetLayerPreMulti](#setlayerpremulti) + + +### GetLayerReleaseFence + + +``` +int32_t(* LayerFuncs::GetLayerReleaseFence) (uint32_t devId, uint32_t layerId, int32_t *fence) +``` + +**描述:** + +获取图层的同步栅栏。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| layerId | 输入参数,指示需要操作的图层ID。 | +| fence | 输出参数,保存图层的 release fence, 由接口实现层进行写入。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### GetLayerSize + + +``` +int32_t(* LayerFuncs::GetLayerSize) (uint32_t devId, uint32_t layerId, IRect *rect) +``` + +**描述:** + +获取图层大小。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| rect | 输出参数,保存获取的图层大小。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[SetLayerSize](#setlayersize) + + +### GetLayerVisibleState + + +``` +int32_t(* LayerFuncs::GetLayerVisibleState) (uint32_t devId, uint32_t layerId, bool *visible) +``` + +**描述:** + +获取图层是否可见状态。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| visible | 输出参数,保存获取的图层可见状态,true表示图层可见,false表示图层不可见。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[SetLayerVisible](#setlayervisible) + + +### GetLayerZorder + + +``` +int32_t(* LayerFuncs::GetLayerZorder) (uint32_t devId, uint32_t layerId, uint32_t *zorder) +``` + +**描述:** + +获取图层Z轴次序。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| zorder | 输出参数,保存获取的图层Z轴次序,为整数值,取值范围为[0, 255],值越大图层越往上排列。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[SetLayerZorder](#setlayerzorder) + + +### GetSupportedPresentTimestamp + + +``` +int32_t(* LayerFuncs::GetSupportedPresentTimestamp) (uint32_t devId, uint32_t layerId, PresentTimestampType *type) +``` + +**描述:** + +获取图层支持的上屏时间戳类型。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| layerId | 输入参数,指示需要操作的图层ID。 | +| type | 输出参数,保存图层支持的上屏时间戳类型, 由接口实现层进行写入。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### InitDisplay + + +``` +int32_t(* LayerFuncs::InitDisplay) (uint32_t devId) +``` + +**描述:** + +初始化显示设备。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[DeinitDisplay](#deinitdisplay) + + +### InvokeLayerCmd + + +``` +int32_t(* LayerFuncs::InvokeLayerCmd) (uint32_t devId, uint32_t layerId, uint32_t cmd,...) +``` + +**描述:** + +扩展接口 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。 | +| layerId | 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 | +| cmd | 输入参数,表示扩展cmd,用于识别不同的意图。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### SetLayerAlpha + + +``` +int32_t(* LayerFuncs::SetLayerAlpha) (uint32_t devId, uint32_t layerId, LayerAlpha *alpha) +``` + +**描述:** + +设置图层alpha值。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| alpha | 输入参数,待设置的图层 alpha 值。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[GetLayerAlpha](#getlayeralpha) + + +### SetLayerBlendType + + +``` +int32_t(* LayerFuncs::SetLayerBlendType) (uint32_t devId, uint32_t layerId, BlendType type) +``` + +**描述:** + +设置混合类型 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。 | +| layerId | 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 | +| type | 输入参数,指示混合类型。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### SetLayerBuffer + + +``` +int32_t(* LayerFuncs::SetLayerBuffer) (uint32_t devId, uint32_t layerId, const BufferHandle *buffer, int32_t fence) +``` + +**描述:** + +设置一个层的缓冲区。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。 | +| layerId | 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 | +| buffer | 输入参数,指示缓冲区句柄的指针,该指针包含所有用于合成的缓冲区的所有信息。 | +| fence | 输入参数,同步文件的fd。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### SetLayerColorDataSpace + + +``` +int32_t(* LayerFuncs::SetLayerColorDataSpace) (uint32_t devId, uint32_t layerId, ColorDataSpace colorSpace) +``` + +**描述:** + +设置图层的颜色数据空间。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| layerId | 输入参数,指示需要操作的图层ID。 | +| colorSpace | 输入参数,表示需要设置的颜色数据空间。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### SetLayerColorKey + + +``` +int32_t(* LayerFuncs::SetLayerColorKey) (uint32_t devId, uint32_t layerId, bool enable, uint32_t key) +``` + +**描述:** + +设置图层colorkey属性,在图层叠加时使用。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| enable | 输入参数,待设置的色键使能标识。 | +| key | 输入参数,待设置的色键值,即颜色值。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[GetLayerColorKey](#getlayercolorkey) + + +### SetLayerColorTransform + + +``` +int32_t(* LayerFuncs::SetLayerColorTransform) (uint32_t devId, uint32_t layerId, const float *matrix) +``` + +**描述:** + +设置图层当前的颜色转换矩阵。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| layerId | 输入参数,指示需要操作的图层ID。 | +| matrix | 输入参数,表示需要设置的颜色转换模式。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### SetLayerCompositionType + + +``` +int32_t(* LayerFuncs::SetLayerCompositionType) (uint32_t devId, uint32_t layerId, CompositionType type) +``` + +**描述:** + +设置客户端期望的组合类型 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。 | +| layerId | 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 | +| type | 输入参数,指示客户端期望的组合类型。它可能随实现而变化。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### SetLayerCompression + + +``` +int32_t(* LayerFuncs::SetLayerCompression) (uint32_t devId, uint32_t layerId, int32_t compType) +``` + +**描述:** + +设置图层压缩功能 + +在特定场景下,需要对图像数据进行压缩,可设置启动或关闭图层压缩功能。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| compType | 输入参数,图层压缩使能标识。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[GetLayerCompression](#getlayercompression) + + +### SetLayerCrop + + +``` +int32_t(* LayerFuncs::SetLayerCrop) (uint32_t devId, uint32_t layerId, IRect *rect) +``` + +**描述:** + +设置图层裁剪区域。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| rect | 输入参数,待设置的裁剪区域。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### SetLayerDirtyRegion + + +``` +int32_t(* LayerFuncs::SetLayerDirtyRegion) (uint32_t devId, uint32_t layerId, IRect *region) +``` + +**描述:** + +设置图层刷新区域。 + +GUI图形系统绘制好图像数据后,在调用Flush接口刷新屏幕之前需要设置图层刷新区域。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| region | 输入参数,待设置的刷新区域。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### SetLayerMetaData + + +``` +int32_t(* LayerFuncs::SetLayerMetaData) (uint32_t devId, uint32_t layerId, uint32_t num, const HDRMetaData *metaData) +``` + +**描述:** + +设置图层的HDRmetaData。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| layerId | 输入参数,指示需要操作的图层ID。 | +| num | 输入参数,metadata 数组个数。 | +| metaData | 输入参数,表示需要设置的 metadata 数组首地址。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### SetLayerMetaDataSet + + +``` +int32_t(* LayerFuncs::SetLayerMetaDataSet) (uint32_t devId, uint32_t layerId, HDRMetadataKey key, uint32_t num, const uint8_t *metaData) +``` + +**描述:** + +设置图层的metaData set。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| layerId | 输入参数,指示需要操作的图层ID。 | +| key | 输入参数,表示需要设置的 HDRMetadataKey。 | +| num | 输入参数,metadata 数组个数。 | +| metaData | 输入参数,表示需要设置的 metadata 数组首地址, 数据类型为uint8_t。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### SetLayerPalette + + +``` +int32_t(* LayerFuncs::SetLayerPalette) (uint32_t devId, uint32_t layerId, uint32_t *palette, uint32_t len) +``` + +**描述:** + +设置图层调色板。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| palette | 输入参数,待设置的图层调色板。 | +| len | 输入参数,调色板长度。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[GetLayerPalette](#getlayerpalette) + + +### SetLayerPreMulti + + +``` +int32_t(* LayerFuncs::SetLayerPreMulti) (uint32_t devId, uint32_t layerId, bool preMul) +``` + +**描述:** + +设置图层预乘。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| preMul | 输入参数,待设置的图层预乘使能标识,1表示使能图层预乘,0表示不使能图层预乘。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[GetLayerPreMulti](#getlayerpremulti) + + +### SetLayerSize + + +``` +int32_t(* LayerFuncs::SetLayerSize) (uint32_t devId, uint32_t layerId, IRect *rect) +``` + +**描述:** + +设置图层大小。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| rect | 输入参数,待设置的图层大小,单位为像素。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[GetLayerSize](#getlayersize) + + +### SetLayerTunnelHandle + + +``` +int32_t(* LayerFuncs::SetLayerTunnelHandle) (uint32_t devId, uint32_t layerId, ExtDataHandle *handle) +``` + +**描述:** + +设置图层的tunnel句柄。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,指示需要操作的设备ID。 | +| layerId | 输入参数,指示需要操作的图层ID。 | +| handle | 输入参数,表示需要设置的句柄。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### SetLayerVisible + + +``` +int32_t(* LayerFuncs::SetLayerVisible) (uint32_t devId, uint32_t layerId, bool visible) +``` + +**描述:** + +设置图层是否可见。 + +不可见情况下图层不显示在屏幕上,可见情况下图层显示在屏幕上。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| visible | 输入参数,待设置的图层可见标识,设置true表示图层可见,设置false表示图层不可见。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[GetLayerVisibleState](#getlayervisiblestate) + + +### SetLayerVisibleRegion + + +``` +int32_t(* LayerFuncs::SetLayerVisibleRegion) (uint32_t devId, uint32_t layerId, uint32_t num, IRect *rect) +``` + +**描述:** + +设置一个图层的可见区域 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。 | +| layerId | 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 | +| num | 输入参数,指定rect的计数,该区域包含多个 [IRect](_i_rect.md),num表示该区域中有多少个rect区域。 | +| rect | 输出参数,rectes对象的指针。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### SetLayerZorder + + +``` +int32_t(* LayerFuncs::SetLayerZorder) (uint32_t devId, uint32_t layerId, uint32_t zorder) +``` + +**描述:** + +设置图层Z轴次序。 + +图层的Z序值越大,图层越靠上显示。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| zorder | 输入参数,待设置的图层Z序,为整数值,取值范围为[0, 255],值越大图层越往上排列。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + +**参见:** + +[GetLayerZorder](#getlayerzorder) + + +### SetTransformMode + + +``` +int32_t(* LayerFuncs::SetTransformMode) (uint32_t devId, uint32_t layerId, TransformType type) +``` + +**描述:** + +设置图层变换模式,根据不同的场景设置图层的旋转、缩放、移位等。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| type | 输入参数,待设置的图层变换模式。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### SnapShot + + +``` +int32_t(* LayerFuncs::SnapShot) (uint32_t devId, LayerBuffer *buffer) +``` + +**描述:** + +实现抓图功能。 + +本函数将显示设备上的图像数据截图保存到buffer中,用于调试、应用截图等场景。 + +otherwise. + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| buffer | 输出参数,保存截屏的buffer信息。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 + + +### WaitForVBlank + + +``` +int32_t(* LayerFuncs::WaitForVBlank) (uint32_t devId, uint32_t layerId, int32_t timeOut) +``` + +**描述:** + +实现等待帧消隐期到来功能。 + +该函数会让系统等待,直到帧消隐期到来,用于软件和硬件之间的同步。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| devId | 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 | +| layerId | 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 | +| timeOut | 输入参数,超时时间,在设置的超时时间后,没有等到帧消隐期到来则超时返回。 | + +**返回:** + +DISPLAY_SUCCESS 表示执行成功。 + +其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 diff --git a/zh-cn/device-dev/api/_layer_info.md b/zh-cn/device-dev/api/_layer_info.md new file mode 100644 index 0000000000..dec0da93d0 --- /dev/null +++ b/zh-cn/device-dev/api/_layer_info.md @@ -0,0 +1,29 @@ +# LayerInfo + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [width](_display.md#width-27) | 图层宽度 | +| [height](_display.md#height-27) | 图层高度 | +| [type](_display.md#type-13) | 图层类型,包括图形层、视频层和媒体播放模式。 | +| [bpp](_display.md#bpp) | 每像素所占bit数 | +| [pixFormat](_display.md#pixformat-12) | 图层像素格式 | + + +## **详细描述** + +定义图层信息结构体。 + +在创建图层时,需要将LayerInfo传递给创建图层接口,创建图层接口根据图层信息创建相应图层。 diff --git a/zh-cn/device-dev/api/_light.md b/zh-cn/device-dev/api/_light.md new file mode 100644 index 0000000000..086e3992b4 --- /dev/null +++ b/zh-cn/device-dev/api/_light.md @@ -0,0 +1,159 @@ +# Light + + +## **汇总** + + +### 文件 + + | 文件 | 描述 | +| -------- | -------- | +| [light_if.h](light__if_8h.md) | 声明light模块的通用API,可用于获取灯ID、打开或关闭灯、并设置灯光亮度和闪烁模式。 | +| [light_type.h](light_8typeh.md) | 定义灯的数据结构,包括灯ID、灯的模式、灯的闪烁模式和持续时间、灯的状态、灯的效果。 | + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [LightFlashEffect](_light_flash_effect.md) | 定义闪烁参数。 [更多...](_light_flash_effect.md) | +| [LightEffect](_light_effect.md) | 定义灯的效果参数。 [更多...](_light_effect.md) | +| [LightInfo](_light_info.md) | 定义灯的基本信息。 [更多...](_light_info.md) | +| [LightInterface](_light_interface.md) | 定义可以在灯上执行的基本操作。 [更多...](_light_interface.md) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [LightStatus](#lightstatus) { [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref669817133083931,link:zh-cn_topic_0000001295094348.xml#gga7e734c01235aff210cae379b12e53e9da232a2bb4a97420c327e6f3ea0551eba9](#gga7e734c01235aff210cae379b12e53e9da232a2bb4a97420c327e6f3ea0551eba9) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref1922765945083931,link:zh-cn_topic_0000001295094348.xml#gga7e734c01235aff210cae379b12e53e9daa45f0187f0b5768ad0925ded9c89571a](#gga7e734c01235aff210cae379b12e53e9daa45f0187f0b5768ad0925ded9c89571a) = -1, [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref2144622860083931,link:zh-cn_topic_0000001295094348.xml#gga7e734c01235aff210cae379b12e53e9daf0b19776befd37739b12cf23d170ff30](#gga7e734c01235aff210cae379b12e53e9daf0b19776befd37739b12cf23d170ff30) = -2, [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref707352116083931,link:zh-cn_topic_0000001295094348.xml#gga7e734c01235aff210cae379b12e53e9dad2f1173892e1d07a8126c6c35a999a37](#gga7e734c01235aff210cae379b12e53e9dad2f1173892e1d07a8126c6c35a999a37) = -3 } | 枚举灯模块的状态值。 [更多...](#lightstatus) | +| [LightId](#lightid) {   [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref683206926083931,link:zh-cn_topic_0000001295094348.xml#gga8af1cb654f32fb5377425257b28748e5ac983420abafcd5130c932b845974f99b](#gga8af1cb654f32fb5377425257b28748e5ac983420abafcd5130c932b845974f99b) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref850328663083931,link:zh-cn_topic_0000001295094348.xml#gga8af1cb654f32fb5377425257b28748e5af15783cc343be88bf3008341ac0c6625](#gga8af1cb654f32fb5377425257b28748e5af15783cc343be88bf3008341ac0c6625) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref1639689805083931,link:zh-cn_topic_0000001295094348.xml#gga8af1cb654f32fb5377425257b28748e5a0130b68a96276084c65827c34a4e396d](#gga8af1cb654f32fb5377425257b28748e5a0130b68a96276084c65827c34a4e396d) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref1331872722083931,link:zh-cn_topic_0000001295094348.xml#gga8af1cb654f32fb5377425257b28748e5a3b03c358d0573b293fe648cf349e7083](#gga8af1cb654f32fb5377425257b28748e5a3b03c358d0573b293fe648cf349e7083) = 3,   [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref1112243301083931,link:zh-cn_topic_0000001295094348.xml#gga8af1cb654f32fb5377425257b28748e5a25137b2ac5c4e6dc4f5edc47f175e38c](#gga8af1cb654f32fb5377425257b28748e5a25137b2ac5c4e6dc4f5edc47f175e38c) = 4 } | 枚举灯类型 [更多...](#lightid) | +| [LightFlashMode](#lightflashmode) { [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref1338345588083931,link:zh-cn_topic_0000001295094348.xml#ggaacf9823c64514a279833614add26ab5da72520ea2652cf669185239981de8a6f0](#ggaacf9823c64514a279833614add26ab5da72520ea2652cf669185239981de8a6f0) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref1733020795083931,link:zh-cn_topic_0000001295094348.xml#ggaacf9823c64514a279833614add26ab5da3d4dc48f86b6635811e497e5a27f475c](#ggaacf9823c64514a279833614add26ab5da3d4dc48f86b6635811e497e5a27f475c) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref444541071083931,link:zh-cn_topic_0000001295094348.xml#ggaacf9823c64514a279833614add26ab5da87ae168f921bbab98e18bf80f7d9b8d5](#ggaacf9823c64514a279833614add26ab5da87ae168f921bbab98e18bf80f7d9b8d5) = 2 } | 枚举灯的模式 [更多...](#lightflashmode) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [NewLightInterfaceInstance](#newlightinterfaceinstance) (void) | 创建LightInterface实例。 [更多...](#newlightinterfaceinstance) | +| [FreeLightInterfaceInstance](#freelightinterfaceinstance) (void) | 释放LightInterface实例和相关资源。 [更多...](#freelightinterfaceinstance) | + + +## **详细描述** + +灯模块对灯服务提供通用的接口能力。 + +灯模块为灯服务提供通用的接口去访问灯驱动。 服务获取灯驱动对象或代理后,可以调用相关的APIs接口获取灯信息、打开或关闭灯,并根据灯ID设置灯闪烁模式。 + +**Since:** + +3.1 + + +## **枚举类型说明** + + +### LightFlashMode + + +``` +enum LightFlashMode +``` + +**描述:** + +枚举灯的模式 + + | 枚举值 | 描述 | +| -------- | -------- | +| LIGHT_FLASH_NONE | 常亮。 | +| LIGHT_FLASH_TIMED | 闪烁。 | +| LIGHT_FLASH_BUTT | 无效模式。 | + + +### LightId + + +``` +enum LightId +``` + +**描述:** + +枚举灯类型 + + | 枚举值 | 描述 | +| -------- | -------- | +| LIGHT_ID_NONE | 未知ID。 | +| LIGHT_ID_BATTERY | 电源指示灯。 | +| LIGHT_ID_NOTIFICATIONS | 通知灯。 | +| LIGHT_ID_ATTENTION | 报警灯。 | +| LIGHT_ID_BUTT | 无效ID。 | + + +### LightStatus + + +``` +enum LightStatus +``` + +**描述:** + +枚举灯模块的状态值。 + + | 枚举值 | 描述 | +| -------- | -------- | +| LIGHT_SUCCESS | 操作成功。 | +| LIGHT_NOT_SUPPORT | 灯ID不支持。 | +| LIGHT_NOT_FLASH | 设置闪烁不支持。 | +| LIGHT_NOT_BRIGHTNESS | 设置亮度不支持。 | + + +## **函数说明** + + +### FreeLightInterfaceInstance() + + +``` +int32_t FreeLightInterfaceInstance (void ) +``` + +**描述:** + +释放LightInterface实例和相关资源。 + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +3.1 + + +### NewLightInterfaceInstance() + + +``` +const struct LightInterface* NewLightInterfaceInstance (void ) +``` + +**描述:** + +创建LightInterface实例。 + +创建的LightInterface实例可用于执行相关的灯控制操作。 + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +3.1 diff --git a/zh-cn/device-dev/api/_light_effect.md b/zh-cn/device-dev/api/_light_effect.md new file mode 100644 index 0000000000..7dd78f2c3e --- /dev/null +++ b/zh-cn/device-dev/api/_light_effect.md @@ -0,0 +1,57 @@ +# LightEffect + + +## **概述** + +**所属模块:** + +[Light](_light.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [lightBrightness](#lightbrightness) | 亮度值。 | +| [flashEffect](#flasheffect) | 闪烁模式。 | + + +## **详细描述** + +定义灯的效果参数。 + +参数包括亮度和闪烁模式。 + +**Since:** + +3.1 + + +## **类成员变量说明** + + +### flashEffect + + +``` +struct LightFlashEffect LightEffect::flashEffect +``` + +**描述:** + +闪烁模式。详见[LightFlashEffect](_light_flash_effect.md)。 + + +### lightBrightness + + +``` +int32_t LightEffect::lightBrightness +``` + +**描述:** + +亮度值:Bits 24–31为扩展位,Bits 16–23为红色,bits 8–15为绿色,bits 0–7为蓝色。 如果字节段不等于0,指示打开相应颜色的灯。 diff --git a/zh-cn/device-dev/api/_light_flash_effect.md b/zh-cn/device-dev/api/_light_flash_effect.md new file mode 100644 index 0000000000..9a8a9123a9 --- /dev/null +++ b/zh-cn/device-dev/api/_light_flash_effect.md @@ -0,0 +1,70 @@ +# LightFlashEffect + + +## **概述** + +**所属模块:** + +[Light](_light.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [flashMode](#flashmode) | 闪烁模式。 | +| [onTime](#ontime) | 表示灯在闪烁期间点亮时持续的时间(毫秒)。 | +| [offTime](#offtime) | 表示灯在闪烁期间熄灭时持续的时间(毫秒)。 | + + +## **详细描述** + +定义闪烁参数。 + +这些参数包括闪烁模式以及闪烁期间指示灯的打开和关闭时间。 + +**Since:** + +3.1 + + +## **类成员变量说明** + + +### flashMode + + +``` +int32_t LightFlashEffect::flashMode +``` + +**描述:** + +闪烁模式,详见[LightFlashMode](_light.md#lightflashmode)。 + + +### offTime + + +``` +int32_t LightFlashEffect::offTime +``` + +**描述:** + +表示灯在闪烁期间熄灭时持续的时间(毫秒)。 + + +### onTime + + +``` +int32_t LightFlashEffect::onTime +``` + +**描述:** + +表示灯在闪烁期间点亮时持续的时间(毫秒)。 diff --git a/zh-cn/device-dev/api/_light_info.md b/zh-cn/device-dev/api/_light_info.md new file mode 100644 index 0000000000..20d8387e71 --- /dev/null +++ b/zh-cn/device-dev/api/_light_info.md @@ -0,0 +1,57 @@ +# LightInfo + + +## **概述** + +**所属模块:** + +[Light](_light.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [lightId](#lightid) | 灯ID | +| [reserved](#reserved) | 自定义扩展信息 | + + +## **详细描述** + +定义灯的基本信息。 + +基本的灯信息包括灯ID和自定义扩展信息。 + +**Since:** + +3.1 + + +## **类成员变量说明** + + +### lightId + + +``` +uint32_t LightInfo::lightId +``` + +**描述:** + +灯ID,详见[LightId](_light.md#lightid)。 + + +### reserved + + +``` +int32_t LightInfo::reserved +``` + +**描述:** + +自定义扩展信息。 diff --git a/zh-cn/device-dev/api/_light_interface.md b/zh-cn/device-dev/api/_light_interface.md new file mode 100644 index 0000000000..2c966f0a5e --- /dev/null +++ b/zh-cn/device-dev/api/_light_interface.md @@ -0,0 +1,108 @@ +# LightInterface + + +## **概述** + +**所属模块:** + +[Light](_light.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [GetLightInfo](#getlightinfo) )([out] struct [LightInfo](_light_info.md) \*\*lightInfo, [out] uint32_t \*count) | 获取当前系统中所有类型的灯信息。 [更多...](#getlightinfo) | +| ( [TurnOnLight](#turnonlight) )([in] uint32_t lightId, [in] struct [LightEffect](_light_effect.md) \*effect) | 根据指定的灯ID打开列表中的可用灯。 [更多...](#turnonlight) | +| ( [TurnOffLight](#turnofflight) )([in] uint32_t lightId) | 根据指定的灯ID关闭列表中的可用灯。 [更多...](#turnofflight) | + + +## **详细描述** + +定义可以在灯上执行的基本操作。 + +操作包括获取灯的信息、打开或关闭灯、设置灯的亮度或闪烁模式。 + + +## **类成员变量说明** + + +### GetLightInfo + + +``` +int32_t(* LightInterface::GetLightInfo) ([out] struct LightInfo **lightInfo,[out] uint32_t *count) +``` + +**描述:** + +获取当前系统中所有类型的灯信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| lightInfo | 表示指向灯信息的二级指针,详见[LightInfo](_light_info.md)。 | +| count | 表示指向灯数量的指针。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### TurnOffLight + + +``` +int32_t(* LightInterface::TurnOffLight) ([in] uint32_t lightId) +``` + +**描述:** + +根据指定的灯ID关闭列表中的可用灯。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| lightId | 表示灯ID,详见[LightId](_light.md#lightid)。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### TurnOnLight + + +``` +int32_t(* LightInterface::TurnOnLight) ([in] uint32_t lightId,[in] struct LightEffect *effect) +``` + +**描述:** + +根据指定的灯ID打开列表中的可用灯。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| lightId | 表示灯ID,详见[LightId](_light.md#lightid)。 | +| effect | 表示指向灯效果的指针,如果lightbrightness字段为0时, 灯的亮度根据HCS配置的默认亮度进行设置,详见[LightEffect](_light_effect.md)。 | + +**返回:** + +如果操作成功,则返回0。 + +如果不支持灯ID,则返回-1。 + +如果不支持闪烁设置,则返回-2。 + +如果不支持亮度设置,则返回3。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md new file mode 100644 index 0000000000..955b58092b --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md @@ -0,0 +1,24 @@ +# OHOS::Camera::CaptureEndedInfo + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [streamId_](_camera.md#streamid-34) | 捕获的流ID。 | +| [frameCount_](_camera.md#framecount) | 捕获结束时已经抓取的帧数。 | + + +## **详细描述** + +捕获结束相关信息,用于捕获结束回调 **OnCaptureEnded**。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_error_info.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_error_info.md new file mode 100644 index 0000000000..fed70cf0c2 --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_error_info.md @@ -0,0 +1,24 @@ +# OHOS::Camera::CaptureErrorInfo + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [streamId_](_camera.md#streamid-44) | 流ID。 | +| [error_](_camera.md#error) | 错误类型。 | + + +## **详细描述** + +流错误信息,用于回调[OnCaptureError](_camera.md#oncaptureerror)。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_info.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_info.md new file mode 100644 index 0000000000..d37ee91131 --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_info.md @@ -0,0 +1,25 @@ +# OHOS::Camera::CaptureInfo + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [streamIds_](_camera.md#streamids) | 捕获的流ID集合。 | +| [captureSetting_](_camera.md#capturesetting) | 捕获的配置信息。 | +| [enableShutterCallback_](_camera.md#enableshuttercallback) | 使能捕获回调,每一次捕获后都会触发 **OnFrameShutter**。 | + + +## **详细描述** + +捕获请求的相关信息。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_device.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_device.md new file mode 100644 index 0000000000..7000a726a8 --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_device.md @@ -0,0 +1,30 @@ +# OHOS::Camera::ICameraDevice + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| **DECLARE_INTERFACE_DESCRIPTOR** (u"HDI.Camera.V1_0.Device") | IPC通信token校验。 | +| [GetStreamOperator](_camera.md#getstreamoperator) (const OHOS::sptr< [IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md) > &callback, OHOS::sptr< [IStreamOperator](_o_h_o_s_1_1_camera_1_1_i_stream_operator.md) > &streamOperator)=0 | 获取流操作句柄。 [更多...](_camera.md#getstreamoperator) | +| [UpdateSettings](_camera.md#updatesettings) (const std::shared_ptr< CameraSetting > &settings)=0 | 更新设备控制参数。 [更多...](_camera.md#updatesettings) | +| [SetResultMode](_camera.md#setresultmode) (const [ResultCallbackMode](_camera.md#resultcallbackmode) &mode)=0 | 设置metadata上报模式,逐帧上报还是设备状态变化时上报。 [更多...](_camera.md#setresultmode) | +| [GetEnabledResults](_camera.md#getenabledresults) (std::vector< MetaType > &results)=0 | 查询使能的metadata。 [更多...](_camera.md#getenabledresults) | +| [EnableResult](_camera.md#enableresult) (const std::vector< MetaType > &results)=0 | 打开metadata上报开关。 [更多...](_camera.md#enableresult) | +| [DisableResult](_camera.md#disableresult) (const std::vector< MetaType > &results)=0 | 关闭metadata上报开关。 [更多...](_camera.md#disableresult) | +| [Close](_camera.md#close) ()=0 | 关闭Camera设备。 [更多...](_camera.md#close) | + + +## **详细描述** + +Camera设备操作。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md new file mode 100644 index 0000000000..4a7f16ecc6 --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md @@ -0,0 +1,25 @@ +# OHOS::Camera::ICameraDeviceCallback + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| **DECLARE_INTERFACE_DESCRIPTOR** (u"HDI.Camera.V1_0.DeviceCallback") | IPC通信token校验。 | +| [OnError](_camera.md#onerror) ([ErrorType](_camera.md#errortype) type, int32_t errorCode)=0 | 设备发生错误时调用,由调用者实现,用于返回错误信息给调用者。 [更多...](_camera.md#onerror) | +| [OnResult](_camera.md#onresult) (uint64_t timestamp, const std::shared_ptr< CameraMetadata > &result)=0 | 上报camera设备相关的metadata的回调,上报方式查看 [SetResultMode](_camera.md#setresultmode)。 [更多...](_camera.md#onresult) | + + +## **详细描述** + +Camera设备操作回调。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_host.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_host.md new file mode 100644 index 0000000000..a77249e55b --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_host.md @@ -0,0 +1,35 @@ +# OHOS::Camera::ICameraHost + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| **DECLARE_INTERFACE_DESCRIPTOR** (u"HDI.Camera.V1_0.Host") | IPC通信token校验。 | +| [SetCallback](_camera.md#setcallback) (const OHOS::sptr< [ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md) > &callback)=0 | 设置ICameraHost回调接口,回调函数参考 [ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md)。 [更多...](_camera.md#setcallback) | +| [GetCameraIds](_camera.md#getcameraids) (std::vector< std::string > &cameraIds)=0 | 获取当前可用的Camera设备ID列表。 [更多...](_camera.md#getcameraids) | +| [GetCameraAbility](_camera.md#getcameraability) (const std::string &cameraId, std::shared_ptr< CameraAbility > &ability)=0 | 获取Camera设备能力集合。 [更多...](_camera.md#getcameraability) | +| [OpenCamera](_camera.md#opencamera) (const std::string &cameraId, const OHOS::sptr< [ICameraDeviceCallback](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md) > &callback, OHOS::sptr< [ICameraDevice](_o_h_o_s_1_1_camera_1_1_i_camera_device.md) > &device)=0 | 打开Camera设备。 [更多...](_camera.md#opencamera) | +| [SetFlashlight](_camera.md#setflashlight) (const std::string &cameraId, bool &isEnable)=0 | 打开或关闭闪光灯。 [更多...](_camera.md#setflashlight) | + + +### 静态 Public 成员函数 + + | 静态 Public 成员函数 | 描述 | +| -------- | -------- | +| [Get](_camera.md#get) (const char \*serviceName) | 获取ICameraHost实例。 [更多...](_camera.md#get) | + + +## **详细描述** + +Camera服务的管理类。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md new file mode 100644 index 0000000000..7a0885b50d --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md @@ -0,0 +1,26 @@ +# OHOS::Camera::ICameraHostCallback + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| **DECLARE_INTERFACE_DESCRIPTOR** (u"HDI.Camera.V1_0.HostCallback") | IPC通信token校验。 | +| [OnCameraStatus](_camera.md#oncamerastatus) (const std::string &cameraId, [CameraStatus](_camera.md#camerastatus) status)=0 | 用于Camera设备状态变化时上报状态信息给调用者。 [更多...](_camera.md#oncamerastatus) | +| [OnFlashlightStatus](_camera.md#onflashlightstatus) (const std::string &cameraId, [FlashlightStatus](_camera.md#flashlightstatus) status)=0 | 用于在闪光灯状态变化时上报状态信息给调用者。 [更多...](_camera.md#onflashlightstatus) | +| [OnCameraEvent](_camera.md#oncameraevent) (const std::string &cameraId, [CameraEvent](_camera.md#cameraevent) event)=0 | 在相机事件发生时调用。 [更多...](_camera.md#oncameraevent) | + + +## **详细描述** + +Camera服务的管理回调。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md new file mode 100644 index 0000000000..f8793d89a4 --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md @@ -0,0 +1,26 @@ +# OHOS::Camera::IOfflineStreamOperator + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| **DECLARE_INTERFACE_DESCRIPTOR** (u"HDI.Camera.V1_0.OfflineStreamOperator") | IPC通信token校验。 | +| [CancelCapture](_camera.md#cancelcapture-12) (int captureId)=0 | 取消捕获请求。 [更多...](_camera.md#cancelcapture-12) | +| [ReleaseStreams](_camera.md#releasestreams-12) (const std::vector< int > &streamIds)=0 | 释放离线流。 [更多...](_camera.md#releasestreams-12) | +| [Release](_camera.md#release) ()=0 | 释放所有离线流。 [更多...](_camera.md#release) | + + +## **详细描述** + +离线流的操作类。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md new file mode 100644 index 0000000000..b38ca78892 --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md @@ -0,0 +1,33 @@ +# OHOS::Camera::IStreamOperator + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| **DECLARE_INTERFACE_DESCRIPTOR** (u"HDI.Camera.V1_0.StreamOperator") | IPC通信token校验。 | +| [IsStreamsSupported](_camera.md#isstreamssupported) ([OperationMode](_camera.md#operationmode) mode, const std::shared_ptr< CameraMetadata > &modeSetting, const std::vector< std::shared_ptr< [StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md) >> &info, [StreamSupportType](_camera.md#streamsupporttype) &type)=0 | 查询是否支持添加参数对应的流 [更多...](_camera.md#isstreamssupported) | +| [CreateStreams](_camera.md#createstreams) (const std::vector< std::shared_ptr< [StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md) >> &streamInfos)=0 | 创建流。 [更多...](_camera.md#createstreams) | +| [ReleaseStreams](_camera.md#releasestreams-22) (const std::vector< int > &streamIds)=0 | 释放流。 [更多...](_camera.md#releasestreams-22) | +| [CommitStreams](_camera.md#commitstreams) ([OperationMode](_camera.md#operationmode) mode, const std::shared_ptr< CameraMetadata > &modeSetting)=0 | 配置流。 [更多...](_camera.md#commitstreams) | +| [GetStreamAttributes](_camera.md#getstreamattributes) (std::vector< std::shared_ptr< [StreamAttribute](_o_h_o_s_1_1_camera_1_1_stream_attribute.md) >> &attributes)=0 | 获取流的属性。 [更多...](_camera.md#getstreamattributes) | +| [AttachBufferQueue](_camera.md#attachbufferqueue) (int streamId, const OHOS::sptr< OHOS::IBufferProducer > &producer)=0 | 绑定生产者句柄和指定流。 [更多...](_camera.md#attachbufferqueue) | +| [DetachBufferQueue](_camera.md#detachbufferqueue) (int streamId)=0 | 解除生产者句柄和指定流的绑定关系。 [更多...](_camera.md#detachbufferqueue) | +| [Capture](_camera.md#capture) (int captureId, const std::shared_ptr< [CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md) > &info, bool isStreaming)=0 | 捕获图像。 [更多...](_camera.md#capture) | +| [CancelCapture](_camera.md#cancelcapture-22) (int captureId)=0 | 取消捕获。 [更多...](_camera.md#cancelcapture-22) | +| [ChangeToOfflineStream](_camera.md#changetoofflinestream) (const std::vector< int > &streamIds, OHOS::sptr< [IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md) > &callback, OHOS::sptr< [IOfflineStreamOperator](_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md) > &offlineOperator)=0 | 将指定流转换成离线流。 [更多...](_camera.md#changetoofflinestream) | + + +## **详细描述** + +流的操作类。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md new file mode 100644 index 0000000000..4935fd6e23 --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md @@ -0,0 +1,27 @@ +# OHOS::Camera::IStreamOperatorCallback + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| **DECLARE_INTERFACE_DESCRIPTOR** (u"HDI.Camera.V1_0.StreamOperatorCallback") | IPC通信token校验。 | +| [OnCaptureStarted](_camera.md#oncapturestarted) (int32_t captureId, const std::vector< int32_t > &streamIds)=0 | 捕获开始回调,在捕获开始时调用。 [更多...](_camera.md#oncapturestarted) | +| [OnCaptureEnded](_camera.md#oncaptureended) (int32_t captureId, const std::vector< std::shared_ptr< [CaptureEndedInfo](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md) >> &infos)=0 | 捕获结束回调,在捕获结束时调用。 [更多...](_camera.md#oncaptureended) | +| [OnCaptureError](_camera.md#oncaptureerror) (int32_t captureId, const std::vector< std::shared_ptr< [CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md) >> &infos)=0 | 捕获错误回调,在捕获过程中发生错误时调用。 [更多...](_camera.md#oncaptureerror) | +| [OnFrameShutter](_camera.md#onframeshutter) (int32_t captureId, const std::vector< int32_t > &streamIds, uint64_t timestamp)=0 | 帧捕获回调。 [更多...](_camera.md#onframeshutter) | + + +## **详细描述** + +流的操作回调类。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_stream_attribute.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_stream_attribute.md new file mode 100644 index 0000000000..568e09e49d --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_stream_attribute.md @@ -0,0 +1,31 @@ +# OHOS::Camera::StreamAttribute + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [streamId_](_camera.md#streamid-24) | 流的ID,用于在设备内唯一标识一条流。 | +| [width_](_camera.md#width-22) | 图像宽度。 | +| [height_](_camera.md#height-22) | 图像高度。 | +| [overrideFormat_](_camera.md#overrideformat) | 重写的图像格式。 | +| [overrideDatasapce_](_camera.md#overridedataspace) | 重写的图像颜色空间 | +| [producerUsage_](_camera.md#producerusage) | 重写后的生产者的使用方式。 | +| [producerBufferCount_](_camera.md#producerbuffercount) | 重写后的生产者缓存数量。 | +| [maxBatchCaptureCount_](_camera.md#maxbatchcapturecount) | 连拍支持的最大捕获帧数量。 | +| [maxCaptureCount_](_camera.md#maxcapturecount) | 最大的并发捕获请求个数,默认为1。 | + + +## **详细描述** + +流的属性。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_stream_info.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_stream_info.md new file mode 100644 index 0000000000..f258c8e393 --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_stream_info.md @@ -0,0 +1,32 @@ +# OHOS::Camera::StreamInfo + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [streamId_](_camera.md#streamid-14) | 流的ID,用于在设备内唯一标识一条流。 | +| [width_](_camera.md#width-12) | 图像宽度。 | +| [height_](_camera.md#height-12) | 图像高度。 | +| [format_](_camera.md#format) | 图像格式。 | +| [datasapce_](_camera.md#dataspace) | 图像颜色空间。 | +| [intent_](_camera.md#intent) | 流类型。 | +| [tunneledMode_](_camera.md#tunneledmode) | 隧道模式,值为true时开启,false关闭。 | +| [bufferQueue_](_camera.md#bufferqueue) | 图形提供的生产者句柄。 | +| [minFrameDuration_](_camera.md#minframeduration) | 最小帧间隔。 | +| [encodeType_](_camera.md#encodetype) | 编码类型。 | + + +## **详细描述** + +流信息,用于创建流时传入相关的配置参数。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md new file mode 100644 index 0000000000..0ae62b90c8 --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md @@ -0,0 +1,25 @@ +# OHOS::USB::USBDeviceInfo + + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [status](_u_s_b.md#status) | USB设备状态 | +| [busNum](_u_s_b.md#busnum-12) | USB总线编号 | +| [devNum](_u_s_b.md#devnum) | USB设备编号 | + + +## **详细描述** + +USB设备信息。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md new file mode 100644 index 0000000000..545ea45988 --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md @@ -0,0 +1,27 @@ +# OHOS::USB::UsbCtrlTransfer + + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [requestType](_u_s_b.md#requesttype) | 请求类型 | +| [requestCmd](_u_s_b.md#requestcmd) | 请求命令字 | +| [value](_u_s_b.md#value) | 请求值 | +| [index](_u_s_b.md#index) | 索引 | +| [timeout](_u_s_b.md#timeout) | 超时时间 | + + +## **详细描述** + +USB控制传输。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md new file mode 100644 index 0000000000..5df0bae75c --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md @@ -0,0 +1,24 @@ +# OHOS::USB::UsbDev + + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [busNum](_u_s_b.md#busnum-22) | USB总线编号 | +| [devAddr](_u_s_b.md#devaddr) | USB设备地址 | + + +## **详细描述** + +USB设备。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md new file mode 100644 index 0000000000..f53374d6fe --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md @@ -0,0 +1,28 @@ +# OHOS::USB::UsbInfo + + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| [setDevInfoStatus](_u_s_b.md#setdevinfostatus) (int32_t status) | 设置USB设备状态。 [更多...](_u_s_b.md#setdevinfostatus) | +| [setDevInfoBusNum](_u_s_b.md#setdevinfobusnum) (int32_t busNum) | 设置USB总线编号。 [更多...](_u_s_b.md#setdevinfobusnum) | +| [setDevInfoDevNum](_u_s_b.md#setdevinfodevnum) (int32_t devNum) | 设置USB设备编号。 [更多...](_u_s_b.md#setdevinfodevnum) | +| [getDevInfoStatus](_u_s_b.md#getdevinfostatus) () const | 获取USB设备状态。 [更多...](_u_s_b.md#getdevinfostatus) | +| [getDevInfoBusNum](_u_s_b.md#getdevinfobusnum) () const | 获取USB总线编号。 [更多...](_u_s_b.md#getdevinfobusnum) | +| [getDevInfoDevNum](_u_s_b.md#getdevinfodevnum) () const | 获取USB设备编号。 [更多...](_u_s_b.md#getdevinfodevnum) | + + +## **详细描述** + +USB设备信息类。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md new file mode 100644 index 0000000000..e58adfe5cd --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md @@ -0,0 +1,24 @@ +# OHOS::USB::UsbPipe + + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [interfaceId](_u_s_b.md#interfaceid) | USB设备接口ID | +| [endpointId](_u_s_b.md#endpointid) | USB设备端点ID | + + +## **详细描述** + +管道信息。 diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md new file mode 100644 index 0000000000..d20a86b90e --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md @@ -0,0 +1,57 @@ +# OHOS::USB::UsbdClient + + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| [OpenDevice](_u_s_b.md#opendevice) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev) | 打开设备,建立连接。 [更多...](_u_s_b.md#opendevice) | +| [CloseDevice](_u_s_b.md#closedevice) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev) | 关闭设备,释放与设备相关的所有系统资源。 [更多...](_u_s_b.md#closedevice) | +| [GetDeviceDescriptor](_u_s_b.md#getdevicedescriptor) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, std::vector< uint8_t > &descriptor) | 获取设备描述符。 [更多...](_u_s_b.md#getdevicedescriptor) | +| [GetStringDescriptor](_u_s_b.md#getstringdescriptor) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, uint8_t descId, std::vector< uint8_t > &descriptor) | 根据String ID获取设备的字符串描述符。 [更多...](_u_s_b.md#getstringdescriptor) | +| [GetConfigDescriptor](_u_s_b.md#getconfigdescriptor) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, uint8_t descId, std::vector< uint8_t > &descriptor) | 根据config ID获取设备的配置描述符config。 [更多...](_u_s_b.md#getconfigdescriptor) | +| [GetRawDescriptor](_u_s_b.md#getrawdescriptor) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, std::vector< uint8_t > &descriptor) | 获取原始描述符。 [更多...](_u_s_b.md#getrawdescriptor) | +| [GetFileDescriptor](_u_s_b.md#getfiledescriptor) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, int32_t &fd) | 获取文件描述符。 [更多...](_u_s_b.md#getfiledescriptor) | +| [SetConfig](_u_s_b.md#setconfig) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, uint8_t configIndex) | 设置当前的config信息。 [更多...](_u_s_b.md#setconfig) | +| [GetConfig](_u_s_b.md#getconfig) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, uint8_t &configIndex) | 获取当前的config信息。 [更多...](_u_s_b.md#getconfig) | +| [ClaimInterface](_u_s_b.md#claiminterface) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, uint8_t interfaceid, uint8_t force) | 打开接口,并声明独占接口,必须在数据传输前执行。 [更多...](_u_s_b.md#claiminterface) | +| [ReleaseInterface](_u_s_b.md#releaseinterface) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, uint8_t interfaceid) | 关闭接口,释放接口的占用,在停止数据传输后执行。 [更多...](_u_s_b.md#releaseinterface) | +| [SetInterface](_u_s_b.md#setinterface) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, uint8_t interfaceid, uint8_t altIndex) | 设置指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。 [更多...](_u_s_b.md#setinterface) | +| [BulkTransferRead](_u_s_b.md#bulktransferread) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, int32_t timeout, std::vector< uint8_t > &data) | 在给定端点上执行批量数据读取,返回读取的数据和长度,端点方向必须为数据读取,可以设置超时时间。 [更多...](_u_s_b.md#bulktransferread) | +| [BulkTransferWrite](_u_s_b.md#bulktransferwrite) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, int32_t timeout, const std::vector< uint8_t > &data) | 在给定端点上执行批量数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 [更多...](_u_s_b.md#bulktransferwrite) | +| [ControlTransfer](_u_s_b.md#controltransfer) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbCtrlTransfer](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md) &ctrl, std::vector< uint8_t > &data) | 对此设备执行端点零的控制事务,传输方向由请求类型决定。 如果requestType& USB_ENDPOINT_DIR_MASK是USB_DIR_OUT ,则传输是写入,如果是USB_DIR_IN ,则传输是读取。 [更多...](_u_s_b.md#controltransfer) | +| [InterruptTransferRead](_u_s_b.md#interrupttransferread) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, int32_t timeout, std::vector< uint8_t > &data) | 在给定端点上执行中断数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 [更多...](_u_s_b.md#interrupttransferread) | +| [InterruptTransferWrite](_u_s_b.md#interrupttransferwrite) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, int32_t timeout, std::vector< uint8_t > &data) | 在给定端点上执行中断数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 [更多...](_u_s_b.md#interrupttransferwrite) | +| [IsoTransferRead](_u_s_b.md#isotransferread) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, int32_t timeout, std::vector< uint8_t > &data) | 在给定端点上执行等时数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 [更多...](_u_s_b.md#isotransferread) | +| [IsoTransferWrite](_u_s_b.md#isotransferwrite) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, int32_t timeout, std::vector< uint8_t > &data) | 在给定端点上执行等时数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 [更多...](_u_s_b.md#isotransferwrite) | +| [RequestQueue](_u_s_b.md#requestqueue) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, const std::vector< uint8_t > &clientData, const std::vector< uint8_t > &buffer) | 将指定的端点进行异步数据发送或者接收请求,数据传输方向由端点方向决定。 [更多...](_u_s_b.md#requestqueue) | +| [RequestWait](_u_s_b.md#requestwait) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, std::vector< uint8_t > &clientData, std::vector< uint8_t > &buffer, int32_t timeout) | 等待RequestQueue异步请求的操作结果。 [更多...](_u_s_b.md#requestwait) | +| [RequestCancel](_u_s_b.md#requestcancel) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe) | 取消待处理的数据请求。 [更多...](_u_s_b.md#requestcancel) | +| [GetCurrentFunctions](_u_s_b.md#getcurrentfunctions) (int32_t &funcs) | 获取从设备支持的功能列表(按位域表示)(从设备)。 [更多...](_u_s_b.md#getcurrentfunctions) | +| [SetCurrentFunctions](_u_s_b.md#setcurrentfunctions) (int32_t funcs) | 设置从设备支持的功能列表(按位域表示)(从设备)。 [更多...](_u_s_b.md#setcurrentfunctions) | +| [SetPortRole](_u_s_b.md#setportrole) (int32_t portId, int32_t powerRole, int32_t dataRole) | 设置port端口的角色。 [更多...](_u_s_b.md#setportrole) | +| [QueryPort](_u_s_b.md#queryport) (int32_t &portId, int32_t &powerRole, int32_t &dataRole, int32_t &mode) | 查询port端口的当前设置。 [更多...](_u_s_b.md#queryport) | +| [BindUsbdSubscriber](_u_s_b.md#bindusbdsubscriber) (const sptr< [UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md) > &subscriber) | 绑定订阅者。 [更多...](_u_s_b.md#bindusbdsubscriber) | +| [UnbindUsbdSubscriber](_u_s_b.md#unbindusbdsubscriber) (const sptr< [UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md) > &subscriber) | 解绑订阅者。 [更多...](_u_s_b.md#unbindusbdsubscriber) | +| [RegBulkCallback](_u_s_b.md#regbulkcallback) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, const sptr< IRemoteObject > &cb) | 注册批量传输异步回调函数。 [更多...](_u_s_b.md#regbulkcallback) | +| [UnRegBulkCallback](_u_s_b.md#unregbulkcallback) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe) | 注销批量传输异步回调函数。 [更多...](_u_s_b.md#unregbulkcallback) | +| [BulkRead](_u_s_b.md#bulkread) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, sptr< Ashmem > &ashmem) | 批量传输异步读数据。 [更多...](_u_s_b.md#bulkread) | +| [BulkWrite](_u_s_b.md#bulkwrite) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, sptr< Ashmem > &ashmem) | 批量传输异步写数据。 [更多...](_u_s_b.md#bulkwrite) | +| [BulkCancel](_u_s_b.md#bulkcancel) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe) | 批量传输异步取消接口,用于取消当前接口的异步批量读写操作。 [更多...](_u_s_b.md#bulkcancel) | + + +### 静态 Public 成员函数 + + | 静态 Public 成员函数 | 描述 | +| -------- | -------- | +| **GetInstance** () | 获取实例。 | diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md b/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md new file mode 100644 index 0000000000..eb3e0c18fd --- /dev/null +++ b/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md @@ -0,0 +1,20 @@ +# OHOS::USB::UsbdSubscriber + + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| [DeviceEvent](_u_s_b.md#deviceevent) (const [UsbInfo](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md) &info)=0 | 设备事件。 [更多...](_u_s_b.md#deviceevent) | +| [PortChangedEvent](_u_s_b.md#portchangedevent) (int32_t portId, int32_t powerRole, int32_t dataRole, int32_t mode)=0 | 端口改变事件。 [更多...](_u_s_b.md#portchangedevent) | +| [OnRemoteRequest](_u_s_b.md#onremoterequest) (uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override | 远程请求。 [更多...](_u_s_b.md#onremoterequest) | diff --git a/zh-cn/device-dev/api/_omx_codec_buffer.md b/zh-cn/device-dev/api/_omx_codec_buffer.md new file mode 100644 index 0000000000..9b59c569ce --- /dev/null +++ b/zh-cn/device-dev/api/_omx_codec_buffer.md @@ -0,0 +1,194 @@ +# OmxCodecBuffer + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [bufferId](#bufferid) | buffer的ID。 | +| [size](#size) | 结构体大小。 | +| [version](#version) | 组件版本信息。 | +| [bufferType](#buffertype) | buffer类型。 | +| [buffer](#buffer) | 编码或者解码使用的buffer。 | +| [bufferLen](#bufferlen) | buffer大小。 | +| [allocLen](#alloclen) | 申请的buffer大小。 | +| [filledLen](#filledlen) | 填充的buffer大小。 | +| [offset](#offset) | 有效数据从缓冲区开始的起始偏移量。 | +| [fenceFd](#fencefd) | 该描述符来自buffer消费者,Codec等待成功后才可以使用输入或者输出buffer。 | +| [type](#type) | 共享内存类型。 | +| [pts](#pts) | 时间戳。 | +| [flag](#flag) | 标志。 | + + +## **详细描述** + +Codec buffer信息的定义。 + + +## **类成员变量说明** + + +### allocLen + + +``` +uint32_t OmxCodecBuffer::allocLen +``` + +**描述:** + +申请的buffer大小 + + +### buffer + + +``` +uint8_t* OmxCodecBuffer::buffer +``` + +**描述:** + +编码或者解码使用的buffer + + +### bufferId + + +``` +uint32_t OmxCodecBuffer::bufferId +``` + +**描述:** + +buffer ID + + +### bufferLen + + +``` +uint32_t OmxCodecBuffer::bufferLen +``` + +**描述:** + +buffer大小 + + +### bufferType + + +``` +enum CodecBufferType OmxCodecBuffer::bufferType +``` + +**描述:** + +buffer类型 + + +### fenceFd + + +``` +int32_t OmxCodecBuffer::fenceFd +``` + +**描述:** + +该描述符来自buffer消费者,Codec等待成功后才可以使用输入或者输出buffer + + +### filledLen + + +``` +uint32_t OmxCodecBuffer::filledLen +``` + +**描述:** + +填充的buffer大小 + + +### flag + + +``` +uint32_t OmxCodecBuffer::flag +``` + +**描述:** + +标志 + + +### offset + + +``` +uint32_t OmxCodecBuffer::offset +``` + +**描述:** + +有效数据从缓冲区开始的起始偏移量 + + +### pts + + +``` +int64_t OmxCodecBuffer::pts +``` + +**描述:** + +时间戳 + + +### size + + +``` +uint32_t OmxCodecBuffer::size +``` + +**描述:** + +结构体大小 + + +### type + + +``` +enum ShareMemTypes OmxCodecBuffer::type +``` + +**描述:** + +共享内存类型 + + +### version + + +``` +union OMX_VERSIONTYPE OmxCodecBuffer::version +``` + +**描述:** + +组件版本信息 diff --git a/zh-cn/device-dev/api/_pin_auth_types_8idl.md b/zh-cn/device-dev/api/_pin_auth_types_8idl.md new file mode 100644 index 0000000000..5824a22612 --- /dev/null +++ b/zh-cn/device-dev/api/_pin_auth_types_8idl.md @@ -0,0 +1,46 @@ +# PinAuthTypes.idl + + +## **概述** + +**所属模块:** + +[HdfPinAuth](_hdf_pin_auth.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [ExecutorInfo](_executor_info.md) | 执行器信息。 [更多...](_executor_info.md) | +| [TemplateInfo](_template_info.md) | 凭据模版信息。 [更多...](_template_info.md) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [AuthType](_hdf_face_auth.md#authtype) : int { [PIN](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a048efb7462d3f8cced82716c66926168) = 1, [FACE](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a5cfae78048cf95359061c2e812e7d691) = 2, [FINGERPRINT](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1ad03eae85b35bf9bc22d787c8913b795a) = 4 } | 枚举用户认证凭据类型。 [更多...](_hdf_face_auth.md#authtype) | +| [ExecutorRole](_hdf_face_auth.md#executorrole) : int { [COLLECTOR](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a539c54e76bcc96cddb85f0cabcff39ec) = 1, [VERIFIER](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a1286a5d974d0c68d7bc43ffc0576a6d4) = 2, [ALL_IN_ONE](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a7eebd77a403f81c5968b4c2898ee6fd4) = 3 } | 枚举执行器角色。 [更多...](_hdf_face_auth.md#executorrole) | +| [ExecutorSecureLevel](_hdf_face_auth.md#executorsecurelevel) : int { [ESL0](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa0cd05a2adda94d3c676fca84f96c0638) = 0, [ESL1](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fae6a34bbf2764541238bf81569faf29d3) = 1, [ESL2](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa8f898bca57625d548a011ba2aaf4285f) = 2, [ESL3](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa9a6fb8a4530b6a09dba2fbfdf2e6c2e9) = 3 } | 枚举执行器安全等级。 [更多...](_hdf_face_auth.md#executorsecurelevel) | +| [CommandId](_hdf_face_auth.md#commandid) : int { [DEFAULT](_hdf_pin_auth.md#gga5633c8cc52bef1a4df7539c7bb6febe7a88ec7d5086d2469ba843c7fcceade8a6) = 0 } | 枚举口令认证功能相关操作命令。 [更多...](_hdf_face_auth.md#commandid) | +| [FaceTipsCode](_hdf_face_auth.md#facetipscode) : int {   [FACE_AUTH_TIP_TOO_BRIGHT](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007aa973b57b70bddf6e04ea0d1d8ac84bbc) = 1, [FACE_AUTH_TIP_TOO_DARK](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a9e812580c2600ebd4847ac05478805fe) = 2, [FACE_AUTH_TIP_TOO_CLOSE](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007adbd6a2cd4effac8f2d08a406c21cee17) = 3, [FACE_AUTH_TIP_TOO_FAR](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a557c72d5d5dd9cc4ca52406d442a085e) = 4,   [FACE_AUTH_TIP_TOO_HIGH](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007ac573361a2c459a0d0f95f7691819611b) = 5, [FACE_AUTH_TIP_TOO_LOW](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a1fbbe62377b7746848761d4fc1e591d8) = 6, [FACE_AUTH_TIP_TOO_RIGHT](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a8b8f69a132ab5e9e4770fbe25efe6810) = 7, [FACE_AUTH_TIP_TOO_LEFT](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a4f1f1ab1bed69c0968981c6ecc52a572) = 8,   [FACE_AUTH_TIP_TOO_MUCH_MOTION](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a19f794720c79aaeb2b2cb895eca6c4fd) = 9, [FACE_AUTH_TIP_POOR_GAZE](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a93c89c83ede9a3b5a15e90a1975176b7) = 10, [FACE_AUTH_TIP_NOT_DETECTED](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007aa41ae58b84dbfe8b467de7a11ad236f8) = 11, [VENDOR_FACE_AUTH_TIP_BEGIN](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007abef2f1de5f74c324a7dd8958a279caab) = 10000 } | 枚举提示信息编码。 [更多...](_hdf_face_auth.md#facetipscode) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.pin_auth.v1_0 | 口令认证接口的包路径 | + + +## **详细描述** + +定义口令认证驱动的枚举类和数据结构。 + +**Since:** + +3.2 diff --git a/zh-cn/device-dev/api/_power_types_8idl.md b/zh-cn/device-dev/api/_power_types_8idl.md new file mode 100644 index 0000000000..664dad8fab --- /dev/null +++ b/zh-cn/device-dev/api/_power_types_8idl.md @@ -0,0 +1,42 @@ +# PowerTypes.idl + + +## **概述** + +**所属模块:** + +[Power](power.md) + + +## **汇总** + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [PowerHdfCmd](power.md#powerhdfcmd) {   [CMD_REGISTER_CALLBCK](power.md#gga0c9f68a1cf4b1b76a8253281688a499fadb8d2fd75158645b1cd01cab62a11e48) = 0, [CMD_START_SUSPEND](power.md#gga0c9f68a1cf4b1b76a8253281688a499fab1d1e95415b8a9ab070fed3200b5f1d3), [CMD_STOP_SUSPEND](power.md#gga0c9f68a1cf4b1b76a8253281688a499fa65c754fdc432aa2a6f13c27cb97c27de), [CMD_FORCE_SUSPEND](power.md#gga0c9f68a1cf4b1b76a8253281688a499faa96402e649008dcafce89c7a47c6f266),   [CMD_SUSPEND_BLOCK](power.md#gga0c9f68a1cf4b1b76a8253281688a499fa0766f8c155a9de9fc7168a498c8317da), [CMD_SUSPEND_UNBLOCK](power.md#gga0c9f68a1cf4b1b76a8253281688a499fa840d1fd2227dfea25fcee7217deb82ed), [CMD_DUMP](power.md#gga0c9f68a1cf4b1b76a8253281688a499fab92b7d7125239e258bd22cd1a35aba0d) } | 枚举电源命令的参数。 [更多...](power.md#powerhdfcmd) | +| [PowerHdfCallbackCmd](power.md#powerhdfcallbackcmd) { [CMD_ON_SUSPEND](power.md#gga4bbb7ca0dc24efe3980c39cd409b4109a6d4a3ebd4580d7303df66d5ea9ad98d1) = 0, [CMD_ON_WAKEUP](power.md#gga4bbb7ca0dc24efe3980c39cd409b4109a4d0194285647be62fe2c191cad95e72f) } | 枚举电源状态回调的参数。 [更多...](power.md#powerhdfcallbackcmd) | +| [PowerHdfState](power.md#powerhdfstate) { [AWAKE](power.md#ggadf82dc0e2ae04729ac8fabb3e3d28ecda65e803ac3fb48fa726e326f3c63c2d83) = 0, [INACTIVE](power.md#ggadf82dc0e2ae04729ac8fabb3e3d28ecda3ff8ba88da6f8947ab7c22b7825c6bb6), [SLEEP](power.md#ggadf82dc0e2ae04729ac8fabb3e3d28ecdad6137abebe4fdc59e2f0f2c84bdbe3fa) } | 枚举电源的状态。 [更多...](power.md#powerhdfstate) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.power.v1_0 | 电源管理接口的包路径 | + + +## **详细描述** + +电源相关的数据类型。 + +电源管理中使用的数据类型,包括命令参数、回调参数和系统状态。 + +**Since:** + +3.1 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/_present_timestamp.md b/zh-cn/device-dev/api/_present_timestamp.md new file mode 100644 index 0000000000..75be9d799e --- /dev/null +++ b/zh-cn/device-dev/api/_present_timestamp.md @@ -0,0 +1,24 @@ +# PresentTimestamp + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [type](_display.md#type-33) | 上屏时间戳类型 | +| [time](_display.md#time) | 类型对应的值 | + + +## **详细描述** + +上屏时间戳结构体定义。 diff --git a/zh-cn/device-dev/api/_property_object.md b/zh-cn/device-dev/api/_property_object.md new file mode 100644 index 0000000000..5520d0be40 --- /dev/null +++ b/zh-cn/device-dev/api/_property_object.md @@ -0,0 +1,25 @@ +# PropertyObject + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [name](_display.md#name-12) [PROPERTY_NAME_LEN] | 属性名称 | +| [propId](_display.md#propid) | 属性ID | +| [value](_display.md#value-12) | 属性值 | + + +## **详细描述** + +定义包含名称、属性ID和值的属性对象。 diff --git a/zh-cn/device-dev/api/_range_value.md b/zh-cn/device-dev/api/_range_value.md new file mode 100644 index 0000000000..723b312f4a --- /dev/null +++ b/zh-cn/device-dev/api/_range_value.md @@ -0,0 +1,51 @@ +# RangeValue + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [min](#min) | 最小值 | +| [max](#max) | 最大值 | + + +## **详细描述** + +取值范围的定义。 + + +## **类成员变量说明** + + +### max + + +``` +int32_t RangeValue::max +``` + +**描述:** + +最大值 + + +### min + + +``` +int32_t RangeValue::min +``` + +**描述:** + +最小值 diff --git a/zh-cn/device-dev/api/_rect.md b/zh-cn/device-dev/api/_rect.md new file mode 100644 index 0000000000..c241e45e26 --- /dev/null +++ b/zh-cn/device-dev/api/_rect.md @@ -0,0 +1,51 @@ +# Rect + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [width](#width) | 矩形的宽 | +| [height](#height) | 矩形的高 | + + +## **详细描述** + +矩形的定义。 + + +## **类成员变量说明** + + +### height + + +``` +int32_t Rect::height +``` + +**描述:** + +矩形的高 + + +### width + + +``` +int32_t Rect::width +``` + +**描述:** + +矩形的宽 diff --git a/zh-cn/device-dev/api/_rectangle.md b/zh-cn/device-dev/api/_rectangle.md new file mode 100644 index 0000000000..374827e421 --- /dev/null +++ b/zh-cn/device-dev/api/_rectangle.md @@ -0,0 +1,24 @@ +# Rectangle + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [rect](_display.md#rect) | 矩形区域 | +| [color](_display.md#color-33) | 矩形颜色 | + + +## **详细描述** + +矩形描述结构体定义,用于硬件加速绘制矩形。 diff --git a/zh-cn/device-dev/api/_schedule_info.md b/zh-cn/device-dev/api/_schedule_info.md new file mode 100644 index 0000000000..a0cfa6a751 --- /dev/null +++ b/zh-cn/device-dev/api/_schedule_info.md @@ -0,0 +1,111 @@ +# ScheduleInfo + + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [scheduleId](#scheduleid) | 调度ID,用于标识一次操作请求的执行器调度过程。 | +| [templateIds](#templateids) | 模版ID列表。 | +| [authType](#authtype) | 用户认证凭据类型。 | +| [executorType](#executortype) | 执行器类型。 | +| [scheduleMode](#schedulemode) | 调度模式,支持注册、认证和识别模式。 | +| [executors](#executors) | 执行器信息列表。 | + + +## **详细描述** + +调度信息。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### authType + + +``` +enum AuthType ScheduleInfo::authType +``` + +**描述:** + +用户认证凭据类型。 + + +### executors + + +``` +struct ExecutorInfo [] ScheduleInfo::executors +``` + +**描述:** + +执行器信息列表。 + + +### executorType + + +``` +unsigned int ScheduleInfo::executorType +``` + +**描述:** + +执行器类型。 + + +### scheduleId + + +``` +unsigned long ScheduleInfo::scheduleId +``` + +**描述:** + +调度ID,用于标识一次操作请求的执行器调度过程。 + + +### scheduleMode + + +``` +unsigned int ScheduleInfo::scheduleMode +``` + +**描述:** + +调度模式,支持注册、认证和识别模式。 + + +### templateIds + + +``` +unsigned long [] ScheduleInfo::templateIds +``` + +**描述:** + +模版id列表。 diff --git a/zh-cn/device-dev/api/_sensor.md b/zh-cn/device-dev/api/_sensor.md new file mode 100644 index 0000000000..6bd941232f --- /dev/null +++ b/zh-cn/device-dev/api/_sensor.md @@ -0,0 +1,326 @@ +# Sensor + + +## **汇总** + + +### 文件 + + | 文件 | 描述 | +| -------- | -------- | +| [sensor_if.h](sensor__if_8h.md) | Sensor模块对外通用的接口声明文件,提供获取传感器设备信息、订阅/去订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度,量程等可选配置接口定义。 | +| [sensor_type.h](sensor__type_8h.md) | 定义传感器模块所使用的传感器类型,传感器信息,传感器数据结构等数据类型。 | + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [SensorInterface](_sensor_interface.md) | 提供sensor设备基本控制操作接口。 [更多...](_sensor_interface.md) | +| [SensorInformation](_sensor_information.md) | 定义传感器基本信息。 [更多...](_sensor_information.md) | +| [SensorEvents](_sensor_events.md) | 上报传感器数据结构。 [更多...](_sensor_events.md) | + + +### 宏定义 + + | 宏定义 | 描述 | +| -------- | -------- | +| [SENSOR_NAME_MAX_LEN](#sensornamemaxlen)   32 | Sensor名称的最大长度。 | +| [SENSOR_VERSION_MAX_LEN](#sensorversionmaxlen)   16 | Sensor版本号的最大长度。 | + + +### 类型定义 + + | 类型定义 | 描述 | +| -------- | -------- | +| ([RecordDataCallback](#recorddatacallback)) (const struct [SensorEvents](_sensor_events.md) \*) | 传感器上报数据回调函数的定义,传感器服务用户在订阅传感器时, 需要注册上报数据回调函数,传感器使能后,传感器服务用户可以接受到传感器数据,详见[SensorInterface](_sensor_interface.md)。 [更多...](#recorddatacallback) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [SensorStatus](#sensorstatus) {   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1744368128083931,link:zh-cn_topic_0000001348293929.xml#ggaa348cf223e558076864814ee88920ceca6fe3474c6df06ef2bd1d3fb84fc57827](#ggaa348cf223e558076864814ee88920ceca6fe3474c6df06ef2bd1d3fb84fc57827) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1335251836083931,link:zh-cn_topic_0000001348293929.xml#ggaa348cf223e558076864814ee88920cecafc02a48cdab506c10ef1c5c66600ae71](#ggaa348cf223e558076864814ee88920cecafc02a48cdab506c10ef1c5c66600ae71) = -1, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1233191896083931,link:zh-cn_topic_0000001348293929.xml#ggaa348cf223e558076864814ee88920cecacbf62f7bd2738d9be4b81e603c4f3bd5](#ggaa348cf223e558076864814ee88920cecacbf62f7bd2738d9be4b81e603c4f3bd5) = -2, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1060174146083931,link:zh-cn_topic_0000001348293929.xml#ggaa348cf223e558076864814ee88920ceca0728f44385b2cb32a5c01e1370e6f2d7](#ggaa348cf223e558076864814ee88920ceca0728f44385b2cb32a5c01e1370e6f2d7) = -3,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1078641707083931,link:zh-cn_topic_0000001348293929.xml#ggaa348cf223e558076864814ee88920cecaeb19761a981ab03ce5144ed0b4c7a48c](#ggaa348cf223e558076864814ee88920cecaeb19761a981ab03ce5144ed0b4c7a48c) = -4, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref199916655214,link:#p431372085818](#p431372085818) = -5 } | 定义传感器模块返回值类型。 [更多...](#sensorstatus) | +| [SensorTypeTag](#sensortypetag) {   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref276196875083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a3f8e3e31e6a356192f150019309925ee](#ggaea6a2a57db175118e08189b73f8f3da5a3f8e3e31e6a356192f150019309925ee) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1251682907083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5abd9779b04292b5e8054485b10fccb99c](#ggaea6a2a57db175118e08189b73f8f3da5abd9779b04292b5e8054485b10fccb99c) = 1, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref952930154083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5adc01250dcba5642d294f74ba4d115c28](#ggaea6a2a57db175118e08189b73f8f3da5adc01250dcba5642d294f74ba4d115c28) = 2, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref472145700083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a93f36cca60373938f2410162b16b531e](#ggaea6a2a57db175118e08189b73f8f3da5a93f36cca60373938f2410162b16b531e) = 3,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref760459074083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a2d8e52264648743ae154b99eef141607](#ggaea6a2a57db175118e08189b73f8f3da5a2d8e52264648743ae154b99eef141607) = 4, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref982677450083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a717a301be1664d4cd1ea543ca0653325](#ggaea6a2a57db175118e08189b73f8f3da5a717a301be1664d4cd1ea543ca0653325) = 5, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref14169199083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a74438e3f4f1f8cb1e97ccebbd1096fe8](#ggaea6a2a57db175118e08189b73f8f3da5a74438e3f4f1f8cb1e97ccebbd1096fe8) = 6, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref154702882083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a3ed11be057d851a8ee1db6d946b0e69b](#ggaea6a2a57db175118e08189b73f8f3da5a3ed11be057d851a8ee1db6d946b0e69b) = 7,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1984772313083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5ab9ec86561c555fe323e6a45508e20ca8](#ggaea6a2a57db175118e08189b73f8f3da5ab9ec86561c555fe323e6a45508e20ca8) = 8, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1908999646083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a1931d9687ccbd0aac063417fc0d7b4f6](#ggaea6a2a57db175118e08189b73f8f3da5a1931d9687ccbd0aac063417fc0d7b4f6) = 9, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref2060890795083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a7a343ec270d2bd5b96b4748fb4300665](#ggaea6a2a57db175118e08189b73f8f3da5a7a343ec270d2bd5b96b4748fb4300665) = 10, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1014929795083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a875d96bbe6c91eb906e47bbda4250dfe](#ggaea6a2a57db175118e08189b73f8f3da5a875d96bbe6c91eb906e47bbda4250dfe) = 11,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1246330281083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a47912cab9ef79bbe4eb20538a88ce59c](#ggaea6a2a57db175118e08189b73f8f3da5a47912cab9ef79bbe4eb20538a88ce59c) = 12, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref927809977083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a09fbc658c0f86f34e08513ef355870f5](#ggaea6a2a57db175118e08189b73f8f3da5a09fbc658c0f86f34e08513ef355870f5) = 13, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref80376381083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a5e792e48a4eb7b53561af8e511dba943](#ggaea6a2a57db175118e08189b73f8f3da5a5e792e48a4eb7b53561af8e511dba943) = 128, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1670563828083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5ad53330afd8a904e115774ffc04f2e89e](#ggaea6a2a57db175118e08189b73f8f3da5ad53330afd8a904e115774ffc04f2e89e) = 160,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref925483407083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a618cf39cdc6bac1ffe31ba2ad488ca53](#ggaea6a2a57db175118e08189b73f8f3da5a618cf39cdc6bac1ffe31ba2ad488ca53) = 255, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1588739202083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5af2ccaca19bdabe513c45c058003ed596](#ggaea6a2a57db175118e08189b73f8f3da5af2ccaca19bdabe513c45c058003ed596) = 256, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1037316072083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5ac7d364262029cc21bc865577d5288a1e](#ggaea6a2a57db175118e08189b73f8f3da5ac7d364262029cc21bc865577d5288a1e) = 257, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref504051126083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a914a1f090dcc61586318fd4eb4cb1384](#ggaea6a2a57db175118e08189b73f8f3da5a914a1f090dcc61586318fd4eb4cb1384) = 258,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1823576696083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5ac407aca03c7ce72ea55e52f40477561b](#ggaea6a2a57db175118e08189b73f8f3da5ac407aca03c7ce72ea55e52f40477561b) = 259, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref542704221083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a7d9456395f361833de2ee3ef12a1af2a](#ggaea6a2a57db175118e08189b73f8f3da5a7d9456395f361833de2ee3ef12a1af2a) = 260, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1403111115083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a492db205ab694c3954f4b46fa6a999af](#ggaea6a2a57db175118e08189b73f8f3da5a492db205ab694c3954f4b46fa6a999af) = 261, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1386678478083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5af8302206e90774d69fb272ee50e6607b](#ggaea6a2a57db175118e08189b73f8f3da5af8302206e90774d69fb272ee50e6607b) = 262,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref219154468083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5ad123a39ee0525c760755a4b40e5dc638](#ggaea6a2a57db175118e08189b73f8f3da5ad123a39ee0525c760755a4b40e5dc638) = 263, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1498541716083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a3a4ce3aad51d07a5475c3fb1de90ec80](#ggaea6a2a57db175118e08189b73f8f3da5a3a4ce3aad51d07a5475c3fb1de90ec80) = 264, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref293505469083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a443b13dc20beadc7821db8df7682cd58](#ggaea6a2a57db175118e08189b73f8f3da5a443b13dc20beadc7821db8df7682cd58) = 265, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1947880315083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a0cef311260d7668885a937ee1ee8d5d8](#ggaea6a2a57db175118e08189b73f8f3da5a0cef311260d7668885a937ee1ee8d5d8) = 266,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref717567083083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a80a8adf73ab45b0eaaeb24fa3c5351f0](#ggaea6a2a57db175118e08189b73f8f3da5a80a8adf73ab45b0eaaeb24fa3c5351f0) = 277, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref494571919083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a4d4febf14d8366d19661d7b1acb5ff91](#ggaea6a2a57db175118e08189b73f8f3da5a4d4febf14d8366d19661d7b1acb5ff91) = 278, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1305798719083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a23a60d20eeedd90de69b27ffa4a764ac](#ggaea6a2a57db175118e08189b73f8f3da5a23a60d20eeedd90de69b27ffa4a764ac) = 279, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref592082955083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a0ca37fde34accc45f3065c635480a718](#ggaea6a2a57db175118e08189b73f8f3da5a0ca37fde34accc45f3065c635480a718) = 280,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1215860865083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a730bd9013ab8fea3bbfae66f4c6a6129](#ggaea6a2a57db175118e08189b73f8f3da5a730bd9013ab8fea3bbfae66f4c6a6129) = 281, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref4210134214532,link:#p876144152111](#p876144152111) } | 定义传感器类型标识。 [更多...](#sensortypetag) | +| [SensorAccuracyType](#sensoraccuracytype) {   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref885806585083931,link:zh-cn_topic_0000001348293929.xml#gga985dcd359f32f3cdfbaecb98f1f436e7a1f1bc8e9ccbc83cb0cb107a795fd85f7](#gga985dcd359f32f3cdfbaecb98f1f436e7a1f1bc8e9ccbc83cb0cb107a795fd85f7) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref687798640083931,link:zh-cn_topic_0000001348293929.xml#gga985dcd359f32f3cdfbaecb98f1f436e7a6c2ad64f15e8d0ba24f8b573bc0f19ed](#gga985dcd359f32f3cdfbaecb98f1f436e7a6c2ad64f15e8d0ba24f8b573bc0f19ed) = 1, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1802973734083931,link:zh-cn_topic_0000001348293929.xml#gga985dcd359f32f3cdfbaecb98f1f436e7a9083140f63420c7b109c5ae8f009a8dd](#gga985dcd359f32f3cdfbaecb98f1f436e7a9083140f63420c7b109c5ae8f009a8dd) = 2, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1858007843083931,link:zh-cn_topic_0000001348293929.xml#gga985dcd359f32f3cdfbaecb98f1f436e7a8a8e8f15654a31f9df91bb0561f55574](#gga985dcd359f32f3cdfbaecb98f1f436e7a8a8e8f15654a31f9df91bb0561f55574) = 3,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref91811716205513,link:#p945419536162](#p945419536162)} | 传感器的精度类型。 [更多...](#sensoraccuracytype) | +| [SensorRangeType](#sensorrangetype) { [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref948776572083931,link:zh-cn_topic_0000001348293929.xml#gga4b389f271110480ce20fcc0763cf6d20a8b81d07987b7a203ef04579c60c07986](#gga4b389f271110480ce20fcc0763cf6d20a8b81d07987b7a203ef04579c60c07986) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref399481110083931,link:zh-cn_topic_0000001348293929.xml#gga4b389f271110480ce20fcc0763cf6d20a39dd36b72a88ef8bdccdddc9225e21a1](#gga4b389f271110480ce20fcc0763cf6d20a39dd36b72a88ef8bdccdddc9225e21a1) = 1, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref811186551083931,link:zh-cn_topic_0000001348293929.xml#gga4b389f271110480ce20fcc0763cf6d20a7fee94e695411165b4e1f7b75ce5d52e](#gga4b389f271110480ce20fcc0763cf6d20a7fee94e695411165b4e1f7b75ce5d52e) = 2, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref66771827105514,link:#p165901247205](#p165901247205) } | 传感器的量程级别。 [更多...](#sensorrangetype) | +| [SensorModeType](#sensormodetype) {   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref357904618083931,link:zh-cn_topic_0000001348293929.xml#gga066f4ffeb31a1f4cb3ed357736e0afabae36be092f02cd01eb5bf1c8ae23af73d](#gga066f4ffeb31a1f4cb3ed357736e0afabae36be092f02cd01eb5bf1c8ae23af73d) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref858811297083931,link:zh-cn_topic_0000001348293929.xml#gga066f4ffeb31a1f4cb3ed357736e0afaba5db5e8c1a702aca7ecc751532ecfa69d](#gga066f4ffeb31a1f4cb3ed357736e0afaba5db5e8c1a702aca7ecc751532ecfa69d) = 1, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1003544038083931,link:zh-cn_topic_0000001348293929.xml#gga066f4ffeb31a1f4cb3ed357736e0afaba9d264027423bdee89167c3c8f4c71322](#gga066f4ffeb31a1f4cb3ed357736e0afaba9d264027423bdee89167c3c8f4c71322) = 2, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1343791083931,link:zh-cn_topic_0000001348293929.xml#gga066f4ffeb31a1f4cb3ed357736e0afabac0967e6c4ef5004fda5f26f061fec6ee](#gga066f4ffeb31a1f4cb3ed357736e0afabac0967e6c4ef5004fda5f26f061fec6ee) = 3,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref751754462083931,link:zh-cn_topic_0000001348293929.xml#gga066f4ffeb31a1f4cb3ed357736e0afaba3f4f9b49ae7fe1fb89cd3bff398c7f0f](#gga066f4ffeb31a1f4cb3ed357736e0afaba3f4f9b49ae7fe1fb89cd3bff398c7f0f) = 4, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref14351915611,link:#p4932820101810](#p4932820101810) } | 传感器的工作模式。 [更多...](#sensormodetype) | +| [SensorGroupType](#sensorgrouptype) { [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1746000080083931,link:zh-cn_topic_0000001348293929.xml#gga588325c4c22f56d09cda6e54df0d9a6ca8cc091715416b86fd2eff0a875a76c64](#gga588325c4c22f56d09cda6e54df0d9a6ca8cc091715416b86fd2eff0a875a76c64) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref2030071987083931,link:zh-cn_topic_0000001348293929.xml#gga588325c4c22f56d09cda6e54df0d9a6cab8f846ffbc84b2a2275a88707f350a47](#gga588325c4c22f56d09cda6e54df0d9a6cab8f846ffbc84b2a2275a88707f350a47) = 1, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1096312121083931,link:zh-cn_topic_0000001348293929.xml#gga588325c4c22f56d09cda6e54df0d9a6cafdec26032d6c10626eb07a0812fe1d94](#gga588325c4c22f56d09cda6e54df0d9a6cafdec26032d6c10626eb07a0812fe1d94) } | 枚举传感器的硬件服务组。 [更多...](#sensorgrouptype) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [NewSensorInterfaceInstance](#newsensorinterfaceinstance) (void) | 创建传感器接口实例。 [更多...](#newsensorinterfaceinstance) | +| [FreeSensorInterfaceInstance](#freesensorinterfaceinstance) (void) | 释放传感器接口实例。 [更多...](#freesensorinterfaceinstance) | + + +## **详细描述** + +传感器设备驱动对传感器服务提供通用的接口能力。 + +模块提供传感器服务对传感器驱动访问统一接口,服务获取驱动对象或者代理后, 通过其提供的各类方法,以传感器id区分访问不同类型传感器设备,实现获取传感器设备信息、订阅/去订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度、量程等可选配置等。 + +**Since:** + +2.2 + +**Version:** + +1.0 + + +## **宏定义说明** + + +### SENSOR_NAME_MAX_LEN + + +``` +#define SENSOR_NAME_MAX_LEN 32 +``` + +**描述:** + +Sensor名称的最大长度。 + + +### SENSOR_VERSION_MAX_LEN + + +``` +#define SENSOR_VERSION_MAX_LEN 16 +``` + +**描述:** + +Sensor版本号的最大长度。 + + +## **类型定义说明** + + +### RecordDataCallback + + +``` +typedef int32_t(* RecordDataCallback) (const struct SensorEvents *) +``` + +**描述:** + +传感器上报数据回调函数的定义,传感器服务用户在订阅传感器时, 需要注册上报数据回调函数,传感器使能后,传感器服务用户可以接受到传感器数据,详见[SensorInterface](_sensor_interface.md)。 + + +## **枚举类型说明** + + +### SensorAccuracyType + + +``` +enum SensorAccuracyType +``` + +**描述:** + +传感器的精度类型。 + + | 枚举值 | 描述 | +| -------- | -------- | +| SENSOR_NO_ACCURACY | 无精度类型。 | +| SENSOR_LOW_ACCURACY | 低精度类型。 | +| SENSOR_MEDIUM_ACCURACY | 中等精度类型。 | +| SENSOR_HIGH_ACCURACY | 高精度类型。 | +| SENSOR_MAX_ACCURACY | 最大精度类型。 | + + +### SensorGroupType + + +``` +enum SensorGroupType +``` + +**描述:** + +枚举传感器的硬件服务组。 + + | 枚举值 | 描述 | +| -------- | -------- | +| TRADITIONAL_SENSOR_TYPE | 传统传感器类型,传感器ID枚举值范围为128-160。 | +| MEDICAL_SENSOR_TYPE | 医疗传感器类型,传感器ID枚举值范围不在128-160之间。 | +| SENSOR_GROUP_TYPE_MAX | 最大传感器类型。 | + + +### SensorModeType + + +``` +enum SensorModeType +``` + +**描述:** + +传感器的工作模式。 + + | 枚举值 | 描述 | +| -------- | -------- | +| SENSOR_MODE_DEFAULT | 传感器默认工作模式状态。 | +| SENSOR_MODE_REALTIME | 传感器实时工作模式状态,一组数据上报一次。 | +| SENSOR_MODE_ON_CHANGE | 传感器实时工作模式状态,状态变更上报一次。 | +| SENSOR_MODE_ONE_SHOT | 传感器实时工作模式状态,只上报一次。 | +| SENSOR_MODE_FIFO_MODE | 传感器缓存工作模式状态,根据配置的缓存大小上报。 | +| SENSOR_MODE_MAX | 传感器最大类型标识。 | + + +### SensorRangeType + + +``` +enum SensorRangeType +``` + +**描述:** + +传感器的量程级别。 + + | 枚举值 | 描述 | +| -------- | -------- | +| SENSOR_RANGE_LEVEL1 | 量程级别1。 | +| SENSOR_RANGE_LEVEL2 | 量程级别2。 | +| SENSOR_RANGE_LEVEL3 | 量程级别3。 | +| SENSOR_RANGE_LEVEL_MAX | 量程最大级别。 | + + +### SensorStatus + + +``` +enum SensorStatus +``` + +**描述:** + +定义传感器模块返回值类型。 + + | 枚举值 | 描述 | +| -------- | -------- | +| SENSOR_SUCCESS | 传感器执行成功。 | +| SENSOR_FAILURE | 传感器执行失败。 | +| SENSOR_NOT_SUPPORT | 传感器不支持。 | +| SENSOR_INVALID_PARAM | 传感器无效参数。 | +| SENSOR_INVALID_SERVICE | 传感器无效服务。 | +| SENSOR_NULL_PTR | 传感器空指针。 | + + +### SensorTypeTag + + +``` +enum SensorTypeTag +``` + +**描述:** + +定义传感器类型标识。 + + | 枚举值 | 描述 | +| -------- | -------- | +| SENSOR_TYPE_NONE | 空传感器类型,用于测试。 | +| SENSOR_TYPE_ACCELEROMETER | 加速度传感器。 | +| SENSOR_TYPE_GYROSCOPE | 陀螺仪传感器。 | +| SENSOR_TYPE_PHOTOPLETHYSMOGRAPH | 心率传感器。 | +| SENSOR_TYPE_ELECTROCARDIOGRAPH | 心电传感器。 | +| SENSOR_TYPE_AMBIENT_LIGHT | 环境光传感器。 | +| SENSOR_TYPE_MAGNETIC_FIELD | 地磁传感器。 | +| SENSOR_TYPE_CAPACITIVE | 电容传感器。 | +| SENSOR_TYPE_BAROMETER | 气压计传感器。 | +| SENSOR_TYPE_TEMPERATURE | 温度传感器。 | +| SENSOR_TYPE_HALL | 霍尔传感器。 | +| SENSOR_TYPE_GESTURE | 手势传感器。 | +| SENSOR_TYPE_PROXIMITY | 接近光传感器。 | +| SENSOR_TYPE_HUMIDITY | 湿度传感器。 | +| SENSOR_TYPE_MEDICAL_BEGIN | 医疗传感器ID枚举值范围的开始。 | +| SENSOR_TYPE_MEDICAL_END | 医疗传感器ID枚举值范围的结束。 | +| SENSOR_TYPE_PHYSICAL_MAX | 物理传感器最大类型。 | +| SENSOR_TYPE_ORIENTATION | 方向传感器。 | +| SENSOR_TYPE_GRAVITY | 重力传感器。 | +| SENSOR_TYPE_LINEAR_ACCELERATION | 线性加速度传感器。 | +| SENSOR_TYPE_ROTATION_VECTOR | 旋转矢量传感器。 | +| SENSOR_TYPE_AMBIENT_TEMPERATURE | 环境温度传感器 | +| SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED | 未校准磁场传感器。 | +| SENSOR_TYPE_GAME_ROTATION_VECTOR | 游戏旋转矢量传感器。 | +| SENSOR_TYPE_GYROSCOPE_UNCALIBRATED | 未校准陀螺仪传感器。 | +| SENSOR_TYPE_SIGNIFICANT_MOTION | 大幅度动作传感器。 | +| SENSOR_TYPE_PEDOMETER_DETECTION | 计步器检测传感器。 | +| SENSOR_TYPE_PEDOMETER | 计步器传感器。 | +| SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR | 地磁旋转矢量传感器。 | +| SENSOR_TYPE_HEART_RATE | 心率传感器。 | +| SENSOR_TYPE_DEVICE_ORIENTATION | 设备方向传感器。 | +| SENSOR_TYPE_WEAR_DETECTION | 佩戴检测传感器。 | +| SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED | 未校准加速度传感器。 | +| SENSOR_TYPE_MAX | 传感器类型最大个数标识。 | + + +## **函数说明** + + +### FreeSensorInterfaceInstance() + + +``` +int32_t FreeSensorInterfaceInstance (void ) +``` + +**描述:** + +释放传感器接口实例。 + +**返回:** + +如果释放实例成功,则返回0。 + +如果释放实例失败,则返回负值。 + +**Since:** + +2.2 + +**Version:** + +1.0 + + +### NewSensorInterfaceInstance() + + +``` +const struct SensorInterface* NewSensorInterfaceInstance (void ) +``` + +**描述:** + +创建传感器接口实例。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| sensorId | 表示传感器ID。有关详细信息,详见[SensorTypeTag](#sensortypetag)。 | +| cb | 表示要注册的回调函数。有关详细信息,详见[RecordDataCallback](#recorddatacallback)。 | + +**返回:** + +如果创建实例成功,则返回非零值。 + +如果创建实例失败,则返回负值。 + +**Since:** + +2.2 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/_sensor_events.md b/zh-cn/device-dev/api/_sensor_events.md new file mode 100644 index 0000000000..51c8079517 --- /dev/null +++ b/zh-cn/device-dev/api/_sensor_events.md @@ -0,0 +1,122 @@ +# SensorEvents + + +## **概述** + +**所属模块:** + +[Sensor](_sensor.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [sensorId](#sensorid) | 传感器的标识号。 | +| [version](#version) | 传感器算法版本号。 | +| [timestamp](#timestamp) | 传感器数据生成时间。 | +| [option](#option) | 传感器量程精度可选配置。 | +| [mode](#mode) | 传感器工作模式。 | +| [data](#data) | 传感器数据地址。 | +| [dataLen](#section0442151664211) | 传感器数据长度。 | + + +## **详细描述** + +上报传感器数据结构。 + +上报传感器设备数据事件信息包括传感器的标识号、传感器算法版本号、传感器数据生成时间、传感器量程精度可选配置、传感器工作模式、传感器数据地址、传感器数据长度。 + +**Since:** + +2.2 + + +## **类成员变量说明** + + +### data + + +``` +uint8_t* SensorEvents::data +``` + +**描述:** + +传感器数据地址。 + + +### mode + + +``` +int32_t SensorEvents::mode +``` + +**描述:** + +传感器工作模式。 + + +### option + + +``` +uint32_t SensorEvents::option +``` + +**描述:** + +传感器量程精度可选配置。 + + +### sensorId + + +``` +int32_t SensorEvents::sensorId +``` + +**描述:** + +传感器的标识号。 + + +### timestamp + + +``` +int64_t SensorEvents::timestamp +``` + +**描述:** + +传感器数据生成时间。 + + +### version + + +``` +int32_t SensorEvents::version +``` + +**描述:** + +传感器算法版本号。 + + +### h2dataLen + + +``` +int32_t SensorEvents::dataLen +``` + +**描述:** + +传感器算法版本号。 diff --git a/zh-cn/device-dev/api/_sensor_information.md b/zh-cn/device-dev/api/_sensor_information.md new file mode 100644 index 0000000000..f3c35206a6 --- /dev/null +++ b/zh-cn/device-dev/api/_sensor_information.md @@ -0,0 +1,148 @@ +# SensorInformation + + +## **概述** + +**所属模块:** + +[Sensor](_sensor.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [sensorName](#sensorname) [[SENSOR_NAME_MAX_LEN](_sensor.md#sensornamemaxlen)] | 传感器名称。 | +| [vendorName](#vendorname) [[SENSOR_NAME_MAX_LEN](_sensor.md#sensornamemaxlen)] | 传感器设备厂商。 | +| [firmwareVersion](#firmwareversion) [[SENSOR_VERSION_MAX_LEN](_sensor.md#sensorversionmaxlen)] | 传感器固件版本号。 | +| [hardwareVersion](#hardwareversion)
[[SENSOR_VERSION_MAX_LEN](_sensor.md#sensorversionmaxlen)] | 传感器硬件版本号。 | +| [sensorTypeId](#sensortypeid) | 传感器类型编号, | +| [sensorId](#sensorid) | 传感器的标识号,有传感器驱动开发者定义。 | +| [maxRange](#maxrange) | 传感器的最大量程。 | +| [accuracy](#accuracy) | 传感器的精度。 | +| [power](#power) | 传感器的功耗。 | + + +## **详细描述** + +定义传感器基本信息。 + +一个传感器设备信息包括传感器名字、设备厂商、固件版本号、硬件版本号、传感器类型编号、传感器标识、最大量程、精度、功耗。 + +**Since:** + +2.2 + + +## **类成员变量说明** + + +### accuracy + + +``` +float SensorInformation::accuracy +``` + +**描述:** + +传感器的精度。 + + +### firmwareVersion + + +``` +char SensorInformation::firmwareVersion[SENSOR_VERSION_MAX_LEN] +``` + +**描述:** + +传感器固件版本号。 + + +### hardwareVersion + + +``` +char SensorInformation::hardwareVersion[SENSOR_VERSION_MAX_LEN] +``` + +**描述:** + +传感器硬件版本号。 + + +### maxRange + + +``` +float SensorInformation::maxRange +``` + +**描述:** + +传感器的最大量程。 + + +### sensorId + + +``` +int32_t SensorInformation::sensorId +``` + +**描述:** + +传感器的标识号,有传感器驱动开发者定义。 + + +### sensorName + + +``` +char SensorInformation::sensorName[SENSOR_NAME_MAX_LEN] +``` + +**描述:** + +传感器名称。 + + +### sensorTypeId + + +``` +int32_t SensorInformation::sensorTypeId +``` + +**描述:** + +传感器类型编号,唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 + + +### vendorName + + +``` +char SensorInformation::vendorName[SENSOR_NAME_MAX_LEN] +``` + +**描述:** + +传感器设备厂商。 + + +### power + + +``` +char SensorInformation::power +``` + +**描述:** + +传感器的功耗。 diff --git a/zh-cn/device-dev/api/_sensor_interface.md b/zh-cn/device-dev/api/_sensor_interface.md new file mode 100644 index 0000000000..cc24e3a087 --- /dev/null +++ b/zh-cn/device-dev/api/_sensor_interface.md @@ -0,0 +1,234 @@ +# SensorInterface + + +## **概述** + +**所属模块:** + +[Sensor](_sensor.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [GetAllSensors](#getallsensors) )([out] struct [SensorInformation](_sensor_information.md) \*\*sensorInfo, [out] int32_t \*count) | 获取当前系统中所有类型的传感器信息。 [更多...](#getallsensors) | +| ( [Enable](#enable) )([in] int32_t sensorId) | 根据传感器设备类型标识使能传感器信息列表里存在的设备,只有数据订阅者使能传感器后,才能获取订阅的传感器数据。 [更多...](#enable) | +| ( [Disable](#disable) )([in] int32_t sensorId) | 根据传感器设备类型标识去使能传感器信息列表里存在的设备。 [更多...](#disable) | +| ( [SetBatch](#setbatch) )([in] int32_t sensorId, [in] int64_t samplingInterval, [in] int64_t reportInterval) | 设置指定传感器的数据采样间隔和数据上报间隔。 [更多...](#setbatch) | +| ( [SetMode](#setmode) )([in] int32_t sensorId, [in] int32_t mode) | 设置指定传感器的数据上报模式,不同的工作模式,上报数据的方式不同。 [更多...](#setmode) | +| ( [SetOption](#setoption) )([in] int32_t sensorId, [in] uint32_t option) | 设置指定传感器量程、精度等可选配置。 [更多...](#setoption) | +| ( [Register](#register) )([in] int32_t groupId, [in] [RecordDataCallback](_sensor.md#recorddatacallback) cb) | 订阅者注册传感器数据回调函数,系统会将获取到的传感器数据上报给订阅者。 [更多...](#register) | +| ( [Unregister](#unregister) )([in] int32_t groupId, [in] [RecordDataCallback](_sensor.md#recorddatacallback) cb) | 订阅者去注册传感器数据回调函数。 [更多...](#unregister) | + + +## **详细描述** + +提供sensor设备基本控制操作接口。 + +结构体提供获取传感器设备信息、订阅/去订阅传感器数据、使能/去使能传感器、设置传感器模式、设置传感器精度、量程等可选配置接口定义。 + + +## **类成员变量说明** + + +### Disable + + +``` +int32_t(* SensorInterface::Disable) ([in] int32_t sensorId) +``` + +**描述:** + +根据传感器设备类型标识去使能传感器信息列表里存在的设备。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### Enable + + +``` +int32_t(* SensorInterface::Enable) ([in] int32_t sensorId) +``` + +**描述:** + +根据传感器设备类型标识使能传感器信息列表里存在的设备,只有数据订阅者使能传感器后,才能获取订阅的传感器数据。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### GetAllSensors + + +``` +int32_t(* SensorInterface::GetAllSensors) ([out] struct SensorInformation **sensorInfo,[out] int32_t *count) +``` + +**描述:** + +获取当前系统中所有类型的传感器信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| sensorInfo | 输出系统中注册的所有传感器信息,一种类型传感器信息包括传感器名字、设备厂商、 固件版本号、硬件版本号、传感器类型编号、传感器标识、最大量程、精度、功耗,详见[SensorInformation](_sensor_information.md)。 | +| count | 输出系统中注册的传感器数量。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### Register + + +``` +int32_t(* SensorInterface::Register) ([in] int32_t groupId,[in] RecordDataCallback cb) +``` + +**描述:** + +订阅者注册传感器数据回调函数,系统会将获取到的传感器数据上报给订阅者。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| groupId | 传感器组ID。 sensorId枚举值范围为128-160,表示已订阅医疗传感器服务,只需成功订阅一次,无需重复订阅。 sensorId枚举值范围不在128-160之间,这意味着传统传感器已订阅,只需成功订阅一次,无需重复订阅。 | +| cb | 要注册的回调函数,详见[RecordDataCallback](_sensor.md#recorddatacallback)。 | + +**返回:** + +如果注册回调函数成功,则返回0。 + +如果注册回调函数失败,则返回负数。 + + +### SetBatch + + +``` +int32_t(* SensorInterface::SetBatch) ([in] int32_t sensorId,[in] int64_t samplingInterval,[in] int64_t reportInterval) +``` + +**描述:** + +设置指定传感器的数据采样间隔和数据上报间隔。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 | +| samplingInterval | 设置指定传感器的数据采样间隔,单位纳秒。 | +| reportInterval | 表示传感器数据上报间隔,单位纳秒。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + + +### SetMode + + +``` +int32_t(* SensorInterface::SetMode) ([in] int32_t sensorId,[in] int32_t mode) +``` + +**描述:** + +设置指定传感器的数据上报模式,不同的工作模式,上报数据的方式不同。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 | +| mode | 传感器的数据上报模式,详见[SensorModeType](_sensor.md#sensormodetype)。 | + +**返回:** + +如果设置传感器数据报告模式成功,则返回0。 + +如果设置传感器数据报告模式失败,则返回负数。 + + +### SetOption + + +``` +int32_t(* SensorInterface::SetOption) ([in] int32_t sensorId,[in] uint32_t option) +``` + +**描述:** + +设置指定传感器量程、精度等可选配置。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 | +| option | 传感器的量程、精度等配置。 | + +**返回:** + +如果设置参数成功,则返回0。 + +如果设置参数失败,则返回负数。 + + +### Unregister + + +``` +int32_t(* SensorInterface::Unregister) ([in] int32_t groupId,[in] RecordDataCallback cb) +``` + +**描述:** + +订阅者去注册传感器数据回调函数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| groupId | 传感器组ID。 sensorId枚举值范围为128-160,表示已订阅医疗传感器服务。只需成功取消订阅一次,无需重复取消订阅。 sensorId枚举值范围不在128-160之间,这意味着传统传感器已订阅。并且成功取消订阅。 | +| cb | 要注册的回调函数,详见[RecordDataCallback](_sensor.md#recorddatacallback)。 | + +**返回:** + +如果取消注册回调函数成功,则返回0。 + +如果取消注册回调函数失败,则返回负数。 diff --git a/zh-cn/device-dev/api/_sta_info.md b/zh-cn/device-dev/api/_sta_info.md new file mode 100644 index 0000000000..605e17a4f2 --- /dev/null +++ b/zh-cn/device-dev/api/_sta_info.md @@ -0,0 +1,46 @@ +# StaInfo + + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [mac](#mac) [[WIFI_MAC_ADDR_LENGTH](_w_l_a_n.md#ga27ea7645cf89c113dae48346e19a676f)] | STA的MAC地址 | + + +## **详细描述** + +描述与AP连接的STA的基本信息。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### mac + + +``` +unsigned char StaInfo::mac[WIFI_MAC_ADDR_LENGTH] +``` + +**描述:** + +STA的MAC地址。 diff --git a/zh-cn/device-dev/api/_support_buffer_type.md b/zh-cn/device-dev/api/_support_buffer_type.md new file mode 100644 index 0000000000..22e7876400 --- /dev/null +++ b/zh-cn/device-dev/api/_support_buffer_type.md @@ -0,0 +1,77 @@ +# SupportBufferType + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [size](#size) | 结构体大小 | +| [version](#version) | 组件版本信息 | +| [portIndex](#portindex) | 端口索引 | +| [bufferTypes](#buffertypes) | 支持的所有Buffer类型 | + + +## **详细描述** + +SupportBuffer类型定义。 + + +## **类成员变量说明** + + +### bufferTypes + + +``` +uint32_t SupportBufferType::bufferTypes +``` + +**描述:** + +支持的所有Buffer类型 + + +### portIndex + + +``` +uint32_t SupportBufferType::portIndex +``` + +**描述:** + +端口索引 + + +### size + + +``` +uint32_t SupportBufferType::size +``` + +**描述:** + +结构体大小 + + +### version + + +``` +union OMX_VERSIONTYPE SupportBufferType::version +``` + +**描述:** + +组件版本信息 diff --git a/zh-cn/device-dev/api/_template_info.md b/zh-cn/device-dev/api/_template_info.md new file mode 100644 index 0000000000..1d900c103e --- /dev/null +++ b/zh-cn/device-dev/api/_template_info.md @@ -0,0 +1,85 @@ +# TemplateInfo + + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) | [HdfPinAuth](_hdf_pin_auth.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [executorType](#executortype) | 执行器类型,根据执行器支持的算法类型进行分类。 | +| [freezingTime](#freezingtime) | 认证方式被冻结的时间。 | +| [remainTimes](#remaintimes) | 认证方式距离被冻结的可处理认证请求次数。 | +| [extraInfo](#extrainfo) | 其他相关信息,用于支持信息扩展。 | + + +## **详细描述** + +凭据模版信息。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### executorType + + +``` +unsigned int TemplateInfo::executorType +``` + +**描述:** + +执行器类型,根据执行器支持的算法类型进行分类。 + + +### extraInfo + + +``` +unsigned char [] TemplateInfo::extraInfo +``` + +**描述:** + +其他相关信息,用于支持信息扩展。 + + +### freezingTime + + +``` +int TemplateInfo::freezingTime +``` + +**描述:** + +认证方式被冻结的时间。 + + +### remainTimes + + +``` +int TemplateInfo::remainTimes +``` + +**描述:** + +认证方式距离被冻结的可处理认证请求次数。 diff --git a/zh-cn/device-dev/api/_thermal_types_8idl.md b/zh-cn/device-dev/api/_thermal_types_8idl.md new file mode 100644 index 0000000000..38c78e4de0 --- /dev/null +++ b/zh-cn/device-dev/api/_thermal_types_8idl.md @@ -0,0 +1,41 @@ +# ThermalTypes.idl + + +## **概述** + +**所属模块:** + +[Thermal](thermal.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [ThermalZoneInfo](_thermal_zone_info.md) | 设备发热的信息。 [更多...](_thermal_zone_info.md) | +| [HdfThermalCallbackInfo](_hdf_thermal_callback_info.md) | 设备发热的信息列表。 [更多...](_hdf_thermal_callback_info.md) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.thermal.v1_0 | 设备温度管理接口的包路径 | + + +## **详细描述** + +设备发热状态相关的数据类型。 + +热管理中使用的数据类型,包括设备发热的信息和设备发热的信息列表。 + +**Since:** + +3.1 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/_thermal_zone_info.md b/zh-cn/device-dev/api/_thermal_zone_info.md new file mode 100644 index 0000000000..6c60b3463c --- /dev/null +++ b/zh-cn/device-dev/api/_thermal_zone_info.md @@ -0,0 +1,55 @@ +# ThermalZoneInfo + + +## **概述** + +**所属模块:** + +[Thermal](thermal.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [type](#type) | 发热器件的类型。 | +| [temp](#temp) | 器件的温度值。 | + + +## **详细描述** + +设备发热的信息。 + +**Since:** + +3.1 + + +## **类成员变量说明** + + +### temp + + +``` +int ThermalZoneInfo::temp +``` + +**描述:** + +器件的温度值。 + + +### type + + +``` +String ThermalZoneInfo::type +``` + +**描述:** + +发热器件的类型。 diff --git a/zh-cn/device-dev/api/_types_8idl.md b/zh-cn/device-dev/api/_types_8idl.md new file mode 100644 index 0000000000..2293361b39 --- /dev/null +++ b/zh-cn/device-dev/api/_types_8idl.md @@ -0,0 +1,49 @@ +# Types.idl + + +## **概述** + +**所属模块:** + +[Battery](battery.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [BatteryInfo](_battery_info.md) | 电池相关信息。 [更多...](_battery_info.md) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [BatteryHealthState](battery.md#batteryhealthstate) {   [BATTERY_HEALTH_UNKNOWN](battery.md#ggaec9b86ee31a5d8abf7c804d81b542f2fa383fc8bba89eb9195e07da10ebff6a6a) = 0, [BATTERY_HEALTH_GOOD](battery.md#ggaec9b86ee31a5d8abf7c804d81b542f2fa9019a1cab9aaffb56b968f846eae45c2), [BATTERY_HEALTH_OVERHEAT](battery.md#ggaec9b86ee31a5d8abf7c804d81b542f2fa34cb203c04d3f8b391fd0f193673d2cc), [BATTERY_HEALTH_OVERVOLTAGE](battery.md#ggaec9b86ee31a5d8abf7c804d81b542f2faeb20e3755faa28a34b37c20fce37672f),   [BATTERY_HEALTH_COLD](battery.md#ggaec9b86ee31a5d8abf7c804d81b542f2fa1ed5e419d57b9ff71ac397d1b17eb420), [BATTERY_HEALTH_DEAD](battery.md#ggaec9b86ee31a5d8abf7c804d81b542f2fa05f1241d31443ffefec7ac784e141341), [BATTERY_HEALTH_RESERVED](battery.md#ggaec9b86ee31a5d8abf7c804d81b542f2fa9583572172c946660b255d5ac3604f9b) } | 电池的健康状态。 [更多...](battery.md#batteryhealthstate) | +| [BatteryChargeState](battery.md#batterychargestate) {   [CHARGE_STATE_NONE](battery.md#gga35791cca3603f7855c6368fbd00b21f1afdc91bf6bc92fdcd784cb274b1a14d28) = 0, [CHARGE_STATE_ENABLE](battery.md#gga35791cca3603f7855c6368fbd00b21f1a03dc57c4f65da6b1472ae4f7ed676234), [CHARGE_STATE_DISABLE](battery.md#gga35791cca3603f7855c6368fbd00b21f1a33914f4c27c801d3ba5315ca486655cc), [CHARGE_STATE_FULL](battery.md#gga35791cca3603f7855c6368fbd00b21f1a70b48a2925871d0364ae6344bce944ae),   [CHARGE_STATE_RESERVED](battery.md#gga35791cca3603f7855c6368fbd00b21f1a38af1f4d697139ebaa8eb97fb5b34120) } | 电池的充电状态。 [更多...](battery.md#batterychargestate) | +| [BatteryPluggedType](battery.md#batterypluggedtype) {   [PLUGGED_TYPE_NONE](battery.md#ggab80029eabf9d0fdcc3ab4d4a4c3be6baa23f13d9ed048300c42930d844ead29c7) = 0, [PLUGGED_TYPE_AC](battery.md#ggab80029eabf9d0fdcc3ab4d4a4c3be6baaba143c5ab6146a49e3c1362d3ba38751), [PLUGGED_TYPE_USB](battery.md#ggab80029eabf9d0fdcc3ab4d4a4c3be6baacfe481a50e9915a049edd3debcc7de1c), [PLUGGED_TYPE_WIRELESS](battery.md#ggab80029eabf9d0fdcc3ab4d4a4c3be6baaa8b900a0327e60b02ad7d3501057be38),   [PLUGGED_TYPE_BUTT](battery.md#ggab80029eabf9d0fdcc3ab4d4a4c3be6baac85bb1a7b26e14b55cd9bb977c3e66c0) } | 电池的充电设备类型。 [更多...](battery.md#batterypluggedtype) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.battery.v1_0 | 电池信息接口的包路径 | + + +## **详细描述** + +电池信息相关数据类型。 + +电池信息中使用的数据类型,包括健康状态、充电状态、充电设备类型和电池信息结构。 + +**Since:** + +3.1 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/_u_s_b.md b/zh-cn/device-dev/api/_u_s_b.md new file mode 100644 index 0000000000..40674ad1d6 --- /dev/null +++ b/zh-cn/device-dev/api/_u_s_b.md @@ -0,0 +1,1718 @@ +# USB + + +## **汇总** + + +### 文件 + + | 文件 | 描述 | +| -------- | -------- | +| [usb_info.h](usb__info_8h.md) | USB驱动订阅模块使用的数据类型。 | +| [usbd_client.h](usbd__client_8h.md) | 声明标准USB驱动接口函数。 | +| [usbd_subscriber.h](usbd__subscriber_8h.md) | USB驱动订阅模块。 | +| [usbd_type.h](usbd__type_8h.md) | USB驱动模块接口定义中使用的自定义数据类型。 | + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [OHOS::USB::USBDeviceInfo](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md) | USB设备信息。 [更多...](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md) | +| [OHOS::USB::UsbInfo](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md) | USB设备信息类。 [更多...](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md) | +| [OHOS::USB::UsbdClient](_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md) | Usb驱动类。[更多...](_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md) | +| [OHOS::USB::UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md) | 订阅类。[更多...](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md) | +| [OHOS::USB::UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) | USB设备。 [更多...](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) | +| [OHOS::USB::UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) | 管道信息。 [更多...](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) | +| [OHOS::USB::UsbCtrlTransfer](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md) | USB控制传输。 [更多...](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md) | + + +### 宏定义 + + | 宏定义 | 描述 | +| -------- | -------- | +| [USB_MAX_INTERFACES](#usbmaxinterfaces)   32 | USB设备最大接口数量。 | + + +### 类型定义 + + | 类型定义 | 描述 | +| -------- | -------- | +| ([UsbdRequestCallback](#usbdrequestcallback)) (uint8_t \*requestArg) | 请求回调函数。[更多...](#usbdrequestcallback) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [UsbdBulkCbCmd](#usbdbulkcbcmd) { [ERROR:Invalid link:zh-cn_topic_0000001348413461.xml#xref1485062147083931,link:zh-cn_topic_0000001348413461.xml#gga734dda3df39a921fae88ada278bf35a3a5f84dff517954bbde58a2e1a0b8e8da6](#gga734dda3df39a921fae88ada278bf35a3a5f84dff517954bbde58a2e1a0b8e8da6), [ERROR:Invalid link:zh-cn_topic_0000001348413461.xml#xref1983135169083931,link:zh-cn_topic_0000001348413461.xml#gga734dda3df39a921fae88ada278bf35a3ac7fc2d22d4d348c672003c308263b9fb](#gga734dda3df39a921fae88ada278bf35a3ac7fc2d22d4d348c672003c308263b9fb) } | 批量回调命令字。 [更多...](#usbdbulkcbcmd) | +| [UsbdDeviceAction](#usbddeviceaction) { [ERROR:Invalid link:zh-cn_topic_0000001348413461.xml#xref709354729083931,link:zh-cn_topic_0000001348413461.xml#gga4b7620d940f58152cd17a12401120c16af3ed12ba6838a4ebb16ae0713cb2324f](#gga4b7620d940f58152cd17a12401120c16af3ed12ba6838a4ebb16ae0713cb2324f) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348413461.xml#xref601390832083931,link:zh-cn_topic_0000001348413461.xml#gga4b7620d940f58152cd17a12401120c16a97801ad0ac063dbb69d698adc19159bf](#gga4b7620d940f58152cd17a12401120c16a97801ad0ac063dbb69d698adc19159bf), [ERROR:Invalid link:zh-cn_topic_0000001348413461.xml#xref1423061468083931,link:zh-cn_topic_0000001348413461.xml#gga4b7620d940f58152cd17a12401120c16aecf16e36110fbe276f2a11e91252de20](#gga4b7620d940f58152cd17a12401120c16aecf16e36110fbe276f2a11e91252de20), [ERROR:Invalid link:zh-cn_topic_0000001348413461.xml#xref273156642083931,link:zh-cn_topic_0000001348413461.xml#gga4b7620d940f58152cd17a12401120c16a45115ba5d58e4a5358acae70a9fc33d4](#gga4b7620d940f58152cd17a12401120c16a45115ba5d58e4a5358acae70a9fc33d4) } | 主机端和设备端插拔事件。 [更多...](#usbddeviceaction) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [OHOS::USB::UsbInfo::setDevInfoStatus](#setdevinfostatus) (int32_t status) | 设置USB设备状态。 [更多...](#setdevinfostatus) | +| [OHOS::USB::UsbInfo::setDevInfoBusNum](#setdevinfobusnum) (int32_t busNum) | 设置USB总线编号。 [更多...](#setdevinfobusnum) | +| [OHOS::USB::UsbInfo::setDevInfoDevNum](#setdevinfodevnum) (int32_t devNum) | 设置USB设备编号。 [更多...](#setdevinfodevnum) | +| [OHOS::USB::UsbInfo::getDevInfoStatus](#getdevinfostatus) () const | 获取USB设备状态。 [更多...](#getdevinfostatus) | +| [OHOS::USB::UsbInfo::getDevInfoBusNum](#getdevinfobusnum) () const | 获取USB总线编号。 [更多...](#getdevinfobusnum) | +| [OHOS::USB::UsbInfo::getDevInfoDevNum](#getdevinfodevnum) () const | 获取USB设备编号。 [更多...](#getdevinfodevnum) | +| **OHOS::USB::UsbdClient::GetInstance** () | 获取实例。 | +| [OHOS::USB::UsbdClient::OpenDevice](#opendevice) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev) | 打开设备,建立连接。 [更多...](#opendevice) | +| [OHOS::USB::UsbdClient::CloseDevice](#closedevice) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev) | 关闭设备,释放与设备相关的所有系统资源。 [更多...](#closedevice) | +| [OHOS::USB::UsbdClient::GetDeviceDescriptor](#getdevicedescriptor) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, std::vector< uint8_t > &descriptor) | 获取设备描述符。 [更多...](#getdevicedescriptor) | +| [OHOS::USB::UsbdClient::GetStringDescriptor](#getstringdescriptor) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, uint8_t descId, std::vector< uint8_t > &descriptor) | 根据String ID获取设备的字符串描述符。 [更多...](#getstringdescriptor) | +| [OHOS::USB::UsbdClient::GetConfigDescriptor](#getconfigdescriptor) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, uint8_t descId, std::vector< uint8_t > &descriptor) | 根据config ID获取设备的配置描述符config。 [更多...](#getconfigdescriptor) | +| [OHOS::USB::UsbdClient::GetRawDescriptor](#getrawdescriptor) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, std::vector< uint8_t > &descriptor) | 获取原始描述符。 [更多...](#getrawdescriptor) | +| [OHOS::USB::UsbdClient::GetFileDescriptor](#getfiledescriptor) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, int32_t &fd) | 获取文件描述符。 [更多...](#getfiledescriptor) | +| [OHOS::USB::UsbdClient::SetConfig](#setconfig) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, uint8_t configIndex) | 设置当前的config信息。 [更多...](#setconfig) | +| [OHOS::USB::UsbdClient::GetConfig](#getconfig) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, uint8_t &configIndex) | 获取当前的config信息。 [更多...](#getconfig) | +| [OHOS::USB::UsbdClient::ClaimInterface](#claiminterface) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, uint8_t interfaceid, uint8_t force) | 打开接口,并声明独占接口,必须在数据传输前执行。 [更多...](#claiminterface) | +| [OHOS::USB::UsbdClient::ReleaseInterface](#releaseinterface) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, uint8_t interfaceid) | 关闭接口,释放接口的占用,在停止数据传输后执行。 [更多...](#releaseinterface) | +| [OHOS::USB::UsbdClient::SetInterface](#setinterface) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, uint8_t interfaceid, uint8_t altIndex) | 设置指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。 [更多...](#setinterface) | +| [OHOS::USB::UsbdClient::BulkTransferRead](#bulktransferread) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, int32_t timeout, std::vector< uint8_t > &data) | 在给定端点上执行批量数据读取,返回读取的数据和长度,端点方向必须为数据读取,可以设置超时时间。 [更多...](#bulktransferread) | +| [OHOS::USB::UsbdClient::BulkTransferWrite](#bulktransferwrite) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, int32_t timeout, const std::vector< uint8_t > &data) | 在给定端点上执行批量数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 [更多...](#bulktransferwrite) | +| [OHOS::USB::UsbdClient::ControlTransfer](#controltransfer) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbCtrlTransfer](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md) &ctrl, std::vector< uint8_t > &data) | 对此设备执行端点零的控制事务,传输方向由请求类型决定。 如果requestType& USB_ENDPOINT_DIR_MASK是USB_DIR_OUT ,则传输是写入,如果是USB_DIR_IN ,则传输是读取。 [更多...](#controltransfer) | +| [OHOS::USB::UsbdClient::InterruptTransferRead](#interrupttransferread) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, int32_t timeout, std::vector< uint8_t > &data) | 在给定端点上执行中断数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 [更多...](#interrupttransferread) | +| [OHOS::USB::UsbdClient::InterruptTransferWrite](#interrupttransferwrite) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, int32_t timeout, std::vector< uint8_t > &data) | 在给定端点上执行中断数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 [更多...](#interrupttransferwrite) | +| [OHOS::USB::UsbdClient::IsoTransferRead](#isotransferread) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, int32_t timeout, std::vector< uint8_t > &data) | 在给定端点上执行等时数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 [更多...](#isotransferread) | +| [OHOS::USB::UsbdClient::IsoTransferWrite](#isotransferwrite) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, int32_t timeout, std::vector< uint8_t > &data) | 在给定端点上执行等时数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 [更多...](#isotransferwrite) | +| [OHOS::USB::UsbdClient::RequestQueue](#requestqueue) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, const std::vector< uint8_t > &clientData, const std::vector< uint8_t > &buffer) | 将指定的端点进行异步数据发送或者接收请求,数据传输方向由端点方向决定。 [更多...](#requestqueue) | +| [OHOS::USB::UsbdClient::RequestWait](#requestwait) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, std::vector< uint8_t > &clientData, std::vector< uint8_t > &buffer, int32_t timeout) | 等待RequestQueue异步请求的操作结果。 [更多...](#requestwait) | +| [OHOS::USB::UsbdClient::RequestCancel](#requestcancel) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe) | 取消待处理的数据请求。 [更多...](#requestcancel) | +| [OHOS::USB::UsbdClient::GetCurrentFunctions](#getcurrentfunctions) (int32_t &funcs) | 获取从设备支持的功能列表(按位域表示)(从设备)。 [更多...](#getcurrentfunctions) | +| [OHOS::USB::UsbdClient::SetCurrentFunctions](#setcurrentfunctions) (int32_t funcs) | 设置从设备支持的功能列表(按位域表示)(从设备)。 [更多...](#setcurrentfunctions) | +| [OHOS::USB::UsbdClient::SetPortRole](#setportrole) (int32_t portId, int32_t powerRole, int32_t dataRole) | 设置port端口的角色。 [更多...](#setportrole) | +| [OHOS::USB::UsbdClient::QueryPort](#queryport) (int32_t &portId, int32_t &powerRole, int32_t &dataRole, int32_t &mode) | 查询port端口的当前设置。 [更多...](#queryport) | +| [OHOS::USB::UsbdClient::BindUsbdSubscriber](#bindusbdsubscriber) (const sptr< [UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md) > &subscriber) | 绑定订阅者。 [更多...](#bindusbdsubscriber) | +| [OHOS::USB::UsbdClient::UnbindUsbdSubscriber](#unbindusbdsubscriber) (const sptr< [UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md) > &subscriber) | 解绑订阅者。 [更多...](#unbindusbdsubscriber) | +| [OHOS::USB::UsbdClient::RegBulkCallback](#regbulkcallback) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, const sptr< IRemoteObject > &cb) | 注册批量传输异步回调函数。 [更多...](#regbulkcallback) | +| [OHOS::USB::UsbdClient::UnRegBulkCallback](#unregbulkcallback) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe) | 注销批量传输异步回调函数。 [更多...](#unregbulkcallback) | +| [OHOS::USB::UsbdClient::BulkRead](#bulkread) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, sptr< Ashmem > &ashmem) | 批量传输异步读数据。 [更多...](#bulkread) | +| [OHOS::USB::UsbdClient::BulkWrite](#bulkwrite) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe, sptr< Ashmem > &ashmem) | 批量传输异步写数据。 [更多...](#bulkwrite) | +| [OHOS::USB::UsbdClient::BulkCancel](#bulkcancel) (const [UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) &dev, const [UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) &pipe) | 批量传输异步取消接口,用于取消当前接口的异步批量读写操作。 [更多...](#bulkcancel) | +| [OHOS::USB::UsbdSubscriber::DeviceEvent](#deviceevent) (const [UsbInfo](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md) &info)=0 | 设备事件。 [更多...](#deviceevent) | +| [OHOS::USB::UsbdSubscriber::PortChangedEvent](#portchangedevent) (int32_t portId, int32_t powerRole, int32_t dataRole, int32_t mode)=0 | 端口改变事件。 [更多...](#portchangedevent) | +| [OHOS::USB::UsbdSubscriber::OnRemoteRequest](#onremoterequest) (uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override | 远程请求。 [更多...](#onremoterequest) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| [OHOS::USB::USBDeviceInfo::status](#status) | USB设备状态 | +| [OHOS::USB::USBDeviceInfo::busNum](#busnum-12) | USB总线编号 | +| [OHOS::USB::USBDeviceInfo::devNum](#devnum) | USB设备编号 | +| [OHOS::USB::UsbDev::busNum](#busnum-22) | USB总线编号 | +| [OHOS::USB::UsbDev::devAddr](#devaddr) | USB设备地址 | +| [OHOS::USB::UsbPipe::interfaceId](#interfaceid) | USB设备接口ID | +| [OHOS::USB::UsbPipe::endpointId](#endpointid) | USB设备端点ID | +| [OHOS::USB::UsbCtrlTransfer::requestType](#requesttype) | 请求类型 | +| [OHOS::USB::UsbCtrlTransfer::requestCmd](#requestcmd) | 请求命令字 | +| [OHOS::USB::UsbCtrlTransfer::value](#value) | 请求值 | +| [OHOS::USB::UsbCtrlTransfer::index](#index) | 索引 | +| [OHOS::USB::UsbCtrlTransfer::timeout](#timeout) | 超时时间 | + + +## **详细描述** + +定义(USB)功能的标准API接口。 + +该模块用于获取描述符、接口对象、请求对象和提交请求的自定义数据类型和函数。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +## **宏定义说明** + + +### USB_MAX_INTERFACES + + +``` +#define USB_MAX_INTERFACES 32 +``` + +**描述:** + +USB设备最大接口数量 + + +## **类型定义说明** + + +### UsbdRequestCallback + + +``` +typedef void(* UsbdRequestCallback) (uint8_t *requestArg) +``` + +**描述:** + +请求回调函数 + + +## **枚举类型说明** + + +### UsbdBulkCbCmd + + +``` +enum UsbdBulkCbCmd +``` + +**描述:** + +批量回调命令字。 + + | 枚举值 | 描述 | +| -------- | -------- | +| CMD_USBD_BULK_CALLBACK_READ | 批量回调读取 | +| CMD_USBD_BULK_CALLBACK_WRITE | 批量回调写入 | + + +### UsbdDeviceAction + + +``` +enum UsbdDeviceAction +``` + +**描述:** + +主机端和设备端插拔事件。 + + | 枚举值 | 描述 | +| -------- | -------- | +| ACT_DEVUP | 主机端接入设备 | +| ACT_DEVDOWN | 主机端拔出设备 | +| ACT_UPDEVICE | 设备连接 | +| ACT_DOWNDEVICE | 设备断开 | + + +## **函数说明** + + +### BindUsbdSubscriber() + + +``` +int32_t OHOS::USB::UsbdClient::BindUsbdSubscriber (const sptr< UsbdSubscriber > & subscriber) +``` + +**描述:** + +绑定订阅者。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| subscriber | 输入参数,订阅者信息,详见[UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md)。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### BulkCancel() + + +``` +int32_t OHOS::USB::UsbdClient::BulkCancel (const UsbDev & dev, const UsbPipe & pipe ) +``` + +**描述:** + +批量传输异步取消接口,用于取消当前接口的异步批量读写操作。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### BulkRead() + + +``` +int32_t OHOS::USB::UsbdClient::BulkRead (const UsbDev & dev, const UsbPipe & pipe, sptr< Ashmem > & ashmem ) +``` + +**描述:** + +批量传输异步读数据。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | +| ashmem | 输出参数,为共享内存,用于存放读取的数据,详见**Ashmem**。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### BulkTransferRead() + + +``` +int32_t OHOS::USB::UsbdClient::BulkTransferRead (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data ) +``` + +**描述:** + +在给定端点上执行批量数据读取,返回读取的数据和长度,端点方向必须为数据读取,可以设置超时时间。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | +| timeout | 输入参数,超时时间。 | +| data | 输出参数,获取写入的数据。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### BulkTransferWrite() + + +``` +int32_t OHOS::USB::UsbdClient::BulkTransferWrite (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, const std::vector< uint8_t > & data ) +``` + +**描述:** + +在给定端点上执行批量数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | +| timeout | 输入参数,超时时间。 | +| data | 输入参数,写入的数据。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### BulkWrite() + + +``` +int32_t OHOS::USB::UsbdClient::BulkWrite (const UsbDev & dev, const UsbPipe & pipe, sptr< Ashmem > & ashmem ) +``` + +**描述:** + +批量传输异步写数据。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | +| ashmem | 输入参数,为共享内存,用于存放需要写入的数据,详见**Ashmem**。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### ClaimInterface() + + +``` +int32_t OHOS::USB::UsbdClient::ClaimInterface (const UsbDev & dev, uint8_t interfaceid, uint8_t force ) +``` + +**描述:** + +打开接口,并声明独占接口,必须在数据传输前执行。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| interfaceid | 输入参数,USB设备interface ID。 | +| force | 输入参数,是否强制: 1强制 0不强制。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### CloseDevice() + + +``` +int32_t OHOS::USB::UsbdClient::CloseDevice (const UsbDev & dev) +``` + +**描述:** + +关闭设备,释放与设备相关的所有系统资源。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### ControlTransfer() + + +``` +int32_t OHOS::USB::UsbdClient::ControlTransfer (const UsbDev & dev, const UsbCtrlTransfer & ctrl, std::vector< uint8_t > & data ) +``` + +**描述:** + +对此设备执行端点零的控制事务,传输方向由请求类型决定。 如果requestType& USB_ENDPOINT_DIR_MASK是USB_DIR_OUT ,则传输是写入,如果是USB_DIR_IN ,则传输是读取。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| ctrl | 输入参数,USB设备控制数据包结构,详见[UsbCtrlTransfer](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md)。 | +| data | 输入/输出参数,读取/写入的数据。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### DeviceEvent() + + +``` +virtual int32_t OHOS::USB::UsbdSubscriber::DeviceEvent (const UsbInfo & info) +``` + +**描述:** + +设备事件。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| [UsbInfo](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md) | 输入参数,USB设备信息。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### GetConfig() + + +``` +int32_t OHOS::USB::UsbdClient::GetConfig (const UsbDev & dev, uint8_t & configIndex ) +``` + +**描述:** + +获取当前的config信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| configIndex | 输出参数,USB设备config信息。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### GetConfigDescriptor() + + +``` +int32_t OHOS::USB::UsbdClient::GetConfigDescriptor (const UsbDev & dev, uint8_t descId, std::vector< uint8_t > & descriptor ) +``` + +**描述:** + +根据config ID获取设备的配置描述符config。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| descId | 输入参数,USB的config ID。 | +| descriptor | 输出参数,获取USB设备config信息。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### GetCurrentFunctions() + + +``` +int32_t OHOS::USB::UsbdClient::GetCurrentFunctions (int32_t & funcs) +``` + +**描述:** + +获取从设备支持的功能列表(按位域表示)(从设备)。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| funcs | 输出参数,获取当前设备的function的值。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### GetDeviceDescriptor() + + +``` +int32_t OHOS::USB::UsbdClient::GetDeviceDescriptor (const UsbDev & dev, std::vector< uint8_t > & descriptor ) +``` + +**描述:** + +获取设备描述符。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| descriptor | 输出参数,USB设备描述符信息。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### getDevInfoBusNum() + + +``` +int32_t OHOS::USB::UsbInfo::getDevInfoBusNum () const +``` + +**描述:** + +获取USB总线编号。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| status | 输出参数,USB总线编号。 | + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### getDevInfoDevNum() + + +``` +int32_t OHOS::USB::UsbInfo::getDevInfoDevNum () const +``` + +**描述:** + +获取USB设备编号。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| status | 输出参数,USB设备编号。 | + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### getDevInfoStatus() + + +``` +int32_t OHOS::USB::UsbInfo::getDevInfoStatus () const +``` + +**描述:** + +获取USB设备状态。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| status | 输出参数,设备状态。 | + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### GetFileDescriptor() + + +``` +int32_t OHOS::USB::UsbdClient::GetFileDescriptor (const UsbDev & dev, int32_t & fd ) +``` + +**描述:** + +获取文件描述符。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| fd | 输出参数,USB设备文件描述符。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### GetRawDescriptor() + + +``` +int32_t OHOS::USB::UsbdClient::GetRawDescriptor (const UsbDev & dev, std::vector< uint8_t > & descriptor ) +``` + +**描述:** + +获取原始描述符。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| descriptor | 输出参数,USB设备原始描述符。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### GetStringDescriptor() + + +``` +int32_t OHOS::USB::UsbdClient::GetStringDescriptor (const UsbDev & dev, uint8_t descId, std::vector< uint8_t > & descriptor ) +``` + +**描述:** + +根据String ID获取设备的字符串描述符。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| descId | 输入参数,USB的string ID。 | +| descriptor | 输出参数,获取USB设备config信息。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### InterruptTransferRead() + + +``` +int32_t OHOS::USB::UsbdClient::InterruptTransferRead (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data ) +``` + +**描述:** + +在给定端点上执行中断数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | +| timeout | 输入参数,超时时间。 | +| data | 输出参数,读取的数据。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### InterruptTransferWrite() + + +``` +int32_t OHOS::USB::UsbdClient::InterruptTransferWrite (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data ) +``` + +**描述:** + +在给定端点上执行中断数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | +| timeout | 输入参数,超时时间。 | +| data | 输入参数,写入的数据。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### IsoTransferRead() + + +``` +int32_t OHOS::USB::UsbdClient::IsoTransferRead (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data ) +``` + +**描述:** + +在给定端点上执行等时数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | +| timeout | 输入参数,超时时间。 | +| data | 输出参数,读取的数据。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### IsoTransferWrite() + + +``` +int32_t OHOS::USB::UsbdClient::IsoTransferWrite (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data ) +``` + +**描述:** + +在给定端点上执行等时数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | +| timeout | 输入参数,超时时间。 | +| data | 输入参数,读取的数据。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### OnRemoteRequest() + + +``` +int32_t OHOS::USB::UsbdSubscriber::OnRemoteRequest (uint32_t code, MessageParcel & data, MessageParcel & reply, MessageOption & option ) +``` + +**描述:** + +远程请求。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| code | 输入参数,命令字。 | +| data | 输入参数,待解析的数据。 | +| reply | 输出参数,返回的数据。 | +| option | 输入参数,选项数据。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### OpenDevice() + + +``` +int32_t OHOS::USB::UsbdClient::OpenDevice (const UsbDev & dev) +``` + +**描述:** + +打开设备,建立连接。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### PortChangedEvent() + + +``` +virtual int32_t OHOS::USB::UsbdSubscriber::PortChangedEvent (int32_t portId, int32_t powerRole, int32_t dataRole, int32_t mode ) +``` + +**描述:** + +端口改变事件。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| portId | 输入参数,端口ID。 | +| powerRole | 输入参数,电源角色的值。 | +| dataRole | 输入参数,数据角色的值。 | +| mode | 输入参数,端口模式的值。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### QueryPort() + + +``` +int32_t OHOS::USB::UsbdClient::QueryPort (int32_t & portId, int32_t & powerRole, int32_t & dataRole, int32_t & mode ) +``` + +**描述:** + +查询port端口的当前设置。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| portId | 输出参数,port接口ID。 | +| powerRole | 输出参数,电源角色的值。 | +| dataRole | 输出参数,数据角色的值。 | +| mode | 输出参数,模式的值。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### RegBulkCallback() + + +``` +int32_t OHOS::USB::UsbdClient::RegBulkCallback (const UsbDev & dev, const UsbPipe & pipe, const sptr< IRemoteObject > & cb ) +``` + +**描述:** + +注册批量传输异步回调函数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | +| cb | 输入参数,回调函数对象的引用。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### ReleaseInterface() + + +``` +int32_t OHOS::USB::UsbdClient::ReleaseInterface (const UsbDev & dev, uint8_t interfaceid ) +``` + +**描述:** + +关闭接口,释放接口的占用,在停止数据传输后执行。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| interfaceid | 输入参数,USB设备interface ID。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### RequestCancel() + + +``` +int32_t OHOS::USB::UsbdClient::RequestCancel (const UsbDev & dev, const UsbPipe & pipe ) +``` + +**描述:** + +取消待处理的数据请求。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### RequestQueue() + + +``` +int32_t OHOS::USB::UsbdClient::RequestQueue (const UsbDev & dev, const UsbPipe & pipe, const std::vector< uint8_t > & clientData, const std::vector< uint8_t > & buffer ) +``` + +**描述:** + +将指定的端点进行异步数据发送或者接收请求,数据传输方向由端点方向决定。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | +| clientData | 输入参数,用户数据。 | +| buffer | 输入参数,传输的数据。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### RequestWait() + + +``` +int32_t OHOS::USB::UsbdClient::RequestWait (const UsbDev & dev, std::vector< uint8_t > & clientData, std::vector< uint8_t > & buffer, int32_t timeout ) +``` + +**描述:** + +等待RequestQueue异步请求的操作结果。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| clientData | 输入参数,用户数据。 | +| buffer | 输入参数,传输数据。 | +| timeout | 输入参数,超时时间。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### SetConfig() + + +``` +int32_t OHOS::USB::UsbdClient::SetConfig (const UsbDev & dev, uint8_t configIndex ) +``` + +**描述:** + +设置当前的config信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| configIndex | 输入参数,USB设备config信息。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### SetCurrentFunctions() + + +``` +int32_t OHOS::USB::UsbdClient::SetCurrentFunctions (int32_t funcs) +``` + +**描述:** + +设置从设备支持的功能列表(按位域表示)(从设备)。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| funcs | 输入参数,传入设备支持的function的值。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### setDevInfoBusNum() + + +``` +void OHOS::USB::UsbInfo::setDevInfoBusNum (int32_t busNum) +``` + +**描述:** + +设置USB总线编号。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| status | 输入参数,USB总线编号。 | + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### setDevInfoDevNum() + + +``` +void OHOS::USB::UsbInfo::setDevInfoDevNum (int32_t devNum) +``` + +**描述:** + +设置USB设备编号。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| status | 输入参数,USB设备编号。 | + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### setDevInfoStatus() + + +``` +void OHOS::USB::UsbInfo::setDevInfoStatus (int32_t status) +``` + +**描述:** + +设置USB设备状态。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| status | 输入参数,设备状态。 | + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### SetInterface() + + +``` +int32_t OHOS::USB::UsbdClient::SetInterface (const UsbDev & dev, uint8_t interfaceid, uint8_t altIndex ) +``` + +**描述:** + +设置指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| interfaceid | 输入参数,USB设备interface ID。 | +| altIndex | 输入参数,interface的AlternateSetting信息。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### SetPortRole() + + +``` +int32_t OHOS::USB::UsbdClient::SetPortRole (int32_t portId, int32_t powerRole, int32_t dataRole ) +``` + +**描述:** + +设置port端口的角色。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| portId | 输入参数,port接口ID。 | +| powerRole | 输入参数,电源角色的值。 | +| dataRole | 输入参数,数据角色的值。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### UnbindUsbdSubscriber() + + +``` +int32_t OHOS::USB::UsbdClient::UnbindUsbdSubscriber (const sptr< UsbdSubscriber > & subscriber) +``` + +**描述:** + +解绑订阅者。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| subscriber | 输入参数,订阅者信息,详见[UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md)。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +### UnRegBulkCallback() + + +``` +int32_t OHOS::USB::UsbdClient::UnRegBulkCallback (const UsbDev & dev, const UsbPipe & pipe ) +``` + +**描述:** + +注销批量传输异步回调函数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| dev | 输入参数,USB设备地址信息,详见[UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)。 | +| pipe | 输入参数,USB设备pipe信息,详见[UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)。 | + +**返回:** + +0 表示操作成功。 + +非零值 表示操作失败。 + +**Since:** + +3.0 + +**Version:** + +1.0 + + +## **变量说明** + + +### busNum [1/2] + + +``` +int32_t OHOS::USB::USBDeviceInfo::busNum +``` + +**描述:** + +USB总线编号 + + +### busNum [2/2] + + +``` +uint8_t OHOS::USB::UsbDev::busNum +``` + +**描述:** + +USB总线编号 + + +### devAddr + + +``` +uint8_t OHOS::USB::UsbDev::devAddr +``` + +**描述:** + +USB设备地址 + + +### devNum + + +``` +int32_t OHOS::USB::USBDeviceInfo::devNum +``` + +**描述:** + +USB设备编号 + + +### endpointId + + +``` +uint8_t OHOS::USB::UsbPipe::endpointId +``` + +**描述:** + +USB设备端点ID + + +### index + + +``` +int32_t OHOS::USB::UsbCtrlTransfer::index +``` + +**描述:** + +索引 + + +### interfaceId + + +``` +uint8_t OHOS::USB::UsbPipe::interfaceId +``` + +**描述:** + +USB设备接口ID + + +### requestCmd + + +``` +int32_t OHOS::USB::UsbCtrlTransfer::requestCmd +``` + +**描述:** + +请求命令字 + + +### requestType + + +``` +int32_t OHOS::USB::UsbCtrlTransfer::requestType +``` + +**描述:** + +请求类型 + + +### status + + +``` +int32_t OHOS::USB::USBDeviceInfo::status +``` + +**描述:** + +USB设备状态 + + +### timeout + + +``` +int32_t OHOS::USB::UsbCtrlTransfer::timeout +``` + +**描述:** + +超时时间 + + +### value + + +``` +int32_t OHOS::USB::UsbCtrlTransfer::value +``` + +**描述:** + +请求值 diff --git a/zh-cn/device-dev/api/_use_buffer_type.md b/zh-cn/device-dev/api/_use_buffer_type.md new file mode 100644 index 0000000000..99e2e88d43 --- /dev/null +++ b/zh-cn/device-dev/api/_use_buffer_type.md @@ -0,0 +1,77 @@ +# UseBufferType + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [size](#size) | 结构体大小 | +| [version](#version) | 组件版本信息 | +| [portIndex](#portindex) | 端口索引 | +| [bufferType](#buffertype) | Buffer类型 | + + +## **详细描述** + +UseBuffer类型定义。 + + +## **类成员变量说明** + + +### bufferType + + +``` +uint32_t UseBufferType::bufferType +``` + +**描述:** + +Buffer类型 + + +### portIndex + + +``` +uint32_t UseBufferType::portIndex +``` + +**描述:** + +端口索引 + + +### size + + +``` +uint32_t UseBufferType::size +``` + +**描述:** + +结构体大小 + + +### version + + +``` +union OMX_VERSIONTYPE UseBufferType::version +``` + +**描述:** + +组件版本信息 diff --git a/zh-cn/device-dev/api/_user_auth_types_8idl.md b/zh-cn/device-dev/api/_user_auth_types_8idl.md new file mode 100644 index 0000000000..298db3df93 --- /dev/null +++ b/zh-cn/device-dev/api/_user_auth_types_8idl.md @@ -0,0 +1,52 @@ +# UserAuthTypes.idl + + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [ExecutorRegisterInfo](_executor_register_info.md) | 执行器注册信息。 [更多...](_executor_register_info.md) | +| [ExecutorInfo](_executor_info.md) | 执行器信息。 [更多...](_executor_info.md) | +| [ScheduleInfo](_schedule_info.md) | 调度信息。 [更多...](_schedule_info.md) | +| [AuthSolution](_auth_solution.md) | 认证方案。 [更多...](_auth_solution.md) | +| [ExecutorSendMsg](_executor_send_msg.md) | 执行器发送的消息。 [更多...](_executor_send_msg.md) | +| [AuthResultInfo](_auth_result_info.md) | 用户身份认证结果信息。 [更多...](_auth_result_info.md) | +| [IdentifyResultInfo](_identify_result_info.md) | 用户身份识别结果信息。 [更多...](_identify_result_info.md) | +| [EnrollParam](_enroll_param.md) | 注册认证凭据参数。 [更多...](_enroll_param.md) | +| [CredentialInfo](_credential_info.md) | 认证凭据信息。 [更多...](_credential_info.md) | +| [EnrolledInfo](_enrolled_info.md) | 注册信息。 [更多...](_enrolled_info.md) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [AuthType](_hdf_user_auth.md#authtype) : int {   [PIN](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a048efb7462d3f8cced82716c66926168) = 1, [FACE](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a5cfae78048cf95359061c2e812e7d691) = 2, [FINGERPRINT](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1ad03eae85b35bf9bc22d787c8913b795a) = 4, [ALL](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1ab1d5eac4b1dca480c8056eaea7663b7a) = 0 } | 枚举用户认证凭据类型。 [更多...](_hdf_user_auth.md#authtype) | +| [ExecutorRole](_hdf_user_auth.md#executorrole) : int {   [COLLECTOR](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a539c54e76bcc96cddb85f0cabcff39ec) = 1, [VERIFIER](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a1286a5d974d0c68d7bc43ffc0576a6d4) = 2, [ALL_IN_ONE](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a7eebd77a403f81c5968b4c2898ee6fd4) = 3 } | 枚举执行器角色。 [更多...](_hdf_user_auth.md#executorrole) | +| [ExecutorSecureLevel](_hdf_user_auth.md#executorsecurelevel) : int {   [ESL0](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa0cd05a2adda94d3c676fca84f96c0638) = 0, [ESL1](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fae6a34bbf2764541238bf81569faf29d3) = 1, [ESL2](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa8f898bca57625d548a011ba2aaf4285f) = 2, [ESL3](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa9a6fb8a4530b6a09dba2fbfdf2e6c2e9) = 3 } | 枚举执行器安全等级。 [更多...](_hdf_user_auth.md#executorsecurelevel) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.user_auth.v1_0 | 用户认证接口的包路径 | + + +## **详细描述** + +定义用户认证驱动的枚举类和数据结构。 + +**Since:** + +3.2 diff --git a/zh-cn/device-dev/api/_verify_alloc_info.md b/zh-cn/device-dev/api/_verify_alloc_info.md new file mode 100644 index 0000000000..dc697ac80a --- /dev/null +++ b/zh-cn/device-dev/api/_verify_alloc_info.md @@ -0,0 +1,26 @@ +# VerifyAllocInfo + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [width](_display.md#width-77) | 分配内存的宽度 | +| [height](_display.md#height-77) | 分配内存的高度 | +| [usage](_display.md#usage-22) | 内存的用处 | +| [format](_display.md#format-22) | 分配内存的像素格式 | + + +## **详细描述** + +用于验证内存分配信息的结构体定义。 diff --git a/zh-cn/device-dev/api/_vibrator.md b/zh-cn/device-dev/api/_vibrator.md new file mode 100644 index 0000000000..7b102d1b68 --- /dev/null +++ b/zh-cn/device-dev/api/_vibrator.md @@ -0,0 +1,171 @@ +# Vibrator + + +## **汇总** + + +### 文件 + + | 文件 | 描述 | +| -------- | -------- | +| [vibrator_if.h](vibrator__if_8h.md) | 定义马达数据结构,包括马达模式和效果振动。 | +| [vibrator_type.h](vibrator__type_8h.md) | 定义马达数据结构,包括马达模式和效果振动。 | + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [VibratorInterface](_vibrator_interface.md) | 提供Vibrator设备基本控制操作接口。[更多...](_vibrator_interface.md) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [VibratorMode](#vibratormode) { [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref345548910083931,link:zh-cn_topic_0000001295254332.xml#ggadbbc422555ccc89c4d9cf80f5175af2fa5da1f5dd1752e8ef6b8ade59db31f80f](#ggadbbc422555ccc89c4d9cf80f5175af2fa5da1f5dd1752e8ef6b8ade59db31f80f) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref2104752933083931,link:zh-cn_topic_0000001295254332.xml#ggadbbc422555ccc89c4d9cf80f5175af2fa34c456f3c8038b601c4a0276f639f666](#ggadbbc422555ccc89c4d9cf80f5175af2fa34c456f3c8038b601c4a0276f639f666) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref1052158260083931,link:zh-cn_topic_0000001295254332.xml#ggadbbc422555ccc89c4d9cf80f5175af2faa548af2d7414a81a8036e77b9bcd6606](#ggadbbc422555ccc89c4d9cf80f5175af2faa548af2d7414a81a8036e77b9bcd6606) } | 枚举马达振动模式。 [更多...](#vibratormode) | +| [VibratorStatus](#vibratorstatus) { [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref5450017161315,link:#p181591120650](#p181591120650) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref051613315133,link:#p515914207520](#p515914207520) = -1,  [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref2512150161418,link:#p015972013512](#p015972013512)  = -2,  [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref11358630181410,link:#p14260156580](#p14260156580)= -3} | 枚举马达振动模式。[更多...](#vibratorstatus) | +| [VibratorInfo](#vibratorinfo) { [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref2475651914,link:#p16982125191511](#p16982125191511), [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref477718919205,link:#p79831625101517](#p79831625101517), [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref8162413102010,link:#p1798317259153](#p1798317259153), [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref15221157205,link:#p196672031811](#p196672031811), [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref51801717132019,link:#p14421742189](#p14421742189), [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref99362189209,link:#p61323771819](#p61323771819)} | 定义马达参数。[更多...](#vibratorinfo) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [NewVibratorInterfaceInstance](#newvibratorinterfaceinstance) (void) | 创建一个VibratorInterface实例。 [更多...](#newvibratorinterfaceinstance) | +| [FreeVibratorInterfaceInstance](#freevibratorinterfaceinstance) (void) | 释放VibratorInterface实例以及相关资源。 [更多...](#freevibratorinterfaceinstance) | + + +## **详细描述** + +马达驱动对马达服务提供通用的接口能力。 + +服务获取驱动对象或者代理后,马达服务启动或停止振动。 通过驱动程序对象或代理提供使用功能。 + +**Since:** + +2.2 + +**版本** + +1.0: + + +## **枚举类型说明** + + +### VibratorMode + + +``` +enum VibratorMode +``` + +**描述:** + +枚举马达振动模式。 + + | 枚举值 | 描述 | +| -------- | -------- | +| VIBRATOR_MODE_ONCE | 表示给定持续时间内的一次性振动。 | +| VIBRATOR_MODE_PRESET | 表示具有预置效果的周期性振动。 | +| VIBRATOR_MODE_BUTT | 表示效果模式无效。 | + + +### VibratorStatus + + +``` +enum VibratorStatus +``` + +**描述:** + +枚举马达振动模式。 + + | 枚举值 | 描述 | +| -------- | -------- | +| VIBRATOR_SUCCESS | 操作成功。 | +| VIBRATOR_NOT_PERIOD | 不支持振动周期设置。 | +| VIBRATOR_NOT_INTENSITY | 不支持振幅设置。 | +| VIBRATOR_NOT_FREQUENCY | 不支持频率设置。 | + + +### VibratorInfo + + +``` +enum VibratorInfo +``` + +**描述:** + +定义马达参数。 + +参数包括设置马达振幅和频率以及振幅和频率的范围。 + + | 枚举值 | 描述 | +| -------- | -------- | +| isSupportIntensity | 设置马达振幅。1表示支持,0表示不支持。 | +| isSupportFrequency | 设置马达频率。1表示支持,0表示不支持。 | +| intensityMaxValue | 最大振幅。 | +| intensityMinValue | 最小振幅。 | +| frequencyMaxValue | 最大频率。 | +| frequencyMinValue | 最小频率。 | + + +## **函数说明** + + +### FreeVibratorInterfaceInstance() + + +``` +int32_t FreeVibratorInterfaceInstance (void ) +``` + +**描述:** + +释放VibratorInterface实例以及相关资源。 + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +2.2 + +**Version:** + +1.0 + + +### NewVibratorInterfaceInstance() + + +``` +const struct VibratorInterface* NewVibratorInterfaceInstance (void ) +``` + +**描述:** + +创建一个VibratorInterface实例。 + +获的马达接口实例可用于控制马达按照配置进行振动。 + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +2.2 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/_vibrator_interface.md b/zh-cn/device-dev/api/_vibrator_interface.md new file mode 100644 index 0000000000..3812f340ba --- /dev/null +++ b/zh-cn/device-dev/api/_vibrator_interface.md @@ -0,0 +1,208 @@ +# VibratorInterface + + +## **概述** + +**所属模块:** + +[Vibrator](_vibrator.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [StartOnce](#startonce) )([in] uint32_t duration) | 控制马达以执行给定持续时间的一次性振动。 [更多...](#startonce) | +| ( [Start](#start) )([in] const char \*effectType) | 控制马达以预置效果执行周期性振动。 [更多...](#start) | +| ( [Stop](#stop) )([in] enum [VibratorMode](_vibrator.md#vibratormode) mode) | 停止马达振动。 [更多...](#stop) | +| ( [GetVibratorInfo](#getvibratorinfo))([out] struct VibratorInfo \*\*vibratorInfo) | 获取有关系统中支持设置振幅和频率的所有马达信息。[更多...](#getvibratorinfo) | +| ( [EnableVibratorModulation](#enablevibratormodulation))(uint32_t duration, int32_t intensity, int32_t frequency) | 根据传入的振动效果启动马达。 [更多...](#enablevibratormodulation) | + + +## **详细描述** + +提供Vibrator设备基本控制操作接口。 + +操作包括马达模式和效果振动、停止马达振动。 + + +## **类成员变量说明** + + +### Start + + +``` +int32_t(*VibratorInterface::Start) ([in] const char *effectType) +``` + +**描述:** + +控制马达以预置效果执行周期性振动。 + +单次振动与周期振动相互排斥。在执行一次性振动之前,需退出周期性振动。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| effectType | 指向指示预置效果类型的指针。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +2.2 + +**Version:** + +1.0 + + +### StartOnce + + +``` +int32_t(*VibratorInterface::StartOnce) ([in] uint32_t duration) +``` + +**描述:** + +控制马达以执行给定持续时间的一次性振动。 + +单次振动与周期振动相互排斥。在执行一次性振动之前,需退出周期性振动。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| duration | 指示一次性振动的持续时间,以毫秒为单位。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +2.2 + +**Version:** + +1.0 + + +### Stop + + +``` +int32_t(*VibratorInterface::Stop) ([in] enum VibratorMode mode) +``` + +**描述:** + +停止马达振动。 + +马达启动前,必须在任何模式下停止振动。此功能用在振动过程之后。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| mode | 指示振动模式,可以是一次性或周期性的,详见[VibratorMode](_vibrator.md#vibratormode)。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +2.2 + +**Version:** + +1.0 + + +### GetVibratorInfo + + +``` +int32_t (*VibratorInterface::GetVibratorInfo)([out] struct VibratorInfo **vibratorInfo) +``` + +**描述:** + +获取有关系统中支持设置振幅和频率的所有马达信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| vibratorInfo | 表示指向马达信息的指针,详见 [VibratorInfo](_vibrator.md#vibratorinfo)。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +3.2 + +**Version:** + +1.1 + + +### EnableVibratorModulation + + +``` +int32_t (*VibratorInterface::EnableVibratorModulation)(uint32_t duration, int32_t intensity, int32_t frequency); +``` + +**描述:** + +根据传入的振动效果启动马达。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| duration | 表示马达振动的持续时间,以毫秒为单位。 | +| intensity | 表示振动周期内的马达振幅。 | +| frequency | 表示振动周期内的马达频率。 | + +**返回:** + +如果操作成功,则返回0。 + +如果不支持振动周期设置,则返回-1。 + +如果不支持振幅设置,则返回-2。 + +如果不支持频率设置,则返回-3。 + + +**Since:** + + +3.2 + + +**Version:** + + +1.1 diff --git a/zh-cn/device-dev/api/_video_port_cap.md b/zh-cn/device-dev/api/_video_port_cap.md new file mode 100644 index 0000000000..e99f63e784 --- /dev/null +++ b/zh-cn/device-dev/api/_video_port_cap.md @@ -0,0 +1,116 @@ +# VideoPortCap + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [minSize](#minsize) | 支持的最小分辨率 | +| [maxSize](#maxsize) | 支持的最大分辨率 | +| [whAlignment](#whalignment) | 宽高对齐值 | +| [blockCount](#blockcount) | 支持的块数量范围 | +| [blocksPerSecond](#blockspersecond) | 每秒可处理的块数量范围 | +| [blockSize](#blocksize) | 支持的块大小 | +| [supportPixFmts](#supportpixfmts) [[PIX_FORMAT_NUM](_codec.md#gadb8c6478388b68c09835ebe093a8920a)] | 支持的像素格式 | + + +## **详细描述** + +定义视频编解码能力。 + + +## **类成员变量说明** + + +### blockCount + + +``` +RangeValue VideoPortCap::blockCount +``` + +**描述:** + +支持的块数量范围 + + +### blockSize + + +``` +Rect VideoPortCap::blockSize +``` + +**描述:** + +支持的块大小 + + +### blocksPerSecond + + +``` +RangeValue VideoPortCap::blocksPerSecond +``` + +**描述:** + +每秒可处理的块数量范围 + + +### maxSize + + +``` +Rect VideoPortCap::maxSize +``` + +**描述:** + +支持的最大分辨率 + + +### minSize + + +``` +Rect VideoPortCap::minSize +``` + +**描述:** + +支持的最小分辨率 + + +### supportPixFmts + + +``` +int32_t VideoPortCap::supportPixFmts[PIX_FORMAT_NUM] +``` + +**描述:** + +支持的像素格式,详见**OMX_COLOR_FORMATTYPE** + + +### whAlignment + + +``` +Alignment VideoPortCap::whAlignment +``` + +**描述:** + +宽高对齐值 diff --git a/zh-cn/device-dev/api/_w_l_a_n.md b/zh-cn/device-dev/api/_w_l_a_n.md new file mode 100644 index 0000000000..7ba49ce0c7 --- /dev/null +++ b/zh-cn/device-dev/api/_w_l_a_n.md @@ -0,0 +1,304 @@ +# WLAN + + +## **汇总** + + +### 文件 + + | 文件 | 描述 | +| -------- | -------- | +| [wifi_hal.h](wifi__hal_8h.md) | 提供给WLAN服务的WLAN基本能力接口。 | +| [wifi_hal_ap_feature.h](wifi__hal__ap__feature_8h.md) | 提供WLAN的AP特性能力(获取与AP连接的STA的基本信息、设置国家码)。 | +| [wifi_hal_base_feature.h](wifi__hal__base__feature_8h.md) | 提供WLAN基本特性能力。 | +| [wifi_hal_sta_feature.h](wifi__hal__sta__feature_8h.md) | 提供WLAN的STA特性能力。 | + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IWiFi](_i_wi_fi.md) | HAL对WLAN服务提供的基本能力。 [更多...](_i_wi_fi.md) | +| [StaInfo](_sta_info.md) | 描述与AP连接的STA的基本信息 [更多...](_sta_info.md) | +| [IWiFiAp](_i_wi_fi_ap.md) | 继承了[IWiFiBaseFeature](_i_wi_fi_base_feature.md)基本特性,并包含AP模式下获取连接STA的信息和设置国家码的功能。 [更多...](_i_wi_fi_ap.md) | +| [IWiFiBaseFeature](_i_wi_fi_base_feature.md) | WLAN基本特性操作接口,包括获取网卡名称,设置MAC地址,设置发射功率等公共能力接口。 [更多...](_i_wi_fi_base_feature.md) | +| [IWiFiSta](_i_wi_fi_sta.md) | 继承了[IWiFiBaseFeature](_i_wi_fi_base_feature.md)基本特性,额外包含设置扫描单个MAC地址功能。 [更多...](_i_wi_fi_sta.md) | + + +### 宏定义 + + | 宏定义 | 描述 | +| -------- | -------- | +| IFNAME_MAX_LEN    16 | 网卡名称最大长度。 | +| WIFI_MAC_ADDR_LENGTH    6 | WLAN的MAC地址长度。 | +| ERR_UNAUTH_ACCESS    (-6) | 定义访问失败错误码。 | + + +### 类型定义 + + | 类型定义 | 描述 | +| -------- | -------- | +| ([CallbackFunc](#callbackfunc)) (uint32_t event, void \*data, const char \*ifName) | 定义IWiFi回调函数的原型,监听异步事件。 [更多...](#callbackfunc) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [FeatureType](#featuretype) {   [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref2005757439083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012a6b209b916aabd18f2a950a82e68b6a4c](#ggad2b28a6ade408676d1371ea941824012a6b209b916aabd18f2a950a82e68b6a4c), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref356941748083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012a0926a98ddc2ceec4ba58ebfc01c5fe35](#ggad2b28a6ade408676d1371ea941824012a0926a98ddc2ceec4ba58ebfc01c5fe35), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref2034104077083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012acd26f8cefbd658e9ea02feecefd054fb](#ggad2b28a6ade408676d1371ea941824012acd26f8cefbd658e9ea02feecefd054fb), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref1210444972083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012a9e92654b9ab6ed6eb62868f1e0e4ea8f](#ggad2b28a6ade408676d1371ea941824012a9e92654b9ab6ed6eb62868f1e0e4ea8f),   [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref85888507083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012a991ad1a3f8c43b06c4eeb9dc88acdb1e](#ggad2b28a6ade408676d1371ea941824012a991ad1a3f8c43b06c4eeb9dc88acdb1e), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref2011035674083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012aa25631c32cd6c996a7c96ba4f61299e2](#ggad2b28a6ade408676d1371ea941824012aa25631c32cd6c996a7c96ba4f61299e2), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref1547927522083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012a3ff1c1358af5a0c50b64e0ef0e96a970](#ggad2b28a6ade408676d1371ea941824012a3ff1c1358af5a0c50b64e0ef0e96a970), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref959999069083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012a382756b8a71015cd536cdbc113c4f483](#ggad2b28a6ade408676d1371ea941824012a382756b8a71015cd536cdbc113c4f483),   [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref769421272083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012acfd81d6e484c6f7a3b863327af112cfc](#ggad2b28a6ade408676d1371ea941824012acfd81d6e484c6f7a3b863327af112cfc), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref2012633117083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012abca0ccb5cf4c14af9b6ff0bd9eeb4173](#ggad2b28a6ade408676d1371ea941824012abca0ccb5cf4c14af9b6ff0bd9eeb4173), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref1649808399083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012ad63ad4a5a66892e842e4d75cc82b0755](#ggad2b28a6ade408676d1371ea941824012ad63ad4a5a66892e842e4d75cc82b0755), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref2156186164917,link:#p3611518433](#p3611518433) } | 枚举WLAN相关特性的类型[FeatureType](#featuretype)。 [更多...](#featuretype) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [WifiConstruct](#wificonstruct) (struct [IWiFi](_i_wi_fi.md) \*\*wifiInstance) | 创建IWiFi结构体,挂接[IWiFi](_i_wi_fi.md)中能力接口。 [更多...](#wificonstruct) | +| [WifiDestruct](#wifidestruct) (struct [IWiFi](_i_wi_fi.md) \*\*wifiInstance) | 销毁IWiFi结构体并释放相关资源。 [更多...](#wifidestruct) | +| [InitApFeature](#initapfeature) (struct [IWiFiAp](_i_wi_fi_ap.md) \*\*fe) | 初始化AP特性。WLAN服务在创建AP类型的特性[FeatureType](#featuretype)时调用。 [更多...](#initapfeature) | +| [InitBaseFeature](#initbasefeature) (struct [IWiFiBaseFeature](_i_wi_fi_base_feature.md) \*\*fe) | WLAN服务创建任何类型的特性{\@Link FeatureType}时,都需要调用此函数。 [更多...](#initbasefeature) | +| [InitStaFeature](#initstafeature) (struct [IWiFiSta](_i_wi_fi_sta.md) \*\*fe) | 初始化STA特性。WLAN服务在创建STA类型的特性[FeatureType](#featuretype)时调用。 [更多...](#initstafeature) | + + +## **详细描述** + +WLAN模块向上层WLAN服务提供了统一接口。 + +HDI层开发人员可根据WLAN模块提供的向上统一接口获取如下能力:建立/关闭WLAN热点,扫描,关联WLAN热点,WLAN平台芯片管理,网络数据缓冲的申请、释放、移动等操作,网络设备管理,电源管理等。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **类型定义说明** + + +### CallbackFunc + + +``` +typedef int32_t(* CallbackFunc) (uint32_t event, void *data, const char *ifName) +``` + +**描述:** + +定义IWiFi回调函数的原型,监听异步事件。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| event | 输入参数,回调传入的事件类型标识。 | +| data | 输入参数,回调传入的数据。 | +| ifName | 输入参数,网卡名称。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +## **枚举类型说明** + + +### FeatureType + + +``` +enum FeatureType +``` + +**描述:** + +枚举WLAN相关特性的类型[FeatureType](#featuretype)。 + + | 枚举值 | 描述 | +| -------- | -------- | +| PROTOCOL_80211_IFTYPE_UNSPECIFIED | 未定义的类型 | +| PROTOCOL_80211_IFTYPE_ADHOC | 特设型网络 | +| PROTOCOL_80211_IFTYPE_STATION | 工作站 | +| PROTOCOL_80211_IFTYPE_AP | 接入点 | +| PROTOCOL_80211_IFTYPE_AP_VLAN | 虚拟接入点 | +| PROTOCOL_80211_IFTYPE_WDS | 无线分布式系统 | +| PROTOCOL_80211_IFTYPE_MONITOR | 网络监听器 | +| PROTOCOL_80211_IFTYPE_MESH_POINT | 组网 | +| PROTOCOL_80211_IFTYPE_P2P_CLIENT | 对等网络客户端 | +| PROTOCOL_80211_IFTYPE_P2P_GO | 对等网络群组所有者 | +| PROTOCOL_80211_IFTYPE_P2P_DEVICE | 对等网络设备 | +| PROTOCOL_80211_IFTYPE_NUM | 网口的数目 | + + +## **函数说明** + + +### InitApFeature() + + +``` +int32_t InitApFeature (struct IWiFiAp **fe) +``` + +**描述:** + +初始化AP特性。WLAN服务在创建AP类型的特性[FeatureType](#featuretype)时调用。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| fe | 输入参数,AP特性[IWiFiAp](_i_wi_fi_ap.md)。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### InitBaseFeature() + + +``` +int32_t InitBaseFeature (struct IWiFiBaseFeature **fe) +``` + +**描述:** + +WLAN服务创建任何类型的特性{\@Link FeatureType}时,都需要调用此函数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| fe | 输入参数,基本特性[IWiFiBaseFeature](_i_wi_fi_base_feature.md)。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### InitStaFeature() + + +``` +int32_t InitStaFeature (struct IWiFiSta **fe) +``` + +**描述:** + +初始化STA特性。WLAN服务在创建STA类型的特性[FeatureType](#featuretype)时调用。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| fe | 输出参数,STA特性[IWiFiSta](_i_wi_fi_sta.md)。 | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### WifiConstruct() + + +``` +int32_t WifiConstruct (struct IWiFi **wifiInstance) +``` + +**描述:** + +创建IWiFi结构体,挂接[IWiFi](_i_wi_fi.md)中能力接口。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| wifiInstance | HAL服务对象[IWiFi](_i_wi_fi.md) | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +1.0 + +**Version:** + +1.0 + + +### WifiDestruct() + + +``` +int32_t WifiDestruct (struct IWiFi **wifiInstance) +``` + +**描述:** + +销毁IWiFi结构体并释放相关资源。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| wifiInstance | HAL服务对象[IWiFi](_i_wi_fi.md) | + +**返回:** + +如果操作成功,则返回0。 + +如果操作失败,则返回负值。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/annotated.md b/zh-cn/device-dev/api/annotated.md new file mode 100644 index 0000000000..3e43418f4c --- /dev/null +++ b/zh-cn/device-dev/api/annotated.md @@ -0,0 +1,265 @@ +# 结构体 + + + +- **[__attribute__](____attribute____.md)** + +- **[Alignment](_alignment.md)** + +- **[AllocInfo](_alloc_info.md)** + +- **[AudioAdapter](_audio_adapter.md)** + +- **[AudioAdapterDescriptor](_audio_adapter_descriptor.md)** + +- **[AudioAttribute](_audio_attribute.md)** + +- **[AudioCapture](_audio_capture.md)** + +- **[AudioControl](_audio_control.md)** + +- **[AudioDevExtInfo](_audio_dev_ext_info.md)** + +- **[AudioDeviceDescriptor](_audio_device_descriptor.md)** + +- **[AudioManager](_audio_manager.md)** + +- **[AudioMixExtInfo](_audio_mix_ext_info.md)** + +- **[AudioMmapBufferDescripter](_audio_mmap_buffer_descripter.md)** + +- **[AudioPort](_audio_port.md)** + +- **[AudioPortCap](_audio_port_cap.md)** + +- **[AudioPortCapability](_audio_port_capability.md)** + +- **[AudioRender](_audio_render.md)** + +- **[AudioRoute](_audio_route.md)** + +- **[AudioRouteNode](_audio_route_node.md)** + +- **[AudioSampleAttributes](_audio_sample_attributes.md)** + +- **[AudioScene](_audio_scene.md)** + +- **[AudioSceneDescriptor](_audio_scene_descriptor.md)** + +- **[AudioSceneDescriptor::SceneDesc](union_audio_scene_descriptor_1_1_scene_desc.md)** + +- **[AudioSessionExtInfo](_audio_session_ext_info.md)** + +- **[AudioSubPortCapability](_audio_sub_port_capability.md)** + +- **[AudioTimeStamp](_audio_time_stamp.md)** + +- **[AudioVolume](_audio_volume.md)** + +- **[AuthResultInfo](_auth_result_info.md)** + +- **[AuthSolution](_auth_solution.md)** + +- **[BatteryInfo](_battery_info.md)** + +- **[BufferData](_buffer_data.md)** + +- **[CodecCallbackType](_codec_callback_type.md)** + +- **[CodecCompCapability](_codec_comp_capability.md)** + +- **[CodecComponentManager](_codec_component_manager.md)** + +- **[CodecComponentType](_codec_component_type.md)** + +- **[CompVerInfo](_comp_ver_info.md)** + +- **[CredentialInfo](_credential_info.md)** + +- **[DacIoMsg](_dac_io_msg.md)** + +- **[DeviceFuncs](_device_funcs.md)** + +- **[DeviceInfo](_device_info.md)** + +- **[DisplayCapability](_display_capability.md)** + +- **[DisplayInfo](_display_info.md)** + +- **[DisplayModeInfo](_display_mode_info.md)** + +- **[EnrolledInfo](_enrolled_info.md)** + +- **[EnrollParam](_enroll_param.md)** + +- **[EventInfo](_event_info.md)** + +- **[EventPackage](_event_package.md)** + +- **[ExecutorInfo](_executor_info.md)** + +- **[ExecutorRegisterInfo](_executor_register_info.md)** + +- **[ExecutorSendMsg](_executor_send_msg.md)** + +- **[GetBufferHandleUsageParams](_get_buffer_handle_usage_params.md)** + +- **[GfxFuncs](_gfx_funcs.md)** + +- **[GfxOpt](_gfx_opt.md)** + +- **[GrallocFuncs](_gralloc_funcs.md)** + +- **[HdfThermalCallbackInfo](_hdf_thermal_callback_info.md)** + +- **[HDRCapability](_h_d_r_capability.md)** + +- **[HDRMetaData](_h_d_r_meta_data.md)** + +- **[IBatteryCallback](interface_i_battery_callback.md)** + +- **[IBatteryInterface](interface_i_battery_interface.md)** + +- **[ICircle](_i_circle.md)** + +- **[IdentifyResultInfo](_identify_result_info.md)** + +- **[IExecutor](interface_i_executor.md)** + +- **[IExecutor](interface_pin_i_executor.md)** + +- **[IExecutorCallback](interface_i_executor_callback.md)** + +- **[IExecutorCallback](interface_pin_i_executor_callback.md)** + +- **[IFaceAuthInterface](interface_i_face_auth_interface.md)** + +- **[IInputInterface](_i_input_interface.md)** + +- **[ILine](_i_line.md)** + +- **[InputController](_input_controller.md)** + +- **[InputExtraCmd](_input_extra_cmd.md)** + +- **[InputManager](_input_manager.md)** + +- **[InputReporter](_input_reporter.md)** + +- **[InputReportEventCb](_input_report_event_cb.md)** + +- **[IPinAuthInterface](interface_i_pin_auth_interface.md)** + +- **[IPowerHdiCallback](interface_i_power_hdi_callback.md)** + +- **[IPowerInterface](interface_i_power_interface.md)** + +- **[IRect](_i_rect.md)** + +- **[ISurface](_i_surface.md)** + +- **[IThermalCallback](interface_i_thermal_callback.md)** + +- **[IThermalInterface](interface_i_thermal_interface.md)** + +- **[IUserAuthInterface](interface_i_user_auth_interface.md)** + +- **[IWiFi](_i_wi_fi.md)** + +- **[IWiFiAp](_i_wi_fi_ap.md)** + +- **[IWiFiBaseFeature](_i_wi_fi_base_feature.md)** + +- **[IWiFiSta](_i_wi_fi_sta.md)** + +- **[LayerAlpha](_layer_alpha.md)** + +- **[LayerBuffer](_layer_buffer.md)** + +- **[LayerFuncs](_layer_funcs.md)** + +- **[LayerInfo](_layer_info.md)** + +- **[LightEffect](_light_effect.md)** + +- **[LightFlashEffect](_light_flash_effect.md)** + +- **[LightInfo](_light_info.md)** + +- **[LightInterface](_light_interface.md)** + +- **[OHOS::Camera::CaptureEndedInfo](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md)** + +- **[OHOS::Camera::CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md)** + +- **[OHOS::Camera::CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md)** + +- **[OHOS::Camera::ICameraDevice](_o_h_o_s_1_1_camera_1_1_i_camera_device.md)** + +- **[OHOS::Camera::ICameraDeviceCallback](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md)** + +- **[OHOS::Camera::ICameraHost](_o_h_o_s_1_1_camera_1_1_i_camera_host.md)** + +- **[OHOS::Camera::ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md)** + +- **[OHOS::Camera::IOfflineStreamOperator](_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md)** + +- **[OHOS::Camera::IStreamOperator](_o_h_o_s_1_1_camera_1_1_i_stream_operator.md)** + +- **[OHOS::Camera::IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md)** + +- **[OHOS::Camera::StreamAttribute](_o_h_o_s_1_1_camera_1_1_stream_attribute.md)** + +- **[OHOS::Camera::StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md)** + +- **[OHOS::USB::UsbCtrlTransfer](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md)** + +- **[OHOS::USB::UsbdClient](_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md)** + +- **[OHOS::USB::UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)** + +- **[OHOS::USB::USBDeviceInfo](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md)** + +- **[OHOS::USB::UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md)** + +- **[OHOS::USB::UsbInfo](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md)** + +- **[OHOS::USB::UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)** + +- **[OmxCodecBuffer](_omx_codec_buffer.md)** + +- **[PortCap](union_port_cap.md)** + +- **[PresentTimestamp](_present_timestamp.md)** + +- **[PropertyObject](_property_object.md)** + +- **[RangeValue](_range_value.md)** + +- **[Rect](_rect.md)** + +- **[Rectangle](_rectangle.md)** + +- **[ScheduleInfo](_schedule_info.md)** + +- **[SensorEvents](_sensor_events.md)** + +- **[SensorInformation](_sensor_information.md)** + +- **[SensorInterface](_sensor_interface.md)** + +- **[StaInfo](_sta_info.md)** + +- **[SupportBufferType](_support_buffer_type.md)** + +- **[TemplateInfo](_template_info.md)** + +- **[ThermalZoneInfo](_thermal_zone_info.md)** + +- **[UseBufferType](_use_buffer_type.md)** + +- **[VerifyAllocInfo](_verify_alloc_info.md)** + +- **[VibratorInterface](_vibrator_interface.md)** + +- **[VideoPortCap](_video_port_cap.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/api/audio__adapter_8h.md b/zh-cn/device-dev/api/audio__adapter_8h.md new file mode 100644 index 0000000000..39a1c6b4c7 --- /dev/null +++ b/zh-cn/device-dev/api/audio__adapter_8h.md @@ -0,0 +1,31 @@ +# audio_adapter.h + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [AudioAdapter](_audio_adapter.md) | AudioAdapter音频适配器接口 [更多...](_audio_adapter.md) | + + +## **详细描述** + +Audio适配器的接口定义文件。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/audio__attribute_8h.md b/zh-cn/device-dev/api/audio__attribute_8h.md new file mode 100644 index 0000000000..095bcf40db --- /dev/null +++ b/zh-cn/device-dev/api/audio__attribute_8h.md @@ -0,0 +1,31 @@ +# audio_attribute.h + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [AudioAttribute](_audio_attribute.md) | AudioAttribute音频属性接口 [更多...](_audio_attribute.md) | + + +## **详细描述** + +Audio属性的接口定义文件。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/audio__capture_8h.md b/zh-cn/device-dev/api/audio__capture_8h.md new file mode 100644 index 0000000000..62573f6432 --- /dev/null +++ b/zh-cn/device-dev/api/audio__capture_8h.md @@ -0,0 +1,31 @@ +# audio_capture.h + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [AudioCapture](_audio_capture.md) | AudioCapture音频录音接口 [更多...](_audio_capture.md) | + + +## **详细描述** + +Audio录音的接口定义文件。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/audio__control_8h.md b/zh-cn/device-dev/api/audio__control_8h.md new file mode 100644 index 0000000000..04254ba25a --- /dev/null +++ b/zh-cn/device-dev/api/audio__control_8h.md @@ -0,0 +1,31 @@ +# audio_control.h + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [AudioControl](_audio_control.md) | AudioControl音频控制接口 [更多...](_audio_control.md) | + + +## **详细描述** + +Audio控制的接口定义文件。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/audio__manager_8h.md b/zh-cn/device-dev/api/audio__manager_8h.md new file mode 100644 index 0000000000..7ac28b26d6 --- /dev/null +++ b/zh-cn/device-dev/api/audio__manager_8h.md @@ -0,0 +1,38 @@ +# audio_manager.h + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [AudioManager](_audio_manager.md) | AudioManager音频适配器管理接口 [更多...](_audio_manager.md) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [GetAudioManagerFuncs](_audio.md#getaudiomanagerfuncs) (void) | 获取音频适配器管理接口的操作函数列表,详情参考[AudioManager](_audio_manager.md)[更多...](_audio.md#getaudiomanagerfuncs) | + + +## **详细描述** + +Audio适配器管理及加载的接口定义文件。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/audio__render_8h.md b/zh-cn/device-dev/api/audio__render_8h.md new file mode 100644 index 0000000000..7f1d7eaa28 --- /dev/null +++ b/zh-cn/device-dev/api/audio__render_8h.md @@ -0,0 +1,31 @@ +# audio_render.h + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [AudioRender](_audio_render.md) | AudioRender音频播放接口 [更多...](_audio_render.md) | + + +## **详细描述** + +Audio播放的接口定义文件。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/audio__scene_8h.md b/zh-cn/device-dev/api/audio__scene_8h.md new file mode 100644 index 0000000000..09b3026f88 --- /dev/null +++ b/zh-cn/device-dev/api/audio__scene_8h.md @@ -0,0 +1,31 @@ +# audio_scene.h + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [AudioScene](_audio_scene.md) | AudioScene音频场景接口 [更多...](_audio_scene.md) | + + +## **详细描述** + +Audio场景的接口定义文件。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/audio__types_8h.md b/zh-cn/device-dev/api/audio__types_8h.md new file mode 100644 index 0000000000..c86fc2815f --- /dev/null +++ b/zh-cn/device-dev/api/audio__types_8h.md @@ -0,0 +1,75 @@ +# audio_types.h + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [AudioPort](_audio_port.md) | 音频端口 [更多...](_audio_port.md) | +| [AudioAdapterDescriptor](_audio_adapter_descriptor.md) | 音频适配器描述符 [更多...](_audio_adapter_descriptor.md) | +| [AudioDeviceDescriptor](_audio_device_descriptor.md) | 音频设备描述符 [更多...](_audio_device_descriptor.md) | +| [AudioSceneDescriptor](_audio_scene_descriptor.md) | 音频场景描述符 [更多...](_audio_scene_descriptor.md) | +| [AudioSceneDescriptor::SceneDesc](union_audio_scene_descriptor_1_1_scene_desc.md) | 音频场景描述 [更多...](union_audio_scene_descriptor_1_1_scene_desc.md) | +| [AudioSampleAttributes](_audio_sample_attributes.md) | 音频采样属性 [更多...](_audio_sample_attributes.md) | +| [AudioTimeStamp](_audio_time_stamp.md) | 音频时间戳 [更多...](_audio_time_stamp.md) | +| [AudioSubPortCapability](_audio_sub_port_capability.md) | 音频子端口的支持能力 [更多...](_audio_sub_port_capability.md) | +| [AudioPortCapability](_audio_port_capability.md) | 音频端口的支持能力 [更多...](_audio_port_capability.md) | +| [AudioMmapBufferDescripter](_audio_mmap_buffer_descripter.md) | mmap缓冲区描述符 [更多...](_audio_mmap_buffer_descripter.md) | +| [AudioDevExtInfo](_audio_dev_ext_info.md) | 音频设备拓展信息 [更多...](_audio_dev_ext_info.md) | +| [AudioMixExtInfo](_audio_mix_ext_info.md) | 音轨拓展信息 [更多...](_audio_mix_ext_info.md) | +| [AudioSessionExtInfo](_audio_session_ext_info.md) | 会话拓展信息 [更多...](_audio_session_ext_info.md) | +| [AudioRouteNode](_audio_route_node.md) | 音频路由节点 [更多...](_audio_route_node.md) | +| [AudioRoute](_audio_route.md) | 音频路由信息 [更多...](_audio_route.md) | + + +### 类型定义 + + | 类型定义 | 描述 | +| -------- | -------- | +| [AudioHandle](_audio.md#ga18675ddb073465fdeac33a897f675d79) | 音频句柄 | +| ([RenderCallback](_audio.md#rendercallback)) (enum [AudioCallbackType](_audio.md#audiocallbacktype), void \*reserved, void \*cookie) | 回调函数指针 [更多...](_audio.md#rendercallback) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [AudioPortDirection](_audio.md#audioportdirection) { [PORT_OUT](_audio.md#gga68ff7140b15790debbac4bbc62f8e9f8af54f110a0f64337d474989fbac06bc22) = 0x1u, [PORT_IN](_audio.md#gga68ff7140b15790debbac4bbc62f8e9f8a154a6db110515b7afde52d3a36d57846) = 0x2u, [PORT_OUT_IN](_audio.md#gga68ff7140b15790debbac4bbc62f8e9f8a87e14fe9da9c332ba29185b9213d7bbf) = 0x3u } | 音频端口的类型 [更多...](_audio.md#audioportdirection) | +| [AudioPortPin](_audio.md#audioportpin) {   [PIN_NONE](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ad2f867652c04c17517db7731af03bf20) = 0x0u, [PIN_OUT_SPEAKER](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ab1070439bab93e06446c21157771dd6f) = 0x1u, [PIN_OUT_HEADSET](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a271013721c8840cc2700c19b3ff8d0a6) = 0x2u, [PIN_OUT_LINEOUT](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a411e9037214c75d22c9080505cf9cae6) = 0x4u,   [PIN_OUT_HDMI](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ab4aaa2ec71ec77480f60743cd79340b9) = 0x8u, [PIN_OUT_USB](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a4fdca959c8b32bc9a30a36882bd3bdaa) = 0x10u, [PIN_OUT_USB_EXT](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a933d2d5aadef8b45038be8be69b56b27) = 0x20u, [PIN_IN_MIC](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a336001f5685d9c206b1251714553b485) = 0x8000001u,   [PIN_IN_HS_MIC](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835aaeca21ac0a7b249905d1cea5b683f574) = 0x8000002u, [PIN_IN_LINEIN](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a5146add03ff98f06648567bb0e02a477) = 0x8000004u, [PIN_IN_USB_EXT](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ad6b81dc30e45f9f79801bf1e8ee0caef) = 0x8000008u } | 音频适配器端口的PIN脚 [更多...](_audio.md#audioportpin) | +| [AudioCategory](_audio.md#audiocategory) { [AUDIO_IN_MEDIA](_audio.md#ggaf210d41d152890f3aaf2aaac99bd28d5a6ac6cfd90dcc34de100c1cecb3df44c3) = 0, [AUDIO_IN_COMMUNICATION](_audio.md#ggaf210d41d152890f3aaf2aaac99bd28d5a474576c773934a0df994bad4cf781b41), [AUDIO_IN_RINGTONE](_audio.md#ggaf210d41d152890f3aaf2aaac99bd28d5aa5361a2d3ed6703c130417ec243d0a69), [AUDIO_IN_CALL](_audio.md#ggaf210d41d152890f3aaf2aaac99bd28d5a7a6ef7c82e9a5eb63d004056eb13c894) } | 音频类型(category) [更多...](_audio.md#audiocategory) | +| [AudioFormat](_audio.md#audioformat) {   [AUDIO_FORMAT_PCM_8_BIT](_audio.md#gga98d5d077cca088ddf77314871474fe59a321cc2160af35aa86b8ee55f231ef1e6) = 0x1u, [AUDIO_FORMAT_PCM_16_BIT](_audio.md#gga98d5d077cca088ddf77314871474fe59ae188cf87c8f2e6218c74b3b2385068e6) = 0x2u, [AUDIO_FORMAT_PCM_24_BIT](_audio.md#gga98d5d077cca088ddf77314871474fe59a21eb864e2117df577dcd90ad81da3b14) = 0x3u, [AUDIO_FORMAT_PCM_32_BIT](_audio.md#gga98d5d077cca088ddf77314871474fe59adf7a0bf1f3dd15c9c43fac07c0c6ea26) = 0x4u,   [AUDIO_FORMAT_AAC_MAIN](_audio.md#gga98d5d077cca088ddf77314871474fe59a5a781e6f8b145066ae7fb2c310804bab) = 0x1000001u, [AUDIO_FORMAT_AAC_LC](_audio.md#gga98d5d077cca088ddf77314871474fe59a3d4bc5d534d0452635455ed8d2cade57) = 0x1000002u, [AUDIO_FORMAT_AAC_LD](_audio.md#gga98d5d077cca088ddf77314871474fe59ad4baf87ff9f4684c03483c572052b700) = 0x1000003u, [AUDIO_FORMAT_AAC_ELD](_audio.md#gga98d5d077cca088ddf77314871474fe59a4b8d42988fecf03e2bf73c4395501852) = 0x1000004u,   [AUDIO_FORMAT_AAC_HE_V1](_audio.md#gga98d5d077cca088ddf77314871474fe59abaddb86f122d3185de9407dbc673bf0e) = 0x1000005u, [AUDIO_FORMAT_AAC_HE_V2](_audio.md#gga98d5d077cca088ddf77314871474fe59ab610e0121e0b5076b3f78831e3c237fd) = 0x1000006u, [AUDIO_FORMAT_G711A](_audio.md#gga98d5d077cca088ddf77314871474fe59a625f7a608bd66462e532762af64c5393) = 0x2000001u, [AUDIO_FORMAT_G711U](_audio.md#gga98d5d077cca088ddf77314871474fe59a6284a1ee0d6034eab8836f5d6352b3da) = 0x2000002u,   [AUDIO_FORMAT_G726](_audio.md#gga98d5d077cca088ddf77314871474fe59a46432573957951a919c84b00504b46b0) = 0x2000003u } | 音频格式 [更多...](_audio.md#audioformat) | +| [AudioChannelMask](_audio.md#audiochannelmask) { [AUDIO_CHANNEL_FRONT_LEFT](_audio.md#gga137eb03027d5947ea294b32f5095b83ca0419483310bfc5abe46a0c586070ed18) = 0x1, [AUDIO_CHANNEL_FRONT_RIGHT](_audio.md#gga137eb03027d5947ea294b32f5095b83ca05525a25c5912eda05e9a8786a743a75) = 0x2, [AUDIO_CHANNEL_MONO](_audio.md#gga137eb03027d5947ea294b32f5095b83ca0479e1cd2137cbbad68efae1d2b2c9a9) = 0x1u, [AUDIO_CHANNEL_STEREO](_audio.md#gga137eb03027d5947ea294b32f5095b83ca70f2212ea5439c13f7fcba3e30b15c1a) = 0x3u } | 音频通道掩码(mask) [更多...](_audio.md#audiochannelmask) | +| [AudioSampleRatesMask](_audio.md#audiosampleratesmask) {   [AUDIO_SAMPLE_RATE_MASK_8000](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4ca046a26906a4df81bfc38c583ba3606e9) = 0x1u, [AUDIO_SAMPLE_RATE_MASK_12000](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4caf1f34aa763f2bf6d5f43178f2d335d10) = 0x2u, [AUDIO_SAMPLE_RATE_MASK_11025](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4ca5f13b000ef455b858506fc90d17e2dd7) = 0x4u, [AUDIO_SAMPLE_RATE_MASK_16000](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4ca3102248493467e00d16c2cf1971635a7) = 0x8u,   [AUDIO_SAMPLE_RATE_MASK_22050](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4cae7cfb2244a15cd133373cfa5e96ec82e) = 0x10u, [AUDIO_SAMPLE_RATE_MASK_24000](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4cacce4defc0cf23abfe52d399b4aa68fdf) = 0x20u, [AUDIO_SAMPLE_RATE_MASK_32000](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4ca5594285d8ef3897e9f29a15e0795b814) = 0x40u, [AUDIO_SAMPLE_RATE_MASK_44100](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4ca52345265822f55a62b2e038438daf37e) = 0x80u,   [AUDIO_SAMPLE_RATE_MASK_48000](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4caa52c49624fecf6d9f1d075d0d3ad0bbf) = 0x100u, [AUDIO_SAMPLE_RATE_MASK_64000](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4caf111a8b9762ec169361a106ba7efdb0f) = 0x200u, [AUDIO_SAMPLE_RATE_MASK_96000](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4caa9e4deb07b2a7c32e5a19b8c81d9fd0d) = 0x400u, [AUDIO_SAMPLE_RATE_MASK_INVALID](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4ca41f8d22ab95c84d0acb3d0c78679274c) = 0xFFFFFFFFu } | 音频采样频率MASK [更多...](_audio.md#audiosampleratesmask) | +| [AudioPortPassthroughMode](_audio.md#audioportpassthroughmode) { [PORT_PASSTHROUGH_LPCM](_audio.md#gga186d2d4f9a2ecacb80cd2cce2bd26f0ea48da60ec7958d35e8884e67cc32cb465) = 0x1, [PORT_PASSTHROUGH_RAW](_audio.md#gga186d2d4f9a2ecacb80cd2cce2bd26f0eaf44936c424fbadafda9e1a12829b291f) = 0x2, [PORT_PASSTHROUGH_HBR2LBR](_audio.md#gga186d2d4f9a2ecacb80cd2cce2bd26f0eada09d902428d269446b94c2b7e9eb95e) = 0x4, [PORT_PASSTHROUGH_AUTO](_audio.md#gga186d2d4f9a2ecacb80cd2cce2bd26f0ea6fd7a77031d807247e159c3deec07e11) = 0x8 } | 音频端口的数据透传模式 [更多...](_audio.md#audioportpassthroughmode) | +| [AudioSampleFormat](_audio.md#audiosampleformat) {   [AUDIO_SAMPLE_FORMAT_S8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a2d8a330d2cb71268562e1c4da0c4eabc), [AUDIO_SAMPLE_FORMAT_S8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a4eb79a5d6d99244902cfb5c65f225c80), [AUDIO_SAMPLE_FORMAT_U8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab6d04d1d87a9a243b195ab6be183600e), [AUDIO_SAMPLE_FORMAT_U8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aeffb8620959b836e01622c7dc82ebc6d),   [AUDIO_SAMPLE_FORMAT_S16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a4422a2a04509e492ef823189d454d5a3), [AUDIO_SAMPLE_FORMAT_S16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a11a1fb37c21f722383a37fc5e6075dfe), [AUDIO_SAMPLE_FORMAT_U16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757af961944b4c8e77ee56defc30e6e61eb5), [AUDIO_SAMPLE_FORMAT_U16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a08ba605e3e58479ebb7432ff5d6d0972),   [AUDIO_SAMPLE_FORMAT_S24](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a102520af7c50d1ee4951e472f5f921e4), [AUDIO_SAMPLE_FORMAT_S24P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ae245cf6bd637c1f1304b38746f8940d6), [AUDIO_SAMPLE_FORMAT_U24](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a0d5fc3d14030aad7bc17d894bf4fc5c9), [AUDIO_SAMPLE_FORMAT_U24P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a0e8b7681ec3461988cb7fdd0f3616b2e),   [AUDIO_SAMPLE_FORMAT_S32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a46819088770f843230d2b094fd8d14ba), [AUDIO_SAMPLE_FORMAT_S32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a7883f8a4bede55eb4ffaf6ecb47f6841), [AUDIO_SAMPLE_FORMAT_U32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757afae09ccb9fdae65e73e5584a4c3a6d16), [AUDIO_SAMPLE_FORMAT_U32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a915025bfdcf9491a21b2d38dec7998cc),   [AUDIO_SAMPLE_FORMAT_S64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a2e5477f7cc05dcc271b50e570dfd0452), [AUDIO_SAMPLE_FORMAT_S64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab07b4d40994980a8012a79dc4a69a794), [AUDIO_SAMPLE_FORMAT_U64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a959950ea0f2b6c0e17d752640238c23b), [AUDIO_SAMPLE_FORMAT_U64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aad2c58522f7d16111756c1731bf52044),   [AUDIO_SAMPLE_FORMAT_F32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ac3cb5729241a7f73210d97d4fe0002fe), [AUDIO_SAMPLE_FORMAT_F32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a1121b8995d1083f61b2fa0afcc45143f), [AUDIO_SAMPLE_FORMAT_F64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a72f064169d0282fa8a152aea546056c3), [AUDIO_SAMPLE_FORMAT_F64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a1f0e407cd152b27f7b0ff761d26bb300),   [AUDIO_SAMPLE_FMT_U8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aad65a5b895b3dba000167dbb6c19b9ab), [AUDIO_SAMPLE_FMT_S16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a40335eaa7ca378540941909ed02b51a0), [AUDIO_SAMPLE_FMT_S32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab98feafb8396c0190a4fb719a15ab7c5), [AUDIO_SAMPLE_FMT_FLOAT](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ac2fb27a42b3f79e51dd71ce05b42f9db),   [AUDIO_SAMPLE_FMT_DOUBLE](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757afb8b12c44b4799f59a533609b4c360b5), [AUDIO_SAMPLE_FMT_U8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a8eb00238e7aa21d69f056d9292eb64d9), [AUDIO_SAMPLE_FMT_S16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a93008db1a966fee4a91b515fedc78cec), [AUDIO_SAMPLE_FMT_S32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a6bb874f2726bb94d08914b366ae947d6),   [AUDIO_SAMPLE_FMT_FLOATP](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a8a635bbd6c5df1a8a0fadb1d9602ea74), [AUDIO_SAMPLE_FMT_DOUBLEP](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a467bd88ce7f736a433425695ed0a0dbc), [AUDIO_SAMPLE_FMT_INVALID](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a5c8f7c2c0f84e70f609f8fd4ffd2c910) } | 原始音频样本格式 [更多...](_audio.md#audiosampleformat) | +| [AudioChannelMode](_audio.md#audiochannelmode) {   [AUDIO_CHANNEL_NORMAL](_audio.md#gga78aab1fafb9657451804e42b42897123aa97ec21f6627e1dfd4854b5b470cdfba) = 0, [AUDIO_CHANNEL_BOTH_LEFT](_audio.md#gga78aab1fafb9657451804e42b42897123a47fd61e4531acb6b5cc058ac26af5d51), [AUDIO_CHANNEL_BOTH_RIGHT](_audio.md#gga78aab1fafb9657451804e42b42897123a3341b11cad1d47bda2b4a2be60dda023), [AUDIO_CHANNEL_EXCHANGE](_audio.md#gga78aab1fafb9657451804e42b42897123a3f2e41939cc24c51213d8730c32e74e9),   [AUDIO_CHANNEL_MIX](_audio.md#gga78aab1fafb9657451804e42b42897123a2c1537bccd5c2a05d1c515e58ec4481e), [AUDIO_CHANNEL_LEFT_MUTE](_audio.md#gga78aab1fafb9657451804e42b42897123a485c0423ce07fbb7f844a387ed9bb546), [AUDIO_CHANNEL_RIGHT_MUTE](_audio.md#gga78aab1fafb9657451804e42b42897123a0878cdf6f3e0d9ae9ae1f61b7f74257e), [AUDIO_CHANNEL_BOTH_MUTE](_audio.md#gga78aab1fafb9657451804e42b42897123a22540143eb96abf8176e73c19fc0d8e5) } | 音频播放的通道模式 [更多...](_audio.md#audiochannelmode) | +| [AudioDrainNotifyType](_audio.md#audiodrainnotifytype) { [AUDIO_DRAIN_NORMAL_MODE](_audio.md#gga6359642a80d38bd309683186d904306da4963b68236fd3314ffee8bc02c1b5d9f), [AUDIO_DRAIN_EARLY_MODE](_audio.md#gga6359642a80d38bd309683186d904306da6502b8f1bc5e947ef45638a2155b5dff) } | DrainBuffer函数结束类型 [更多...](_audio.md#audiodrainnotifytype) | +| [AudioCallbackType](_audio.md#audiocallbacktype) {   [AUDIO_NONBLOCK_WRITE_COMPELETED](_audio.md#ggae6a108ed6d40bf9adc9124f59501e1a8ae5f3f33b8d4de2b6ae2004e46db16b4f), [AUDIO_DRAIN_COMPELETED](_audio.md#ggae6a108ed6d40bf9adc9124f59501e1a8a88770682790de22125afbee7fd0da618), [AUDIO_FLUSH_COMPLETED](_audio.md#ggae6a108ed6d40bf9adc9124f59501e1a8a67b1cc122ca5bf96b68cb28bfbdfe9a8), [AUDIO_RENDER_FULL](_audio.md#ggae6a108ed6d40bf9adc9124f59501e1a8a569f62b68b379f66e63bd8f0f8500421),   [AUDIO_ERROR_OCCUR](_audio.md#ggae6a108ed6d40bf9adc9124f59501e1a8a5372856fbf3214e0c54c4d4d4046bfe8) } | 回调函数通知事件类型 [更多...](_audio.md#audiocallbacktype) | +| [AudioPortRole](_audio.md#audioportrole) { [AUDIO_PORT_UNASSIGNED_ROLE](_audio.md#gga9262d2f01824bf765fd79c2e78c9a62da87fb7ced5a0e447f2bbd1b7730d2eb7b) = 0, [AUDIO_PORT_SOURCE_ROLE](_audio.md#gga9262d2f01824bf765fd79c2e78c9a62da22faadd2246a6ca5995c14560a9b9332) = 1, [AUDIO_PORT_SINK_ROLE](_audio.md#gga9262d2f01824bf765fd79c2e78c9a62da6f2b666591eb7bb9106d1d998ca18ab7) = 2 } | 音频端口角色 [更多...](_audio.md#audioportrole) | +| [AudioPortType](_audio.md#audioporttype) { [AUDIO_PORT_UNASSIGNED_TYPE](_audio.md#ggaad9bcf12b3ab430a2f96a2af7505173bae8d72365ca8cd78b9245c874fbe06227) = 0, [AUDIO_PORT_DEVICE_TYPE](_audio.md#ggaad9bcf12b3ab430a2f96a2af7505173ba52c6725d10840f7524b001ff71452439) = 1, [AUDIO_PORT_MIX_TYPE](_audio.md#ggaad9bcf12b3ab430a2f96a2af7505173baee29a064c72da8740173cd9e618681c1) = 2, [AUDIO_PORT_SESSION_TYPE](_audio.md#ggaad9bcf12b3ab430a2f96a2af7505173ba1e16adb8496d8a0e28f0794334c425ec) = 3 } | 音频端口类型. [更多...](_audio.md#audioporttype) | +| [AudioSessionType](_audio.md#audiosessiontype) { [AUDIO_OUTPUT_STAGE_SESSION](_audio.md#ggab242c41d88b46812f204052ba8509ccea0b887608f198d74497a4eb44c51f9fce) = 0, [AUDIO_OUTPUT_MIX_SESSION](_audio.md#ggab242c41d88b46812f204052ba8509ccea5cd6f49112fc8a0f97fd83b0fd48b25a), [AUDIO_ALLOCATE_SESSION](_audio.md#ggab242c41d88b46812f204052ba8509ccead78430579e471af7153917fbcc5aa6b4), [AUDIO_INVALID_SESSION](_audio.md#ggab242c41d88b46812f204052ba8509ccea8721a5a0498b144056551b41030afbb7) } | 端口会话类型 [更多...](_audio.md#audiosessiontype) | + + +## **详细描述** + +Audio模块接口定义中使用的自定义数据类型 + +Audio模块接口定义中使用的自定义数据类型,包括音频端口、适配器描述符、设备描述符、场景描述符、采样属性、时间戳等。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/audio__volume_8h.md b/zh-cn/device-dev/api/audio__volume_8h.md new file mode 100644 index 0000000000..743fa7b97a --- /dev/null +++ b/zh-cn/device-dev/api/audio__volume_8h.md @@ -0,0 +1,31 @@ +# audio_volume.h + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [AudioVolume](_audio_volume.md) | AudioVolume音频音量接口 [更多...](_audio_volume.md) | + + +## **详细描述** + +Audio音量的接口定义文件。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/battery.md b/zh-cn/device-dev/api/battery.md new file mode 100644 index 0000000000..6fb0d45e0d --- /dev/null +++ b/zh-cn/device-dev/api/battery.md @@ -0,0 +1,118 @@ +# Battery + + +## **汇总** + + +### 文件 + + | 文件 | 描述 | +| -------- | -------- | +| [IBatteryCallback.idl](_i_battery_callback_8idl.md) | 电池信息的回调。 | +| [IBatteryInterface.idl](_i_battery_interface_8idl.md) | 获取、订阅电池信息的接口。 | +| [Types.idl](_types_8idl.md) | 电池信息相关数据类型。 | + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IBatteryCallback](interface_i_battery_callback.md) | 电池信息的回调。 [更多...](interface_i_battery_callback.md) | +| [IBatteryInterface](interface_i_battery_interface.md) | 获取、订阅电池信息的接口。 [更多...](interface_i_battery_interface.md) | +| [BatteryInfo](_battery_info.md) | 电池相关信息。 [更多...](_battery_info.md) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [BatteryHealthState](#batteryhealthstate) {   [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref722934690083931,link:zh-cn_topic_0000001295094372.xml#ggaec9b86ee31a5d8abf7c804d81b542f2fa383fc8bba89eb9195e07da10ebff6a6a](#ggaec9b86ee31a5d8abf7c804d81b542f2fa383fc8bba89eb9195e07da10ebff6a6a) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref1559010308083931,link:zh-cn_topic_0000001295094372.xml#ggaec9b86ee31a5d8abf7c804d81b542f2fa9019a1cab9aaffb56b968f846eae45c2](#ggaec9b86ee31a5d8abf7c804d81b542f2fa9019a1cab9aaffb56b968f846eae45c2), [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref255658891083931,link:zh-cn_topic_0000001295094372.xml#ggaec9b86ee31a5d8abf7c804d81b542f2fa34cb203c04d3f8b391fd0f193673d2cc](#ggaec9b86ee31a5d8abf7c804d81b542f2fa34cb203c04d3f8b391fd0f193673d2cc), [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref113880335083931,link:zh-cn_topic_0000001295094372.xml#ggaec9b86ee31a5d8abf7c804d81b542f2faeb20e3755faa28a34b37c20fce37672f](#ggaec9b86ee31a5d8abf7c804d81b542f2faeb20e3755faa28a34b37c20fce37672f),   [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref182824369083931,link:zh-cn_topic_0000001295094372.xml#ggaec9b86ee31a5d8abf7c804d81b542f2fa1ed5e419d57b9ff71ac397d1b17eb420](#ggaec9b86ee31a5d8abf7c804d81b542f2fa1ed5e419d57b9ff71ac397d1b17eb420), [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref297127956083931,link:zh-cn_topic_0000001295094372.xml#ggaec9b86ee31a5d8abf7c804d81b542f2fa05f1241d31443ffefec7ac784e141341](#ggaec9b86ee31a5d8abf7c804d81b542f2fa05f1241d31443ffefec7ac784e141341), [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref2037974216083931,link:zh-cn_topic_0000001295094372.xml#ggaec9b86ee31a5d8abf7c804d81b542f2fa9583572172c946660b255d5ac3604f9b](#ggaec9b86ee31a5d8abf7c804d81b542f2fa9583572172c946660b255d5ac3604f9b) } | 电池的健康状态。 [更多...](#batteryhealthstate) | +| [BatteryChargeState](#batterychargestate) {   [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref567636600083931,link:zh-cn_topic_0000001295094372.xml#gga35791cca3603f7855c6368fbd00b21f1afdc91bf6bc92fdcd784cb274b1a14d28](#gga35791cca3603f7855c6368fbd00b21f1afdc91bf6bc92fdcd784cb274b1a14d28) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref1386983798083931,link:zh-cn_topic_0000001295094372.xml#gga35791cca3603f7855c6368fbd00b21f1a03dc57c4f65da6b1472ae4f7ed676234](#gga35791cca3603f7855c6368fbd00b21f1a03dc57c4f65da6b1472ae4f7ed676234), [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref354436213083931,link:zh-cn_topic_0000001295094372.xml#gga35791cca3603f7855c6368fbd00b21f1a33914f4c27c801d3ba5315ca486655cc](#gga35791cca3603f7855c6368fbd00b21f1a33914f4c27c801d3ba5315ca486655cc), [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref323429256083931,link:zh-cn_topic_0000001295094372.xml#gga35791cca3603f7855c6368fbd00b21f1a70b48a2925871d0364ae6344bce944ae](#gga35791cca3603f7855c6368fbd00b21f1a70b48a2925871d0364ae6344bce944ae),   [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref914237832083931,link:zh-cn_topic_0000001295094372.xml#gga35791cca3603f7855c6368fbd00b21f1a38af1f4d697139ebaa8eb97fb5b34120](#gga35791cca3603f7855c6368fbd00b21f1a38af1f4d697139ebaa8eb97fb5b34120) } | 电池的充电状态。 [更多...](#batterychargestate) | +| [BatteryPluggedType](#batterypluggedtype) {   [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref1653299919083931,link:zh-cn_topic_0000001295094372.xml#ggab80029eabf9d0fdcc3ab4d4a4c3be6baa23f13d9ed048300c42930d844ead29c7](#ggab80029eabf9d0fdcc3ab4d4a4c3be6baa23f13d9ed048300c42930d844ead29c7) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref1508452124083931,link:zh-cn_topic_0000001295094372.xml#ggab80029eabf9d0fdcc3ab4d4a4c3be6baaba143c5ab6146a49e3c1362d3ba38751](#ggab80029eabf9d0fdcc3ab4d4a4c3be6baaba143c5ab6146a49e3c1362d3ba38751), [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref1839332687083931,link:zh-cn_topic_0000001295094372.xml#ggab80029eabf9d0fdcc3ab4d4a4c3be6baacfe481a50e9915a049edd3debcc7de1c](#ggab80029eabf9d0fdcc3ab4d4a4c3be6baacfe481a50e9915a049edd3debcc7de1c), [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref697301032083931,link:zh-cn_topic_0000001295094372.xml#ggab80029eabf9d0fdcc3ab4d4a4c3be6baaa8b900a0327e60b02ad7d3501057be38](#ggab80029eabf9d0fdcc3ab4d4a4c3be6baaa8b900a0327e60b02ad7d3501057be38),   [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref1095760243083931,link:zh-cn_topic_0000001295094372.xml#ggab80029eabf9d0fdcc3ab4d4a4c3be6baac85bb1a7b26e14b55cd9bb977c3e66c0](#ggab80029eabf9d0fdcc3ab4d4a4c3be6baac85bb1a7b26e14b55cd9bb977c3e66c0) } | 电池的充电设备类型。 [更多...](#batterypluggedtype) | + + +### 变量 + + | 变量 | 描述 | +| -------- | -------- | +| package ohos.hdi.battery.v1_0 | 电池信息接口的包路径 | + + +## **详细描述** + +提供获取、订阅电池信息的接口。 + +电池模块为电池服务提供的获取、订阅电池信息的接口。 服务获取此模块的对象或代理后,可以调用相关的接口获取电池信息、订阅电池信息的变化。 + +**Since:** + +3.1 + +**Version:** + +1.0 + + +## **枚举类型说明** + + +### BatteryChargeState + + +``` +enum BatteryChargeState +``` + +**描述:** + +电池的充电状态。 + + | 枚举值 | 描述 | +| -------- | -------- | +| CHARGE_STATE_NONE | 表示电池充电状态未知。 | +| CHARGE_STATE_ENABLE | 表示电池充电状态为使能状态。 | +| CHARGE_STATE_DISABLE | 表示电池充电状态为停止状态。 | +| CHARGE_STATE_FULL | 表示电池充电状态为已充满状态。 | +| CHARGE_STATE_RESERVED | 预留。 | + + +### BatteryHealthState + + +``` +enum BatteryHealthState +``` + +**描述:** + +电池的健康状态。 + + | 枚举值 | 描述 | +| -------- | -------- | +| BATTERY_HEALTH_UNKNOWN | 表示电池健康状态未知。 | +| BATTERY_HEALTH_GOOD | 表示电池健康状态为正常。 | +| BATTERY_HEALTH_OVERHEAT | 表示电池健康状态为过热。 | +| BATTERY_HEALTH_OVERVOLTAGE | 表示电池健康状态为过压。 | +| BATTERY_HEALTH_COLD | 表示电池健康状态为低温。 | +| BATTERY_HEALTH_DEAD | 表示电池健康状态为耗尽。 | +| BATTERY_HEALTH_RESERVED | 预留。 | + + +### BatteryPluggedType + + +``` +enum BatteryPluggedType +``` + +**描述:** + +电池的充电设备类型。 + + | 枚举值 | 描述 | +| -------- | -------- | +| PLUGGED_TYPE_NONE | 表示连接充电器类型未知。 | +| PLUGGED_TYPE_AC | 表示连接的充电器类型为交流充电器。 | +| PLUGGED_TYPE_USB | 表示连接的充电器类型为USB充电器。 | +| PLUGGED_TYPE_WIRELESS | 表示连接的充电器类型为无线充电器。 | +| PLUGGED_TYPE_BUTT | 预留。 | diff --git a/zh-cn/device-dev/api/codec__callback__if_8h.md b/zh-cn/device-dev/api/codec__callback__if_8h.md new file mode 100644 index 0000000000..901abda364 --- /dev/null +++ b/zh-cn/device-dev/api/codec__callback__if_8h.md @@ -0,0 +1,41 @@ +# codec_callback_if.h + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [CodecCallbackType](_codec_callback_type.md) | Codec回调接口定义。 [更多...](_codec_callback_type.md) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [CodecCallbackTypeGet](_codec.md#codeccallbacktypeget) (struct HdfRemoteService \*remote) | 实例化CodecCallbackType对象。 [更多...](_codec.md#codeccallbacktypeget) | +| [CodecCallbackTypeRelease](_codec.md#codeccallbacktyperelease) (struct [CodecCallbackType](_codec_callback_type.md) \*instance) | 释放CodecCallbackType对象。 [更多...](_codec.md#codeccallbacktyperelease) | + + +## **详细描述** + +主要包括回调函数接口定义。 + +Codec模块事件上报、上报输入buffer和输出buffer处理完毕等接口定义。 + +**Since:** + +3.1 + +**Version:** + +2.0 diff --git a/zh-cn/device-dev/api/codec__common__type_8h.md b/zh-cn/device-dev/api/codec__common__type_8h.md new file mode 100644 index 0000000000..3db3afe2cd --- /dev/null +++ b/zh-cn/device-dev/api/codec__common__type_8h.md @@ -0,0 +1,46 @@ +# codec_common_type.h + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [Alignment](_alignment.md) | 对齐结构定义,包含宽高的对齐值 [更多...](_alignment.md) | +| [Rect](_rect.md) | 矩形的定义 [更多...](_rect.md) | +| [RangeValue](_range_value.md) | 取值范围的定义 [更多...](_range_value.md) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [CodecType](_codec.md#codectype) {   [VIDEO_DECODER](_codec.md#gga03b4b6ae5fb82af68d46aaea3d3e4d79a19c3c7765c55583a64e21938e2439261), [VIDEO_ENCODER](_codec.md#gga03b4b6ae5fb82af68d46aaea3d3e4d79ad8044bc5b7d871723be90b5b6a094992), [AUDIO_DECODER](_codec.md#gga03b4b6ae5fb82af68d46aaea3d3e4d79ae4ade329585f6c202847138e3f9cd4a4), [AUDIO_ENCODER](_codec.md#gga03b4b6ae5fb82af68d46aaea3d3e4d79a7f7f3d3880168089c1de6d1ebc3dbb54),   [INVALID_TYPE](_codec.md#gga03b4b6ae5fb82af68d46aaea3d3e4d79a7314b0d0e4638eaaeb8690b8555a6546) } | 枚举编解码的类型 [更多...](_codec.md#codectype) | +| [Profile](_codec.md#profile) {   [INVALID_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01a6d67944b4958ad33b0eeb851bbcd169f) = 0, [AAC_LC_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01ad91765d6dcad7253a924d3cb30501e44) = 0x1000, [AAC_MAIN_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01aada4d857818cd9aa1ad62cdf608dab6b), [AAC_HE_V1_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01ab4255dc0e7450af4f526b85acbabfd3e),   [AAC_HE_V2_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01a9b54f7a8c45ea6d4804133d8de4b8dd8), [AAC_LD_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01afaaacd4f6bdadac28b5cf49ae8f8470a), [AAC_ELD_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01a7c8028283d1ff60e486b3305bf8c1adc), [AVC_BASELINE_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01a5bab002f00d3d7281aedc4807123a47a) = 0x2000,   [AVC_MAIN_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01a323c1d6e02363f1717f7e6b33fd9a646), [AVC_HIGH_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01ab9406e6bf30a0c128c3639cce51fe246), [HEVC_MAIN_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01ae0d37dc2c7d39753a80f6e0ba64e5e22) = 0x3000, [HEVC_MAIN_10_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01a811b9e02d8b0afa93e7ab8d2aa7e5de6) } | 枚举Codec规格 [更多...](_codec.md#profile) | +| [AudioSampleRate](_codec.md#audiosamplerate) {   [AUD_SAMPLE_RATE_8000](_codec.md#ggaa0280074adafe6d2581d31f71512b842a65d5a1e4d1f048a33d29c9a3b6f540bd) = 8000, [AUD_SAMPLE_RATE_12000](_codec.md#ggaa0280074adafe6d2581d31f71512b842ac8379e14b05cdac5edfcc931ac8b33a9) = 12000, [AUD_SAMPLE_RATE_11025](_codec.md#ggaa0280074adafe6d2581d31f71512b842a57b1853b1e309bf1aa5b3a35b06b0f81) = 11025, [AUD_SAMPLE_RATE_16000](_codec.md#ggaa0280074adafe6d2581d31f71512b842a43395f0fe94ae2949778468e4488c3ee) = 16000,   [AUD_SAMPLE_RATE_22050](_codec.md#ggaa0280074adafe6d2581d31f71512b842a5e8155ecfa865686a66e004e37ce1e54) = 22050, [AUD_SAMPLE_RATE_24000](_codec.md#ggaa0280074adafe6d2581d31f71512b842abd4c09d52f3da25adb108e9aa503119d) = 24000, [AUD_SAMPLE_RATE_32000](_codec.md#ggaa0280074adafe6d2581d31f71512b842a1f94827fe757ad2857d970638b6f8d66) = 32000, [AUD_SAMPLE_RATE_44100](_codec.md#ggaa0280074adafe6d2581d31f71512b842ac880553f2ee154a240d9414598e006a2) = 44100,   [AUD_SAMPLE_RATE_48000](_codec.md#ggaa0280074adafe6d2581d31f71512b842ade6dd509c28b66127c42d2634866b89c) = 48000, [AUD_SAMPLE_RATE_64000](_codec.md#ggaa0280074adafe6d2581d31f71512b842a925218c15bb8522796e623a09d99dbc3) = 64000, [AUD_SAMPLE_RATE_96000](_codec.md#ggaa0280074adafe6d2581d31f71512b842a48336a808a2ebcf5956995140e2d73dd) = 96000, [AUD_SAMPLE_RATE_INVALID](_codec.md#ggaa0280074adafe6d2581d31f71512b842a0cb82ce52fb70b359a0b2232f7f465a2) } | 枚举音频采样率 [更多...](_codec.md#audiosamplerate) | +| [CodecCapsMask](_codec.md#codeccapsmask) { [CODEC_CAP_ADAPTIVE_PLAYBACK](_codec.md#gga9e2fbfb8a5881de2f495933f90f23b3fa30c688a80d3e64a3f5c2a13da89eef3c) = 0x1, [CODEC_CAP_SECURE_PLAYBACK](_codec.md#gga9e2fbfb8a5881de2f495933f90f23b3fa33911c21f51bcd1980645cac6d0729ca) = 0x2, [CODEC_CAP_TUNNEL_PLAYBACK](_codec.md#gga9e2fbfb8a5881de2f495933f90f23b3fa423e1b0d0a7dc9e4abeeded920aafb5b) = 0x4, [CODEC_CAP_MULTI_PLANE](_codec.md#gga9e2fbfb8a5881de2f495933f90f23b3fa0da8339e6a216573d7dc3b8d4380d96d) = 0x10000 } | 枚举播放能力 [更多...](_codec.md#codeccapsmask) | +| [CodecProcessMode](_codec.md#codecprocessmode) {   [PROCESS_BLOCKING_INPUT_BUFFER](_codec.md#gga5bec468886b760c542669b1615613dc4a0324b4efc6d2095c788806bf387955fe) = 0X1, [PROCESS_BLOCKING_OUTPUT_BUFFER](_codec.md#gga5bec468886b760c542669b1615613dc4acba39cb03563db7f38634009575fdc21) = 0X2, [PROCESS_BLOCKING_CONTROL_FLOW](_codec.md#gga5bec468886b760c542669b1615613dc4a2ebd571bd15c86c289b04617e78584ec) = 0X4, [PROCESS_NONBLOCKING_INPUT_BUFFER](_codec.md#gga5bec468886b760c542669b1615613dc4a73009c59abb2943e3363ad0aeefa81c1) = 0X100,   [PROCESS_NONBLOCKING_OUTPUT_BUFFER](_codec.md#gga5bec468886b760c542669b1615613dc4ab943f6f6a762a47e663b74f42941fe9e) = 0X200, [PROCESS_NONBLOCKING_CONTROL_FLOW](_codec.md#gga5bec468886b760c542669b1615613dc4a5421710be01e8656530fb22f39e766ea) = 0X400 } | 枚举编解码处理模式 [更多...](_codec.md#codecprocessmode) | + + +## **详细描述** + +Codec模块接口定义中使用的自定义数据类型。 + +Codec模块接口定义中使用的自定义数据类型,包括编解码类型、音视频参数、buffer定义等。 + +**Since:** + +3.1 + +**Version:** + +2.0 diff --git a/zh-cn/device-dev/api/codec__component__if_8h.md b/zh-cn/device-dev/api/codec__component__if_8h.md new file mode 100644 index 0000000000..4e4587ac51 --- /dev/null +++ b/zh-cn/device-dev/api/codec__component__if_8h.md @@ -0,0 +1,41 @@ +# codec_component_if.h + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [CodecComponentType](_codec_component_type.md) | Codec组件接口定义。 [更多...](_codec_component_type.md) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [CodecComponentTypeGet](_codec.md#codeccomponenttypeget) (struct HdfRemoteService \*remote) | 实例化CodecComponentType对象。 [更多...](_codec.md#codeccomponenttypeget) | +| [CodecComponentTypeRelease](_codec.md#codeccomponenttyperelease) (struct [CodecComponentType](_codec_component_type.md) \*instance) | 释放CodecComponentType对象。 [更多...](_codec.md#codeccomponenttyperelease) | + + +## **详细描述** + +主要包括Codec组件接口定义。 + +Codec模块提供了获取组件信息、给组件发送命令、组件参数设置、buffer轮转和控制等接口定义。创建组件后,可使用下列接口进行编解码处理。 + +**Since:** + +3.1 + +**Version:** + +2.0 diff --git a/zh-cn/device-dev/api/codec__component__manager_8h.md b/zh-cn/device-dev/api/codec__component__manager_8h.md new file mode 100644 index 0000000000..77ea946aef --- /dev/null +++ b/zh-cn/device-dev/api/codec__component__manager_8h.md @@ -0,0 +1,41 @@ +# codec_component_manager.h + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [CodecComponentManager](_codec_component_manager.md) | Codec组件管理类接口定义。 [更多...](_codec_component_manager.md) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [GetCodecComponentManager](_codec.md#getcodeccomponentmanager) (void) | 实例化CodecComponentManager对象。 [更多...](_codec.md#getcodeccomponentmanager) | +| [CodecComponentManagerRelease](_codec.md#codeccomponentmanagerrelease) (void) | 释放CodecComponentManager对象。 [更多...](_codec.md#codeccomponentmanagerrelease) | + + +## **详细描述** + +主要包括Codec组件管理类接口。 + +Codec模块获取组件编解码能力集、创建组件和销毁组件等接口定义。 + +**Since:** + +3.1 + +**Version:** + +2.0 diff --git a/zh-cn/device-dev/api/codec__component__type_8h.md b/zh-cn/device-dev/api/codec__component__type_8h.md new file mode 100644 index 0000000000..6a717c6c29 --- /dev/null +++ b/zh-cn/device-dev/api/codec__component__type_8h.md @@ -0,0 +1,68 @@ +# codec_component_type.h + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [VideoPortCap](_video_port_cap.md) | 定义视频编解码能力 [更多...](_video_port_cap.md) | +| [AudioPortCap](_audio_port_cap.md) | 定义音频编解码能力 [更多...](_audio_port_cap.md) | +| [PortCap](union_port_cap.md) | 定义音视频编解码能力 [更多...](union_port_cap.md) | +| [CodecCompCapability](_codec_comp_capability.md) | 定义Codec编解码能力 [更多...](_codec_comp_capability.md) | +| [OmxCodecBuffer](_omx_codec_buffer.md) | Codec buffer信息的定义 [更多...](_omx_codec_buffer.md) | +| [CompVerInfo](_comp_ver_info.md) | 定义组件版本信息 [更多...](_comp_ver_info.md) | +| [EventInfo](_event_info.md) | 定义事件上报信息 [更多...](_event_info.md) | +| [SupportBufferType](_support_buffer_type.md) | SupportBuffer类型定义. [更多...](_support_buffer_type.md) | +| [UseBufferType](_use_buffer_type.md) | UseBuffer类型定义 [更多...](_use_buffer_type.md) | +| [GetBufferHandleUsageParams](_get_buffer_handle_usage_params.md) | BufferHandleUsage类型定义 [更多...](_get_buffer_handle_usage_params.md) | + + +### 宏定义 + + | 宏定义 | 描述 | +| -------- | -------- | +| [SAMPLE_FMT_NUM](_codec.md#ga9bda75c363e9bcff915cdd521dd7ba84)   32 | 采样格式最大值 | +| [UUID_LENGTH](_codec.md#ga9226162b034cc837cd977f0fcf611c2c)   128 | 定义UUID长度 | +| [PIX_FORMAT_NUM](_codec.md#gadb8c6478388b68c09835ebe093a8920a)   16 | 支持的像素格式数组大小 | +| [SAMPLE_FORMAT_NUM](_codec.md#gaf958b9cc535f6260e2e8b7ce42c89946)   12 | 支持的音频采样格式数组大小 | +| [SAMPLE_RATE_NUM](_codec.md#ga0d905eaa05b4b6fcec76924eb795d7fe)   16 | 支持的音频采样率数组大小 | +| [CHANNEL_NUM](_codec.md#ga6511732d5b29a6781cf38783157f21e1)   16 | 支持的音频通道数组大小 | +| [NAME_LENGTH](_codec.md#gaf71324c57f05ff9e24bd384925dd6b17)   32 | 组件名称大小 | +| [PROFILE_NUM](_codec.md#gaab6353cb3662bdc672ae8ab90df529ce)   256 | 支持的profile数组大小 | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [AvCodecRole](_codec.md#avcodecrole) {   [MEDIA_ROLETYPE_IMAGE_JPEG](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5ac261edd4c0d6eed15f6317024810dee2) = 0, [MEDIA_ROLETYPE_VIDEO_AVC](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5adebef2ce1107d74e5d4f91d3452c823d), [MEDIA_ROLETYPE_VIDEO_HEVC](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5af84180255d50e9ae94cedfc35ad19056), [MEDIA_ROLETYPE_AUDIO_FIRST](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5a9e653abe452b248670825bd468f59d20) = 0x10000,   [MEDIA_ROLETYPE_AUDIO_AAC](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5ac9627d3deaca6bbf69f03c0dee1b6c05) = 0x10000, [MEDIA_ROLETYPE_AUDIO_G711A](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5a033c0faacbd270fa2c539686e6d60551), [MEDIA_ROLETYPE_AUDIO_G711U](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5ae0170e900d835de44884f483b28b10f8), [MEDIA_ROLETYPE_AUDIO_G726](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5a1bd136ced64ce1ab7b9e45fb0f5d75b6),   [MEDIA_ROLETYPE_AUDIO_PCM](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5a30e0f43909d411eb0f4c4fd8f9216dd8), [MEDIA_ROLETYPE_AUDIO_MP3](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5aec847c178f28118703297fb600907338), [MEDIA_ROLETYPE_INVALID](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5aee058a8e8a635efc2ed3328440a58e45) } | 枚举音视频编解码组件类型 [更多...](_codec.md#avcodecrole) | +| [AudioSampleFormat](_codec.md#audiosampleformat) {   [AUDIO_SAMPLE_FORMAT_S8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a2d8a330d2cb71268562e1c4da0c4eabc), [AUDIO_SAMPLE_FORMAT_S8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a4eb79a5d6d99244902cfb5c65f225c80), [AUDIO_SAMPLE_FORMAT_U8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab6d04d1d87a9a243b195ab6be183600e), [AUDIO_SAMPLE_FORMAT_U8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aeffb8620959b836e01622c7dc82ebc6d),   [AUDIO_SAMPLE_FORMAT_S16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a4422a2a04509e492ef823189d454d5a3), [AUDIO_SAMPLE_FORMAT_S16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a11a1fb37c21f722383a37fc5e6075dfe), [AUDIO_SAMPLE_FORMAT_U16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757af961944b4c8e77ee56defc30e6e61eb5), [AUDIO_SAMPLE_FORMAT_U16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a08ba605e3e58479ebb7432ff5d6d0972),   [AUDIO_SAMPLE_FORMAT_S24](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a102520af7c50d1ee4951e472f5f921e4), [AUDIO_SAMPLE_FORMAT_S24P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ae245cf6bd637c1f1304b38746f8940d6), [AUDIO_SAMPLE_FORMAT_U24](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a0d5fc3d14030aad7bc17d894bf4fc5c9), [AUDIO_SAMPLE_FORMAT_U24P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a0e8b7681ec3461988cb7fdd0f3616b2e),   [AUDIO_SAMPLE_FORMAT_S32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a46819088770f843230d2b094fd8d14ba), [AUDIO_SAMPLE_FORMAT_S32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a7883f8a4bede55eb4ffaf6ecb47f6841), [AUDIO_SAMPLE_FORMAT_U32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757afae09ccb9fdae65e73e5584a4c3a6d16), [AUDIO_SAMPLE_FORMAT_U32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a915025bfdcf9491a21b2d38dec7998cc),   [AUDIO_SAMPLE_FORMAT_S64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a2e5477f7cc05dcc271b50e570dfd0452), [AUDIO_SAMPLE_FORMAT_S64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab07b4d40994980a8012a79dc4a69a794), [AUDIO_SAMPLE_FORMAT_U64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a959950ea0f2b6c0e17d752640238c23b), [AUDIO_SAMPLE_FORMAT_U64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aad2c58522f7d16111756c1731bf52044),   [AUDIO_SAMPLE_FORMAT_F32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ac3cb5729241a7f73210d97d4fe0002fe), [AUDIO_SAMPLE_FORMAT_F32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a1121b8995d1083f61b2fa0afcc45143f), [AUDIO_SAMPLE_FORMAT_F64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a72f064169d0282fa8a152aea546056c3), [AUDIO_SAMPLE_FORMAT_F64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a1f0e407cd152b27f7b0ff761d26bb300),   [AUDIO_SAMPLE_FMT_U8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aad65a5b895b3dba000167dbb6c19b9ab), [AUDIO_SAMPLE_FMT_S16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a40335eaa7ca378540941909ed02b51a0), [AUDIO_SAMPLE_FMT_S32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab98feafb8396c0190a4fb719a15ab7c5), [AUDIO_SAMPLE_FMT_FLOAT](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ac2fb27a42b3f79e51dd71ce05b42f9db),   [AUDIO_SAMPLE_FMT_DOUBLE](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757afb8b12c44b4799f59a533609b4c360b5), [AUDIO_SAMPLE_FMT_U8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a8eb00238e7aa21d69f056d9292eb64d9), [AUDIO_SAMPLE_FMT_S16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a93008db1a966fee4a91b515fedc78cec), [AUDIO_SAMPLE_FMT_S32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a6bb874f2726bb94d08914b366ae947d6),   [AUDIO_SAMPLE_FMT_FLOATP](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a8a635bbd6c5df1a8a0fadb1d9602ea74), [AUDIO_SAMPLE_FMT_DOUBLEP](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a467bd88ce7f736a433425695ed0a0dbc), [AUDIO_SAMPLE_FMT_INVALID](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a5c8f7c2c0f84e70f609f8fd4ffd2c910) } | 枚举音频采样格式 [更多...](_codec.md#audiosampleformat) | +| [CodecBufferType](_codec.md#codecbuffertype) {   [CODEC_BUFFER_TYPE_INVALID](_codec.md#ggaf63c168decbe7dc156ad3b4d575a0d46aba35b6e9b3ca08afcb012f723c07baee) = 0, [CODEC_BUFFER_TYPE_VIRTUAL_ADDR](_codec.md#ggaf63c168decbe7dc156ad3b4d575a0d46a4df6de0078bcf908fdb12d0ec1486899) = 0x1, [CODEC_BUFFER_TYPE_AVSHARE_MEM_FD](_codec.md#ggaf63c168decbe7dc156ad3b4d575a0d46aaba95e9bf8ffbd7fe7512bc842d70ca5) = 0x2, [CODEC_BUFFER_TYPE_HANDLE](_codec.md#ggaf63c168decbe7dc156ad3b4d575a0d46a90db1a10a238c832937c7a0e02287a79) = 0x4,   [CODEC_BUFFER_TYPE_DYNAMIC_HANDLE](_codec.md#ggaf63c168decbe7dc156ad3b4d575a0d46a931ecc36727f5eb3baba00e0d2b8771e) = 0x8 } | 定义buffer类型 [更多...](_codec.md#codecbuffertype) | +| [ShareMemTypes](_codec.md#sharememtypes) { [READ_WRITE_TYPE](_codec.md#ggae84516e039a3963772dfeebd4937cb8daa268821c7f672c1b968aeed0ad745dd0) = 0x1, [READ_ONLY_TYPE](_codec.md#ggae84516e039a3963772dfeebd4937cb8daa5af6f1eec0b9f19c72a1085cef7c0ff) = 0x2 } | 枚举共享内存类型 [更多...](_codec.md#sharememtypes) | +| [OmxIndexCodecExType](_codec.md#omxindexcodecextype) { [OMX_IndexExtBufferTypeStartUnused](_codec.md#gga0ab3a4efe29745d2b49944c4014e0c28a228f8b3c93f68da516a76db3f594625d) = OMX_IndexKhronosExtensions + 0x00a00000, [OMX_IndexParamSupportBufferType](_codec.md#gga0ab3a4efe29745d2b49944c4014e0c28aaab75f888d711f3168327535312117fa), [OMX_IndexParamUseBufferType](_codec.md#gga0ab3a4efe29745d2b49944c4014e0c28a353c3ccfb9985619526c0c7a28c9cce8), [OMX_IndexParamGetBufferHandleUsage](_codec.md#gga0ab3a4efe29745d2b49944c4014e0c28a3dea5e61dc211290d54d79d35679199d) } | 枚举Codec扩展index [更多...](_codec.md#omxindexcodecextype) | +| [OmxVideoExType](_codec.md#omxvideoextype) { [OMX_VIDEO_CodingHEVC](_codec.md#ggab1cbacdf16bc8912e69547b37022a9c1acf4ea0b624499e3a53c3b36f6217f6fe) = 11 } | 枚举Codec扩展编码类型 [更多...](_codec.md#omxvideoextype) | + + +## **详细描述** + +Codec模块接口定义中使用的自定义数据类型。 + +Codec模块接口定义中使用的自定义数据类型,包括编解码类型、音视频参数、buffer定义等。 + +**Since:** + +3.1 + +**Version:** + +2.0 diff --git a/zh-cn/device-dev/api/dac__if_8h.md b/zh-cn/device-dev/api/dac__if_8h.md new file mode 100644 index 0000000000..32012972b8 --- /dev/null +++ b/zh-cn/device-dev/api/dac__if_8h.md @@ -0,0 +1,36 @@ +# dac_if.h + + +## **概述** + +**所属模块:** + +[DAC](_d_a_c.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [DacIoMsg](_dac_io_msg.md) | DAC设备信息传输结构体 [更多...](_dac_io_msg.md) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [DacOpen](_d_a_c.md#dacopen) (uint32_t number) | 获取DAC控制器的句柄。 [更多...](_d_a_c.md#dacopen) | +| [DacClose](_d_a_c.md#dacclose) (DevHandle handle) | 释放DAC控制器的句柄。 [更多...](_d_a_c.md#dacclose) | +| [DacWrite](_d_a_c.md#dacwrite) (DevHandle handle, uint32_t channel, uint32_t val) | 启动DAC设备进行传输,将目标值写入指定的DAC通道。 [更多...](_d_a_c.md#dacwrite) | + + +## **详细描述** + +声明标准DAC接口函数。 + +**Since:** + +3.1 diff --git a/zh-cn/device-dev/api/display__device_8h.md b/zh-cn/device-dev/api/display__device_8h.md new file mode 100644 index 0000000000..7d8bb2f450 --- /dev/null +++ b/zh-cn/device-dev/api/display__device_8h.md @@ -0,0 +1,48 @@ +# display_device.h + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [DeviceFuncs](_device_funcs.md) | 显示设备控制接口结构体,定义显示设备控制接口函数指针。 [更多...](_device_funcs.md) | + + +### 类型定义 + + | 类型定义 | 描述 | +| -------- | -------- | +| ([HotPlugCallback](_display.md#hotplugcallback)) (uint32_t devId, bool connected, void \*data) | 热插拔事件回调。[更多...](_display.md#hotplugcallback) | +| ([VBlankCallback](_display.md#vblankcallback)) (unsigned int sequence, uint64_t ns, void \*data) | VBlank 事件回调。 [更多...](_display.md#vblankcallback) | +| ([RefreshCallback](_display.md#refreshcallback)) (uint32_t devId, void \*data) | 刷新请求回调。[更多...](_display.md#refreshcallback) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [DeviceInitialize](_display.md#deviceinitialize) ([DeviceFuncs](_device_funcs.md) \*\*funcs) | 实现显示设备控制接口的初始化,申请操作显示设备控制接口的资源,并获取对应的操作接口。 [更多...](_display.md#deviceinitialize) | +| [DeviceUninitialize](_display.md#deviceuninitialize) ([DeviceFuncs](_device_funcs.md) \*funcs) | 取消显示设备控制接口的初始化,释放控制接口使用到的资源。 [更多...](_display.md#deviceuninitialize) | + + +## **详细描述** + +显示设备控制接口声明。 + +**Since:** + +1.0 + +**Version:** + +2.0 diff --git a/zh-cn/device-dev/api/display__gfx_8h.md b/zh-cn/device-dev/api/display__gfx_8h.md new file mode 100644 index 0000000000..10cc061b8d --- /dev/null +++ b/zh-cn/device-dev/api/display__gfx_8h.md @@ -0,0 +1,39 @@ +# display_gfx.h + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [GfxFuncs](_gfx_funcs.md) | 显示硬件加速驱动接口结构体,定义硬件加速驱动接口函数指针。 [更多...](_gfx_funcs.md) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [GfxInitialize](_display.md#gfxinitialize) ([GfxFuncs](_gfx_funcs.md) \*\*funcs) | 获取硬件加速相关的操作接口指针。 [更多...](_display.md#gfxinitialize) | +| [GfxUninitialize](_display.md#gfxuninitialize) ([GfxFuncs](_gfx_funcs.md) \*funcs) | 释放硬件加速相关的操作接口指针。 [更多...](_display.md#gfxuninitialize) | + + +## **详细描述** + +显示硬件加速驱动接口声明。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/display__gralloc_8h.md b/zh-cn/device-dev/api/display__gralloc_8h.md new file mode 100644 index 0000000000..e75c7d7898 --- /dev/null +++ b/zh-cn/device-dev/api/display__gralloc_8h.md @@ -0,0 +1,39 @@ +# display_gralloc.h + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [GrallocFuncs](_gralloc_funcs.md) | 显示内存驱动接口结构体,定义显示内存驱动接口函数指针。 [更多...](_gralloc_funcs.md) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [GrallocInitialize](_display.md#grallocinitialize) ([GrallocFuncs](_gralloc_funcs.md) \*\*funcs) | 初始化内存模块,并获取内存提供的操作接口。 [更多...](_display.md#grallocinitialize) | +| [GrallocUninitialize](_display.md#grallocuninitialize) ([GrallocFuncs](_gralloc_funcs.md) \*funcs) | 取消初始化内存模块,并释放内存操作接口指针。 [更多...](_display.md#grallocuninitialize) | + + +## **详细描述** + +显示内存驱动接口声明。 + +**Since:** + +1.0 + +**Version:** + +2.0 diff --git a/zh-cn/device-dev/api/display__layer_8h.md b/zh-cn/device-dev/api/display__layer_8h.md new file mode 100644 index 0000000000..6075edc6e5 --- /dev/null +++ b/zh-cn/device-dev/api/display__layer_8h.md @@ -0,0 +1,39 @@ +# display_layer.h + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [LayerFuncs](_layer_funcs.md) | 显示图层驱动接口结构体,定义显示图层驱动接口函数指针。 [更多...](_layer_funcs.md) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [LayerInitialize](_display.md#layerinitialize) ([LayerFuncs](_layer_funcs.md) \*\*funcs) | 实现图层初始化功能,申请图层使用的资源,并获取图层提供的操作接口。 [更多...](_display.md#layerinitialize) | +| [LayerUninitialize](_display.md#layeruninitialize) ([LayerFuncs](_layer_funcs.md) \*funcs) | 取消图层初始化功能,释放图层使用到的资源,并释放图层操作接口指针。 [更多...](_display.md#layeruninitialize) | + + +## **详细描述** + +显示图层驱动接口声明。 + +**Since:** + +1.0 + +**Version:** + +2.0 diff --git a/zh-cn/device-dev/api/display__type_8h.md b/zh-cn/device-dev/api/display__type_8h.md new file mode 100644 index 0000000000..cce9de291a --- /dev/null +++ b/zh-cn/device-dev/api/display__type_8h.md @@ -0,0 +1,82 @@ +# display_type.h + + +## **概述** + +**所属模块:** + +[Display](_display.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [DisplayInfo](_display_info.md) | 定义显示信息结构体 [更多...](_display_info.md) | +| [LayerInfo](_layer_info.md) | 定义图层信息结构体 [更多...](_layer_info.md) | +| [LayerAlpha](_layer_alpha.md) | 定义图层Alpha信息的结构体 [更多...](_layer_alpha.md) | +| [BufferData](_buffer_data.md) | 定义一层的缓冲区数据,包括虚拟和物理内存地址。 [更多...](_buffer_data.md) | +| [LayerBuffer](_layer_buffer.md) | 图层Buffer,用于存放图层数据。 [更多...](_layer_buffer.md) | +| [IRect](_i_rect.md) | 定义矩形信息 [更多...](_i_rect.md) | +| [ISurface](_i_surface.md) | 用于存放窗口相关信息的结构体定义,提供给硬件加速使用,例如图像合成,位图搬移等操作。 [更多...](_i_surface.md) | +| [ILine](_i_line.md) | 线条描述结构体定义,用于硬件加速绘制直线。 [更多...](_i_line.md) | +| [ICircle](_i_circle.md) | 圆形描述结构体定义,用于硬件加速绘制圆形。 [更多...](_i_circle.md) | +| [Rectangle](_rectangle.md) | 矩形描述结构体定义,用于硬件加速绘制矩形, [更多...](_rectangle.md) | +| [GfxOpt](_gfx_opt.md) | 图像硬件加速相关的操作选项结构体定义,用于图像硬件加速时的操作选项。 [更多...](_gfx_opt.md) | +| [PropertyObject](_property_object.md) | 定义包含名称、属性ID和值的属性对象。 [更多...](_property_object.md) | +| [DisplayCapability](_display_capability.md) | 定义输出性能。 [更多...](_display_capability.md) | +| [DisplayModeInfo](_display_mode_info.md) | 定义输出模式信息。 [更多...](_display_mode_info.md) | +| [AllocInfo](_alloc_info.md) | 定义关于要分配的内存的信息。 [更多...](_alloc_info.md) | +| [HDRCapability](_h_d_r_capability.md) | HDR属性结构体定义 [更多...](_h_d_r_capability.md) | +| [HDRMetaData](_h_d_r_meta_data.md) | HDR元数据结构体定义 [更多...](_h_d_r_meta_data.md) | +| [VerifyAllocInfo](_verify_alloc_info.md) | 用于验证内存分配信息的结构体定义 [更多...](_verify_alloc_info.md) | +| [PresentTimestamp](_present_timestamp.md) | 上屏时间戳结构体定义 [更多...](_present_timestamp.md) | +| [__attribute__](____attribute____.md) | 扩展数据句柄结构体定义 [更多...](____attribute____.md) | + + +### 宏定义 + + | 宏定义 | 描述 | +| -------- | -------- | +| **PROPERTY_NAME_LEN**   50 | 属性名称长度 | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [DispErrCode](_display.md#disperrcode) {   [DISPLAY_SUCCESS](_display.md#gga12a925dadef7573cd74d63d06824f9b0a188daac95e787159d50ff9546536035b) = 0, [DISPLAY_FAILURE](_display.md#gga12a925dadef7573cd74d63d06824f9b0afdffc20c71fb142c3e7f01323a31d742) = -1, [DISPLAY_FD_ERR](_display.md#gga12a925dadef7573cd74d63d06824f9b0a5bdb0a826a652f51e6c82685ae08ede8) = -2, [DISPLAY_PARAM_ERR](_display.md#gga12a925dadef7573cd74d63d06824f9b0a330e09be303bc7056f6115830bbd2370) = -3,   [DISPLAY_NULL_PTR](_display.md#gga12a925dadef7573cd74d63d06824f9b0a82fbcdba6c699059bc04b491c92424ac) = -4, [DISPLAY_NOT_SUPPORT](_display.md#gga12a925dadef7573cd74d63d06824f9b0a950a7bc41e893450315da9e73208f8c2) = -5, [DISPLAY_NOMEM](_display.md#gga12a925dadef7573cd74d63d06824f9b0af186ab511133fa3280c54d2c44358882) = -6, [DISPLAY_SYS_BUSY](_display.md#gga12a925dadef7573cd74d63d06824f9b0ac11b678fc04745ff4d91f4398b83c427) = -7,   [DISPLAY_NOT_PERM](_display.md#gga12a925dadef7573cd74d63d06824f9b0ad133674b9f3b857a12791479aaf58cf8) = -8 } | 返回值类型定义。 [更多...](_display.md#disperrcode) | +| [LayerType](_display.md#layertype) {   [LAYER_TYPE_GRAPHIC](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4a6ef157ea82a5d4c1715b3cddcca38d6f), [LAYER_TYPE_OVERLAY](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4ac33e449941bc0e4d039b4b5bed853a78), [LAYER_TYPE_SDIEBAND](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4a0aef2c460a206fa00c742219d65be477), [LAYER_TYPE_CURSOR](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4a44b3a657e6bf4f1f5709c03a94a11019),   [LAYER_TYPE_BUTT](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4acd813c5ad9a2be97c85a97d4bdf1cb57) } | 图层类型定义。 [更多...](_display.md#layertype) | +| {[HBM_USE_CPU_READ](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a9bb139ab93fcaceac48e52bac1be53dc) = (1 << 0), [HBM_USE_CPU_WRITE](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a29217cbafbb6666fe1e8d96f3c368a4d) = (1 << 1), [HBM_USE_MEM_MMZ](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a9126b10e53b48304a5d9c351b1ace6d4) = (1 << 2), [HBM_USE_MEM_DMA](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7af7d33fd75c60375bef211629ff02d8c4) = (1 << 3),   [HBM_USE_MEM_SHARE](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a16042b501b66017d663c3f5bcd24a20f) = (1 << 4), [HBM_USE_MEM_MMZ_CACHE](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a553664654199ebde6733a830cbe0a369) = (1 << 5), [HBM_USE_MEM_FB](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a110b955655861ef11167e907be5f18fc) = (1 << 6), [HBM_USE_ASSIGN_SIZE](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a44d0fd6e88dbbe9e78c44cc8e5bddc22) = (1 << 7) } | 缓冲区定义。[更多...](_display.md#anonymous-enum) | +| [PixelFormat](_display.md#pixelformat) {   [PIXEL_FMT_CLUT8](_display.md#gga60883d4958a60b91661e97027a85072aabdea255b6e5f2920977f11d21445b34a) = 0, [PIXEL_FMT_CLUT1](_display.md#gga60883d4958a60b91661e97027a85072aa5740c66a546552c0c5a4bc06850af584), [PIXEL_FMT_CLUT4](_display.md#gga60883d4958a60b91661e97027a85072aabde13e8f357e39981973929309bb0e0e), [PIXEL_FMT_RGB_565](_display.md#gga60883d4958a60b91661e97027a85072aa5fae320872be3ffdda0d371cec048ec6),   [PIXEL_FMT_RGBA_5658](_display.md#gga60883d4958a60b91661e97027a85072aa4c16147153b63d7ba71b257111afdd62), [PIXEL_FMT_RGBX_4444](_display.md#gga60883d4958a60b91661e97027a85072aaa479ac0d983fde9b4f7f0e1a3b3e230f), [PIXEL_FMT_RGBA_4444](_display.md#gga60883d4958a60b91661e97027a85072aacbb91256e8c45a51410a9f6caae2d04c), [PIXEL_FMT_RGB_444](_display.md#gga60883d4958a60b91661e97027a85072aa7d18a83da06902c104208031ed487942),   [PIXEL_FMT_RGBX_5551](_display.md#gga60883d4958a60b91661e97027a85072aa85e5dd1a0e547c0031baffd02abb31a0), [PIXEL_FMT_RGBA_5551](_display.md#gga60883d4958a60b91661e97027a85072aadc1387526a271d8c6db7729de06474b1), [PIXEL_FMT_RGB_555](_display.md#gga60883d4958a60b91661e97027a85072aa720a429fa57133f6e27ef8c8fa1c404a), [PIXEL_FMT_RGBX_8888](_display.md#gga60883d4958a60b91661e97027a85072aa24a7181b7fb4019e7c19739bd9b65ff0),   [PIXEL_FMT_RGBA_8888](_display.md#gga60883d4958a60b91661e97027a85072aa90b462672221691ed66cacb07dd2e05f), [PIXEL_FMT_RGB_888](_display.md#gga60883d4958a60b91661e97027a85072aa7ff77397bf2cf52b4614a46264f8ce01), [PIXEL_FMT_BGR_565](_display.md#gga60883d4958a60b91661e97027a85072aaec581b908c291e2bd0155e25169f9629), [PIXEL_FMT_BGRX_4444](_display.md#gga60883d4958a60b91661e97027a85072aa6b5a7b35e00fc25146de0c9bf88b0230),   [PIXEL_FMT_BGRA_4444](_display.md#gga60883d4958a60b91661e97027a85072aa2f3d4ada099b2e8d84ec4501fbc8bed9), [PIXEL_FMT_BGRX_5551](_display.md#gga60883d4958a60b91661e97027a85072aaaf1a20dc0a597258cfe6aca806a8e0de), [PIXEL_FMT_BGRA_5551](_display.md#gga60883d4958a60b91661e97027a85072aa2319d4a75dae0b56776fa63d525e308b), [PIXEL_FMT_BGRX_8888](_display.md#gga60883d4958a60b91661e97027a85072aa1b19279f89c8cfb60e7d77ce23cd5f43),   [PIXEL_FMT_BGRA_8888](_display.md#gga60883d4958a60b91661e97027a85072aaeb31c670120a1fbc96a0e0887997fe16), [PIXEL_FMT_YUV_422_I](_display.md#gga60883d4958a60b91661e97027a85072aac73c2a84907a53ed95a329007b5c8992), [PIXEL_FMT_YCBCR_422_SP](_display.md#gga60883d4958a60b91661e97027a85072aabdf1224848278508479ce97f637dd711), [PIXEL_FMT_YCRCB_422_SP](_display.md#gga60883d4958a60b91661e97027a85072aa8bf97d66e26b3aad7c83dfa70e2bc451),   [PIXEL_FMT_YCBCR_420_SP](_display.md#gga60883d4958a60b91661e97027a85072aa0d1db50eb492f9073abdd2d662c56396), [PIXEL_FMT_YCRCB_420_SP](_display.md#gga60883d4958a60b91661e97027a85072aa1fa43c8a197d5c974a35b8bf02ab386e), [PIXEL_FMT_YCBCR_422_P](_display.md#gga60883d4958a60b91661e97027a85072aaa2fe085e63428ea76e1d975175001dc6), [PIXEL_FMT_YCRCB_422_P](_display.md#gga60883d4958a60b91661e97027a85072aab04eb6e1d940e42f3b4cc20c0a44c4ee),   [PIXEL_FMT_YCBCR_420_P](_display.md#gga60883d4958a60b91661e97027a85072aa3d80e785bed28e2b3f5c7df563500962), [PIXEL_FMT_YCRCB_420_P](_display.md#gga60883d4958a60b91661e97027a85072aa3dc5a0a5ad2f21218b446c477277210a), [PIXEL_FMT_YUYV_422_PKG](_display.md#gga60883d4958a60b91661e97027a85072aa3980def5b133584bdb2982a71f07798e), [PIXEL_FMT_UYVY_422_PKG](_display.md#gga60883d4958a60b91661e97027a85072aadfd69bd5b421aad5bdd39d5f33317197),   [PIXEL_FMT_YVYU_422_PKG](_display.md#gga60883d4958a60b91661e97027a85072aaf851031c336e8d9f57c940c5f52381f4), [PIXEL_FMT_VYUY_422_PKG](_display.md#gga60883d4958a60b91661e97027a85072aa317a761939335025379d382074a1541c), [PIXEL_FMT_VENDER_MASK](_display.md#gga60883d4958a60b91661e97027a85072aa67668ea067a31a8479aece94094bc547) = 0X7FFF0000, [PIXEL_FMT_BUTT](_display.md#gga60883d4958a60b91661e97027a85072aa07086bb3356c9c88959eee00c0982684) = 0X7FFFFFFF } | 像素格式类型定义。 [更多...](_display.md#pixelformat) | +| [TransformType](_display.md#transformtype) {   [ROTATE_NONE](_display.md#ggaa65f3b21a9a92ff022e435a7304126d2a68e349e9d45a8eba440e2a7a3ba31ec9) = 0, [ROTATE_90](_display.md#ggaa65f3b21a9a92ff022e435a7304126d2a685062467b0c1a3164556335b467c886), [ROTATE_180](_display.md#ggaa65f3b21a9a92ff022e435a7304126d2a186263164422bb8f0eb5f7b7d195a3d1), [ROTATE_270](_display.md#ggaa65f3b21a9a92ff022e435a7304126d2a554e734d2a23790b248c5ce39816c18f),   [ROTATE_BUTT](_display.md#ggaa65f3b21a9a92ff022e435a7304126d2a9b6ff871536aeef2a8e3ce4a753988ed) } | 图层变换类型定义。 [更多...](_display.md#transformtype) | +| [BlendType](_display.md#blendtype) {   [BLEND_NONE](_display.md#ggaab1839ed4aab1030dfda801a51e68817ae410edb34509ca21425fe5872bbc7e2f) = 0, [BLEND_CLEAR](_display.md#ggaab1839ed4aab1030dfda801a51e68817a6330cee419fbdafc0b25f0aa068814e5), [BLEND_SRC](_display.md#ggaab1839ed4aab1030dfda801a51e68817af01da0c255cdbf67d0774a67c2d221b5), [BLEND_SRCOVER](_display.md#ggaab1839ed4aab1030dfda801a51e68817ad4c0cd02aa4b5f4849e2b29a26481dde),   [BLEND_DSTOVER](_display.md#ggaab1839ed4aab1030dfda801a51e68817a21f03e8d04a58ed0684b39eb84bdb89f), [BLEND_SRCIN](_display.md#ggaab1839ed4aab1030dfda801a51e68817a74e681f6c9027bb2cf0bda3b72d2dd9e), [BLEND_DSTIN](_display.md#ggaab1839ed4aab1030dfda801a51e68817a19f528828d75c34e18375219f113d9bb), [BLEND_SRCOUT](_display.md#ggaab1839ed4aab1030dfda801a51e68817a404e05a118462520e878c23f89808199),   [BLEND_DSTOUT](_display.md#ggaab1839ed4aab1030dfda801a51e68817ac0dc902b4928413d367376e4c842d909), [BLEND_SRCATOP](_display.md#ggaab1839ed4aab1030dfda801a51e68817ada473c7e3bf2b1102349489416aefefc), [BLEND_DSTATOP](_display.md#ggaab1839ed4aab1030dfda801a51e68817a0129b4506a06b1a6df297bcf685f5f89), [BLEND_ADD](_display.md#ggaab1839ed4aab1030dfda801a51e68817adbdb329830e5b4d9fa2b17d5d6d7894f),   [BLEND_XOR](_display.md#ggaab1839ed4aab1030dfda801a51e68817a167c3b256e051244066d8e53cdd5529d), [BLEND_DST](_display.md#ggaab1839ed4aab1030dfda801a51e68817a4686a5f30c73982d625a05db021e9b15), [BLEND_AKS](_display.md#ggaab1839ed4aab1030dfda801a51e68817ae549aa3794365df8965a2c3853c8da99), [BLEND_AKD](_display.md#ggaab1839ed4aab1030dfda801a51e68817a3cc39f12fa8bceba626a33c2d82a8bf7),   [BLEND_BUTT](_display.md#ggaab1839ed4aab1030dfda801a51e68817ad0650812ac2aa9eee228f48ac514b44a) } | 显示内存类型定义。 [更多...](_display.md#blendtype) | +| [RopType](_display.md#roptype) {   [ROP_BLACK](_display.md#gga24265f7618fbdba53d3da4806d3097c4a6358a786ec3b81000a07b343424cee0d) = 0, [ROP_NOTMERGEPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a96c89f7b89a9048d355b4dc467224f4c), [ROP_MASKNOTPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a54d054ea6920cb88f374f70e8d41f934), [ROP_NOTCOPYPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4af4a5d5dc0f15249001cff7ef32fadef1),   [ROP_MASKPENNOT](_display.md#gga24265f7618fbdba53d3da4806d3097c4ad777eea18ba9f4e071b00aa060db00e3), [ROP_NOT](_display.md#gga24265f7618fbdba53d3da4806d3097c4afa63c8e2a6a39d50954cb6316576b4e9), [ROP_XORPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a79433776e85bb80ad0306ced0b82947c), [ROP_NOTMASKPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4ad6c4d2458a9caaa079a3e5907d636e8a),   [ROP_MASKPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a2a069e2105c5b8d4dac5d174c76eb9d4), [ROP_NOTXORPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a33c37c5ce718e876f43141dc5a028375), [ROP_NOP](_display.md#gga24265f7618fbdba53d3da4806d3097c4a2acacab882af44bba09878bd58e18695), [ROP_MERGENOTPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4afaea3c47612082914332b78ca8c331b3),   [ROP_COPYPE](_display.md#gga24265f7618fbdba53d3da4806d3097c4a91bae697f9dea25ac4d7be011958a45d), [ROP_MERGEPENNOT](_display.md#gga24265f7618fbdba53d3da4806d3097c4a3580b77320e4829da046b8739c61d6b8), [ROP_MERGEPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a8195ac0d37e0d69b2cd71dd7362d3fd3), [ROP_WHITE](_display.md#gga24265f7618fbdba53d3da4806d3097c4a533a614b27da8a81b67ada085b018618),   [ROP_BUTT](_display.md#gga24265f7618fbdba53d3da4806d3097c4aa858b07e214a7f62625e24776806c74b) } | 硬件加速支持的ROP操作类型。 [更多...](_display.md#roptype) | +| [ColorKey](_display.md#colorkey) { [CKEY_NONE](_display.md#gga4fe6fb05c7ba0048b1739d88f4d4878ea629b31de258db2ce01cb757b85bd5273) = 0, [CKEY_SRC](_display.md#gga4fe6fb05c7ba0048b1739d88f4d4878ea5e3271e73dce39d0806ff8e9cba011bc), [CKEY_DST](_display.md#gga4fe6fb05c7ba0048b1739d88f4d4878ea6921c2c202aa69293467baa6c33fae05), [CKEY_BUTT](_display.md#gga4fe6fb05c7ba0048b1739d88f4d4878ea32cedc8986de2c290bf2ec193d88cabf) } | Color key操作类型定义,即硬件加速支持的Color key操作类型。 [更多...](_display.md#colorkey) | +| [MirrorType](_display.md#mirrortype) { [MIRROR_NONE](_display.md#gga08d32376574b541d162d8534adb78fd0a5ad82fcc8af04f92571e185b61eeb309) = 0, [MIRROR_LR](_display.md#gga08d32376574b541d162d8534adb78fd0ae35099d9fd28c2974661bcce36a9ea5c), [MIRROR_TB](_display.md#gga08d32376574b541d162d8534adb78fd0afd82e59546a645fd29bc779c50bfa733), [MIRROR_BUTT](_display.md#gga08d32376574b541d162d8534adb78fd0ad9e357a2c2f7dc0e3ca5a351ec457410) } | 硬件加速支持的镜像操作类型定义 [更多...](_display.md#mirrortype) | +| [Connection](_display.md#connection) { [CON_INVALID](_display.md#ggab0845c0c8d309ee865c78b095b00e671ab5c8a92e6af2e63e769dd8f711564760) = 0, [CONNECTED](_display.md#ggab0845c0c8d309ee865c78b095b00e671a7a691a2430ec26878897b5fbc9c22a4c), [DISCONNECTED](_display.md#ggab0845c0c8d309ee865c78b095b00e671acdaad1112073e3e2ea032424c38c34e1) } | 热插拔连接类型定义 [更多...](_display.md#connection) | +| [InterfaceType](_display.md#interfacetype) {   [DISP_INTF_HDMI](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da717f9ae7960ba280c6c6b8822c6d8b66) = 0, [DISP_INTF_LCD](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da210dbbea7e5c30b693515bba570474d4), [DISP_INTF_BT1120](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da89a4e456ceffa55cb93b2c6f4792c96b), [DISP_INTF_BT656](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9daf23a0b7607d3fdc7eac791d62c5f9cd5),   [DISP_INTF_YPBPR](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da54a83297ab61376574854e804a6158e1), [DISP_INTF_RGB](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da83ef625db890ee1ddb4e874d6155405f), [DISP_INTF_CVBS](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9dabf3991ede75cb3bb454372174d63ec29), [DISP_INTF_SVIDEO](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9daad740e6f901f40965d2824415fcb9041),   [DISP_INTF_VGA](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da5db1f365e675d992f47ce797339beff5), [DISP_INTF_MIPI](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da5b9c7382dfdcc029e467c6339bf90915), [DISP_INTF_PANEL](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da4d64c32b687840c7e08e28a2892ac222), [DISP_INTF_BUTT](_display.md#p106611424171011) } | 枚举接口类型。 [更多...](_display.md#interfacetype) | +| [DispPowerStatus](_display.md#disppowerstatus) {   [POWER_STATUS_ON](_display.md#gga0f3c8af6e9d40730b0d2e0fbbf8e627da89e258c21283c662af2145bd3f9fc9a0), [POWER_STATUS_STANDBY](_display.md#gga0f3c8af6e9d40730b0d2e0fbbf8e627da604748a7de21aa992c1f72c252fc77a7), [POWER_STATUS_SUSPEND](_display.md#gga0f3c8af6e9d40730b0d2e0fbbf8e627da5605db047fd50c64fa0a13d8e558d479), [POWER_STATUS_OFF](_display.md#gga0f3c8af6e9d40730b0d2e0fbbf8e627daddd660122faa920f2adcd81e83d22c85),   [POWER_STATUS_BUTT](_display.md#gga0f3c8af6e9d40730b0d2e0fbbf8e627dad1f590a00c02d7335bfc24edbea92037) } | 枚举显示状态 [更多...](_display.md#disppowerstatus) | +| [CompositionType](_display.md#compositiontype) {   [COMPOSITION_CLIENT](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5afc7ab4757f19ed87ea6d1603478edbe8), [COMPOSITION_DEVICE](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5aa51390e0da602171f2d042a94c6b75bf), [COMPOSITION_CURSOR](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5a663feec453d4509980f3bb34f641303b), [COMPOSITION_VIDEO](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5a89ea30239d366a6968c7dff429a99aa9),   [COMPOSITION_DEVICE_CLEAR](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5a05f5ab2a5da295c0fdc7e19e9a121f3e), [COMPOSITION_CLIENT_CLEAR](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5a7c1535ef8d388f878fae7c722d69855e), [COMPOSITION_TUNNEL](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5a400576aea4b15e011ddd21748d16f9ca), [COMPOSITION_BUTT](_display.md#p488974221219) } | 枚举特殊层的组合类型。 [更多...](_display.md#compositiontype) | +| [ColorGamut](_display.md#colorgamut) {   [COLOR_GAMUT_INVALID](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a7d7d95bebc0ddb4d10da05b449bab1bf) = -1, [COLOR_GAMUT_NATIVE](_display.md#gga7e865f6dbae09a004be2949b473fd7c3af0e1dba48215d4d19bd9a3536a736cdb) = 0, [COLOR_GAMUT_SATNDARD_BT601](_display.md#gga7e865f6dbae09a004be2949b473fd7c3affa91ab208128bec9b981e7020bcbfa9) = 1, [COLOR_GAMUT_STANDARD_BT709](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a248480b6ae7ad6c5327dd7cb5cfd0a85) = 2,   [COLOR_GAMUT_DCI_P3](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a98eb540d5a93ab3ad4256907eec89c4e) = 3, [COLOR_GAMUT_SRGB](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a8327e3fc0a79c9935dd9279c10c841c5) = 4, [COLOR_GAMUT_ADOBE_RGB](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a3377a7df82b495c65f3f7ab2b1655100) = 5, [COLOR_GAMUT_DISPLAY_P3](_display.md#gga7e865f6dbae09a004be2949b473fd7c3ad79cdc9f86f3b581453c523a03a876d3) = 6,   [COLOR_GAMUT_BT2020](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a79ff774719c5b83287b298d39ee274f3) = 7, [COLOR_GAMUT_BT2100_PQ](_display.md#gga7e865f6dbae09a004be2949b473fd7c3aa8191f5fca2ad767fa56767b41f4dec5) = 8, [COLOR_GAMUT_BT2100_HLG](_display.md#gga7e865f6dbae09a004be2949b473fd7c3ad4f624c7b578dacaa732cd9556724797) = 9, [COLOR_GAMUT_DISPLAY_BT2020](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a5d07e2f0d8e570c5e16ccff05e12cb29) = 10 } | 色域类型枚举值 [更多...](_display.md#colorgamut) | +| [GamutMap](_display.md#gamutmap) { [GAMUT_MAP_CONSTANT](_display.md#gga5700b58f1bc340e309a0962101ad7fa4acdf75e246ac2f53f37ef9e11b5561535) = 0, [GAMUT_MAP_EXPANSION](_display.md#gga5700b58f1bc340e309a0962101ad7fa4af3824abcccbd8d85d28e34149e9aaa33) = 1, [GAMUT_MAP_HDR_CONSTANT](_display.md#gga5700b58f1bc340e309a0962101ad7fa4afd4e1cb10b8032108ab070925b73e270) = 2, [GAMUT_MAP_HDR_EXPANSION](_display.md#gga5700b58f1bc340e309a0962101ad7fa4ad0f9722a0efd51910ac5f2f63fd86a10) = 3 } | 枚举色域的映射类型 [更多...](_display.md#gamutmap) | +| [ColorDataSpace](_display.md#colordataspace) {   [COLOR_DATA_SPACE_UNKNOWN](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca5a0aa62f13715cbdf2b5ec1e26e76225) = 0, [GAMUT_BT601](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad778a31f4c8e3431f5240f98c70f577d) = 0x00000001, [GAMUT_BT709](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca7d346fa865c56c76f62c7f6ab92511ec) = 0x00000002, [GAMUT_DCI_P3](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccae29ccb674444c3f81f0a46361d7ce63c) = 0x00000003,   [GAMUT_SRGB](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca16c4c57e66f86b20269db0d5d6382ded) = 0x00000004, [GAMUT_ADOBE_RGB](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca0a0a0c633a41a5f30596a5168a3267ca) = 0x00000005, [GAMUT_DISPLAY_P3](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca3d4a0608dd5c682fc020bfc68a425e15) = 0x00000006, [GAMUT_BT2020](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa6dc448a5d0d16a7d2610edb29fff407) = 0x00000007,   [GAMUT_BT2100_PQ](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6b100b6876c7e77106df92b9c8cf7d2b) = 0x00000008, [GAMUT_BT2100_HLG](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca53a60a5ed93129597841bde263e9a798) = 0x00000009, [GAMUT_DISPLAY_BT2020](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa66ffaf12ec59488cccbd2170cc3d2c8) = 0x0000000a, [TRANSFORM_FUNC_UNSPECIFIED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca0fe652843eafbf7a93b645a71342dce0) = 0x00000100,   [TRANSFORM_FUNC_LINEAR](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa2e1f70b023dd5ae3a31771217d958cc) = 0x00000200, [TRANSFORM_FUNC_SRGB](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca47dd20703e8d8135aedfb687b75ef66c) = 0x00000300, [TRANSFORM_FUNC_SMPTE_170M](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab031ec808cc46bee79d2c96460615206) = 0x00000400, [TRANSFORM_FUNC_GM2_2](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca078b8dad4e1eb6720c81c841b3f417d9) = 0x00000500,   [TRANSFORM_FUNC_GM2_6](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad6abe514be2fa6c57b2aec5a5eb6fc7d) = 0x00000600, [TRANSFORM_FUNC_GM2_8](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca850b419cb0075b5bd44df5708fc9c87f) = 0x00000700, [TRANSFORM_FUNC_ST2084](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca24a6d830fca211b067260df9583a1b2b) = 0x00000800, [TRANSFORM_FUNC_HLG](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca4a6d68c7a2219cada2edf0e9d7bc46f8) = 0x00000900,   [PRECISION_UNSPECIFIED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca77342396f1154be94079d0d76fc5e829) = 0x00010000, [PRECISION_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca200541efc2ee0d21e37a7200e7a08a54) = 0x00020000, [PRESION_LIMITED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab51307e81936be84b6504a98197fb1ee) = 0x00030000, [PRESION_EXTENDED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccafd6ac339ebbdbbdd7fee540a6fad5ec2) = 0x00040000,   [BT601_SMPTE170M_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab640f36320dafb19066dfcaccc836999) = GAMUT_BT601 \| TRANSFORM_FUNC_SMPTE_170M \| PRECISION_FULL, [BT601_SMPTE170M_LIMITED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6cd475c6421764e5d71d71f1de75d638) = GAMUT_BT601 \| TRANSFORM_FUNC_SMPTE_170M \| PRESION_LIMITED, [BT709_LINEAR_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad2bc96da52c18ef9bb26320507747176) = GAMUT_BT709 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, [BT709_LINEAR_EXTENDED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca03631fd75bc6ec7280ce2c68a129e4fd) = GAMUT_BT709 \| TRANSFORM_FUNC_LINEAR \| PRESION_EXTENDED,   [BT709_SRGB_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaaffba49d9c1c335387cd8153becad65a) = GAMUT_BT709 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, [BT709_SRGB_EXTENDED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca049878481c3ed46dbd6cfea995e2f0d5) = GAMUT_BT709 \| TRANSFORM_FUNC_SRGB \| PRESION_EXTENDED, [BT709_SMPTE170M_LIMITED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca14381e6d202b6bda3c90264b05d31838) = GAMUT_BT709 \| TRANSFORM_FUNC_SMPTE_170M \| PRESION_LIMITED, [DCI_P3_LINEAR_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad03af85a7ff4c1069a97bfb603f7d694) = GAMUT_DCI_P3 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL,   [DCI_P3_GAMMA26_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca9de9b32e0e7c172c77922af8904ba3a2) = GAMUT_DCI_P3 \| TRANSFORM_FUNC_GM2_6 \| PRECISION_FULL, [DISPLAY_P3_LINEAR_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca8bcb3a4ed6039d158b9c32ba99fceaff) = GAMUT_DISPLAY_P3 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, [DCI_P3_SRGB_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca2fac97f61868100034eb40fdba9a9d3f) = GAMUT_DCI_P3 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, [ADOBE_RGB_GAMMA22_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca1f855c7b4bd5f8a9cc29f3e335a9f2f4) = GAMUT_ADOBE_RGB \| TRANSFORM_FUNC_GM2_2 \| PRECISION_FULL,   [BT2020_LINEAR_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca27315309a3b866eda00f17825ee9532d) = GAMUT_BT2020 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, [BT2020_SRGB_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa63d6a3a8bb1c6c5b383cb7010f61d72) = GAMUT_BT2020 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, [BT2020_SMPTE170M_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6de02e882e01743ce5ca07a17d481930) = GAMUT_BT2020 \| TRANSFORM_FUNC_SMPTE_170M \| PRECISION_FULL, [BT2020_ST2084_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccac2e37c91fc9bd29641cf95d74aa7862c) = GAMUT_BT2020 \| TRANSFORM_FUNC_ST2084 \| PRECISION_FULL,   [BT2020_HLG_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad5b0a069ac80df8d045265e88f9b5e71) = GAMUT_BT2020 \| TRANSFORM_FUNC_HLG \| PRECISION_FULL, [BT2020_ST2084_LIMITED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaeab2d55af8e3568130cf69fa614b3c9d) = GAMUT_BT2020 \| TRANSFORM_FUNC_ST2084 \| PRESION_LIMITED } | 枚举颜色空间的类型 [更多...](_display.md#colordataspace) | +| [HDRFormat](_display.md#hdrformat) {   [NOT_SUPPORT_HDR](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566a0799ce04a1873f60ed59c3d30dcda69a) = 0, [DOLBY_VISION](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566ac43f1175d92c85033e0a85c7a14266a7) = 1, [HDR10](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566ada5b15b3c4b4cc64593452113ac1d4dc) = 2, [HLG](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566a2c6e7224778e782cbbd478e4c11282e2) = 3,   [HDR10_PLUS](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566abc6f25afdafdebb03fd137de1917389d) = 4, [HDR_VIVID](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566a84318c5a162e5b9b822e38e675117e42) = 5 } | 枚举HDR格式 [更多...](_display.md#hdrformat) | +| [HDRMetadataKey](_display.md#hdrmetadatakey) {   [MATAKEY_RED_PRIMARY_X](_display.md#gga5d7d90acb5c568e62a02b18446f37789a92c0f5eaba344bee22c657040b606fd3) = 0, [MATAKEY_RED_PRIMARY_Y](_display.md#gga5d7d90acb5c568e62a02b18446f37789a405841a4999556bd36281870d579dc7e) = 1, [MATAKEY_GREEN_PRIMARY_X](_display.md#gga5d7d90acb5c568e62a02b18446f37789a08f31a74e8df3253c6326879818dfe1b) = 2, [MATAKEY_GREEN_PRIMARY_Y](_display.md#gga5d7d90acb5c568e62a02b18446f37789a19db3eede73e96c6a25dc4d31e5846e1) = 3,   [MATAKEY_BLUE_PRIMARY_X](_display.md#gga5d7d90acb5c568e62a02b18446f37789a23e7112a9c4aaf15bc2a529344a61939) = 4, [MATAKEY_BLUE_PRIMARY_Y](_display.md#gga5d7d90acb5c568e62a02b18446f37789a5a34485b5884d8bd86273750b9d47b0b) = 5, [MATAKEY_WHITE_PRIMARY_X](_display.md#gga5d7d90acb5c568e62a02b18446f37789ac12237b3de1eee6176c690e7f14ab339) = 6, [MATAKEY_WHITE_PRIMARY_Y](_display.md#gga5d7d90acb5c568e62a02b18446f37789a331c8b69a7d9484c9eaea70e78a34921) = 7,   [MATAKEY_MAX_LUMINANCE](_display.md#gga5d7d90acb5c568e62a02b18446f37789ac27053151e1fa76e58dc3281d843ad74) = 8, [MATAKEY_MIN_LUMINANCE](_display.md#gga5d7d90acb5c568e62a02b18446f37789a345f5cea142c7357e0b9de5ccfc86bed) = 9, [MATAKEY_MAX_CONTENT_LIGHT_LEVEL](_display.md#gga5d7d90acb5c568e62a02b18446f37789a9897f53fcb179afc9c90f8c7ca0ac254) = 10, [MATAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL](_display.md#gga5d7d90acb5c568e62a02b18446f37789a8d285ea7b6246f62b7e7a65e5a870bfe) = 11,   [MATAKEY_HDR10_PLUS](_display.md#gga5d7d90acb5c568e62a02b18446f37789a89ef9c02321a94080f185c7fea3f6d1d) = 12, [MATAKEY_HDR_VIVID](_display.md#gga5d7d90acb5c568e62a02b18446f37789ac99c4612b3aee2bfede23070fe32ac7e) = 13 } | 枚举HDR元数据关键字 [更多...](_display.md#hdrmetadatakey) | +| [PresentTimestampType](_display.md#presenttimestamptype) { [HARDWARE_DISPLAY_PTS_UNSUPPORTED](_display.md#ggabdba71665ea5ba4004ac1a9fbeb505f3ad6e47ab1a80ab94cccb5e465610ff45d) = 0, [HARDWARE_DISPLAY_PTS_DELAY](_display.md#ggabdba71665ea5ba4004ac1a9fbeb505f3a5c06391b9583b69d37c7a0518dd10f09) = 1 << 0, [HARDWARE_DISPLAY_PTS_TIMESTAMP](_display.md#ggabdba71665ea5ba4004ac1a9fbeb505f3afd872c457c9dade672aaaec5de622ff7) = 1 << 1 } | 上屏时间戳类型枚举值 [更多...](_display.md#presenttimestamptype) | + + +## **详细描述** + +显示类型定义,定义显示驱动接口所使用的数据类型。 + +**Since:** + +1.0 + +**Version:** + +2.0 diff --git a/zh-cn/device-dev/api/face__auth_2_i_executor_8idl.md b/zh-cn/device-dev/api/face__auth_2_i_executor_8idl.md new file mode 100644 index 0000000000..746f21f261 --- /dev/null +++ b/zh-cn/device-dev/api/face__auth_2_i_executor_8idl.md @@ -0,0 +1,34 @@ +# IExecutor.idl + + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IExecutor](interface_i_executor.md) | 定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 [更多...](interface_i_executor.md) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.face_auth.v1_0 | 人脸认证接口的包路径。 | + + +## **详细描述** + +定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 + +**Since:** + +3.2 diff --git a/zh-cn/device-dev/api/face__auth_2_i_executor_callback_8idl.md b/zh-cn/device-dev/api/face__auth_2_i_executor_callback_8idl.md new file mode 100644 index 0000000000..ae11adf205 --- /dev/null +++ b/zh-cn/device-dev/api/face__auth_2_i_executor_callback_8idl.md @@ -0,0 +1,34 @@ +# IExecutorCallback.idl + + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IExecutorCallback](interface_i_executor_callback.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见[IExecutor](interface_i_executor.md)。 [更多...](interface_i_executor_callback.md) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.face_auth.v1_0 | 人脸认证接口的包路径 | + + +## **详细描述** + +定义异步API接口回调,用于返回异步接口的请求处理结果和信息。 + +**Since:** + +3.2 diff --git a/zh-cn/device-dev/api/files.md b/zh-cn/device-dev/api/files.md new file mode 100644 index 0000000000..8b8d5edfb0 --- /dev/null +++ b/zh-cn/device-dev/api/files.md @@ -0,0 +1,133 @@ +# 头文件 + + + +- **[audio_adapter.h](audio__adapter_8h.md)** + +- **[audio_attribute.h](audio__attribute_8h.md)** + +- **[audio_capture.h](audio__capture_8h.md)** + +- **[audio_control.h](audio__control_8h.md)** + +- **[audio_manager.h](audio__manager_8h.md)** + +- **[audio_render.h](audio__render_8h.md)** + +- **[audio_scene.h](audio__scene_8h.md)** + +- **[audio_types.h](audio__types_8h.md)** + +- **[audio_volume.h](audio__volume_8h.md)** + +- **[codec_callback_if.h](codec__callback__if_8h.md)** + +- **[codec_common_type.h](codec__common__type_8h.md)** + +- **[codec_component_if.h](codec__component__if_8h.md)** + +- **[codec_component_manager.h](codec__component__manager_8h.md)** + +- **[codec_component_type.h](codec__component__type_8h.md)** + +- **[dac_if.h](dac__if_8h.md)** + +- **[display_device.h](display__device_8h.md)** + +- **[display_gfx.h](display__gfx_8h.md)** + +- **[display_gralloc.h](display__gralloc_8h.md)** + +- **[display_layer.h](display__layer_8h.md)** + +- **[display_type.h](display__type_8h.md)** + +- **[icamera_device_callback.h](icamera__device__callback_8h.md)** + +- **[icamera_device.h](icamera__device_8h.md)** + +- **[icamera_host_callback.h](icamera__host__callback_8h.md)** + +- **[icamera_host.h](icamera__host_8h.md)** + +- **[input_controller.h](input__controller_8h.md)** + +- **[input_manager.h](input__manager_8h.md)** + +- **[input_reporter.h](input__reporter_8h.md)** + +- **[input_type.h](input__type_8h.md)** + +- **[ioffline_stream_operator.h](ioffline__stream__operator_8h.md)** + +- **[istream_operator_callback.h](istream__operator__callback_8h.md)** + +- **[istream_operator.h](istream__operator_8h.md)** + +- **[light_if.h](light__if_8h.md)** + +- **[light_type.h](light_8typeh.md)** + +- **[sensor_if.h](sensor__if_8h.md)** + +- **[sensor_type.h](sensor__type_8h.md)** + +- **[types.h](types_8h.md)** + +- **[usb_info.h](usb__info_8h.md)** + +- **[usbd_client.h](usbd__client_8h.md)** + +- **[usbd_subscriber.h](usbd__subscriber_8h.md)** + +- **[usbd_type.h](usbd__type_8h.md)** + +- **[vibrator_if.h](vibrator__if_8h.md)** + +- **[vibrator_type.h](vibrator__type_8h.md)** + +- **[wifi_hal_ap_feature.h](wifi__hal__ap__feature_8h.md)** + +- **[wifi_hal_base_feature.h](wifi__hal__base__feature_8h.md)** + +- **[wifi_hal_sta_feature.h](wifi__hal__sta__feature_8h.md)** + +- **[wifi_hal.h](wifi__hal_8h.md)** + +- **[IExecutor.idl](face__auth_2_i_executor_8idl.md)** + +- **[IExecutorCallback.idl](face__auth_2_i_executor_callback_8idl.md)** + +- **[FaceAuthTypes.idl](_face_auth_types_8idl.md)** + +- **[PinAuthTypes.idl](_pin_auth_types_8idl.md)** + +- **[IBatteryCallback.idl](_i_battery_callback_8idl.md)** + +- **[IBatteryInterface.idl](_i_battery_interface_8idl.md)** + +- **[IExecutor.idl](pin__auth_2_i_executor_8idl.md)** + +- **[IExecutorCallback.idl](pin__auth_2_i_executor_callback_8idl.md)** + +- **[IFaceAuthInterface.idl](_i_face_auth_interface_8idl.md)** + +- **[IPinAuthInterface.idl](_i_pin_auth_interface_8idl.md)** + +- **[IPowerHdiCallback.idl](_i_power_hdi_callback_8idl.md)** + +- **[IPowerInterface.idl](_i_power_interface_8idl.md)** + +- **[IThermalInterface.idl](_i_thermal_interface_8idl.md)** + +- **[IThermalCallback.idl](_i_thermal_callback_8idl.md)** + +- **[IUserAuthInterface.idl](_i_user_auth_interface_8idl.md)** + +- **[PowerTypes.idl](_power_types_8idl.md)** + +- **[ThermalTypes.idl](_thermal_types_8idl.md)** + +- **[Types.idl](_types_8idl.md)** + +- **[UserAuthTypes.idl](_user_auth_types_8idl.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/api/icamera__device_8h.md b/zh-cn/device-dev/api/icamera__device_8h.md new file mode 100644 index 0000000000..91b9f1c934 --- /dev/null +++ b/zh-cn/device-dev/api/icamera__device_8h.md @@ -0,0 +1,31 @@ +# icamera_device.h + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [OHOS::Camera::ICameraDevice](_o_h_o_s_1_1_camera_1_1_i_camera_device.md) | Camera设备操作。 | + + +## **详细描述** + +Camera设备操作接口。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/icamera__device__callback_8h.md b/zh-cn/device-dev/api/icamera__device__callback_8h.md new file mode 100644 index 0000000000..d70ccf005f --- /dev/null +++ b/zh-cn/device-dev/api/icamera__device__callback_8h.md @@ -0,0 +1,31 @@ +# icamera_device_callback.h + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [OHOS::Camera::ICameraDeviceCallback](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md) | Camera设备操作回调。 | + + +## **详细描述** + +Camera设备的回调接口,主要包含camera设备发生错误时和上报metadata的回调函数。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/icamera__host_8h.md b/zh-cn/device-dev/api/icamera__host_8h.md new file mode 100644 index 0000000000..e7991b95ae --- /dev/null +++ b/zh-cn/device-dev/api/icamera__host_8h.md @@ -0,0 +1,31 @@ +# icamera_host.h + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [OHOS::Camera::ICameraHost](_o_h_o_s_1_1_camera_1_1_i_camera_host.md) | Camera服务的管理类。 | + + +## **详细描述** + +Camera服务的管理类,对上层提供HDI接口。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/icamera__host__callback_8h.md b/zh-cn/device-dev/api/icamera__host__callback_8h.md new file mode 100644 index 0000000000..f63aab515a --- /dev/null +++ b/zh-cn/device-dev/api/icamera__host__callback_8h.md @@ -0,0 +1,31 @@ +# icamera_host_callback.h + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [OHOS::Camera::ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md) | Camera服务的管理回调。 | + + +## **详细描述** + +ICameraHost的回调接口,提供Camera设备和闪关灯状态变化的回调函数,回调函数由调用者实现。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/index.md b/zh-cn/device-dev/api/index.md new file mode 100644 index 0000000000..4d91539b54 --- /dev/null +++ b/zh-cn/device-dev/api/index.md @@ -0,0 +1,37 @@ +# NativeAPI参考 + + + +- **[Audio](_audio.md)** + +- **[Battery](battery.md)** + +- **[Camera](_camera.md)** + +- **[Codec](_codec.md)** + +- **[Display](_display.md)** + +- **[DAC](_d_a_c.md)** + +- **[HdfFaceAuth](_hdf_face_auth.md)** + +- **[Input](_input.md)** + +- **[Light](_light.md)** + +- **[HdfPinAuth](_hdf_pin_auth.md)** + +- **[Power](power.md)** + +- **[Sensor](_sensor.md)** + +- **[Thermal](thermal.md)** + +- **[USB](_u_s_b.md)** + +- **[HdfUserAuth](_hdf_user_auth.md)** + +- **[Vibrator](_vibrator.md)** + +- **[WLAN](_w_l_a_n.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/api/input__controller_8h.md b/zh-cn/device-dev/api/input__controller_8h.md new file mode 100644 index 0000000000..db9bca32be --- /dev/null +++ b/zh-cn/device-dev/api/input__controller_8h.md @@ -0,0 +1,31 @@ +# input_controller.h + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [InputController](_input_controller.md) | 提供input设备业务控制相关的接口。 [更多...](_input_controller.md) | + + +## **详细描述** + +描述input设备业务控制相关的接口声明。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/input__manager_8h.md b/zh-cn/device-dev/api/input__manager_8h.md new file mode 100644 index 0000000000..03a08b6be8 --- /dev/null +++ b/zh-cn/device-dev/api/input__manager_8h.md @@ -0,0 +1,39 @@ +# input_manager.h + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [InputManager](_input_manager.md) | 提供input设备管理相关的接口。 [更多...](_input_manager.md) | +| [IInputInterface](_i_input_interface.md) | 定义用于提供输入设备驱动能力的接口。[更多...](_i_input_interface.md) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [GetInputInterface](_input.md#getinputinterface) ([IInputInterface](_i_input_interface.md) \*\*interface) | input服务通过调用此接口获取操作input设备的所有接口。 [更多...](_input.md#getinputinterface) | + + +## **详细描述** + +描述input设备管理相关的接口声明。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/input__reporter_8h.md b/zh-cn/device-dev/api/input__reporter_8h.md new file mode 100644 index 0000000000..5982a67450 --- /dev/null +++ b/zh-cn/device-dev/api/input__reporter_8h.md @@ -0,0 +1,31 @@ +# input_reporter.h + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [InputReporter](_input_reporter.md) | 提供input设备数据上报相关的接口。 [更多...](_input_reporter.md) | + + +## **详细描述** + +描述input设备数据上报相关的接口声明。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/input__type_8h.md b/zh-cn/device-dev/api/input__type_8h.md new file mode 100644 index 0000000000..27bd99a605 --- /dev/null +++ b/zh-cn/device-dev/api/input__type_8h.md @@ -0,0 +1,56 @@ +# input_type.h + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [EventPackage](_event_package.md) | input事件数据包结构 [更多...](_event_package.md) | +| [InputReportEventCb](_input_report_event_cb.md) | 此结构体定义了输入事件回调函数并提供给input服务使用 [更多...](_input_report_event_cb.md) | +| [DeviceInfo](_device_info.md) | input设备基础设备信息 [更多...](_device_info.md) | +| [InputExtraCmd](_input_extra_cmd.md) | 扩展指令的数据结构 [更多...](_input_extra_cmd.md) | + + +### 宏定义 + + | 宏定义 | 描述 | +| -------- | -------- | +| **MAX_INPUT_DEV_NUM**   32 | Input设备最大数量。 | +| **MAX_NODE_PATH_LEN**   64 | 节点路径最大长度。 | +| **CHIP_INFO_LEN**   10 | 芯片信息长度。 | +| **CHIP_NAME_LEN**   10 | 芯片名称长度。 | +| **VENDOR_NAME_LEN**   10 | 厂商名称长度。 | +| **SELF_TEST_RESULT_LEN**   20 | 自测结果长度。 | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [RetStatus](_input.md#retstatus) {   [INPUT_SUCCESS](_input.md#gga85d58a5185669daa4995e332b63eba7aa4b6c3821e689826c4323c4eb759b4d3a) = 0, [INPUT_FAILURE](_input.md#gga85d58a5185669daa4995e332b63eba7aa07d986b0ee365020834af82a31dfce11) = -1, [INPUT_INVALID_PARAM](_input.md#gga85d58a5185669daa4995e332b63eba7aa5f54ab958e21a298da35c3c5c1c36d85) = -2, [INPUT_NOMEM](_input.md#gga85d58a5185669daa4995e332b63eba7aaddf6c11b0fac107e0123b83cfc4a1185) = -3,   [INPUT_NULL_PTR](_input.md#gga85d58a5185669daa4995e332b63eba7aa157cd4f4736dd1f05eb2e13dbc7123ed) = -4, [INPUT_TIMEOUT](_input.md#gga85d58a5185669daa4995e332b63eba7aabdaeb2a27983bd66ff6e24d4df255f59) = -5, [INPUT_UNSUPPORTED](_input.md#gga85d58a5185669daa4995e332b63eba7aa8978f7ee3d0ddd70f5077c21efc4a97a) = -6 } | 定义返回值类型 [更多...](_input.md#retstatus) | +| [InputDevType](_input.md#inputdevtype) {   [INDEV_TYPE_TOUCH](_input.md#ggaa8225ba155dfa1ef2c4119c832bc4dd3a621678554aac2b37ac244b80fc33da0d), [INDEV_TYPE_KEY](_input.md#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4c4c8407342021cc06a95aa13ebeaca1), [INDEV_TYPE_KEYBOARD](_input.md#ggaa8225ba155dfa1ef2c4119c832bc4dd3a3a4137efe666a3aaccf267d597879fdc), [INDEV_TYPE_MOUSE](_input.md#ggaa8225ba155dfa1ef2c4119c832bc4dd3abe68740c1d125d3d474fdadc7d31d11c),   [INDEV_TYPE_BUTTON](_input.md#ggaa8225ba155dfa1ef2c4119c832bc4dd3a2815a25dde3e56e1f8eb57f20049e8c0), [INDEV_TYPE_CROWN](_input.md#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4ef2ab6bc355e2321664709716d1d04f), [INDEV_TYPE_ENCODER](_input.md#ggaa8225ba155dfa1ef2c4119c832bc4dd3a8cd6b27ac631b9d3fa89a17ddca37291), [INDEV_TYPE_UNKNOWN](_input.md#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4097247eba52062f47a1aa99414033de) } | 定义input设备类型 [更多...](_input.md#inputdevtype) | +| [PowerStatus](_input.md#powerstatus) { [INPUT_RESUME](_input.md#gga65e6bb4d942c22dba9975253b0a1d73fa5edb1acdc509659046de9cb61bd9508a), [INPUT_SUSPEND](_input.md#gga65e6bb4d942c22dba9975253b0a1d73fa2a6aab1b3d50dae2b6ba43779e185ea5), [INPUT_LOW_POWER](_input.md#gga65e6bb4d942c22dba9975253b0a1d73fa8895c64802d558830d46bcd921830e9d), [INPUT_POWER_STATUS_UNKNOWN](_input.md#gga65e6bb4d942c22dba9975253b0a1d73fa728020b31c626f749d426cbe8f0f92fe) } | 定义电源状态 [更多...](_input.md#powerstatus) | +| [CapacitanceTest](_input.md#capacitancetest) {   [BASE_TEST](_input.md#ggae96e484cfd64ea37b5b7782f57f38a21aedd31f50c79a36cc8e084d69a3fc695b), [FULL_TEST](_input.md#ggae96e484cfd64ea37b5b7782f57f38a21abfe92c879dc84b5b071899a7ec5cc41d), [MMI_TEST](_input.md#ggae96e484cfd64ea37b5b7782f57f38a21a93335d88212604ade3b0bfe7e619916f), [RUNNING_TEST](_input.md#ggae96e484cfd64ea37b5b7782f57f38a21a31afc25da895db4eaa2af6cec1d6b37c),   [TEST_TYPE_UNKNOWN](_input.md#ggae96e484cfd64ea37b5b7782f57f38a21a9d739cecefd291b39152e3815445aa20) } | 定义容值测试类型 [更多...](_input.md#capacitancetest) | + + +## **详细描述** + +input设备相关的类型定义,定义了input设备驱动接口所使用的结构体及枚举类型。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/interface_i_battery_callback.md b/zh-cn/device-dev/api/interface_i_battery_callback.md new file mode 100644 index 0000000000..cafdf21cd8 --- /dev/null +++ b/zh-cn/device-dev/api/interface_i_battery_callback.md @@ -0,0 +1,56 @@ +# IBatteryCallback + + +## **概述** + +**所属模块:** + +[Battery](battery.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| [Update](#update) ([in] struct [BatteryInfo](_battery_info.md) event) | 电池信息的回调方法。 [更多...](#update) | + + +## **详细描述** + +电池信息的回调。 + +服务创建此回调对象后,可以调用IBatteryInterface的接口注册回调,从而订阅电池信息的变化。 + +**Since:** + +3.1 + + +## **成员函数说明** + + +### Update() + + +``` +IBatteryCallback::Update ([in] struct BatteryInfo event) +``` + +**描述:** + +电池信息的回调方法。 + +当电池信息发生变化时,将通过此方法的参数返回给服务。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| event | 电池信息,如电量,电压,健康状态等。 | + +**参见:** + +[BatteryInfo](_battery_info.md) diff --git a/zh-cn/device-dev/api/interface_i_battery_interface.md b/zh-cn/device-dev/api/interface_i_battery_interface.md new file mode 100644 index 0000000000..d82964f347 --- /dev/null +++ b/zh-cn/device-dev/api/interface_i_battery_interface.md @@ -0,0 +1,409 @@ +# IBatteryInterface + + +## **概述** + +**所属模块:** + +[Battery](battery.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| [Register](#register) ([in] [IBatteryCallback](interface_i_battery_callback.md) event) | 注册电池信息的回调。 [更多...](#register) | +| [UnRegister](#unregister) () | 取消注册电池信息的回调。 [更多...](#unregister) | +| [ChangePath](#changepath) ([in] String path) | 设置电池信息节点的路径。 [更多...](#changepath) | +| [GetCapacity](#getcapacity) ([out] int capacity) | 获取电池的电量百分比。 [更多...](#getcapacity) | +| [GetVoltage](#getvoltage) ([out] int voltage) | 获取电池的电压,单位微伏。 [更多...](#getvoltage) | +| [GetTemperature](#gettemperature) ([out] int temperature) | 获取电池的充电温度,单位0.1摄氏度。 [更多...](#gettemperature) | +| [GetHealthState](#gethealthstate) ([out] enum [BatteryHealthState](battery.md#batteryhealthstate) healthState) | 获取电池的健康状态。 [更多...](#gethealthstate) | +| [GetPluggedType](#getpluggedtype) ([out] enum [BatteryPluggedType](battery.md#batterypluggedtype) pluggedType) | 获取充电设备类型。 [更多...](#getpluggedtype) | +| [GetChargeState](#getchargestate) ([out] enum [BatteryChargeState](battery.md#batterychargestate) chargeState) | 获取充电状态。 [更多...](#getchargestate) | +| [GetPresent](#getpresent) ([out] boolean present) | 获取是否支持电池或者电池是否在位。 [更多...](#getpresent) | +| [GetTechnology](#gettechnology) ([out] String technology) | 获取电池的技术型号。 [更多...](#gettechnology) | +| [GetTotalEnergy](#gettotalenergy) ([out] int totalEnergy) | 获取电池的总容量。 [更多...](#gettotalenergy) | +| [GetCurrentAverage](#getcurrentaverage) ([out] int curAverage) | 获取电池的平均电流。 [更多...](#getcurrentaverage) | +| [GetCurrentNow](#getcurrentnow) ([out] int curNow) | 获取电池的电流。 [更多...](#getcurrentnow) | +| [GetRemainEnergy](#getremainenergy) ([out] int remainEnergy) | 获取电池的剩余容量。 [更多...](#getremainenergy) | +| [GetBatteryInfo](#getbatteryinfo) ([out] struct [BatteryInfo](_battery_info.md) info) | 获取电池的全部信息。 [更多...](#getbatteryinfo) | + + +## **详细描述** + +获取、订阅电池信息的接口。 + +服务获取此对象后,可以调用相关的接口获取、订阅电池信息。 + +**Since:** + +3.1 + + +## **成员函数说明** + + +### ChangePath() + + +``` +IBatteryInterface::ChangePath ([in] String path) +``` + +**描述:** + +设置电池信息节点的路径。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| path | 输入参数,电池信息节点的路径。 | + +**返回:** + +HDF_SUCCESS 表示路径设置成功。 + + +### GetBatteryInfo() + + +``` +IBatteryInterface::GetBatteryInfo ([out] struct BatteryInfo info) +``` + +**描述:** + +获取电池的全部信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| info | 输出参数,电池的全部信息。 | + +**返回:** + +HDF_SUCCESS 表示获取成功。 + +**参见:** + +[BatteryInfo](_battery_info.md) + + +### GetCapacity() + + +``` +IBatteryInterface::GetCapacity ([out] int capacity) +``` + +**描述:** + +获取电池的电量百分比。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| capacity | 输出参数,表示电量的百分比值。 | + +**返回:** + +HDF_SUCCESS 表示获取成功。 + + +### GetChargeState() + + +``` +IBatteryInterface::GetChargeState ([out] enum BatteryChargeState chargeState) +``` + +**描述:** + +获取充电状态。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| chargeState | 输出参数,表示充电状态。 | + +**返回:** + +HDF_SUCCESS 表示获取成功。 + +**参见:** + +[BatteryChargeState](battery.md#batterychargestate) + + +### GetCurrentAverage() + + +``` +IBatteryInterface::GetCurrentAverage ([out] int curAverage) +``` + +**描述:** + +获取电池的平均电流。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| totalEnergy | 输出参数,表示电池的平均电流,单位毫安。 | + +**返回:** + +HDF_SUCCESS 表示获取成功。 + + +### GetCurrentNow() + + +``` +IBatteryInterface::GetCurrentNow ([out] int curNow) +``` + +**描述:** + +获取电池的电流。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| curNow | 输出参数,表示电池的实时电流,单位毫安。 | + +**返回:** + +HDF_SUCCESS 表示获取成功。 + + +### GetHealthState() + + +``` +IBatteryInterface::GetHealthState ([out] enum BatteryHealthState healthState) +``` + +**描述:** + +获取电池的健康状态。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| healthState | 输出参数,表示电池健康状态。 | + +**返回:** + +HDF_SUCCESS 表示获取成功。 + +**参见:** + +[BatteryHealthState](battery.md#batteryhealthstate) + + +### GetPluggedType() + + +``` +IBatteryInterface::GetPluggedType ([out] enum BatteryPluggedType pluggedType) +``` + +**描述:** + +获取充电设备类型。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| pluggedType | 输出参数,表示充电设备类型。 | + +**返回:** + +HDF_SUCCESS 表示获取成功。 + +**参见:** + +[BatteryPluggedType](battery.md#batterypluggedtype) + + +### GetPresent() + + +``` +IBatteryInterface::GetPresent ([out] boolean present) +``` + +**描述:** + +获取是否支持电池或者电池是否在位。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| present | 输出参数,表示是否支持电池或者电池是否在位。true表示支持或在位,false表示不支持或不在位。 | + +**返回:** + +HDF_SUCCESS 表示获取成功。 + + +### GetRemainEnergy() + + +``` +IBatteryInterface::GetRemainEnergy ([out] int remainEnergy) +``` + +**描述:** + +获取电池的剩余容量。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| remainEnergy | 输出参数,表示电池的剩余容量,单位毫安时。 | + +**返回:** + +HDF_SUCCESS 表示获取成功。 + + +### GetTechnology() + + +``` +IBatteryInterface::GetTechnology ([out] String technology) +``` + +**描述:** + +获取电池的技术型号。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| technology | 输出参数,当前电池技术型号。 | + +**返回:** + +HDF_SUCCESS 表示获取成功。 + + +### GetTemperature() + + +``` +IBatteryInterface::GetTemperature ([out] int temperature) +``` + +**描述:** + +获取电池的充电温度,单位0.1摄氏度。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| temperature | 输出参数,表示电池温度。 | + +**返回:** + +HDF_SUCCESS 表示获取成功。 + + +### GetTotalEnergy() + + +``` +IBatteryInterface::GetTotalEnergy ([out] int totalEnergy) +``` + +**描述:** + +获取电池的总容量。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| totalEnergy | 输出参数,表示电池的总容量,单位毫安时。 | + +**返回:** + +HDF_SUCCESS 表示获取成功。 + + +### GetVoltage() + + +``` +IBatteryInterface::GetVoltage ([out] int voltage) +``` + +**描述:** + +获取电池的电压,单位微伏。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| voltage | 输出参数,表示电池的电压。 | + +**返回:** + +HDF_SUCCESS 表示获取成功。 + + +### Register() + + +``` +IBatteryInterface::Register ([in] IBatteryCallback event) +``` + +**描述:** + +注册电池信息的回调。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| event | 输入参数,服务注册的回调。 | + +**返回:** + +HDF_SUCCESS 表示注册成功。 + + +### UnRegister() + + +``` +IBatteryInterface::UnRegister () +``` + +**描述:** + +取消注册电池信息的回调。 + +**返回:** + +HDF_SUCCESS 表示取消注册成功。 diff --git a/zh-cn/device-dev/api/interface_i_executor.md b/zh-cn/device-dev/api/interface_i_executor.md new file mode 100644 index 0000000000..32a215289c --- /dev/null +++ b/zh-cn/device-dev/api/interface_i_executor.md @@ -0,0 +1,296 @@ +# IExecutor + + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| [GetExecutorInfo](#getexecutorinfo) ([out] struct [ExecutorInfo](_executor_info.md) executorInfo) | 获取执行器信息,人脸认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。 [更多...](#getexecutorinfo) | +| [GetTemplateInfo](#gettemplateinfo) ([in] unsigned long templateId, [out] struct [TemplateInfo](_template_info.md) templateInfo) | 获取凭据模版信息。 [更多...](#gettemplateinfo) | +| [OnRegisterFinish](#onregisterfinish-12) ([in] unsigned long[] templateIdList, [in] unsigned char[] frameworkPublicKey, [in] unsigned char[] extraInfo) | 完成执行器注册,对人脸特征模版进行对账,用于删除无效的人脸特征模板及相关信息。 [更多...](#onregisterfinish-12) | +| [Enroll](#enroll) ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_i_executor_callback.md) callbackObj) | 注册人脸特征模版。 [更多...](#enroll) | +| [Authenticate](#authenticate) ([in] unsigned long scheduleId, [in] unsigned long[] templateIdList, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_i_executor_callback.md) callbackObj) | 人脸认证。 [更多...](#authenticate) | +| [Identify](#identify) ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_i_executor_callback.md) callbackObj) | 人脸识别。 [更多...](#identify) | +| [Delete](#delete) ([in] unsigned long[] templateIdList) | 删除人脸特征模版。 [更多...](#delete) | +| [Cancel](#cancel) ([in] unsigned long scheduleId) | 取消操作请求。 [更多...](#cancel) | +| [SendCommand](#sendcommand) ([in] int commandId, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_i_executor_callback.md) callbackObj) | 发送人脸认证功能相关操作命令。 [更多...](#sendcommand) | + + +## **详细描述** + +定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **成员函数说明** + + +### Authenticate() + + +``` +IExecutor::Authenticate ([in] unsigned long scheduleId, [in] unsigned long[] templateIdList, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) +``` + +**描述:** + +人脸认证。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | +| templateIdList | 指定要认证的模版ID列表。 | +| extraInfo | 其他相关信息,用于支持信息扩展。 | +| callbackObj | 回调对象[IExecutorCallback](interface_i_executor_callback.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### Cancel() + + +``` +IExecutor::Cancel ([in] unsigned long scheduleId) +``` + +**描述:** + +取消操作请求。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### Delete() + + +``` +IExecutor::Delete ([in] unsigned long[] templateIdList) +``` + +**描述:** + +删除人脸特征模版。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| templateIdList | 指定要删除的模版ID列表。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### Enroll() + + +``` +IExecutor::Enroll ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) +``` + +**描述:** + +注册人脸特征模版。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | +| extraInfo | 其他相关信息,用于支持信息扩展。 | +| callbackObj | 回调对象[IExecutorCallback](interface_i_executor_callback.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### GetExecutorInfo() + + +``` +IExecutor::GetExecutorInfo ([out] struct ExecutorInfo executorInfo) +``` + +**描述:** + +获取执行器信息,人脸认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| executorInfo | 执行器信息[ExecutorInfo](_executor_info.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### GetTemplateInfo() + + +``` +IExecutor::GetTemplateInfo ([in] unsigned long templateId, [out] struct TemplateInfo templateInfo ) +``` + +**描述:** + +获取凭据模版信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| templateId | 凭据模版ID。 | +| templateInfo | 凭据模版信息[TemplateInfo](_template_info.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### Identify() + + +``` +IExecutor::Identify ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) +``` + +**描述:** + +人脸识别。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | +| extraInfo | 其他相关信息,用于支持信息扩展。 | +| callbackObj | 回调对象[IExecutorCallback](interface_i_executor_callback.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### OnRegisterFinish() [1/2] + + +``` +IExecutor::OnRegisterFinish ([in] unsigned long[] templateIdList, [in] unsigned char[] frameworkPublicKey, [in] unsigned char[] extraInfo ) +``` + +**描述:** + +完成执行器注册,对人脸特征模版进行对账,用于删除无效的人脸特征模板及相关信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| templateIdList | 用户认证框架内由该执行器注册的人脸特征模版ID列表。 | +| frameworkPublicKey | 用户认证框架的公钥,用于校验用户认证框架私钥签名的信息。 | +| extraInfo | 其他相关信息,用于支持信息扩展。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### OnSetData() + + +``` +IExecutor::OnSetData ([in] unsigned long scheduleId, [in] unsigned long authSubType, [in] unsigned char[] data ) +``` + +**描述:** + +设置口令数据,口令认证驱动处理注册或认证口令请求时,如果口令数据由口令认证服务获取,需要通过该接口将口令数据传给口令认证驱动。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | +| authSubType | 口令子类型,如六位数字PIN码等。 | +| data | 口令数据。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### SendCommand() + + +``` +IExecutor::SendCommand ([in] int commandId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) +``` + +**描述:** + +发送人脸认证功能相关操作命令。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| commandId | 操作命令ID[CommandId](_hdf_pin_auth.md#commandid)。 | +| extraInfo | 其他相关信息,用于支持信息扩展。 | +| callbackObj | 回调对象[IExecutorCallback](interface_i_executor_callback.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 diff --git a/zh-cn/device-dev/api/interface_i_executor_callback.md b/zh-cn/device-dev/api/interface_i_executor_callback.md new file mode 100644 index 0000000000..70e9ae565d --- /dev/null +++ b/zh-cn/device-dev/api/interface_i_executor_callback.md @@ -0,0 +1,85 @@ +# IExecutorCallback + + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| [OnResult](#onresult) ([in] int result, [in] unsigned char[] extraInfo) | 定义操作结果回调函数。 [更多...](#onresult) | +| [OnAcquireInfo](#onacquireinfo) ([in] int acquire, [in] unsigned char[] extraInfo) | 定义操作过程信息反馈回调函数。 [更多...](#onacquireinfo) | + + +## **详细描述** + +定义异步API接口回调,用于返回异步接口的请求处理结果和获取信息。使用细节见[IExecutor](interface_i_executor.md)。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **成员函数说明** + + +### OnAcquireInfo() + + +``` +IExecutorCallback::OnAcquireInfo ([in] int acquire, [in] unsigned char[] extraInfo ) +``` + +**描述:** + +定义操作过程信息反馈回调函数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| acquire | 提示信息编码[FaceTipsCode](_hdf_face_auth.md#facetipscode)。 | +| extraInfo | 其他相关信息,用于支持信息扩展。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### OnResult() + + +``` +IExecutorCallback::OnResult ([in] int result, [in] unsigned char[] extraInfo ) +``` + +**描述:** + +定义操作请求处理结果回调函数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| result | 操作请求处理结果。 | +| extraInfo | 其他相关信息,如用户认证通过时用于返回执行器签发的认证令牌等。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 diff --git a/zh-cn/device-dev/api/interface_i_face_auth_interface.md b/zh-cn/device-dev/api/interface_i_face_auth_interface.md new file mode 100644 index 0000000000..32041928f7 --- /dev/null +++ b/zh-cn/device-dev/api/interface_i_face_auth_interface.md @@ -0,0 +1,58 @@ +# IFaceAuthInterface + + +## **概述** + +**所属模块:** + +[HdfFaceAuth](_hdf_face_auth.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| [GetExecutorList](#getexecutorlist) ([out] [IExecutor](interface_i_executor.md)[] executorList) | 获取执行器列表,人脸认证服务进程启动进行初始化操作时通过该接口获取人脸认证驱动支持的执行器列表。 [更多...](#getexecutorlist) | + + +## **详细描述** + +定义获取人脸认证驱动的执行器列表接口。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **成员函数说明** + + +### GetExecutorList() + + +``` +IFaceAuthInterface::GetExecutorList ([out] IExecutor[] executorList) +``` + +**描述:** + +获取执行器列表,人脸认证服务进程启动进行初始化操作时通过该接口获取人脸认证驱动支持的执行器列表。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| executorList | 执行器对象列表[IExecutor](interface_i_executor.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 diff --git a/zh-cn/device-dev/api/interface_i_pin_auth_interface.md b/zh-cn/device-dev/api/interface_i_pin_auth_interface.md new file mode 100644 index 0000000000..bff63979bd --- /dev/null +++ b/zh-cn/device-dev/api/interface_i_pin_auth_interface.md @@ -0,0 +1,58 @@ +# IPinAuthInterface + + +## **概述** + +**所属模块:** + +[HdfPinAuth](_hdf_pin_auth.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| [GetExecutorList](#getexecutorlist) ([out] [IExecutor](interface_i_executor.md)[] executorList) | 获取执行器列表,口令认证服务进程启动进行初始化操作时通过该接口获取口令认证驱动支持的执行器列表。 [更多...](#getexecutorlist) | + + +## **详细描述** + +定义获取口令认证驱动的执行器列表接口。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **成员函数说明** + + +### GetExecutorList() + + +``` +IPinAuthInterface::GetExecutorList ([out] IExecutor[] executorList) +``` + +**描述:** + +获取执行器列表,口令认证服务进程启动进行初始化操作时通过该接口获取口令认证驱动支持的执行器列表。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| executorList | 执行器对象列表[IExecutor](interface_i_executor.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 diff --git a/zh-cn/device-dev/api/interface_i_power_hdi_callback.md b/zh-cn/device-dev/api/interface_i_power_hdi_callback.md new file mode 100644 index 0000000000..993bd9ed61 --- /dev/null +++ b/zh-cn/device-dev/api/interface_i_power_hdi_callback.md @@ -0,0 +1,61 @@ +# IPowerHdiCallback + + +## **概述** + +**所属模块:** + +[Power](power.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| [OnSuspend](#onsuspend) () | 休眠状态的回调方法。 [更多...](#onsuspend) | +| [OnWakeup](#onwakeup) () | 唤醒状态的回调方法。 [更多...](#onwakeup) | + + +## **详细描述** + +休眠/唤醒状态的回调。 + +服务创建此回调对象后,可以调用IPowerInterface的接口注册回调,从而订阅休眠/唤醒状态的变化。 + +**Since:** + +3.1 + + +## **成员函数说明** + + +### OnSuspend() + + +``` +IPowerHdiCallback::OnSuspend () +``` + +**描述:** + +休眠状态的回调方法。 + +当设备进入休眠状态时,将通过此方法通知给服务。 + + +### OnWakeup() + + +``` +IPowerHdiCallback::OnWakeup () +``` + +**描述:** + +唤醒状态的回调方法。 + +当设备进入唤醒状态时,将通过此方法通知给服务。 diff --git a/zh-cn/device-dev/api/interface_i_power_interface.md b/zh-cn/device-dev/api/interface_i_power_interface.md new file mode 100644 index 0000000000..73d5498790 --- /dev/null +++ b/zh-cn/device-dev/api/interface_i_power_interface.md @@ -0,0 +1,178 @@ +# IPowerInterface + + +## **概述** + +**所属模块:** + +[Power](power.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| [RegisterCallback](#registercallback) ([in] [IPowerHdiCallback](interface_i_power_hdi_callback.md) ipowerHdiCallback) | 注册休眠/唤醒状态的回调。 [更多...](#registercallback) | +| [StartSuspend](#startsuspend) () | 执行设备休眠操作。 [更多...](#startsuspend) | +| [StopSuspend](#stopsuspend) () | 执行设备唤醒操作。 [更多...](#stopsuspend) | +| [ForceSuspend](#forcesuspend) () | 执行设备强制休眠操作。 [更多...](#forcesuspend) | +| [SuspendBlock](#suspendblock) ([in] String name) | 打开运行锁,阻止休眠。 [更多...](#suspendblock) | +| [SuspendUnblock](#suspendunblock) ([in] String name) | 关闭运行锁,取消阻止休眠。 [更多...](#suspendunblock) | +| [PowerDump](#powerdump) ([out] String info) | 获取电源的Dump信息。 [更多...](#powerdump) | + + +## **详细描述** + +休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 + +服务获取此对象后,可以调用相关的接口对设备进行休眠/唤醒、订阅休眠/唤醒状态和管理运行锁。 + +**Since:** + +3.1 + + +## **成员函数说明** + + +### ForceSuspend() + + +``` +IPowerInterface::ForceSuspend () +``` + +**描述:** + +执行设备强制休眠操作。 + +**返回:** + +HDF_SUCCESS 表示操作成功。 + + +### PowerDump() + + +``` +IPowerInterface::PowerDump ([out] String info) +``` + +**描述:** + +获取电源的Dump信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| info | 输出参数,电源的Dump信息。 | + +**返回:** + +HDF_SUCCESS 表示操作成功。 + + +### RegisterCallback() + + +``` +IPowerInterface::RegisterCallback ([in] IPowerHdiCallback ipowerHdiCallback) +``` + +**描述:** + +注册休眠/唤醒状态的回调。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| ipowerHdiCallback | 输入参数,服务注册的回调。 | + +**返回:** + +HDF_SUCCESS 表示注册成功。 + +**参见:** + +[IPowerHdiCallback](interface_i_power_hdi_callback.md) + + +### StartSuspend() + + +``` +IPowerInterface::StartSuspend () +``` + +**描述:** + +执行设备休眠操作。 + +**返回:** + +HDF_SUCCESS 表示操作成功。 + + +### StopSuspend() + + +``` +IPowerInterface::StopSuspend () +``` + +**描述:** + +执行设备唤醒操作。 + +**返回:** + +HDF_SUCCESS 表示操作成功。 + + +### SuspendBlock() + + +``` +IPowerInterface::SuspendBlock ([in] String name) +``` + +**描述:** + +打开运行锁,阻止休眠。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| name | 输入参数,运行锁的名称。 | + +**返回:** + +HDF_SUCCESS 表示操作成功。 + + +### SuspendUnblock() + + +``` +IPowerInterface::SuspendUnblock ([in] String name) +``` + +**描述:** + +关闭运行锁,取消阻止休眠。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| name | 输入参数,运行锁的名称。 | + +**返回:** + +HDF_SUCCESS 表示操作成功。 diff --git a/zh-cn/device-dev/api/interface_i_thermal_callback.md b/zh-cn/device-dev/api/interface_i_thermal_callback.md new file mode 100644 index 0000000000..b713dbcc70 --- /dev/null +++ b/zh-cn/device-dev/api/interface_i_thermal_callback.md @@ -0,0 +1,56 @@ +# IThermalCallback + + +## **概述** + +**所属模块:** + +[Thermal](thermal.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| [OnThermalDataEvent](#onthermaldataevent) ([in] struct [HdfThermalCallbackInfo](_hdf_thermal_callback_info.md) event) | 设备发热状态变化的回调方法。 [更多...](#onthermaldataevent) | + + +## **详细描述** + +订阅设备发热状态的回调。 + +服务创建此回调对象后,可以调用IThermalInterface的接口注册回调,从而订阅设备发热状态的变化。 + +**Since:** + +3.1 + + +## **成员函数说明** + + +### OnThermalDataEvent() + + +``` +IThermalCallback::OnThermalDataEvent ([in] struct HdfThermalCallbackInfo event) +``` + +**描述:** + +设备发热状态变化的回调方法。 + +当设备发热状态发生变化时,将通过此方法的参数返回给服务。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| event | 输入参数,设备发热信息,包括器件类型、器件温度。 | + +**参见:** + +[HdfThermalCallbackInfo](_hdf_thermal_callback_info.md) diff --git a/zh-cn/device-dev/api/interface_i_thermal_interface.md b/zh-cn/device-dev/api/interface_i_thermal_interface.md new file mode 100644 index 0000000000..cffe822bef --- /dev/null +++ b/zh-cn/device-dev/api/interface_i_thermal_interface.md @@ -0,0 +1,171 @@ +# IThermalInterface + + +## **概述** + +**所属模块:** + +[Thermal](thermal.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| [SetCpuFreq](#setcpufreq) ([in] int freq) | 设置CPU频率。 [更多...](#setcpufreq) | +| [SetGpuFreq](#setgpufreq) ([in] int freq) | 设置GPU频率。 [更多...](#setgpufreq) | +| [SetBatteryCurrent](#setbatterycurrent) ([in] int current) | 设置充电电流。 [更多...](#setbatterycurrent) | +| [GetThermalZoneInfo](#getthermalzoneinfo) ([out] struct [HdfThermalCallbackInfo](_hdf_thermal_callback_info.md) event) | 获取设备发热的信息。 [更多...](#getthermalzoneinfo) | +| [Register](#register) ([in] [IThermalCallback](interface_i_thermal_callback.md) callbackObj) | 注册设备发热状态的回调。 [更多...](#register) | +| [Unregister](#unregister) () | 取消注册设备发热状态的回调。 [更多...](#unregister) | + + +## **详细描述** + +设备温度管理、控制及订阅接口。 + +服务获取此对象后,可以调用相关的接口管理、控制和订阅设备温度。 + +**Since:** + +3.1 + + +## **成员函数说明** + + +### GetThermalZoneInfo() + + +``` +IThermalInterface::GetThermalZoneInfo ([out] struct HdfThermalCallbackInfo event) +``` + +**描述:** + +获取设备发热的信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| event | 输出参数,设备发热信息,包括器件类型、器件温度。 | + +**返回:** + +HDF_SUCCESS 表示获取成功。 + +**参见:** + +[HdfThermalCallbackInfo](_hdf_thermal_callback_info.md) + + +### Register() + + +``` +IThermalInterface::Register ([in] IThermalCallback callbackObj) +``` + +**描述:** + +注册设备发热状态的回调。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| callbackObj | 输入参数,服务注册的回调。 | + +**返回:** + +HDF_SUCCESS 表示注册成功。 + +**参见:** + +[IThermalCallback](interface_i_thermal_callback.md) + + +### SetBatteryCurrent() + + +``` +IThermalInterface::SetBatteryCurrent ([in] int current) +``` + +**描述:** + +设置充电电流。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| current | 输入参数,充电电流,单位毫安。 | + +**返回:** + +HDF_SUCCESS 表示设置成功 + + +### SetCpuFreq() + + +``` +IThermalInterface::SetCpuFreq ([in] int freq) +``` + +**描述:** + +设置CPU频率。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| freq | 输入参数,设置CPU频率的值。 | + +**返回:** + +HDF_SUCCESS 表示设置成功。 + + +### SetGpuFreq() + + +``` +IThermalInterface::SetGpuFreq ([in] int freq) +``` + +**描述:** + +设置GPU频率。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| freq | 输入参数,设置GPU频率的值。 | + +**返回:** + +HDF_SUCCESS 表示设置成功。 + + +### Unregister() + + +``` +IThermalInterface::Unregister () +``` + +**描述:** + +取消注册设备发热状态的回调。 + +**返回:** + +HDF_SUCCESS 表示取消注册成功。 diff --git a/zh-cn/device-dev/api/interface_i_user_auth_interface.md b/zh-cn/device-dev/api/interface_i_user_auth_interface.md new file mode 100644 index 0000000000..102c715056 --- /dev/null +++ b/zh-cn/device-dev/api/interface_i_user_auth_interface.md @@ -0,0 +1,585 @@ +# IUserAuthInterface + + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| [Init](#init) () | 初始化用户认证驱动缓存信息,用于用户认证框架进程启动时初始化信息。 [更多...](#init) | +| [AddExecutor](#addexecutor) ([in] struct [ExecutorRegisterInfo](_executor_register_info.md) info, [out] unsigned long index, [out] unsigned char[] publicKey, [out] unsigned long[] templateIds) | 添加认证执行器来获取认证能力,用于各认证基础服务如口令认证服务等将认证能力对接到用户认证框架。 [更多...](#addexecutor) | +| [DeleteExecutor](#deleteexecutor) ([in] unsigned long index) | 删除执行器,用于清理失效的执行器信息。 [更多...](#deleteexecutor) | +| [OpenSession](#opensession) ([in] int userId, [out] unsigned char[] challenge) | 开启一个认证凭据管理会话,用于在请求管理用户认证凭据前获取有效挑战值。 [更多...](#opensession) | +| [CloseSession](#closesession) ([in] int userId) | 关闭认证凭据管理会话,完成用户认证凭据管理请求处理后,调用该接口使原挑战值失效。 [更多...](#closesession) | +| [BeginEnrollment](#beginenrollment) ([in] int userId, [in] unsigned char[] authToken, [in] struct [EnrollParam](_enroll_param.md) param, [out] struct [ScheduleInfo](_schedule_info.md) info) | 开始注册用户认证凭据。当注册凭据类型为口令且该用户已经注册了口令凭据时,将会更新口令凭据。 [更多...](#beginenrollment) | +| [UpdateEnrollmentResult](#updateenrollmentresult) ([in] int userId, [in] unsigned char[] scheduleResult, [out] unsigned long credentialId, [out] struct [CredentialInfo](_credential_info.md) oldInfo) | 更新用户凭据注册结果,完成凭据注册。 [更多...](#updateenrollmentresult) | +| [CancelEnrollment](#cancelenrollment) ([in] int userId) | 取消注册请求。 [更多...](#cancelenrollment) | +| [DeleteCredential](#deletecredential) ([in] int userId, [in] unsigned long credentialId, [in] unsigned char[] authToken, [out] struct [CredentialInfo](_credential_info.md) info) | 删除用户凭据信息。 [更多...](#deletecredential) | +| [GetCredential](#getcredential) ([in] int userId, [in] enum [AuthType](_hdf_face_auth.md#authtype) authType, [out] struct [CredentialInfo](_credential_info.md)[] infos) | 查询用户凭据信息。 [更多...](#getcredential) | +| [GetSecureInfo](#getsecureinfo) ([in] int userId, [out] unsigned long secureUid, [out] struct [EnrolledInfo](_enrolled_info.md)[] infos) | 查询用户安全信息。 [更多...](#getsecureinfo) | +| [DeleteUser](#deleteuser) ([in] int userId, [in] unsigned char[] authToken, [out] struct [CredentialInfo](_credential_info.md)[] deletedInfos) | 删除用户口令认证凭据,在用户IAM系统内删除该用户,该请求由用户触发。 [更多...](#deleteuser) | +| [EnforceDeleteUser](#enforcedeleteuser) ([in] int userId, [out] struct [CredentialInfo](_credential_info.md)[] deletedInfos) | 强制删除用户,该请求由系统内管理用户的模块触发。 [更多...](#enforcedeleteuser) | +| [BeginAuthentication](#beginauthentication) ([in] unsigned long contextId, [in] struct [AuthSolution](_auth_solution.md) param, [out] struct [ScheduleInfo](_schedule_info.md)[] scheduleInfos) | 开始认证用户,并生成认证方案。 [更多...](#beginauthentication) | +| [UpdateAuthenticationResult](#updateauthenticationresult) ([in] unsigned long contextId, [in] unsigned char[] scheduleResult, [out] struct [AuthResultInfo](_auth_result_info.md) info) | 更新认证结果,评估认证方案的认证结果。 [更多...](#updateauthenticationresult) | +| [CancelAuthentication](#cancelauthentication) ([in] unsigned long contextId) | 取消用户认证请求。 [更多...](#cancelauthentication) | +| [BeginIdentification](#beginidentification) ([in] unsigned long contextId, [in] enum [AuthType](_hdf_face_auth.md#authtype) authType, [in] byte[] challenge, [in] unsigned int executorId, [out] struct [ScheduleInfo](_schedule_info.md) scheduleInfo) | 开始用户身份识别,并生成识别方案。 [更多...](#beginidentification) | +| [UpdateIdentificationResult](#updateidentificationresult) ([in] unsigned long contextId, [in] unsigned char[] scheduleResult, [out] struct [IdentifyResultInfo](_identify_result_info.md) info) | 更新用户身份识别结果,生成身份识别方案的结果 [更多...](#updateidentificationresult) | +| [CancelIdentification](#cancelidentification) ([in] unsigned long contextId) | 取消用户身份识别请求。 [更多...](#cancelidentification) | +| [GetAuthTrustLevel](#getauthtrustlevel) ([in] int userId, [in] enum [AuthType](_hdf_face_auth.md#authtype) authType, [out] unsigned int authTrustLevel) | 获取当前认证类型的认证结果可信等级。 [更多...](#getauthtrustlevel) | +| [GetValidSolution](#getvalidsolution) ([in] int userId, [in] enum [AuthType](_hdf_face_auth.md#authtype)[] authTypes, [in] unsigned int authTrustLevel, [out] enum [AuthType](_hdf_face_auth.md#authtype)[] validTypes) | 获取指定认证结果可信等级下有效的认证方式。 [更多...](#getvalidsolution) | + + +## **详细描述** + +声明用户认证驱动的API接口。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **成员函数说明** + + +### AddExecutor() + + +``` +IUserAuthInterface::AddExecutor ([in] struct ExecutorRegisterInfo info, [out] unsigned long index, [out] unsigned char[] publicKey, [out] unsigned long[] templateIds ) +``` + +**描述:** + +添加认证执行器来获取认证能力,用于各认证基础服务如口令认证服务等将认证能力对接到用户认证框架。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| info | 执行器注册信息[ExecutorRegisterInfo](_executor_register_info.md)。 | +| index | 用户认证框架的执行器索引。 | +| publicKey | 用户认证框架公钥。 | +| templateIds | 该执行器已注册的模版ID列表。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### BeginAuthentication() + + +``` +IUserAuthInterface::BeginAuthentication ([in] unsigned long contextId, [in] struct AuthSolution param, [out] struct ScheduleInfo[] scheduleInfos ) +``` + +**描述:** + +开始认证用户,并生成认证方案。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| contextId | 上下文索引。 | +| param | 认证方案[AuthSolution](_auth_solution.md)。 | +| scheduleInfos | 调度信息[ScheduleInfo](_schedule_info.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### BeginEnrollment() + + +``` +IUserAuthInterface::BeginEnrollment ([in] int userId, [in] unsigned char[] authToken, [in] struct EnrollParam param, [out] struct ScheduleInfo info ) +``` + +**描述:** + +开始注册用户认证凭据。当注册凭据类型为口令且该用户已经注册了口令凭据时,将会更新口令凭据。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| userId | 用户ID。 | +| authToken | 用户口令认证令牌。 | +| param | 注册凭据参数[EnrollParam](_enroll_param.md)。 | +| info | 调度信息[ScheduleInfo](_schedule_info.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### BeginIdentification() + + +``` +IUserAuthInterface::BeginIdentification ([in] unsigned long contextId, [in] enum AuthType authType, [in] byte[] challenge, [in] unsigned int executorId, [out] struct ScheduleInfo scheduleInfo ) +``` + +**描述:** + +开始用户身份识别,并生成识别方案。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| contextId | 上下文索引。 | +| authType | 用户身份识别类型AuthType}。 | +| scheduleInfo | 调度信息[ScheduleInfo](_schedule_info.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### CancelAuthentication() + + +``` +IUserAuthInterface::CancelAuthentication ([in] unsigned long contextId) +``` + +**描述:** + +取消用户认证请求。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| contextId | 上下文索引。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### CancelEnrollment() + + +``` +IUserAuthInterface::CancelEnrollment ([in] int userId) +``` + +**描述:** + +取消注册请求。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| userId | 用户ID。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### CancelIdentification() + + +``` +IUserAuthInterface::CancelIdentification ([in] unsigned long contextId) +``` + +**描述:** + +取消用户身份识别请求。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| contextId | 上下文索引。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### CloseSession() + + +``` +IUserAuthInterface::CloseSession ([in] int userId) +``` + +**描述:** + +关闭认证凭据管理会话,完成用户认证凭据管理请求处理后,调用该接口使原挑战值失效。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| userId | 用户ID。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### DeleteCredential() + + +``` +IUserAuthInterface::DeleteCredential ([in] int userId, [in] unsigned long credentialId, [in] unsigned char[] authToken, [out] struct CredentialInfo info ) +``` + +**描述:** + +删除用户凭据信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| userId | 用户ID。 | +| credentialId | 凭据ID。 | +| authToken | 用户口令认证令牌。 | +| info | 删除的凭据信息[CredentialInfo](_credential_info.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### DeleteExecutor() + + +``` +IUserAuthInterface::DeleteExecutor ([in] unsigned long index) +``` + +**描述:** + +删除执行器,用于清理失效的执行器信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| index | 用户认证框架的执行器索引。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### DeleteUser() + + +``` +IUserAuthInterface::DeleteUser ([in] int userId, [in] unsigned char[] authToken, [out] struct CredentialInfo[] deletedInfos ) +``` + +**描述:** + +删除用户口令认证凭据,在用户IAM系统内删除该用户,该请求由用户触发。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| userId | 用户ID。 | +| authToken | 用户口令认证令牌。 | +| deletedInfos | 删除的凭据信息[CredentialInfo](_credential_info.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### EnforceDeleteUser() + + +``` +IUserAuthInterface::EnforceDeleteUser ([in] int userId, [out] struct CredentialInfo[] deletedInfos ) +``` + +**描述:** + +强制删除用户,该请求由系统内管理用户的模块触发。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| userId | 用户ID。 | +| deletedInfos | 删除的凭据信息[CredentialInfo](_credential_info.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### GetAuthTrustLevel() + + +``` +IUserAuthInterface::GetAuthTrustLevel ([in] int userId, [in] enum AuthType authType, [out] unsigned int authTrustLevel ) +``` + +**描述:** + +获取当前认证类型的认证结果可信等级。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| userId | 用户ID。 | +| authType | 认证类型[AuthType](_hdf_user_auth.md#authtype)。 | +| authTrustLevel | 认证结果可信等级。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### GetCredential() + + +``` +IUserAuthInterface::GetCredential ([in] int userId, [in] enum AuthType authType, [out] struct CredentialInfo[] infos ) +``` + +**描述:** + +查询用户凭据信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| userId | 用户ID。 | +| authType | 凭据类型[AuthType](_hdf_user_auth.md#authtype)。 | +| infos | 凭据信息[CredentialInfo](_credential_info.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### GetSecureInfo() + + +``` +IUserAuthInterface::GetSecureInfo ([in] int userId, [out] unsigned long secureUid, [out] struct EnrolledInfo[] infos ) +``` + +**描述:** + +查询用户安全信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| userId | 用户ID。 | +| secureUid | 安全用户ID。 | +| infos | 注册信息[EnrolledInfo](_enrolled_info.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### GetValidSolution() + + +``` +IUserAuthInterface::GetValidSolution ([in] int userId, [in] enum AuthType[] authTypes, [in] unsigned int authTrustLevel, [out] enum AuthType[] validTypes ) +``` + +**描述:** + +获取指定认证结果可信等级下有效的认证方式。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| userId | 用户ID。 | +| authTypes | 用于筛选的认证方式列表[AuthType](_hdf_user_auth.md#authtype)。 | +| authTrustLevel | 认证结果可信等级。 | +| validTypes | 有效的认证方式列表[AuthType](_hdf_user_auth.md#authtype)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### Init() + + +``` +IUserAuthInterface::Init () +``` + +**描述:** + +初始化用户认证驱动缓存信息,用于用户认证框架进程启动时初始化信息。 + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### OpenSession() + + +``` +IUserAuthInterface::OpenSession ([in] int userId, [out] unsigned char[] challenge ) +``` + +**描述:** + +开启一个认证凭据管理会话,用于在请求管理用户认证凭据前获取有效挑战值。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| userId | 用户ID。 | +| challenge | 随机挑战值,用于生成用户身份认证令牌。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### UpdateAuthenticationResult() + + +``` +IUserAuthInterface::UpdateAuthenticationResult ([in] unsigned long contextId, [in] unsigned char[] scheduleResult, [out] struct AuthResultInfo info ) +``` + +**描述:** + +更新认证结果,评估认证方案的认证结果。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| contextId | 上下文索引。 | +| scheduleResult | 执行器签发的认证结果。 | +| info | 认证结果信息[AuthResultInfo](_auth_result_info.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### UpdateEnrollmentResult() + + +``` +IUserAuthInterface::UpdateEnrollmentResult ([in] int userId, [in] unsigned char[] scheduleResult, [out] unsigned long credentialId, [out] struct CredentialInfo oldInfo ) +``` + +**描述:** + +更新用户凭据注册结果,完成凭据注册。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| userId | 用户ID。 | +| scheduleResult | 执行器签发的注册结果。 | +| credentialId | 凭据ID。 | +| oldInfo | 已经删除的凭据信息[CredentialInfo](_credential_info.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### UpdateIdentificationResult() + + +``` +IUserAuthInterface::UpdateIdentificationResult ([in] unsigned long contextId, [in] unsigned char[] scheduleResult, [out] struct IdentifyResultInfo info ) +``` + +**描述:** + +更新用户身份识别结果,生成身份识别方案的结果 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| contextId | 上下文索引。 | +| scheduleResult | 执行器签发的用户身份识别结果。 | +| info | 用户身份识别结果[IdentifyResultInfo](_identify_result_info.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 diff --git a/zh-cn/device-dev/api/interface_pin_i_executor.md b/zh-cn/device-dev/api/interface_pin_i_executor.md new file mode 100644 index 0000000000..87b29e6ea7 --- /dev/null +++ b/zh-cn/device-dev/api/interface_pin_i_executor.md @@ -0,0 +1,270 @@ +# IExecutor + + +## **概述** + +**所属模块:** + +[HdfPinAuth](_hdf_pin_auth.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| [GetTemplateInfo](interface_i_executor.md#gettemplateinfo) ([in] unsigned long templateId, [out] struct [TemplateInfo](_template_info.md) templateInfo) | 获取凭据模版信息。 [更多...](interface_i_executor.md#gettemplateinfo) | +| [Cancel](interface_i_executor.md#cancel) ([in] unsigned long scheduleId) | 取消操作请求。 [更多...](interface_i_executor.md#cancel) | +| [h2GetExecutorInfo](#getexecutorinfo) ([out] struct [ExecutorInfo](_executor_info.md) executorInfo) | 获取执行器信息,口令认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。 [更多...](#getexecutorinfo) | +| [OnRegisterFinish](#onregisterfinish) ([in] unsigned long[] templateIdList, [in] unsigned char[] frameworkPublicKey, [in] unsigned char[] extraInfo) | 完成执行器注册,对口令模版信息进行对账,用于删除无效的口令模板及相关信息。 [更多...](#onregisterfinish) | +| [OnSetData](interface_i_executor.md#onsetdata) ([in] unsigned long scheduleId, [in] unsigned long authSubType, [in] unsigned char[] data) | 设置口令数据,口令认证驱动处理注册或认证口令请求时,如果口令数据由口令认证服务获取,需要通过该接口将口令数据传给口令认证驱动。 [更多...](interface_i_executor.md#onsetdata) | +| [Enroll](#enroll) ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_i_executor_callback.md) callbackObj) | 注册口令。 [更多...](#enroll) | +| [Authenticate](#authenticate) ([in] unsigned long scheduleId, [in] unsigned long templateId, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_i_executor_callback.md) callbackObj) | 认证口令。 [ERROR:Invalid link:zh-cn_topic_0000001301263928.xml#xref15713627408,link:zh-cn_topic_0000001301263928.xml](zh-cn_topic_0000001301263928.xml) | +| [Delete](#delete) ([in] unsigned long templateId) | 删除口令。 [更多...](#delete) | +| [SendCommand](#sendcommand) ([in] int commandId, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_i_executor_callback.md) callbackObj) | 发送口令认证功能相关操作命令。 [更多...](#sendcommand) | + + +## **详细描述** + +定义执行器标准API接口。接口可用于获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **成员函数说明** + + +### Authenticate() + + +``` +IExecutor::Authenticate ([in] unsigned long scheduleId, [in] unsigned long templateId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) +``` + +**描述:** + +认证口令。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | +| templateId | 指定要认证的模版ID。 | +| extraInfo | 其他相关信息,用于支持信息扩展。 | +| callbackObj | 回调对象[IExecutorCallback](interface_i_executor_callback.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### Cancel() + + +``` +IExecutor::Cancel ([in] unsigned long scheduleId) +``` + +**描述:** + +取消操作请求。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### Delete() + + +``` +IExecutor::Delete ([in] unsigned long templateId) +``` + +**描述:** + +删除口令。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| templateId | 模版ID。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### Enroll() + + +``` +IExecutor::Enroll ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) +``` + +**描述:** + +注册口令。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | +| extraInfo | 其他相关信息,用于支持信息扩展。 | +| callbackObj | 回调对象[IExecutorCallback](interface_i_executor_callback.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### GetExecutorInfo() + + +``` +IExecutor::GetExecutorInfo ([out] struct ExecutorInfo executorInfo) +``` + +**描述:** + +获取执行器信息,口令认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| executorInfo | 执行器信息[ExecutorInfo](_executor_info.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### GetTemplateInfo() + + +``` +IExecutor::GetTemplateInfo ([in] unsigned long templateId, [out] struct TemplateInfo templateInfo ) +``` + +**描述:** + +获取凭据模版信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| templateId | 凭据模版ID。 | +| templateInfo | 凭据模版信息[TemplateInfo](_template_info.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### OnRegisterFinish() + + +``` +IExecutor::OnRegisterFinish ([in] unsigned long[] templateIdList, [in] unsigned char[] frameworkPublicKey, [in] unsigned char[] extraInfo ) +``` + +**描述:** + +完成执行器注册,对口令模版信息进行对账,用于删除无效的口令模板及相关信息。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| templateIdList | 用户认证框架内由该执行器注册的口令凭据模版ID列表。 | +| frameworkPublicKey | 用户认证框架的公钥,用于校验用户认证框架私钥签名的信息。 | +| extraInfo | 其他相关信息,用于支持信息扩展。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### OnSetData() + + +``` +IExecutor::OnSetData ([in] unsigned long scheduleId, [in] unsigned long authSubType, [in] unsigned char[] data ) +``` + +**描述:** + +设置口令数据,口令认证驱动处理注册或认证口令请求时,如果口令数据由口令认证服务获取,需要通过该接口将口令数据传给口令认证驱动。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | +| authSubType | 口令子类型,如六位数字PIN码等。 | +| data | 口令数据。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### SendCommand() + + +``` +IExecutor::SendCommand ([in] int commandId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) +``` + +**描述:** + +发送口令认证功能相关操作命令。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| commandId | 操作命令ID[CommandId](_hdf_pin_auth.md#commandid)。 | +| extraInfo | 其他相关信息,用于支持信息扩展。 | +| callbackObj | 回调对象[IExecutorCallback](interface_i_executor_callback.md)。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 diff --git a/zh-cn/device-dev/api/interface_pin_i_executor_callback.md b/zh-cn/device-dev/api/interface_pin_i_executor_callback.md new file mode 100644 index 0000000000..afa114d1d6 --- /dev/null +++ b/zh-cn/device-dev/api/interface_pin_i_executor_callback.md @@ -0,0 +1,85 @@ +# IExecutorCallback + + +## **概述** + +**所属模块:** + +[HdfPinAuth](_hdf_pin_auth.md) + + +## **汇总** + + +### Public 成员函数 + + | Public 成员函数 | 描述 | +| -------- | -------- | +| [OnResult](interface_i_executor_callback.md#onresult) ([in] int result, [in] unsigned char[] extraInfo) | 定义操作结果回调函数。 [更多...](interface_i_executor_callback.md#onresult) | +| [OnGetData](#ongetdata) ([in] unsigned long scheduleId, [in] unsigned char[] salt, [in] unsigned long authSubType) | 定义请求获取口令数据回调函数。 [更多...](#ongetdata) | + + +## **详细描述** + +定义异步API接口回调,用于返回异步接口的请求处理结果和获取信息。使用细节见[IExecutor](interface_i_executor.md)。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **成员函数说明** + + +### OnGetData() + + +``` +IExecutorCallback::OnGetData ([in] unsigned long scheduleId, [in] unsigned char[] salt, [in] unsigned long authSubType ) +``` + +**描述:** + +定义请求获取口令数据回调函数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| salt | 盐值,用于对口令明文进行单向处理。 | +| authSubType | 口令子类型,如六位数字PIN码等。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 + + +### OnResult() + + +``` +IExecutorCallback::OnResult ([in] int result, [in] unsigned char[] extraInfo ) +``` + +**描述:** + +定义操作请求处理结果回调函数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| result | 操作请求处理结果。 | +| extraInfo | 其他相关信息,如用户认证通过时用于返回执行器签发的认证令牌等。 | + +**返回:** + +0 表示操作成功。 + +非0 表示操作失败。 diff --git a/zh-cn/device-dev/api/ioffline__stream__operator_8h.md b/zh-cn/device-dev/api/ioffline__stream__operator_8h.md new file mode 100644 index 0000000000..0a593960df --- /dev/null +++ b/zh-cn/device-dev/api/ioffline__stream__operator_8h.md @@ -0,0 +1,31 @@ +# ioffline_stream_operator.h + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [OHOS::Camera::IOfflineStreamOperator](_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md) | 离线流的操作类。 | + + +## **详细描述** + +离线流的操作接口。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/istream__operator_8h.md b/zh-cn/device-dev/api/istream__operator_8h.md new file mode 100644 index 0000000000..a051ce6322 --- /dev/null +++ b/zh-cn/device-dev/api/istream__operator_8h.md @@ -0,0 +1,31 @@ +# istream_operator.h + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [OHOS::Camera::IStreamOperator](_o_h_o_s_1_1_camera_1_1_i_stream_operator.md) | 流的操作类。 | + + +## **详细描述** + +流的操作接口。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/istream__operator__callback_8h.md b/zh-cn/device-dev/api/istream__operator__callback_8h.md new file mode 100644 index 0000000000..79f5e3d8b4 --- /dev/null +++ b/zh-cn/device-dev/api/istream__operator__callback_8h.md @@ -0,0 +1,31 @@ +# istream_operator_callback.h + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [OHOS::Camera::IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md) | 流的操作回调类。 | + + +## **详细描述** + +[IStreamOperator](istream__operator_8h.md) 相关的回调,这些回调均由调用者实现。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/light_8typeh.md b/zh-cn/device-dev/api/light_8typeh.md new file mode 100644 index 0000000000..768205451b --- /dev/null +++ b/zh-cn/device-dev/api/light_8typeh.md @@ -0,0 +1,29 @@ +# light_type.h + + +## **概述** + +**所属模块:** + +[Light](_light.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| LightFlashEffect | 定义闪烁参数。 [更多...](_light_flash_effect.md) | +| LightEffect | 定义灯的效果参数。 [更多...](_light_effect.md) | +| LightInfo | 定义灯的基本信息。 [更多...](_light_info.md) | + + +## **详细描述** + +声明light模块的通用API,可用于获取灯ID、打开或关闭灯、并设置灯光亮度和闪烁模式。 + +**Since:** + +3.1 diff --git a/zh-cn/device-dev/api/light__if_8h.md b/zh-cn/device-dev/api/light__if_8h.md new file mode 100644 index 0000000000..a48fb26211 --- /dev/null +++ b/zh-cn/device-dev/api/light__if_8h.md @@ -0,0 +1,35 @@ +# light_if.h + + +## **概述** + +**所属模块:** + +[Light](_light.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [LightInterface](_light_interface.md) | 定义可以在灯上执行的基本操作。 [更多...](_light_interface.md) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [NewLightInterfaceInstance](_light.md#newlightinterfaceinstance) (void) | 创建LightInterface实例。 [更多...](_light.md#newlightinterfaceinstance) | +| [FreeLightInterfaceInstance](_light.md#freelightinterfaceinstance) (void) | 释放LightInterface实例和相关资源。 [更多...](_light.md#freelightinterfaceinstance) | + + +## **详细描述** + +声明light模块的通用API,可用于获取灯ID、打开或关闭灯、并设置灯光亮度和闪烁模式。 + +**Sinc[更多...](_light_flash_effect.md)e更多...[更多...](_light_info.md):** + +3.1 diff --git a/zh-cn/device-dev/api/pin__auth_2_i_executor_8idl.md b/zh-cn/device-dev/api/pin__auth_2_i_executor_8idl.md new file mode 100644 index 0000000000..66e82d37d3 --- /dev/null +++ b/zh-cn/device-dev/api/pin__auth_2_i_executor_8idl.md @@ -0,0 +1,34 @@ +# IExecutor.idl + + +## **概述** + +**所属模块:** + +[HdfPinAuth](_hdf_pin_auth.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IExecutor](interface_i_executor.md) | 定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 [更多...](interface_i_executor.md) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.pin_auth.v1_0 | 口令认证接口的包路径 | + + +## **详细描述** + +定义执行器标准API接口。接口可用于获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。 + +**Since:** + +3.2 diff --git a/zh-cn/device-dev/api/pin__auth_2_i_executor_callback_8idl.md b/zh-cn/device-dev/api/pin__auth_2_i_executor_callback_8idl.md new file mode 100644 index 0000000000..39258b4678 --- /dev/null +++ b/zh-cn/device-dev/api/pin__auth_2_i_executor_callback_8idl.md @@ -0,0 +1,38 @@ +# IExecutorCallback.idl + + +## **概述** + +**所属模块:** + +[HdfPinAuth](_hdf_pin_auth.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IExecutorCallback](interface_i_executor_callback.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见[IExecutor](interface_i_executor.md)。 [更多...](interface_i_executor_callback.md) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.pin_auth.v1_0 | 口令认证接口的包路径 | + + +## **详细描述** + +定义异步API接口回调,用于返回异步接口的请求处理结果和获取信息。使用细节见[IExecutor](interface_i_executor.md)。 + +**Since:** + +3.2 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/power.md b/zh-cn/device-dev/api/power.md new file mode 100644 index 0000000000..2b72161fdc --- /dev/null +++ b/zh-cn/device-dev/api/power.md @@ -0,0 +1,112 @@ +# Power + + +## **汇总** + + +### 文件 + + | 文件 | 描述 | +| -------- | -------- | +| [IPowerHdiCallback.idl](_i_power_hdi_callback_8idl.md) | 休眠/唤醒状态的回调。 | +| [IPowerInterface.idl](_i_power_interface_8idl.md) | 休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 | +| [PowerTypes.idl](_power_types_8idl.md) | 电源相关的数据类型。 | + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IPowerHdiCallback](interface_i_power_hdi_callback.md) | 休眠/唤醒状态的回调。 [更多...](interface_i_power_hdi_callback.md) | +| [IPowerInterface](interface_i_power_interface.md) | 休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 [更多...](interface_i_power_interface.md) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [PowerHdfCmd](#powerhdfcmd) {   [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref1240658535083931,link:zh-cn_topic_0000001348174201.xml#gga0c9f68a1cf4b1b76a8253281688a499fadb8d2fd75158645b1cd01cab62a11e48](#gga0c9f68a1cf4b1b76a8253281688a499fadb8d2fd75158645b1cd01cab62a11e48) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref575539927083931,link:zh-cn_topic_0000001348174201.xml#gga0c9f68a1cf4b1b76a8253281688a499fab1d1e95415b8a9ab070fed3200b5f1d3](#gga0c9f68a1cf4b1b76a8253281688a499fab1d1e95415b8a9ab070fed3200b5f1d3), [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref1562929411083931,link:zh-cn_topic_0000001348174201.xml#gga0c9f68a1cf4b1b76a8253281688a499fa65c754fdc432aa2a6f13c27cb97c27de](#gga0c9f68a1cf4b1b76a8253281688a499fa65c754fdc432aa2a6f13c27cb97c27de), [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref33754950083931,link:zh-cn_topic_0000001348174201.xml#gga0c9f68a1cf4b1b76a8253281688a499faa96402e649008dcafce89c7a47c6f266](#gga0c9f68a1cf4b1b76a8253281688a499faa96402e649008dcafce89c7a47c6f266),   [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref642377669083931,link:zh-cn_topic_0000001348174201.xml#gga0c9f68a1cf4b1b76a8253281688a499fa0766f8c155a9de9fc7168a498c8317da](#gga0c9f68a1cf4b1b76a8253281688a499fa0766f8c155a9de9fc7168a498c8317da), [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref1247624561083931,link:zh-cn_topic_0000001348174201.xml#gga0c9f68a1cf4b1b76a8253281688a499fa840d1fd2227dfea25fcee7217deb82ed](#gga0c9f68a1cf4b1b76a8253281688a499fa840d1fd2227dfea25fcee7217deb82ed), [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref111578637083931,link:zh-cn_topic_0000001348174201.xml#gga0c9f68a1cf4b1b76a8253281688a499fab92b7d7125239e258bd22cd1a35aba0d](#gga0c9f68a1cf4b1b76a8253281688a499fab92b7d7125239e258bd22cd1a35aba0d) } | 枚举电源命令的参数。 [更多...](#powerhdfcmd) | +| [PowerHdfCallbackCmd](#powerhdfcallbackcmd) { [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref1691232702083931,link:zh-cn_topic_0000001348174201.xml#gga4bbb7ca0dc24efe3980c39cd409b4109a6d4a3ebd4580d7303df66d5ea9ad98d1](#gga4bbb7ca0dc24efe3980c39cd409b4109a6d4a3ebd4580d7303df66d5ea9ad98d1) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref1643638329083931,link:zh-cn_topic_0000001348174201.xml#gga4bbb7ca0dc24efe3980c39cd409b4109a4d0194285647be62fe2c191cad95e72f](#gga4bbb7ca0dc24efe3980c39cd409b4109a4d0194285647be62fe2c191cad95e72f) } | 枚举电源状态回调的参数。 [更多...](#powerhdfcallbackcmd) | +| [PowerHdfState](#powerhdfstate) { [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref1420013227083931,link:zh-cn_topic_0000001348174201.xml#ggadf82dc0e2ae04729ac8fabb3e3d28ecda65e803ac3fb48fa726e326f3c63c2d83](#ggadf82dc0e2ae04729ac8fabb3e3d28ecda65e803ac3fb48fa726e326f3c63c2d83) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref1860258815083931,link:zh-cn_topic_0000001348174201.xml#ggadf82dc0e2ae04729ac8fabb3e3d28ecda3ff8ba88da6f8947ab7c22b7825c6bb6](#ggadf82dc0e2ae04729ac8fabb3e3d28ecda3ff8ba88da6f8947ab7c22b7825c6bb6), [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref119525154083931,link:zh-cn_topic_0000001348174201.xml#ggadf82dc0e2ae04729ac8fabb3e3d28ecdad6137abebe4fdc59e2f0f2c84bdbe3fa](#ggadf82dc0e2ae04729ac8fabb3e3d28ecdad6137abebe4fdc59e2f0f2c84bdbe3fa) } | 枚举电源的状态。 [更多...](#powerhdfstate) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.power.v1_0 | 电源管理接口的包路径 | + + +## **详细描述** + +提供休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 + +电源模块为电源服务提供的休眠/唤醒操作、订阅休眠/唤醒状态和运行锁管理的接口。 服务获取此模块的对象或代理后,可以调用相关的接口对设备进行休眠/唤醒、订阅休眠/唤醒状态和管理运行锁。 + +**Since:** + +3.1 + +**Version:** + +1.0 + + +## **枚举类型说明** + + +### PowerHdfCallbackCmd + + +``` +enum PowerHdfCallbackCmd +``` + +**描述:** + +枚举电源状态回调的参数。 + + | 枚举值 | 描述 | +| -------- | -------- | +| CMD_ON_SUSPEND | 休眠回调的命令参数。 | +| CMD_ON_WAKEUP | 唤醒回调的命令参数。 | + + +### PowerHdfCmd + + +``` +enum PowerHdfCmd +``` + +**描述:** + +枚举电源命令的参数。 + + | 枚举值 | 描述 | +| -------- | -------- | +| CMD_REGISTER_CALLBCK | 订阅状态的命令参数 | +| CMD_START_SUSPEND | 休眠的命令参数 | +| CMD_STOP_SUSPEND | 唤醒的命令参数 | +| CMD_FORCE_SUSPEND | 强制休眠的命令参数 | +| CMD_SUSPEND_BLOCK | 打开运行锁的命令参数 | +| CMD_SUSPEND_UNBLOCK | 关闭运行锁的命令参数 | +| CMD_DUMP | Dump的命令参数 | + + +### PowerHdfState + + +``` +enum PowerHdfState +``` + +**描述:** + +枚举电源的状态。 + + | 枚举值 | 描述 | +| -------- | -------- | +| AWAKE | 唤醒状态。 | +| INACTIVE | 非活动状态。 | +| SLEEP | 休眠状态。 | diff --git a/zh-cn/device-dev/api/sensor__if_8h.md b/zh-cn/device-dev/api/sensor__if_8h.md new file mode 100644 index 0000000000..4e575fefc0 --- /dev/null +++ b/zh-cn/device-dev/api/sensor__if_8h.md @@ -0,0 +1,39 @@ +# sensor_if.h + + +## **概述** + +**所属模块:** + +[Sensor](_sensor.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [SensorInterface](_sensor_interface.md) | 提供sensor设备基本控制操作接口。 [更多...](_sensor_interface.md) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [NewSensorInterfaceInstance](_sensor.md#newsensorinterfaceinstance) (void) | 创建传感器接口实例。 [更多...](_sensor.md#newsensorinterfaceinstance) | +| [FreeSensorInterfaceInstance](_sensor.md#freesensorinterfaceinstance) (void) | 释放传感器接口实例。 [更多...](_sensor.md#freesensorinterfaceinstance) | + + +## **详细描述** + +Sensor模块对外通用的接口声明文件,提供获取传感器设备信息、订阅/去订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度,量程等可选配置接口定义。 + +**Since:** + +2.2 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/sensor__type_8h.md b/zh-cn/device-dev/api/sensor__type_8h.md new file mode 100644 index 0000000000..a8db64b7ca --- /dev/null +++ b/zh-cn/device-dev/api/sensor__type_8h.md @@ -0,0 +1,59 @@ +# sensor_type.h + + +## **概述** + +**所属模块:** + +[Sensor](_sensor.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [SensorInformation](_sensor_information.md) | 定义传感器基本信息。 [更多...](_sensor_information.md) | +| [SensorEvents](_sensor_events.md) | 上报传感器数据结构。 [更多...](_sensor_events.md) | + + +### 宏定义 + + | 宏定义 | 描述 | +| -------- | -------- | +| [SENSOR_NAME_MAX_LEN](_sensor.md#sensornamemaxlen)   32 | Sensor名称的最大长度 | +| [SENSOR_VERSION_MAX_LEN](_sensor.md#sensorversionmaxlen)   16 | Sensor版本号的最大长度 | + + +### 类型定义 + + | 类型定义 | 描述 | +| -------- | -------- | +| ([RecordDataCallback](_sensor.md#recorddatacallback)) (const struct [SensorEvents](_sensor_events.md) \*) | 传感器上报数据回调函数的定义,传感器服务用户在订阅传感器时, 需要注册上报数据回调函数,传感器使能后,传感器服务用户可以接受到传感器数据,详见[SensorInterface](_sensor_interface.md)。 [更多...](_sensor.md#recorddatacallback) | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [SensorStatus](_sensor.md#sensorstatus) {   [SENSOR_SUCCESS](_sensor.md#ggaa348cf223e558076864814ee88920ceca6fe3474c6df06ef2bd1d3fb84fc57827) = 0, [SENSOR_FAILURE](_sensor.md#ggaa348cf223e558076864814ee88920cecafc02a48cdab506c10ef1c5c66600ae71) = -1, [SENSOR_NOT_SUPPORT](_sensor.md#ggaa348cf223e558076864814ee88920cecacbf62f7bd2738d9be4b81e603c4f3bd5) = -2, [SENSOR_INVALID_PARAM](_sensor.md#ggaa348cf223e558076864814ee88920ceca0728f44385b2cb32a5c01e1370e6f2d7) = -3,   [SENSOR_INVALID_SERVICE](_sensor.md#ggaa348cf223e558076864814ee88920cecaeb19761a981ab03ce5144ed0b4c7a48c) = -4, [SENSOR_NULL_PTR](_sensor.md#p431372085818) = -5 } | 定义传感器模块返回值类型。 [更多...](_sensor.md#sensorstatus) | +| [SensorTypeTag](_sensor.md#sensortypetag) {   [SENSOR_TYPE_NONE](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a3f8e3e31e6a356192f150019309925ee) = 0, [SENSOR_TYPE_ACCELEROMETER](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5abd9779b04292b5e8054485b10fccb99c) = 1, [SENSOR_TYPE_GYROSCOPE](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5adc01250dcba5642d294f74ba4d115c28) = 2, [SENSOR_TYPE_PHOTOPLETHYSMOGRAPH](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a93f36cca60373938f2410162b16b531e) = 3,   [SENSOR_TYPE_ELECTROCARDIOGRAPH](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a2d8e52264648743ae154b99eef141607) = 4, [SENSOR_TYPE_AMBIENT_LIGHT](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a717a301be1664d4cd1ea543ca0653325) = 5, [SENSOR_TYPE_MAGNETIC_FIELD](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a74438e3f4f1f8cb1e97ccebbd1096fe8) = 6, [SENSOR_TYPE_CAPACITIVE](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a3ed11be057d851a8ee1db6d946b0e69b) = 7,   [SENSOR_TYPE_BAROMETER](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5ab9ec86561c555fe323e6a45508e20ca8) = 8, [SENSOR_TYPE_TEMPERATURE](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a1931d9687ccbd0aac063417fc0d7b4f6) = 9, [SENSOR_TYPE_HALL](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a7a343ec270d2bd5b96b4748fb4300665) = 10, [SENSOR_TYPE_GESTURE](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a875d96bbe6c91eb906e47bbda4250dfe) = 11,   [SENSOR_TYPE_PROXIMITY](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a47912cab9ef79bbe4eb20538a88ce59c) = 12, [SENSOR_TYPE_HUMIDITY](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a09fbc658c0f86f34e08513ef355870f5) = 13, [SENSOR_TYPE_MEDICAL_BEGIN](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a5e792e48a4eb7b53561af8e511dba943) = 128, [SENSOR_TYPE_MEDICAL_END](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5ad53330afd8a904e115774ffc04f2e89e) = 160,   [SENSOR_TYPE_PHYSICAL_MAX](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a618cf39cdc6bac1ffe31ba2ad488ca53) = 255, [SENSOR_TYPE_ORIENTATION](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5af2ccaca19bdabe513c45c058003ed596) = 256, [SENSOR_TYPE_GRAVITY](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5ac7d364262029cc21bc865577d5288a1e) = 257, [SENSOR_TYPE_LINEAR_ACCELERATION](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a914a1f090dcc61586318fd4eb4cb1384) = 258,   [SENSOR_TYPE_ROTATION_VECTOR](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5ac407aca03c7ce72ea55e52f40477561b) = 259, [SENSOR_TYPE_AMBIENT_TEMPERATURE](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a7d9456395f361833de2ee3ef12a1af2a) = 260, [SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a492db205ab694c3954f4b46fa6a999af) = 261, [SENSOR_TYPE_GAME_ROTATION_VECTOR](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5af8302206e90774d69fb272ee50e6607b) = 262,   [SENSOR_TYPE_GYROSCOPE_UNCALIBRATED](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5ad123a39ee0525c760755a4b40e5dc638) = 263, [SENSOR_TYPE_SIGNIFICANT_MOTION](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a3a4ce3aad51d07a5475c3fb1de90ec80) = 264, [SENSOR_TYPE_PEDOMETER_DETECTION](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a443b13dc20beadc7821db8df7682cd58) = 265, [SENSOR_TYPE_PEDOMETER](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a0cef311260d7668885a937ee1ee8d5d8) = 266,   [SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a80a8adf73ab45b0eaaeb24fa3c5351f0) = 277, [SENSOR_TYPE_HEART_RATE](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a4d4febf14d8366d19661d7b1acb5ff91) = 278, [SENSOR_TYPE_DEVICE_ORIENTATION](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a23a60d20eeedd90de69b27ffa4a764ac) = 279, [SENSOR_TYPE_WEAR_DETECTION](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a0ca37fde34accc45f3065c635480a718) = 280,   [SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a730bd9013ab8fea3bbfae66f4c6a6129) = 281, [SENSOR_TYPE_MAX](_sensor.md#p876144152111) } | 定义传感器类型标识。 [更多...](_sensor.md#sensortypetag) | +| [SensorAccuracyType](_sensor.md#sensoraccuracytype) {   [SENSOR_NO_ACCURACY](_sensor.md#gga985dcd359f32f3cdfbaecb98f1f436e7a1f1bc8e9ccbc83cb0cb107a795fd85f7) = 0, [SENSOR_LOW_ACCURACY](_sensor.md#gga985dcd359f32f3cdfbaecb98f1f436e7a6c2ad64f15e8d0ba24f8b573bc0f19ed) = 1, [SENSOR_MEDIUM_ACCURACY](_sensor.md#gga985dcd359f32f3cdfbaecb98f1f436e7a9083140f63420c7b109c5ae8f009a8dd) = 2, [SENSOR_HIGH_ACCURACY](_sensor.md#gga985dcd359f32f3cdfbaecb98f1f436e7a8a8e8f15654a31f9df91bb0561f55574) = 3,   [SENSOR_MAX_ACCURACY](_sensor.md#p945419536162) } | 传感器的精度类型。 [更多...](_sensor.md#sensoraccuracytype) | +| [SensorRangeType](_sensor.md#sensorrangetype) { [SENSOR_RANGE_LEVEL1](_sensor.md#gga4b389f271110480ce20fcc0763cf6d20a8b81d07987b7a203ef04579c60c07986) = 0, [SENSOR_RANGE_LEVEL2](_sensor.md#gga4b389f271110480ce20fcc0763cf6d20a39dd36b72a88ef8bdccdddc9225e21a1) = 1, [SENSOR_RANGE_LEVEL3](_sensor.md#gga4b389f271110480ce20fcc0763cf6d20a7fee94e695411165b4e1f7b75ce5d52e) = 2, [SENSOR_RANGE_LEVEL_MAX](_sensor.md#p165901247205) } | 传感器的量程级别。 [更多...](_sensor.md#sensorrangetype) | +| [SensorModeType](_sensor.md#sensormodetype) {   [SENSOR_MODE_DEFAULT](_sensor.md#gga066f4ffeb31a1f4cb3ed357736e0afabae36be092f02cd01eb5bf1c8ae23af73d) = 0, [SENSOR_MODE_REALTIME](_sensor.md#gga066f4ffeb31a1f4cb3ed357736e0afaba5db5e8c1a702aca7ecc751532ecfa69d) = 1, [SENSOR_MODE_ON_CHANGE](_sensor.md#gga066f4ffeb31a1f4cb3ed357736e0afaba9d264027423bdee89167c3c8f4c71322) = 2, [SENSOR_MODE_ONE_SHOT](_sensor.md#gga066f4ffeb31a1f4cb3ed357736e0afabac0967e6c4ef5004fda5f26f061fec6ee) = 3,   [SENSOR_MODE_FIFO_MODE](_sensor.md#gga066f4ffeb31a1f4cb3ed357736e0afaba3f4f9b49ae7fe1fb89cd3bff398c7f0f) = 4, [SENSOR_MODE_MAX](_sensor.md#p4932820101810) } | 传感器的工作模式。 [更多...](_sensor.md#sensormodetype) | +| [SensorGroupType](_sensor.md#sensorgrouptype) { [TRADITIONAL_SENSOR_TYPE](_sensor.md#gga588325c4c22f56d09cda6e54df0d9a6ca8cc091715416b86fd2eff0a875a76c64) = 0, [MEDICAL_SENSOR_TYPE](_sensor.md#gga588325c4c22f56d09cda6e54df0d9a6cab8f846ffbc84b2a2275a88707f350a47) = 1, [SENSOR_GROUP_TYPE_MAX](_sensor.md#gga588325c4c22f56d09cda6e54df0d9a6cafdec26032d6c10626eb07a0812fe1d94) } | 枚举传感器的硬件服务组。 [更多...](_sensor.md#sensorgrouptype) | + + +## **详细描述** + +定义传感器模块所使用的传感器类型,传感器信息,传感器数据结构等数据类型。 + +**Since:** + +2.2 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/thermal.md b/zh-cn/device-dev/api/thermal.md new file mode 100644 index 0000000000..d639a37e38 --- /dev/null +++ b/zh-cn/device-dev/api/thermal.md @@ -0,0 +1,45 @@ +# Thermal + + +## **汇总** + + +### 文件 + + | 文件 | 描述 | +| -------- | -------- | +| [IThermalCallback.idl](_i_thermal_callback_8idl.md) | 设备发热状态的回调。 | +| [IThermalInterface.idl](_i_thermal_interface_8idl.md) | 设备温度管理、控制及订阅接口。 | +| [ThermalTypes.idl](_thermal_types_8idl.md) | 设备发热状态相关的数据类型。 | + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IThermalCallback](interface_i_thermal_callback.md) | 订阅设备发热状态的回调。 [更多...](interface_i_thermal_callback.md) | +| [IThermalInterface](interface_i_thermal_interface.md) | 设备温度管理、控制及订阅接口。 [更多...](interface_i_thermal_interface.md) | +| [ThermalZoneInfo](_thermal_zone_info.md) | 设备发热的信息。 [更多...](_thermal_zone_info.md) | +| [HdfThermalCallbackInfo](_hdf_thermal_callback_info.md) | 设备发热的信息列表。 [更多...](_hdf_thermal_callback_info.md) | + + +### 变量 + + | 变量 名称 | 描述 | +| -------- | -------- | +| package ohos.hdi.thermal.v1_0 | 设备温度管理接口的包路径 | + + +## **详细描述** + +提供设备温度管理、控制及订阅接口。 + +热模块为热服务提供的设备温度管理、控制及订阅接口。 服务获取此模块的对象或代理后,可以调用相关的接口管理、控制和订阅设备温度。 + +**Since:** + +3.1 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/toctopics/____attribute____.md b/zh-cn/device-dev/api/toctopics/____attribute____.md deleted file mode 100644 index 787544c744..0000000000 --- a/zh-cn/device-dev/api/toctopics/____attribute____.md +++ /dev/null @@ -1,78 +0,0 @@ -# \_\_attribute\_\_ - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

fd

-

句柄 fd, -1代表不支持。

-

reserveInts

-

reserve数组的个数。

-

reserve [0]

-

reserve数组。

-

baseAddr

-

内存的初始地址。

-

yOffset

-

Y的偏移量。

-

uOffset

-

U的偏移量。

-

vOffset

-

V的偏移量。

-

yStride

-

Y的stride信息。

-

uvStride

-

UV的stride信息。

-

uvStep

-

UV的step信息。

-
- -## **详细描述** - -扩展数据句柄结构体定义 - -YUV描述信息结构体定义 - diff --git a/zh-cn/device-dev/api/toctopics/_alignment.md b/zh-cn/device-dev/api/toctopics/_alignment.md deleted file mode 100644 index 1f150f18e6..0000000000 --- a/zh-cn/device-dev/api/toctopics/_alignment.md +++ /dev/null @@ -1,58 +0,0 @@ -# Alignment - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

widthAlignment

-

宽的对齐值。

-

heightAlignment

-

高的对齐值。

-
- -## **详细描述** - -对齐结构定义,包含宽高的对齐值。 - -## **类成员变量说明** - -## heightAlignment - -``` -int32_t Alignment::heightAlignment -``` - -**描述:** - -高的对齐值。 - -## widthAlignment - -``` -int32_t Alignment::widthAlignment -``` - -**描述:** - -宽的对齐值。 - diff --git a/zh-cn/device-dev/api/toctopics/_alloc_info.md b/zh-cn/device-dev/api/toctopics/_alloc_info.md deleted file mode 100644 index b2b1e5f71e..0000000000 --- a/zh-cn/device-dev/api/toctopics/_alloc_info.md +++ /dev/null @@ -1,51 +0,0 @@ -# AllocInfo - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

width

-

申请内存宽度

-

height

-

申请内存高度

-

usage

-

申请内存的使用场景

-

format

-

申请内存格式

-

expectedSize

-

申请内存大小

-
- -## **详细描述** - -定义关于要分配的内存的信息。 - diff --git a/zh-cn/device-dev/api/toctopics/_audio.md b/zh-cn/device-dev/api/toctopics/_audio.md deleted file mode 100644 index df7d991c84..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio.md +++ /dev/null @@ -1,2319 +0,0 @@ -# Audio - -## **汇总** - -## 文件 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

文件

-

描述

-

audio_adapter.h

-

Audio适配器的接口定义文件

-

audio_attribute.h

-

Audio属性的接口定义文件

-

audio_capture.h

-

Audio录音的接口定义文件

-

audio_control.h

-

Audio控制的接口定义文件

-

audio_manager.h

-

Audio适配器管理及加载的接口定义文件

-

audio_render.h

-

Audio播放的接口定义文件

-

audio_scene.h

-

Audio场景的接口定义文件

-

audio_types.h

-

Audio模块接口定义中使用的自定义数据类型

-

audio_volume.h

-

Audio音量的接口定义文件

-
- -## 类 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-

描述

-

AudioAdapter

-

AudioAdapter音频适配器接口 更多...

-

AudioAttribute

-

AudioAttribute音频属性接口 更多...

-

AudioCapture

-

AudioCapture音频录音接口 更多...

-

AudioControl

-

AudioControl音频控制接口 更多...

-

AudioManager

-

AudioManager音频适配器管理接口 更多...

-

AudioRender

-

AudioRender音频播放接口 更多...

-

AudioScene

-

AudioScene音频场景接口 更多...

-

AudioPort

-

音频端口 更多...

-

AudioAdapterDescriptor

-

音频适配器描述符 更多...

-

AudioDeviceDescriptor

-

音频设备描述符 更多...

-

AudioSceneDescriptor

-

音频场景描述符 更多...

-

AudioSceneDescriptor::SceneDesc

-

音频场景描述 更多...

-

AudioSampleAttributes

-

音频采样属性 更多...

-

AudioTimeStamp

-

音频时间戳 更多...

-

AudioSubPortCapability

-

音频子端口的支持能力 更多...

-

AudioPortCapability

-

音频端口的支持能力 更多...

-

AudioMmapBufferDescripter

-

mmap缓冲区描述符 更多...

-

AudioDevExtInfo

-

音频设备拓展信息 更多...

-

AudioMixExtInfo

-

音轨拓展信息 更多...

-

AudioSessionExtInfo

-

会话拓展信息 更多...

-

AudioRouteNode

-

音频路由节点 更多...

-

AudioRoute

-

音频路由信息 更多...

-

AudioVolume

-

AudioVolume音频音量接口 更多...

-
- -## 类型定义 - - - - - - - - - - - - - -

类型定义

-

描述

-

AudioHandle

-

音频句柄

-

(RenderCallback) (enum AudioCallbackType, void *reserved, void *cookie)

-

回调函数指针 更多...

-
- -## 枚举 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举

-

描述

-

AudioPortDirection { PORT_OUT = 0x1u, PORT_IN = 0x2u, PORT_OUT_IN = 0x3u }

-

音频端口的类型 更多...

-

AudioPortPin { PIN_NONE = 0x0u, PIN_OUT_SPEAKER = 0x1u, PIN_OUT_HEADSET = 0x2u, PIN_OUT_LINEOUT = 0x4u, PIN_OUT_HDMI = 0x8u, PIN_OUT_USB = 0x10u, PIN_OUT_USB_EXT = 0x20u, PIN_IN_MIC = 0x8000001u, PIN_IN_HS_MIC = 0x8000002u, PIN_IN_LINEIN = 0x8000004u, PIN_IN_USB_EXT = 0x8000008u }

-

音频适配器端口的PIN脚 更多...

-

AudioCategory { AUDIO_IN_MEDIA = 0, AUDIO_IN_COMMUNICATION, AUDIO_IN_RINGTONE, AUDIO_IN_CALL }

-

音频类型(category) 更多...

-

AudioFormat { AUDIO_FORMAT_PCM_8_BIT = 0x1u, AUDIO_FORMAT_PCM_16_BIT = 0x2u, AUDIO_FORMAT_PCM_24_BIT = 0x3u, AUDIO_FORMAT_PCM_32_BIT = 0x4u, AUDIO_FORMAT_AAC_MAIN = 0x1000001u, AUDIO_FORMAT_AAC_LC = 0x1000002u, AUDIO_FORMAT_AAC_LD = 0x1000003u, AUDIO_FORMAT_AAC_ELD = 0x1000004u, AUDIO_FORMAT_AAC_HE_V1 = 0x1000005u, AUDIO_FORMAT_AAC_HE_V2 = 0x1000006u, AUDIO_FORMAT_G711A = 0x2000001u, AUDIO_FORMAT_G711U = 0x2000002u, AUDIO_FORMAT_G726 = 0x2000003u }

-

音频格式 更多...

-

AudioChannelMask { AUDIO_CHANNEL_FRONT_LEFT = 0x1, AUDIO_CHANNEL_FRONT_RIGHT = 0x2, AUDIO_CHANNEL_MONO = 0x1u, AUDIO_CHANNEL_STEREO = 0x3u }

-

音频通道掩码(mask) 更多...

-

AudioSampleRatesMask { AUDIO_SAMPLE_RATE_MASK_8000 = 0x1u, AUDIO_SAMPLE_RATE_MASK_12000 = 0x2u, AUDIO_SAMPLE_RATE_MASK_11025 = 0x4u, AUDIO_SAMPLE_RATE_MASK_16000 = 0x8u, AUDIO_SAMPLE_RATE_MASK_22050 = 0x10u, AUDIO_SAMPLE_RATE_MASK_24000 = 0x20u, AUDIO_SAMPLE_RATE_MASK_32000 = 0x40u, AUDIO_SAMPLE_RATE_MASK_44100 = 0x80u, AUDIO_SAMPLE_RATE_MASK_48000 = 0x100u, AUDIO_SAMPLE_RATE_MASK_64000 = 0x200u, AUDIO_SAMPLE_RATE_MASK_96000 = 0x400u, AUDIO_SAMPLE_RATE_MASK_INVALID = 0xFFFFFFFFu }

-

音频采样频率MASK 更多...

-

AudioPortPassthroughMode { PORT_PASSTHROUGH_LPCM = 0x1, PORT_PASSTHROUGH_RAW = 0x2, PORT_PASSTHROUGH_HBR2LBR = 0x4, PORT_PASSTHROUGH_AUTO = 0x8 }

-

音频端口的数据透传模式 更多...

-

AudioSampleFormat { AUDIO_SAMPLE_FORMAT_S8, AUDIO_SAMPLE_FORMAT_S8P, AUDIO_SAMPLE_FORMAT_U8, AUDIO_SAMPLE_FORMAT_U8P, AUDIO_SAMPLE_FORMAT_S16, AUDIO_SAMPLE_FORMAT_S16P, AUDIO_SAMPLE_FORMAT_U16, AUDIO_SAMPLE_FORMAT_U16P, AUDIO_SAMPLE_FORMAT_S24, AUDIO_SAMPLE_FORMAT_S24P, AUDIO_SAMPLE_FORMAT_U24, AUDIO_SAMPLE_FORMAT_U24P, AUDIO_SAMPLE_FORMAT_S32, AUDIO_SAMPLE_FORMAT_S32P, AUDIO_SAMPLE_FORMAT_U32, AUDIO_SAMPLE_FORMAT_U32P, AUDIO_SAMPLE_FORMAT_S64, AUDIO_SAMPLE_FORMAT_S64P, AUDIO_SAMPLE_FORMAT_U64, AUDIO_SAMPLE_FORMAT_U64P, AUDIO_SAMPLE_FORMAT_F32, AUDIO_SAMPLE_FORMAT_F32P, AUDIO_SAMPLE_FORMAT_F64, AUDIO_SAMPLE_FORMAT_F64P, AUDIO_SAMPLE_FMT_U8, AUDIO_SAMPLE_FMT_S16, AUDIO_SAMPLE_FMT_S32, AUDIO_SAMPLE_FMT_FLOAT, AUDIO_SAMPLE_FMT_DOUBLE, AUDIO_SAMPLE_FMT_U8P, AUDIO_SAMPLE_FMT_S16P, AUDIO_SAMPLE_FMT_S32P, AUDIO_SAMPLE_FMT_FLOATP, AUDIO_SAMPLE_FMT_DOUBLEP, AUDIO_SAMPLE_FMT_INVALID }

-

原始音频样本格式 更多...

-

AudioChannelMode { AUDIO_CHANNEL_NORMAL = 0, AUDIO_CHANNEL_BOTH_LEFT, AUDIO_CHANNEL_BOTH_RIGHT, AUDIO_CHANNEL_EXCHANGE, AUDIO_CHANNEL_MIX, AUDIO_CHANNEL_LEFT_MUTE, AUDIO_CHANNEL_RIGHT_MUTE, AUDIO_CHANNEL_BOTH_MUTE }

-

音频播放的通道模式 更多...

-

AudioDrainNotifyType { AUDIO_DRAIN_NORMAL_MODE, AUDIO_DRAIN_EARLY_MODE }

-

DrainBuffer函数结束类型 更多...

-

AudioCallbackType { AUDIO_NONBLOCK_WRITE_COMPELETED, AUDIO_DRAIN_COMPELETED, AUDIO_FLUSH_COMPLETED, AUDIO_RENDER_FULL, AUDIO_ERROR_OCCUR }

-

回调函数通知事件类型 更多...

-

AudioPortRole { AUDIO_PORT_UNASSIGNED_ROLE = 0, AUDIO_PORT_SOURCE_ROLE = 1, AUDIO_PORT_SINK_ROLE = 2 }

-

音频端口角色 更多...

-

AudioPortType { AUDIO_PORT_UNASSIGNED_TYPE = 0, AUDIO_PORT_DEVICE_TYPE = 1, AUDIO_PORT_MIX_TYPE = 2, AUDIO_PORT_SESSION_TYPE = 3 }

-

音频端口类型. 更多...

-

AudioSessionType { AUDIO_OUTPUT_STAGE_SESSION = 0, AUDIO_OUTPUT_MIX_SESSION, AUDIO_ALLOCATE_SESSION, AUDIO_INVALID_SESSION }

-

端口会话类型 更多...

-
- -## 函数 - - - - - - - - - - -

函数

-

描述

-

GetAudioManagerFuncs (void)

-

获取音频适配器管理接口的操作函数列表,详情参考AudioManager 更多...

-
- -## 变量 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

变量 名称

-

描述

-

AudioPort::dir

-

音频端口的类型。

-

AudioPort::portId

-

音频端口的ID。

-

AudioPort::portName

-

音频端口的名称。

-

AudioAdapterDescriptor::adapterName

-

音频适配器的名称。

-

AudioAdapterDescriptor::portNum

-

一个音频适配器支持的端口数目。

-

AudioAdapterDescriptor::ports

-

一个音频适配器支持的端口列表。

-

AudioDeviceDescriptor::portId

-

音频端口ID。

-

AudioDeviceDescriptor::pins

-

音频端口上的PIN脚(输出、输入)。

-

AudioDeviceDescriptor::desc

-

以字符串命名的音频设备。

-

AudioSceneDescriptor::SceneDesc::id

-

音频场景的ID。

-

AudioSceneDescriptor::SceneDesc::desc

-

以字符串命名的音频场景。

-

AudioSceneDescriptor::scene

-

音频场景的名称。

-

AudioSceneDescriptor::desc

-

音频设备描述符。

-

AudioSampleAttributes::type

-

音频类型。

-

AudioSampleAttributes::interleaved

-

音频数据交织的标记。

-

AudioSampleAttributes::format

-

音频数据格式。

-

AudioSampleAttributes::sampleRate

-

音频采样频率。

-

AudioSampleAttributes::channelCount

-

音频通道数目,如单通道(mono)为1、立体声(stereo)为2。

-

AudioSampleAttributes::period

-

音频采样周期。

-

AudioSampleAttributes::frameSize

-

音频数据的帧大小。

-

AudioSampleAttributes::isBigEndian

-

音频数据的大端标志。

-

AudioSampleAttributes::isSignedData

-

音频数据的有符号或无符号标志。

-

AudioSampleAttributes::startThreshold

-

音频渲染开始阈值。

-

AudioSampleAttributes::stopThreshold

-

音频渲染停止阈值。

-

AudioSampleAttributes::silenceThreshold

-

音频捕获缓冲区阈值。

-

AudioSampleAttributes::streamId

-

渲染或捕获的音频标识符。

-

AudioTimeStamp::tvSec

-

tvSec时间,单位:秒。

-

AudioTimeStamp::tvNSec

-

tvNSec时间,单位:纳秒。

-

AudioSubPortCapability::portId

-

子端口ID。

-

AudioSubPortCapability::desc

-

以字符串命名的子端口。

-

AudioSubPortCapability::mask

-

数据透传模式。

-

AudioPortCapability::deviceType

-

设备输出、输入类型。

-

AudioPortCapability::deviceId

-

绑定(bind)设备ID,唯一的设备识别符。

-

AudioPortCapability::hardwareMode

-

是否支持设备绑定处理。

-

AudioPortCapability::formatNum

-

支持的音频格式数目。

-

AudioPortCapability::formats

-

支持的音频格式。

-

AudioPortCapability::sampleRateMasks

-

支持的音频采样频率(8k、16k、32k、48k)。

-

AudioPortCapability::channelMasks

-

设备的声道布局掩码(mask)。

-

AudioPortCapability::channelCount

-

支持的最大声道总数。

-

AudioPortCapability::subPortsNum

-

支持的子端口数目(仅用于输出设备)。

-

AudioPortCapability::subPorts

-

支持的子端口列表。

-

AudioPortCapability::supportSampleFormatNum

-

支持的音频样本格式数量。

-

AudioPortCapability::supportSampleFormats

-

支持的音频样本格式。

-

AudioMmapBufferDescripter::memoryAddress

-

指向mmap缓冲区的指针。

-

AudioMmapBufferDescripter::memoryFd

-

mmap缓冲区的文件描述符。

-

AudioMmapBufferDescripter::totalBufferFrames

-

缓冲区总大小,单位:帧。

-

AudioMmapBufferDescripter::transferFrameSize

-

传输大小,单位:帧。

-

AudioMmapBufferDescripter::isShareable

-

mmap缓冲区是否可以在进程间共享。

-

AudioDevExtInfo::moduleId

-

音频流绑定的模块ID。

-

AudioDevExtInfo::type

-

音频端口上的PIN脚(输出、输入)。

-

AudioDevExtInfo::desc

-

地址描述。

-

AudioMixExtInfo::moduleId

-

流所属模块标识符。

-

AudioMixExtInfo::streamId

-

由调用者传递的Render或Capture标识符。

-

AudioSessionExtInfo::sessionType

-

音频会话类型。

-

AudioRouteNode::portId

-

音频端口ID。

-

AudioRouteNode::role

-

指定端口角色为sink或source。

-

AudioRouteNode::type

-

指定端口类型。

-

AudioRouteNode::device

-

设备特定信息。

-

AudioRouteNode::mix

-

音轨特定信息。

-

AudioRouteNode::session

-

会话特定信息。

-

AudioRoute::sourcesNum

-

发送端节点数量。

-

AudioRoute::sources

-

发送端列表。

-

AudioRoute::sinksNum

-

接受端节点数量。

-

AudioRoute::sinks

-

接受端列表。

-
- -## **详细描述** - -Audio模块接口定义。 - -音频接口涉及自定义类型、驱动加载接口、驱动适配器接口、音频播放(render)接口、音频录音(capture)接口等。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **类型定义说明** - -## RenderCallback - -``` -typedef int32_t(* RenderCallback) (enum AudioCallbackType, void *reserved, void *cookie) -``` - -**描述:** - -回调函数指针 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

AudioCallbackType

-

回调函数响应类型

-

reserved

-

保留字段

-

cookie

-

用于传递数据

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -RegCallback - -## **枚举类型说明** - -## AudioCallbackType - -``` -enum AudioCallbackType -``` - -**描述:** - -回调函数通知事件类型 - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

AUDIO_NONBLOCK_WRITE_COMPELETED

-

非阻塞式写完成

-

-

AUDIO_DRAIN_COMPELETED

-

DrainBuffer完成

-

-

AUDIO_FLUSH_COMPLETED

-

Flush完成

-

-

AUDIO_RENDER_FULL

-

Render缓冲区已满

-

-

AUDIO_ERROR_OCCUR

-

发生了错误

-

-
- -## AudioCategory - -``` -enum AudioCategory -``` - -**描述:** - -音频类型(category) - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

AUDIO_IN_MEDIA

-

媒体

-

-

AUDIO_IN_COMMUNICATION

-

通信

-

-

AUDIO_IN_RINGTONE

-

铃声

-

-

AUDIO_IN_CALL

-

呼叫

-

-
- -## AudioChannelMask - -``` -enum AudioChannelMask -``` - -**描述:** - -音频通道掩码(mask) - -定义音频声道的位置 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

AUDIO_CHANNEL_FRONT_LEFT

-

声道布局前左

-

-

AUDIO_CHANNEL_FRONT_RIGHT

-

声道布局前右

-

-

AUDIO_CHANNEL_MONO

-

单声道

-

-

AUDIO_CHANNEL_STEREO

-

立体声,由左右声道组成(FRONT_LEFT | FRONT_RIGHT)

-

-
- -## AudioChannelMode - -``` -enum AudioChannelMode -``` - -**描述:** - -音频播放的通道模式 - ->![](../public_sys-resources/icon-notice.gif) **须知:** ->下面的模式是针对双通道立体声的音频播放而设置,其他不支持。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

AUDIO_CHANNEL_NORMAL

-

正常模式,不做处理

-

-

AUDIO_CHANNEL_BOTH_LEFT

-

两个声道全部为左声道声音

-

-

AUDIO_CHANNEL_BOTH_RIGHT

-

两个声道全部为右声道声音

-

-

AUDIO_CHANNEL_EXCHANGE

-

左右声道数据互换,左声道为右声道声音,右声道为左声道声音

-

-

AUDIO_CHANNEL_MIX

-

左右两个声道输出为左右声道相加(混音)

-

-

AUDIO_CHANNEL_LEFT_MUTE

-

左声道静音,右声道播放原右声道声音

-

-

AUDIO_CHANNEL_RIGHT_MUTE

-

右声道静音,左声道播放原左声道声音

-

-

AUDIO_CHANNEL_BOTH_MUTE

-

左右声道均静音

-

-
- -## AudioDrainNotifyType - -``` -enum AudioDrainNotifyType -``` - -**描述:** - -DrainBuffer函数结束类型 - - - - - - - - - - - - - -

枚举值

-

描述

-

AUDIO_DRAIN_NORMAL_MODE

-

DrainBuffer在所有数据播放结束后返回

-

-

AUDIO_DRAIN_EARLY_MODE

-

DrainBuffer()在当前曲目的所有数据播放完之前返回,以便留出时间给音频服务做连续性曲目切换

-

-
- -## AudioFormat - -``` -enum AudioFormat -``` - -**描述:** - -音频格式 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

AUDIO_FORMAT_PCM_8_BIT

-

8bit位宽pcm格式

-

-

AUDIO_FORMAT_PCM_16_BIT

-

16bit位宽pcm格式

-

-

AUDIO_FORMAT_PCM_24_BIT

-

24bit位宽pcm格式

-

-

AUDIO_FORMAT_PCM_32_BIT

-

32bit位宽pcm格式

-

-

AUDIO_FORMAT_AAC_MAIN

-

AAC MAIN格式

-

-

AUDIO_FORMAT_AAC_LC

-

AAC LC格式

-

-

AUDIO_FORMAT_AAC_LD

-

AAC LD格式

-

-

AUDIO_FORMAT_AAC_ELD

-

AAC ELD格式

-

-

AUDIO_FORMAT_AAC_HE_V1

-

AAC HE_V1格式

-

-

AUDIO_FORMAT_AAC_HE_V2

-

AAC HE_V2格式

-

-

AUDIO_FORMAT_G711A

-

G711A格式

-

-

AUDIO_FORMAT_G711U

-

G711u格式

-

-

AUDIO_FORMAT_G726

-

G726格式

-

-
- -## AudioPortDirection - -``` -enum AudioPortDirection -``` - -**描述:** - -音频端口的类型 - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

PORT_OUT

-

音频输出端口。

-

-

PORT_IN

-

音频输入端口。

-

-

PORT_OUT_IN

-

音频输出/入端口,同时支持输出和输入能力(OUT | IN)。

-

-
- -## AudioPortPassthroughMode - -``` -enum AudioPortPassthroughMode -``` - -**描述:** - -音频端口的数据透传模式 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

PORT_PASSTHROUGH_LPCM

-

立体声pcm

-

-

PORT_PASSTHROUGH_RAW

-

HDMI透传

-

-

PORT_PASSTHROUGH_HBR2LBR

-

蓝光次世代音频降规格输出

-

-

PORT_PASSTHROUGH_AUTO

-

根据HDMI EDID能力自动匹配

-

-
- -## AudioPortPin - -``` -enum AudioPortPin -``` - -**描述:** - -音频适配器端口的PIN脚 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

PIN_NONE

-

无效PIN

-

-

PIN_OUT_SPEAKER

-

喇叭输出

-

-

PIN_OUT_HEADSET

-

有线耳机输出

-

-

PIN_OUT_LINEOUT

-

Lineout输出

-

-

PIN_OUT_HDMI

-

HDMI输出

-

-

PIN_OUT_USB

-

USB设备输出

-

-

PIN_OUT_USB_EXT

-

扩展 USB 设备输出

-

-

PIN_IN_MIC

-

Mic输入

-

-

PIN_IN_HS_MIC

-

有线耳机Mic输入

-

-

PIN_IN_LINEIN

-

Linein输入

-

-

PIN_IN_USB_EXT

-

扩展 USB 设备输入

-

-
- -## AudioPortRole - -``` -enum AudioPortRole -``` - -**描述:** - -音频端口角色 - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

AUDIO_PORT_UNASSIGNED_ROLE

-

未指定端口角色

-

-

AUDIO_PORT_SOURCE_ROLE

-

指定端口为发送端角色

-

-

AUDIO_PORT_SINK_ROLE

-

指定端口为接受端角色

-

-
- -## AudioPortType - -``` -enum AudioPortType -``` - -**描述:** - -音频端口类型。 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

AUDIO_PORT_UNASSIGNED_TYPE

-

未指定端口类型

-

-

AUDIO_PORT_DEVICE_TYPE

-

指定端口为设备类型

-

-

AUDIO_PORT_MIX_TYPE

-

指定端口类型为复合类型

-

-

AUDIO_PORT_SESSION_TYPE

-

指定端口为会话类型

-

-
- -## AudioSampleFormat - -``` -enum AudioSampleFormat -``` - -**描述:** - -原始音频样本格式 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

AUDIO_SAMPLE_FORMAT_S8

-

8bit位宽有符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_S8P

-

8bit位宽有符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_U8

-

8bit位宽无符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_U8P

-

8bit位宽无符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_S16

-

16bit位宽有符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_S16P

-

16bit位宽有符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_U16

-

16bit位宽无符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_U16P

-

16bit位宽无符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_S24

-

24bit位宽有符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_S24P

-

24bit位宽有符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_U24

-

24bit位宽无符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_U24P

-

24bit位宽无符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_S32

-

32bit位宽有符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_S32P

-

32bit位宽有符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_U32

-

32bit位宽无符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_U32P

-

32bit位宽无符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_S64

-

64bit位宽有符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_S64P

-

64bit位宽有符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_U64

-

64bit位宽无符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_U64P

-

64bit位宽无符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_F32

-

32bit位宽浮点型交织样本

-

-

AUDIO_SAMPLE_FORMAT_F32P

-

64bit位宽浮点型非交织样本

-

-

AUDIO_SAMPLE_FORMAT_F64

-

64bit位宽双精度浮点型交织样本

-

-

AUDIO_SAMPLE_FORMAT_F64P

-

64bit位宽双精度浮点型非交织样本

-

-

AUDIO_SAMPLE_FMT_U8

-

无符号8位整型,打包格式

-

-

AUDIO_SAMPLE_FMT_S16

-

带符号16位整型,打包格式

-

-

AUDIO_SAMPLE_FMT_S32

-

带符号32位整型,打包格式

-

-

AUDIO_SAMPLE_FMT_FLOAT

-

浮点型,打包格式

-

-

AUDIO_SAMPLE_FMT_DOUBLE

-

双精度浮点型,打包格式

-

-

AUDIO_SAMPLE_FMT_U8P

-

无符号8位整型,平面格式

-

-

AUDIO_SAMPLE_FMT_S16P

-

带符号16位整型,平面格式

-

-

AUDIO_SAMPLE_FMT_S32P

-

带符号32位整型,平面格式

-

-

AUDIO_SAMPLE_FMT_FLOATP

-

浮点型,平面格式

-

-

AUDIO_SAMPLE_FMT_DOUBLEP

-

双精度浮点型,平面格式

-

-

AUDIO_SAMPLE_FMT_INVALID

-

无效采样格式

-

-
- -## AudioSampleRatesMask - -``` -enum AudioSampleRatesMask -``` - -**描述:** - -音频采样频率MASK - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

AUDIO_SAMPLE_RATE_MASK_8000

-

8K 采样频率

-

-

AUDIO_SAMPLE_RATE_MASK_12000

-

12K 采样频率

-

-

AUDIO_SAMPLE_RATE_MASK_11025

-

11.025K 采样频率

-

-

AUDIO_SAMPLE_RATE_MASK_16000

-

16K 采样频率

-

-

AUDIO_SAMPLE_RATE_MASK_22050

-

22.050K 采样频率

-

-

AUDIO_SAMPLE_RATE_MASK_24000

-

24K 采样频率

-

-

AUDIO_SAMPLE_RATE_MASK_32000

-

32K 采样频率

-

-

AUDIO_SAMPLE_RATE_MASK_44100

-

44.1K 采样频率

-

-

AUDIO_SAMPLE_RATE_MASK_48000

-

48K 采样频率

-

-

AUDIO_SAMPLE_RATE_MASK_64000

-

64K 采样频率

-

-

AUDIO_SAMPLE_RATE_MASK_96000

-

96K 采样频率

-

-

AUDIO_SAMPLE_RATE_MASK_INVALID

-

无效的采样频率

-

-
- -## AudioSessionType - -``` -enum AudioSessionType -``` - -**描述:** - -端口会话类型 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

AUDIO_OUTPUT_STAGE_SESSION

-

会话绑定到指定输出流

-

-

AUDIO_OUTPUT_MIX_SESSION

-

会话绑定到特定音轨

-

-

AUDIO_ALLOCATE_SESSION

-

会话ID需重新申请

-

-

AUDIO_INVALID_SESSION

-

无效会话类型

-

-
- -## **函数说明** - -## GetAudioManagerFuncs\(\) - -``` -struct AudioManager* GetAudioManagerFuncs (void ) -``` - -**描述:** - -获取音频适配器管理接口的操作函数列表,详情参考[AudioManager](_audio_manager.md)。 - -**返回:** - -成功返回一个音频适配器管理接口的对象,失败返回NULL。 - -## **变量说明** - -## adapterName - -``` -const char* AudioAdapterDescriptor::adapterName -``` - -**描述:** - -音频适配器的名称。 - -## channelCount \[1/2\] - -``` -uint32_t AudioSampleAttributes::channelCount -``` - -**描述:** - -音频通道数目,如单通道(mono)为1、立体声(stereo)为2。 - -## channelCount \[2/2\] - -``` -unsigned int AudioPortCapability::channelCount -``` - -**描述:** - -支持的最大声道总数。 - -## channelMasks - -``` -enum AudioChannelMask AudioPortCapability::channelMasks -``` - -**描述:** - -设备的声道布局掩码(mask),详情参考[AudioChannelMask](_audio.md#ga137eb03027d5947ea294b32f5095b83c)。 - -## desc \[1/5\] - -``` -const char* AudioDeviceDescriptor::desc -``` - -**描述:** - -以字符串命名的音频设备。 - -## desc \[2/5\] - -``` -struct AudioDeviceDescriptor AudioSceneDescriptor::desc -``` - -**描述:** - -音频设备描述符。 - -## desc \[3/5\] - -``` -const char* AudioSceneDescriptor::SceneDesc::desc -``` - -**描述:** - -以字符串命名的音频场景。 - -## desc \[4/5\] - -``` -const char* AudioSubPortCapability::desc -``` - -**描述:** - -以字符串命名的子端口。 - -## desc \[5/5\] - -``` -const char* AudioDevExtInfo::desc -``` - -**描述:** - -地址描述。 - -## deviceId - -``` -unsigned int AudioPortCapability::deviceId -``` - -**描述:** - -绑定(bind)设备ID,唯一的设备识别符。 - -## deviceType - -``` -unsigned int AudioPortCapability::deviceType -``` - -**描述:** - -设备输出、输入类型。 - -## dir - -``` -enum AudioPortDirection AudioPort::dir -``` - -**描述:** - -音频端口的类型,详情参考[AudioPortDirection](_audio.md#ga68ff7140b15790debbac4bbc62f8e9f8)。 - -## format - -``` -enum AudioFormat AudioSampleAttributes::format -``` - -**描述:** - -音频数据格式,详情参考[AudioFormat](_audio.md#ga98d5d077cca088ddf77314871474fe59)。 - -## formatNum - -``` -unsigned int AudioPortCapability::formatNum -``` - -**描述:** - -支持的音频格式数目。 - -## formats - -``` -enum AudioFormat* AudioPortCapability::formats -``` - -**描述:** - -支持的音频格式,详情参考[AudioFormat](_audio.md#ga98d5d077cca088ddf77314871474fe59)。 - -## frameSize - -``` -uint32_t AudioSampleAttributes::frameSize -``` - -**描述:** - -音频数据的帧大小。 - -## hardwareMode - -``` -bool AudioPortCapability::hardwareMode -``` - -**描述:** - -是否支持设备绑定处理。 - -## id - -``` -unsigned int AudioSceneDescriptor::SceneDesc::id -``` - -**描述:** - -音频场景的ID。 - -## interleaved - -``` -bool AudioSampleAttributes::interleaved -``` - -**描述:** - -音频数据交织的标记。 - -## isBigEndian - -``` -bool AudioSampleAttributes::isBigEndian -``` - -**描述:** - -音频数据的大端标志。 - -## isShareable - -``` -int32_t AudioMmapBufferDescripter::isShareable -``` - -**描述:** - -mmap缓冲区是否可以在进程间共享。 - -## isSignedData - -``` -bool AudioSampleAttributes::isSignedData -``` - -**描述:** - -音频数据的有符号或无符号标志 - -## mask - -``` -enum AudioPortPassthroughMode AudioSubPortCapability::mask -``` - -**描述:** - -数据透传模式,详情参考[AudioPortPassthroughMode](_audio.md#ga186d2d4f9a2ecacb80cd2cce2bd26f0e)。 - -## memoryAddress - -``` -void* AudioMmapBufferDescripter::memoryAddress -``` - -**描述:** - -指向mmap缓冲区的指针。 - -## memoryFd - -``` -int32_t AudioMmapBufferDescripter::memoryFd -``` - -**描述:** - -mmap缓冲区的文件描述符。 - -## moduleId \[1/2\] - -``` -int32_t AudioDevExtInfo::moduleId -``` - -**描述:** - -音频流绑定的模块ID。 - -## moduleId \[2/2\] - -``` -int32_t AudioMixExtInfo::moduleId -``` - -**描述:** - -流所属模块标识符。 - -## period - -``` -uint32_t AudioSampleAttributes::period -``` - -**描述:** - -音频采样周期。 - -## pins - -``` -enum AudioPortPin AudioDeviceDescriptor::pins -``` - -**描述:** - -音频端口上的PIN脚(输出、输入),详情参考[AudioPortPin](_audio.md#gaa7114aeeccf3ac4f5f7e1d880bcfa835)。 - -## portId \[1/4\] - -``` -unsigned int AudioPort::portId -``` - -**描述:** - -音频端口的ID。 - -## portId \[2/4\] - -``` -unsigned int AudioDeviceDescriptor::portId -``` - -**描述:** - -音频端口ID。 - -## portId \[3/4\] - -``` -unsigned int AudioSubPortCapability::portId -``` - -**描述:** - -子端口ID。 - -## portId \[4/4\] - -``` -int32_t AudioRouteNode::portId -``` - -**描述:** - -音频端口ID。 - -## portName - -``` -const char* AudioPort::portName -``` - -**描述:** - -音频端口的名称。 - -## portNum - -``` -unsigned int AudioAdapterDescriptor::portNum -``` - -**描述:** - -一个音频适配器支持的端口数目。 - -## ports - -``` -struct AudioPort* AudioAdapterDescriptor::ports -``` - -**描述:** - -一个音频适配器支持的端口列表。 - -## role - -``` -enum AudioPortRole AudioRouteNode::role -``` - -**描述:** - -指定端口角色为sink或source。 - -## sampleRate - -``` -unsigned int AudioSampleAttributes::sampleRate -``` - -**描述:** - -音频采样频率。 - -## sampleRateMasks - -``` -unsigned int AudioPortCapability::sampleRateMasks -``` - -**描述:** - -支持的音频采样频率(8k、16k、32k、48k)。 - -## scene - -``` -union AudioSceneDescriptor::SceneDesc AudioSceneDescriptor::scene -``` - -**描述:** - -音频场景的名称。 - -## sessionType - -``` -enum AudioSessionType AudioSessionExtInfo::sessionType -``` - -**描述:** - -音频会话类型。 - -## silenceThreshold - -``` -uint32_t AudioSampleAttributes::silenceThreshold -``` - -**描述:** - -音频捕获缓冲区阈值。 - -## sinks - -``` -const struct AudioRouteNode* AudioRoute::sinks -``` - -**描述:** - -接受端列表。 - -## sinksNum - -``` -uint32_t AudioRoute::sinksNum -``` - -**描述:** - -接受端节点数量。 - -## sources - -``` -const struct AudioRouteNode* AudioRoute::sources -``` - -**描述:** - -发送端列表。 - -## sourcesNum - -``` -uint32_t AudioRoute::sourcesNum -``` - -**描述:** - -发送端节点数量。 - -## startThreshold - -``` -uint32_t AudioSampleAttributes::startThreshold -``` - -**描述:** - -音频渲染开始阈值。 - -## stopThreshold - -``` -uint32_t AudioSampleAttributes::stopThreshold -``` - -**描述:** - -音频渲染停止阈值。 - -## streamId \[1/2\] - -``` -int32_t AudioSampleAttributes::streamId -``` - -**描述:** - -渲染或捕获的音频标识符。 - -## streamId \[2/2\] - -``` -int32_t AudioMixExtInfo::streamId -``` - -**描述:** - -由调用者传递的Render或Capture标识符。 - -## subPorts - -``` -struct AudioSubPortCapability* AudioPortCapability::subPorts -``` - -**描述:** - -支持的子端口列表。 - -## subPortsNum - -``` -unsigned int AudioPortCapability::subPortsNum -``` - -**描述:** - -支持的子端口数目(仅用于输出设备)。 - -## supportSampleFormatNum - -``` -uint32_t AudioPortCapability::supportSampleFormatNum -``` - -**描述:** - -支持的音频样本格式数量。 - -## supportSampleFormats - -``` -enum AudioSampleFormat* AudioPortCapability::supportSampleFormats -``` - -**描述:** - -支持的音频样本格式,详请参考[AudioSampleFormat](_codec.md#ga97cfd5633b2133e7ebe42dbb9b03e757)。 - -## totalBufferFrames - -``` -int32_t AudioMmapBufferDescripter::totalBufferFrames -``` - -**描述:** - -缓冲区总大小,单位:帧。 - -## transferFrameSize - -``` -int32_t AudioMmapBufferDescripter::transferFrameSize -``` - -**描述:** - -传输大小,单位:帧。 - -## tvNSec - -``` -int64_t AudioTimeStamp::tvNSec -``` - -**描述:** - -tvNSec时间,单位:纳秒。 - -## tvSec - -``` -int64_t AudioTimeStamp::tvSec -``` - -**描述:** - -tvSec时间,单位:秒。 - -## type \[1/3\] - -``` -enum AudioCategory AudioSampleAttributes::type -``` - -**描述:** - -音频类型,详情参考[AudioCategory](_audio.md#gaf210d41d152890f3aaf2aaac99bd28d5)。 - -## type \[2/3\] - -``` -enum AudioPortPin AudioDevExtInfo::type -``` - -**描述:** - -音频端口上的PIN脚(输出、输入),详情参考[AudioPortPin](_audio.md#gaa7114aeeccf3ac4f5f7e1d880bcfa835)。 - -## type \[3/3\] - -``` -enum AudioPortType AudioRouteNode::type -``` - -**描述:** - -指定端口类型。 - -## device - -``` - struct AudioDevExtInfo AudioRouteNode::device -``` - -**描述:** - -设备特定信息。 - -## mix - -``` - struct AudioMixExtInfo AudioRouteNode::mix -``` - -**描述:** - -音轨特定信息。 - -## session - -``` - struct AudioSessionExtInfo AudioRouteNode::session -``` - -**描述:** - -会话特定信息。 - diff --git a/zh-cn/device-dev/api/toctopics/_audio_adapter.md b/zh-cn/device-dev/api/toctopics/_audio_adapter.md deleted file mode 100644 index 6f9ef63af6..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_adapter.md +++ /dev/null @@ -1,527 +0,0 @@ -# AudioAdapter - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

( InitAllPorts )(struct AudioAdapter *adapter)

-

初始化一个音频适配器所有的端口驱动 更多...

-

( CreateRender )(struct AudioAdapter *adapter, const struct AudioDeviceDescriptor *desc, const struct AudioSampleAttributes *attrs, struct AudioRender **render)

-

创建一个音频播放(render)接口的对象 更多...

-

( DestroyRender )(struct AudioAdapter *adapter, struct AudioRender *render)

-

销毁一个音频播放(render)接口的对象 更多...

-

( CreateCapture )(struct AudioAdapter *adapter, const struct AudioDeviceDescriptor *desc, const struct AudioSampleAttributes *attrs, struct AudioCapture **capture)

-

创建一个音频录音(capture)接口的对象 更多...

-

( DestroyCapture )(struct AudioAdapter *adapter, struct AudioCapture *capture)

-

销毁一个音频录音(capture)接口的对象 更多...

-

( GetPortCapability )(struct AudioAdapter *adapter, struct AudioPort *port, struct AudioPortCapability *capability)

-

获取一个音频适配器的端口驱动的能力集 更多...

-

( SetPassthroughMode )(struct AudioAdapter *adapter, struct AudioPort *port, enum AudioPortPassthroughMode mode)

-

设置音频端口驱动的数据透传模式 更多...

-

( GetPassthroughMode )(struct AudioAdapter *adapter, struct AudioPort *port, enum AudioPortPassthroughMode *mode)

-

获取音频端口驱动的数据透传模式 更多...

-

( UpdateAudioRoute )(struct AudioAdapter *adapter, const struct AudioRoute *route, int32_t *routeHandle)

-

更新一个或多个发送端和接受端之间的路由 更多...

-

( ReleaseAudioRoute )(struct AudioAdapter *adapter, int32_t routeHandle)

-

释放一个音频路由. 更多...

-
- -## **详细描述** - -AudioAdapter音频适配器接口 - -提供音频适配器(声卡)对外支持的驱动能力,包括初始化端口、创建render、创建capture、获取端口能力集等 - -**参见:** - -[AudioRender](_audio_render.md) - -[AudioCapture](_audio_capture.md) - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **类成员变量说明** - -## CreateCapture - -``` -int32_t(* AudioAdapter::CreateCapture) (struct AudioAdapter *adapter, const struct AudioDeviceDescriptor *desc, const struct AudioSampleAttributes *attrs, struct AudioCapture **capture) -``` - -**描述:** - -创建一个音频录音(capture)接口的对象 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

adapter

-

待操作的音频适配器的指针

-

desc

-

指向要启动的音频适配器的描述符的指针

-

attrs

-

指向要打开的音频采样属性的指针

-

capture

-

指向AudioCapture对象的二级指针

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[GetPortCapability](_audio_adapter.md#a8f86fe208c18df58654f183f5b440f1f) - -[DestroyCapture](_audio_adapter.md#a1175a27c5273dab1acf8f8f3c4967637) - -## CreateRender - -``` -int32_t(* AudioAdapter::CreateRender) (struct AudioAdapter *adapter, const struct AudioDeviceDescriptor *desc, const struct AudioSampleAttributes *attrs, struct AudioRender **render) -``` - -**描述:** - -创建一个音频播放(render)接口的对象 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

adapter

-

待操作的音频适配器对象

-

desc

-

待打开的音频设备描述符

-

attrs

-

待打开的音频采样属性

-

render

-

获取的音频播放接口的对象实例保存到render中

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[GetPortCapability](_audio_adapter.md#a8f86fe208c18df58654f183f5b440f1f) - -[DestroyRender](_audio_adapter.md#a070a8d60f88134c58c4439d4419af913) - -## DestroyCapture - -``` -int32_t(* AudioAdapter::DestroyCapture) (struct AudioAdapter *adapter, struct AudioCapture *capture) -``` - -**描述:** - -销毁一个音频录音(capture)接口的对象 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

adapter

-

待操作的音频适配器对象

-

capture

-

待操作的音频录音接口对象

-
- -**注意:** - -在音频录音过程中,不能销毁该接口对象 - -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[CreateCapture](_audio_adapter.md#a8a46358cdad8e0a9d15ac079713535f2) - -## DestroyRender - -``` -int32_t(* AudioAdapter::DestroyRender) (struct AudioAdapter *adapter, struct AudioRender *render) -``` - -**描述:** - -销毁一个音频播放(render)接口的对象 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

adapter

-

待操作的音频适配器对象

-

render

-

待操作的音频播放接口对象

-
- -**注意:** - -在音频播放过程中,不能销毁该接口对象 - -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[CreateRender](_audio_adapter.md#a284ea2ad18ebac562ca7283652e61b50) - -## GetPassthroughMode - -``` -int(* AudioAdapter::GetPassthroughMode) (struct AudioAdapter *adapter, struct AudioPort *port, enum AudioPortPassthroughMode *mode) -``` - -**描述:** - -获取音频端口驱动的数据透传模式 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

adapter

-

待操作的音频适配器对象

-

port

-

待获取的端口

-

mode

-

获取的传输模式保存到mode中

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[SetPassthroughMode](_audio_adapter.md#a115fb7b21a1fe1b8412d24c380717bde) - -## GetPortCapability - -``` -int(* AudioAdapter::GetPortCapability) (struct AudioAdapter *adapter, struct AudioPort *port, struct AudioPortCapability *capability) -``` - -**描述:** - -获取一个音频适配器的端口驱动的能力集 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

adapter

-

待操作的音频适配器对象

-

port

-

待获取的端口

-

capability

-

获取的端口能力保存到capability中

-
- -**返回:** - -成功返回值0,失败返回负值 - -## InitAllPorts - -``` -int(* AudioAdapter::InitAllPorts) (struct AudioAdapter *adapter) -``` - -**描述:** - -初始化一个音频适配器所有的端口驱动 - -在音频服务中,调用其他驱动接口前需要首先调用该接口检查端口是否已经初始化完成,如果端口驱动初始化完成,则函数返回值0, 否则返回负值,如果端口没有初始化完成,则需要等待一段时间(例如100ms)后重新进行检查,直到端口初始化完成后再继续操作 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

adapter

-

待操作的音频适配器对象

-
- -**返回:** - -成功返回值0,失败返回负值 - -## ReleaseAudioRoute - -``` -int32_t(* AudioAdapter::ReleaseAudioRoute) (struct AudioAdapter *adapter, int32_t routeHandle) -``` - -**描述:** - -释放一个音频路由. - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

adapter

-

待操作的音频适配器对象

-

routeHandle

-

待释放的路由句柄.

-
- -**返回:** - -成功返回值0,失败返回负值 - -## SetPassthroughMode - -``` -int(* AudioAdapter::SetPassthroughMode) (struct AudioAdapter *adapter, struct AudioPort *port, enum AudioPortPassthroughMode mode) -``` - -**描述:** - -设置音频端口驱动的数据透传模式 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

adapter

-

待操作的音频适配器对象

-

port

-

待设置的端口

-

mode

-

待设置的传输模式

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[GetPassthroughMode](_audio_adapter.md#abd8f7f086993cb4ce34d01190db6cc11) - -## UpdateAudioRoute - -``` -int32_t(* AudioAdapter::UpdateAudioRoute) (struct AudioAdapter *adapter, const struct AudioRoute *route, int32_t *routeHandle) -``` - -**描述:** - -更新一个或多个发送端和接受端之间的路由 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

adapter

-

待操作的音频适配器对象

-

route

-

路由信息

-

routeHandle

-

生成的路由句柄

-
- -**返回:** - -成功返回值0,失败返回负值 - diff --git a/zh-cn/device-dev/api/toctopics/_audio_adapter_descriptor.md b/zh-cn/device-dev/api/toctopics/_audio_adapter_descriptor.md deleted file mode 100644 index e099ef9867..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_adapter_descriptor.md +++ /dev/null @@ -1,41 +0,0 @@ -# AudioAdapterDescriptor - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

adapterName

-

音频适配器的名称。

-

portNum

-

一个音频适配器支持的端口数目。

-

ports

-

一个音频适配器支持的端口列表。

-
- -## **详细描述** - -音频适配器描述符。 - diff --git a/zh-cn/device-dev/api/toctopics/_audio_attribute.md b/zh-cn/device-dev/api/toctopics/_audio_attribute.md deleted file mode 100644 index 20f30a4395..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_attribute.md +++ /dev/null @@ -1,427 +0,0 @@ -# AudioAttribute - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

( GetFrameSize )(AudioHandle handle, uint64_t *size)

-

获取音频帧(frame)的大小 更多...

-

( GetFrameCount )(AudioHandle handle, uint64_t *count)

-

获取音频buffer中的音频帧数 更多...

-

( SetSampleAttributes )(AudioHandle handle, const struct AudioSampleAttributes *attrs)

-

设置音频采样的属性参数 更多...

-

( GetSampleAttributes )(AudioHandle handle, struct AudioSampleAttributes *attrs)

-

获取音频采样的属性参数 更多...

-

( GetCurrentChannelId )(AudioHandle handle, uint32_t *channelId)

-

获取音频的数据通道ID 更多...

-

( SetExtraParams )(AudioHandle handle, const char *keyValueList)

-

设置音频拓展参数 更多...

-

( GetExtraParams )(AudioHandle handle, char *keyValueList)

-

获取音频拓展参数 更多...

-

( ReqMmapBuffer )(AudioHandle handle, int32_t reqSize, struct AudioMmapBufferDescripter *desc)

-

请求mmap缓冲区 更多...

-

( GetMmapPosition )(AudioHandle handle, uint64_t *frames, struct AudioTimeStamp *time)

-

获取当前mmap的读/写位置 更多...

-
- -## **详细描述** - -AudioAttribute音频属性接口 - -提供音频播放(render)或录音(capture)需要的公共属性驱动能力,包括获取帧(frame)信息、设置采样属性等。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **类成员变量说明** - -## GetCurrentChannelId - -``` -int32_t(* AudioAttribute::GetCurrentChannelId) (AudioHandle handle, uint32_t *channelId) -``` - -**描述:** - -获取音频的数据通道ID - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

channelId

-

获取的通道ID保存到channelId中

-
- -**返回:** - -成功返回值0,失败返回负值 - -## GetExtraParams - -``` -int32_t(* AudioAttribute::GetExtraParams) (AudioHandle handle, char *keyValueList) -``` - -**描述:** - -获取音频拓展参数。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

keyValueList

-

拓展参数键值对字符串列表,格式为key=value,多个键值对通过分号分割

-
- -**返回:** - -成功返回值0,失败返回负值。 - -## GetFrameCount - -``` -int32_t(* AudioAttribute::GetFrameCount) (AudioHandle handle, uint64_t *count) -``` - -**描述:** - -获取音频buffer中的音频帧数。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

count

-

一个音频buffer中包含的音频帧数,获取后保存到count中

-
- -**返回:** - -成功返回值0,失败返回负值 - -## GetFrameSize - -``` -int32_t(* AudioAttribute::GetFrameSize) (AudioHandle handle, uint64_t *size) -``` - -**描述:** - -获取音频帧(frame)的大小 - -获取一帧音频数据的长度(字节数) - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

size

-

获取的音频帧大小(字节数)保存到size中

-
- -**返回:** - -成功返回值0,失败返回负值 - -## GetMmapPosition - -``` -int32_t(* AudioAttribute::GetMmapPosition) (AudioHandle handle, uint64_t *frames, struct AudioTimeStamp *time) -``` - -**描述:** - -获取当前mmap的读/写位置 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

frames

-

获取的音频帧计数保存到frames中

-

time

-

获取的关联时间戳保存到time中

-
- -**返回:** - -成功返回值0,失败返回负值 - -## GetSampleAttributes - -``` -int32_t(* AudioAttribute::GetSampleAttributes) (AudioHandle handle, struct AudioSampleAttributes *attrs) -``` - -**描述:** - -获取音频采样的属性参数。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

attrs

-

获取的音频采样属性(例如采样频率、采样精度、通道)保存到attrs中

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[SetSampleAttributes](_audio_attribute.md#a502fe4e4b97cd253244debcc67d45c4d) - -## ReqMmapBuffer - -``` -int32_t(* AudioAttribute::ReqMmapBuffer) (AudioHandle handle, int32_t reqSize, struct AudioMmapBufferDescripter *desc) -``` - -**描述:** - -请求mmap缓冲区 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

reqSize

-

请求缓冲区的大小

-

desc

-

缓冲区描述符

-
- -**返回:** - -成功返回值0,失败返回负值 - -## SetExtraParams - -``` -int32_t(* AudioAttribute::SetExtraParams) (AudioHandle handle, const char *keyValueList) -``` - -**描述:** - -设置音频拓展参数。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

keyValueList

-

拓展参数键值对字符串列表,格式为key=value,多个键值对通过分号分割

-
- -**返回:** - -成功返回值0,失败返回负值 - -## SetSampleAttributes - -``` -int32_t(* AudioAttribute::SetSampleAttributes) (AudioHandle handle, const struct AudioSampleAttributes *attrs) -``` - -**描述:** - -设置音频采样的属性参数。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

attrs

-

待设置的音频采样属性,例如采样频率、采样精度、通道

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[GetSampleAttributes](_audio_attribute.md#a2f92d8704ef677a07d664c33342e4318) - diff --git a/zh-cn/device-dev/api/toctopics/_audio_capture.md b/zh-cn/device-dev/api/toctopics/_audio_capture.md deleted file mode 100644 index 381b0738cb..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_capture.md +++ /dev/null @@ -1,149 +0,0 @@ -# AudioCapture - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

control

-

音频控制能力接口,详情参考AudioControl

-

attr

-

音频属性能力接口,详情参考AudioAttribute

-

scene

-

音频场景能力接口,详情参考AudioScene

-

volume

-

音频音量能力接口,详情参考AudioVolume

-

( CaptureFrame )(struct AudioCapture *capture, void *frame, uint64_t requestBytes, uint64_t *replyBytes)

-

从音频驱动中录制(capture)一帧输入数据(录音,音频上行数据) 更多...

-

( GetCapturePosition )(struct AudioCapture *capture, uint64_t *frames, struct AudioTimeStamp *time)

-

获取音频输入帧数的上一次计数 更多...

-
- -## **详细描述** - -AudioCapture音频录音接口。 - -## **类成员变量说明** - -## CaptureFrame - -``` -int32_t(* AudioCapture::CaptureFrame) (struct AudioCapture *capture, void *frame, uint64_t requestBytes, uint64_t *replyBytes) -``` - -**描述:** - -从音频驱动中录制(capture)一帧输入数据(录音,音频上行数据) - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

capture

-

待操作的音频录音接口对象

-

frame

-

待存放输入数据的音频frame

-

requestBytes

-

待存放输入数据的音频frame大小(字节数)

-

replyBytes

-

实际读取到的音频数据长度(字节数),获取后保存到replyBytes中

-
- -**返回:** - -成功返回值0,失败返回负值 - -## GetCapturePosition - -``` -int32_t(* AudioCapture::GetCapturePosition) (struct AudioCapture *capture, uint64_t *frames, struct AudioTimeStamp *time) -``` - -**描述:** - -获取音频输入帧数的上一次计数 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

capture

-

待操作的音频录音接口对象

-

frames

-

获取的音频帧计数保存到frames中

-

time

-

获取的关联时间戳保存到time中

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[CaptureFrame](_audio_capture.md#a89f1baf4b6177f91b9135e86cc8681da) - diff --git a/zh-cn/device-dev/api/toctopics/_audio_control.md b/zh-cn/device-dev/api/toctopics/_audio_control.md deleted file mode 100644 index 38693eebd7..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_control.md +++ /dev/null @@ -1,316 +0,0 @@ -# AudioControl - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

( Start )(AudioHandle handle)

-

启动一个音频播放(render)或录音(capture)处理 更多...

-

( Stop )(AudioHandle handle)

-

停止一个音频播放(render)或录音(capture)处理 更多...

-

( Pause )(AudioHandle handle)

-

暂停一个音频播放(render)或录音(capture)处理 更多...

-

( Resume )(AudioHandle handle)

-

恢复一个音频播放(render)或录音(capture)处理 更多...

-

( Flush )(AudioHandle handle)

-

刷新音频缓冲区buffer中的数据 更多...

-

( TurnStandbyMode )(AudioHandle handle)

-

设置或去设置设备的待机模式 更多...

-

( AudioDevDump )(AudioHandle handle, int32_t range, int32_t fd)

-

Dump音频设备信息 更多...

-
- -## **详细描述** - -AudioControl音频控制接口。 - -提供音频播放(render)或录音(capture)需要的公共控制驱动能力,包括Start、Stop、Pause、Resume、Flush等。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **类成员变量说明** - -## AudioDevDump - -``` -int32_t(* AudioControl::AudioDevDump) (AudioHandle handle, int32_t range, int32_t fd) -``` - -**描述:** - -Dump音频设备信息 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

range

-

Dump信息范围,分为简要信息、全量信息

-

fd

-

指定Dump目标文件

-
- -**返回:** - -成功返回值0,失败返回负值 - -## Flush - -``` -int32_t(* AudioControl::Flush) (AudioHandle handle) -``` - -**描述:** - -刷新音频缓冲区buffer中的数据 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-
- -**返回:** - -成功返回值0,失败返回负值 - -## Pause - -``` -int32_t(* AudioControl::Pause) (AudioHandle handle) -``` - -**描述:** - -暂停一个音频播放(render)或录音(capture)处理 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[Resume](_audio_control.md#ac59c3e9a5ff9041989871f67253a1e8d) - -## Resume - -``` -int32_t(* AudioControl::Resume) (AudioHandle handle) -``` - -**描述:** - -恢复一个音频播放(render)或录音(capture)处理 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[Pause](_audio_control.md#a16a26deffa17b9f143f602763a260908) - -## Start - -``` -int32_t(* AudioControl::Start) (AudioHandle handle) -``` - -**描述:** - -启动一个音频播放(render)或录音(capture)处理 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[Stop](_audio_control.md#a62e385e391ba1efed35021ee67ab9449) - -## Stop - -``` -int32_t(* AudioControl::Stop) (AudioHandle handle) -``` - -**描述:** - -停止一个音频播放(render)或录音(capture)处理 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[Start](_audio_control.md#a80ddae13819bb1eb348ad4b57597e930) - -## TurnStandbyMode - -``` -int32_t(* AudioControl::TurnStandbyMode) (AudioHandle handle) -``` - -**描述:** - -设置或去设置设备的待机模式 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-
- -**返回:** - -设置设备待机模式成功返回值0,再次执行后去设置待机模式成功返回正值,失败返回负值 - diff --git a/zh-cn/device-dev/api/toctopics/_audio_dev_ext_info.md b/zh-cn/device-dev/api/toctopics/_audio_dev_ext_info.md deleted file mode 100644 index 9a2baf9208..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_dev_ext_info.md +++ /dev/null @@ -1,41 +0,0 @@ -# AudioDevExtInfo - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

moduleId

-

音频流绑定的模块ID。

-

type

-

音频端口上的PIN脚(输出、输入),详情参考AudioPortPin

-

desc

-

地址描述。

-
- -## **详细描述** - -音频设备拓展信息。 - diff --git a/zh-cn/device-dev/api/toctopics/_audio_device_descriptor.md b/zh-cn/device-dev/api/toctopics/_audio_device_descriptor.md deleted file mode 100644 index d14a42323a..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_device_descriptor.md +++ /dev/null @@ -1,41 +0,0 @@ -# AudioDeviceDescriptor - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

portId

-

频端口ID。

-

pins

-

音频端口上的PIN脚(输出、输入),详情参考AudioPortPin

-

desc

-

以字符串命名的音频设备。

-
- -## **详细描述** - -音频场景描述符。 - diff --git a/zh-cn/device-dev/api/toctopics/_audio_manager.md b/zh-cn/device-dev/api/toctopics/_audio_manager.md deleted file mode 100644 index ebb49ff164..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_manager.md +++ /dev/null @@ -1,223 +0,0 @@ -# AudioManager - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

( GetAllAdapters )(struct AudioAdapterManager *manager, struct AudioAdapterDescriptor **descs, int *size)

-

获取音频驱动中支持的所有适配器的列表 更多...

-

( LoadAdapter )(struct AudioAdapterManager *manager, const struct AudioAdapterDescriptor *desc, struct AudioAdapter **adapter)

-

加载一个音频适配器(声卡)的驱动 更多...

-

( UnloadAdapter )(struct AudioAdapterManager *manager, struct AudioAdapter *adapter)

-

卸载音频适配器(声卡)的驱动 更多...

-

( ReleaseAudioManagerObject )(struct AudioManager *object)

-

释放音频管理接口对象 更多...

-
- -## **详细描述** - -AudioManager音频适配器管理接口 - -按照音频服务下发的音频适配器(声卡)描述符加载一个具体的音频适配器驱动程序 - -参见: - -[AudioAdapter](_audio_adapter.md) - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **类成员变量说明** - -## GetAllAdapters - -``` -int(* AudioManager::GetAllAdapters) (struct AudioAdapterManager *manager, struct AudioAdapterDescriptor **descs, int *size) -``` - -**描述:** - -获取音频驱动中支持的所有适配器的列表 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

manager

-

待操作的音频管理接口对象

-

descs

-

获取到的音频适配器列表保存到descs中

-

size

-

获取到的音频适配器列表的长度保存到size中

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[LoadAdapter](_audio_manager.md#a94e701aaf2952efac2369688b0704e4d) - -## LoadAdapter - -``` -int(* AudioManager::LoadAdapter) (struct AudioAdapterManager *manager, const struct AudioAdapterDescriptor *desc, struct AudioAdapter **adapter) -``` - -**描述:** - -加载一个音频适配器(声卡)的驱动 - -加载一个具体的音频驱动,例如usb驱动,在具体实现中可能加载的是一个动态链接库(\*.so) - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

manager

-

待操作的音频管理接口对象

-

desc

-

待加载的音频适配器描述符

-

adapter

-

获取的音频适配器接口的对象实例保存到adapter中

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[GetAllAdapters](_audio_manager.md#a385ae18dad8e513fcfc49c3384cdf030) - -[UnloadAdapter](_audio_manager.md#a2e6760aa74554355b0379c9594937b3a) - -## ReleaseAudioManagerObject - -``` -bool(* AudioManager::ReleaseAudioManagerObject) (struct AudioManager *object) -``` - -**描述:** - -释放音频管理接口对象 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

object

-

待操作的音频管理接口对象

-
- -**返回:** - -成功返回ture,失败返回false - -## UnloadAdapter - -``` -void(* AudioManager::UnloadAdapter) (struct AudioAdapterManager *manager, struct AudioAdapter *adapter) -``` - -**描述:** - -卸载音频适配器(声卡)的驱动 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

manager

-

待操作的音频管理接口对象

-

adapter

-

待卸载的音频适配器接口的对象

-
- -**参见:** - -[LoadAdapter](_audio_manager.md#a94e701aaf2952efac2369688b0704e4d) - diff --git a/zh-cn/device-dev/api/toctopics/_audio_mix_ext_info.md b/zh-cn/device-dev/api/toctopics/_audio_mix_ext_info.md deleted file mode 100644 index 0c99533157..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_mix_ext_info.md +++ /dev/null @@ -1,36 +0,0 @@ -# AudioMixExtInfo - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

moduleId

-

流所属模块标识符。

-

streamId

-

由调用者传递的Render或Capture标识符。

-
- -## **详细描述** - -音轨拓展信息。 - diff --git a/zh-cn/device-dev/api/toctopics/_audio_mmap_buffer_descripter.md b/zh-cn/device-dev/api/toctopics/_audio_mmap_buffer_descripter.md deleted file mode 100644 index 62c026ba4e..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_mmap_buffer_descripter.md +++ /dev/null @@ -1,51 +0,0 @@ -# AudioMmapBufferDescripter - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

memoryAddress

-

指向mmap缓冲区的指针。

-

memoryFd

-

mmap缓冲区的文件描述符。

-

totalBufferFrames

-

缓冲区总大小,单位:帧。

-

transferFrameSize

-

传输大小,单位:帧。

-

isShareable

-

mmap缓冲区是否可以在进程间共享。

-
- -## **详细描述** - -mmap缓冲区描述符。 - diff --git a/zh-cn/device-dev/api/toctopics/_audio_port.md b/zh-cn/device-dev/api/toctopics/_audio_port.md deleted file mode 100644 index 7c2297ff07..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_port.md +++ /dev/null @@ -1,41 +0,0 @@ -# AudioPort - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

dir

-

音频端口的类型,详情参考AudioPortDirection

-

portId

-

音频端口的ID。

-

portName

-

音频端口的名称。

-
- -## **详细描述** - -音频端口。 - diff --git a/zh-cn/device-dev/api/toctopics/_audio_port_cap.md b/zh-cn/device-dev/api/toctopics/_audio_port_cap.md deleted file mode 100644 index 5a41e710be..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_port_cap.md +++ /dev/null @@ -1,88 +0,0 @@ -# AudioPortCap - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

sampleFormats [SAMPLE_FMT_NUM]

-

支持的音频采样格式,详见AudioSampleFormat

-

sampleRate [SAMPLE_RATE_NUM]

-

支持的音频采样率,详见AudioSampleRate

-

channelLayouts [CHANNEL_NUM]

-

支持的音频通道数channel layouts。

-

channelCount [CHANNEL_NUM]

-

支持的音频通道数。

-
- -## **详细描述** - -定义音频编解码能力。 - -## **类成员变量说明** - -## channelCount - -``` -int32_t AudioPortCap::channelCount[CHANNEL_NUM] -``` - -**描述:** - -支持的音频通道数 - -## channelLayouts - -``` -int32_t AudioPortCap::channelLayouts[CHANNEL_NUM] -``` - -**描述:** - -支持的音频通道数channel layouts - -## sampleFormats - -``` -int32_t AudioPortCap::sampleFormats[SAMPLE_FMT_NUM] -``` - -**描述:** - -支持的音频采样格式,详见[AudioSampleFormat](_codec.md#ga97cfd5633b2133e7ebe42dbb9b03e757) - -## sampleRate - -``` -int32_t AudioPortCap::sampleRate[SAMPLE_RATE_NUM] -``` - -**描述:** - -支持的音频采样率,详见[AudioSampleRate](_codec.md#gaa0280074adafe6d2581d31f71512b842) - diff --git a/zh-cn/device-dev/api/toctopics/_audio_port_capability.md b/zh-cn/device-dev/api/toctopics/_audio_port_capability.md deleted file mode 100644 index 62bf864522..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_port_capability.md +++ /dev/null @@ -1,86 +0,0 @@ -# AudioPortCapability - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

deviceType

-

设备输出、输入类型。

-

deviceId

-

绑定(bind)设备ID,唯一的设备识别符。

-

hardwareMode

-

是否支持设备绑定处理。

-

formatNum

-

支持的音频格式数目。

-

formats

-

支持的音频格式,详情参考AudioFormat

-

sampleRateMasks

-

支持的音频采样频率(8k、16k、32k、48k)。

-

channelMasks

-

设备的声道布局掩码(mask),详情参考AudioChannelMask

-

channelCount

-

支持的最大声道总数。

-

subPortsNum

-

支持的子端口数目(仅用于输出设备)。

-

subPorts

-

支持的子端口列表。

-

supportSampleFormatNum

-

支持的音频样本格式数量。

-

supportSampleFormats

-

支持的音频样本格式,详请参考AudioSampleFormat

-
- -## **详细描述** - -音频端口的支持能力。 - diff --git a/zh-cn/device-dev/api/toctopics/_audio_render.md b/zh-cn/device-dev/api/toctopics/_audio_render.md deleted file mode 100644 index 5b8a9476aa..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_render.md +++ /dev/null @@ -1,485 +0,0 @@ -# AudioRender - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

control

-

音频控制能力接口,详情参考AudioControl

-

attr

-

音频属性能力接口,详情参考AudioAttribute

-

scene

-

音频场景能力接口,详情参考AudioScene

-

volume

-

音频音量能力接口,详情参考AudioVolume

-

( GetLatency )(struct AudioRender *render, uint32_t *ms)

-

获取音频硬件驱动估计的延迟时间 更多...

-

( RenderFrame )(struct AudioRender *render, const void *frame, uint64_t requestBytes, uint64_t *replyBytes)

-

往音频驱动中播放(render)一帧输出数据(放音,音频下行数据) 更多...

-

( GetRenderPosition )(struct AudioRender *render, uint64_t *frames, struct AudioTimeStamp *time)

-

获取音频输出帧数的上一次计数 更多...

-

( SetRenderSpeed )(struct AudioRender *render, float speed)

-

设置一个音频的播放速度 更多...

-

( GetRenderSpeed )(struct AudioRender *render, float *speed)

-

获取一个音频当前的播放速度 更多...

-

( SetChannelMode )(struct AudioRender *render, enum AudioChannelMode mode)

-

设置音频播放的通道模式 更多...

-

( GetChannelMode )(struct AudioRender *render, enum AudioChannelMode *mode)

-

获取音频播放当前的通道模式 更多...

-

( RegCallback )(struct AudioRender *render, RenderCallback callback, void *cookie)

-

注册音频回调函数,用于放音过程中缓冲区数据写、DrainBuffer完成通知 更多...

-

( DrainBuffer )(struct AudioRender *render, enum AudioDrainNotifyType *type)

-

排空缓冲区中的数据 更多...

-
- -## **详细描述** - -AudioRender音频播放接口 - -提供音频播放支持的驱动能力,包括音频控制、音频属性、音频场景、音频音量、获取硬件延迟时间、播放音频帧数据(render frame)等 - -**参见:** - -[AudioControl](_audio_control.md) - -[AudioAttribute](_audio_attribute.md) - -[AudioScene](_audio_scene.md) - -[AudioVolume](_audio_volume.md) - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **类成员变量说明** - -## DrainBuffer - -``` -int32_t(* AudioRender::DrainBuffer) (struct AudioRender *render, enum AudioDrainNotifyType *type) -``` - -**描述:** - -排空缓冲区中的数据 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

render

-

待操作的音频播放接口对象

-

type

-

DrainBuffer的操作类型,详情请参考AudioDrainNotifyType

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[RegCallback](_audio_render.md#acb40275d0f402e8e38539e71f89f31a1) - -## GetChannelMode - -``` -int32_t(* AudioRender::GetChannelMode) (struct AudioRender *render, enum AudioChannelMode *mode) -``` - -**描述:** - -获取音频播放当前的通道模式 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

render

-

待操作的音频播放接口对象

-

mode

-

获取的通道模式保存到mode中

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[SetChannelMode](_audio_render.md#ae5aad5b26ccdd65ba501620851c5ecec) - -## GetLatency - -``` -int32_t(* AudioRender::GetLatency) (struct AudioRender *render, uint32_t *ms) -``` - -**描述:** - -获取音频硬件驱动估计的延迟时间 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

render

-

待操作的音频播放接口对象

-

ms

-

获取的延迟时间(单位:毫秒)保存到ms中

-
- -**返回:** - -成功返回值0,失败返回负值 - -## GetRenderPosition - -``` -int32_t(* AudioRender::GetRenderPosition) (struct AudioRender *render, uint64_t *frames, struct AudioTimeStamp *time) -``` - -**描述:** - -获取音频输出帧数的上一次计数 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

render

-

待操作的音频播放接口对象

-

frames

-

获取的音频帧计数保存到frames中

-

time

-

获取的关联时间戳保存到time中

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[RenderFrame](_audio_render.md#a463cab04d0805a5c7b3ba5884c468246) - -## GetRenderSpeed - -``` -int32_t(* AudioRender::GetRenderSpeed) (struct AudioRender *render, float *speed) -``` - -**描述:** - -获取一个音频当前的播放速度 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

render

-

待操作的音频播放接口对象

-

speed

-

获取的播放速度保存到speed中

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[SetRenderSpeed](_audio_render.md#a5589427ae5a4ba6a8d2a19dd8eddbcd8) - -## RegCallback - -``` -int32_t(* AudioRender::RegCallback) (struct AudioRender *render, RenderCallback callback, void *cookie) -``` - -**描述:** - -注册音频回调函数,用于放音过程中缓冲区数据写、DrainBuffer完成通知 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

render

-

待操作的音频播放接口对象

-

callback

-

注册的回调函数

-

cookie

-

回调函数的入参

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[RegCallback](_audio_render.md#acb40275d0f402e8e38539e71f89f31a1) - -## RenderFrame - -``` -int32_t(* AudioRender::RenderFrame) (struct AudioRender *render, const void *frame, uint64_t requestBytes, uint64_t *replyBytes) -``` - -**描述:** - -往音频驱动中播放(render)一帧输出数据(放音,音频下行数据) - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

render

-

待操作的音频播放接口对象

-

frame

-

待写入的输出数据的音频frame

-

requestBytes

-

待写入的输出数据的音频frame大小(字节数)

-

replyBytes

-

实际写入的音频数据长度(字节数),获取后保存到replyBytes中

-
- -**返回:** - -成功返回值0,失败返回负值 - -## SetChannelMode - -``` -int32_t(* AudioRender::SetChannelMode) (struct AudioRender *render, enum AudioChannelMode mode) -``` - -**描述:** - -设置音频播放的通道模式 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

render

-

待操作的音频播放接口对象

-

speed

-

待设置的通道模式

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[GetChannelMode](_audio_render.md#aad3d5e4104167620eacb2ba23edce50e) - -## SetRenderSpeed - -``` -int32_t(* AudioRender::SetRenderSpeed) (struct AudioRender *render, float speed) -``` - -**描述:** - -设置一个音频的播放速度 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

render

-

待操作的音频播放接口对象

-

speed

-

待设置的播放速度

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[GetRenderSpeed](_audio_render.md#af0a19dacb293d3fbe600902b93af1ee9) - diff --git a/zh-cn/device-dev/api/toctopics/_audio_route.md b/zh-cn/device-dev/api/toctopics/_audio_route.md deleted file mode 100644 index a98417b8fe..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_route.md +++ /dev/null @@ -1,46 +0,0 @@ -# AudioRoute - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

sourcesNum

-

发送端节点数量。

-

sources

-

发送端列表。

-

sinksNum

-

接受端节点数量。

-

sinks

-

接受端列表。

-
- -## **详细描述** - -音频路由信息。 - diff --git a/zh-cn/device-dev/api/toctopics/_audio_route_node.md b/zh-cn/device-dev/api/toctopics/_audio_route_node.md deleted file mode 100644 index 58bbd422d5..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_route_node.md +++ /dev/null @@ -1,56 +0,0 @@ -# AudioRouteNode - -## **述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

portId

-

音频端口ID。

-

role

-

指定端口角色为sink或source。

-

type

-

指定端口类型。

-

device

-

设备特定信息。

-

mix

-

音轨特定信息。

-

session

-

会话特定信息。

-
- -## **详细描述** - -音频路由节点。 - diff --git a/zh-cn/device-dev/api/toctopics/_audio_sample_attributes.md b/zh-cn/device-dev/api/toctopics/_audio_sample_attributes.md deleted file mode 100644 index 3ef1f782a5..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_sample_attributes.md +++ /dev/null @@ -1,91 +0,0 @@ -# AudioSampleAttributes - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

type

-

音频类型,详情参考AudioCategory

-

interleaved

-

音频数据交织的标记。

-

format

-

音频数据格式,详情参考AudioFormat

-

sampleRate

-

音频采样频率。

-

channelCount

-

音频通道数目,如单通道(mono)为1、立体声(stereo)为2。

-

period

-

音频采样周期。

-

frameSize

-

音频数据的帧大小。

-

isBigEndian

-

音频数据的大端标志。

-

isSignedData

-

音频数据的有符号或无符号标志。

-

startThreshold

-

音频渲染开始阈值。

-

stopThreshold

-

音频渲染停止阈值。

-

silenceThreshold

-

音频捕获缓冲区阈值。

-

streamId

-

渲染或捕获的音频标识符。

-
- -## **详细描述** - -音频采样属性。 - diff --git a/zh-cn/device-dev/api/toctopics/_audio_scene.md b/zh-cn/device-dev/api/toctopics/_audio_scene.md deleted file mode 100644 index 8590da5c80..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_scene.md +++ /dev/null @@ -1,140 +0,0 @@ -# AudioScene - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

( CheckSceneCapability )(AudioHandle handle, const struct AudioSceneDescriptor *scene, bool *supported)

-

是否支持某个音频场景的配置 更多...

-

( SelectScene )(AudioHandle handle, const struct AudioSceneDescriptor *scene)

-

选择音频场景 更多...

-
- -## **详细描述** - -AudioScene音频场景接口。 - -提供音频播放(render)或录音(capture)需要的公共场景驱动能力,包括选择音频场景等。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **类成员变量说明** - -## CheckSceneCapability - -``` -int32_t(* AudioScene::CheckSceneCapability) (AudioHandle handle, const struct AudioSceneDescriptor *scene, bool *supported) -``` - -**描述:** - -是否支持某个音频场景的配置 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

scene

-

待获取的音频场景描述符

-

supported

-

是否支持的状态保存到supported中,true表示支持,false表示不支持

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[SelectScene](_audio_scene.md#aacdbf3a9f488a7e71f3a5a23c68c0068) - -## SelectScene - -``` -int32_t(* AudioScene::SelectScene) (AudioHandle handle, const struct AudioSceneDescriptor *scene) -``` - -**描述:** - -选择音频场景 - -1. 选择一个非常具体的音频场景(应用场景和输出设备的组合),例如同样是使用手机中的喇叭作为输出设备 - - 在媒体播放场景scene为media\_speaker - - 在语音通话免提场景scene为voice\_speaker - -2. 只是选择一个音频场景,例如使用场景为媒体播放(media)、电影播放(movie)、游戏播放(game) -3. 只是选择一个音频输出设备,例如输出设备为听筒(receiver)、喇叭(speaker)、有线耳机(headset) - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

scene

-

待设置的音频场景描述符

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[CheckSceneCapability](_audio_scene.md#a9b485404b2ec3b8bc2b8d1b73401d45c) - diff --git a/zh-cn/device-dev/api/toctopics/_audio_scene_descriptor.md b/zh-cn/device-dev/api/toctopics/_audio_scene_descriptor.md deleted file mode 100644 index af412ad07b..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_scene_descriptor.md +++ /dev/null @@ -1,53 +0,0 @@ -# AudioSceneDescriptor - -## **概述** - -**所属模块:** - -[Audio](_audio.md)[更多...](union_audio_scene_descriptor_1_1_scene_desc.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

SceneDesc

-

音频场景描述 AudioSceneDescriptor::SceneDesc

-
- -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

scene

-

音频场景的名称。

-

desc

-

音频设备描述符。

-
- -## **详细描述** - -音频场景描述符。 - diff --git a/zh-cn/device-dev/api/toctopics/_audio_session_ext_info.md b/zh-cn/device-dev/api/toctopics/_audio_session_ext_info.md deleted file mode 100644 index c78870ea99..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_session_ext_info.md +++ /dev/null @@ -1,31 +0,0 @@ -# AudioSessionExtInfo - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - -

Public 属性

-

描述

-

sessionType

-

音频会话类型。

-
- -## **详细描述** - -会话拓展信息。 - diff --git a/zh-cn/device-dev/api/toctopics/_audio_sub_port_capability.md b/zh-cn/device-dev/api/toctopics/_audio_sub_port_capability.md deleted file mode 100644 index f9e6f5592a..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_sub_port_capability.md +++ /dev/null @@ -1,41 +0,0 @@ -# AudioSubPortCapability - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

portId

-

子端口ID。

-

desc

-

以字符串命名的子端口。

-

mask

-

数据透传模式,详情参考AudioPortPassthroughMode

-
- -## **详细描述** - -音频子端口的支持能力。 - diff --git a/zh-cn/device-dev/api/toctopics/_audio_time_stamp.md b/zh-cn/device-dev/api/toctopics/_audio_time_stamp.md deleted file mode 100644 index 9dc33ab671..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_time_stamp.md +++ /dev/null @@ -1,38 +0,0 @@ -# AudioTimeStamp - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

tvSec

-

tvSec时间,单位:秒。

-

tvNSec

-

tvNSec时间,单位:纳秒。

-
- -## **详细描述** - -音频时间戳。 - -时间定义,POSIX timespec的替代品。 - diff --git a/zh-cn/device-dev/api/toctopics/_audio_volume.md b/zh-cn/device-dev/api/toctopics/_audio_volume.md deleted file mode 100644 index bd40cd85ab..0000000000 --- a/zh-cn/device-dev/api/toctopics/_audio_volume.md +++ /dev/null @@ -1,367 +0,0 @@ -# AudioVolume - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

( SetMute )(AudioHandle handle, bool mute)

-

设置音频的静音状态 更多...

-

( GetMute )(AudioHandle handle, bool *mute)

-

获取音频的静音状态 更多...

-

( SetVolume )(AudioHandle handle, float volume)

-

设置一个音频流的音量 更多...

-

( GetVolume )(AudioHandle handle, float *volume)

-

获取一个音频流的音量 更多...

-

( GetGainThreshold )(AudioHandle handle, float *min, float *max)

-

获取音频流增益的阈值 更多...

-

( GetGain )(AudioHandle handle, float *gain)

-

获取音频流的增益 更多...

-

( SetGain )(AudioHandle handle, float gain)

-

设置音频流的增益 更多...

-
- -## **详细描述** - -AudioVolume音频音量接口。 - -提供音频播放(render)或录音(capture)需要的公共音量驱动能力,包括静音操作、设置音量、设置增益等。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **类成员变量说明** - -## GetGain - -``` -int32_t(* AudioVolume::GetGain) (AudioHandle handle, float *gain) -``` - -**描述:** - -获取音频流的增益 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

gain

-

保存当前获取到的增益到gain中

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[GetGainThreshold](_audio_volume.md#aa42ff18fa2b7e6780acf120ea49054ed) - -[SetGain](_audio_volume.md#ab667c5f8754d0b10121451a57abbe429) - -## GetGainThreshold - -``` -int32_t(* AudioVolume::GetGainThreshold) (AudioHandle handle, float *min, float *max) -``` - -**描述:** - -获取音频流增益的阈值 - -在具体的功能实现中,可以根据芯片平台的实际情况来进行处理: - -- 1. 可以使用实际的增益值,例如增益的范围为-50db \~ 6db -- 2. 也可以将增益范围设定为0.0\~1.0,如果增益的范围为-50db \~ 6db, 则增益的映射关系为0.0表示静音,1.0表示最大增益(6db) - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

min

-

获取的音频增益的阈值下限保存到min中

-

max

-

获取的音频增益的阈值上限保存到max中

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[GetGain](_audio_volume.md#a5ff7f9e5b763d20822a1fadecc5a8db7) - -[SetGain](_audio_volume.md#ab667c5f8754d0b10121451a57abbe429) - -## GetMute - -``` -int32_t(* AudioVolume::GetMute) (AudioHandle handle, bool *mute) -``` - -**描述:** - -获取音频的静音状态 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

mute

-

获取的静音状态保存到mute中,true表示静音操作、false表示取消静音操作

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[SetMute](_audio_volume.md#a79c127fa37eb2dbf8dc5fe9f0ed4421e) - -## GetVolume - -``` -int32_t(* AudioVolume::GetVolume) (AudioHandle handle, float *volume) -``` - -**描述:** - -获取一个音频流的音量 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

volume

-

获取的音量保存到volume中,范围0.0~1.0

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[SetVolume](_audio_volume.md#aebf67caf924cba5f3be9d0f395390908) - -## SetGain - -``` -int32_t(* AudioVolume::SetGain) (AudioHandle handle, float gain) -``` - -**描述:** - -设置音频流的增益 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

gain

-

gain 待设置的增益

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[GetGainThreshold](_audio_volume.md#aa42ff18fa2b7e6780acf120ea49054ed) - -[GetGain](_audio_volume.md#a5ff7f9e5b763d20822a1fadecc5a8db7) - -## SetMute - -``` -int32_t(* AudioVolume::SetMute) (AudioHandle handle, bool mute) -``` - -**描述:** - -设置音频的静音状态 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

mute

-

待设置的静音状态,true表示静音操作、false表示取消静音操作

-
- -**返回:** - -成功返回值0,失败返回负值 - -**参见:** - -[GetMute](_audio_volume.md#a75fcb5bda7e0ca9b823187f6056ad1d4) - -## SetVolume - -``` -int32_t(* AudioVolume::SetVolume) (AudioHandle handle, float volume) -``` - -**描述:** - -设置一个音频流的音量。 - -音量的取值范围是0.0\~1.0,如果音频服务中的音量等级为15级(0 \~ 15), 则音量的映射关系为0.0表示静音,1.0表示最大音量等级(15) - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

待操作的音频句柄

-

volume

-

待设置的音量,范围0.0~1.0

-
- -**返回:** - -成功返回值0,失败返回负值 - diff --git a/zh-cn/device-dev/api/toctopics/_auth_result_info.md b/zh-cn/device-dev/api/toctopics/_auth_result_info.md deleted file mode 100644 index 67b216a1f0..0000000000 --- a/zh-cn/device-dev/api/toctopics/_auth_result_info.md +++ /dev/null @@ -1,111 +0,0 @@ -# AuthResultInfo - -## **概述** - -**所属模块:** - -[HdfUserAuth](_hdf_user_auth.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

result

-

用户身份认证结果。

-

freezingTime

-

认证方式被冻结的时间。

-

remainTimes

-

认证方式距离被冻结的可处理认证请求次数。

-

msgs

-

执行器发送的消息。

-

token

-

用户身份认证令牌。

-
- -## **详细描述** - -用户身份认证结果信息。 - -**Since:** - -3.2 - -**Version:** - -1.0 - -## **类成员变量说明** - -## freezingTime - -``` -int AuthResultInfo::freezingTime -``` - -**描述:** - -认证方式被冻结的时间。 - -## msgs - -``` -struct ExecutorSendMsg [] AuthResultInfo::msgs -``` - -**描述:** - -执行器发送的消息。 - -## remainTimes - -``` -int AuthResultInfo::remainTimes -``` - -**描述:** - -认证方式距离被冻结的可处理认证请求次数。 - -## result - -``` -unsigned int AuthResultInfo::result -``` - -**描述:** - -用户身份认证结果。 - -## token - -``` -unsigned char [] AuthResultInfo::token -``` - -**描述:** - -用户身份认证令牌。 - diff --git a/zh-cn/device-dev/api/toctopics/_auth_solution.md b/zh-cn/device-dev/api/toctopics/_auth_solution.md deleted file mode 100644 index 59424bcf2b..0000000000 --- a/zh-cn/device-dev/api/toctopics/_auth_solution.md +++ /dev/null @@ -1,111 +0,0 @@ -# AuthSolution - -## **概述** - -**所属模块:** - -[HdfUserAuth](_hdf_user_auth.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

userId

-

用户ID。

-

authTrustLevel

-

认证结果可信等级。

-

authType

-

用户认证凭据类型AuthType}。

-

executorId

-

既定用户认证凭据类型的执行器ID。

-

challenge

-

挑战值,用于签发认证令牌。

-
- -## **详细描述** - -认证方案。 - -**Since:** - -3.2 - -**Version:** - -1.0 - -## **类成员变量说明** - -## authTrustLevel - -``` -unsigned int AuthSolution::authTrustLevel -``` - -**描述:** - -认证结果可信等级。 - -## authType - -``` -enum AuthType AuthSolution::authType -``` - -**描述:** - -用户认证凭据类型AuthType\}。 - -## challenge - -``` -unsigned char [] AuthSolution::challenge -``` - -**描述:** - -挑战值,用于签发认证令牌。 - -## executorId - -``` -unsigned int AuthSolution::executorId -``` - -**描述:** - -既定用户认证凭据类型的执行器ID。 - -## userId - -``` -int AuthSolution::userId -``` - -**描述:** - -用户ID。 - diff --git a/zh-cn/device-dev/api/toctopics/_battery_info.md b/zh-cn/device-dev/api/toctopics/_battery_info.md deleted file mode 100644 index fe93f5f0e1..0000000000 --- a/zh-cn/device-dev/api/toctopics/_battery_info.md +++ /dev/null @@ -1,257 +0,0 @@ -# BatteryInfo - -## **概述** - -**所属模块:** - -[Battery](battery.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

capacity

-

表示电池的电量百分比。

-

voltage

-

表示电池的电压。

-

temperature

-

表示电池的温度

-

healthState

-

表示电池的健康状态。

-

pluggedType

-

表示电池的充电设备类型。

-

pluggedMaxCurrent

-

表示电池的最大充电电流。

-

pluggedMaxVoltage

-

表示电池的最大充电电压。

-

chargeState

-

表示电池的充电状态。

-

chargeCounter

-

表示电池的充电次数。

-

totalEnergy

-

表示电池的总容量。

-

curAverage

-

表示电池的平均电流。

-

curNow

-

表示电池的实时电流。

-

remainEnergy

-

表示电池的剩余容量。

-

present

-

表示是否支持电池或者电池是否在位。

-

technology

-

表示电池的技术型号。

-
- -## **详细描述** - -电池相关信息。 - -**Since:** - -3.1 - -## **类成员变量说明** - -## capacity - -``` -int BatteryInfo::capacity -``` - -**描述:** - -表示电池的电量百分比。 - -## chargeCounter - -``` -int BatteryInfo::chargeCounter -``` - -**描述:** - -表示电池的充电次数。 - -## chargeState - -``` -int BatteryInfo::chargeState -``` - -**描述:** - -表示电池的充电状态。 - -## curAverage - -``` -int BatteryInfo::curAverage -``` - -**描述:** - -表示电池的平均电流。 - -## curNow - -``` -int BatteryInfo::curNow -``` - -**描述:** - -表示电池的实时电流。 - -## healthState - -``` -int BatteryInfo::healthState -``` - -**描述:** - -表示电池的健康状态。 - -## pluggedMaxCurrent - -``` -int BatteryInfo::pluggedMaxCurrent -``` - -**描述:** - -表示电池的最大充电电流。 - -## pluggedMaxVoltage - -``` -int BatteryInfo::pluggedMaxVoltage -``` - -**描述:** - -表示电池的最大充电电压。 - -## pluggedType - -``` -int BatteryInfo::pluggedType -``` - -**描述:** - -表示电池的充电设备类型。 - -## present - -``` -byte BatteryInfo::present -``` - -**描述:** - -表示是否支持电池或者电池是否在位。 - -## remainEnergy - -``` -int BatteryInfo::remainEnergy -``` - -**描述:** - -表示电池的剩余容量。 - -## technology - -``` -String BatteryInfo::technology -``` - -**描述:** - -表示电池的技术型号。 - -## temperature - -``` -int BatteryInfo::temperature -``` - -**描述:** - -表示电池的温度 - -## totalEnergy - -``` -int BatteryInfo::totalEnergy -``` - -**描述:** - -表示电池的总容量。 - -## voltage - -``` -int BatteryInfo::voltage -``` - -**描述:** - -表示电池的电压。 - diff --git a/zh-cn/device-dev/api/toctopics/_buffer_data.md b/zh-cn/device-dev/api/toctopics/_buffer_data.md deleted file mode 100644 index c3e36e6c38..0000000000 --- a/zh-cn/device-dev/api/toctopics/_buffer_data.md +++ /dev/null @@ -1,36 +0,0 @@ -# BufferData - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

phyAddr

-

物理内存地址。

-

virAddr

-

虚拟内存地址。

-
- -## **详细描述** - -定义一层的缓冲区数据,包括虚拟和物理内存地址。 - diff --git a/zh-cn/device-dev/api/toctopics/_camera.md b/zh-cn/device-dev/api/toctopics/_camera.md deleted file mode 100644 index 725276f6f1..0000000000 --- a/zh-cn/device-dev/api/toctopics/_camera.md +++ /dev/null @@ -1,2825 +0,0 @@ -# Camera - -## **汇总** - -## 文件 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

文件

-

描述

-

icamera_device.h

-

Camera设备操作接口。

-

icamera_device_callback.h

-

Camera设备的回调接口,主要包含camera设备发生错误时和上报metadata的回调函数。

-

icamera_host.h

-

Camera服务的管理类,对上层提供HDI接口。

-

icamera_host_callback.h

-

ICameraHost的回调接口,提供Camera设备和闪关灯状态变化的回调函数,回调函数由调用者实现。

-

ioffline_stream_operator.h

-

离线流的操作接口。

-

istream_operator.h

-

流的操作接口。

-

istream_operator_callback.h

-

IStreamOperator相关的回调,这些回调均由调用者实现。

-

types.h

-

Camera模块HDI接口使用的数据类型。

-
- -## 类 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-

描述

-

OHOS::Camera::ICameraDevice

-

Camera设备操作。更多...

-

OHOS::Camera::ICameraDeviceCallback

-

Camera设备操作回调。更多...

-

OHOS::Camera::ICameraHost

-

Camera服务的管理类。更多...

-

OHOS::Camera::ICameraHostCallback

-

Camera服务的管理回调。更多...

-

OHOS::Camera::IOfflineStreamOperator

-

离线流的操作类。更多...

-

OHOS::Camera::IStreamOperator

-

流的操作类。更多...

-

OHOS::Camera::IStreamOperatorCallback

-

流的操作回调类。更多...

-

OHOS::Camera::StreamInfo

-

流信息,用于创建流时传入相关的配置参数。 更多...

-

OHOS::Camera::StreamAttribute

-

流的属性。 更多...

-

OHOS::Camera::CaptureInfo

-

捕获请求的相关信息。 更多...

-

OHOS::Camera::CaptureEndedInfo

-

捕获结束相关信息,用于捕获结束回调 OnCaptureEnded更多...

-

OHOS::Camera::CaptureErrorInfo

-

流错误信息,用于回调 OnCaptureError更多...

-
- -## 类型定义 - - - - - - - - - - - - - - - - -

类型定义

-

描述

-

OHOS::Camera::CameraAbility = CameraMetadata

-

Camera设备能力集合。

-

OHOS::Camera::CameraSetting = CameraMetadata

-

Camera设置参数,包括sensor帧率,3A相关参数等。

-

OHOS::Camera::MetaType = int32_t

-

整型。

-
- -## 枚举 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举

-

描述

-

OHOS::Camera::CamRetCode : int32_t { OHOS::Camera::NO_ERROR = 0, OHOS::Camera::CAMERA_BUSY = -1, OHOS::Camera::INSUFFICIENT_RESOURCES = -2, OHOS::Camera::INVALID_ARGUMENT = -3, OHOS::Camera::METHOD_NOT_SUPPORTED = -4, OHOS::Camera::CAMERA_CLOSED = -5, OHOS::Camera::DEVICE_ERROR = -6 }

-

HDI接口的返回值。 更多...

-

OHOS::Camera::ResultCallbackMode : int32_t { OHOS::Camera::PER_FRAME, OHOS::Camera::ON_CHANGED }

-

metadata的上报模式。 更多...

-

OHOS::Camera::OperationMode : int32_t { OHOS::Camera::NORMAL = 0 }

-

流的使用模式。 更多...

-

OHOS::Camera::StreamIntent : int32_t { OHOS::Camera::PREVIEW = 0, OHOS::Camera::VIDEO = 1, OHOS::Camera::STILL_CAPTURE = 2, OHOS::Camera::POST_VIEW = 3, OHOS::Camera::ANALYZE = 4, OHOS::Camera::CUSTOM = 5 }

-

流的类型。 更多...

-

OHOS::Camera::EncodeType : int32_t { OHOS::Camera::ENCODE_TYPE_NULL = 0, OHOS::Camera::ENCODE_TYPE_H264 = 1, OHOS::Camera::ENCODE_TYPE_H265 = 2, OHOS::Camera::ENCODE_TYPE_JPEG = 3 }

-

流数据的编码类型。 更多...

-

OHOS::Camera::StreamSupportType : int32_t { OHOS::Camera::DYNAMIC_SUPPORTED, OHOS::Camera::RE_CONFIGURED_REQUIRED, OHOS::Camera::NOT_SUPPORTED }

-

动态配置流的切换方式,使用场景参考 IsStreamsSupported更多...

-

OHOS::Camera::CameraStatus { OHOS::Camera::UN_AVAILABLE = 0, OHOS::Camera::AVAILABLE = 1 }

-

Camera设备状态。 更多...

-

OHOS::Camera::FlashlightStatus : uint32_t { OHOS::Camera::FLASHLIGHT_OFF = 0, OHOS::Camera::FLASHLIGHT_ON = 1, OHOS::Camera::FLASHLIGHT_UNAVAILABLE = 2 }

-

闪光灯状态。 更多...

-

OHOS::Camera::CameraEvent : uint32_t { OHOS::Camera::CAMERA_EVENT_DEVICE_ADD = 0, OHOS::Camera::CAMERA_EVENT_DEVICE_RMV = 1 }

-

Camera事件。 更多...

-

OHOS::Camera::ErrorType : uint32_t { OHOS::Camera::FATAL_ERROR = 0, OHOS::Camera::REQUEST_TIMEOUT = 1 }

-

设备错误类型,用于设备错误回调 OnError更多...

-

OHOS::Camera::StreamError { OHOS::Camera::UNKNOWN_ERROR = 0, OHOS::Camera::BUFFER_LOST = 1 }

-

流错误类型,用于流错误类型 CaptureErrorInfo更多...

-
- -## 函数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

函数

-

描述

-

OHOS::Camera::ICameraDevice::DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.Device")

-

IPC通信token校验。

-

OHOS::Camera::ICameraDevice::GetStreamOperator (const OHOS::sptr< IStreamOperatorCallback > &callback, OHOS::sptr< IStreamOperator > &streamOperator)=0

-

获取流操作句柄。 更多...

-

OHOS::Camera::ICameraDevice::UpdateSettings (const std::shared_ptr< CameraSetting > &settings)=0

-

更新设备控制参数。 更多...

-

OHOS::Camera::ICameraDevice::SetResultMode (const ResultCallbackMode &mode)=0

-

设置metadata上报模式,逐帧上报还是设备状态变化时上报。 更多...

-

OHOS::Camera::ICameraDevice::GetEnabledResults (std::vector< MetaType > &results)=0

-

查询使能的metadata。 更多...

-

OHOS::Camera::ICameraDevice::EnableResult (const std::vector< MetaType > &results)=0

-

打开metadata上报开关。 更多...

-

OHOS::Camera::ICameraDevice::DisableResult (const std::vector< MetaType > &results)=0

-

关闭metadata上报开关。 更多...

-

OHOS::Camera::ICameraDevice::Close ()=0

-

关闭Camera设备。 更多...

-

OHOS::Camera::ICameraDeviceCallback::DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.DeviceCallback")

-

IPC通信token校验。

-

OHOS::Camera::ICameraDeviceCallback::OnError (ErrorType type, int32_t errorCode)=0

-

设备发生错误时调用,由调用者实现,用于返回错误信息给调用者。 更多...

-

OHOS::Camera::ICameraDeviceCallback::OnResult (uint64_t timestamp, const std::shared_ptr< CameraMetadata > &result)=0

-

上报camera设备相关的metadata的回调,上报方式查看 SetResultMode更多...

-

OHOS::Camera::ICameraHost::DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.Host")

-

IPC通信token校验。

-

OHOS::Camera::ICameraHost::Get (const char *serviceName)

-

获取ICameraHost实例。 更多...

-

OHOS::Camera::ICameraHost::SetCallback (const OHOS::sptr< ICameraHostCallback > &callback)=0

-

设置ICameraHost回调接口,回调函数参考 ICameraHostCallback更多...

-

OHOS::Camera::ICameraHost::GetCameraIds (std::vector< std::string > &cameraIds)=0

-

获取当前可用的Camera设备ID列表。 更多...

-

OHOS::Camera::ICameraHost::GetCameraAbility (const std::string &cameraId, std::shared_ptr< CameraAbility > &ability)=0

-

获取Camera设备能力集合。 更多...

-

OHOS::Camera::ICameraHost::OpenCamera (const std::string &cameraId, const OHOS::sptr< ICameraDeviceCallback > &callback, OHOS::sptr< ICameraDevice > &device)=0

-

打开Camera设备。 更多...

-

OHOS::Camera::ICameraHost::SetFlashlight (const std::string &cameraId, bool &isEnable)=0

-

打开或关闭闪光灯。 更多...

-

OHOS::Camera::ICameraHostCallback::DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.HostCallback")

-

IPC通信token校验。

-

OHOS::Camera::ICameraHostCallback::OnCameraStatus (const std::string &cameraId, CameraStatus status)=0

-

用于Camera设备状态变化时上报状态信息给调用者。 更多...

-

OHOS::Camera::ICameraHostCallback::OnFlashlightStatus (const std::string &cameraId, FlashlightStatus status)=0

-

用于在闪光灯状态变化时上报状态信息给调用者。 更多...

-

OHOS::Camera::ICameraHostCallback::OnCameraEvent (const std::string &cameraId, CameraEvent event)=0

-

在相机事件发生时调用。 更多...

-

OHOS::Camera::IOfflineStreamOperator::DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.OfflineStreamOperator")

-

IPC通信token校验。

-

OHOS::Camera::IOfflineStreamOperator::CancelCapture (int captureId)=0

-

取消捕获请求。 更多...

-

OHOS::Camera::IOfflineStreamOperator::ReleaseStreams (const std::vector< int > &streamIds)=0

-

释放离线流。 更多...

-

OHOS::Camera::IOfflineStreamOperator::Release ()=0

-

释放所有离线流。 更多...

-

OHOS::Camera::IStreamOperator::DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.StreamOperator")

-

IPC通信token校验。

-

OHOS::Camera::IStreamOperator::IsStreamsSupported (OperationMode mode, const std::shared_ptr< CameraMetadata > &modeSetting, const std::vector< std::shared_ptr< StreamInfo >> &info, StreamSupportType &type)=0

-

查询是否支持添加参数对应的流 更多...

-

OHOS::Camera::IStreamOperator::CreateStreams (const std::vector< std::shared_ptr< StreamInfo >> &streamInfos)=0

-

创建流。 更多...

-

OHOS::Camera::IStreamOperator::ReleaseStreams (const std::vector< int > &streamIds)=0

-

释放流。 更多...

-

OHOS::Camera::IStreamOperator::CommitStreams (OperationMode mode, const std::shared_ptr< CameraMetadata > &modeSetting)=0

-

配置流。 更多...

-

OHOS::Camera::IStreamOperator::GetStreamAttributes (std::vector< std::shared_ptr< StreamAttribute >> &attributes)=0

-

获取流的属性。 更多...

-

OHOS::Camera::IStreamOperator::AttachBufferQueue (int streamId, const OHOS::sptr< OHOS::IBufferProducer > &producer)=0

-

绑定生产者句柄和指定流。 更多...

-

OHOS::Camera::IStreamOperator::DetachBufferQueue (int streamId)=0

-

解除生产者句柄和指定流的绑定关系。 更多...

-

OHOS::Camera::IStreamOperator::Capture (int captureId, const std::shared_ptr< CaptureInfo > &info, bool isStreaming)=0

-

捕获图像。 更多...

-

OHOS::Camera::IStreamOperator::CancelCapture (int captureId)=0

-

取消捕获。 更多...

-

OHOS::Camera::IStreamOperator::ChangeToOfflineStream (const std::vector< int > &streamIds, OHOS::sptr< IStreamOperatorCallback > &callback, OHOS::sptr< IOfflineStreamOperator > &offlineOperator)=0

-

将指定流转换成离线流。 更多...

-

OHOS::Camera::IStreamOperatorCallback::DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.StreamOperatorCallback")

-

IPC通信token校验。

-

OHOS::Camera::IStreamOperatorCallback::OnCaptureStarted (int32_t captureId, const std::vector< int32_t > &streamIds)=0

-

捕获开始回调,在捕获开始时调用。 更多...

-

OHOS::Camera::IStreamOperatorCallback::OnCaptureEnded (int32_t captureId, const std::vector< std::shared_ptr< CaptureEndedInfo >> &infos)=0

-

捕获结束回调,在捕获结束时调用。 更多...

-

OHOS::Camera::IStreamOperatorCallback::OnCaptureError (int32_t captureId, const std::vector< std::shared_ptr< CaptureErrorInfo >> &infos)=0

-

捕获错误回调,在捕获过程中发生错误时调用。 更多...

-

OHOS::Camera::IStreamOperatorCallback::OnFrameShutter (int32_t captureId, const std::vector< int32_t > &streamIds, uint64_t timestamp)=0

-

帧捕获回调。 更多...

-
- -## 变量 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

变量 名称

-

描述

-

OHOS::Camera::StreamInfo::streamId_

-

流的ID,用于在设备内唯一标识一条流。

-

OHOS::Camera::StreamInfo::width_

-

图像宽度。

-

OHOS::Camera::StreamInfo::height_

-

图像高度。

-

OHOS::Camera::StreamInfo::format_

-

图像格式。

-

OHOS::Camera::StreamInfo::datasapce_

-

图像颜色空间。

-

OHOS::Camera::StreamInfo::intent_

-

流类型。

-

OHOS::Camera::StreamInfo::tunneledMode_

-

隧道模式,值为true时开启,false关闭。

-

OHOS::Camera::StreamInfo::bufferQueue_

-

图形提供的生产者句柄。

-

OHOS::Camera::StreamInfo::minFrameDuration_

-

最小帧间隔。

-

OHOS::Camera::StreamInfo::encodeType_

-

编码类型。

-

OHOS::Camera::StreamAttribute::streamId_

-

流的ID,用于在设备内唯一标识一条流。

-

OHOS::Camera::StreamAttribute::width_

-

图像宽度。

-

OHOS::Camera::StreamAttribute::height_

-

图像高度。

-

OHOS::Camera::StreamAttribute::overrideFormat_

-

重写的图像格式。

-

OHOS::Camera::StreamAttribute::overrideDatasapce_

-

重写的图像颜色空间。

-

OHOS::Camera::StreamAttribute::producerUsage_

-

重写后的生产者的使用方式。

-

OHOS::Camera::StreamAttribute::producerBufferCount_

-

重写后的生产者缓存数量。

-

OHOS::Camera::StreamAttribute::maxBatchCaptureCount_

-

连拍支持的最大捕获帧数量。

-

OHOS::Camera::StreamAttribute::maxCaptureCount_

-

最大的并发捕获请求个数,默认为1。

-

OHOS::Camera::CaptureInfo::streamIds_

-

捕获的流ID集合。

-

OHOS::Camera::CaptureInfo::captureSetting_

-

捕获的配置信息。

-

OHOS::Camera::CaptureInfo::enableShutterCallback_

-

使能捕获回调。

-

OHOS::Camera::CaptureEndedInfo::streamId_

-

捕获的流ID。

-

OHOS::Camera::CaptureEndedInfo::frameCount_

-

捕获结束时已经抓取的帧数。

-

OHOS::Camera::CaptureErrorInfo::streamId_

-

流ID。

-

OHOS::Camera::CaptureErrorInfo::error_

-

错误类型。

-
- -## **详细描述** - -Camera模块接口定义。 - -Camera模块涉及相机设备的操作、流的操作、离线流的操作和各种回调等。 - -**Since:** - -1.0 - -## **枚举类型说明** - -## CameraEvent - -``` -enum OHOS::Camera::CameraEvent : uint32_t -``` - -**描述:** - -Camera事件。 - - - - - - - - - - - - - -

枚举值

-

描述

-

CAMERA_EVENT_DEVICE_ADD

-

Camera设备增加事件。

-

-

CAMERA_EVENT_DEVICE_RMV

-

Camera设备删除事件。

-

-
- -## CameraStatus - -``` -enum OHOS::Camera::CameraStatus -``` - -**描述:** - -Camera设备状态。 - - - - - - - - - - - - - -

枚举值

-

描述

-

UN_AVAILABLE

-

设备当前不在位或者不可用。

-

-

AVAILABLE

-

设备当前可用。

-

-
- -## CamRetCode - -``` -enum OHOS::Camera::CamRetCode : int32_t -``` - -**描述:** - -HDI接口的返回值。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

NO_ERROR

-

调用成功。

-

-

CAMERA_BUSY

-

设备当前忙。

-

-

INSUFFICIENT_RESOURCES

-

资源不足。

-

-

INVALID_ARGUMENT

-

参数错误。

-

-

METHOD_NOT_SUPPORTED

-

不支持当前调用方法。

-

-

CAMERA_CLOSED

-

Camera设备已经关闭。

-

-

DEVICE_ERROR

-

驱动层发生严重错误。

-

-
- -## EncodeType - -``` -enum OHOS::Camera::EncodeType : int32_t -``` - -**描述:** - -流数据的编码类型。 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

ENCODE_TYPE_NULL

-

未设置编码类型

-

-

ENCODE_TYPE_H264

-

编码类型为H264。

-

-

ENCODE_TYPE_H265

-

编码类型为H265。

-

-

ENCODE_TYPE_JPEG

-

编码类型为JPEG。

-

-
- -## ErrorType - -``` -enum OHOS::Camera::ErrorType : uint32_t -``` - -**描述:** - -设备错误类型,用于设备错误回调 **OnError**。 - - - - - - - - - - - - - -

枚举值

-

描述

-

FATAL_ERROR

-

严重错误,需要关闭camera设备。

-

-

REQUEST_TIMEOUT

-

请求超时,需要关闭camera设备。

-

-
- -## FlashlightStatus - -``` -enum OHOS::Camera::FlashlightStatus : uint32_t -``` - -**描述:** - -闪光灯状态。 - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

FLASHLIGHT_OFF

-

闪光灯关闭。

-

-

FLASHLIGHT_ON

-

闪光灯开启。

-

-

FLASHLIGHT_UNAVAILABLE

-

闪光灯当前不可用。

-

-
- -## OperationMode - -``` -enum OHOS::Camera::OperationMode : int32_t -``` - -**描述:** - -流的使用模式。 - - - - - - - - - - -

枚举值

-

描述

-

NORMAL

-

普通模式。

-

-
- -## ResultCallbackMode - -``` -enum OHOS::Camera::ResultCallbackMode : int32_t -``` - -**描述:** - -metadata的上报模式。 - - - - - - - - - - - - - -

枚举值

-

描述

-

PER_FRAME

-

每帧上报。

-

-

ON_CHANGED

-

设备状态变化时上报。

-

-
- -## StreamError - -``` -enum OHOS::Camera::StreamError -``` - -**描述:** - -流错误类型,用于流错误类型 [CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md)。 - - - - - - - - - - - - - -

枚举值

-

描述

-

UNKNOWN_ERROR

-

流未知错误。

-

-

BUFFER_LOST

-

丢包。

-

-
- -## StreamIntent - -``` -enum OHOS::Camera::StreamIntent : int32_t -``` - -**描述:** - -流的类型。 - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

PREVIEW

-

流数据用于显示,即预览流。

-

-

VIDEO

-

流数据用于编码生成录像,即录像流。

-

-

STILL_CAPTURE

-

流数据用于编码生成照片,即拍照流。

-

-

POST_VIEW

-

流数据用于保存缩略图。

-

-

ANALYZE

-

流数据用于图像分析。

-

-

CUSTOM

-

自定义类型。

-

-
- -## StreamSupportType - -``` -enum OHOS::Camera::StreamSupportType : int32_t -``` - -**描述:** - -动态配置流的切换方式,使用场景参考 [IsStreamsSupported](_camera.md#ga2ebad5dbf7873a2b3ab27900c4f5b0a7) 。 - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

DYNAMIC_SUPPORTED

-

支持动态配置流,对应的流参数直接生效。

-

-

RE_CONFIGURED_REQUIRED

-

不支持动态配置流,对应的参数需要停止流然后重新配置流才能生效。

-

-

NOT_SUPPORTED

-

不支持对应的流参数配置。

-

-
- -## **函数说明** - -## AttachBufferQueue\(\) - -``` -virtual CamRetCode OHOS::Camera::IStreamOperator::AttachBufferQueue (int streamId, const OHOS::sptr < OHOS::IBufferProducer > & producer ) -``` - -**描述:** - -绑定生产者句柄和指定流。 - -如果在 [CreateStreams](_camera.md#gac16ffa2d2f81bb62eb9ce556a0293c71) 创建流时已经指定了生产者句柄,则不需要调用该接口。如果需要重新绑定, 需先调用 [DetachBufferQueue](_camera.md#gaad1232a57faf5c55ecfdab1c04f98951) 进行解绑,然后再绑定。 对于一些IOT设备,可能不需要或者不支持预览流的图像数据缓存流转,那么不需要绑定生产者句柄, 此时在创建流时 [CreateStreams](_camera.md#gac16ffa2d2f81bb62eb9ce556a0293c71) 的 [StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md) 参数的生产者句柄bufferQueue\_为空,而 tunneledMode\_需设置为false。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

streamId

-

[IN] 用于标识要绑定的流。

-

producer

-

[IN] 生产者句柄。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功; - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**参见:** - -[DetachBufferQueue](_camera.md#gaad1232a57faf5c55ecfdab1c04f98951) - -**Since:** - -1.0 - -**Version:** - -1.0 - -## CancelCapture\(\) \[1/2\] - -``` -virtual CamRetCode OHOS::Camera::IOfflineStreamOperator::CancelCapture (int captureId) -``` - -**描述:** - -取消捕获请求。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

captureId

-

[IN] 用于标识要取消的捕获请求。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功; - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -## CancelCapture\(\) \[2/2\] - -``` -virtual CamRetCode OHOS::Camera::IStreamOperator::CancelCapture (int captureId) -``` - -**描述:** - -取消捕获。 - -取消连续捕获时会调用 **OnCaptureEnded**。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

captureId

-

用于标识要取消的捕获请求

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功; - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**参见:** - -[Capture](_camera.md#ga9fb8042cb01262bc08da16159975cf50) - -**Since:** - -1.0 - -**Version:** - -1.0 - -## Capture\(\) - -``` -virtual CamRetCode OHOS::Camera::IStreamOperator::Capture (int captureId, const std::shared_ptr< [CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md) > & info, bool isStreaming ) -``` - -**描述:** - -捕获图像。 - -本接口必须在调用 [CommitStreams](_camera.md#gab94792910f425ade060edcda5c5706d1) 配置流之后调用。 图像捕获有两种模式,分别是连续捕获和单次捕获。连续捕获即触发之后模块内部进行连续的捕获, 消费者可以连续收到图像数据,不需要多次调用本接口,若再次调用了本接口, 则停止当前捕获,更新捕获信息,再进行一次新的捕获,多用于预览、录像或者连拍场景。 单次捕获即触发之后只捕获一帧图像数据,用于单次拍照场景。 捕获启动时,会调用 **OnCaptureStarted** 来通知调用者捕获已经启动。 连续捕获需调用 [CancelCapture](_camera.md#ga77100b740f501c309a573f9783313a61) 来停止捕获。 捕获结束时,会调用 **OnCaptureEnded** 来通知调用者捕获的帧计数等信息。 [CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md) 的 enableShutterCallback\_ 使能 **OnFrameShutter**,使能后每次捕获触发 **OnFrameShutter** 对于多个流同时捕获的场景,本模块内部保证同时上报多路流捕获数据。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

captureId

-

[IN] 捕获请求的唯一标识,由调用者指定,调用者需保证在Camera设备打开期间,捕获请求ID是唯一的。

-

info

-

[IN] 捕获请求的参数信息,具体信息查看 CaptureInfo

-

isStreaming

-

[IN] 是否连续捕获,true表示连续捕获,否则为单次捕获。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功; - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**参见:** - -OnFrameShutter - -**Since:** - -1.0 - -**Version:** - -1.0 - -## ChangeToOfflineStream\(\) - -``` -virtual CamRetCode OHOS::Camera::IStreamOperator::ChangeToOfflineStream (const std::vector< int > & streamIds, OHOS::sptr< IStreamOperatorCallback > & callback, OHOS::sptr< IOfflineStreamOperator > & offlineOperator ) -``` - -**描述:** - -将指定流转换成离线流。 - -离线流只能由拍照流转换而来,其他流不支持。 一些设备处理能力有限,可能导致拍照时算法处理时间较长,从而引起捕获请求堆积在模块内部,而转换为离线 流之后,可关闭底层设备,由离线流接替,进行后续的处理。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

streamIds

-

[IN] 用于指定要转换成离线流的流集合。

-

callback

-

[IN] 用于设置离线流的回调。

-

offlineOperator

-

[OUT] 转换后的离线流。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功; - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## Close\(\) - -``` -virtual void OHOS::Camera::ICameraDevice::Close () -``` - -**描述:** - -关闭Camera设备。 - -**参见:** - -[OpenCamera](_camera.md#gaf9e7aa942d3e31504d8ef5e710b029f1) - -**Since:** - -1.0 - -**Version:** - -1.0 - -## CommitStreams\(\) - -``` -virtual CamRetCode OHOS::Camera::IStreamOperator::CommitStreams (OperationMode mode, const std::shared_ptr< CameraMetadata > & modeSetting ) -``` - -**描述:** - -配置流。 - -本接口需在调用 [CreateStreams](_camera.md#gac16ffa2d2f81bb62eb9ce556a0293c71) 创建流之后调用。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

mode

-

[IN] 流运行的模式,支持的模式定义在 OperationMode

-

modeSetting

-

[IN] 流的配置参数,包括帧率,ZOOM等信息。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功; - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## CreateStreams\(\) - -``` -virtual CamRetCode OHOS::Camera::IStreamOperator::CreateStreams (const std::vector< std::shared_ptr< StreamInfo >> & streamInfos) -``` - -**描述:** - -创建流。 - -此函数接口依据输入的流信息创建流,调用该接口之前需先通过 [IsStreamsSupported](_camera.md#ga2ebad5dbf7873a2b3ab27900c4f5b0a7) 查询HAL是否支持要创建的流。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

streamInfos

-

[IN] 流信息列表,流信息定义在 StreamInfo。输入的流信息可能会被修改,需通过 GetStreamAttributes 获取最新的流属性。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功; - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## DetachBufferQueue\(\) - -``` -virtual CamRetCode OHOS::Camera::IStreamOperator::DetachBufferQueue (int streamId) -``` - -**描述:** - -解除生产者句柄和指定流的绑定关系。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

streamId

-

[IN] 用于标识要解除绑定的流。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功; - -Returns 其他值表示执行失败,具体错误码查看[CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**参见:** - -[AttachBufferQueue](_camera.md#gad17206bf96c260a9384f224d65a230af) - -**Since:** - -1.0 - -**Version:** - -1.0 - -## DisableResult\(\) - -``` -virtual CamRetCode OHOS::Camera::ICameraDevice::DisableResult (const std::vector< MetaType > & results) -``` - -**描述:** - -关闭metadata上报开关。 - -屏蔽之后,相应的**OnResult**不再上报,需 [EnableResult](_camera.md#ga265b16a5b7969045b38de95bf782b75c) 使能之后才上报。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

results

-

[IN] 需要关闭上报开关的metadata。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**参见:** - -[EnableResult](_camera.md#ga265b16a5b7969045b38de95bf782b75c) - -**Since:** - -1.0 - -**Version:** - -1.0 - -## EnableResult\(\) - -``` -virtual CamRetCode OHOS::Camera::ICameraDevice::EnableResult (const std::vector< MetaType > & results) -``` - -**描述:** - -打开metadata上报开关。 - -**OnResult** 只上报此接口使能后的metadata。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

results

-

[IN] 需要打开上报开关的metadata。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**参见:** - -[DisableResult](_camera.md#ga68fd022b82dfba6d9431220faf9856bd) - -**Since:** - -1.0 - -**Version:** - -1.0 - -## Get\(\) - -``` -static sptr OHOS::Camera::ICameraHost::Get (const char * serviceName) -``` - -**描述:** - -获取ICameraHost实例。 - -此接口为Camera调用入口,需要先通过该接口获取ICameraHost实例,然后通过ICameraHost实例进行其它操作。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

serviceName

-

[IN] 要获取的ICameraHost实例的名称,当前实现中实例名称固定为camera_service。

-
- -**返回:** - -Returns 成功返回ICameraHost实例,失败返回nullptr。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## GetCameraAbility\(\) - -``` -virtual CamRetCode OHOS::Camera::ICameraHost::GetCameraAbility (const std::string & cameraId, std::shared_ptr< CameraAbility > & ability ) -``` - -**描述:** - -获取Camera设备能力集合。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

cameraId

-

[IN] 用于指定要操作的camera设备,通过 GetCameraIds 获取。

-

ability

-

[OUT] 返回cameraId对应Camera设备的能力集合。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功; - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**参见:** - -[GetCameraIds](_camera.md#gab3128eb3432a830b2cff6bcd999bca10) - -**Since:** - -1.0 - -**Version:** - -1.0 - -## GetCameraIds\(\) - -``` -virtual CamRetCode OHOS::Camera::ICameraHost::GetCameraIds (std::vector< std::string > & cameraIds) -``` - -**描述:** - -获取当前可用的Camera设备ID列表。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

cameraIds

-

[OUT] 返回当前可用的设备列表

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**参见:** - -[GetCameraAbility](_camera.md#gad813ea200395e42a3ec2a457cc04b93d) - -**Since:** - -1.0 - -**Version:** - -1.0 - -## GetEnabledResults\(\) - -``` -virtual CamRetCode OHOS::Camera::ICameraDevice::GetEnabledResults (std::vector< MetaType > & results) -``` - -**描述:** - -查询使能的metadata。 - -[EnableResult](_camera.md#ga265b16a5b7969045b38de95bf782b75c) 使能需要上报的metadata之后,可通过此接口查询使能的metadata。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

results

-

[OUT] 所有使能的metadata。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## GetStreamAttributes\(\) - -``` -virtual CamRetCode OHOS::Camera::IStreamOperator::GetStreamAttributes (std::vector< std::shared_ptr< StreamAttribute >> & attributes) -``` - -**描述:** - -获取流的属性。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

attributes

-

[OUT] 用于获取流的属性。在调用CreateStreams 时,通过参数streamInfos携带的流信息 可能会被重写,因此通过该接口获取的流属性可能会。 和 CreateStreams 输入的流信息存在差异。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## GetStreamOperator\(\) - -``` -virtual CamRetCode OHOS::Camera::ICameraDevice::GetStreamOperator (const OHOS::sptr< IStreamOperatorCallback > & callback, OHOS::sptr< IStreamOperator > & streamOperator ) -``` - -**描述:** - -获取流操作句柄。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

callback

-

[IN] 设置流回调接口,详细可查看 IStreamOperatorCallback, 用于上报捕获开始 OnCaptureStarted,捕获结束 OnCaptureEndedOnCaptureError 捕获错误等信息。

-

streamOperator

-

[OUT] 返回流操作句柄。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## IsStreamsSupported\(\) - -``` -virtual CamRetCode OHOS::Camera::IStreamOperator::IsStreamsSupported (OperationMode mode, const std::shared_ptr< CameraMetadata > & modeSetting, const std::vector< std::shared_ptr< StreamInfo >> & info, StreamSupportType & type ) -``` - -**描述:** - -查询是否支持添加参数对应的流。 - -流是指从底层设备输出,经本模块内部各环节处理,最终传递到上层服务或者应用的一组数据序列 本模块支持的流的类型有预览流,录像流,拍照流等,更多类型可查看 **StreamIntent**。 - -此函数接口根据输入的运行模式和配置信息以及当前模块中正在运行的流,查询是否支持动态添加流。 如果本模块支持在不停止其他流的情况下添加新流,或者即使停止其他流但上层服务或应用不感知 则通过type参数返回DYNAMIC\_SUPPORTED,上层服务或应用可以直接添加新流; 如果本模块支持添加新流但需要上层服务或应用先停止所有流的捕获,则通过type参数返回RE\_CONFIGURED\_REQUIRED; 如果不支持添加输入的新流,则返回NOT\_SUPPORTED。 此函数需要在调用 [CreateStreams](_camera.md#gac16ffa2d2f81bb62eb9ce556a0293c71) 创建流之前调用。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

mode

-

[IN] 流运行的模式,支持的模式参考 OperationMode

-

modeSetting

-

[IN] 流的配置,包括帧率,3A等配置信息。

-

info

-

[IN] 流的配置信息,具体参考 StreamInfo

-

type

-

[OUT] 对动态配置流的支持类型,支持类型定义在 StreamSupportType

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功; - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## OnCameraEvent\(\) - -``` -virtual void OHOS::Camera::ICameraHostCallback::OnCameraEvent (const std::string & cameraId, CameraEvent event ) -``` - -**描述:** - -在相机事件发生时调用。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

cameraId

-

表示相机事件绑定的相机ID。

-

event

-

表示相机事件类型。

-
- -**Since:** - -1.0 - -**Version:** - -1.0 - -## OnCameraStatus\(\) - -``` -virtual void OHOS::Camera::ICameraHostCallback::OnCameraStatus (const std::string & cameraId, CameraStatus status ) -``` - -**描述:** - -用于Camera设备状态变化时上报状态信息给调用者。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

cameraId

-

[IN] 状态发生变化的Camera设备ID。

-

status

-

[IN] 最新的设备状态。

-
- -**Since:** - -1.0 - -**Version:** - -1.0 - -## OnCaptureEnded\(\) - -``` -virtual void OHOS::Camera::IStreamOperatorCallback::OnCaptureEnded (int32_t captureId, const std::vector< std::shared_ptr< CaptureEndedInfo >> & infos ) -``` - -**描述:** - -捕获结束回调,在捕获结束时调用。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

captureId

-

[IN] 用于标识回调对应的捕获请求。

-

infos

-

[IN] 捕获结束相关信息。

-
- -**参见:** - -[OnCaptureStarted](_camera.md#ga6389672b42dcead4067bbb06aa7b8c18) - -**Since:** - -1.0 - -**Version:** - -1.0 - -## OnCaptureError\(\) - -``` -virtual void OHOS::Camera::IStreamOperatorCallback::OnCaptureError (int32_t captureId, const std::vector< std::shared_ptr< CaptureErrorInfo >> & infos ) -``` - -**描述:** - -捕获错误回调,在捕获过程中发生错误时调用。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

captureId

-

[IN] 用于标识回调对应的捕获请求。

-

infos

-

[IN] 捕获错误信息列表。

-
- -**Since:** - -1.0 - -**Version:** - -1.0 - -## OnCaptureStarted\(\) - -``` -virtual void OHOS::Camera::IStreamOperatorCallback::OnCaptureStarted (int32_t captureId, const std::vector< int32_t > & streamIds ) -``` - -**描述:** - -捕获开始回调,在捕获开始时调用。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

captureId

-

[IN] 用于标识回调对应的捕获请求。

-

streamIds

-

[IN] 回调对应的流集合。

-
- -**参见:** - -[OnCaptureEnded](_camera.md#ga3761990cab402ce99251b26e3802070d) - -**Since:** - -1.0 - -**Version:** - -1.0 - -## OnError\(\) - -``` -virtual void OHOS::Camera::ICameraDeviceCallback::OnError (ErrorType type, int32_t errorCode ) -``` - -**描述:** - -设备发生错误时调用,由调用者实现,用于返回错误信息给调用者。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

type

-

[IN] 错误类型,具体错误类型可参考 ErrorType

-

errorCode

-

[IN] 错误码,当前暂未使用。

-
- -**Since:** - -1.0 - -**Version:** - -1.0 - -## OnFlashlightStatus\(\) - -``` -virtual void OHOS::Camera::ICameraHostCallback::OnFlashlightStatus (const std::string & cameraId, FlashlightStatus status ) -``` - -**描述:** - -用于在闪光灯状态变化时上报状态信息给调用者。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

cameraId

-

[IN] 状态发生变化的闪关灯所绑定的Camera设备ID。

-

status

-

[IN] 最新的闪光灯状态。

-
- -**Since:** - -1.0 - -**Version:** - -1.0 - -## OnFrameShutter\(\) - -``` -virtual void OHOS::Camera::IStreamOperatorCallback::OnFrameShutter (int32_t captureId, const std::vector< int32_t > & streamIds, uint64_t timestamp ) -``` - -**描述:** - -帧捕获回调。 - -通过 **Capture** 的输入参数 [CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md) 的enableShutterCallback\_使能该回调, 使能后每次捕获均会触发此回调。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

captureId

-

[IN] 用于标识回调对应的捕获请求。

-

streamIds

-

[IN] 回调对应的流集合。

-

timestamp

-

[IN] 该接口被调用时的时间戳。

-
- -**参见:** - -Capture - -**Since:** - -1.0 - -**Version:** - -1.0 - -## OnResult\(\) - -``` -virtual void OHOS::Camera::ICameraDeviceCallback::OnResult (uint64_t timestamp, const std::shared_ptr< CameraMetadata > & result ) -``` - -**描述:** - -上报camera设备相关的metadata的回调,上报方式查看 [SetResultMode](_camera.md#ga8adaa4f26fffa98626a2c7e731393174)。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

timestamp

-

[IN] metadata上报的时间戳。

-

result

-

[IN] 上报的metadata,上报的metadata由 EnableResult 指定, 可通过 GetEnabledResults 查询,DisableResult 关闭上报开关。

-
- -**Since:** - -1.0 - -**Version:** - -1.0 - -## OpenCamera\(\) - -``` -virtual CamRetCode OHOS::Camera::ICameraHost::OpenCamera (const std::string & cameraId, const OHOS::sptr< ICameraDeviceCallback > & callback, OHOS::sptr< ICameraDevice > & device ) -``` - -**描述:** - -打开Camera设备。 - -打开指定的Camera设备,通过此接口可以获取到ICameraDevice对象,通过ICameraDevice对象可以操作具体的Camera设备。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

cameraId

-

[IN] 需要打开的Camera设备ID,可通过 GetCameraIds 接口获取当前已有Camera设备列表。

-

callback

-

[IN] camera设备相关的回调函数,具体参见 ICameraDeviceCallback

-

device

-

[OUT] 返回当前要打开的Camera设备ID对应的ICameraDevice对象。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功; - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**参见:** - -[GetCameraIds](_camera.md#gab3128eb3432a830b2cff6bcd999bca10) - -**Since:** - -1.0 - -**Version:** - -1.0 - -## Release\(\) - -``` -virtual CamRetCode OHOS::Camera::IOfflineStreamOperator::Release () -``` - -**描述:** - -释放所有离线流。 - -**返回:** - -Returns NO\_ERROR 表示执行成功; - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## ReleaseStreams\(\) \[1/2\] - -``` -virtual CamRetCode OHOS::Camera::IOfflineStreamOperator::ReleaseStreams (const std::vector< int > & streamIds) -``` - -**描述:** - -释放离线流。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

streamIds

-

用于标识要释放的离线流集合。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## ReleaseStreams\(\) \[2/2\] - -``` -virtual CamRetCode OHOS::Camera::IStreamOperator::ReleaseStreams (const std::vector< int > & streamIds) -``` - -**描述:** - -释放流。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

streamIds

-

[IN] 要释放的流ID列表。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功; - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## SetCallback\(\) - -``` -virtual CamRetCode OHOS::Camera::ICameraHost::SetCallback (const OHOS::sptr< ICameraHostCallback > & callback) -``` - -**描述:** - -设置ICameraHost回调接口,回调函数参考 [ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md)。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

callback

-

[IN] 要设置的回调函数。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## SetFlashlight\(\) - -``` -virtual CamRetCode OHOS::Camera::ICameraHost::SetFlashlight (const std::string & cameraId, bool & isEnable ) -``` - -**描述:** - -打开或关闭闪光灯。 - -该接口只能由打开cameraId指定Camera设备的调用者调用。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

cameraId

-

[IN] 闪光灯对应的Camera设备ID。

-

isEnable

-

[IN] true打开闪光灯,false关闭闪光灯。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功; - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**参见:** - -[GetCameraIds](_camera.md#gab3128eb3432a830b2cff6bcd999bca10) - -**Since:** - -1.0 - -**Version:** - -1.0 - -## SetResultMode\(\) - -``` -virtual CamRetCode OHOS::Camera::ICameraDevice::SetResultMode (const ResultCallbackMode & mode) -``` - -**描述:** - -设置metadata上报模式,逐帧上报还是设备状态变化时上报。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

mode

-

[IN] metadata的上报模式,逐帧上报或者设备状态变化时上报,查看 ResultCallbackMode

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## UpdateSettings\(\) - -``` -virtual CamRetCode OHOS::Camera::ICameraDevice::UpdateSettings (const std::shared_ptr< CameraSetting > & settings) -``` - -**描述:** - -更新设备控制参数。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

settings

-

[IN] Camera设置参数,包括sensor帧率,3A相关参数等。

-
- -**返回:** - -Returns NO\_ERROR 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看 [CamRetCode](#ga9ecee2f0e6599644dc440c9e1c553b80)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **变量说明** - -## bufferQueue\_ - -``` -OHOS::sptr OHOS::Camera::StreamInfo::bufferQueue_ -``` - -**描述:** - -图形提供的生产者句柄。 - -## captureSetting\_ - -``` -std::shared_ptr OHOS::Camera::CaptureInfo::captureSetting_ -``` - -**描述:** - -捕获的配置信息。 - -## datasapce\_ - -``` -int OHOS::Camera::StreamInfo::datasapce_ -``` - -**描述:** - -图像颜色空间。 - -## enableShutterCallback\_ - -``` -bool OHOS::Camera::CaptureInfo::enableShutterCallback_ -``` - -**描述:** - -使能捕获回调,每一次捕获后都会触发 **OnFrameShutter**。 - -## encodeType\_ - -``` -[EncodeType](_camera.md#ga57d3c5974b8119b90f6f43592bd4b1d1) OHOS::Camera::StreamInfo::encodeType_ -``` - -**描述:** - -编码类型。 - -## error\_ - -``` -[StreamError](_camera.md#ga376e6d566c73ec98e29b7dd93763aee6) OHOS::Camera::CaptureErrorInfo::error_ -``` - -**描述:** - -错误类型。 - -## format\_ - -``` -int OHOS::Camera::StreamInfo::format_ -``` - -**描述:** - -图像格式。 - -## frameCount\_ - -``` -int OHOS::Camera::CaptureEndedInfo::frameCount_ -``` - -**描述:** - -捕获结束时已经抓取的帧数。 - -## height\_ \[1/2\] - -``` -int OHOS::Camera::StreamInfo::height_ -``` - -**描述:** - -图像高度。 - -## height\_ \[2/2\] - -``` -int OHOS::Camera::StreamAttribute::height_ -``` - -**描述:** - -图像高度。 - -## intent\_ - -``` -[StreamIntent](_camera.md#ga2b195a400dc0113b8185900ddc231c19) OHOS::Camera::StreamInfo::intent_ -``` - -**描述:** - -流类型。 - -## maxBatchCaptureCount\_ - -``` -int OHOS::Camera::StreamAttribute::maxBatchCaptureCount_ -``` - -**描述:** - -连拍支持的最大捕获帧数量。 - -## maxCaptureCount\_ - -``` -int OHOS::Camera::StreamAttribute::maxCaptureCount_ -``` - -**描述:** - -最大的并发捕获请求个数,默认为1。 - -## minFrameDuration\_ - -``` -int OHOS::Camera::StreamInfo::minFrameDuration_ -``` - -**描述:** - -最小帧间隔。 - -## overrideDatasapce\_ - -``` -int OHOS::Camera::StreamAttribute::overrideDatasapce_ -``` - -**描述:** - -重写的图像颜色空间 - -## overrideFormat\_ - -``` -int OHOS::Camera::StreamAttribute::overrideFormat_ -``` - -**描述:** - -重写的图像格式。 - -## producerBufferCount\_ - -``` -int OHOS::Camera::StreamAttribute::producerBufferCount_ -``` - -**描述:** - -重写后的生产者缓存数量。 - -## producerUsage\_ - -``` -int OHOS::Camera::StreamAttribute::producerUsage_ -``` - -**描述:** - -重写后的生产者的使用方式。 - -## streamId\_ \[1/4\] - -``` -int OHOS::Camera::StreamInfo::streamId_ -``` - -**描述:** - -流的ID,用于在设备内唯一标识一条流。 - -## streamId\_ \[2/4\] - -``` -int OHOS::Camera::StreamAttribute::streamId_ -``` - -**描述:** - -流的ID,用于在设备内唯一标识一条流。 - -## streamId\_ \[3/4\] - -``` -int OHOS::Camera::CaptureEndedInfo::streamId_ -``` - -**描述:** - -捕获的流ID。 - -## streamId\_ \[4/4\] - -``` -int OHOS::Camera::CaptureErrorInfo::streamId_ -``` - -**描述:** - -流ID。 - -## streamIds\_ - -``` -std::vector OHOS::Camera::CaptureInfo::streamIds_ -``` - -**描述:** - -捕获的流ID集合。 - -## tunneledMode\_ - -``` -bool OHOS::Camera::StreamInfo::tunneledMode_ -``` - -**描述:** - -隧道模式,值为true时开启,false关闭。 - -开启隧道模式后,HAL不直接和上层交互,通过图形提供的生产者句柄来传递帧数据, 对于一些IOT设备,可能不需要或者不支持预览流的图像数据缓存流转,此时需要关闭隧道模式。 - -## width\_ \[1/2\] - -``` -int OHOS::Camera::StreamInfo::width_ -``` - -**描述:** - -图像宽度。 - -## width\_ \[2/2\] - -``` -int OHOS::Camera::StreamAttribute::width_ -``` - -**描述:** - -图像宽度。 - diff --git a/zh-cn/device-dev/api/toctopics/_codec.md b/zh-cn/device-dev/api/toctopics/_codec.md deleted file mode 100644 index b86a81b750..0000000000 --- a/zh-cn/device-dev/api/toctopics/_codec.md +++ /dev/null @@ -1,2595 +0,0 @@ -# Codec - -## **汇总** - -## 文件 - - - - - - - - - - - - - - - - - - - - - - -

文件

-

描述

-

codec_callback_if.h

-

主要包括回调函数接口定义。

-

codec_common_type.h

-

Codec模块接口定义中使用的自定义数据类型。

-

codec_component_if.h

-

主要包括Codec组件接口定义。

-

codec_component_manager.h

-

主要包括Codec组件管理类接口。

-

codec_component_type.h

-

Codec模块接口定义中使用的自定义数据类型。

-
- -## 类 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-

描述

-

CodecCallbackType

-

Codec回调接口定义。 更多...

-

Alignment

-

对齐结构定义,包含宽高的对齐值 更多...

-

Rect

-

矩形的定义 更多...

-

RangeValue

-

取值范围的定义 更多...

-

CodecComponentType

-

Codec组件接口定义。 更多...

-

CodecComponentManager

-

Codec组件管理类接口定义。 更多...

-

VideoPortCap

-

定义视频编解码能力 更多...

-

AudioPortCap

-

定义音频编解码能力 更多...

-

PortCap

-

定义音视频编解码能力 更多...

-

CodecCompCapability

-

定义Codec编解码能力 更多...

-

OmxCodecBuffer

-

Codec buffer信息的定义 更多...

-

CompVerInfo

-

定义组件版本信息 更多...

-

EventInfo

-

定义事件上报信息 更多...

-

SupportBufferType

-

SupportBuffer类型定义. 更多...

-

UseBufferType

-

UseBuffer类型定义 更多...

-

GetBufferHandleUsageParams

-

BufferHandleUsage类型定义 更多...

-
- -## 宏定义 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

宏定义

-

描述

-

SAMPLE_FMT_NUM 32

-

采样格式最大值

-

UUID_LENGTH 128

-

定义UUID长度

-

PIX_FORMAT_NUM 16

-

支持的像素格式数组大小

-

SAMPLE_FORMAT_NUM 12

-

支持的音频采样格式数组大小

-

SAMPLE_RATE_NUM 16

-

支持的音频采样率数组大小

-

CHANNEL_NUM 16

-

支持的音频通道数组大小

-

NAME_LENGTH 32

-

组件名称大小

-

PROFILE_NUM 256

-

支持的profile数组大小

-
- -## 枚举 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举

-

描述

-

CodecType { VIDEO_DECODER, VIDEO_ENCODER, AUDIO_DECODER, AUDIO_ENCODER, INVALID_TYPE }

-

枚举编解码的类型 更多...

-

Profile { INVALID_PROFILE = 0, AAC_LC_PROFILE = 0x1000, AAC_MAIN_PROFILE, AAC_HE_V1_PROFILE, AAC_HE_V2_PROFILE, AAC_LD_PROFILE, AAC_ELD_PROFILE, AVC_BASELINE_PROFILE = 0x2000, AVC_MAIN_PROFILE, AVC_HIGH_PROFILE, HEVC_MAIN_PROFILE = 0x3000, HEVC_MAIN_10_PROFILE }

-

枚举Codec规格 更多...

-

AudioSampleRate { AUD_SAMPLE_RATE_8000 = 8000, AUD_SAMPLE_RATE_12000 = 12000, AUD_SAMPLE_RATE_11025 = 11025, AUD_SAMPLE_RATE_16000 = 16000, AUD_SAMPLE_RATE_22050 = 22050, AUD_SAMPLE_RATE_24000 = 24000, AUD_SAMPLE_RATE_32000 = 32000, AUD_SAMPLE_RATE_44100 = 44100, AUD_SAMPLE_RATE_48000 = 48000, AUD_SAMPLE_RATE_64000 = 64000, AUD_SAMPLE_RATE_96000 = 96000, AUD_SAMPLE_RATE_INVALID }

-

枚举音频采样率 更多...

-

CodecCapsMask { CODEC_CAP_ADAPTIVE_PLAYBACK = 0x1, CODEC_CAP_SECURE_PLAYBACK = 0x2, CODEC_CAP_TUNNEL_PLAYBACK = 0x4, CODEC_CAP_MULTI_PLANE = 0x10000 }

-

枚举播放能力 更多...

-

CodecProcessMode { PROCESS_BLOCKING_INPUT_BUFFER = 0X1, PROCESS_BLOCKING_OUTPUT_BUFFER = 0X2, PROCESS_BLOCKING_CONTROL_FLOW = 0X4, PROCESS_NONBLOCKING_INPUT_BUFFER = 0X100, PROCESS_NONBLOCKING_OUTPUT_BUFFER = 0X200, PROCESS_NONBLOCKING_CONTROL_FLOW = 0X400 }

-

枚举编解码处理模式 更多...

-

AvCodecRole { MEDIA_ROLETYPE_IMAGE_JPEG = 0, MEDIA_ROLETYPE_VIDEO_AVC, MEDIA_ROLETYPE_VIDEO_HEVC, MEDIA_ROLETYPE_AUDIO_FIRST = 0x10000, MEDIA_ROLETYPE_AUDIO_AAC = 0x10000, MEDIA_ROLETYPE_AUDIO_G711A, MEDIA_ROLETYPE_AUDIO_G711U, MEDIA_ROLETYPE_AUDIO_G726, MEDIA_ROLETYPE_AUDIO_PCM, MEDIA_ROLETYPE_AUDIO_MP3, MEDIA_ROLETYPE_INVALID }

-

枚举音视频编解码组件类型 更多...

-

AudioSampleFormat { AUDIO_SAMPLE_FORMAT_S8, AUDIO_SAMPLE_FORMAT_S8P, AUDIO_SAMPLE_FORMAT_U8, AUDIO_SAMPLE_FORMAT_U8P, AUDIO_SAMPLE_FORMAT_S16, AUDIO_SAMPLE_FORMAT_S16P, AUDIO_SAMPLE_FORMAT_U16, AUDIO_SAMPLE_FORMAT_U16P, AUDIO_SAMPLE_FORMAT_S24, AUDIO_SAMPLE_FORMAT_S24P, AUDIO_SAMPLE_FORMAT_U24, AUDIO_SAMPLE_FORMAT_U24P, AUDIO_SAMPLE_FORMAT_S32, AUDIO_SAMPLE_FORMAT_S32P, AUDIO_SAMPLE_FORMAT_U32, AUDIO_SAMPLE_FORMAT_U32P, AUDIO_SAMPLE_FORMAT_S64, AUDIO_SAMPLE_FORMAT_S64P, AUDIO_SAMPLE_FORMAT_U64, AUDIO_SAMPLE_FORMAT_U64P, AUDIO_SAMPLE_FORMAT_F32, AUDIO_SAMPLE_FORMAT_F32P, AUDIO_SAMPLE_FORMAT_F64, AUDIO_SAMPLE_FORMAT_F64P, AUDIO_SAMPLE_FMT_U8, AUDIO_SAMPLE_FMT_S16, AUDIO_SAMPLE_FMT_S32, AUDIO_SAMPLE_FMT_FLOAT, AUDIO_SAMPLE_FMT_DOUBLE, AUDIO_SAMPLE_FMT_U8P, AUDIO_SAMPLE_FMT_S16P, AUDIO_SAMPLE_FMT_S32P, AUDIO_SAMPLE_FMT_FLOATP, AUDIO_SAMPLE_FMT_DOUBLEP, AUDIO_SAMPLE_FMT_INVALID }

-

枚举音频采样格式 更多...

-

CodecBufferType { CODEC_BUFFER_TYPE_INVALID = 0, CODEC_BUFFER_TYPE_VIRTUAL_ADDR = 0x1, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD = 0x2, CODEC_BUFFER_TYPE_HANDLE = 0x4, CODEC_BUFFER_TYPE_DYNAMIC_HANDLE = 0x8 }

-

定义buffer类型 更多...

-

ShareMemTypes { READ_WRITE_TYPE = 0x1, READ_ONLY_TYPE = 0x2 }

-

枚举共享内存类型 更多...

-

OmxIndexCodecExType { OMX_IndexExtBufferTypeStartUnused = OMX_IndexKhronosExtensions + 0x00a00000, OMX_IndexParamSupportBufferType, OMX_IndexParamUseBufferType, OMX_IndexParamGetBufferHandleUsage }

-

枚举Codec扩展index 更多...

-

OmxVideoExType { OMX_VIDEO_CodingHEVC = 11 }

-

枚举Codec扩展编码类型 更多...

-
- -## 函数 - - - - - - - - - - - - - - - - - - - - - - - - - -

函数

-

描述

-

CodecCallbackTypeGet (struct HdfRemoteService *remote)

-

实例化CodecCallbackType对象。 更多...

-

CodecCallbackTypeRelease (struct CodecCallbackType *instance)

-

释放CodecCallbackType对象。 更多...

-

CodecComponentTypeGet (struct HdfRemoteService *remote)

-

实例化CodecComponentType对象。 更多...

-

CodecComponentTypeRelease (struct CodecComponentType *instance)

-

释放CodecComponentType对象。 更多...

-

GetCodecComponentManager (void)

-

实例化CodecComponentManager对象。 更多...

-

CodecComponentManagerRelease (void)

-

释放CodecComponentManager对象。 更多...

-
- -## 变量 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

变量 名称

-

描述

-

CodecCallbackType::remote

-

指向HdfRemoteService的指针。 更多...

-

( CodecCallbackType::EventHandler )(struct CodecCallbackType *self, enum OMX_EVENTTYPE event, struct EventInfo *info)

-

事件上报。 更多...

-

( CodecCallbackType::EmptyBufferDone )(struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, const struct OmxCodecBuffer *buffer)

-

上报输入buffer编码或者解码处理完毕。 更多...

-

( CodecCallbackType::FillBufferDone )(struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, struct OmxCodecBuffer *buffer)

-

上报输出buffer填充完毕。 更多...

-

( CodecComponentType::GetComponentVersion )(struct CodecComponentType *self, struct CompVerInfo *verInfo)

-

获取Codec组件版本号。 更多...

-

( CodecComponentType::SendCommand )(struct CodecComponentType *self, enum OMX_COMMANDTYPE cmd, uint32_t param, int8_t *cmdData, uint32_t cmdDataLen)

-

发送命令给组件。 更多...

-

( CodecComponentType::GetParameter )(struct CodecComponentType *self, uint32_t paramIndex, int8_t *paramStruct, uint32_t paramStructLen)

-

获取组件参数设置。 更多...

-

( CodecComponentType::SetParameter )(struct CodecComponentType *self, uint32_t index, int8_t *paramStruct, uint32_t paramStructLen)

-

设置组件需要的参数。 更多...

-

( CodecComponentType::GetConfig )(struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen)

-

获取组件的配置结构。 更多...

-

( CodecComponentType::SetConfig )(struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen)

-

设置组件的配置。 更多...

-

( CodecComponentType::GetExtensionIndex )(struct CodecComponentType *self, const char *paramName, uint32_t *indexType)

-

根据字符串获取组件的扩展索引。 更多...

-

( CodecComponentType::GetState )(struct CodecComponentType *self, enum OMX_STATETYPE *state)

-

获取组件的当前状态。 更多...

-

( CodecComponentType::ComponentTunnelRequest )(struct CodecComponentType *self, uint32_t port, int32_t tunneledComp, uint32_t tunneledPort, struct OMX_TUNNELSETUPTYPE *tunnelSetup)

-

设置组件采用Tunnel方式通信。 更多...

-

( CodecComponentType::UseBuffer )(struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer)

-

指定组件端口的buffer。 更多...

-

( CodecComponentType::AllocateBuffer )(struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer)

-

向组件申请端口buffer。 更多...

-

( CodecComponentType::FreeBuffer )(struct CodecComponentType *self, uint32_t portIndex, const struct OmxCodecBuffer *buffer)

-

释放buffer。 更多...

-

( CodecComponentType::EmptyThisBuffer )(struct CodecComponentType *self, const struct OmxCodecBuffer *buffer)

-

编解码输入待处理buffer。 更多...

-

( CodecComponentType::FillThisBuffer )(struct CodecComponentType *self, const struct OmxCodecBuffer *buffer)

-

编解码输出填充buffer。 更多...

-

( CodecComponentType::SetCallbacks )(struct CodecComponentType *self, struct CodecCallbackType *callback, int8_t *appData, uint32_t appDataLen)

-

设置Codec组件的回调函数。 更多...

-

( CodecComponentType::ComponentDeInit )(struct CodecComponentType *self)

-

组件去初始化。 更多...

-

( CodecComponentType::UseEglImage )(struct CodecComponentType *self, struct OmxCodecBuffer *buffer, uint32_t portIndex, int8_t *eglImage, uint32_t eglImageLen)

-

使用已在EGL中申请的空间。 更多...

-

( CodecComponentType::ComponentRoleEnum )(struct CodecComponentType *self, uint8_t *role, uint32_t roleLen, uint32_t index)

-

获取组件角色。 更多...

-
- -## **详细描述** - -Codec模块接口定义。 - -Codec模块涉及自定义类型、音视频编解码组件初始化、参数设置、数据的轮转和控制等。 - -**Since:** - -3.1 - -**Version:** - -2.0 - -## **枚举类型说明** - -## AudioSampleFormat - -``` -enum AudioSampleFormat -``` - -**描述:** - -枚举音频采样格式 - -对于planar的采样格式,每个声道的数据是独立存储在data中;对于packed的采样格式,只使用第一个data,每个声道的数据是交错存储的。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

AUDIO_SAMPLE_FORMAT_S8

-

8bit位宽有符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_S8P

-

8bit位宽有符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_U8

-

8bit位宽无符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_U8P

-

8bit位宽无符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_S16

-

16bit位宽有符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_S16P

-

16bit位宽有符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_U16

-

16bit位宽无符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_U16P

-

16bit位宽无符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_S24

-

24bit位宽有符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_S24P

-

24bit位宽有符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_U24

-

24bit位宽无符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_U24P

-

24bit位宽无符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_S32

-

32bit位宽有符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_S32P

-

32bit位宽有符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_U32

-

32bit位宽无符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_U32P

-

32bit位宽无符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_S64

-

64bit位宽有符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_S64P

-

64bit位宽有符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_U64

-

64bit位宽无符号交织样本

-

-

AUDIO_SAMPLE_FORMAT_U64P

-

64bit位宽无符号非交织样本

-

-

AUDIO_SAMPLE_FORMAT_F32

-

32bit位宽浮点型交织样本

-

-

AUDIO_SAMPLE_FORMAT_F32P

-

64bit位宽浮点型非交织样本

-

-

AUDIO_SAMPLE_FORMAT_F64

-

64bit位宽双精度浮点型交织样本

-

-

AUDIO_SAMPLE_FORMAT_F64P

-

64bit位宽双精度浮点型非交织样本

-

-

AUDIO_SAMPLE_FMT_U8

-

无符号8位整型,打包格式

-

-

AUDIO_SAMPLE_FMT_S16

-

带符号16位整型,打包格式

-

-

AUDIO_SAMPLE_FMT_S32

-

带符号32位整型,打包格式

-

-

AUDIO_SAMPLE_FMT_FLOAT

-

浮点型,打包格式

-

-

AUDIO_SAMPLE_FMT_DOUBLE

-

双精度浮点型,打包格式

-

-

AUDIO_SAMPLE_FMT_U8P

-

无符号8位整型,平面格式

-

-

AUDIO_SAMPLE_FMT_S16P

-

带符号16位整型,平面格式

-

-

AUDIO_SAMPLE_FMT_S32P

-

带符号32位整型,平面格式

-

-

AUDIO_SAMPLE_FMT_FLOATP

-

浮点型,平面格式

-

-

AUDIO_SAMPLE_FMT_DOUBLEP

-

双精度浮点型,平面格式

-

-

AUDIO_SAMPLE_FMT_INVALID

-

无效采样格式

-

-
- -## AudioSampleRate - -``` -enum AudioSampleRate -``` - -**描述:** - -枚举音频采样率 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

AUD_SAMPLE_RATE_8000

-

8K采样率

-

-

AUD_SAMPLE_RATE_12000

-

12K采样率

-

-

AUD_SAMPLE_RATE_11025

-

11.025K采样率

-

-

AUD_SAMPLE_RATE_16000

-

16K采样率

-

-

AUD_SAMPLE_RATE_22050

-

22.050K采样率

-

-

AUD_SAMPLE_RATE_24000

-

24K采样率

-

-

AUD_SAMPLE_RATE_32000

-

32K采样率

-

-

AUD_SAMPLE_RATE_44100

-

44.1K采样率

-

-

AUD_SAMPLE_RATE_48000

-

48K采样率

-

-

AUD_SAMPLE_RATE_64000

-

64K采样率

-

-

AUD_SAMPLE_RATE_96000

-

96K采样率

-

-

AUD_SAMPLE_RATE_INVALID

-

无效采样率

-

-
- -## AvCodecRole - -``` -enum AvCodecRole -``` - -**描述:** - -枚举音视频编解码组件类型 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

MEDIA_ROLETYPE_IMAGE_JPEG

-

图像JPEG媒体类型

-

-

MEDIA_ROLETYPE_VIDEO_AVC

-

视频H.264媒体类型

-

-

MEDIA_ROLETYPE_VIDEO_HEVC

-

视频H.265媒体类型

-

-

MEDIA_ROLETYPE_AUDIO_FIRST

-

音频编解码器类型

-

-

MEDIA_ROLETYPE_AUDIO_AAC

-

音频AAC媒体类型

-

-

MEDIA_ROLETYPE_AUDIO_G711A

-

音频G711A媒体类型

-

-

MEDIA_ROLETYPE_AUDIO_G711U

-

音频G711U媒体类型

-

-

MEDIA_ROLETYPE_AUDIO_G726

-

音频G726媒体类型

-

-

MEDIA_ROLETYPE_AUDIO_PCM

-

音频PCM媒体类型

-

-

MEDIA_ROLETYPE_AUDIO_MP3

-

音频MP3媒体类型

-

-

MEDIA_ROLETYPE_INVALID

-

无效媒体类型

-

-
- -## CodecBufferType - -``` -enum CodecBufferType -``` - -**描述:** - -定义buffer类型 - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

CODEC_BUFFER_TYPE_INVALID

-

无效buffer类型

-

-

CODEC_BUFFER_TYPE_VIRTUAL_ADDR

-

虚拟地址类型

-

-

CODEC_BUFFER_TYPE_AVSHARE_MEM_FD

-

共享内存类型

-

-

CODEC_BUFFER_TYPE_HANDLE

-

handle类型

-

-

CODEC_BUFFER_TYPE_DYNAMIC_HANDLE

-

动态handle类型

-

-
- -## CodecCapsMask - -``` -enum CodecCapsMask -``` - -**描述:** - -枚举播放能力 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

CODEC_CAP_ADAPTIVE_PLAYBACK

-

自适应播放能力

-

-

CODEC_CAP_SECURE_PLAYBACK

-

安全播放能力

-

-

CODEC_CAP_TUNNEL_PLAYBACK

-

通道播放能力

-

-

CODEC_CAP_MULTI_PLANE

-

视频图像平面/音频通道平面能力

-

-
- -## CodecProcessMode - -``` -enum CodecProcessMode -``` - -**描述:** - -枚举编解码处理模式 - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

PROCESS_BLOCKING_INPUT_BUFFER

-

同步模式输入buffer

-

-

PROCESS_BLOCKING_OUTPUT_BUFFER

-

同步模式输出buffer

-

-

PROCESS_BLOCKING_CONTROL_FLOW

-

同步模式控制流

-

-

PROCESS_NONBLOCKING_INPUT_BUFFER

-

异步模式输入buffer

-

-

PROCESS_NONBLOCKING_OUTPUT_BUFFER

-

异步模式输出buffer

-

-

PROCESS_NONBLOCKING_CONTROL_FLOW

-

异步模式控制流

-

-
- -## CodecType - -``` -enum CodecType -``` - -**描述:** - -枚举编解码的类型 - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

VIDEO_DECODER

-

视频解码类型

-

-

VIDEO_ENCODER

-

视频编码类型

-

-

AUDIO_DECODER

-

音频解码类型

-

-

AUDIO_ENCODER

-

音频编码类型

-

-

INVALID_TYPE

-

无效类型

-

-
- -## OmxIndexCodecExType - -``` -enum OmxIndexCodecExType -``` - -**描述:** - -枚举Codec扩展index - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

OMX_IndexExtBufferTypeStartUnused

-

BufferType 扩展index

-

-

OMX_IndexParamSupportBufferType

-

SupportBuffer类型

-

-

OMX_IndexParamUseBufferType

-

UseBuffer类型

-

-

OMX_IndexParamGetBufferHandleUsage

-

GetBufferHandleUsage类型

-

-
- -## OmxVideoExType - -``` -enum OmxVideoExType -``` - -**描述:** - -枚举Codec扩展编码类型 - - - - - - - - - - -

枚举值

-

描述

-

OMX_VIDEO_CodingHEVC

-

HEVC编码类型

-

-
- -## Profile - -``` -enum Profile -``` - -**描述:** - -枚举Codec规格 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

INVALID_PROFILE

-

无效的规格

-

-

AAC_LC_PROFILE

-

AAC低复杂度规格

-

-

AAC_MAIN_PROFILE

-

AAC主规格

-

-

AAC_HE_V1_PROFILE

-

AAC高效率和频带重现规格,又称为HEAAC,AAC+,或者AACPlusV1

-

-

AAC_HE_V2_PROFILE

-

AAC高效率和频带重现以及变量立体声规格,又称为AAC++或者AACPlusV2

-

-

AAC_LD_PROFILE

-

AAC低延迟规格

-

-

AAC_ELD_PROFILE

-

AAC增强型低延迟规格

-

-

AVC_BASELINE_PROFILE

-

H.264低规格

-

-

AVC_MAIN_PROFILE

-

H.264主规格

-

-

AVC_HIGH_PROFILE

-

H.264高规格

-

-

HEVC_MAIN_PROFILE

-

H.265主规格

-

-

HEVC_MAIN_10_PROFILE

-

H.265 10比特主规格

-

-
- -## ShareMemTypes - -``` -enum ShareMemTypes -``` - -**描述:** - -枚举共享内存类型 - - - - - - - - - - - - - -

枚举值

-

描述

-

READ_WRITE_TYPE

-

可读可写的共享内存类型

-

-

READ_ONLY_TYPE

-

可读的共享内存类型

-

-
- -## **函数说明** - -## CodecCallbackTypeGet\(\) - -``` -struct CodecCallbackType* CodecCallbackTypeGet (struct HdfRemoteService * remote) -``` - -**描述:** - -实例化CodecCallbackType对象。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

remote

-

输入参数,指向HdfRemoteService的指针。

-
- -**返回:** - -实例化CodecCallbackType对象。 - -**Since:** - -3.1 - -## CodecCallbackTypeRelease\(\) - -``` -void CodecCallbackTypeRelease (struct CodecCallbackType * instance) -``` - -**描述:** - -释放CodecCallbackType对象。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

instance

-

输入参数,指向CodecCallbackType实例的指针。

-
- -**Since:** - -3.1 - -## CodecComponentManagerRelease\(\) - -``` -void CodecComponentManagerRelease (void ) -``` - -**描述:** - -释放CodecComponentManager对象。 - -**Since:** - -3.1 - -## CodecComponentTypeGet\(\) - -``` -struct CodecComponentType* CodecComponentTypeGet (struct HdfRemoteService * remote) -``` - -**描述:** - -实例化CodecComponentType对象。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

remote

-

输入参数,指向RemoteService的指针。

-
- -**返回:** - -实例化的CodecComponentType对象。 - -**Since:** - -3.1 - -## CodecComponentTypeRelease\(\) - -``` -void CodecComponentTypeRelease (struct CodecComponentType * instance) -``` - -**描述:** - -释放CodecComponentType对象。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

instance

-

输入参数,指向CodecComponentType实例的指针。

-
- -**Since:** - -3.1 - -## GetCodecComponentManager\(\) - -``` -struct CodecComponentManager* GetCodecComponentManager (void ) -``` - -**描述:** - -实例化CodecComponentManager对象。 - -**返回:** - -实例化的CodecComponentManager对象。 - -**Since:** - -3.1 - -## **变量说明** - -## AllocateBuffer - -``` -int32_t(* CodecComponentType::AllocateBuffer) (struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer) -``` - -**描述:** - -向组件申请端口buffer。 - -向组件申请分配新的buffer,此接口在以下情况下使用: - -- 当组件处于OMX\_StateLoaded状态,并且用户已经向组件发送OMX\_StateIdle状态转换请求。 -- 当组件处于OMX\_StateWaitForResources状态,所需的资源可用,并且组件已准备好进入OMX\_StateIdle状态。 -- 在去使能端口上,组件处于OMX\_StateExecuting、OMX\_StatePause或OMX\_StateIdle状态。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-

portIndex

-

输入参数,指定的组件端口。

-

buffer

-

输入输出参数,指向要申请的buffer结构体OmxCodecBuffer指针。

-
- -**返回:** - -HDF\_SUCCESS 表示申请buffer成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,申请buffer失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,申请buffer失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,申请buffer失败。 - -**Since:** - -3.1 - -## ComponentDeInit - -``` -int32_t(* CodecComponentType::ComponentDeInit) (struct CodecComponentType *self) -``` - -**描述:** - -组件去初始化。 - -调用此接口使组件去初始化,当组件处于OMX\_StateLoaded状态时,将直接关闭组件。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-
- -**返回:** - -HDF\_SUCCESS 表示去初始化成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,去初始化失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,去初始化失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,去初始化失败。 - -**Since:** - -3.1 - -## ComponentRoleEnum - -``` -int32_t(* CodecComponentType::ComponentRoleEnum) (struct CodecComponentType *self, uint8_t *role, uint32_t roleLen, uint32_t index) -``` - -**描述:** - -获取组件角色。 - -根据组件角色索引获取对应组件角色。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-

role

-

输出参数,角色名称。

-

roleLen

-

输入参数,role字节数。

-

index

-

输入参数,角色的索引,一个组件可能支持多种角色。

-
- -**返回:** - -HDF\_SUCCESS 表示获取角色成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,获取角色失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,获取角色失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,获取角色失败。 - -**Since:** - -3.1 - -## ComponentTunnelRequest - -``` -int32_t(* CodecComponentType::ComponentTunnelRequest) (struct CodecComponentType *self, uint32_t port, int32_t tunneledComp, uint32_t tunneledPort, struct OMX_TUNNELSETUPTYPE *tunnelSetup) -``` - -**描述:** - -设置组件采用Tunnel方式通信。 - -当组件处于OMX\_StateLoaded 状态时,用户通过调用此接口确定组件是否可以进行Tunnel传输,如果可以则设置组件的Tunnel传输。 - -**参数:** - - - - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-

port

-

输入参数,组件设置的端口。

-

tunneledComp

-

输入参数,组件的tunnel handle。

-

tunneledPort

-

输入参数,组件用来Tunnel通信的端口。

-

tunnelSetup

-

输入输出参数,指向Tunnel设置的结构体OMX_TUNNELSETUPTYPE指针。

-
- -**返回:** - -HDF\_SUCCESS 表示设置成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,设置失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,设置失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,设置失败。 - -**Since:** - -3.1 - -## EmptyBufferDone - -``` -int32_t(* CodecCallbackType::EmptyBufferDone) (struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, const struct OmxCodecBuffer *buffer) -``` - -**描述:** - -上报输入buffer编码或者解码处理完毕。 - -组件运行过程中向上报告输入buffer已经使用完毕。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的callback指针。

-

appData

-

输入参数,上层数据,通常是设置回调时给入的上层实例。

-

appDataLen

-

输入参数,appData字节数。

-

buffer

-

输入参数,已经处理完毕的输入buffer信息OmxCodecBuffer

-
- -**返回:** - -HDF\_SUCCESS 表示上报成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,上报失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,上报失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,上报失败。 - -**Since:** - -3.1 - -## EmptyThisBuffer - -``` -int32_t(* CodecComponentType::EmptyThisBuffer) (struct CodecComponentType *self, const struct OmxCodecBuffer *buffer) -``` - -**描述:** - -编解码输入待处理buffer。 - -此接口在组件处于OMX\_StateExecuting或者OMX\_StatePause状态时调用。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-

buffer

-

输入参数,指向OmxCodecBuffer结构体的指针。

-
- -**返回:** - -HDF\_SUCCESS 表示输入buffer成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,输入buffer失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,输入buffer失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,输入buffer失败。 - -**Since:** - -3.1 - -## EventHandler - -``` -int32_t(* CodecCallbackType::EventHandler) (struct CodecCallbackType *self, enum OMX_EVENTTYPE event, struct EventInfo *info) -``` - -**描述:** - -事件上报。 - -组件运行过程中向上报告错误事件、命令完成事件、端口设置更改事件等。 - -- 当eEvent为OMX\_EventCmdComplete,eventData为NULL,data1数据为OMX\_COMMANDTYPE,此时,当data1为OMX\_CommandStateSet,data2表示状态,其它情况下,data2表示端口。 -- 当event为OMX\_EventError时,data1表示错误码,data2和eventData都为0。 -- 当event为OMX\_EventMark时,data1和data2都为0,eventData指向mark指针。 -- 当event为OMX\_EventPortSettingsChanged时,data1表示端口,data2和eventData为0。 -- 当event为OMX\_EventBufferFlag时,data1表示端口,data2表示flag,eventData为0。 -- 当event为OMX\_EventResourcesAcquired或OMX\_EventDynamicResourcesAvailable时,data1、data2和eventData都为0。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的callback指针。

-

event

-

输入参数,要通知的事件类型,详见OMX_EVENTTYPE

-

info

-

输入参数,指向事件上报携带的信息指针,详见EventInfo

-
- -**返回:** - -HDF\_SUCCESS 表示事件上报成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,事件上报失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,事件上报失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,事件上报失败。 - -**Since:** - -3.1 - -## FillBufferDone - -``` -int32_t(* CodecCallbackType::FillBufferDone) (struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, struct OmxCodecBuffer *buffer) -``` - -**描述:** - -上报输出buffer填充完毕。 - -组件运行过程中向上报告输出buffer已经填充完毕。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的callback指针。

-

appData

-

输入参数,上层数据,通常是设置回调时给入的上层实例。

-

appDataLen

-

输入参数,appData字节数。

-

buffer

-

输入参数,已经填充完毕的buffer信息OmxCodecBuffer

-
- -**返回:** - -HDF\_SUCCESS 表示上报成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,上报失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,上报失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,上报失败。 - -**Since:** - -3.1 - -## FillThisBuffer - -``` -int32_t(* CodecComponentType::FillThisBuffer) (struct CodecComponentType *self, const struct OmxCodecBuffer *buffer) -``` - -**描述:** - -编解码输出填充buffer。 - -此接口在组件处于OMX\_StateExecuting或者OMX\_StatePause状态时调用。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-

buffer

-

输入参数,指向OmxCodecBuffer结构体的指针。

-
- -**返回:** - -HDF\_SUCCESS 表示填充buffer成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,填充buffer失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,填充buffer失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,填充buffer失败。 - -**Since:** - -3.1 - -## FreeBuffer - -``` -int32_t(* CodecComponentType::FreeBuffer) (struct CodecComponentType *self, uint32_t portIndex, const struct OmxCodecBuffer *buffer) -``` - -**描述:** - -释放buffer。 - -此接口在以下情况下使用: - -- 当组件处于OMX\_StateIdle状态,并且已经向组件发送OMX\_StateLoaded状态转换请求。 -- 在去使能端口上,组件处于OMX\_StateExecuting、OMX\_StatePause或OMX\_StateIdle时调用。 -- 此接口调用可随时进行,但是如果未在上述情况下执行,可能会导致组件上报OMX\_ErrorPortUnpopulated事件。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-

portIndex

-

输入参数,指定的组件端口。

-

buffer

-

输入参数,指向OmxCodecBuffer结构体的指针。

-
- -**返回:** - -HDF\_SUCCESS 表示释放buffer成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,释放buffer失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,释放buffer失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,释放buffer失败。 - -**Since:** - -3.1 - -## GetComponentVersion - -``` -int32_t(* CodecComponentType::GetComponentVersion) (struct CodecComponentType *self, struct CompVerInfo *verInfo) -``` - -**描述:** - -获取Codec组件版本号。 - -通过查询组件,返回组件版本信息。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-

verInfo

-

输出参数,指向组件版本信息的指针,详见CompVerInfo

-
- -**返回:** - -HDF\_SUCCESS 表示获取版本号成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,获取版本号失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,获取版本号失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,获取版本号失败。 - -**Since:** - -3.1 - -## GetConfig - -``` -int32_t(* CodecComponentType::GetConfig) (struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen) -``` - -**描述:** - -获取组件的配置结构。 - -加载组件后可以随时调用此接口获取组件的配置。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-

index

-

输入参数,待填充结构的索引,详见OMX_INDEXTYPE

-

cfgStruct

-

输入输出参数,指向由组件填充的应用程序分配的结构体指针。

-

cfgStructLen

-

输入参数,上层传入的cfgStruct字节数。

-
- -**返回:** - -HDF\_SUCCESS 表示获取配置成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,获取配置失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,获取配置失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,获取配置失败。 - -**Since:** - -3.1 - -## GetExtensionIndex - -``` -int32_t(* CodecComponentType::GetExtensionIndex) (struct CodecComponentType *self, const char *paramName, uint32_t *indexType) -``` - -**描述:** - -根据字符串获取组件的扩展索引。 - -将扩展字符串转换为Openmax IL结构索引。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-

paramName

-

输入参数,组件用来转换为配置索引的字符串。

-

indexType

-

输出参数,由paramName转换的配置索引,详见OMX_INDEXTYPE

-
- -**返回:** - -HDF\_SUCCESS 表示获取扩展索引成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,获取扩展索引失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,获取扩展索引失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,获取扩展索引失败。 - -**Since:** - -3.1 - -## GetParameter - -``` -int32_t(* CodecComponentType::GetParameter) (struct CodecComponentType *self, uint32_t paramIndex, int8_t *paramStruct, uint32_t paramStructLen) -``` - -**描述:** - -获取组件参数设置。 - -当组件处于除了OMX\_StateInvalid(组件状态异常)之外的其他状态,用户可通过此接口获取组件参数。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-

paramIndex

-

输入参数,待填充结构的索引,详见OMX_INDEXTYPE

-

paramStruct

-

输入输出参数,指向由组件填充的应用程序分配的结构体指针。

-

paramStructLen

-

输入参数,paramStruct字节数。

-
- -**返回:** - -HDF\_SUCCESS 表示获取参数成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,获取参数失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,获取参数失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,获取参数失败。 - -**Since:** - -3.1 - -## GetState - -``` -int32_t(* CodecComponentType::GetState) (struct CodecComponentType *self, enum OMX_STATETYPE *state) -``` - -**描述:** - -获取组件的当前状态。 - -用户可调用此接口获取组件的当前状态,组件状态详见**OMX\_STATETYPE**。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-

state

-

输出参数,指向获取到的状态指针,组件状态详见OMX_STATETYPE

-
- -**返回:** - -HDF\_SUCCESS 表示获取状态成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,获取状态失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,获取状态失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,获取状态失败。 - -**Since:** - -3.1 - -## remote - -``` -struct HdfRemoteService* CodecCallbackType::remote -``` - -**描述:** - -指向HdfRemoteService的指针。 - -**Since:** - -3.1 - -## SendCommand - -``` -int32_t(* CodecComponentType::SendCommand) (struct CodecComponentType *self, enum OMX_COMMANDTYPE cmd, uint32_t param, int8_t *cmdData, uint32_t cmdDataLen) -``` - -**描述:** - -发送命令给组件。 - -发送命令给组件,当命令为设置状态时,会有事件回调通知结果给上层,其他命令则没有事件上报。 - -**参数:** - - - - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-

cmd

-

输入参数,组件要执行的命令,详见OMX_COMMANDTYPE

-

param

-

输入参数,组件要执行的命令携带的参数。

-
  • 当cmd为OMX_CommandStateSet时,param的值详见OMX_STATETYPE
  • 当cmd为OMX_CommandFlush、OMX_CommandPortDisable、OMX_CommandPortEnable、OMX_CommandMarkBuffer时,param为目标端口。
-

cmdData

-

输入参数,当cmd为OMX_CommandMarkBuffer时,指向OMX_MARKTYPE结构体指针。

-

cmdDataLen

-

输入参数,上层传递的cmdData字节数。

-
- -**返回:** - -HDF\_SUCCESS 表示发送命令成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,发送命令失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,发送命令失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,发送命令失败。 - -**Since:** - -3.1 - -## SetCallbacks - -``` -int32_t(* CodecComponentType::SetCallbacks) (struct CodecComponentType *self, struct CodecCallbackType *callback, int8_t *appData, uint32_t appDataLen) -``` - -**描述:** - -设置Codec组件的回调函数。 - -当组件处于OMX\_StateLoaded状态时,使用此回调函数向上通知事件以及上报可用的输入输出信息。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-

callback

-

输入参数,指向回调函数CodecCallbackType对象指针。

-

appData

-

输入参数,指向应用程序定义的值的指针,该值将在回调期间返回。

-

appDataLen

-

输入参数,上层传递的appData字节数。

-
- -**返回:** - -HDF\_SUCCESS 表示设置回调成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,设置回调失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,设置回调失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,设置回调失败。 - -**Since:** - -3.1 - -## SetConfig - -``` -int32_t(* CodecComponentType::SetConfig) (struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen) -``` - -**描述:** - -设置组件的配置。 - -加载组件后可以随时调用此接口设置组件的配置。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-

index

-

输入参数,要设置的结构索引,详见OMX_INDEXTYPE

-

cfgStruct

-

输入参数,指向组件用于初始化的应用程序分配结构的指针。

-

cfgStructLen

-

输入参数,cfgStruct字节数。

-
- -**返回:** - -HDF\_SUCCESS 表示设置配置成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,设置失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,设置失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,设置失败。 - -**Since:** - -3.1 - -## SetParameter - -``` -int32_t(* CodecComponentType::SetParameter) (struct CodecComponentType *self, uint32_t index, int8_t *paramStruct, uint32_t paramStructLen) -``` - -**描述:** - -设置组件需要的参数。 - -当组件处于OMX\_StateLoaded、OMX\_StateWaitForResources状态或者端口是去使能状态,用户可通过此接口设置组件参数。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-

index

-

输入参数,要设置的结构索引,详见OMX_INDEXTYPE

-

paramStruct

-

输入参数,指向组件用于初始化的应用程序分配结构的指针。

-

paramStructLen

-

输入参数,paramStruct字节数。

-
- -**返回:** - -HDF\_SUCCESS 表示设置参数成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,设置参数失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,设置参数失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,设置参数失败。 - -**Since:** - -3.1 - -## UseBuffer - -``` -int32_t(* CodecComponentType::UseBuffer) (struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer) -``` - -**描述:** - -指定组件端口的buffer。 - -此接口在以下情况下使用: - -- 当组件处于OMX\_StateLoaded状态,并且用户已经向组件发送OMX\_StateIdle状态转换请求。 -- 当组件处于OMX\_StateWaitForResources状态,所需的资源可用,并且组件已准备好进入OMX\_StateIdle状态。 -- 在去使能端口上,组件处于OMX\_StateExecuting、OMX\_StatePause或OMX\_StateIdle状态。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-

portIndex

-

输入参数,指定的组件端口。

-

buffer

-

输入输出参数,指向要使用的buffer结构体OmxCodecBuffer指针。

-
- -**返回:** - -HDF\_SUCCESS 表示指定成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,指定失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,指定失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,指定失败。 - -**Since:** - -3.1 - -## UseEglImage - -``` -int32_t(* CodecComponentType::UseEglImage) (struct CodecComponentType *self, struct OmxCodecBuffer *buffer, uint32_t portIndex, int8_t *eglImage, uint32_t eglImageLen) -``` - -**描述:** - -使用已在EGL中申请的空间。 - -此接口在以下情况下使用: - -- 当组件处于OMX\_StateLoaded状态,并且已经向组件发送OMX\_StateIdle状态转换请求。 -- 当组件处于OMX\_StateWaitForResources状态,所需的资源可用,并且组件已准备好进入OMX\_StateIdle状态。 -- 在去使能端口上,组件处于OMX\_StateExecuting、OMX\_StatePause或OMX\_StateIdle状态。 - -**参数:** - - - - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

self

-

输入参数,指向要操作的Codec组件指针。

-

buffer

-

输入输出参数,指向OmxCodecBuffer结构体的指针。

-

portIndex

-

输入参数,指定的组件端口。

-

eglImage

-

输入参数,EGL申请的图像指针。

-

eglImageLen

-

输入参数,eglImage字节数。

-
- -**返回:** - -HDF\_SUCCESS 表示使用成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,使用失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,使用失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,使用失败。 - -**Since:** - -3.1 - diff --git a/zh-cn/device-dev/api/toctopics/_codec_callback_type.md b/zh-cn/device-dev/api/toctopics/_codec_callback_type.md deleted file mode 100644 index 9dbfa51de3..0000000000 --- a/zh-cn/device-dev/api/toctopics/_codec_callback_type.md +++ /dev/null @@ -1,54 +0,0 @@ -# CodecCallbackType - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

remote

-

指向HdfRemoteService的指针。 更多...

-

( EventHandler )(struct CodecCallbackType *self, enum OMX_EVENTTYPE event, struct EventInfo *info)

-

事件上报。 更多...

-

( EmptyBufferDone )(struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, const struct OmxCodecBuffer *buffer)

-

上报输入buffer编码或者解码处理完毕。 更多...

-

( FillBufferDone )(struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, struct OmxCodecBuffer *buffer)

-

上报输出buffer填充完毕。 更多...

-
- -## **详细描述** - -Codec回调接口定义。 - -提供了以下3种回调函数: - -- 组件错误事件、命令完成事件、端口设置等事件回调,详见EventHandler。 -- 输入端口处理完buffer回调,详见EmptyBufferDone。 -- 输出端口填充完buffer回调,详见FillBufferDone。 通过以下两种方式注册回调: -- 创建组件时,通过CreateComponent方法。 -- 当组件处于OMX\_StateLoaded状态时,通过SetCallbacks方法注册回调。 - diff --git a/zh-cn/device-dev/api/toctopics/_codec_comp_capability.md b/zh-cn/device-dev/api/toctopics/_codec_comp_capability.md deleted file mode 100644 index d51761b301..0000000000 --- a/zh-cn/device-dev/api/toctopics/_codec_comp_capability.md +++ /dev/null @@ -1,178 +0,0 @@ -# CodecCompCapability - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

role

-

媒体类型。

-

type

-

编解码类型。

-

compName [NAME_LENGTH]

-

编解码组件名称。

-

supportProfiles [PROFILE_NUM]

-

支持的profiles,详见Profile

-

maxInst

-

最大实例。

-

isSoftwareCodec

-

软件编解码还是硬件编解码。

-

processModeMask

-

编解码处理模式掩码,详见CodecProcessMode

-

capsMask

-

编解码播放能力掩码,详见CodecCapsMask

-

bitRate

-

支持的码率范围。

-

port

-

支持的音视频编解码能力。

-
- -## **详细描述** - -定义Codec编解码能力。 - -## **类成员变量说明** - -## bitRate - -``` -RangeValue CodecCompCapability::bitRate -``` - -**描述:** - -支持的码率范围 - -## capsMask - -``` -uint32_t CodecCompCapability::capsMask -``` - -**描述:** - -编解码播放能力掩码,详见[CodecCapsMask](_codec.md#ga9e2fbfb8a5881de2f495933f90f23b3f). - -## compName - -``` -char CodecCompCapability::compName[NAME_LENGTH] -``` - -**描述:** - -编解码组件名称 - -## isSoftwareCodec - -``` -bool CodecCompCapability::isSoftwareCodec -``` - -**描述:** - -软件编解码还是硬件编解码 - -## maxInst - -``` -int32_t CodecCompCapability::maxInst -``` - -**描述:** - -最大实例 - -## port - -``` -PortCap CodecCompCapability::port -``` - -**描述:** - -支持的音视频编解码能力 - -## processModeMask - -``` -int32_t CodecCompCapability::processModeMask -``` - -**描述:** - -编解码处理模式掩码,详见[CodecProcessMode](_codec.md#ga5bec468886b760c542669b1615613dc4). - -## role - -``` -AvCodecRole CodecCompCapability::role -``` - -**描述:** - -媒体类型 - -## supportProfiles - -``` -int32_t CodecCompCapability::supportProfiles[PROFILE_NUM] -``` - -**描述:** - -支持的profiles,详见[Profile](_codec.md#ga85b10143618f300ff4f5bc6d45c72c01) - -## type - -``` -CodecType CodecCompCapability::type -``` - -**描述:** - -编解码类型 - diff --git a/zh-cn/device-dev/api/toctopics/_codec_component_manager.md b/zh-cn/device-dev/api/toctopics/_codec_component_manager.md deleted file mode 100644 index 797864db65..0000000000 --- a/zh-cn/device-dev/api/toctopics/_codec_component_manager.md +++ /dev/null @@ -1,211 +0,0 @@ -# CodecComponentManager - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

(GetComponentNum )()

-

获取Codec编解码组件数量。 更多...

-

( GetComponentCapabilityList )(CodecCompCapability *capList, int32_t count)

-

获取编解码能力集表。 更多...

-

( CreateComponent )(struct CodecComponentType **component, char *compName, void *appData, int32_t appDataSize, struct CodecCallbackType *callbacks)

-

创建Codec组件实例。 更多...

-

( DestoryComponent )(struct CodecComponentType *component)

-

销毁组件实例。 更多...

-
- -## **详细描述** - -Codec组件管理类接口定义。 - -主要提供以下功能: - -- 获取Codec编解码组件数量以及编解码能力集表。 -- 创建/销毁Codec组件。 - -## **类成员变量说明** - -## CreateComponent - -``` -int32_t(* CodecComponentManager::CreateComponent) (struct CodecComponentType **component, char *compName, void *appData, int32_t appDataSize, struct CodecCallbackType *callbacks) -``` - -**描述:** - -创建Codec组件实例。 - -根据组件名称创建Codec组件实例。 - -**参数:** - - - - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

component

-

输出参数,指向Codec组件的指针。

-

compName

-

输入参数,组件名称。

-

appData

-

输入参数,指向应用程序定义的值的指针,该值将在回调期间返回。

-

appDataSize

-

输入参数,appData字节数。

-

callbacks

-

输入参数,回调接口,指向OMX_CALLBACKTYPE结构的指针,详见CodecCallbackType

-
- -**返回:** - -HDF\_SUCCESS 表示创建组件成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,创建组件失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,创建组件失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,创建组件失败。 - -## DestoryComponent - -``` -int32_t(* CodecComponentManager::DestoryComponent) (struct CodecComponentType *component) -``` - -**描述:** - -销毁组件实例。 - -销毁指定的Codec组件。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

component

-

输入参数,需要销毁的Codec组件。

-
- -**返回:** - -HDF\_SUCCESS 表示销毁组件成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,销毁组件失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,销毁组件失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,销毁组件失败。 - -## GetComponentCapabilityList - -``` -int32_t(* CodecComponentManager::GetComponentCapabilityList) (CodecCompCapability *capList, int32_t count) -``` - -**描述:** - -获取编解码能力集表。 - -用户可通过此接口了解Codec模块提供了哪些编解码能力,对应的能力体现在[CodecCompCapability](_codec_comp_capability.md)结构体。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

capList

-

输出参数,返回全部组件的能力集表CodecCompCapability

-

count

-

输入参数,编解码组件数量,由GetComponentNum获得。

-
- -**返回:** - -HDF\_SUCCESS 表示获取能力集表成功。 - -HDF\_ERR\_INVALID\_PARAM 表示参数无效,获取能力集表失败。 - -HDF\_ERR\_INVALID\_OBJECT 表示对象无效,获取能力集表失败。 - -HDF\_ERR\_MALLOC\_FAIL 表示申请内存失败,获取能力集表失败。 - -## GetComponentNum - -``` -int32_t(* CodecComponentManager::GetComponentNum) () -``` - -**描述:** - -获取Codec编解码组件数量。 - -通过此接口获取Codec编解码组件数量,用来获取全部编解码能力集。 - -**返回:** - -Codec编解码组件数量。 - diff --git a/zh-cn/device-dev/api/toctopics/_codec_component_type.md b/zh-cn/device-dev/api/toctopics/_codec_component_type.md deleted file mode 100644 index d34fcae662..0000000000 --- a/zh-cn/device-dev/api/toctopics/_codec_component_type.md +++ /dev/null @@ -1,125 +0,0 @@ -# CodecComponentType - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

( GetComponentVersion )(struct CodecComponentType *self, struct CompVerInfo *verInfo)

-

获取Codec组件版本号。 更多...

-

( SendCommand )(struct CodecComponentType *self, enum OMX_COMMANDTYPE cmd, uint32_t param, int8_t *cmdData, uint32_t cmdDataLen)

-

发送命令给组件。 更多...

-

( GetParameter )(struct CodecComponentType *self, uint32_t paramIndex, int8_t *paramStruct, uint32_t paramStructLen)

-

获取组件参数设置。 更多...

-

( SetParameter )(struct CodecComponentType *self, uint32_t index, int8_t *paramStruct, uint32_t paramStructLen)

-

设置组件需要的参数。 更多...

-

( GetConfig )(struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen)

-

获取组件的配置结构。 更多...

-

( SetConfig )(struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen)

-

设置组件的配置。 更多...

-

( GetExtensionIndex )(struct CodecComponentType *self, const char *paramName, uint32_t *indexType)

-

根据字符串获取组件的扩展索引。 更多...

-

( GetState )(struct CodecComponentType *self, enum OMX_STATETYPE *state)

-

获取组件的当前状态。 更多...

-

( ComponentTunnelRequest )(struct CodecComponentType *self, uint32_t port, int32_t tunneledComp, uint32_t tunneledPort, struct OMX_TUNNELSETUPTYPE *tunnelSetup)

-

设置组件采用Tunnel方式通信。 更多...

-

( UseBuffer )(struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer)

-

指定组件端口的buffer。 更多...

-

( AllocateBuffer )(struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer)

-

向组件申请端口buffer。 更多...

-

( FreeBuffer )(struct CodecComponentType *self, uint32_t portIndex, const struct OmxCodecBuffer *buffer)

-

释放buffer。 更多...

-

( EmptyThisBuffer )(struct CodecComponentType *self, const struct OmxCodecBuffer *buffer)

-

编解码输入待处理buffer。 更多...

-

( FillThisBuffer )(struct CodecComponentType *self, const struct OmxCodecBuffer *buffer)

-

编解码输出填充buffer。 更多...

-

( SetCallbacks )(struct CodecComponentType *self, struct CodecCallbackType *callback, int8_t *appData, uint32_t appDataLen)

-

设置Codec组件的回调函数。 更多...

-

( ComponentDeInit )(struct CodecComponentType *self)

-

组件去初始化。 更多...

-

( UseEglImage )(struct CodecComponentType *self, struct OmxCodecBuffer *buffer, uint32_t portIndex, int8_t *eglImage, uint32_t eglImageLen)

-

使用已在EGL中申请的空间。 更多...

-

( ComponentRoleEnum )(struct CodecComponentType *self, uint8_t *role, uint32_t roleLen, uint32_t index)

-

获取组件角色。 更多...

-
- -## **详细描述** - -Codec组件接口定义。 - -主要提供以下功能: - -- 获取组件的版本。 -- 组件参数配置的获取和设置。 -- 发送命令至组件及获取组件状态。 -- 设置回调函数。 -- 设置/释放组件使用的buffer。 -- 编解码输入输出buffer处理 具体方法使用详见函数说明。 - diff --git a/zh-cn/device-dev/api/toctopics/_comp_ver_info.md b/zh-cn/device-dev/api/toctopics/_comp_ver_info.md deleted file mode 100644 index 26b6022446..0000000000 --- a/zh-cn/device-dev/api/toctopics/_comp_ver_info.md +++ /dev/null @@ -1,88 +0,0 @@ -# CompVerInfo - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

compName [NAME_LENGTH]

-

组件名称

-

compUUID [UUID_LENGTH]

-

组件的UUID标识符

-

compVersion

-

OMX组件版本信息

-

specVersion

-

构建组件所依据的规范的版本信息

-
- -## **Details** - -## **详细描述** - -## **类成员变量说明** - -## compName - -``` -char CompVerInfo::compName[NAME_LENGTH] -``` - -**描述:** - -组件名称 - -## compUUID - -``` -uint8_t CompVerInfo::compUUID[UUID_LENGTH] -``` - -**描述:** - -组件的UUID标识符 - -## compVersion - -``` -union OMX_VERSIONTYPE CompVerInfo::compVersion -``` - -**描述:** - -OMX组件版本信息 - -## specVersion - -``` -union OMX_VERSIONTYPE CompVerInfo::specVersion -``` - -**描述:** - -构建组件所依据的规范的版本信息 - diff --git a/zh-cn/device-dev/api/toctopics/_credential_info.md b/zh-cn/device-dev/api/toctopics/_credential_info.md deleted file mode 100644 index 05ea67c788..0000000000 --- a/zh-cn/device-dev/api/toctopics/_credential_info.md +++ /dev/null @@ -1,141 +0,0 @@ -# CredentialInfo - -## **概述** - -**所属模块:** - -[HdfUserAuth](_hdf_user_auth.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

credentialId

-

认证凭据ID。

-

index

-

用户认证框架的执行器索引。

-

templateId

-

认证凭据模版ID。

-

authType

-

用户认证凭据类型AuthType}。

-

executorType

-

执行器类型。

-

executorId

-

既定用户认证凭据类型的执行器ID。

-

extraInfo

-

其他相关信息,用于支持信息扩展。

-
- -## **详细描述** - -认证凭据信息。 - -**自动:** - -3.2 - -**Version:** - -1.0 - -## **类成员变量说明** - -## authType - -``` -enum AuthType CredentialInfo::authType -``` - -**描述:** - -用户认证凭据类型。 - -## credentialId - -``` -unsigned long CredentialInfo::credentialId -``` - -**描述:** - -认证凭据ID。 - -## executorId - -``` -unsigned int CredentialInfo::executorId -``` - -**描述:** - -既定用户认证凭据类型的执行器ID。 - -## executorType - -``` -unsigned int CredentialInfo::executorType -``` - -**描述:** - -执行器类型。 - -## extraInfo - -``` -unsigned char [] CredentialInfo::extraInfo -``` - -**描述:** - -其他相关信息,用于支持信息扩展。 - -## index - -``` -unsigned long CredentialInfo::index -``` - -**描述:** - -用户认证框架的执行器索引。 - -## templateId - -``` -unsigned long CredentialInfo::templateId -``` - -**描述:** - -认证凭据模版ID。 - diff --git a/zh-cn/device-dev/api/toctopics/_d_a_c.md b/zh-cn/device-dev/api/toctopics/_d_a_c.md deleted file mode 100644 index ee6e37795c..0000000000 --- a/zh-cn/device-dev/api/toctopics/_d_a_c.md +++ /dev/null @@ -1,240 +0,0 @@ -# DAC - -## **汇总** - -## 文件 - - - - - - - - - - -

文件

-

描述

-

dac_if.h

-

声明标准DAC接口函数。

-
- -## 类 - - - - - - - - - - -

-

描述

-

DacIoMsg

-

DAC设备信息传输结构体 更多...

-
- -## 函数 - - - - - - - - - - - - - - - - -

函数

-

描述

-

DacOpen (uint32_t number)

-

获取DAC控制器的句柄。 更多...

-

DacClose (DevHandle handle)

-

释放DAC控制器的句柄。 更多...

-

DacWrite (DevHandle handle, uint32_t channel, uint32_t val)

-

启动DAC设备进行传输,将目标值写入指定的DAC通道。 更多...

-
- -## 变量 - - - - - - - - - - - - - -

变量 名称

-

描述

-

DacIoMsg::number

-

DAC设备号

-

DacIoMsg::channel

-

DAC设备通道号

-
- -## **详细描述** - -提供数模转换器 \(DAC\) 接口。 - -该模块允许驱动程序在DAC控制器上执行操作以访问DAC通道上的设备,包括创建和销毁DAC控制器句柄和写入数据。 - -**Since:** - -3.1 - -## **函数说明** - -## DacClose\(\) - -``` -void DacClose (DevHandle handle) -``` - -**描述:** - -释放DAC控制器的句柄。 - -如果不再需要访问DAC控制器,则应调用该函数关闭其句柄,以释放未使用的内存资源。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

handle

-

表示指向DAC控制器的设备句柄的指针。

-
- -**Since:** - -3.1 - -## DacOpen\(\) - -``` -DevHandle DacOpen (uint32_t number) -``` - -**描述:** - -获取DAC控制器的句柄。 - -您必须在访问DAC设备之前调用此函数。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

number

-

表示DAC控制器ID。

-
- -**返回:** - -DAC控制器的DevHandle指针 表示操作成功。 - -NULL 表示操作失败。 - -**Since:** - -3.1 - -## DacWrite\(\) - -``` -int32_t DacWrite (DevHandle handle, uint32_t channel, uint32_t val ) -``` - -**描述:** - -启动DAC设备进行传输,将目标值写入指定的DAC通道。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

表示通过DacOpen获取的DAC控制器设备句柄的指针。

-

channel

-

表示DAC传输消息所通过的通道。

-

val

-

表示设定的目标值。

-
- -**返回:** - -0 表示操作成功。 - -负值 表示操作失败。 - -**Since:** - -3.1 - -## **变量说明** - -## channel - -``` -uint32_t DacIoMsg::channel -``` - -**描述:** - -DAC设备通道号 - -## number - -``` -uint32_t DacIoMsg::number -``` - -**描述:** - -DAC设备号 - diff --git a/zh-cn/device-dev/api/toctopics/_dac_io_msg.md b/zh-cn/device-dev/api/toctopics/_dac_io_msg.md deleted file mode 100644 index 8285c2142a..0000000000 --- a/zh-cn/device-dev/api/toctopics/_dac_io_msg.md +++ /dev/null @@ -1,36 +0,0 @@ -# DacIoMsg - -## **概述** - -**所属模块:** - -[DAC](_d_a_c.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

number

-

DAC设备号

-

channel

-

DAC设备通道号

-
- -## **详细描述** - -DAC设备信息传输结构体。 - diff --git a/zh-cn/device-dev/api/toctopics/_device_funcs.md b/zh-cn/device-dev/api/toctopics/_device_funcs.md deleted file mode 100644 index 5c69301fe1..0000000000 --- a/zh-cn/device-dev/api/toctopics/_device_funcs.md +++ /dev/null @@ -1,211 +0,0 @@ -# DeviceFuncs - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

( RegHotPlugCallback )(HotPlugCallback callback, void *data)

-

注册热插拔事件回调

-

( RegDisplayVBlankCallback )(uint32_t devId, VBlankCallback callback, void *data)

-

注册VBlank事件回调。

-

( RegDisplayRefreshCallback )(uint32_t devId, RefreshCallback callback, void *data)

-

刷新请求回调。

-

( GetDisplayCapability )(uint32_t devId, DisplayCapability *info)

-

获取显示设备能力集。

-

( GetDisplaySupportedModes )(uint32_t devId, uint32_t *num, DisplayModeInfo *modes)

-

获取显示设备支持的显示模式信息。

-

( GetDisplayMode )(uint32_t devId, uint32_t *modeId)

-

获取显示设备当前的显示模式。

-

( SetDisplayMode )(uint32_t devId, uint32_t modeId)

-

设置显示设备的显示模式。

-

( GetDisplayPowerStatus )(uint32_t devId, DispPowerStatus *status)

-

获取显示设备当前的电源状态。

-

( SetDisplayPowerStatus )(uint32_t devId, DispPowerStatus status)

-

设置显示设备当前的电源状态。

-

( GetDisplayBacklight )(uint32_t devId, uint32_t *level)

-

获取显示设备当前的背光值。

-

( SetDisplayBacklight )(uint32_t devId, uint32_t level)

-

设置显示设备当前的背光值。

-

( GetDisplayProperty )(uint32_t devId, uint32_t id, uint64_t *value)

-

获取显示设备属性值。

-

( SetDisplayProperty )(uint32_t devId, uint32_t id, uint64_t value)

-

设置显示设备属性值。

-

( PrepareDisplayLayers )(uint32_t devId, bool *needFlushFb)

-

显示设备合成前准备

-

( GetDisplayCompChange )(uint32_t devId, uint32_t *num, uint32_t *Layers, int32_t *type)

-

获取显示设备合成类型有变化的layer

-

( SetDisplayClientCrop )(uint32_t devId, IRect *rect)

-

设置显示设备的裁剪区域。

-

( SetDisplayClientDestRect )(uint32_t devId, IRect *rect)

-

设置显示设备的显示区域。

-

( SetDisplayClientBuffer )(uint32_t devId, const BufferHandle *buffer, int32_t fence)

-

设置显示设备的显示缓存。

-

( SetDisplayClientDamage )(uint32_t devId, uint32_t num, IRect *rect)

-

设置显示设备的显示脏区

-

( SetDisplayVsyncEnabled )(uint32_t devId, bool enabled)

-

使能垂直同步信号。

-

( GetDisplayReleaseFence )(uint32_t devId, uint32_t *num, uint32_t *layers, int32_t *fences)

-

获取显示图层fence。

-

( GetDisplaySupportedColorGamuts )(uint32_t devId, uint32_t *num, ColorGamut *gamuts)

-

获取显示设备支持的色域信息。

-

( GetDisplayColorGamut )(uint32_t devId, ColorGamut *gamut)

-

获取显示设备当前的色域模式。

-

( SetDisplayColorGamut )(uint32_t devId, ColorGamut gamut)

-

设置显示设备当前的色域模式。

-

( GetDisplayGamutMap )(uint32_t devId, GamutMap *gamutMap)

-

获取显示设备当前的色域映射模式。

-

( SetDisplayGamutMap )(uint32_t devId, GamutMap gamutMap)

-

设置显示设备当前的色域映射模式。

-

( SetDisplayColorTransform )(uint32_t devId, const float *matrix)

-

设置显示设备当前的4x4的颜色转换矩阵。

-

( GetHDRCapabilityInfos )(uint32_t devId, HDRCapability *info)

-

获取显示设备支持的HDR属性信息。

-

( GetSupportedMetadataKey )(uint32_t devId, uint32_t *num, HDRMetadataKey *keys)

-

获取显示设备支持的 HDRMetadataKey。

-

( Commit )(uint32_t devId, int32_t *fence)

-

提交合成送显请求。

-

( InvokeDisplayCmd )(uint32_t devId,...)

-

调用显示设备命令。

-

( CreateVirtualDisplay )(uint32_t width, uint32_t height, int32_t *format, uint32_t *devId)

-

创建虚拟显示设备。

-

( DestroyVirtualDisplay )(uint32_t devId)

-

销毁虚拟显示设备。

-

( SetVirtualDisplayBuffer )(uint32_t devId, BufferHandle *buffer, int32_t fence)

-

设置虚拟屏的输出缓存。

-

( GetWriteBackFrame )(uint32_t devId, BufferHandle *buffer, int32_t *fence)

-

获取显示设备的回写帧。

-

( CreateWriteBack )(uint32_t *devId, uint32_t width, uint32_t height, int32_t *format)

-

对指定显示设备创建回写点。

-

( DestroyWriteBack )(uint32_t devId)

-

销毁指定显示设备的回写点。

-
- -## **详细描述** - -显示设备控制接口结构体,定义显示设备控制接口函数指针。 - diff --git a/zh-cn/device-dev/api/toctopics/_device_info.md b/zh-cn/device-dev/api/toctopics/_device_info.md deleted file mode 100644 index e2627c5269..0000000000 --- a/zh-cn/device-dev/api/toctopics/_device_info.md +++ /dev/null @@ -1,223 +0,0 @@ -# DeviceInfo - -## **概述** - -**所属模块:** - -[Input](_input.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

devIndex

-

设备索引

-

fd

-

设备对应的文件描述符

-

service

-

设备对应的服务

-

listener

-

设备对应的事件监听器

-

devType

-

设备类型

-

powerStatus

-

电源状态

-

chipInfo [CHIP_INFO_LEN]

-

驱动芯片编码信息

-

vendorName [VENDOR_NAME_LEN]

-

模组厂商名

-

chipName [CHIP_NAME_LEN]

-

驱动芯片型号

-

devNodePath [MAX_NODE_PATH_LEN]

-

设备文件路径

-

solutionX

-

x方向分辨率

-

solutionY

-

y方向分辨率

-

callback

-

数据上报回调函数 InputReportEventCb

-
- -## **详细描述** - -input设备基础设备信息 - -## **类成员变量说明** - -## callback - -``` -InputReportEventCb* DeviceInfo::callback -``` - -**描述:** - -数据上报回调函数 [InputReportEventCb](_input_report_event_cb.md) - -## chipInfo - -``` -char DeviceInfo::chipInfo[CHIP_INFO_LEN] -``` - -**描述:** - -驱动芯片编码信息 - -## chipName - -``` -char DeviceInfo::chipName[CHIP_NAME_LEN] -``` - -**描述:** - -驱动芯片型号 - -## devIndex - -``` -uint32_t DeviceInfo::devIndex -``` - -**描述:** - -设备索引 - -## devNodePath - -``` -char DeviceInfo::devNodePath[MAX_NODE_PATH_LEN] -``` - -**描述:** - -设备文件路径 - -## devType - -``` -uint32_t DeviceInfo::devType -``` - -**描述:** - -设备类型 - -## fd - -``` -int32_t DeviceInfo::fd -``` - -**描述:** - -设备对应的文件描述符 - -## listener - -``` -void* DeviceInfo::listener -``` - -**描述:** - -设备对应的事件监听器 - -## powerStatus - -``` -uint32_t DeviceInfo::powerStatus -``` - -**描述:** - -电源状态 - -## service - -``` -void* DeviceInfo::service -``` - -**描述:** - -设备对应的服务 - -## solutionX - -``` -uint32_t DeviceInfo::solutionX -``` - -**描述:** - -x方向分辨率 - -## solutionY - -``` -uint32_t DeviceInfo::solutionY -``` - -**描述:** - -y方向分辨率 - -## vendorName - -``` -char DeviceInfo::vendorName[VENDOR_NAME_LEN] -``` - -**描述:** - -模组厂商名 - diff --git a/zh-cn/device-dev/api/toctopics/_display.md b/zh-cn/device-dev/api/toctopics/_display.md deleted file mode 100644 index d4f484d960..0000000000 --- a/zh-cn/device-dev/api/toctopics/_display.md +++ /dev/null @@ -1,5817 +0,0 @@ -# Display - -## **汇总** - -## 文件 - - - - - - - - - - - - - - - - - - - - - - -

文件

-

描述

-

display_device.h

-

显示设备控制接口声明。

-

display_gfx.h

-

显示硬件加速驱动接口声明。

-

display_gralloc.h

-

显示内存驱动接口声明。

-

display_layer.h

-

显示图层驱动接口声明。

-

display_type.h

-

显示类型定义,定义显示驱动接口所使用的数据类型。

-
- -## 类 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-

描述

-

DeviceFuncs

-

显示设备控制接口结构体,定义显示设备控制接口函数指针。 更多...

-

GfxFuncs

-

显示硬件加速驱动接口结构体,定义硬件加速驱动接口函数指针。 更多...

-

GrallocFuncs

-

显示内存驱动接口结构体,定义显示内存驱动接口函数指针。 更多...

-

LayerFuncs

-

显示图层驱动接口结构体,定义显示图层驱动接口函数指针。 更多...

-

DisplayInfo

-

定义显示信息结构体 更多...

-

LayerInfo

-

定义图层信息结构体 更多...

-

LayerAlpha

-

定义图层Alpha信息的结构体 更多...

-

BufferData

-

定义一层的缓冲区数据,包括虚拟和物理内存地址。 更多...

-

LayerBuffer

-

图层Buffer,用于存放图层数据。 更多...

-

IRect

-

定义矩形信息 更多...

-

ISurface

-

用于存放窗口相关信息的结构体定义,提供给硬件加速使用,例如图像合成,位图搬移等操作。 更多...

-

ILine

-

线条描述结构体定义,用于硬件加速绘制直线。 更多...

-

ICircle

-

圆形描述结构体定义,用于硬件加速绘制圆形。 更多...

-

Rectangle

-

矩形描述结构体定义,用于硬件加速绘制矩形, 更多...

-

GfxOpt

-

图像硬件加速相关的操作选项结构体定义,用于图像硬件加速时的操作选项。 更多...

-

PropertyObject

-

定义包含名称、属性ID和值的属性对象。 更多...

-

DisplayCapability

-

定义输出性能。 更多...

-

DisplayModeInfo

-

定义输出模式信息。 更多...

-

AllocInfo

-

定义关于要分配的内存的信息。 更多...

-

HDRCapability

-

HDR属性结构体定义 更多...

-

HDRMetaData

-

HDR元数据结构体定义 更多...

-

VerifyAllocInfo

-

用于验证内存分配信息的结构体定义 更多...

-

PresentTimestamp

-

上屏时间戳结构体定义 更多...

-

__attribute__

-

扩展数据句柄结构体定义 更多...

-
- -## 宏定义 - - - - - - - - - - -

宏定义

-

描述

-

PROPERTY_NAME_LEN 50

-

属性名字长度。

-
- -## 类型定义 - - - - - - - - - - - - - - - - -

类型定义

-

描述

-

(HotPlugCallback) (uint32_t devId, bool connected, void *data)

-

热插拔事件回调。更多...

-

(VBlankCallback) (unsigned int sequence, uint64_t ns, void *data)

-

VBlank 事件回调。 更多...

-

(RefreshCallback) (uint32_t devId, void *data)

-

刷新请求回调。更多...

-
- -## 枚举 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举

-

描述

-

DispErrCode { DISPLAY_SUCCESS = 0, DISPLAY_FAILURE = -1, DISPLAY_FD_ERR = -2, DISPLAY_PARAM_ERR = -3, DISPLAY_NULL_PTR = -4, DISPLAY_NOT_SUPPORT = -5, DISPLAY_NOMEM = -6, DISPLAY_SYS_BUSY = -7, DISPLAY_NOT_PERM = -8 }

-

返回值类型定义。 更多...

-

LayerType { LAYER_TYPE_GRAPHIC, LAYER_TYPE_OVERLAY, LAYER_TYPE_SDIEBAND, LAYER_TYPE_CURSOR, LAYER_TYPE_BUTT }

-

图层类型定义。 更多...

-

{ HBM_USE_CPU_READ = (1 << 0), HBM_USE_CPU_WRITE = (1 << 1), HBM_USE_MEM_MMZ = (1 << 2), HBM_USE_MEM_DMA = (1 << 3), HBM_USE_MEM_SHARE = (1 << 4), HBM_USE_MEM_MMZ_CACHE = (1 << 5), HBM_USE_MEM_FB = (1 << 6), HBM_USE_ASSIGN_SIZE = (1 << 7) }

-

缓冲区定义。更多...

-

PixelFormat { PIXEL_FMT_CLUT8 = 0, PIXEL_FMT_CLUT1, PIXEL_FMT_CLUT4, PIXEL_FMT_RGB_565, PIXEL_FMT_RGBA_5658, PIXEL_FMT_RGBX_4444, PIXEL_FMT_RGBA_4444, PIXEL_FMT_RGB_444, PIXEL_FMT_RGBX_5551, PIXEL_FMT_RGBA_5551, PIXEL_FMT_RGB_555, PIXEL_FMT_RGBX_8888, PIXEL_FMT_RGBA_8888, PIXEL_FMT_RGB_888, PIXEL_FMT_BGR_565, PIXEL_FMT_BGRX_4444, PIXEL_FMT_BGRA_4444, PIXEL_FMT_BGRX_5551, PIXEL_FMT_BGRA_5551, PIXEL_FMT_BGRX_8888, PIXEL_FMT_BGRA_8888, PIXEL_FMT_YUV_422_I, PIXEL_FMT_YCBCR_422_SP, PIXEL_FMT_YCRCB_422_SP, PIXEL_FMT_YCBCR_420_SP, PIXEL_FMT_YCRCB_420_SP, PIXEL_FMT_YCBCR_422_P, PIXEL_FMT_YCRCB_422_P, PIXEL_FMT_YCBCR_420_P, PIXEL_FMT_YCRCB_420_P, PIXEL_FMT_YUYV_422_PKG, PIXEL_FMT_UYVY_422_PKG, PIXEL_FMT_YVYU_422_PKG, PIXEL_FMT_VYUY_422_PKG, PIXEL_FMT_VENDER_MASK = 0X7FFF0000, PIXEL_FMT_BUTT = 0X7FFFFFFF }

-

像素格式类型定义。 更多...

-

TransformType { ROTATE_NONE = 0, ROTATE_90, ROTATE_180, ROTATE_270, ROTATE_BUTT }

-

图层变换类型定义。 更多...

-

BlendType { BLEND_NONE = 0, BLEND_CLEAR, BLEND_SRC, BLEND_SRCOVER, BLEND_DSTOVER, BLEND_SRCIN, BLEND_DSTIN, BLEND_SRCOUT, BLEND_DSTOUT, BLEND_SRCATOP, BLEND_DSTATOP, BLEND_ADD, BLEND_XOR, BLEND_DST, BLEND_AKS, BLEND_AKD, BLEND_BUTT }

-

显示内存类型定义。 更多...

-

RopType { ROP_BLACK = 0, ROP_NOTMERGEPEN, ROP_MASKNOTPEN, ROP_NOTCOPYPEN, ROP_MASKPENNOT, ROP_NOT, ROP_XORPEN, ROP_NOTMASKPEN, ROP_MASKPEN, ROP_NOTXORPEN, ROP_NOP, ROP_MERGENOTPEN, ROP_COPYPE, ROP_MERGEPENNOT, ROP_MERGEPEN, ROP_WHITE, ROP_BUTT }

-

硬件加速支持的ROP操作类型。 更多...

-

ColorKey { CKEY_NONE = 0, CKEY_SRC, CKEY_DST, CKEY_BUTT }

-

Color key操作类型定义,即硬件加速支持的Color key操作类型。 更多...

-

MirrorType { MIRROR_NONE = 0, MIRROR_LR, MIRROR_TB, MIRROR_BUTT }

-

硬件加速支持的镜像操作类型定义 更多...

-

Connection { CON_INVALID = 0, CONNECTED, DISCONNECTED }

-

热插拔连接类型定义 更多...

-

InterfaceType { DISP_INTF_HDMI = 0, DISP_INTF_LCD, DISP_INTF_BT1120, DISP_INTF_BT656, DISP_INTF_YPBPR, DISP_INTF_RGB, DISP_INTF_CVBS, DISP_INTF_SVIDEO, DISP_INTF_VGA, DISP_INTF_MIPI, DISP_INTF_PANEL, DISP_INTF_BUTT }

-

枚举接口类型。 更多...

-

DispPowerStatus { POWER_STATUS_ON, POWER_STATUS_STANDBY, POWER_STATUS_SUSPEND, POWER_STATUS_OFF, POWER_STATUS_BUTT }

-

枚举显示状态 更多...

-

CompositionType { COMPOSITION_CLIENT, COMPOSITION_DEVICE, COMPOSITION_CURSOR, COMPOSITION_VIDEO, COMPOSITION_DEVICE_CLEAR, COMPOSITION_CLIENT_CLEAR, COMPOSITION_TUNNEL, COMPOSITION_BUTT }

-

枚举特殊层的组合类型。 更多...

-

ColorGamut { COLOR_GAMUT_INVALID = -1, COLOR_GAMUT_NATIVE = 0, COLOR_GAMUT_SATNDARD_BT601 = 1, COLOR_GAMUT_STANDARD_BT709 = 2, COLOR_GAMUT_DCI_P3 = 3, COLOR_GAMUT_SRGB = 4, COLOR_GAMUT_ADOBE_RGB = 5, COLOR_GAMUT_DISPLAY_P3 = 6, COLOR_GAMUT_BT2020 = 7, COLOR_GAMUT_BT2100_PQ = 8, COLOR_GAMUT_BT2100_HLG = 9, COLOR_GAMUT_DISPLAY_BT2020 = 10 }

-

色域类型枚举值 更多...

-

GamutMap { GAMUT_MAP_CONSTANT = 0, GAMUT_MAP_EXPANSION = 1, GAMUT_MAP_HDR_CONSTANT = 2, GAMUT_MAP_HDR_EXPANSION = 3 }

-

枚举色域的映射类型 更多...

-

ColorDataSpace { COLOR_DATA_SPACE_UNKNOWN = 0, GAMUT_BT601 = 0x00000001, GAMUT_BT709 = 0x00000002, GAMUT_DCI_P3 = 0x00000003, GAMUT_SRGB = 0x00000004, GAMUT_ADOBE_RGB = 0x00000005, GAMUT_DISPLAY_P3 = 0x00000006, GAMUT_BT2020 = 0x00000007, GAMUT_BT2100_PQ = 0x00000008, GAMUT_BT2100_HLG = 0x00000009, GAMUT_DISPLAY_BT2020 = 0x0000000a, TRANSFORM_FUNC_UNSPECIFIED = 0x00000100, TRANSFORM_FUNC_LINEAR = 0x00000200, TRANSFORM_FUNC_SRGB = 0x00000300, TRANSFORM_FUNC_SMPTE_170M = 0x00000400, TRANSFORM_FUNC_GM2_2 = 0x00000500, TRANSFORM_FUNC_GM2_6 = 0x00000600, TRANSFORM_FUNC_GM2_8 = 0x00000700, TRANSFORM_FUNC_ST2084 = 0x00000800, TRANSFORM_FUNC_HLG = 0x00000900, PRECISION_UNSPECIFIED = 0x00010000, PRECISION_FULL = 0x00020000, PRESION_LIMITED = 0x00030000, PRESION_EXTENDED = 0x00040000, BT601_SMPTE170M_FULL = GAMUT_BT601 | TRANSFORM_FUNC_SMPTE_170M | PRECISION_FULL, BT601_SMPTE170M_LIMITED = GAMUT_BT601 | TRANSFORM_FUNC_SMPTE_170M | PRESION_LIMITED, BT709_LINEAR_FULL = GAMUT_BT709 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, BT709_LINEAR_EXTENDED = GAMUT_BT709 | TRANSFORM_FUNC_LINEAR | PRESION_EXTENDED, BT709_SRGB_FULL = GAMUT_BT709 | TRANSFORM_FUNC_SRGB | PRECISION_FULL, BT709_SRGB_EXTENDED = GAMUT_BT709 | TRANSFORM_FUNC_SRGB | PRESION_EXTENDED, BT709_SMPTE170M_LIMITED = GAMUT_BT709 | TRANSFORM_FUNC_SMPTE_170M | PRESION_LIMITED, DCI_P3_LINEAR_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, DCI_P3_GAMMA26_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_GM2_6 | PRECISION_FULL, DISPLAY_P3_LINEAR_FULL = GAMUT_DISPLAY_P3 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, DCI_P3_SRGB_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_SRGB | PRECISION_FULL, ADOBE_RGB_GAMMA22_FULL = GAMUT_ADOBE_RGB | TRANSFORM_FUNC_GM2_2 | PRECISION_FULL, BT2020_LINEAR_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, BT2020_SRGB_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_SRGB | PRECISION_FULL, BT2020_SMPTE170M_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_SMPTE_170M | PRECISION_FULL, BT2020_ST2084_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_ST2084 | PRECISION_FULL, BT2020_HLG_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_HLG | PRECISION_FULL, BT2020_ST2084_LIMITED = GAMUT_BT2020 | TRANSFORM_FUNC_ST2084 | PRESION_LIMITED }

-

枚举颜色空间的类型 更多...

-

HDRFormat { NOT_SUPPORT_HDR = 0, DOLBY_VISION = 1, HDR10 = 2, HLG = 3, HDR10_PLUS = 4, HDR_VIVID = 5 }

-

枚举HDR格式 更多...

-

HDRMetadataKey { MATAKEY_RED_PRIMARY_X = 0, MATAKEY_RED_PRIMARY_Y = 1, MATAKEY_GREEN_PRIMARY_X = 2, MATAKEY_GREEN_PRIMARY_Y = 3, MATAKEY_BLUE_PRIMARY_X = 4, MATAKEY_BLUE_PRIMARY_Y = 5, MATAKEY_WHITE_PRIMARY_X = 6, MATAKEY_WHITE_PRIMARY_Y = 7, MATAKEY_MAX_LUMINANCE = 8, MATAKEY_MIN_LUMINANCE = 9, MATAKEY_MAX_CONTENT_LIGHT_LEVEL = 10, MATAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL = 11, MATAKEY_HDR10_PLUS = 12, MATAKEY_HDR_VIVID = 13 }

-

枚举HDR元数据关键字 更多...

-

PresentTimestampType { HARDWARE_DISPLAY_PTS_UNSUPPORTED = 0, HARDWARE_DISPLAY_PTS_DELAY = 1 << 0, HARDWARE_DISPLAY_PTS_TIMESTAMP = 1 << 1 }

-

上屏时间戳类型枚举值 更多...

-
- -## 函数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

函数

-

描述

-

DeviceInitialize (DeviceFuncs **funcs)

-

实现显示设备控制接口的初始化,申请操作显示设备控制接口的资源,并获取对应的操作接口。 更多...

-

DeviceUninitialize (DeviceFuncs *funcs)

-

取消显示设备控制接口的初始化,释放控制接口使用到的资源。 更多...

-

GfxInitialize (GfxFuncs **funcs)

-

获取硬件加速相关的操作接口指针。 更多...

-

GfxUninitialize (GfxFuncs *funcs)

-

释放硬件加速相关的操作接口指针。 更多...

-

GrallocInitialize (GrallocFuncs **funcs)

-

初始化内存模块,并获取内存提供的操作接口。 更多...

-

GrallocUninitialize (GrallocFuncs *funcs)

-

取消初始化内存模块,并释放内存操作接口指针。 更多...

-

LayerInitialize (LayerFuncs **funcs)

-

实现图层初始化功能,申请图层使用的资源,并获取图层提供的操作接口。 更多...

-

LayerUninitialize (LayerFuncs *funcs)

-

取消图层初始化功能,释放图层使用到的资源,并释放图层操作接口指针。 更多...

-
- -## 变量 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

变量 名称

-

描述

-

( DeviceFuncs::RegHotPlugCallback )(HotPlugCallback callback, void *data)

-

注册热插拔事件回调。 更多...

-

( DeviceFuncs::RegDisplayVBlankCallback )(uint32_t devId, VBlankCallback callback, void *data)

-

注册VBlank事件回调。 更多...

-

( DeviceFuncs::RegDisplayRefreshCallback )(uint32_t devId, RefreshCallback callback, void *data)

-

刷新请求回调。 更多...

-

( DeviceFuncs::GetDisplayCapability )(uint32_t devId, DisplayCapability *info)

-

获取显示设备能力集。 更多...

-

( DeviceFuncs::GetDisplaySupportedModes )(uint32_t devId, uint32_t *num, DisplayModeInfo *modes)

-

获取显示设备支持的显示模式信息。 更多...

-

( DeviceFuncs::GetDisplayMode )(uint32_t devId, uint32_t *modeId)

-

获取显示设备当前的显示模式。 更多...

-

( DeviceFuncs::SetDisplayMode )(uint32_t devId, uint32_t modeId)

-

设置显示设备的显示模式。 更多...

-

( DeviceFuncs::GetDisplayPowerStatus )(uint32_t devId, DispPowerStatus *status)

-

获取显示设备当前的电源状态。 更多...

-

( DeviceFuncs::SetDisplayPowerStatus )(uint32_t devId, DispPowerStatus status)

-

设置显示设备当前的电源状态。 更多...

-

( DeviceFuncs::GetDisplayBacklight )(uint32_t devId, uint32_t *level)

-

获取显示设备当前的背光值。 更多...

-

( DeviceFuncs::SetDisplayBacklight )(uint32_t devId, uint32_t level)

-

设置显示设备当前的背光值。 更多...

-

( DeviceFuncs::GetDisplayProperty )(uint32_t devId, uint32_t id, uint64_t *value)

-

设置显示设备属性值。 更多...

-

( DeviceFuncs::SetDisplayProperty )(uint32_t devId, uint32_t id, uint64_t value)

-

设置显示设备属性值。 更多...

-

( DeviceFuncs::PrepareDisplayLayers )(uint32_t devId, bool *needFlushFb)

-

显示设备合成前准备。 更多...

-

( DeviceFuncs::GetDisplayCompChange )(uint32_t devId, uint32_t *num, uint32_t *Layers, int32_t *type)

-

获取显示设备合成类型有变化的layer。 更多...

-

( DeviceFuncs::SetDisplayClientCrop )(uint32_t devId, IRect *rect)

-

设置显示设备的裁剪区域。 更多...

-

( DeviceFuncs::SetDisplayClientDestRect )(uint32_t devId, IRect *rect)

-

设置显示设备的显示区域。 更多...

-

( DeviceFuncs::SetDisplayClientBuffer )(uint32_t devId, const BufferHandle *buffer, int32_t fence)

-

设置显示设备的显示缓存。 更多...

-

( DeviceFuncs::SetDisplayClientDamage )(uint32_t devId, uint32_t num, IRect *rect)

-

设置显示设备的显示脏区。 更多...

-

( DeviceFuncs::SetDisplayVsyncEnabled )(uint32_t devId, bool enabled)

-

使能垂直同步信号。 更多...

-

( DeviceFuncs::GetDisplayReleaseFence )(uint32_t devId, uint32_t *num, uint32_t *layers, int32_t *fences)

-

获取显示图层fence。 更多...

-

( DeviceFuncs::GetDisplaySupportedColorGamuts )(uint32_t devId, uint32_t *num, ColorGamut *gamuts)

-

获取显示设备支持的色域信息。 更多...

-

( DeviceFuncs::GetDisplayColorGamut )(uint32_t devId, ColorGamut *gamut)

-

获取显示设备当前的色域模式。 更多...

-

( DeviceFuncs::SetDisplayColorGamut )(uint32_t devId, ColorGamut gamut)

-

设置显示设备当前的色域模式。 更多...

-

( DeviceFuncs::GetDisplayGamutMap )(uint32_t devId, ColorGamut *gamutMap)

-

获取显示设备当前的色域映射模式。 更多...

-

( DeviceFuncs::SetDisplayGamutMap )(uint32_t devId, ColorGamut gamutMap)

-

设置显示设备当前的色域映射模式。 更多...

-

( DeviceFuncs::SetDisplayColorTransform )(uint32_t devId, const float *matrix)

-

设置显示设备当前的4x4的颜色转换矩阵。 更多...

-

( DeviceFuncs::GetHDRCapabilityInfos )(uint32_t devId, HDRCapability *info)

-

获取显示设备支持的HDR属性信息。 更多...

-

( DeviceFuncs::GetSupportedMetadataKey )(uint32_t devId, uint32_t *num, HDRMetadataKey *keys)

-

获取显示设备支持的 HDRMetadataKey。 更多...

-

( DeviceFuncs::Commit )(uint32_t devId, int32_t *fence)

-

提交合成送显请求。 更多...

-

( DeviceFuncs::InvokeDisplayCmd )(uint32_t devId,...)

-

调用显示设备命令。 更多...

-

( DeviceFuncs::CreateVirtualDisplay )(uint32_t width, uint32_t height, int32_t *format, uint32_t *devId)

-

创建虚拟显示设备。 更多...

-

( DeviceFuncs::DestroyVirtualDisplay )(uint32_t devId)

-

销毁虚拟显示设备。 更多...

-

( DeviceFuncs::SetVirtualDisplayBuffer )(uint32_t devId, BufferHandle *buffer, int32_t fence)

-

设置虚拟屏的输出缓存。 更多...

-

( DeviceFuncs::GetWriteBackFrame )(uint32_t devId, BufferHandle *buffer, int32_t *fence)

-

获取显示设备的回写帧。 更多...

-

( DeviceFuncs::CreateWriteBack )(uint32_t *devId, uint32_t width, uint32_t height, int32_t *format)

-

对指定显示设备创建回写点。 更多...

-

( DeviceFuncs::DestroyWriteBack )(uint32_t devId)

-

销毁指定显示设备的回写点。 更多...

-

DisplayInfo::width

-

显示屏宽度

-

DisplayInfo::height

-

显示屏高度

-

DisplayInfo::rotAngle

-

显示屏旋转角度

-

LayerInfo::width

-

图层宽度

-

LayerInfo::height

-

图层高度

-

LayerInfo::type

-

图层类型,包括图形层、视频层和媒体播放模式

-

LayerInfo::bpp

-

每像素所占bit数

-

LayerInfo::pixFormat

-

图层像素格式

-

LayerAlpha::enGlobalAlpha

-

全局alpha使能标志

-

LayerAlpha::enPixelAlpha

-

像素alpha使能标志

-

LayerAlpha::alpha0

-

alpha0值,取值范围:[0, 255]

-

LayerAlpha::alpha1

-

alpha1值,取值范围:[0, 255]

-

LayerAlpha::gAlpha

-

全局alpha值,取值范围:[0, 255]

-

BufferData::phyAddr

-

物理内存地址

-

BufferData::virAddr

-

虚拟内存地址

-

LayerBuffer::fenceId

-

buffer 的fence号r

-

LayerBuffer::width

-

buffer宽度

-

LayerBuffer::height

-

buffer高度

-

LayerBuffer::pitch

-

一行数据所占字节数

-

LayerBuffer::pixFormat

-

buffer像素格式r

-

LayerBuffer::data

-

图层buffer数据

-

LayerBuffer::hdl

-

图层buffer句柄

-

IRect::x

-

矩形框起始x坐标

-

IRect::y

-

矩形框起始y坐标

-

IRect::w

-

矩形框宽度

-

IRect::h

-

矩形框高度

-

ISurface::phyAddr

-

图像首地址

-

ISurface::height

-

图像高度

-

ISurface::width

-

图像宽度

-

ISurface::stride

-

图像跨度

-

ISurface::enColorFmt

-

图像格式

-

ISurface::bYCbCrClut

-

CLUT表是否位于 YCbCr 空间

-

ISurface::bAlphaMax255

-

图像alpha最大值为255还是128

-

ISurface::bAlphaExt1555

-

是否使能1555的Alpha扩展

-

ISurface::alpha0

-

Alpha0值,取值范围:[0,255]

-

ISurface::alpha1

-

Alpha1值,取值范围:[0,255]

-

ISurface::cbcrPhyAddr

-

CbCr分量地址

-

ISurface::cbcrStride

-

CbCr分量跨度

-

ISurface::clutPhyAddr

-

Clut表首地址,用作颜色扩展或颜色校正

-

ILine::x0

-

线条起点的x坐标

-

ILine::y0

-

线条起点的y坐标

-

ILine::x1

-

线条终点的x坐标

-

ILine::y1

-

线条终点的y坐标

-

ILine::color

-

线条颜色

-

ICircle::x

-

圆心x坐标

-

ICircle::y

-

圆心y坐标r

-

ICircle::r

-

圆的半径

-

ICircle::color

-

圆的颜色

-

Rectangle::rect

-

矩形区域

-

Rectangle::color

-

矩形颜色

-

GfxOpt::enGlobalAlpha

-

全局alpha使能位

-

GfxOpt::globalAlpha

-

全局alpha的值

-

GfxOpt::enPixelAlpha

-

像素alpha使能位

-

GfxOpt::blendType

-

混合方式

-

GfxOpt::colorKeyFrom

-

色键模式

-

GfxOpt::enableRop

-

Rop功能使能位

-

GfxOpt::colorRopType

-

颜色的Rop类型

-

GfxOpt::alphaRopType

-

Alpha的Rop类型

-

GfxOpt::enableScale

-

缩放功能使能位

-

GfxOpt::rotateType

-

旋转类型

-

GfxOpt::mirrorType

-

镜像类型

-

PropertyObject::name [PROPERTY_NAME_LEN]

-

属性名称

-

PropertyObject::propId

-

属性ID

-

PropertyObject::value

-

属性值

-

DisplayCapability::name [PROPERTY_NAME_LEN]

-

显示设备名称

-

DisplayCapability::type

-

显示屏接口类型

-

DisplayCapability::phyWidth

-

物理宽度

-

DisplayCapability::phyHeight

-

物理高度

-

DisplayCapability::supportLayers

-

支持的图层数

-

DisplayCapability::virtualDispCount

-

支持的虚拟屏数

-

DisplayCapability::supportWriteBack

-

是否支持回写

-

DisplayCapability::propertyCount

-

属性数组大小

-

DisplayCapability::props

-

属性数组

-

DisplayModeInfo::width

-

像素宽度

-

DisplayModeInfo::height

-

像素高度

-

DisplayModeInfo::freshRate

-

刷新速率

-

DisplayModeInfo::id

-

模式ID

-

AllocInfo::width

-

申请内存宽度

-

AllocInfo::height

-

申请内存高度

-

AllocInfo::usage

-

申请内存的使用场景

-

AllocInfo::format

-

申请内存格式

-

AllocInfo::expectedSize

-

申请内存大小

-

HDRCapability::formatCount

-

支持的HDR格式的数量

-

HDRCapability::formats

-

支持的HDR格式的数组首地址

-

HDRCapability::maxLum

-

最大的光亮度luminance值

-

HDRCapability::maxAverageLum

-

最大的平均光亮度luminance值

-

HDRCapability::minLum

-

最小的光亮度luminance值

-

HDRMetaData::key

-

HDR元数据关键字

-

HDRMetaData::value

-

关键字对应的值

-

VerifyAllocInfo::width

-

分配内存的宽度

-

VerifyAllocInfo::height

-

分配内存的高度

-

VerifyAllocInfo::usage

-

内存的用处

-

VerifyAllocInfo::format

-

分配内存的像素格式

-

PresentTimestamp::type

-

上屏时间戳类型

-

PresentTimestamp::time

-

类型对应的值

-

__attribute__::fd

-

句柄 fd,-1代表不支持

-

__attribute__::reserveInts

-

reserve数组的个数

-

__attribute__::reserve [0]

-

reserve数组

-

__attribute__::baseAddr

-

内存的初始地址

-

__attribute__::yOffset

-

Y的偏移量

-

__attribute__::uOffset

-

U的偏移量

-

__attribute__::vOffset

-

V的偏移量

-

__attribute__::yStride

-

Y的stride信息

-

__attribute__::uvStride

-

UV的stride信息

-

__attribute__::uvStep

-

UV的step信息

-
- -## **详细描述** - -显示模块驱动接口定义。 - -提供给图形系统使用的驱动接口,包括图层管理、设备控制、图形硬件加速、显示内存管理和回调接口等。 - -**Since:** - -1.0 - -**Version:** - -2.0 - -## **类型定义说明** - -## HotPlugCallback - -``` -typedef void(* HotPlugCallback) (uint32_t devId, bool connected, void *data) -``` - -**描述:** - -热插拔事件回调。 - -当有热插拔事件发生时,会回调该接口,需要通过RegHotPlugCallback注册该回调接口。 - -@paramdevId 输入参数,显示设备ID,此ID由HDI实现层生成,并通过当前回调接口传递给图形服务使用,用以标记当前连接的显示设备。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

connected

-

输入参数,指明设备的连接状态,ture代表连接,false代表断开。

-

data

-

输出参数,图形服务携带的私有数据,该参数携带的是RegHotPlugCallback接口注册时传递的私有数据地址,详情参考 {@RegHotPlugCallback} 接口注册时传递的地址。

-
- -## RefreshCallback - -``` -typedef void(* RefreshCallback) (uint32_t devId, void *data) -``` - -**描述:** - -刷新请求回调。 - -刷新请求回调,当接口实现层需要图形服务刷新数据帧时会回调该接口,需要通过RegDisplayRefreshCallback注册该回调接口。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID。

-

data

-

输出参数,图形服务携带的私有数据,该参数携带的是RegDisplayRefreshCallback接口注册时传递的地址。

-
- -## VBlankCallback - -``` -typedef void(* VBlankCallback) (unsigned int sequence, uint64_t ns, void *data) -``` - -**描述:** - -VBlank 事件回调。 - -垂直同步事件回调接口,需要通过RegDisplayVBlankCallback注册该回调接口。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

sequence

-

输入参数,指明VBlank序列,是一个累加值。

-

ns

-

输入参数,该次VBlank事件的时间戳,以纳秒为单位。

-

data

-

输出参数,图形服务携带的私有数据,该参数携带的是RegDisplayVBlankCallback接口注册时传递的地址。

-
- -## **枚举类型说明** - -## anonymous enum - -``` -anonymous enum -``` - -**描述:** - -缓冲区定义。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

HBM_USE_CPU_READ

-

CPU 读缓冲

-

-

HBM_USE_CPU_WRITE

-

CPU 写内存

-

-

HBM_USE_MEM_MMZ

-

MMZ

-

-

HBM_USE_MEM_DMA

-

DMA缓冲区

-

-

HBM_USE_MEM_SHARE

-

共享内存缓冲区

-

-

HBM_USE_MEM_MMZ_CACHE

-

MMZ缓存

-

-

HBM_USE_MEM_FB

-

帧缓存

-

-

HBM_USE_ASSIGN_SIZE

-

内存分配

-

-
- -## BlendType - -``` -enum BlendType -``` - -**描述:** - -显示内存类型定义。 - -根据图形系统指定的类型进行分配,包括带cache或者不带cache的内存。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

BLEND_NONE

-

No 混合操作

-

-

BLEND_CLEAR

-

CLEAR 混合操作

-

-

BLEND_SRC

-

SRC 混合操作

-

-

BLEND_SRCOVER

-

SRC_OVER 混合操作

-

-

BLEND_DSTOVER

-

DST_OVER 混合操作

-

-

BLEND_SRCIN

-

SRC_IN 混合操作

-

-

BLEND_DSTIN

-

DST_IN 混合操作

-

-

BLEND_SRCOUT

-

SRC_OUT 混合操作

-

-

BLEND_DSTOUT

-

DST_OUT 混合操作

-

-

BLEND_SRCATOP

-

SRC_ATOP 混合操作

-

-

BLEND_DSTATOP

-

DST_ATOP 混合操作

-

-

BLEND_ADD

-

ADD 混合操作

-

-

BLEND_XOR

-

XOR 混合操作

-

-

BLEND_DST

-

DST 混合操作

-

-

BLEND_AKS

-

AKS 混合操作

-

-

BLEND_AKD

-

AKD 混合操作

-

-

BLEND_BUTT

-

空操作

-

-
- -## ColorDataSpace - -``` -enum ColorDataSpace -``` - -**描述:** - -枚举颜色空间的类型 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

COLOR_DATA_SPACE_UNKNOWN

-

未知的

-

-

GAMUT_BT601

-

BT601色域

-

-

GAMUT_BT709

-

BT709色域

-

-

GAMUT_DCI_P3

-

DCI_P3色域

-

-

GAMUT_SRGB

-

SRGB色域

-

-

GAMUT_ADOBE_RGB

-

ADOBE_RGB色域

-

-

GAMUT_DISPLAY_P3

-

DISPLAY_P3色域

-

-

GAMUT_BT2020

-

BT2020色域

-

-

GAMUT_BT2100_PQ

-

BT2100_PQ色域

-

-

GAMUT_BT2100_HLG

-

BT2100_HLG色域

-

-

GAMUT_DISPLAY_BT2020

-

DISPLAY_BT2020色域

-

-

TRANSFORM_FUNC_UNSPECIFIED

-

UNSPECIFIED转换函数

-

-

TRANSFORM_FUNC_LINEAR

-

LINEAR转换函数

-

-

TRANSFORM_FUNC_SRGB

-

SRGB转换函数

-

-

TRANSFORM_FUNC_SMPTE_170M

-

SMPTE_170M转换函数

-

-

TRANSFORM_FUNC_GM2_2

-

GM2_2转换函数

-

-

TRANSFORM_FUNC_GM2_6

-

GM2_6转换函数

-

-

TRANSFORM_FUNC_GM2_8

-

GM2_8转换函数

-

-

TRANSFORM_FUNC_ST2084

-

ST2084转换函数

-

-

TRANSFORM_FUNC_HLG

-

HLG转换函数

-

-

PRECISION_UNSPECIFIED

-

UNSPECIFIED精度

-

-

PRECISION_FULL

-

FULL精度

-

-

PRESION_LIMITED

-

LIMITED精度

-

-

PRESION_EXTENDED

-

EXTENDED精度

-

-

BT601_SMPTE170M_FULL

-

BT601色域 | SMPTE_170M转换函数 | FULL精度

-

-

BT601_SMPTE170M_LIMITED

-

BT601色域 | SMPTE_170M转换函数 | LIMITED精度

-

-

BT709_LINEAR_FULL

-

BT709色域 | LINEAR转换函数 | FULL精度

-

-

BT709_LINEAR_EXTENDED

-

BT709色域 | LINEAR转换函数 | EXTENDED精度

-

-

BT709_SRGB_FULL

-

BT709色域 | SRGB转换函数 | FULL精度

-

-

BT709_SRGB_EXTENDED

-

BT709色域 | SRGB转换函数 | EXTENDED精度

-

-

BT709_SMPTE170M_LIMITED

-

BT709色域 | SMPTE_170M转换函数 | LIMITED精度

-

-

DCI_P3_LINEAR_FULL

-

DCI_P3色域 | LINEAR转换函数 | FULL精度

-

-

DCI_P3_GAMMA26_FULL

-

DCI_P3色域 | GM2_6转换函数 | FULL精度

-

-

DISPLAY_P3_LINEAR_FULL

-

DISPLAY_P3色域 | LINEAR转换函数 | FULL精度

-

-

DCI_P3_SRGB_FULL

-

DCI_P3色域 | SRGB转换函数 | FULL精度

-

-

ADOBE_RGB_GAMMA22_FULL

-

ADOBE_RGB色域 | GM2_2转换函数 | FULL精度

-

-

BT2020_LINEAR_FULL

-

BT2020色域 | LINEAR转换函数 | FULL精度

-

-

BT2020_SRGB_FULL

-

BT2020色域 | SRGB转换函数 | FULL精度

-

-

BT2020_SMPTE170M_FULL

-

BT2020色域 | SMPTE_170M转换函数 | FULL精度

-

-

BT2020_ST2084_FULL

-

BT2020色域 | ST2084转换函数 | FULL精度

-

-

BT2020_HLG_FULL

-

BT2020色域 | HLG转换函数 | FULL精度

-

-

BT2020_ST2084_LIMITED

-

BT2020色域 | ST2084转换函数 | LIMITED精度

-

-
- -## ColorGamut - -``` -enum ColorGamut -``` - -**描述:** - -色域类型枚举值。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

COLOR_GAMUT_INVALID

-

无效值

-

-

COLOR_GAMUT_NATIVE

-

默认值

-

-

COLOR_GAMUT_SATNDARD_BT601

-

Standard BT601类型

-

-

COLOR_GAMUT_STANDARD_BT709

-

Standard BT709类型

-

-

COLOR_GAMUT_DCI_P3

-

DCI P3类型

-

-

COLOR_GAMUT_SRGB

-

SRGB类型

-

-

COLOR_GAMUT_ADOBE_RGB

-

Adobe RGB类型

-

-

COLOR_GAMUT_DISPLAY_P3

-

display P3类型

-

-

COLOR_GAMUT_BT2020

-

BT2020类型

-

-

COLOR_GAMUT_BT2100_PQ

-

BT2100 PQ类型

-

-

COLOR_GAMUT_BT2100_HLG

-

BT2100 HLG类型

-

-

COLOR_GAMUT_DISPLAY_BT2020

-

Display BT2020类型

-

-
- -## ColorKey - -``` -enum ColorKey -``` - -**描述:** - -Color key操作类型定义,即硬件加速支持的Color key操作类型。 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

CKEY_NONE

-

不使用colorkey

-

-

CKEY_SRC

-

使用源colorkey

-

-

CKEY_DST

-

使用目标colorkey

-

-

CKEY_BUTT

-

空操作

-

-
- -## CompositionType - -``` -enum CompositionType -``` - -**描述:** - -枚举特殊层的组合类型。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

COMPOSITION_CLIENT

-

Client 合成类型,使用CPU或者GPU合成。

-

-

COMPOSITION_DEVICE

-

Device 合成类型,使用Device合成。

-

-

COMPOSITION_CURSOR

-

Cursor合成类型,用于光标合成。

-

-

COMPOSITION_VIDEO

-

Video合成类型,用于视频层合成。

-

-

COMPOSITION_DEVICE_CLEAR

-

Device clear 合成类型,device会清除目标区域。

-

-

COMPOSITION_CLIENT_CLEAR

-

Client clear 合成类型,service会清除目标区域。

-

-

COMPOSITION_TUNNEL

-

Tunnel 合成类型,用于tunnel。

-

-

COMPOSITION_BUTT

-

空类型

-
- -## Connection - -``` -enum Connection -``` - -**描述:** - -热插拔连接类型定义 - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

CON_INVALID

-

无效类型

-

-

CONNECTED

-

已连接

-

-

DISCONNECTED

-

断开连接

-

-
- -## DispErrCode - -``` -enum DispErrCode -``` - -**描述:** - -返回值类型定义。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

DISPLAY_SUCCESS

-

成功

-

-

DISPLAY_FAILURE

-

失败

-

-

DISPLAY_FD_ERR

-

fd错误

-

-

DISPLAY_PARAM_ERR

-

参数错误

-

-

DISPLAY_NULL_PTR

-

空指针

-

-

DISPLAY_NOT_SUPPORT

-

不支持的特性

-

-

DISPLAY_NOMEM

-

内存不足

-

-

DISPLAY_SYS_BUSY

-

系统繁忙

-

-

DISPLAY_NOT_PERM

-

操作不允许

-

-
- -## DispPowerStatus - -``` -enum DispPowerStatus -``` - -**描述:** - -枚举显示状态 - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

POWER_STATUS_ON

-

上电模式

-

-

POWER_STATUS_STANDBY

-

待机模式

-

-

POWER_STATUS_SUSPEND

-

休眠模式

-

-

POWER_STATUS_OFF

-

下电模式

-

-

POWER_STATUS_BUTT

-

默认模式

-

-
- -## GamutMap - -``` -enum GamutMap -``` - -**描述:** - -枚举色域的映射类型 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

GAMUT_MAP_CONSTANT

-

不变

-

-

GAMUT_MAP_EXPANSION

-

映射增强

-

-

GAMUT_MAP_HDR_CONSTANT

-

不变,用于HDR

-

-

GAMUT_MAP_HDR_EXPANSION

-

映射增强,用于HDR

-

-
- -## HDRFormat - -``` -enum HDRFormat -``` - -**描述:** - -枚举HDR格式 - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

NOT_SUPPORT_HDR

-

不支持HDR

-

-

DOLBY_VISION

-

Dolby Vision格式

-

-

HDR10

-

HDR10格式

-

-

HLG

-

HLG格式

-

-

HDR10_PLUS

-

HDR10 Plus格式

-

-

HDR_VIVID

-

Vivid格式

-

-
- -## HDRMetadataKey - -``` -enum HDRMetadataKey -``` - -**描述:** - -枚举HDR元数据关键字 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

MATAKEY_RED_PRIMARY_X

-

红基色X坐标

-

-

MATAKEY_RED_PRIMARY_Y

-

红基色Y坐标

-

-

MATAKEY_GREEN_PRIMARY_X

-

绿基色X坐标

-

-

MATAKEY_GREEN_PRIMARY_Y

-

绿基色Y坐标

-

-

MATAKEY_BLUE_PRIMARY_X

-

蓝基色X坐标

-

-

MATAKEY_BLUE_PRIMARY_Y

-

蓝基色Y坐标

-

-

MATAKEY_WHITE_PRIMARY_X

-

白点X坐标

-

-

MATAKEY_WHITE_PRIMARY_Y

-

白点Y坐标

-

-

MATAKEY_MAX_LUMINANCE

-

最大的光亮度

-

-

MATAKEY_MIN_LUMINANCE

-

最小的光亮度

-

-

MATAKEY_MAX_CONTENT_LIGHT_LEVEL

-

最大的内容亮度水平

-

-

MATAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL

-

最大的帧平均亮度水平

-

-

MATAKEY_HDR10_PLUS

-

HDR10 Plus

-

-

MATAKEY_HDR_VIVID

-

Vivid

-

-
- -## InterfaceType - -``` -enum InterfaceType -``` - -**描述:** - -枚举接口类型。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

DISP_INTF_HDMI

-

HDMI 接口

-

-

DISP_INTF_LCD

-

LCD 接口

-

-

DISP_INTF_BT1120

-

BT1120 接口

-

-

DISP_INTF_BT656

-

BT656 接口

-

-

DISP_INTF_YPBPR

-

YPBPR 接口

-

-

DISP_INTF_RGB

-

RGB 接口

-

-

DISP_INTF_CVBS

-

CVBS 接口

-

-

DISP_INTF_SVIDEO

-

SVIDEO 接口

-

-

DISP_INTF_VGA

-

VGA 接口

-

-

DISP_INTF_MIPI

-

MIPI 接口

-

-

DISP_INTF_PANEL

-

PANEL 接口

-

-

DISP_INTF_BUTT

-

空接口

-
- -## LayerType - -``` -enum LayerType -``` - -**描述:** - -图层类型定义。 - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

LAYER_TYPE_GRAPHIC

-

图形层

-

-

LAYER_TYPE_OVERLAY

-

视频层

-

-

LAYER_TYPE_SDIEBAND

-

媒体播放

-

-

LAYER_TYPE_CURSOR

-

光标层

-

-

LAYER_TYPE_BUTT

-

空图层

-

-
- -## MirrorType - -``` -enum MirrorType -``` - -**描述:** - -硬件加速支持的镜像操作类型定义 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

MIRROR_NONE

-

不使用镜像

-

-

MIRROR_LR

-

左右镜像

-

-

MIRROR_TB

-

上下镜像

-

-

MIRROR_BUTT

-

空操作

-

-
- -## PixelFormat - -``` -enum PixelFormat -``` - -**描述:** - -像素格式类型定义。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

PIXEL_FMT_CLUT8

-

CLUT8 格式

-

-

PIXEL_FMT_CLUT1

-

CLUT1 格式

-

-

PIXEL_FMT_CLUT4

-

CLUT4 格式

-

-

PIXEL_FMT_RGB_565

-

RGB565 格式

-

-

PIXEL_FMT_RGBA_5658

-

RGBA5658 格式

-

-

PIXEL_FMT_RGBX_4444

-

RGBX4444 格式

-

-

PIXEL_FMT_RGBA_4444

-

RGBA4444 格式

-

-

PIXEL_FMT_RGB_444

-

RGB444 格式

-

-

PIXEL_FMT_RGBX_5551

-

RGBX5551 格式

-

-

PIXEL_FMT_RGBA_5551

-

RGBA5551 格式

-

-

PIXEL_FMT_RGB_555

-

RGB555 格式

-

-

PIXEL_FMT_RGBX_8888

-

RGBX8888 格式

-

-

PIXEL_FMT_RGBA_8888

-

RGBA8888 格式

-

-

PIXEL_FMT_RGB_888

-

RGB888 格式

-

-

PIXEL_FMT_BGR_565

-

BGR565 格式

-

-

PIXEL_FMT_BGRX_4444

-

BGRX4444 格式

-

-

PIXEL_FMT_BGRA_4444

-

BGRA4444 格式

-

-

PIXEL_FMT_BGRX_5551

-

BGRX5551 格式

-

-

PIXEL_FMT_BGRA_5551

-

BGRA5551 格式

-

-

PIXEL_FMT_BGRX_8888

-

BGRX8888 格式

-

-

PIXEL_FMT_BGRA_8888

-

BGRA8888 格式

-

-

PIXEL_FMT_YUV_422_I

-

YUV422 交错格式

-

-

PIXEL_FMT_YCBCR_422_SP

-

YCBCR422 半平面格式

-

-

PIXEL_FMT_YCRCB_422_SP

-

YCRCB422 半平面格式

-

-

PIXEL_FMT_YCBCR_420_SP

-

YCBCR420 半平面格式

-

-

PIXEL_FMT_YCRCB_420_SP

-

YCRCB420 半平面格式

-

-

PIXEL_FMT_YCBCR_422_P

-

YCBCR422 平面格式

-

-

PIXEL_FMT_YCRCB_422_P

-

YCRCB422 平面格式

-

-

PIXEL_FMT_YCBCR_420_P

-

YCBCR420 平面格式

-

-

PIXEL_FMT_YCRCB_420_P

-

YCRCB420 平面格式

-

-

PIXEL_FMT_YUYV_422_PKG

-

YUYV422 打包格式

-

-

PIXEL_FMT_UYVY_422_PKG

-

UYVY422 打包格式t

-

-

PIXEL_FMT_YVYU_422_PKG

-

YVYU422 打包格式

-

-

PIXEL_FMT_VYUY_422_PKG

-

VYUY422 打包格式

-

-

PIXEL_FMT_VENDER_MASK

-

vendor mask 格式

-

-

PIXEL_FMT_BUTT

-

Invalid 像素格式

-

-
- -## PresentTimestampType - -``` -enum PresentTimestampType -``` - -**描述:** - -上屏时间戳类型枚举值。 - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

HARDWARE_DISPLAY_PTS_UNSUPPORTED

-

不支持

-

-

HARDWARE_DISPLAY_PTS_DELAY

-

Delay 时延类型

-

-

HARDWARE_DISPLAY_PTS_TIMESTAMP

-

时间戳类型

-

-
- -## RopType - -``` -enum RopType -``` - -**描述:** - -硬件加速支持的ROP操作类型。 - -硬件加速支持的ROP操作类型,在将前景位图的RGB颜色分量和Alpha分量值与背景位图的RGB颜色 分量值和Alpha分量值进行按位的布尔运算(包括按位与,按位或等),将结果输出。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

ROP_BLACK

-

黑色

-

-

ROP_NOTMERGEPEN

-

~(S2+S1)

-

-

ROP_MASKNOTPEN

-

~S2&S1

-

-

ROP_NOTCOPYPEN

-

~S2

-

-

ROP_MASKPENNOT

-

S2&~S1

-

-

ROP_NOT

-

~S1

-

-

ROP_XORPEN

-

S2^S1

-

-

ROP_NOTMASKPEN

-

~(S2&S1)

-

-

ROP_MASKPEN

-

S2&S1

-

-

ROP_NOTXORPEN

-

~(S2^S1)

-

-

ROP_NOP

-

S1

-

-

ROP_MERGENOTPEN

-

~S2+S1

-

-

ROP_COPYPE

-

S2

-

-

ROP_MERGEPENNOT

-

S2+~S1

-

-

ROP_MERGEPEN

-

S2+S1

-

-

ROP_WHITE

-

白色

-

-

ROP_BUTT

-

无效值

-

-
- -## TransformType - -``` -enum TransformType -``` - -**描述:** - -图层变换类型定义。 - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

ROTATE_NONE

-

不旋转

-

-

ROTATE_90

-

旋转90度

-

-

ROTATE_180

-

旋转180度

-

-

ROTATE_270

-

旋转270度

-

-

ROTATE_BUTT

-

无效操作

-

-
- -## **函数说明** - -## DeviceInitialize\(\) - -``` -int32_t DeviceInitialize (DeviceFuncs ** funcs) -``` - -**描述:** - -实现显示设备控制接口的初始化,申请操作显示设备控制接口的资源,并获取对应的操作接口。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

funcs

-

输出参数,显示设备控制接口指针,初始化时分配内存,调用者不需要分配内存,调用者获取该指针用于操作显示设备。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## DeviceUninitialize\(\) - -``` -int32_t DeviceUninitialize (DeviceFuncs * funcs) -``` - -**描述:** - -取消显示设备控制接口的初始化,释放控制接口使用到的资源。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

funcs

-

输出参数,显示设备控制接口指针,用于释放初始化函数中分配的操作指针内存。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## GfxInitialize\(\) - -``` -int32_t GfxInitialize (GfxFuncs ** funcs) -``` - -**描述:** - -获取硬件加速相关的操作接口指针。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

funcs

-

输出参数,硬件加速模块操作接口指针,调用者不需要分配内存,调用者获取该指针操作硬件加速。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## GfxUninitialize\(\) - -``` -int32_t GfxUninitialize (GfxFuncs * funcs) -``` - -**描述:** - -释放硬件加速相关的操作接口指针。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

funcs

-

输出参数,硬件加速操作接口指针。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## GrallocInitialize\(\) - -``` -int32_t GrallocInitialize (GrallocFuncs ** funcs) -``` - -**描述:** - -初始化内存模块,并获取内存提供的操作接口。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

funcs

-

输出参数,内存模块操作接口指针,初始化内存模块时分配内存,调用者不需要分配内存,调用者获取该指针操作内存。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## GrallocUninitialize\(\) - -``` -int32_t GrallocUninitialize (GrallocFuncs * funcs) -``` - -**描述:** - -取消初始化内存模块,并释放内存操作接口指针。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

funcs

-

输出参数,内存操作接口指针,用于释放内存初始化函数中分配的操作指针内存。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## LayerInitialize\(\) - -``` -int32_t LayerInitialize (LayerFuncs ** funcs) -``` - -**描述:** - -实现图层初始化功能,申请图层使用的资源,并获取图层提供的操作接口。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

funcs

-

输出参数,图层操作接口指针,初始化图层时分配内存,调用者不需要分配内存,调用者获取该指针操作图层。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[LayerUninitialize](_display.md#ga4e32b1a65cf243a9ac015b632a4eea0b) - -## LayerUninitialize\(\) - -``` -int32_t LayerUninitialize (LayerFuncs * funcs) -``` - -**描述:** - -取消图层初始化功能,释放图层使用到的资源,并释放图层操作接口指针。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

funcs

-

输出参数,图层操作接口指针,用于释放图层初始化函数中分配的操作指针内存。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[LayerInitialize](_display.md#ga061e587306a5d0367ff228d64434c05d) - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **变量说明** - -## alpha0 \[1/2\] - -``` -uint8_t LayerAlpha::alpha0 -``` - -**描述:** - -alpha0值,取值范围:\[0, 255\] - -## alpha0 \[2/2\] - -``` -uint8_t ISurface::alpha0 -``` - -**描述:** - -Alpha0值,取值范围:\[0,255\] - -## alpha1 \[1/2\] - -``` -uint8_t LayerAlpha::alpha1 -``` - -**描述:** - -alpha1值,取值范围:\[0, 255\] - -## alpha1 \[2/2\] - -``` -uint8_t ISurface::alpha1 -``` - -**描述:** - -Alpha1值,取值范围:\[0,255\] - -## alphaRopType - -``` -[RopType](_display.md#ga24265f7618fbdba53d3da4806d3097c4) GfxOpt::alphaRopType -``` - -**描述:** - -Alpha的Rop类型 - -## bAlphaExt1555 - -``` -bool ISurface::bAlphaExt1555 -``` - -**描述:** - -是否使能1555的Alpha扩展 - -## bAlphaMax255 - -``` -bool ISurface::bAlphaMax255 -``` - -**描述:** - -图像alpha最大值为255还是128 - -## baseAddr - -``` -void* __attribute__::baseAddr -``` - -**描述:** - -内存的初始地址 - -## blendType - -``` -[BlendType](_display.md#gaab1839ed4aab1030dfda801a51e68817) GfxOpt::blendType -``` - -**描述:** - -混合方式 - -## bpp - -``` -int32_t LayerInfo::bpp -``` - -**描述:** - -每像素所占bit数 - -## bYCbCrClut - -``` -bool ISurface::bYCbCrClut -``` - -**描述:** - -CLUT表是否位于 YCbCr 空间 - -## cbcrPhyAddr - -``` -uint64_t ISurface::cbcrPhyAddr -``` - -**描述:** - -CbCr分量地址 - -## cbcrStride - -``` -int32_t ISurface::cbcrStride -``` - -**描述:** - -CbCr分量跨度 - -## clutPhyAddr - -``` -uint64_t ISurface::clutPhyAddr -``` - -**描述:** - -Clut表首地址,用作颜色扩展或颜色校正 - -## color \[1/3\] - -``` -uint32_t ILine::color -``` - -**描述:** - -线条颜色 - -## color \[2/3\] - -``` -uint32_t ICircle::color -``` - -**描述:** - -圆的颜色 - -## color \[3/3\] - -``` -uint32_t Rectangle::color -``` - -**描述:** - -矩形颜色 - -## colorKeyFrom - -``` -[ColorKey](_display.md#ga4fe6fb05c7ba0048b1739d88f4d4878e) GfxOpt::colorKeyFrom -``` - -**描述:** - -色键模式 - -## colorRopType - -``` -[RopType](_display.md#ga24265f7618fbdba53d3da4806d3097c4) GfxOpt::colorRopType -``` - -**描述:** - -颜色的Rop类型 - -## Commit - -``` -int32_t(* DeviceFuncs::Commit) (uint32_t devId, int32_t *fence) -``` - -**描述:** - -提交合成送显请求。 - -图形服务通过该接口向接口实现层提交合成送显请求,如果有硬件合成层,接口实现层需要在这时进行合成,并且把最终合成的数据送到硬件进行显示。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

fences

-

输出参数,fence首地址,指向fence数组的首地址。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## CreateVirtualDisplay - -``` -int32_t(* DeviceFuncs::CreateVirtualDisplay) (uint32_t width, uint32_t height, int32_t *format, uint32_t *devId) -``` - -**描述:** - -创建虚拟显示设备。 - -该接口用于创建一个虚拟显示设备。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

width

-

输入参数,指定显示设备的像素宽度。

-

height

-

输入参数,指定显示设备的像素高度。

-

format

-

输出参数,指定显示设备的像素格式。 详情参考PixelFormat,接口实现层可以根据硬件需求,修改format并返回给图形服务。

-

devId

-

输出参数,用于接口层返回创建的设备ID。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## CreateWriteBack - -``` -int32_t(* DeviceFuncs::CreateWriteBack) (uint32_t *devId, uint32_t width, uint32_t height, int32_t *format) -``` - -**描述:** - -对指定显示设备创建回写点。 - -该接口用来对指定的设备创建一个回写点,如果回写点数量超过了限制,接口实现层将会返回失败。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID,接口实现层在创建完回写点后将回写点设备ID存放在该参数中返回给图形服务。

-

width

-

输入参数,回写像素宽度。

-

height

-

输入参数,回写像素高度。

-

format

-

输入参数,回写点数据格式,详情参考PixelFormat,接口实现层可以根据硬件需求,修改format并返回给图形服务。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## data - -``` -BufferData LayerBuffer::data -``` - -**描述:** - -图层buffer数据 - -## DestroyVirtualDisplay - -``` -int32_t(* DeviceFuncs::DestroyVirtualDisplay) (uint32_t devId) -``` - -**描述:** - -销毁虚拟显示设备。 - -该接口用于销毁指定的虚拟显示设备。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## DestroyWriteBack - -``` -int32_t(* DeviceFuncs::DestroyWriteBack) (uint32_t devId) -``` - -**描述:** - -销毁指定显示设备的回写点。 - -该接口用來销毁指定的回写点。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## enableRop - -``` -bool GfxOpt::enableRop -``` - -**描述:** - -Rop功能使能位 - -## enableScale - -``` -bool GfxOpt::enableScale -``` - -**描述:** - -缩放功能使能位 - -## enColorFmt - -``` -[PixelFormat](_display.md#ga60883d4958a60b91661e97027a85072a) ISurface::enColorFmt -``` - -**描述:** - -图像格式 - -## enGlobalAlpha \[1/2\] - -``` -bool LayerAlpha::enGlobalAlpha -``` - -**描述:** - -全局alpha使能标志 - -## enGlobalAlpha \[2/2\] - -``` -bool GfxOpt::enGlobalAlpha -``` - -**描述:** - -全局alpha使能位 - -## enPixelAlpha \[1/2\] - -``` -bool LayerAlpha::enPixelAlpha -``` - -**描述:** - -像素alpha使能标志 - -## enPixelAlpha \[2/2\] - -``` -bool GfxOpt::enPixelAlpha -``` - -**描述:** - -像素alpha使能位 - -## expectedSize - -``` -uint32_t AllocInfo::expectedSize -``` - -**描述:** - -申请内存大小 - -## fd - -``` -int32_t __attribute__::fd -``` - -**描述:** - -句柄 fd,-1代表不支持。 - -## fenceId - -``` -int32_t LayerBuffer::fenceId -``` - -**描述:** - -buffer 的fence号 - -## format \[1/2\] - -``` -[PixelFormat](_display.md#ga60883d4958a60b91661e97027a85072a) AllocInfo::format -``` - -**描述:** - -申请内存格式 - -## format \[2/2\] - -``` -[PixelFormat](_display.md#ga60883d4958a60b91661e97027a85072a) VerifyAllocInfo::format -``` - -**描述:** - -分配内存的像素格式 - -## formatCount - -``` -uint32_t HDRCapability::formatCount -``` - -**描述:** - -支持的HDR格式的数量 - -## formats - -``` -[HDRFormat](_display.md#gabdc446aa6fa47c5dd8d1b7d87bed2566)* HDRCapability::formats -``` - -**描述:** - -支持的HDR格式的数组首地址 - -## freshRate - -``` -uint32_t DisplayModeInfo::freshRate -``` - -**描述:** - -刷新速率 - -## gAlpha - -``` -uint8_t LayerAlpha::gAlpha -``` - -**描述:** - -全局alpha值,取值范围:\[0, 255\] - -## GetDisplayBacklight - -``` -int32_t(* DeviceFuncs::GetDisplayBacklight) (uint32_t devId, uint32_t *level) -``` - -**描述:** - -获取显示设备当前的背光值。 - -图形服务可以通过该接口获取设置显示设备的背光值。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

level

-

输出参数,保存对应设备的背光值,由接口实现层进行写入。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetDisplayCapability - -``` -int32_t(* DeviceFuncs::GetDisplayCapability) (uint32_t devId, DisplayCapability *info) -``` - -**描述:** - -获取显示设备能力集。 - -图形服务可以通过该接口获取显示设备具备哪些显示能力。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

info

-

输出参数,设备支持的能力级信息,详情参考 {@DisplayCapability}。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetDisplayColorGamut - -``` -int32_t(* DeviceFuncs::GetDisplayColorGamut) (uint32_t devId, ColorGamut *gamut) -``` - -**描述:** - -获取显示设备当前的色域模式。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

gamut

-

输出参数,保存对应设备的色域模式,由接口实现层进行写入。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetDisplayCompChange - -``` -int32_t(* DeviceFuncs::GetDisplayCompChange) (uint32_t devId, uint32_t *num, uint32_t *Layers, int32_t *type) -``` - -**描述:** - -获取显示设备合成类型有变化的layer。 - -在合成准备阶段,显示设备会根据设备的合成能力修改图层的合成类型,该接口会返回哪些图层合成类型发生了变化。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

num

-

输出参数,表示合成类型发生了变化的图层数量。

-

Layers

-

输出参数,指向图层数组首地址。

-

type

-

输出参数,指向合成类型数组首地址。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetDisplayGamutMap - -``` -int32_t(* DeviceFuncs::GetDisplayGamutMap) (uint32_t devId, GamutMap *gamutMap) -``` - -**描述:** - -获取显示设备当前的色域映射模式。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

gamutMap

-

输出参数,保存对应设备的色域映射模式,由接口实现层进行写入。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetDisplayMode - -``` -int32_t(* DeviceFuncs::GetDisplayMode) (uint32_t devId, uint32_t *modeId) -``` - -**描述:** - -获取显示设备当前的显示模式。 - -图形服务可以通过该接口获取显示设备当前的显示模式。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

modeId

-

输出参数,存放当前设备的显示模式ID, 由接口实现层进行数据的写入。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetDisplayPowerStatus - -``` -int32_t(* DeviceFuncs::GetDisplayPowerStatus) (uint32_t devId, DispPowerStatus *status) -``` - -**描述:** - -获取显示设备当前的电源状态。 - -图形服务可以通过该接口获设置显示设备的电源状态。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

status

-

输出参数,保存对应设备的电源状态,由接口实现层进行状态的写入。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetDisplayProperty - -``` -int32_t(* DeviceFuncs::GetDisplayProperty) (uint32_t devId, uint32_t id, uint64_t *value) -``` - -**描述:** - -设置显示设备属性值。 - -图形服务可以通过该接口获取显示设备具体的属性值。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

id

-

输入参数,由接口GetDisplayCapability返回属性ID。

-

level

-

输出参数,属性ID对应的属性值,由接口实现层写入。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetDisplayReleaseFence - -``` -int32_t(* DeviceFuncs::GetDisplayReleaseFence) (uint32_t devId, uint32_t *num, uint32_t *layers, int32_t *fences) -``` - -**描述:** - -获取显示图层fence。 - -图形服务在调用接口Commit后,需要通过该接口获取图层的fence信息。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

num

-

输出参数,图层个数。

-

layers

-

输出参数,图层首地址,指向图层数组的首地址。

-

fences

-

输出参数,fence首地址,指向fence数组的首地址。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetDisplaySupportedColorGamuts - -``` -int32_t(* DeviceFuncs::GetDisplaySupportedColorGamuts) (uint32_t devId, uint32_t *num, ColorGamut *gamuts) -``` - -**描述:** - -获取显示设备支持的色域信息。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

num

-

输出参数,设备支持的色域数组个数。

-

gamuts

-

输出参数,色域首地址,指向色域数组首地址。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetDisplaySupportedModes - -``` -int32_t(* DeviceFuncs::GetDisplaySupportedModes) (uint32_t devId, uint32_t *num, DisplayModeInfo *modes) -``` - -**描述:** - -获取显示设备支持的显示模式信息。 - -图形服务可以通过该接口获取到显示设备支持哪些显示模式。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

num

-

输出参数,设备支持的模式数量。

-

modes

-

输出参数,设备支持的所有模式信息,包括所有能支持的分辨率和刷新率,每一个模式实现层都有一个Id与之对应,在获取当前模式 和设置当前模式时都会使用到,详情参考 {@DisplayModeInfo}。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetHDRCapabilityInfos - -``` -int32_t(* DeviceFuncs::GetHDRCapabilityInfos) (uint32_t devId, HDRCapability *info) -``` - -**描述:** - -获取显示设备支持的HDR属性信息。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

info

-

输出参数,保存对应设备的HDR属性信息,由接口实现层进行写入。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetSupportedMetadataKey - -``` -int32_t(* DeviceFuncs::GetSupportedMetadataKey) (uint32_t devId, uint32_t *num, HDRMetadataKey *keys) -``` - -**描述:** - -获取显示设备支持的 HDRMetadataKey。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

num

-

输出参数,设备支持的HDRMetadataKey数组个数。

-

keys

-

输出参数,HDRMetadataKey首地址,指向HDRMetadataKey数组首地址。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetWriteBackFrame - -``` -int32_t(* DeviceFuncs::GetWriteBackFrame) (uint32_t devId, BufferHandle *buffer, int32_t *fence) -``` - -**描述:** - -获取显示设备的回写帧。 - -该接口用来获取devId指定的回写点数据,接口实现层将显示设备回写点的数据写入到设置的缓存中。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

buffer

-

输出参数,回写点数据缓存。

-

fence

-

输出参数,同步栅栏,图形服务在调用该接口时,需要将Buffer的release fence 传入,标记该缓存是否可以被写入,接口实现层在接口返回前需要将buffer的acquirce fence 写入回传给图形服务,用来标记回写数据是否已经写入缓存。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## globalAlpha - -``` -uint32_t GfxOpt::globalAlpha -``` - -**描述:** - -全局alpha的值 - -## h - -``` -int32_t IRect::h -``` - -**描述:** - -矩形框高度 - -## hdl - -``` -BufferHandle* LayerBuffer::hdl -``` - -**描述:** - -图层buffer句柄 - -## height \[1/7\] - -``` -uint32_t DisplayInfo::height -``` - -**描述:** - -显示屏高度 - -## height \[2/7\] - -``` -int32_t LayerInfo::height -``` - -**描述:** - -图层高度 - -## height \[3/7\] - -``` -int32_t LayerBuffer::height -``` - -**描述:** - -buffer高度 - -## height \[4/7\] - -``` -int32_t ISurface::height -``` - -**描述:** - -图像高度 - -## height \[5/7\] - -``` -int32_t DisplayModeInfo::height -``` - -**描述:** - -像素高度 - -## height \[6/7\] - -``` -uint32_t AllocInfo::height -``` - -**描述:** - -申请内存高度 - -## height \[7/7\] - -``` -uint32_t VerifyAllocInfo::height -``` - -**描述:** - -分配内存的高度 - -## id - -``` -int32_t DisplayModeInfo::id -``` - -**描述:** - -模式ID - -## InvokeDisplayCmd - -``` -int32_t(* DeviceFuncs::InvokeDisplayCmd) (uint32_t devId,...) -``` - -**描述:** - -调用显示设备命令。 - -该接口用于图形服务和接口实现层之间的接口扩展,如果由临时接口新增可以通过该接口进行扩展,不用增加新的接口定义。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## key - -``` -[HDRMetadataKey](_display.md#ga5d7d90acb5c568e62a02b18446f37789) HDRMetaData::key -``` - -**描述:** - -HDR元数据关键字 - -## maxAverageLum - -``` -float HDRCapability::maxAverageLum -``` - -**描述:** - -最大的平均光亮度luminance值 - -## maxLum - -``` -float HDRCapability::maxLum -``` - -**描述:** - -最大的光亮度luminance值 - -## minLum - -``` -float HDRCapability::minLum -``` - -**描述:** - -最小的光亮度luminance值 - -## mirrorType - -``` -[MirrorType](_display.md#ga08d32376574b541d162d8534adb78fd0) GfxOpt::mirrorType -``` - -**描述:** - -镜像类型 - -## name \[1/2\] - -``` -char PropertyObject::名称[PROPERTY_NAME_LEN] -``` - -**描述:** - -属性名称 - -## name \[2/2\] - -``` -char DisplayCapability::名称[PROPERTY_NAME_LEN] -``` - -**描述:** - -显示设备名称 - -## phyAddr \[1/2\] - -``` -uint64_t BufferData::phyAddr -``` - -**描述:** - -物理内存地址 - -## phyAddr \[2/2\] - -``` -uint64_t ISurface::phyAddr -``` - -**描述:** - -图像首地址 - -## phyHeight - -``` -uint32_t DisplayCapability::phyHeight -``` - -**描述:** - -物理高度 - -## phyWidth - -``` -uint32_t DisplayCapability::phyWidth -``` - -**描述:** - -物理宽度 - -## pitch - -``` -int32_t LayerBuffer::pitch -``` - -**描述:** - -一行数据所占字节数 - -## pixFormat \[1/2\] - -``` -[PixelFormat](_display.md#ga60883d4958a60b91661e97027a85072a) LayerInfo::pixFormat -``` - -**描述:** - -图层像素格式 - -## pixFormat \[2/2\] - -``` -[PixelFormat](_display.md#ga60883d4958a60b91661e97027a85072a) LayerBuffer::pixFormat -``` - -**描述:** - -buffer像素格式 - -## PrepareDisplayLayers - -``` -int32_t(* DeviceFuncs::PrepareDisplayLayers) (uint32_t devId, bool *needFlushFb) -``` - -**描述:** - -显示设备合成前准备。 - -图形服务在合成前需要通过该接口通知显示设备进行合成前的准备工作。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

needFlushFb

-

输出参数,接口实现层通过该参数指示图形服务在commit前是否需要通过SetDisplayClientBuffer重新设置显示帧存。 true表示需要设置显示帧存,false表示不需要。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## propertyCount - -``` -uint32_t DisplayCapability::propertyCount -``` - -**描述:** - -属性数组大小 - -## propId - -``` -uint32_t PropertyObject::propId -``` - -**描述:** - -属性ID - -## props - -``` -[PropertyObject](_property_object.md)* DisplayCapability::props -``` - -**描述:** - -属性数组 - -## r - -``` -int32_t ICircle::r -``` - -**描述:** - -圆的半径 - -## rect - -``` -[IRect](_i_rect.md) Rectangle::rect -``` - -**描述:** - -矩形区域 - -## RegDisplayRefreshCallback - -``` -int32_t(* DeviceFuncs::RegDisplayRefreshCallback) (uint32_t devId, RefreshCallback callback, void *data) -``` - -**描述:** - -刷新请求回调。 - -注册刷新请求事件回调,当实现层有刷新需求时,实现层通过回调注册的接口通知图形服务。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

callback

-

输入参数,刷新请求事件回调实例,当有接口实现层有刷新请求时,需要通过该实例通知图形服务。

-

data

-

输出参数,图形服务携带的私有数据,在事件回调接口中需要返回给图形服务。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](#ga12a925dadef7573cd74d63d06824f9b0)。 - -## RegDisplayVBlankCallback - -``` -int32_t(* DeviceFuncs::RegDisplayVBlankCallback) (uint32_t devId, VBlankCallback callback, void *data) -``` - -**描述:** - -注册VBlank事件回调。 - -注册VBlank事件回调,当有VBlank事件发生时接口实现层需要回调注册的接口。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

callback

-

输入参数,VBlank事件回调实例,当有VBlank事件发生时并且DisplayVsync处于Enable状态,接口实现层需要通过该实例通知图形服务。

-

data

-

输出参数,图形服务携带的私有数据,在事件回调接口中需要返回给图形服务。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](#ga12a925dadef7573cd74d63d06824f9b0)。 - -## RegHotPlugCallback - -``` -int32_t(* DeviceFuncs::RegHotPlugCallback) ((HotPlugCallback callback, void *data) -``` - -**描述:** - -注册热插拔事件回调。 - -注册热插拔事件回调,当有热插拔事件发生时接口实现层需要回调注册的接口。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

callback

-

输入参数,热插拔事件回调实例,当有热插拔事件发生时,接口实现层需要通过该实例通知图形服务。

-

data

-

输出参数,图形服务携带的私有数据,在事件回调接口中需要返回给图形服务。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](#ga12a925dadef7573cd74d63d06824f9b0)。 - -## reserve - -``` -int32_t __attribute__::reserve[0] -``` - -**描述:** - -reserve数组 - -## reserveInts - -``` -uint32_t __attribute__::reserveInts -``` - -**描述:** - -reserve数组的个数 - -## rotAngle - -``` -int32_t DisplayInfo::rotAngle -``` - -**描述:** - -显示屏旋转角度 - -## rotateType - -``` -[TransformType](_display.md#gaa65f3b21a9a92ff022e435a7304126d2) GfxOpt::rotateType -``` - -**描述:** - -旋转类型 - -## SetDisplayBacklight - -``` -int32_t(* DeviceFuncs::SetDisplayBacklight) (uint32_t devId, uint32_t level) -``` - -**描述:** - -设置显示设备当前的背光值。 - -图形服务可以通过该接口获设置显示设备的背光值。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

level

-

输入参数,表示需要设置的背光值。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetDisplayClientBuffer - -``` -int32_t(* DeviceFuncs::SetDisplayClientBuffer) (uint32_t devId, const BufferHandle *buffer, int32_t fence) -``` - -**描述:** - -设置显示设备的显示缓存。 - -图形服务可以通过该接口将显示缓存设置给显示设备,显示设备硬件合成结果将会存放在该显示缓存中。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

buffer

-

输入参数,显示缓存。

-

fence

-

输入参数,同步栅栏,标识显示缓存是否可以访问,有图形服务创建和释放,接口实现层需要等待同步栅栏发送信号后才能使用显示缓存。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetDisplayClientCrop - -``` -int32_t(* DeviceFuncs::SetDisplayClientCrop) (uint32_t devId, IRect *rect) -``` - -**描述:** - -设置显示设备的裁剪区域。 - -图形服务可以通过该接口设置显示设备的ClientBuffer的裁剪区域,裁剪区域不能超过ClientBuffer的大小。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

rect

-

输入参数,ClientBuffer的裁剪区域。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetDisplayClientDamage - -``` -int32_t(* DeviceFuncs::SetDisplayClientDamage) (uint32_t devId, uint32_t num, IRect *rect) -``` - -**描述:** - -设置显示设备的显示脏区。 - -图形服务可以通过该接口设置显示设备脏区,接口实现层可以根据该区域进行区域刷新,脏区是由多个矩形区域组合起来的。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

num

-

输入参数,矩形个数。

-

rect

-

输入参数,区域矩形指针,指向矩形数组的首地址。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetDisplayClientDestRect - -``` -int32_t(* DeviceFuncs::SetDisplayClientDestRect) (uint32_t devId, IRect *rect) -``` - -**描述:** - -设置显示设备的显示区域。 - -图形服务可以通过该接口设置显示设备的显示区域。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

rect

-

输入参数,显示区域。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetDisplayColorGamut - -``` -int32_t(* DeviceFuncs::SetDisplayColorGamut) (uint32_t devId, ColorGamut gamut) -``` - -**描述:** - -设置显示设备当前的色域模式。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

gamut

-

输入参数,表示需要设置的色域模式。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetDisplayColorTransform - -``` -int32_t(* DeviceFuncs::SetDisplayColorTransform) (uint32_t devId, const float *matrix) -``` - -**描述:** - -设置显示设备当前的4x4的颜色转换矩阵。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

matrix

-

输入参数,表示需要设置的颜色转换模式。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetDisplayGamutMap - -``` -int32_t(* DeviceFuncs::SetDisplayGamutMap) (uint32_t devId, GamutMap gamutMap) -``` - -**描述:** - -设置显示设备当前的色域映射模式。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

gamutMap

-

输入参数,表示需要设置的色域映射模式。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetDisplayMode - -``` -int32_t(* DeviceFuncs::SetDisplayMode) (uint32_t devId, uint32_t modeId) -``` - -**描述:** - -设置显示设备的显示模式。 - -图形服务可以通过该接口获设置显示设备的显示模式。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

modeId

-

输入参数,指明需要设置的模式ID,接口实现层将设备切换到该参数对应的显示模式。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetDisplayPowerStatus - -``` -int32_t(* DeviceFuncs::SetDisplayPowerStatus) (uint32_t devId, [DispPowerStatus](#ga0f3c8af6e9d40730b0d2e0fbbf8e627d) status) -``` - -**描述:** - -设置显示设备当前的电源状态。 - -图形服务可以通过该接口获设置显示设备的电源状态。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

status

-

输入参数,表示需要设置的电源状态。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetDisplayProperty - -``` -int32_t(* DeviceFuncs::SetDisplayProperty) (uint32_t devId, uint32_t id, uint64_t value) -``` - -**描述:** - -设置显示设备属性值。 - -图形服务可以通过该接口设置显示设备具体的属性值。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

id

-

输入参数,由接口GetDisplayCapability返回属性ID。

-

value

-

输入参数,需要设置的属性值。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetDisplayVsyncEnabled - -``` -int32_t(* DeviceFuncs::SetDisplayVsyncEnabled) (uint32_t devId, bool enabled) -``` - -**描述:** - -使能垂直同步信号。 - -图形服务可以通过该接口使能或取消垂直同步信号,当有垂直同步信号产生时,接口实现层需要回调图形服务通过RegDisplayVBlankCallback注册的 VBlankCallback 回调。 图形服务在需要刷新显示时需要使能垂直同步信号,在收到VBlankCallback事件回调时再进行合成送显,不需要刷新显示时需要取消垂直同步信号。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

enabled

-

输入参数,使能状态,true表示能,false表示不能。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetVirtualDisplayBuffer - -``` -int32_t(* DeviceFuncs::SetVirtualDisplayBuffer) (uint32_t devId, BufferHandle *buffer, int32_t fence) -``` - -**描述:** - -设置虚拟屏的输出缓存。 - -该接口用于设置虚拟屏输出缓存,接口实现层需要将虚拟屏的输出放入到该缓存中,接口实现层需要等待同步栅栏发送信号后才能使用缓存。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

buffer

-

输出参数,输出缓存。

-

fence

-

输出参数,同步栅栏。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## stride - -``` -int32_t ISurface::stride -``` - -**描述:** - -图像跨度 - -## supportLayers - -``` -uint32_t DisplayCapability::supportLayers -``` - -**描述:** - -支持的图层数 - -## supportWriteBack - -``` -bool DisplayCapability::supportWriteBack -``` - -**描述:** - -是否支持回写 - -## time - -``` -int64_t PresentTimestamp::time -``` - -**描述:** - -类型对应的值 - -## type \[1/3\] - -``` -[LayerType](_display.md#ga56943a0946e5f15e5e58054b8e7a04a4) LayerInfo::type -``` - -**描述:** - -图层类型,包括图形层、视频层和媒体播放模式 - -## type \[2/3\] - -``` -[InterfaceType](_display.md#gaf1ef2c97e255bd7f21d3b7614b283d9d) DisplayCapability::type -``` - -**描述:** - -显示屏接口类型 - -## type \[3/3\] - -``` -[PresentTimestampType](_display.md#gabdba71665ea5ba4004ac1a9fbeb505f3) PresentTimestamp::type -``` - -**描述:** - -上屏时间戳类型 - -## uOffset - -``` -size_t __attribute__::uOffset -``` - -**描述:** - -U的偏移量 - -## usage \[1/2\] - -``` -uint64_t AllocInfo::usage -``` - -**描述:** - -申请内存的使用场景 - -## usage \[2/2\] - -``` -uint64_t VerifyAllocInfo::usage -``` - -**描述:** - -内存的用处 - -## uvStep - -``` -size_t __attribute__::uvStep -``` - -**描述:** - -UV的step信息 - -## uvStride - -``` -size_t __attribute__::uvStride -``` - -**描述:** - -UV的stride信息 - -## value \[1/2\] - -``` -uint64_t PropertyObject::value -``` - -**描述:** - -属性值 - -## value \[2/2\] - -``` -float HDRMetaData::value -``` - -**描述:** - -关键字对应的值 - -## virAddr - -``` -void* BufferData::virAddr -``` - -**描述:** - -虚拟内存地址 - -## virtualDispCount - -``` -uint32_t DisplayCapability::virtualDispCount -``` - -**描述:** - -支持的虚拟屏数 - -## vOffset - -``` -size_t __attribute__::vOffset -``` - -**描述:** - -V的偏移量 - -## w - -``` -int32_t IRect::w -``` - -**描述:** - -矩形框宽度 - -## width \[1/7\] - -``` -uint32_t DisplayInfo::width -``` - -**描述:** - -显示屏宽度 - -## width \[2/7\] - -``` -int32_t LayerInfo::width -``` - -**描述:** - -图层宽度 - -## width \[3/7\] - -``` -int32_t LayerBuffer::width -``` - -**描述:** - -buffer宽度 - -## width \[4/7\] - -``` -int32_t ISurface::width -``` - -**描述:** - -图像宽度 - -## width \[5/7\] - -``` -int32_t DisplayModeInfo::width -``` - -**描述:** - -像素宽度 - -## width \[6/7\] - -``` -uint32_t AllocInfo::width -``` - -**描述:** - -申请内存宽度 - -## width \[7/7\] - -``` -uint32_t VerifyAllocInfo::width -``` - -**描述:** - -分配内存的宽度 - -## x \[1/2\] - -``` -int32_t IRect::x -``` - -**描述:** - -矩形框起始x坐标 - -## x \[2/2\] - -``` -int32_t ICircle::x -``` - -**描述:** - -圆心x坐标 - -## x0 - -``` -int32_t ILine::x0 -``` - -**描述:** - -线条起点的x坐标 - -## x1 - -``` -int32_t ILine::x1 -``` - -**描述:** - -线条终点的x坐标 - -## y \[1/2\] - -``` -int32_t IRect::y -``` - -**描述:** - -矩形框起始y坐标 - -## y \[2/2\] - -``` -int32_t ICircle::y -``` - -**描述:** - -圆心y坐标r - -## y0 - -``` -int32_t ILine::y0 -``` - -**描述:** - -线条起点的y坐标 - -## y1 - -``` -int32_t ILine::y1 -``` - -**描述:** - -线条终点的y坐标 - -## yOffset - -``` -size_t __attribute__::yOffset -``` - -**描述:** - -Y的偏移量 - -## yStride - -``` -size_t __attribute__::yStride -``` - -**描述:** - -Y的stride信息 - diff --git a/zh-cn/device-dev/api/toctopics/_display_capability.md b/zh-cn/device-dev/api/toctopics/_display_capability.md deleted file mode 100644 index e07618df07..0000000000 --- a/zh-cn/device-dev/api/toctopics/_display_capability.md +++ /dev/null @@ -1,71 +0,0 @@ -# DisplayCapability - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

name [PROPERTY_NAME_LEN]

-

显示设备名称

-

type

-

显示屏接口类型

-

phyWidth

-

物理宽度

-

phyHeight

-

物理高度

-

supportLayers

-

支持的图层数

-

virtualDispCount

-

支持的虚拟屏数

-

supportWriteBack

-

是否支持回写

-

propertyCount

-

属性数组大小

-

props

-

属性数组

-
- -## **详细描述** - -定义输出性能。 - diff --git a/zh-cn/device-dev/api/toctopics/_display_info.md b/zh-cn/device-dev/api/toctopics/_display_info.md deleted file mode 100644 index 69c51fae4a..0000000000 --- a/zh-cn/device-dev/api/toctopics/_display_info.md +++ /dev/null @@ -1,41 +0,0 @@ -# DisplayInfo - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

width

-

显示屏宽度

-

height

-

显示屏高度

-

rotAngle

-

显示屏旋转角度

-
- -## **详细描述** - -定义显示信息结构体。 - diff --git a/zh-cn/device-dev/api/toctopics/_display_mode_info.md b/zh-cn/device-dev/api/toctopics/_display_mode_info.md deleted file mode 100644 index 500a986dc0..0000000000 --- a/zh-cn/device-dev/api/toctopics/_display_mode_info.md +++ /dev/null @@ -1,46 +0,0 @@ -# DisplayModeInfo - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

width

-

像素宽度

-

height

-

像素高度

-

freshRate

-

刷新速率

-

id

-

模式ID

-
- -## **详细描述** - -定义输出模式信息。 - diff --git a/zh-cn/device-dev/api/toctopics/_enroll_param.md b/zh-cn/device-dev/api/toctopics/_enroll_param.md deleted file mode 100644 index 72ab14a5fa..0000000000 --- a/zh-cn/device-dev/api/toctopics/_enroll_param.md +++ /dev/null @@ -1,81 +0,0 @@ -# EnrollParam - -## **概述** - -**所属模块:** - -[HdfUserAuth](_hdf_user_auth.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

authType

-

用户认证凭据类型。

-

executorType

-

执行器类型。

-

executorId

-

既定用户认证凭据类型的执行器ID。

-
- -## **详细描述** - -注册认证凭据参数。 - -**Since:** - -3.2 - -**Version:** - -1.0 - -## **类成员变量说明** - -## authType - -``` -enum AuthType EnrollParam::authType -``` - -**描述:** - -用户认证凭据类型。 - -## executorId - -``` -unsigned int EnrollParam::executorId -``` - -**描述:** - -既定用户认证凭据类型的执行器ID。 - -## executorType - -``` -unsigned int EnrollParam::executorType -``` - -**描述:** - -执行器类型。 - diff --git a/zh-cn/device-dev/api/toctopics/_enrolled_info.md b/zh-cn/device-dev/api/toctopics/_enrolled_info.md deleted file mode 100644 index 3815419a39..0000000000 --- a/zh-cn/device-dev/api/toctopics/_enrolled_info.md +++ /dev/null @@ -1,66 +0,0 @@ -# EnrolledInfo - -## **概述** - -**所属模块:** - -[HdfUserAuth](_hdf_user_auth.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

enrolledId

-

注册ID,用户注册新的认证凭据时会更新注册ID。

-

authType

-

用户认证凭据类型。

-
- -## **详细描述** - -注册信息。 - -**Since:** - -3.2 - -**Version:** - -1.0 - -## **类成员变量说明** - -## authType - -``` -enum AuthType EnrolledInfo::authType -``` - -**描述:** - -用户认证凭据类型AuthType\}。 - -## enrolledId - -``` -unsigned long EnrolledInfo::enrolledId -``` - -**描述:** - -注册ID,用户注册新的认证凭据时会更新注册ID。 - diff --git a/zh-cn/device-dev/api/toctopics/_event_info.md b/zh-cn/device-dev/api/toctopics/_event_info.md deleted file mode 100644 index 5e1e5449c7..0000000000 --- a/zh-cn/device-dev/api/toctopics/_event_info.md +++ /dev/null @@ -1,118 +0,0 @@ -# EventInfo - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

appData

-

设置回调时给入的上层实例。

-

appDataLen

-

appData字节数。

-

data1

-

事件上报携带的数据1。

-

data2

-

事件上报携带的数据2。

-

eventData

-

事件上报携带的数据信息。

-

eventDataLen

-

eventData字节数。

-
- -## **详细描述** - -定义事件上报信息。 - -## **类成员变量说明** - -## appData - -``` -int8_t* EventInfo::appData -``` - -**描述:** - -设置回调时给入的上层实例 - -## appDataLen - -``` -uint32_t EventInfo::appDataLen -``` - -**描述:** - -appData字节数 - -## data1 - -``` -uint32_t EventInfo::data1 -``` - -**描述:** - -事件上报携带的数据1 - -## data2 - -``` -uint32_t EventInfo::data2 -``` - -**描述:** - -事件上报携带的数据2 - -## eventData - -``` -int8_t* EventInfo::eventData -``` - -**描述:** - -事件上报携带的数据信息 - -## eventDataLen - -``` -uint32_t EventInfo::eventDataLen -``` - -**描述:** - -eventData字节数 - diff --git a/zh-cn/device-dev/api/toctopics/_event_package.md b/zh-cn/device-dev/api/toctopics/_event_package.md deleted file mode 100644 index cdf3b78cc3..0000000000 --- a/zh-cn/device-dev/api/toctopics/_event_package.md +++ /dev/null @@ -1,88 +0,0 @@ -# EventPackage - -## **概述** - -**所属模块:** - -[Input](_input.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

type

-

输入事件的属性

-

code

-

输入事件的特定编码项

-

value

-

输入事件编码项对应的值

-

timestamp

-

输入事件对应的时间戳

-
- -## **详细描述** - -input事件数据包结构。 - -## **类成员变量说明** - -## code - -``` -uint32_t EventPackage::code -``` - -**描述:** - -输入事件的特定编码项 - -## timestamp - -``` -uint64_t EventPackage::timestamp -``` - -**描述:** - -输入事件对应的时间戳 - -## type - -``` -uint32_t EventPackage::type -``` - -**描述:** - -输入事件的属性 - -## value - -``` -int32_t EventPackage::value -``` - -**描述:** - -输入事件编码项对应的值 - diff --git a/zh-cn/device-dev/api/toctopics/_executor_info.md b/zh-cn/device-dev/api/toctopics/_executor_info.md deleted file mode 100644 index 8f9f9be002..0000000000 --- a/zh-cn/device-dev/api/toctopics/_executor_info.md +++ /dev/null @@ -1,173 +0,0 @@ -# ExecutorInfo - -## **概述** - -**所属模块:** - -[HdfFaceAuth](_hdf_face_auth.md) | [HdfPinAuth](_hdf_pin_auth.md) | [HdfUserAuth](_hdf_user_auth.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

sensorId

-

传感器ID,不同传感器在人脸/口令认证驱动内的唯一标识。

-

executorType

-

执行器类型,根据执行器支持的能力/算法类型进行分类。

-

index

-

用户认证框架的执行器索引。

-

executorRole

-

执行器角色ExecutorRole。

-

authType

-

用户认证凭据类型。

-

esl

-

执行器安全等级。

-

publicKey

-

执行器公钥,用于校验该执行器私钥签名的信息。

-

extraInfo

-

其他相关信息,用于支持信息扩展。

-

info

-

执行器注册信息ExecutorRegisterInfo。

-
- -## **详细描述** - -执行器信息。 - -**Since:** - -3.2 - -**Version:** - -1.0 - -## **类成员变量说明** - -## authType - -``` -enum AuthType ExecutorInfo::authType -``` - -**描述:** - -用户认证凭据类型。 - -## esl - -``` -enum ExecutorSecureLevel ExecutorInfo::esl -``` - -**描述:** - -执行器安全等级ExecutorSecureLevel。 - -## executorRole - -``` -enum ExecutorRole ExecutorInfo::executorRole -``` - -**描述:** - -执行器角色ExecutorRole。 - -## executorType - -``` -unsigned int ExecutorInfo::executorType -``` - -**描述:** - -执行器类型,根据执行器支持的能力/算法类型进行分类。 - -## extraInfo - -``` -unsigned char [] ExecutorInfo::extraInfo -``` - -**描述:** - -其他相关信息,用于支持信息扩展。 - -## index - -``` -unsigned long ExecutorInfo::index -``` - -**描述:** - -用户认证框架的执行器索引。 - -## info - -``` -struct ExecutorRegisterInfo ExecutorInfo::info -``` - -**描述:** - -执行器注册信息ExecutorRegisterInfo。 - -## publicKey - -``` -unsigned char [] ExecutorInfo::publicKey -``` - -**描述:** - -执行器公钥,用于校验该执行器私钥签名的信息。 - -## sensorId - -``` -unsigned short ExecutorInfo::sensorId -``` - -**描述:** - -传感器ID,不同传感器在人脸认证驱动内的唯一标识。 - -传感器ID,不同传感器在口令认证驱动内的唯一标识。 - diff --git a/zh-cn/device-dev/api/toctopics/_executor_register_info.md b/zh-cn/device-dev/api/toctopics/_executor_register_info.md deleted file mode 100644 index 358d3d459e..0000000000 --- a/zh-cn/device-dev/api/toctopics/_executor_register_info.md +++ /dev/null @@ -1,126 +0,0 @@ -# ExecutorRegisterInfo - -## **概述** - -**所属模块:** - -[HdfUserAuth](_hdf_user_auth.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

authType

-

用户认证凭据类型。

-

executorRole

-

执行器角色ExecutorRole。

-

executorId

-

既定用户认证凭据类型的执行器ID。

-

executorType

-

执行器类型,根据执行器支持的认证能力进行分类。

-

esl

-

执行器安全等级ExecutorSecureLevel。

-

publicKey

-

执行器公钥,用于校验该执行器私钥签名的信息。

-
- -## **详细描述** - -执行器注册信息。 - -**Since:** - -3.2 - -**Version:** - -1.0 - -## **类成员变量说明** - -## authType - -``` -enum AuthType ExecutorRegisterInfo::authType -``` - -**描述:** - -用户认证凭据类型。 - -## esl - -``` -enum ExecutorSecureLevel ExecutorRegisterInfo::esl -``` - -**描述:** - -执行器安全等级ExecutorSecureLevel。 - -## executorId - -``` -unsigned int ExecutorRegisterInfo::executorId -``` - -**描述:** - -既定用户认证凭据类型的执行器ID。 - -## executorRole - -``` -enum ExecutorRole ExecutorRegisterInfo::executorRole -``` - -**描述:** - -执行器角色ExecutorRole。 - -## executorType - -``` -unsigned int ExecutorRegisterInfo::executorType -``` - -**描述:** - -执行器类型,根据执行器支持的认证能力进行分类。 - -## publicKey - -``` -unsigned char [] ExecutorRegisterInfo::publicKey -``` - -**描述:** - -执行器公钥,用于校验该执行器私钥签名的信息。 - diff --git a/zh-cn/device-dev/api/toctopics/_executor_send_msg.md b/zh-cn/device-dev/api/toctopics/_executor_send_msg.md deleted file mode 100644 index 17e4bd6717..0000000000 --- a/zh-cn/device-dev/api/toctopics/_executor_send_msg.md +++ /dev/null @@ -1,64 +0,0 @@ -# ExecutorSendMsg - -## **概述** - -**所属模块:** - -[HdfUserAuth](_hdf_user_auth.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

index

-

用户认证框架的执行器索引。

-

msg

-

执行器发送的消息。

-
- -## **详细描述** - -执行器发送的消息。 - -**Since:** - -3.2 - -**Version:** - -## **类成员变量说明** - -## index - -``` -unsigned int ExecutorSendMsg::index -``` - -**描述:** - -用户认证框架的执行器索引。 - -## msg - -``` -unsigned char [] ExecutorSendMsg::msg -``` - -**描述:** - -执行器发送的消息。 - diff --git a/zh-cn/device-dev/api/toctopics/_face_auth_types_8idl.md b/zh-cn/device-dev/api/toctopics/_face_auth_types_8idl.md deleted file mode 100644 index 0c634b046f..0000000000 --- a/zh-cn/device-dev/api/toctopics/_face_auth_types_8idl.md +++ /dev/null @@ -1,94 +0,0 @@ -# FaceAuthTypes.idl - -## **概述** - -**所属模块:** - -[HdfFaceAuth](_hdf_face_auth.md) - -## **汇总** - -## 类 - - - - - - - - - - - - - -

-

描述

-

ExecutorInfo

-

执行器信息。 更多...

-

TemplateInfo

-

凭据模版信息。 更多...

-
- -## 枚举 - - - - - - - - - - - - - - - - - - - - - - -

枚举

-

描述

-

AuthType : int { PIN = 1, FACE = 2, FINGERPRINT = 4, PIN = 1, FACE = 2, FINGERPRINT = 4, ALL = 0, PIN = 1, FACE = 2, FINGERPRINT = 4 }

-

枚举用户认证凭据类型。 更多...

-

ExecutorRole : int { COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3, COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3, COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 }

-

枚举执行器角色。 更多...

-

ExecutorSecureLevel : int { ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3, ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3, ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 }

-

枚举执行器安全等级。 更多...

-

CommandId : int { LOCK_TEMPLATE = 1, UNLOCK_TEMPLATE = 2, VENDOR_COMMAND_BEGIN = 10000, DEFAULT = 0 }

-

枚举人脸认证功能相关操作命令。 更多...

-

FaceTipsCode : int { FACE_AUTH_TIP_TOO_BRIGHT = 1, FACE_AUTH_TIP_TOO_DARK = 2, FACE_AUTH_TIP_TOO_CLOSE = 3, FACE_AUTH_TIP_TOO_FAR = 4, FACE_AUTH_TIP_TOO_HIGH = 5, FACE_AUTH_TIP_TOO_LOW = 6, FACE_AUTH_TIP_TOO_RIGHT = 7, FACE_AUTH_TIP_TOO_LEFT = 8, FACE_AUTH_TIP_TOO_MUCH_MOTION = 9, FACE_AUTH_TIP_POOR_GAZE = 10, FACE_AUTH_TIP_NOT_DETECTED = 11, VENDOR_FACE_AUTH_TIP_BEGIN = 10000 }

-

枚举提示信息编码。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.face_auth.v1_0

-

人脸认证接口的包路径

-
- -## **详细描述** - -定义人脸认证驱动的枚举类和数据结构。 - -**Since:** - -3.2 - diff --git a/zh-cn/device-dev/api/toctopics/_get_buffer_handle_usage_params.md b/zh-cn/device-dev/api/toctopics/_get_buffer_handle_usage_params.md deleted file mode 100644 index b2b32291ca..0000000000 --- a/zh-cn/device-dev/api/toctopics/_get_buffer_handle_usage_params.md +++ /dev/null @@ -1,88 +0,0 @@ -# GetBufferHandleUsageParams - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

size

-

结构体大小

-

version

-

组件版本信息

-

portIndex

-

端口索引

-

usage

-

使用率

-
- -## **详细描述** - -BufferHandleUsage类型定义。 - -## **类成员变量说明** - -## portIndex - -``` -uint32_t GetBufferHandleUsageParams::portIndex -``` - -**描述:** - -端口索引 - -## size - -``` -uint32_t GetBufferHandleUsageParams::size -``` - -**描述:** - -结构体大小 - -## usage - -``` -uint32_t GetBufferHandleUsageParams::usage -``` - -**描述:** - -usage - -## version - -``` -union OMX_VERSIONTYPE GetBufferHandleUsageParams::version -``` - -**描述:** - -组件版本信息 - diff --git a/zh-cn/device-dev/api/toctopics/_gfx_funcs.md b/zh-cn/device-dev/api/toctopics/_gfx_funcs.md deleted file mode 100644 index d3c06af0aa..0000000000 --- a/zh-cn/device-dev/api/toctopics/_gfx_funcs.md +++ /dev/null @@ -1,380 +0,0 @@ -# GfxFuncs - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

( InitGfx )(void)

-

初始化硬件加速。 更多...

-

( DeinitGfx )(void)

-

去初始化硬件加速。 更多...

-

( FillRect )(ISurface *surface, IRect *rect, uint32_t color, GfxOpt *opt)

-

填充矩形,用一种颜色填充画布上指定矩形区域的矩形框。 更多...

-

( DrawRectangle )(ISurface *surface, Rectangle *rect, uint32_t color, GfxOpt *opt)

-

绘制矩形框,用一种颜色在画布上绘制指定区域的矩形框。 更多...

-

( DrawLine )(ISurface *surface, ILine *line, GfxOpt *opt)

-

绘制直线,使用一种颜色在画布上绘制一条直线。 更多...

-

( DrawCircle )(ISurface *surface, ICircle *circle, GfxOpt *opt)

-

绘制圆形,使用一种颜色在画布上绘制指定圆心和半径的圆。 更多...

-

( Blit )(ISurface *srcSurface, IRect *srcRect, ISurface *dstSurface, IRect *dstRect, GfxOpt *opt)

-

位图搬移 更多...

-

( Sync )(int32_t timeOut)

-

硬件加速同步。 更多...

-
- -## **详细描述** - -显示硬件加速驱动接口结构体,定义硬件加速驱动接口函数指针。 - -## **类成员变量说明** - -## Blit - -``` -int32_t(* GfxFuncs::Blit) (ISurface *srcSurface, IRect *srcRect, ISurface *dstSurface, IRect *dstRect, GfxOpt *opt) -``` - -**描述:** - -位图搬移 - -在位图搬移过程中,可以实现色彩空间转换、缩放、旋转等功能。 - -**参数:** - - - - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

srcSurface

-

输入参数,源位图信息。

-

srcRect

-

输入参数,源位图搬移区域。

-

dstSurface

-

输出参数,目标位图信息。

-

dstRect

-

输出参数,目标位图区域。

-

opt

-

输入参数,硬件加速选项。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## DeinitGfx - -``` -int32_t(* GfxFuncs::DeinitGfx) (void) -``` - -**描述:** - -去初始化硬件加速。 - -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[InitGfx](_gfx_funcs.md#a3ec8ed6a467ed0c88e4dd723723c0f41) - -## DrawCircle - -``` -int32_t(* GfxFuncs::DrawCircle) (ISurface *surface, ICircle *circle, GfxOpt *opt) -``` - -**描述:** - -绘制圆形,使用一种颜色在画布上绘制指定圆心和半径的圆。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

surface

-

输入参数,画布。

-

circle

-

输入参数,圆形结构。

-

opt

-

输入参数,硬件加速选项。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## DrawLine - -``` -int32_t(* GfxFuncs::DrawLine) (ISurface *surface, ILine *line, GfxOpt *opt) -``` - -**描述:** - -绘制直线,使用一种颜色在画布上绘制一条直线。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

surface

-

输入参数,画布。

-

line

-

输入参数,直线结构。

-

opt

-

输入参数,硬件加速选项。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## DrawRectangle - -``` -int32_t(* GfxFuncs::DrawRectangle) (ISurface *surface, Rectangle *rect, uint32_t color, GfxOpt *opt) -``` - -**描述:** - -绘制矩形框,用一种颜色在画布上绘制指定区域的矩形框。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

surface

-

输入参数,画布。

-

rect

-

输入参数,矩形框结构。

-

color

-

输入参数,绘制的颜色。

-

opt

-

输入参数,硬件加速选项。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## FillRect - -``` -int32_t(* GfxFuncs::FillRect) (ISurface *surface, IRect *rect, uint32_t color, GfxOpt *opt) -``` - -**描述:** - -填充矩形,用一种颜色填充画布上指定矩形区域的矩形框。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

surface

-

输入参数,画布。

-

rect

-

输入参数,填充的矩形区域。

-

color

-

输入参数,填充的颜色。

-

opt

-

输入参数,硬件加速选项。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## InitGfx - -``` -int32_t(* GfxFuncs::InitGfx) (void) -``` - -**描述:** - -初始化硬件加速。 - -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[DeinitGfx](_gfx_funcs.md#ad86b127aad2a6e7f01e07b77054d42b3) - -## Sync - -``` -int32_t(* GfxFuncs::Sync) (int32_t timeOut) -``` - -**描述:** - -硬件加速同步。 - -在使用硬件加速模块进行图像绘制、图像叠加、图像搬移时,通过调用该接口进行硬件同步,该接口会等待硬件加速完成。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

timeOut

-

输入参数,硬件加速同步超时设置,设置为0表示无超时,等待直到硬件加速完成。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - diff --git a/zh-cn/device-dev/api/toctopics/_gfx_opt.md b/zh-cn/device-dev/api/toctopics/_gfx_opt.md deleted file mode 100644 index 77263b8f30..0000000000 --- a/zh-cn/device-dev/api/toctopics/_gfx_opt.md +++ /dev/null @@ -1,81 +0,0 @@ -# GfxOpt - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

enGlobalAlpha

-

全局alpha使能标志

-

globalAlpha

-

全局alpha的值

-

enPixelAlpha

-

像素alpha使能标志

-

blendType

-

混合方式

-

colorKeyFrom

-

色键模式

-

enableRop

-

Rop功能使能位

-

colorRopType

-

颜色的Rop类型

-

alphaRopType

-

Alpha的Rop类型

-

enableScale

-

缩放功能使能位

-

rotateType

-

旋转类型

-

mirrorType

-

镜像类型

-
- -## **详细描述** - -图像硬件加速相关的操作选项结构体定义,用于图像硬件加速时的操作选项。 - diff --git a/zh-cn/device-dev/api/toctopics/_gralloc_funcs.md b/zh-cn/device-dev/api/toctopics/_gralloc_funcs.md deleted file mode 100644 index 997ac514e2..0000000000 --- a/zh-cn/device-dev/api/toctopics/_gralloc_funcs.md +++ /dev/null @@ -1,422 +0,0 @@ -# GrallocFuncs - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

( AllocMem )(const AllocInfo *info, BufferHandle **handle)

-

显示内存分配。 更多...

-

( FreeMem )(BufferHandle *handle)

-

显示内存释放。 更多...

-

( Mmap )(BufferHandle *handle)

-

显示内存映射,将内存映射到对应的进程地址空间中。 更多...

-

( MmapYUV )(BufferHandle *handle, YUVDescInfo *info)

-

YUV 内存映射。 更多...

-

( MmapCache )(BufferHandle *handle)

-

显示内存映射,将内存映射为 cache 内存到对应的进程地址空间中。 更多...

-

( Unmap )(BufferHandle *handle)

-

内存反映射,将内存进行反映射。 更多...

-

( FlushCache )(BufferHandle *handle)

-

刷新cache,刷新cache里的内容到内存并且使cache里的内容无效。 更多...

-

( FlushMCache )(BufferHandle *handle)

-

刷新Mmap映射的cache,刷新Mmap映射的cache里的内容到内存并且使cache里的内容无效。 更多...

-

( InvalidateCache )(BufferHandle *handle)

-

使cache中的内容无效用以存储更新内存内容。 更多...

-

( IsSupportedAlloc )(uint32_t num, const VerifyAllocInfo *infos, bool *supporteds)

-

检测给定的VerifyAllocInfo数组信息能否申请内存成功。 更多...

-
- -## **详细描述** - -显示内存驱动接口结构体,定义显示内存驱动接口函数指针。 - -## **类成员变量说明** - -## AllocMem - -``` -int32_t(* GrallocFuncs::AllocMem) (const AllocInfo *info, BufferHandle **handle) -``` - -**描述:** - -显示内存分配。 - -根据GUI图形系统传递的参数分配内存,分配的内存根据类型可分为共享内存、cache内存和非cache内存等。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

info

-

输入参数,指示申请内存AllocInfo信息.

-

handle

-

输入参数,指向申请的内存handle指针。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## FlushCache - -``` -int32_t(* GrallocFuncs::FlushCache) (BufferHandle *handle) -``` - -**描述:** - -刷新cache,刷新cache里的内容到内存并且使cache里的内容无效。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

handle

-

输出参数,待刷新cache的handle指针。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## FlushMCache - -``` -int32_t(* GrallocFuncs::FlushMCache) (BufferHandle *handle) -``` - -**描述:** - -刷新Mmap映射的cache,刷新Mmap映射的cache里的内容到内存并且使cache里的内容无效。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

handle

-

输出参数,待刷新cache的handle指针。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## FreeMem - -``` -void(* GrallocFuncs::FreeMem) (BufferHandle *handle) -``` - -**描述:** - -显示内存释放。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

handle

-

输入参数,待释放的内存handle指针。

-
- -**返回:** - -成功返回有效地址,失败返回NULL。 - -## InvalidateCache - -``` -int32_t(* GrallocFuncs::InvalidateCache) (BufferHandle *handle) -``` - -**描述:** - -使cache中的内容无效用以存储更新内存内容。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

handle

-

输出参数,待无效cache的handle指针。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## IsSupportedAlloc - -``` -int32_t(* GrallocFuncs::IsSupportedAlloc) (uint32_t num, const VerifyAllocInfo *infos, bool *supporteds) -``` - -**描述:** - -检测给定的VerifyAllocInfo数组信息能否申请内存成功。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

num

-

输入参数,VerifyAllocInfo数组个数。

-

infos

-

输出参数,VerifyAllocInfo数组首地址。

-

supporteds

-

输出参数,supporteds数组首地址, 表示能否申请成功。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## Mmap - -``` -void*(* GrallocFuncs::Mmap) (BufferHandle *handle) -``` - -**描述:** - -显示内存映射,将内存映射到对应的进程地址空间中。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

handle

-

输入参数,待映射内存handle指针。

-
- -**返回:** - -成功返回有效地址,失败返回NULL。 - -## MmapCache - -``` -void*(* GrallocFuncs::MmapCache) (BufferHandle *handle) -``` - -**描述:** - -显示内存映射,将内存映射为 cache 内存到对应的进程地址空间中。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

handle

-

输出参数,待映射内存 handle 指针。

-
- -**返回:** - -成功返回有效地址,失败返回 NULL。 - -## MmapYUV - -``` -void*(* GrallocFuncs::MmapYUV) (BufferHandle *handle, YUVDescInfo *info) -``` - -**描述:** - -YUV 内存映射。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

handle

-

输出参数,指示内存映射的输出缓存。

-

info

-

输出参数,指示内存映射的YUVDescInfo信息。

-
- -**返回:** - -成功返回有效地址,失败返回 NULL。 - -## Unmap - -``` -int32_t(* GrallocFuncs::Unmap) (BufferHandle *handle) -``` - -**描述:** - -内存反映射,将内存进行反映射。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

handle

-

输出参数,待反映射内存handle指针。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - diff --git a/zh-cn/device-dev/api/toctopics/_h_d_r_capability.md b/zh-cn/device-dev/api/toctopics/_h_d_r_capability.md deleted file mode 100644 index 7b0763b078..0000000000 --- a/zh-cn/device-dev/api/toctopics/_h_d_r_capability.md +++ /dev/null @@ -1,51 +0,0 @@ -# HDRCapability - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

formatCount

-

支持的HDR格式的数量

-

formats

-

支持的HDR格式的数组首地址

-

maxLum

-

最大的光亮度luminance值

-

maxAverageLum

-

最大的平均光亮度luminance值

-

minLum

-

最小的光亮度luminance值

-
- -## **详细描述** - -HDR属性结构体定义。 - diff --git a/zh-cn/device-dev/api/toctopics/_h_d_r_meta_data.md b/zh-cn/device-dev/api/toctopics/_h_d_r_meta_data.md deleted file mode 100644 index fc8f4cc892..0000000000 --- a/zh-cn/device-dev/api/toctopics/_h_d_r_meta_data.md +++ /dev/null @@ -1,36 +0,0 @@ -# HDRMetaData - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

key

-

HDR元数据关键字。

-

value

-

关键字对应的值。

-
- -## **详细描述** - -HDR元数据结构体定义。 - diff --git a/zh-cn/device-dev/api/toctopics/_hdf_face_auth.md b/zh-cn/device-dev/api/toctopics/_hdf_face_auth.md deleted file mode 100644 index c56be6b842..0000000000 --- a/zh-cn/device-dev/api/toctopics/_hdf_face_auth.md +++ /dev/null @@ -1,401 +0,0 @@ -# HdfFaceAuth - -## **汇总** - -## 文件 - - - - - - - - - - - - - - - - - - - -

文件

-

描述

-

FaceAuthTypes.idl

-

定义人脸认证驱动的枚举类和数据结构。

-

FACEAUTH_IExecutor.idl

-

定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。

-

FACEAUTH_IExecutorCallback.idl

-

定义异步API接口回调,用于返回异步接口的请求处理结果和信息。

-

IFaceAuthInterface.idl

-

定义获取人脸认证驱动的执行器列表接口,用于从人脸认证驱动获取执行器对象列表。

-
- -## 类 - - - - - - - - - - - - - - - - - - - - - - -

-

描述

-

ExecutorInfo

-

执行器信息。 更多...

-

TemplateInfo

-

凭据模版信息。 更多...

-

IExecutor

-

定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 更多...

-

IExecutorCallback

-

定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见IExecutor更多...

-

IFaceAuthInterface

-

定义获取人脸认证驱动的执行器列表接口。 更多...

-
- -## 枚举 - - - - - - - - - - - - - - - - - - - - - - -

枚举

-

描述

-

AuthType : int { PIN = 1, FACE = 2, FINGERPRINT = 4, ALL = 0 }

-

枚举用户认证凭据类型。 更多...

-

ExecutorRole : int { COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 }

-

枚举执行器角色。 更多...

-

ExecutorSecureLevel : int { ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 }

-

枚举执行器安全等级。 更多...

-

CommandId : int { LOCK_TEMPLATE = 1, UNLOCK_TEMPLATE = 2, VENDOR_COMMAND_BEGIN = 10000, DEFAULT = 0 }

-

枚举人脸认证功能相关操作命令。 更多...

-

FaceTipsCode : int { FACE_AUTH_TIP_TOO_BRIGHT = 1, FACE_AUTH_TIP_TOO_DARK = 2, FACE_AUTH_TIP_TOO_CLOSE = 3, FACE_AUTH_TIP_TOO_FAR = 4, FACE_AUTH_TIP_TOO_HIGH = 5, FACE_AUTH_TIP_TOO_LOW = 6, FACE_AUTH_TIP_TOO_RIGHT = 7, FACE_AUTH_TIP_TOO_LEFT = 8, FACE_AUTH_TIP_TOO_MUCH_MOTION = 9, FACE_AUTH_TIP_POOR_GAZE = 10, FACE_AUTH_TIP_NOT_DETECTED = 11, VENDOR_FACE_AUTH_TIP_BEGIN = 10000 }

-

枚举提示信息编码。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.face_auth.v1_0

-

人脸认证接口的包路径

-
- -## **详细描述** - -提供人脸认证驱动的标准API接口。 - -人脸认证驱动为人脸认证服务提供统一的访问接口。获取人脸认证驱动代理后,人脸认证服务可以调用相关接口获取执行器,获取人脸认证执行器后, 人脸认证服务可以调用相关接口获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 - -**Since:** - -3.2 - -## **枚举类型说明** - -## AuthType - -``` -enum AuthType : int -``` - -**描述:** - -枚举用户认证凭据类型。 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

PIN

-

认证凭据类型为口令。

-

-

FACE

-

认证凭据类型为人脸。

-

-

FINGERPRINT

-

认证凭据类型为指纹。

-

-

ALL

-

表示包含所有认证凭据类型。

-

-
- -## CommandId - -``` -enum CommandId : int -``` - -**描述:** - -枚举人脸认证功能相关操作命令。 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

LOCK_TEMPLATE

-

锁定人脸模版。

-

-

UNLOCK_TEMPLATE

-

解锁人脸模版。

-

-

VENDOR_COMMAND_BEGIN

-

用于厂商自定义操作指令。

-

-

DEFAULT

-

默认无效操作命令。

-

-
- -## ExecutorRole - -``` -enum ExecutorRole : int -``` - -**描述:** - -枚举执行器角色。 - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

COLLECTOR

-

执行器角色为采集器,提供用户认证时的数据采集能力,需要和认证器配合完成用户认证。

-

-

VERIFIER

-

执行器角色为认证器,提供用户认证时数据处理能力,读取存储凭据模板信息并完成比对。

-

-

ALL_IN_ONE

-

执行器角色为全功能执行器,可提供用户认证数据采集、处理、储存及比对能力。

-

-
- -## ExecutorSecureLevel - -``` -enum ExecutorSecureLevel : int -``` - -**描述:** - -枚举执行器安全等级。 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

ESL0

-

执行器安全级别为0,关键操作在无访问控制执行环境中完成。

-

-

ESL1

-

执行器安全级别为1,关键操作在有访问控制的执行环境中完成。

-

-

ESL2

-

执行器安全级别为2,关键操作在可信执行环境中完成。

-

-

ESL3

-

执行器安全级别为3,关键操作在高安环境如独立安全芯片中完成。

-

-
- -## FaceTipsCode - -``` -enum FaceTipsCode : int -``` - -**描述:** - -枚举提示信息编码。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

FACE_AUTH_TIP_TOO_BRIGHT

-

获取的人脸图像由于光照度高而过亮。

-

-

FACE_AUTH_TIP_TOO_DARK

-

获取的人脸图像由于光照度低而过暗。

-

-

FACE_AUTH_TIP_TOO_CLOSE

-

人脸离设备过近。

-

-

FACE_AUTH_TIP_TOO_FAR

-

人脸离设备过远。

-

-

FACE_AUTH_TIP_TOO_HIGH

-

设备过高,只拍到人脸的上半部分。

-

-

FACE_AUTH_TIP_TOO_LOW

-

设备过低,只拍到人脸的下半部分。

-

-

FACE_AUTH_TIP_TOO_RIGHT

-

设备偏右,只拍到人脸的右侧部分。

-

-

FACE_AUTH_TIP_TOO_LEFT

-

设备偏左,只拍到人脸的左侧部分。

-

-

FACE_AUTH_TIP_TOO_MUCH_MOTION

-

人脸信息采集过程中,人脸移动过多。

-

-

FACE_AUTH_TIP_POOR_GAZE

-

用户未注视设备。

-

-

FACE_AUTH_TIP_NOT_DETECTED

-

未检测到人脸。

-

-

VENDOR_FACE_AUTH_TIP_BEGIN

-

用于厂商自定义提示信息。

-

-
- diff --git a/zh-cn/device-dev/api/toctopics/_hdf_pin_auth.md b/zh-cn/device-dev/api/toctopics/_hdf_pin_auth.md deleted file mode 100644 index 9555b071a1..0000000000 --- a/zh-cn/device-dev/api/toctopics/_hdf_pin_auth.md +++ /dev/null @@ -1,299 +0,0 @@ -# HdfPinAuth - -## **汇总** - -## 文件 - - - - - - - - - - - - - - - - -

文件

-

描述

-

IExecutor.idl

-

定义执行器标准API接口。接口可用于获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。

-

IExecutorCallback.idl

-

定义异步API接口回调,用于返回异步接口的请求处理结果和获取信息。

-

IPinAuthInterface.idl

-

定义获取口令认证驱动的执行器列表接口,用于从口令认证驱动获取执行器对象列表。

-
- -## 类 - - - - - - - - - - - - - - - - - - - - - - -

-

描述

-

IExecutor

-

定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 更多...

-

IExecutorCallback

-

定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见IExecutor更多...

-

IPinAuthInterface

-

定义获取口令认证驱动的执行器列表接口。 更多...

-

ExecutorInfo

-

执行器信息。 更多...

-

TemplateInfo

-

凭据模版信息。 更多...

-
- -## 枚举 - - - - - - - - - - - - - - - - - - - -

枚举

-

描述

-

AuthType : int { PIN = 1, FACE = 2, FINGERPRINT = 4, ALL = 0 }

-

枚举用户认证凭据类型。 更多...

-

ExecutorRole : int { COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 }

-

枚举执行器角色。 更多...

-

ExecutorSecureLevel : int { ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 }

-

枚举执行器安全等级。 更多...

-

CommandId : int { LOCK_TEMPLATE = 1, UNLOCK_TEMPLATE = 2, VENDOR_COMMAND_BEGIN = 10000, DEFAULT = 0 }

-

枚举口令认证相关功能操作命令。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.pin_auth.v1_0

-

口令认证接口的包路径

-
- -## **详细描述** - -提供口令认证驱动的标准API接口。 - -口令认证驱动为口令认证服务提供统一的访问接口。获取口令认证驱动代理后,口令认证服务可以调用相关接口获取执行器,获取口令认证执行器后, 口令认证服务可以调用相关接口获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。 - -**Since:** - -3.2 - -## **枚举类型说明** - -## AuthType - -``` -enum AuthType : int -``` - -**描述:** - -枚举用户认证凭据类型。 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

PIN

-

认证凭据类型为口令。

-

-

FACE

-

认证凭据类型为人脸。

-

-

FINGERPRINT

-

认证凭据类型为指纹。

-

-

ALL

-

表示包含所有认证凭据类型。

-

-
- -## CommandId - -``` -enum CommandId : int -``` - -**描述:** - -枚举口令认证相关功能操作命令。 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

LOCK_TEMPLATE

-

锁定人脸模版。

-

-

UNLOCK_TEMPLATE

-

解锁人脸模版。

-

-

VENDOR_COMMAND_BEGIN

-

用于厂商自定义操作指令。

-

-

DEFAULT

-

默认无效操作命令。

-

-
- -## ExecutorRole - -``` -enum ExecutorRole : int -``` - -**描述:** - -枚举执行器角色。 - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

COLLECTOR

-

执行器角色为采集器,提供用户认证时的数据采集能力,需要和认证器配合完成用户认证。

-

-

VERIFIER

-

执行器角色为认证器,提供用户认证时数据处理能力,读取存储凭据模板信息并完成比对。

-

-

ALL_IN_ONE

-

执行器角色为全功能执行器,可提供用户认证数据采集、处理、储存及比对能力。

-

-
- -## ExecutorSecureLevel - -``` -enum ExecutorSecureLevel : int -``` - -**描述:** - -枚举执行器安全等级。 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

ESL0

-

执行器安全级别为0,关键操作在无访问控制执行环境中完成。

-

-

ESL1

-

执行器安全级别为1,关键操作在有访问控制的执行环境中完成。

-

-

ESL2

-

执行器安全级别为2,关键操作在可信执行环境中完成。

-

-

ESL3

-

执行器安全级别为3,关键操作在高安环境如独立安全芯片中完成。

-

-
- diff --git a/zh-cn/device-dev/api/toctopics/_hdf_thermal_callback_info.md b/zh-cn/device-dev/api/toctopics/_hdf_thermal_callback_info.md deleted file mode 100644 index 28ba720064..0000000000 --- a/zh-cn/device-dev/api/toctopics/_hdf_thermal_callback_info.md +++ /dev/null @@ -1,43 +0,0 @@ -# HdfThermalCallbackInfo - -## **概述** - -**所属模块:** - -[Thermal](thermal.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - -

Public 属性

-

描述

-

info

-

设备发热的信息列表。

-
- -## **详细描述** - -设备发热的信息列表。 - -## **类成员变量说明** - -## info - -``` -List HdfThermalCallbackInfo::info -``` - -**描述:** - -设备发热的信息列表。 - diff --git a/zh-cn/device-dev/api/toctopics/_hdf_user_auth.md b/zh-cn/device-dev/api/toctopics/_hdf_user_auth.md deleted file mode 100644 index 408750facb..0000000000 --- a/zh-cn/device-dev/api/toctopics/_hdf_user_auth.md +++ /dev/null @@ -1,275 +0,0 @@ -# HdfUserAuth - -## **汇总** - -## 文件 - - - - - - - - - - - - - -

文件

-

描述

-

IUserAuthInterface.idl

-

声明用户认证驱动的API接口。接口可用于注册执行器,管理用户认证凭据,完成PIN码和生物特征认证。

-

UserAuthTypes.idl

-

定义用户认证驱动的枚举类和数据结构。

-
- -## 类 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-

描述

-

IUserAuthInterface

-

声明用户认证驱动的API接口。 更多...

-

ExecutorRegisterInfo

-

执行器注册信息。 更多...

-

ExecutorInfo

-

执行器信息。 更多...

-

ScheduleInfo

-

调度信息。 更多...

-

AuthSolution

-

认证方案。 更多...

-

ExecutorSendMsg

-

执行器发送的消息。 更多...

-

AuthResultInfo

-

用户身份认证结果信息。 更多...

-

IdentifyResultInfo

-

用户身份识别结果信息。 更多...

-

EnrollParam

-

注册认证凭据参数。 更多...

-

CredentialInfo

-

认证凭据信息。 更多...

-

EnrolledInfo

-

注册信息。 更多...

-
- -## 枚举 - - - - - - - - - - - - - - - - -

枚举

-

描述

-

AuthType : int { PIN = 1, FACE = 2, FINGERPRINT = 4, ALL = 0 }

-

枚举用户认证凭据类型。 更多...

-

ExecutorRole : int { COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 }

-

枚举执行器角色。 更多...

-

ExecutorSecureLevel : int { ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 }

-

枚举执行器安全等级。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.user_auth.v1_0

-

用户认证接口的包路径

-
- -## **详细描述** - -提供用户认证驱动的标准API接口。 - -用户认证驱动为用户认证服务提供统一的访问接口。获取用户认证驱动代理后,用户认证服务可以调用相关接口注册执行器,管理用户认证凭据, 完成PIN码和生物特征。 - -**Since:** - -3.2 - -## **枚举类型说明** - -## AuthType - -``` -enum AuthType : int -``` - -**描述:** - -枚举用户认证凭据类型。 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

PIN

-

认证凭据类型为口令。

-

-

FACE

-

认证凭据类型为人脸。

-

-

FINGERPRINT

-

认证凭据类型为指纹。

-

-

ALL

-

表示包含所有认证凭据类型。

-

-
- -## ExecutorRole - -``` -enum ExecutorRole : int -``` - -**描述:** - -枚举执行器角色。 - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

COLLECTOR

-

执行器角色为采集器,提供用户认证时的数据采集能力,需要和认证器配合完成用户认证。

-

-

VERIFIER

-

执行器角色为认证器,提供用户认证时数据处理能力,读取存储凭据模板信息并完成比对。

-

-

ALL_IN_ONE

-

执行器角色为全功能执行器,可提供用户认证数据采集、处理、储存及比对能力。

-

-
- -## ExecutorSecureLevel - -``` -enum ExecutorSecureLevel : int -``` - -**描述:** - -枚举执行器安全等级。 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

ESL0

-

执行器安全级别为0,关键操作在无访问控制执行环境中完成。

-

-

ESL1

-

执行器安全级别为1,关键操作在有访问控制的执行环境中完成。

-

-

ESL2

-

执行器安全级别为2,关键操作在可信执行环境中完成。

-

-

ESL3

-

执行器安全级别为3,关键操作在高安环境如独立安全芯片中完成。

-

-
- diff --git a/zh-cn/device-dev/api/toctopics/_i_battery_callback_8idl.md b/zh-cn/device-dev/api/toctopics/_i_battery_callback_8idl.md deleted file mode 100644 index f0c9ba3f68..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_battery_callback_8idl.md +++ /dev/null @@ -1,58 +0,0 @@ -# IBatteryCallback.idl - -## **概述** - -**所属模块:** - -[Battery](battery.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

IBatteryCallback

-

电池信息的回调。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.battery.v1_0

-

电池信息接口的包路径

-
- -## **详细描述** - -电池信息的回调。 - -电池模块为电池服务提供的订阅电池信息变化的回调。 - -**Since:** - -3.1 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/_i_battery_interface_8idl.md b/zh-cn/device-dev/api/toctopics/_i_battery_interface_8idl.md deleted file mode 100644 index 9f77ca138f..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_battery_interface_8idl.md +++ /dev/null @@ -1,54 +0,0 @@ -# IBatteryInterface.idl - -## **概述** - -**所属模块:** - -[Battery](battery.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

IBatteryInterface

-

获取、订阅电池信息的接口。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.battery.v1_0

-

电池信息接口的包路径

-
- -## **详细描述** - -获取、订阅电池信息的接口。 - -服务获取此对象后,可以调用相关的接口获取、订阅电池信息。 - -**Since:** - -3.1 - diff --git a/zh-cn/device-dev/api/toctopics/_i_circle.md b/zh-cn/device-dev/api/toctopics/_i_circle.md deleted file mode 100644 index aedd59d146..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_circle.md +++ /dev/null @@ -1,46 +0,0 @@ -# ICircle - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

x

-

矩形框起始X坐标。

-

y

-

矩形框起始Y坐标。

-

r

-

圆的半径。

-

color

-

圆的颜色。

-
- -## **详细描述** - -圆形描述结构体定义,用于硬件加速绘制圆形。 - diff --git a/zh-cn/device-dev/api/toctopics/_i_face_auth_interface_8idl.md b/zh-cn/device-dev/api/toctopics/_i_face_auth_interface_8idl.md deleted file mode 100644 index 41ba7b392b..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_face_auth_interface_8idl.md +++ /dev/null @@ -1,52 +0,0 @@ -# IFaceAuthInterface.idl - -## **概述** - -**所属模块:** - -[HdfFaceAuth](_hdf_face_auth.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

IFaceAuthInterface

-

定义获取人脸认证驱动的执行器列表接口。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.face_auth.v1_0

-

人脸认证接口的包路径

-
- -## **详细描述** - -定义获取人脸认证驱动的执行器列表接口,用于从人脸认证驱动获取执行器对象列表。 - -**Since:** - -3.2 - diff --git a/zh-cn/device-dev/api/toctopics/_i_input_interface.md b/zh-cn/device-dev/api/toctopics/_i_input_interface.md deleted file mode 100644 index 5839de6bb8..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_input_interface.md +++ /dev/null @@ -1,73 +0,0 @@ -# IInputInterface - -## **概述** - -**所属模块:** - -[Input](_input.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

iInputManager

-

input设备的设备管理接口。

-

iInputController

-

input设备的业务控制接口。

-

iInputReporter

-

input设备的数据上报接口。

-
- -## **详细描述** - -定义用于提供输入设备驱动能力的接口。 - -## **类成员变量说明** - -## iInputController - -``` -[InputController](_input_controller.md)* IInputInterface::iInputController -``` - -**描述:** - -input设备的业务控制接口 - -## iInputManager - -``` -[InputManager](_input_manager.md)* IInputInterface::iInputManager -``` - -**描述:** - -input设备的设备管理接口 - -## iInputReporter - -``` -[InputReporter](_input_reporter.md)* IInputInterface::iInputReporter -``` - -**描述:** - -input设备的数据上报接口 - diff --git a/zh-cn/device-dev/api/toctopics/_i_line.md b/zh-cn/device-dev/api/toctopics/_i_line.md deleted file mode 100644 index 237ca23046..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_line.md +++ /dev/null @@ -1,51 +0,0 @@ -# ILine - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

x0

-

线条起点的X坐标。

-

y0

-

线条起点的Y坐标。

-

x1

-

线条终点的X坐标。

-

y1

-

线条终点的Y坐标。

-

color

-

线条颜色。

-
- -## **详细描述** - -线条描述结构体定义,用于硬件加速绘制直线。 - diff --git a/zh-cn/device-dev/api/toctopics/_i_pin_auth_interface_8idl.md b/zh-cn/device-dev/api/toctopics/_i_pin_auth_interface_8idl.md deleted file mode 100644 index accae73c9e..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_pin_auth_interface_8idl.md +++ /dev/null @@ -1,52 +0,0 @@ -# IPinAuthInterface.idl - -## **概述** - -**所属模块:** - -[HdfPinAuth](_hdf_pin_auth.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

IPinAuthInterface

-

定义获取口令认证驱动的执行器列表接口。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.pin_auth.v1_0

-

口令认证接口的包路径

-
- -## **详细描述** - -定义获取口令认证驱动的执行器列表接口,用于从口令认证驱动获取执行器对象列表。 - -**Since:** - -3.2 - diff --git a/zh-cn/device-dev/api/toctopics/_i_power_hdi_callback_8idl.md b/zh-cn/device-dev/api/toctopics/_i_power_hdi_callback_8idl.md deleted file mode 100644 index edbeb2b63f..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_power_hdi_callback_8idl.md +++ /dev/null @@ -1,58 +0,0 @@ -# IPowerHdiCallback.idl - -## **概述** - -**所属模块:** - -[Power](power.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

IPowerHdiCallback

-

休眠/唤醒状态的回调。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.power.v1_0

-

电源接口的包路径

-
- -## **详细描述** - -休眠/唤醒状态的回调。 - -电源模块为电源服务提供的订阅休眠/唤醒状态的回调。 - -**Since:** - -3.1 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/_i_power_interface_8idl.md b/zh-cn/device-dev/api/toctopics/_i_power_interface_8idl.md deleted file mode 100644 index 9f4d028e83..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_power_interface_8idl.md +++ /dev/null @@ -1,58 +0,0 @@ -# IPowerInterface.idl - -## **概述** - -**所属模块:** - -[Power](power.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

IPowerInterface

-

休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.power.v1_0

-

电源接口的包路径

-
- -## **详细描述** - -休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 - -电源模块为电源服务提供休眠/唤醒操作、订阅休眠/唤醒状态和运行锁管理的接口。 - -**Since:** - -3.1 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/_i_rect.md b/zh-cn/device-dev/api/toctopics/_i_rect.md deleted file mode 100644 index b590a69aa2..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_rect.md +++ /dev/null @@ -1,46 +0,0 @@ -# IRect - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

x

-

矩形框起始X坐标。

-

y

-

矩形框起始Y坐标。

-

w

-

矩形框宽度。

-

h

-

矩形框高度。

-
- -## **详细描述** - -定义矩形信息。 - diff --git a/zh-cn/device-dev/api/toctopics/_i_surface.md b/zh-cn/device-dev/api/toctopics/_i_surface.md deleted file mode 100644 index 31a1e39815..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_surface.md +++ /dev/null @@ -1,91 +0,0 @@ -# ISurface - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

phyAddr

-

图像首地址

-

height

-

图像高度

-

width

-

图像宽度

-

stride

-

图像跨度

-

enColorFmt

-

图像格式

-

bYCbCrClut

-

CLUT表是否位于 YCbCr 空间

-

bAlphaMax255

-

图像alpha最大值为255还是128

-

bAlphaExt1555

-

是否使能1555的Alpha扩展

-

alpha0

-

Alpha0值,取值范围:[0,255]

-

alpha1

-

Alpha1值,取值范围:[0,255]

-

cbcrPhyAddr

-

CLUT表首地址,用作颜色扩展或颜色校正

-

cbcrStride

-

CbCr分量跨度

-

clutPhyAddr

-

CbCr分量地址

-
- -## **详细描述** - -用于存放窗口相关信息的结构体定义,提供给硬件加速使用,例如图像合成,位图搬移等操作。 - diff --git a/zh-cn/device-dev/api/toctopics/_i_thermal_callback_8idl.md b/zh-cn/device-dev/api/toctopics/_i_thermal_callback_8idl.md deleted file mode 100644 index 739df4eefe..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_thermal_callback_8idl.md +++ /dev/null @@ -1,58 +0,0 @@ -# IThermalCallback.idl - -## **概述** - -**所属模块:** - -[Thermal](thermal.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

IThermalCallback

-

订阅设备发热状态的回调。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.thermal.v1_0

-

设备温度管理接口的包路径

-
- -## **详细描述** - -设备发热状态的回调。 - -热模块为热服务提供的设备发热状态的回调。 - -**Since:** - -3.1 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/_i_thermal_interface_8idl.md b/zh-cn/device-dev/api/toctopics/_i_thermal_interface_8idl.md deleted file mode 100644 index 67f98c016f..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_thermal_interface_8idl.md +++ /dev/null @@ -1,58 +0,0 @@ -# IThermalInterface.idl - -## **概述** - -**所属模块:** - -[Thermal](thermal.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

IThermalInterface

-

设备温度管理、控制及订阅接口。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.thermal.v1_0

-

设备温度管理接口的包路径

-
- -## **详细描述** - -设备温度管理、控制及订阅接口。 - -热模块为热服务提供的设备温度管理、控制及订阅接口。 - -**Since:** - -3.1 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/_i_user_auth_interface_8idl.md b/zh-cn/device-dev/api/toctopics/_i_user_auth_interface_8idl.md deleted file mode 100644 index 83940029b9..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_user_auth_interface_8idl.md +++ /dev/null @@ -1,52 +0,0 @@ -# IUserAuthInterface.idl - -## **概述** - -**所属模块:** - -[HdfUserAuth](_hdf_user_auth.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

IUserAuthInterface

-

声明用户认证驱动的API接口。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.user_auth.v1_0

-

用户认证接口的包路径

-
- -## **详细描述** - -声明用户认证驱动的API接口。接口可用于注册执行器,管理用户认证凭据,完成PIN码和生物特征认证。 - -**Since:** - -3.2 - diff --git a/zh-cn/device-dev/api/toctopics/_i_wi_fi.md b/zh-cn/device-dev/api/toctopics/_i_wi_fi.md deleted file mode 100644 index 9b1f2d4278..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_wi_fi.md +++ /dev/null @@ -1,577 +0,0 @@ -# IWiFi - -## **概述** - -**所属模块:** - -[WLAN](_w_l_a_n.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

( start )(struct IWiFi *iwifi)

-

创建HAL和驱动之间的通道及获取驱动网卡信息,该函数调用在创建IWiFi实体后进行。 更多...

-

( stop )(struct IWiFi *iwifi)

-

销毁HAL和驱动之间的通道,该函数调用在销毁IWiFi实体前进行。 更多...

-

( getSupportFeature )(uint8_t *supType, uint32_t size)

-

获取该设备支持的WLAN特性(不考虑当前的使用状态)。 更多...

-

( getSupportCombo )(uint64_t *combo, uint32_t size)

-

获取多网卡共存情况。 更多...

-

( createFeature )(int32_t type, struct IWiFiBaseFeature **ifeature)

-

根据输入类型创建对应的特性IWiFiBaseFeature更多...

-

( getFeatureByIfName )(const char *ifName, struct IWiFiBaseFeature **ifeature)

-

通过网络接口名字获取对应的特性。 更多...

-

( registerEventCallback )(CallbackFunc cbFunc, const char *ifName)

-

注册IWiFi的回调函数,监听异步事件。 更多...

-

( unregisterEventCallback )(CallbackFunc cbFunc, const char *ifName)

-

去注册IWiFi的回调函数。 更多...

-

( destroyFeature )(struct IWiFiBaseFeature *ifeature)

-

根据输入类型销毁对应的特性IWiFiBaseFeature更多...

-

( resetDriver )(const uint8_t chipId, const char *ifName)

-

重置具有指定芯片ID的WLAN驱动程序。 更多...

-

( getNetDevInfo )(struct NetDeviceInfoResult *netDeviceInfoResult)

-

获取网络设备信息(设备索引、网卡名字、MAC等信息)。 更多...

-

( getPowerMode )(const char *ifName, uint8_t *mode)

-

获取正在使用的功率模式。 更多...

-

( setPowerMode )(const char *ifName, uint8_t mode)

-

设置功率模式 更多...

-
- -## **详细描述** - -HAL对WLAN服务提供的基本能力。 - -用于创建HAL与驱动的通道,创建/获取/销毁WLAN特性等。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **类成员变量说明** - -## createFeature - -``` -int32_t(* IWiFi::createFeature) (int32_t type, struct IWiFiBaseFeature **ifeature) -``` - -**描述:** - -根据输入类型创建对应的特性[IWiFiBaseFeature](_i_wi_fi_base_feature.md)。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

type

-

输入参数,创建的feature类型。

-

ifeature

-

输出参数,获取创建的feature对象。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## destroyFeature - -``` -int32_t(* IWiFi::destroyFeature) (struct IWiFiBaseFeature *ifeature) -``` - -**描述:** - -根据输入类型销毁对应的特性[IWiFiBaseFeature](_i_wi_fi_base_feature.md)。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

ifeature

-

输入参数,销毁的feature对象。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## getFeatureByIfName - -``` -int32_t(* IWiFi::getFeatureByIfName) (const char *ifName, struct IWiFiBaseFeature **ifeature) -``` - -**描述:** - -通过网络接口名字获取对应的特性。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

ifName

-

输入参数,网卡名称。

-

ifeature

-

输出参数,获取该网络接口名字的feature对象。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## getNetDevInfo - -``` -int32_t(* IWiFi::getNetDevInfo) (struct NetDeviceInfoResult *netDeviceInfoResult) -``` - -**描述:** - -获取网络设备信息(设备索引、网卡名字、MAC等信息)。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

netDeviceInfoResult

-

输出参数,得到的网络设备信息。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## getPowerMode - -``` -int32_t(* IWiFi::getPowerMode) (const char *ifName, uint8_t *mode) -``` - -**描述:** - -获取正在使用的功率模式。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

ifName

-

输入参数,网卡名称。

-

mode

-

输出参数,功率模式,包括睡眠模式(待机状态运行)、一般模式(正常额定功率运行)、穿墙模式(最大功率运行,提高信号强度和覆盖面积)。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## getSupportCombo - -``` -int32_t(* IWiFi::getSupportCombo) (uint64_t *combo, uint32_t size) -``` - -**描述:** - -获取多网卡共存情况。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

combo

-

输出参数,基于芯片的能力保存当前所有支持的多网卡共存情况(比如支持AP,STA,P2P等不同组合的共存)。

-

size

-

输入参数,combo数组的长度。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## getSupportFeature - -``` -int32_t(* IWiFi::getSupportFeature) (uint8_t *supType, uint32_t size) -``` - -**描述:** - -获取该设备支持的WLAN特性(不考虑当前的使用状态)。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

supType

-

输出参数,保存当前设备支持的特性。

-

size

-

输入参数,supType数组的长度。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## registerEventCallback - -``` -int32_t(* IWiFi::registerEventCallback) (CallbackFunc cbFunc, const char *ifName) -``` - -**描述:** - -注册IWiFi的回调函数,监听异步事件。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

cbFunc

-

输入参数,注册的回调函数。

-

ifName

-

输入参数,网卡名称。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## resetDriver - -``` -int32_t(* IWiFi::resetDriver) (const uint8_t chipId, const char *ifName) -``` - -**描述:** - -重置具有指定芯片ID的WLAN驱动程序。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

chipId

-

输入参数,需要进行重置驱动的对应芯片ID。

-

ifName

-

输入参数,网卡名称。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## setPowerMode - -``` -int32_t(* IWiFi::setPowerMode) (const char *ifName, uint8_t mode) -``` - -**描述:** - -设置功率模式 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

ifName

-

输入参数,网卡名称。

-

mode

-

输入参数,功率模式,包括睡眠模式(待机状态运行)、一般模式(正常额定功率运行)、穿墙模式(最大功率运行,提高信号强度和覆盖面积)。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## start - -``` -int32_t(* IWiFi::start) (struct IWiFi *iwifi) -``` - -**描述:** - -创建HAL和驱动之间的通道及获取驱动网卡信息,该函数调用在创建IWiFi实体后进行。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

iwifi

-

输入参数,IWiFi对象。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## stop - -``` -int32_t(* IWiFi::stop) (struct IWiFi *iwifi) -``` - -**描述:** - -销毁HAL和驱动之间的通道,该函数调用在销毁IWiFi实体前进行。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

iwifi

-

输入参数,IWiFi对象。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## unregisterEventCallback - -``` -int32_t(* IWiFi::unregisterEventCallback) (CallbackFunc cbFunc, const char *ifName) -``` - -**描述:** - -去注册IWiFi的回调函数。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

cbFunc

-

输入参数,去注册的回调函数。

-

ifName

-

输入参数,网卡名称。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - diff --git a/zh-cn/device-dev/api/toctopics/_i_wi_fi_ap.md b/zh-cn/device-dev/api/toctopics/_i_wi_fi_ap.md deleted file mode 100644 index 8a188d6d7c..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_wi_fi_ap.md +++ /dev/null @@ -1,152 +0,0 @@ -# IWiFiAp - -## **概述** - -**所属模块:** - -[WLAN](_w_l_a_n.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

baseFeature

-

基本特性。

-

( getAsscociatedStas )(const struct IWiFiAp *apFeature, struct StaInfo *staInfo, uint32_t count, uint32_t *num)

-

获取连接上的所有STA的信息(目前只包含MAC地址)。 更多...

-

( setCountryCode )(const struct IWiFiAp *apFeature, const char *code, uint32_t len)

-

设置国家码(表示AP射频所在的国家,规定了AP射频特性,包括AP的发送功率、支持的信道等。其目的是为了使AP的射频特性符合不同国家或区域的法律法规要求)。 更多...

-
- -## **详细描述** - -继承了IWiFiBaseFeature基本特性,并包含AP模式下获取连接STA的信息和设置国家码的功能。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **类成员变量说明** - -## baseFeature - -``` -struct IWiFiBaseFeature IWiFiAp::baseFeature -``` - -**描述:** - -基本特性。 - -## getAsscociatedStas - -``` -int32_t(* IWiFiAp::getAsscociatedStas) (const struct IWiFiAp *apFeature, struct StaInfo *staInfo, uint32_t count, uint32_t *num) -``` - -**描述:** - -获取连接上的所有STA的信息(目前只包含MAC地址)。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

apFeature

-

输入参数,AP特性IWiFiAp

-

staInfo

-

输出参数,保存与AP连接的STA的基本信息。

-

count

-

输入参数,staInfo结构体数组的元素个数。

-

num

-

输出参数,实际连接的STA的个数。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## setCountryCode - -``` -int32_t(* IWiFiAp::setCountryCode) (const struct IWiFiAp *apFeature, const char *code, uint32_t len) -``` - -**描述:** - -设置国家码(表示AP射频所在的国家,规定了AP射频特性,包括AP的发送功率、支持的信道等。其目的是为了使AP的射频特性符合不同国家或区域的法律法规要求)。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

apFeature

-

输入参数,AP特性IWiFiAp

-

code

-

输入参数,设置的国家码。

-

len

-

输入参数,国家码长度。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - diff --git a/zh-cn/device-dev/api/toctopics/_i_wi_fi_base_feature.md b/zh-cn/device-dev/api/toctopics/_i_wi_fi_base_feature.md deleted file mode 100644 index 8a004f3a4a..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_wi_fi_base_feature.md +++ /dev/null @@ -1,420 +0,0 @@ -# IWiFiBaseFeature - -## **概述** - -**所属模块:** - -[WLAN](_w_l_a_n.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

ifName [IFNAME_MAX_LEN]

-

网卡名称。

-

type

-

特性的类型,参考FeatureType

-

( getNetworkIfaceName )(const struct IWiFiBaseFeature *baseFeature)

-

根据基本特性获取网卡名称。 更多...

-

( getFeatureType )(const struct IWiFiBaseFeature *baseFeature)

-

获取基本特性的类型FeatureType更多...

-

( setMacAddress )(const struct IWiFiBaseFeature *baseFeature, unsigned char *mac, uint8_t len)

-

根据传入参数设置对应网卡的MAC地址。 更多...

-

( getDeviceMacAddress )(const struct IWiFiBaseFeature *baseFeature, unsigned char *mac, uint8_t len)

-

获取设备的MAC地址。 更多...

-

( getValidFreqsWithBand )(const struct IWiFiBaseFeature *baseFeature, int32_t band, int32_t *freqs, uint32_t count, uint32_t *num)

-

获取指定频段(2.4G或者5G)下支持的频率。 更多...

-

( setTxPower )(const struct IWiFiBaseFeature *baseFeature, int32_t power)

-

设置发射功率。 更多...

-

( getChipId )(const struct IWiFiBaseFeature *baseFeature, uint8_t *chipId)

-

获得当前驱动的芯片ID。 更多...

-

( getIfNamesByChipId )(const uint8_t chipId, char **ifNames, uint32_t *num)

-

通过芯片ID获得当前芯片所有的网卡名称。 更多...

-
- -## **详细描述** - -WLAN基本特性操作接口,包括获取网卡名称,设置MAC地址,设置发射功率等公共能力接口。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **类成员变量说明** - -## getChipId - -``` -int32_t(* IWiFiBaseFeature::getChipId) (const struct IWiFiBaseFeature *baseFeature, uint8_t *chipId) -``` - -**描述:** - -获得当前驱动的芯片ID。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

baseFeature

-

输入参数,基本特性IWiFiBaseFeature

-

chipId

-

输出参数,获得的芯片ID。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## getDeviceMacAddress - -``` -int32_t(* IWiFiBaseFeature::getDeviceMacAddress) (const struct IWiFiBaseFeature *baseFeature, unsigned char *mac, uint8_t len) -``` - -**描述:** - -获取设备的MAC地址。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

baseFeature

-

输入参数,基本特性IWiFiBaseFeature

-

mac

-

输出参数,获得的MAC地址。

-

len

-

输入参数,获得的MAC地址长度。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## getFeatureType - -``` -int32_t(* IWiFiBaseFeature::getFeatureType) (const struct IWiFiBaseFeature *baseFeature) -``` - -**描述:** - -获取基本特性的类型[FeatureType](_w_l_a_n.md#gad2b28a6ade408676d1371ea941824012)。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

baseFeature

-

输入参数,基本特性IWiFiBaseFeature

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## getIfNamesByChipId - -``` -int32_t(* IWiFiBaseFeature::getIfNamesByChipId) (const uint8_t chipId, char **ifNames, uint32_t *num) -``` - -**描述:** - -通过芯片ID获得当前芯片所有的网卡名称。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

chipId

-

输入参数,需要获取网卡名称的芯片ID。

-

ifNames

-

输出参数,网卡名称。

-

num

-

输出参数,网卡的数量。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## getNetworkIfaceName - -``` -const char*(* IWiFiBaseFeature::getNetworkIfaceName) (const struct IWiFiBaseFeature *baseFeature) -``` - -**描述:** - -根据基本特性获取网卡名称。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

baseFeature

-

输入参数,基本特性IWiFiBaseFeature

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## getValidFreqsWithBand - -``` -int32_t(* IWiFiBaseFeature::getValidFreqsWithBand) (const struct IWiFiBaseFeature *baseFeature, int32_t band, int32_t *freqs, uint32_t count, uint32_t *num) -``` - -**描述:** - -获取指定频段(2.4G或者5G)下支持的频率。 - -**参数:** - - - - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

baseFeature

-

输入参数,基本特性IWiFiBaseFeature

-

band

-

输入参数,指定的一个频段。

-

freqs

-

输出参数,保存支持的频率。

-

count

-

输入参数,频率数组的元素个数。

-

num

-

输出参数,实际支持的频率个数。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## ifName - -``` -char IWiFiBaseFeature::ifName[IFNAME_MAX_LEN] -``` - -**描述:** - -网卡名称。 - -## setMacAddress - -``` -int32_t(* IWiFiBaseFeature::setMacAddress) (const struct IWiFiBaseFeature *baseFeature, unsigned char *mac, uint8_t len) -``` - -**描述:** - -根据传入参数设置对应网卡的MAC地址。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

baseFeature

-

输入参数,基本特性IWiFiBaseFeature

-

mac

-

输入参数,设置的MAC地址。

-

len

-

输入参数,设置的MAC地址长度。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## setTxPower - -``` -int32_t(* IWiFiBaseFeature::setTxPower) (const struct IWiFiBaseFeature *baseFeature, int32_t power) -``` - -**描述:** - -设置发射功率。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

baseFeature

-

输入参数,基本特性IWiFiBaseFeature

-

power

-

输入参数,设置的发射功率。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - diff --git a/zh-cn/device-dev/api/toctopics/_i_wi_fi_sta.md b/zh-cn/device-dev/api/toctopics/_i_wi_fi_sta.md deleted file mode 100644 index d91c92faaf..0000000000 --- a/zh-cn/device-dev/api/toctopics/_i_wi_fi_sta.md +++ /dev/null @@ -1,142 +0,0 @@ -# IWiFiSta - -## **概述** - -**所属模块:** - -[WLAN](_w_l_a_n.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

baseFeature

-

基本特性。

-

( setScanningMacAddress )(const struct IWiFiSta *staFeature, unsigned char *scanMac, uint8_t len)

-

设置扫描单个MAC地址。 更多...

-

( startScan )(const char *ifName, WifiScan *scan)

-

启动扫描。 更多...

-
- -## **详细描述** - -继承了[IWiFiBaseFeature](_i_wi_fi_base_feature.md)基本特性,额外包含设置扫描单个MAC地址功能。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **类成员变量说明** - -## baseFeature - -``` -struct IWiFiBaseFeature IWiFiSta::baseFeature -``` - -**描述:** - -基本特性。 - -## setScanningMacAddress - -``` -int32_t(* IWiFiSta::setScanningMacAddress) (const struct IWiFiSta *staFeature, unsigned char *scanMac, uint8_t len) -``` - -**描述:** - -设置扫描单个MAC地址。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

staFeature

-

输入参数,STA特性IWiFiSta

-

scanMac

-

输入参数,设置STA扫描的MAC地址。

-

len

-

输入参数,MAC地址的长度。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## startScan - -``` -int32_t(* IWiFiSta::startScan) (const char *ifName, WifiScan *scan) -``` - -**描述:** - -启动扫描。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

ifName

-

输入参数,网卡名称。

-

scan

-

输入参数,扫描参数。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - diff --git a/zh-cn/device-dev/api/toctopics/_identify_result_info.md b/zh-cn/device-dev/api/toctopics/_identify_result_info.md deleted file mode 100644 index 9c49a25138..0000000000 --- a/zh-cn/device-dev/api/toctopics/_identify_result_info.md +++ /dev/null @@ -1,81 +0,0 @@ -# IdentifyResultInfo - -## **概述** - -**所属模块:** - -[HdfUserAuth](_hdf_user_auth.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

result

-

用户身份识别结果。

-

userId

-

用户ID。

-

token

-

用户身份识别令牌。

-
- -## **详细描述** - -用户身份识别结果信息。 - -**Since:** - -3.2 - -**Version:** - -1.0 - -## **类成员变量说明** - -## result - -``` -int IdentifyResultInfo::result -``` - -**描述:** - -用户身份识别结果。 - -## token - -``` -unsigned char [] IdentifyResultInfo::token -``` - -**描述:** - -用户身份识别令牌。 - -## userId - -``` -int IdentifyResultInfo::userId -``` - -**描述:** - -用户ID。 - diff --git a/zh-cn/device-dev/api/toctopics/_input.md b/zh-cn/device-dev/api/toctopics/_input.md deleted file mode 100644 index c2356b8942..0000000000 --- a/zh-cn/device-dev/api/toctopics/_input.md +++ /dev/null @@ -1,462 +0,0 @@ -# Input - -## **汇总** - -## 文件 - - - - - - - - - - - - - - - - - - - -

文件

-

描述

-

input_controller.h

-

描述input设备业务控制相关的接口声明。

-

input_manager.h

-

描述input设备管理相关的接口声明。

-

input_reporter.h

-

描述input设备数据上报相关的接口声明。

-

input_type.h

-

input设备相关的类型定义,定义了input设备驱动接口所使用的结构体及枚举类型。

-
- -## 类 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-

描述

-

InputController

-

提供input设备业务控制相关的接口。 更多...

-

InputManager

-

提供input设备管理相关的接口。 更多...

-

IInputInterface

-

定义用于提供输入设备驱动能力的接口。更多...

-

InputReporter

-

提供input设备数据上报相关的接口。 更多...

-

EventPackage

-

input事件数据包结构 更多...

-

InputReportEventCb

-

此结构体定义了输入事件回调函数并提供给input服务使用 更多...

-

DeviceInfo

-

input设备基础设备信息 更多...

-

InputExtraCmd

-

扩展指令的数据结构 更多...

-
- -## 宏定义 - - - - - - - - - - - - - - - - - - - - - - - - - -

宏定义

-

描述

-

MAX_INPUT_DEV_NUM 32

-

Input设备最大数量。

-

MAX_NODE_PATH_LEN 64

-

节点路径最大长度。

-

CHIP_INFO_LEN 10

-

芯片信息长度。

-

CHIP_NAME_LEN 10

-

芯片名称长度。

-

VENDOR_NAME_LEN 10

-

厂商名称长度。

-

SELF_TEST_RESULT_LEN 20

-

自测结果长度。

-
- -## 枚举 - - - - - - - - - - - - - - - - - - - -

枚举

-

描述

-

RetStatus { INPUT_SUCCESS = 0, INPUT_FAILURE = -1, INPUT_INVALID_PARAM = -2, INPUT_NOMEM = -3, INPUT_NULL_PTR = -4, INPUT_TIMEOUT = -5, INPUT_UNSUPPORTED = -6 }

-

定义返回值类型 更多...

-

InputDevType { INDEV_TYPE_TOUCH, INDEV_TYPE_KEY, INDEV_TYPE_KEYBOARD, INDEV_TYPE_MOUSE, INDEV_TYPE_BUTTON, INDEV_TYPE_CROWN, INDEV_TYPE_ENCODER, INDEV_TYPE_UNKNOWN }

-

定义input设备类型 更多...

-

PowerStatus { INPUT_RESUME, INPUT_SUSPEND, INPUT_LOW_POWER, INPUT_POWER_STATUS_UNKNOWN }

-

定义电源状态 更多...

-

CapacitanceTest { BASE_TEST, FULL_TEST, MMI_TEST, RUNNING_TEST, TEST_TYPE_UNKNOWN }

-

定义容值测试类型 更多...

-
- -## 函数 - - - - - - - - - - -

函数

-

描述

-

GetInputInterface (IInputInterface **interface)

-

input服务通过调用此接口获取操作input设备的所有接口。 更多...

-
- -## **详细描述** - -Input模块驱动接口声明。 - -本模块为Input服务提供相关驱动接口,包括input设备的打开和关闭、input事件获取、设备信息查询、回调函数注册、特性状态控制等接口。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **枚举类型说明** - -## CapacitanceTest - -``` -enum CapacitanceTest -``` - -**描述:** - -定义容值测试类型 - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

BASE_TEST

-

基础容值测试

-

-

FULL_TEST

-

全量容值自检测试

-

-

MMI_TEST

-

MMI容值测试

-

-

RUNNING_TEST

-

老化容值测试

-

-

TEST_TYPE_UNKNOWN

-

未知的测试类型

-

-
- -## InputDevType - -``` -enum InputDevType -``` - -**描述:** - -定义input设备类型 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

INDEV_TYPE_TOUCH

-

触摸屏。

-

-

INDEV_TYPE_KEY

-

物理按键。

-

-

INDEV_TYPE_KEYBOARD

-

键盘。

-

-

INDEV_TYPE_MOUSE

-

鼠标。

-

-

INDEV_TYPE_BUTTON

-

虚拟按键。

-

-

INDEV_TYPE_CROWN

-

表冠。

-

-

INDEV_TYPE_ENCODER

-

自定义编码的特定功能或者事件。

-

-

INDEV_TYPE_UNKNOWN

-

未知输入设备类型。

-

-
- -## PowerStatus - -``` -enum PowerStatus -``` - -**描述:** - -定义电源状态 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

INPUT_RESUME

-

正常唤醒。

-

-

INPUT_SUSPEND

-

休眠下电模式。

-

-

INPUT_LOW_POWER

-

休眠低功耗模式。

-

-

INPUT_POWER_STATUS_UNKNOWN

-

未知电源状态。

-

-
- -## RetStatus - -``` -enum RetStatus -``` - -**描述:** - -定义返回值类型 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

INPUT_SUCCESS

-

成功。

-

-

INPUT_FAILURE

-

失败。

-

-

INPUT_INVALID_PARAM

-

无效参数。

-

-

INPUT_NOMEM

-

内存不足。

-

-

INPUT_NULL_PTR

-

空指针。

-

-

INPUT_TIMEOUT

-

执行超时。

-

-

INPUT_UNSUPPORTED

-

特性不支持。

-

-
- -## **函数说明** - -## GetInputInterface\(\) - -``` -int32_t GetInputInterface (IInputInterface ** interface) -``` - -**描述:** - -input服务通过调用此接口获取操作input设备的所有接口。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

interface

-

对input设备进行接口操作的指针,通常在input服务启动后,通过调用此函数获取input设备操作接口

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/_input_controller.md b/zh-cn/device-dev/api/toctopics/_input_controller.md deleted file mode 100644 index eafe35650f..0000000000 --- a/zh-cn/device-dev/api/toctopics/_input_controller.md +++ /dev/null @@ -1,452 +0,0 @@ -# InputController - -## **概述** - -**所属模块:** - -[Input](_input.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

( SetPowerStatus )(uint32_t devIndex, uint32_t status)

-

设置电源状态 更多...

-

( GetPowerStatus )(uint32_t devIndex, uint32_t *status)

-

获取电源状态 更多...

-

( GetDeviceType )(uint32_t devIndex, uint32_t *deviceType)

-

获取devIndex对应的input设备的类型 更多...

-

( GetChipInfo )(uint32_t devIndex, char *chipInfo, uint32_t length)

-

获取器件对应的编码信息 更多...

-

( GetVendorName )(uint32_t devIndex, char *vendorName, uint32_t length)

-

获取devIndex对应的模组厂商名 更多...

-

( GetChipName )(uint32_t devIndex, char *chipName, uint32_t length)

-

获取devIndex对应的驱动芯片名 更多...

-

( SetGestureMode )(uint32_t devIndex, uint32_t gestureMode)

-

设置手势模式 更多...

-

( RunCapacitanceTest )(uint32_t devIndex, uint32_t testType, char *result, uint32_t length)

-

执行容值自检测试 更多...

-

( RunExtraCommand )(uint32_t devIndex, InputExtraCmd *cmd)

-

执行拓展指令 更多...

-
- -## **详细描述** - -提供input设备业务控制相关的接口。 - -此类接口包含电源状态的设置、特性的使能、器件信息的获取,以及产线相关的测试功能接口。 - -## **类成员变量说明** - -## GetChipInfo - -``` -int32_t(* InputController::GetChipInfo) (uint32_t devIndex, char *chipInfo, uint32_t length) -``` - -**描述:** - -获取器件对应的编码信息 - -一款产品通常会有多家模组和Driver IC,上层应用如果关注具体器件型号,则通过此接口来获取。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devIndex

-

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

-

chipInfo

-

获取的对应设备索引的器件编码信息。

-

length

-

保存器件芯片信息的内存长度。

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - -## GetChipName - -``` -int32_t(* InputController::GetChipName) (uint32_t devIndex, char *chipName, uint32_t length) -``` - -**描述:** - -获取devIndex对应的驱动芯片名 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devIndex

-

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

-

chipName

-

获取的对应设备索引的驱动芯片名。

-

length

-

保存驱动芯片名的内存长度。

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - -## GetDeviceType - -``` -int32_t(* InputController::GetDeviceType) (uint32_t devIndex, uint32_t *deviceType) -``` - -**描述:** - -获取devIndex对应的input设备的类型 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devIndex

-

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

-

deviceType

-

获取的对应设备索引的设备类型,具体参考 InputDevType

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - -## GetPowerStatus - -``` -int32_t(* InputController::GetPowerStatus) (uint32_t devIndex, uint32_t *status) -``` - -**描述:** - -获取电源状态 - -在系统休眠或者唤醒时,input服务或电源管理模块获取电源状态,以便驱动IC能正常进入对应的休眠模式。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devIndex

-

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

-

status

-

获取的对应设备索引的电源状态,具体参考PowerStatus

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus。** - -## GetVendorName - -``` -int32_t(* InputController::GetVendorName) (uint32_t devIndex, char *vendorName, uint32_t length) -``` - -**描述:** - -获取devIndex对应的模组厂商名 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devIndex

-

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

-

vendorName

-

获取的对应设备索引的模组厂商名。

-

length

-

保存模组厂商名的内存长度。

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - -## RunCapacitanceTest - -``` -int32_t(* InputController::RunCapacitanceTest) (uint32_t devIndex, uint32_t testType, char *result, uint32_t length) -``` - -**描述:** - -执行容值自检测试 - -启动不同检测场景下的容值自检测试,并获取测试结果,容值自检项由器件厂商自定义, 一般包括RawData测试、 \* 短路检测、开路检测、干扰检测、行列差检测等测试项。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

devIndex

-

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

-

testType

-

容值测试的测试类型,具体参考CapacitanceTest

-

result

-

容值测试的结果,成功则输出“SUCCESS”,失败则返回对应的错误提示 。

-

length

-

保存容值测试结果的内存长度。

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - -## RunExtraCommand - -``` -int32_t(* InputController::RunExtraCommand) (uint32_t devIndex, InputExtraCmd *cmd) -``` - -**描述:** - -执行拓展指令 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devIndex

-

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

-

cmd

-

拓展指令数据包,包括指令编码及参数,具体参考InputExtraCmd

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - -## SetGestureMode - -``` -int32_t(* InputController::SetGestureMode) (uint32_t devIndex, uint32_t gestureMode) -``` - -**描述:** - -设置手势模式 - -上层应用开关手势模式,即设置手势模式的对应使能bit - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devIndex

-

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

-

gestureMode

-

手势模式的开关状态

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - -## SetPowerStatus - -``` -int32_t(* InputController::SetPowerStatus) (uint32_t devIndex, uint32_t status) -``` - -**描述:** - -设置电源状态 - -在系统休眠或者唤醒时,input服务或电源管理模块设置电源状态,以使驱动IC能正常进入对应的休眠模式。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devIndex

-

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

-

status

-

设置的电源状态,input服务控制input设备进入resume或者suspend等状态PowerStatus

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - diff --git a/zh-cn/device-dev/api/toctopics/_input_extra_cmd.md b/zh-cn/device-dev/api/toctopics/_input_extra_cmd.md deleted file mode 100644 index 50f82cf171..0000000000 --- a/zh-cn/device-dev/api/toctopics/_input_extra_cmd.md +++ /dev/null @@ -1,58 +0,0 @@ -# InputExtraCmd - -## **概述** - -**所属模块:** - -[Input](_input.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

cmdCode

-

指令对应的编码。

-

cmdValue

-

指令传输的数据。

-
- -## **详细描述** - -扩展指令的数据结构。 - -## **类成员变量说明** - -## cmdCode - -``` -const char* InputExtraCmd::cmdCode -``` - -**描述:** - -指令对应的编码 - -## cmdValue - -``` -const char* InputExtraCmd::cmdValue -``` - -**描述:** - -指令传输的数据 - diff --git a/zh-cn/device-dev/api/toctopics/_input_manager.md b/zh-cn/device-dev/api/toctopics/_input_manager.md deleted file mode 100644 index 21d9bce707..0000000000 --- a/zh-cn/device-dev/api/toctopics/_input_manager.md +++ /dev/null @@ -1,240 +0,0 @@ -# InputManager - -## **概述** - -**所属模块:** - -[Input](_input.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

( ScanInputDevice )(DevDesc *staArr, uint32_t arrLen)

-

input服务用于扫描所有在线设备。 更多...

-

( OpenInputDevice )(uint32_t devIndex)

-

input服务打开对应设备的设备文件 更多...

-

( CloseInputDevice )(uint32_t devIndex)

-

input服务关闭对应设备的设备文件 更多...

-

( GetInputDevice )(uint32_t devIndex, DeviceInfo **devInfo)

-

input服务获取对应ID的设备信息 更多...

-

( GetInputDeviceList )(uint32_t *devNum, DeviceInfo **devList, uint32_t size)

-

input服务获取所有input设备列表的设备信息 更多...

-
- -## **详细描述** - -提供input设备管理相关的接口。 - -此类接口包含input设备的扫描、打开和关闭、特定设备信息查询,以及所有设备列表信息获取等接口。 - -## **类成员变量说明** - -## CloseInputDevice - -``` -int32_t(* InputManager::CloseInputDevice) (uint32_t devIndex) -``` - -**描述:** - -input服务关闭对应设备的设备文件 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

devIndex

-

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - -## GetInputDevice - -``` -int32_t(* InputManager::GetInputDevice) (uint32_t devIndex, DeviceInfo **devInfo) -``` - -**描述:** - -input服务获取对应ID的设备信息。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devIndex

-

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

-

devInfo

-

即devIndex对应设备的设备信息,具体参考DeviceInfo

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - -## GetInputDeviceList - -``` -int32_t(* InputManager::GetInputDeviceList) (uint32_t *devNum, DeviceInfo **devList, uint32_t size) -``` - -**描述:** - -input服务获取所有input设备列表的设备信息。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devNum

-

当前已经注册过的所有input设备的总数。

-

devInfo

-

input设备列表所对应的设备信息,具体参考DeviceInfo

-

size

-

即指定deviceList数组对应的元素个数。

-
- -返回: - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - -## OpenInputDevice - -``` -int32_t(* InputManager::OpenInputDevice) (uint32_t devIndex) -``` - -**描述:** - -input服务打开对应设备的设备文件 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

devIndex

-

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - -## ScanInputDevice - -``` -int32_t(* InputManager::ScanInputDevice) (DevDesc *staArr, uint32_t arrLen) -``` - -**描述:** - -input服务用于扫描所有在线设备。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

staArr

-

存放Input设备扫描信息的数组,信息包含设备索引以及设备类型。

-

arrLen

-

staArr数组的长度信息。

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - diff --git a/zh-cn/device-dev/api/toctopics/_input_report_event_cb.md b/zh-cn/device-dev/api/toctopics/_input_report_event_cb.md deleted file mode 100644 index ce5da83118..0000000000 --- a/zh-cn/device-dev/api/toctopics/_input_report_event_cb.md +++ /dev/null @@ -1,102 +0,0 @@ -# InputReportEventCb - -## **概述** - -**所属模块:** - -[Input](_input.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

( ReportEventPkgCallback )(const EventPackage **pkgs, uint32_t count, uint32_t devIndex)

-

输入事件数据上报的回调函数 更多...

-

( ReportHotPlugEventCallback )(const HotPlugEvent *event)

-

热插拔事件上报的回调函数 更多...

-
- -## **详细描述** - -此结构体定义了输入事件回调函数并提供给input服务使用。 - -## **类成员变量说明** - -## ReportEventPkgCallback - -``` -void(* InputReportEventCb::ReportEventPkgCallback) (const EventPackage **pkgs, uint32_t count, uint32_t devIndex) -``` - -**描述:** - -输入事件数据上报的回调函数 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

eventData

-

驱动上报的input事件数据。

-

count

-

Input事件数据包的个数。

-

devIndex

-

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备。

-
- -## ReportHotPlugEventCallback - -``` -void(* InputReportEventCb::ReportHotPlugEventCallback) (const HotPlugEvent *event) -``` - -**描述:** - -热插拔事件上报的回调函数 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

event

-

上报的热插拔事件数据

-
- diff --git a/zh-cn/device-dev/api/toctopics/_input_reporter.md b/zh-cn/device-dev/api/toctopics/_input_reporter.md deleted file mode 100644 index afe71a5e50..0000000000 --- a/zh-cn/device-dev/api/toctopics/_input_reporter.md +++ /dev/null @@ -1,191 +0,0 @@ -# InputReporter - -## **概述** - -**所属模块:** - -[Input](_input.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

( RegisterReportCallback )(uint32_t devIndex, InputReportEventCb *callback)

-

注册对应设备的回调函数 更多...

-

( UnregisterReportCallback )(uint32_t devIndex)

-

注销对应设备的回调函数 更多...

-

( RegisterHotPlugCallback )(InputReportEventCb *callback)

-

注册Input设备的热插拔回调函数 更多...

-

( UnregisterHotPlugCallback )(void)

-

注销Input设备的热插拔回调函数 更多...

-
- -## **详细描述** - -提供input设备数据上报相关的接口。 - -此类接口包含input设备的数据上报回调函数的注册和注销。 - -## **类成员变量说明** - -## RegisterHotPlugCallback - -``` -int32_t(* InputReporter::RegisterHotPlugCallback) (InputReportEventCb *callback) -``` - -**描述:** - -注册Input设备的热插拔回调函数 - -input服务通过此接口注册回调函数到hdi中,所有Input设备由此函数进行热插拔事件上报 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

callback

-

回调函数的函数指针

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - -## RegisterReportCallback - -``` -int32_t(* InputReporter::RegisterReportCallback) (uint32_t devIndex, InputReportEventCb *callback) -``` - -**描述:** - -注册对应设备的回调函数 - -input服务通过此接口注册数据回调函数到hdi中,hdi通过此回调函数上报input事件 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devIndex

-

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备

-

callback

-

回调函数的函数指针

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - -## UnregisterHotPlugCallback - -``` -int32_t(* InputReporter::UnregisterHotPlugCallback) (void) -``` - -**描述:** - -注销Input设备的热插拔回调函数 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

-

-

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - -## UnregisterReportCallback - -``` -int32_t(* InputReporter::UnregisterReportCallback) (uint32_t devIndex) -``` - -**描述:** - -注销对应设备的回调函数 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

devIndex

-

Input设备索引,用于标志多个input设备,取值从0开始,最多支持32个设备

-
- -**返回:** - -Returns INPUT\_SUCCESS 表示执行成功。 - -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 - diff --git a/zh-cn/device-dev/api/toctopics/_layer_alpha.md b/zh-cn/device-dev/api/toctopics/_layer_alpha.md deleted file mode 100644 index a6c17979ca..0000000000 --- a/zh-cn/device-dev/api/toctopics/_layer_alpha.md +++ /dev/null @@ -1,51 +0,0 @@ -# LayerAlpha - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

enGlobalAlpha

-

全局alpha使能标志

-

enPixelAlpha

-

像素alpha使能标志

-

alpha0

-

alpha0值,取值范围:[0, 255]

-

alpha1

-

alpha1值,取值范围:[0, 255]

-

gAlpha

-

全局alpha值,取值范围:[0, 255]

-
- -## **详细描述** - -定义图层Alpha信息的结构体。 - diff --git a/zh-cn/device-dev/api/toctopics/_layer_buffer.md b/zh-cn/device-dev/api/toctopics/_layer_buffer.md deleted file mode 100644 index adc0ef9669..0000000000 --- a/zh-cn/device-dev/api/toctopics/_layer_buffer.md +++ /dev/null @@ -1,61 +0,0 @@ -# LayerBuffer - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

fenceId

-

buffer的fence号

-

width

-

buffer宽度

-

height

-

buffer高度

-

pitch

-

一行数据所占字节数

-

pixFormat

-

图层像素格式

-

data

-

图层buffer数据

-

hdl

-

图层buffer句柄

-
- -## **详细描述** - -图层Buffer,用于存放图层数据。 - diff --git a/zh-cn/device-dev/api/toctopics/_layer_funcs.md b/zh-cn/device-dev/api/toctopics/_layer_funcs.md deleted file mode 100644 index 7793c571eb..0000000000 --- a/zh-cn/device-dev/api/toctopics/_layer_funcs.md +++ /dev/null @@ -1,2160 +0,0 @@ -# LayerFuncs - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

( InitDisplay )(uint32_t devId)

-

初始化显示设备。 更多...

-

( DeinitDisplay )(uint32_t devId)

-

取消初始化显示设备。 更多...

-

( GetDisplayInfo )(uint32_t devId, DisplayInfo *dispInfo)

-

获取显示设备相关信息。 更多...

-

( CreateLayer )(uint32_t devId, const LayerInfo *layerInfo, uint32_t *layerId)

-

打开图层。 更多...

-

( CloseLayer )(uint32_t devId, uint32_t layerId)

-

关闭图层。 更多...

-

( SetLayerVisible )(uint32_t devId, uint32_t layerId, bool visible)

-

设置图层是否可见。 更多...

-

( GetLayerVisibleState )(uint32_t devId, uint32_t layerId, bool *visible)

-

获取图层是否可见状态。 更多...

-

( SetLayerSize )(uint32_t devId, uint32_t layerId, IRect *rect)

-

设置图层大小。 更多...

-

( GetLayerSize )(uint32_t devId, uint32_t layerId, IRect *rect)

-

获取图层大小。 更多...

-

( SetLayerCrop )(uint32_t devId, uint32_t layerId, IRect *rect)

-

设置图层裁剪区域。 更多...

-

( SetLayerZorder )(uint32_t devId, uint32_t layerId, uint32_t zorder)

-

设置图层Z轴次序。 更多...

-

( GetLayerZorder )(uint32_t devId, uint32_t layerId, uint32_t *zorder)

-

获取图层Z轴次序。 更多...

-

( SetLayerPreMulti )(uint32_t devId, uint32_t layerId, bool preMul)

-

设置图层预乘。 更多...

-

( GetLayerPreMulti )(uint32_t devId, uint32_t layerId, bool *preMul)

-

获取图层预乘标识。 更多...

-

( SetLayerAlpha )(uint32_t devId, uint32_t layerId, LayerAlpha *alpha)

-

设置图层alpha值。 更多...

-

( GetLayerAlpha )(uint32_t devId, uint32_t layerId, LayerAlpha *alpha)

-

获取图层alpha值。 更多...

-

( SetLayerColorKey )(uint32_t devId, uint32_t layerId, bool enable, uint32_t key)

-

设置图层colorkey属性,在图层叠加时使用。 更多...

-

( GetLayerColorKey )(uint32_t devId, uint32_t layerId, bool *enable, uint32_t *key)

-

获取图层colorkey。 更多...

-

( SetLayerPalette )(uint32_t devId, uint32_t layerId, uint32_t *palette, uint32_t len)

-

设置图层调色板。 更多...

-

( GetLayerPalette )(uint32_t devId, uint32_t layerId, uint32_t *palette, uint32_t len)

-

获取图层调色板。 更多...

-

( SetTransformMode )(uint32_t devId, uint32_t layerId, TransformType type)

-

设置图层变换模式,根据不同的场景设置图层的旋转、缩放、移位等。 更多...

-

( SetLayerCompression )(uint32_t devId, uint32_t layerId, int32_t compType)

-

设置图层压缩功能 更多...

-

( GetLayerCompression )(uint32_t devId, uint32_t layerId, int32_t *compType)

-

获取图层压缩功能是否打开。 更多...

-

( SetLayerDirtyRegion )(uint32_t devId, uint32_t layerId, IRect *region)

-

设置图层刷新区域。 更多...

-

( GetLayerBuffer )(uint32_t devId, uint32_t layerId, LayerBuffer *buffer)

-

获取图层的buffer。 更多...

-

( Flush )(uint32_t devId, uint32_t layerId, LayerBuffer *buffer)

-

刷新图层。 更多...

-

( WaitForVBlank )(uint32_t devId, uint32_t layerId, int32_t timeOut)

-

实现等待帧消隐期到来功能。 更多...

-

( SnapShot )(uint32_t devId, LayerBuffer *buffer)

-

实现抓图功能。 更多...

-

( SetLayerVisibleRegion )(uint32_t devId, uint32_t layerId, uint32_t num, IRect *rect)

-

设置一个图层的可见区域 更多...

-

( SetLayerBuffer )(uint32_t devId, uint32_t layerId, const BufferHandle *buffer, int32_t fence)

-

设置一个层的缓冲区。 更多...

-

( InvokeLayerCmd )(uint32_t devId, uint32_t layerId, uint32_t cmd,...)

-

扩展接口 更多...

-

( SetLayerCompositionType )(uint32_t devId, uint32_t layerId, CompositionType type)

-

设置客户端期望的组合类型 更多...

-

( SetLayerBlendType )(uint32_t devId, uint32_t layerId, BlendType type)

-

设置混合类型 更多...

-

( SetLayerColorTransform )(uint32_t devId, uint32_t layerId, const float *matrix)

-

设置图层当前的颜色转换矩阵。 更多...

-

( SetLayerColorDataSpace )(uint32_t devId, uint32_t layerId, ColorDataSpace colorSpace)

-

设置图层的颜色数据空间。 更多...

-

( GetLayerColorDataSpace )(uint32_t devId, uint32_t layerId, ColorDataSpace *colorSpace)

-

获取图层当前的颜色数据空间。 更多...

-

( SetLayerMetaData )(uint32_t devId, uint32_t layerId, uint32_t num, const HDRMetaData *metaData)

-

设置图层的HDRmetaData。 更多...

-

( SetLayerMetaDataSet )(uint32_t devId, uint32_t layerId, HDRMetadataKey key, uint32_t num, const uint8_t *metaData)

-

设置图层的metaData set。 更多...

-

( GetSupportedPresentTimestamp )(uint32_t devId, uint32_t layerId, PresentTimestampType *type)

-

获取图层支持的上屏时间戳类型。 更多...

-

( GetHwPresentTimestamp )(uint32_t devId, uint32_t layerId, PresentTimestamp *pts)

-

获取图层的上屏时间戳信息。 更多...

-

( SetLayerTunnelHandle )(uint32_t devId, uint32_t layerId, ExtDataHandle *handle)

-

设置图层的tunnel句柄。 更多...

-

( GetLayerReleaseFence )(uint32_t devId, uint32_t layerId, int32_t *fence)

-

获取图层的同步栅栏。 更多...

-
- -## **详细描述** - -显示图层驱动接口结构体,定义显示图层驱动接口函数指针。 - -## **类成员变量说明** - -## CloseLayer - -``` -int32_t(* LayerFuncs::CloseLayer) (uint32_t devId, uint32_t layerId) -``` - -**描述:** - -关闭图层。 - -在完成显示后,如果不在需要使用图层,调用关闭图层接口关闭图层。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -**OpenLayer** - -## CreateLayer - -``` -int32_t(* LayerFuncs::CreateLayer) (uint32_t devId, const LayerInfo *layerInfo, uint32_t *layerId) -``` - -**描述:** - -打开图层。 - -GUI在使用图层时,需要先根据图层信息打开图层,打开图层成功可获得图层ID,根据图层ID使用图层各接口。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerInfo

-

输入参数,图层信息,上层GUI打开图层时需传递图层信息,包括图层类型,图层大小,像素格式等信息。

-

layerId

-

输入参数,图层ID,打开图层成功后返回给GUI的图层ID,用于标识唯一的图层。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[CloseLayer](_layer_funcs.md#a2e375f75209da329f131b914377e9616) - -## DeinitDisplay - -``` -int32_t(* LayerFuncs::DeinitDisplay) (uint32_t devId) -``` - -**描述:** - -取消初始化显示设备。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[InitDisplay](_layer_funcs.md#a0641c3b48542646daa80386122bed46a) - -## Flush - -``` -int32_t(* LayerFuncs::Flush) (uint32_t devId, uint32_t layerId, LayerBuffer *buffer) -``` - -**描述:** - -刷新图层。 - -将buffer显示数据刷新到指定的layerId图层上,实现图像数据显示到屏幕上。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

buffer

-

输出参数,待刷新的buffer。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetDisplayInfo - -``` -int32_t(* LayerFuncs::GetDisplayInfo) (uint32_t devId, DisplayInfo *dispInfo) -``` - -**描述:** - -获取显示设备相关信息。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

dispInfo

-

输出参数,显示相关信息。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetHwPresentTimestamp - -``` -int32_t(* LayerFuncs::GetHwPresentTimestamp) (uint32_t devId, uint32_t layerId, PresentTimestamp *pts) -``` - -**描述:** - -获取图层的上屏时间戳信息。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

layerId

-

输入参数,指示需要操作的图层ID。

-

pts

-

输出参数,保存图层的上屏时间戳信息, 由接口实现层进行写入。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetLayerAlpha - -``` -int32_t(* LayerFuncs::GetLayerAlpha) (uint32_t devId, uint32_t layerId, LayerAlpha *alpha) -``` - -**描述:** - -获取图层alpha值。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

alpha

-

输出参数,保存获取的图层alpha值。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[SetLayerAlpha](_layer_funcs.md#abb9bea9f251316f7c2bea697de55a139) - -## GetLayerBuffer - -``` -int32_t(* LayerFuncs::GetLayerBuffer) (uint32_t devId, uint32_t layerId, LayerBuffer *buffer) -``` - -**描述:** - -获取图层的buffer。 - -向buffer中绘图后,调用Flush接口显示到屏幕上。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

buffer

-

输出参数,保存获取的图层buffer。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[Flush](_layer_funcs.md#abb480bf2b85e93841c49fdc9800bd1e7) - -## GetLayerColorDataSpace - -``` -int32_t(* LayerFuncs::GetLayerColorDataSpace) (uint32_t devId, uint32_t layerId, ColorDataSpace *colorSpace) -``` - -**描述:** - -获取图层当前的颜色数据空间。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

layerId

-

输入参数,指示需要操作的图层ID。

-

colorSpace

-

输出参数,保存对应图层的颜色数据空间。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetLayerColorKey - -``` -int32_t(* LayerFuncs::GetLayerColorKey) (uint32_t devId, uint32_t layerId, bool *enable, uint32_t *key) -``` - -**描述:** - -获取图层colorkey。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

enable

-

输出参数,保存获取的enable色键使能标识。

-

key

-

输出参数,保存获取的色键值,即颜色值。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[SetLayerColorKey](_layer_funcs.md#a5701fe1e0e2414de577aa5329bd873c9) - -## GetLayerCompression - -``` -int32_t(* LayerFuncs::GetLayerCompression) (uint32_t devId, uint32_t layerId, int32_t *compType) -``` - -**描述:** - -获取图层压缩功能是否打开。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

compType

-

输出参数,保存获取的图层压缩功能状态。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[SetLayerCompression](_layer_funcs.md#a46c9750d8615dc874b66ac4b10796b24) - -## GetLayerPalette - -``` -int32_t(* LayerFuncs::GetLayerPalette) (uint32_t devId, uint32_t layerId, uint32_t *palette, uint32_t len) -``` - -**描述:** - -获取图层调色板。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

palette

-

输出参数,保存获取的图层调色板。

-

len

-

输入参数,调色板长度。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[SetLayerPalette](_layer_funcs.md#a3982c76e093852ef386fc372581be4af) - -## GetLayerPreMulti - -``` -int32_t(* LayerFuncs::GetLayerPreMulti) (uint32_t devId, uint32_t layerId, bool *preMul) -``` - -**描述:** - -获取图层预乘标识。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

preMul

-

输出参数,保存获取的图层预乘使能标识。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[SetLayerPreMulti](_layer_funcs.md#a456aa01ca3ffa81d2e49c0a9487f816f) - -## GetLayerReleaseFence - -``` -int32_t(* LayerFuncs::GetLayerReleaseFence) (uint32_t devId, uint32_t layerId, int32_t *fence) -``` - -**描述:** - -获取图层的同步栅栏。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

layerId

-

输入参数,指示需要操作的图层ID。

-

fence

-

输出参数,保存图层的 release fence, 由接口实现层进行写入。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## GetLayerSize - -``` -int32_t(* LayerFuncs::GetLayerSize) (uint32_t devId, uint32_t layerId, IRect *rect) -``` - -**描述:** - -获取图层大小。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

rect

-

输出参数,保存获取的图层大小。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[SetLayerSize](_layer_funcs.md#ab58e66b0676b1baa1662c175d43bf219) - -## GetLayerVisibleState - -``` -int32_t(* LayerFuncs::GetLayerVisibleState) (uint32_t devId, uint32_t layerId, bool *visible) -``` - -**描述:** - -获取图层是否可见状态。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

visible

-

输出参数,保存获取的图层可见状态,true表示图层可见,false表示图层不可见。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[SetLayerVisible](_layer_funcs.md#aaa5bf7f98e8dc47510a4f26fb38094b6) - -## GetLayerZorder - -``` -int32_t(* LayerFuncs::GetLayerZorder) (uint32_t devId, uint32_t layerId, uint32_t *zorder) -``` - -**描述:** - -获取图层Z轴次序。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

zorder

-

输出参数,保存获取的图层Z轴次序,为整数值,取值范围为[0, 255],值越大图层越往上排列。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[SetLayerZorder](_layer_funcs.md#aa3803c2a6395651d1538ffb62d29733d) - -## GetSupportedPresentTimestamp - -``` -int32_t(* LayerFuncs::GetSupportedPresentTimestamp) (uint32_t devId, uint32_t layerId, PresentTimestampType *type) -``` - -**描述:** - -获取图层支持的上屏时间戳类型。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

layerId

-

输入参数,指示需要操作的图层ID。

-

type

-

输出参数,保存图层支持的上屏时间戳类型, 由接口实现层进行写入。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## InitDisplay - -``` -int32_t(* LayerFuncs::InitDisplay) (uint32_t devId) -``` - -**描述:** - -初始化显示设备。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[DeinitDisplay](_layer_funcs.md#a8d7a715d7d2b4bd5ab0db92c2a1eec93) - -## InvokeLayerCmd - -``` -int32_t(* LayerFuncs::InvokeLayerCmd) (uint32_t devId, uint32_t layerId, uint32_t cmd,...) -``` - -**描述:** - -扩展接口 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。

-

layerId

-

输入参数,层ID,唯一标识一个层。可以对该层进行操作。

-

cmd

-

输入参数,表示扩展cmd,用于识别不同的意图。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetLayerAlpha - -``` -int32_t(* LayerFuncs::SetLayerAlpha) (uint32_t devId, uint32_t layerId, LayerAlpha *alpha) -``` - -**描述:** - -设置图层alpha值。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

alpha

-

输入参数,待设置的图层 alpha 值。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[GetLayerAlpha](_layer_funcs.md#acf1e01338eeb0fd957f53ed0d2551394) - -## SetLayerBlendType - -``` -int32_t(* LayerFuncs::SetLayerBlendType) (uint32_t devId, uint32_t layerId, BlendType type) -``` - -**描述:** - -设置混合类型 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。

-

layerId

-

输入参数,层ID,唯一标识一个层。可以对该层进行操作。

-

type

-

输入参数,指示混合类型。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetLayerBuffer - -``` -int32_t(* LayerFuncs::SetLayerBuffer) (uint32_t devId, uint32_t layerId, const BufferHandle *buffer, int32_t fence) -``` - -**描述:** - -设置一个层的缓冲区。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。

-

layerId

-

输入参数,层ID,唯一标识一个层。可以对该层进行操作。

-

buffer

-

输入参数,指示缓冲区句柄的指针,该指针包含所有用于合成的缓冲区的所有信息。

-

fence

-

输入参数,同步文件的fd。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetLayerColorDataSpace - -``` -int32_t(* LayerFuncs::SetLayerColorDataSpace) (uint32_t devId, uint32_t layerId, ColorDataSpace colorSpace) -``` - -**描述:** - -设置图层的颜色数据空间。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

layerId

-

输入参数,指示需要操作的图层ID。

-

colorSpace

-

输入参数,表示需要设置的颜色数据空间。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetLayerColorKey - -``` -int32_t(* LayerFuncs::SetLayerColorKey) (uint32_t devId, uint32_t layerId, bool enable, uint32_t key) -``` - -**描述:** - -设置图层colorkey属性,在图层叠加时使用。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

enable

-

输入参数,待设置的色键使能标识。

-

key

-

输入参数,待设置的色键值,即颜色值。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[GetLayerColorKey](_layer_funcs.md#aea882232b6279b8be82c45e889187b24) - -## SetLayerColorTransform - -``` -int32_t(* LayerFuncs::SetLayerColorTransform) (uint32_t devId, uint32_t layerId, const float *matrix) -``` - -**描述:** - -设置图层当前的颜色转换矩阵。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

layerId

-

输入参数,指示需要操作的图层ID。

-

matrix

-

输入参数,表示需要设置的颜色转换模式。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetLayerCompositionType - -``` -int32_t(* LayerFuncs::SetLayerCompositionType) (uint32_t devId, uint32_t layerId, CompositionType type) -``` - -**描述:** - -设置客户端期望的组合类型 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。

-

layerId

-

输入参数,层ID,唯一标识一个层。可以对该层进行操作。

-

type

-

输入参数,指示客户端期望的组合类型。它可能随实现而变化。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetLayerCompression - -``` -int32_t(* LayerFuncs::SetLayerCompression) (uint32_t devId, uint32_t layerId, int32_t compType) -``` - -**描述:** - -设置图层压缩功能 - -在特定场景下,需要对图像数据进行压缩,可设置启动或关闭图层压缩功能。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

compType

-

输入参数,图层压缩使能标识。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[GetLayerCompression](_layer_funcs.md#ab0b5855ea4ee5228516303cba84907ce) - -## SetLayerCrop - -``` -int32_t(* LayerFuncs::SetLayerCrop) (uint32_t devId, uint32_t layerId, IRect *rect) -``` - -**描述:** - -设置图层裁剪区域。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

rect

-

输入参数,待设置的裁剪区域。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetLayerDirtyRegion - -``` -int32_t(* LayerFuncs::SetLayerDirtyRegion) (uint32_t devId, uint32_t layerId, IRect *region) -``` - -**描述:** - -设置图层刷新区域。 - -GUI图形系统绘制好图像数据后,在调用Flush接口刷新屏幕之前需要设置图层刷新区域。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

region

-

输入参数,待设置的刷新区域。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetLayerMetaData - -``` -int32_t(* LayerFuncs::SetLayerMetaData) (uint32_t devId, uint32_t layerId, uint32_t num, const HDRMetaData *metaData) -``` - -**描述:** - -设置图层的HDRmetaData。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

layerId

-

输入参数,指示需要操作的图层ID。

-

num

-

输入参数,metadata 数组个数。

-

metaData

-

输入参数,表示需要设置的 metadata 数组首地址。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetLayerMetaDataSet - -``` -int32_t(* LayerFuncs::SetLayerMetaDataSet) (uint32_t devId, uint32_t layerId, HDRMetadataKey key, uint32_t num, const uint8_t *metaData) -``` - -**描述:** - -设置图层的metaData set。 - -**参数:** - - - - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

layerId

-

输入参数,指示需要操作的图层ID。

-

key

-

输入参数,表示需要设置的 HDRMetadataKey。

-

num

-

输入参数,metadata 数组个数。

-

metaData

-

输入参数,表示需要设置的 metadata 数组首地址, 数据类型为uint8_t。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetLayerPalette - -``` -int32_t(* LayerFuncs::SetLayerPalette) (uint32_t devId, uint32_t layerId, uint32_t *palette, uint32_t len) -``` - -**描述:** - -设置图层调色板。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

palette

-

输入参数,待设置的图层调色板。

-

len

-

输入参数,调色板长度。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[GetLayerPalette](_layer_funcs.md#af713bc39e51dc8168c278e2f126bf4e3) - -## SetLayerPreMulti - -``` -int32_t(* LayerFuncs::SetLayerPreMulti) (uint32_t devId, uint32_t layerId, bool preMul) -``` - -**描述:** - -设置图层预乘。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

preMul

-

输入参数,待设置的图层预乘使能标识,1表示使能图层预乘,0表示不使能图层预乘。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[GetLayerPreMulti](_layer_funcs.md#a4a0e26f8401da1232f03bb37502ff4bd) - -## SetLayerSize - -``` -int32_t(* LayerFuncs::SetLayerSize) (uint32_t devId, uint32_t layerId, IRect *rect) -``` - -**描述:** - -设置图层大小。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

rect

-

输入参数,待设置的图层大小,单位为像素。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[GetLayerSize](_layer_funcs.md#a56be84be25eba64497b2a842c1f68b26) - -## SetLayerTunnelHandle - -``` -int32_t(* LayerFuncs::SetLayerTunnelHandle) (uint32_t devId, uint32_t layerId, ExtDataHandle *handle) -``` - -**描述:** - -设置图层的tunnel句柄。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,指示需要操作的设备ID。

-

layerId

-

输入参数,指示需要操作的图层ID。

-

handle

-

输入参数,表示需要设置的句柄。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetLayerVisible - -``` -int32_t(* LayerFuncs::SetLayerVisible) (uint32_t devId, uint32_t layerId, bool visible) -``` - -**描述:** - -设置图层是否可见。 - -不可见情况下图层不显示在屏幕上,可见情况下图层显示在屏幕上。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

visible

-

输入参数,待设置的图层可见标识,设置true表示图层可见,设置false表示图层不可见。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[GetLayerVisibleState](_layer_funcs.md#a6bbff71bb4f17eb84a4db4857a0b0985) - -## SetLayerVisibleRegion - -``` -int32_t(* LayerFuncs::SetLayerVisibleRegion) (uint32_t devId, uint32_t layerId, uint32_t num, IRect *rect) -``` - -**描述:** - -设置一个图层的可见区域 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。

-

layerId

-

输入参数,层ID,唯一标识一个层。可以对该层进行操作。

-

num

-

输入参数,指定rect的计数,该区域包含多个 IRect,num表示该区域中有多少个rect区域。

-

rect

-

输出参数,rectes对象的指针。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SetLayerZorder - -``` -int32_t(* LayerFuncs::SetLayerZorder) (uint32_t devId, uint32_t layerId, uint32_t zorder) -``` - -**描述:** - -设置图层Z轴次序。 - -图层的Z序值越大,图层越靠上显示。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

zorder

-

输入参数,待设置的图层Z序,为整数值,取值范围为[0, 255],值越大图层越往上排列。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -**参见:** - -[GetLayerZorder](_layer_funcs.md#a5644645442e1d6943b55ce0a6a801b8c) - -## SetTransformMode - -``` -int32_t(* LayerFuncs::SetTransformMode) (uint32_t devId, uint32_t layerId, TransformType type) -``` - -**描述:** - -设置图层变换模式,根据不同的场景设置图层的旋转、缩放、移位等。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

type

-

输入参数,待设置的图层变换模式。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## SnapShot - -``` -int32_t(* LayerFuncs::SnapShot) (uint32_t devId, LayerBuffer *buffer) -``` - -**描述:** - -实现抓图功能。 - -本函数将显示设备上的图像数据截图保存到buffer中,用于调试、应用截图等场景。 - -otherwise. - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

buffer

-

输出参数,保存截屏的buffer信息。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - -## WaitForVBlank - -``` -int32_t(* LayerFuncs::WaitForVBlank) (uint32_t devId, uint32_t layerId, int32_t timeOut) -``` - -**描述:** - -实现等待帧消隐期到来功能。 - -该函数会让系统等待,直到帧消隐期到来,用于软件和硬件之间的同步。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

devId

-

输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。

-

layerId

-

输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。

-

timeOut

-

输入参数,超时时间,在设置的超时时间后,没有等到帧消隐期到来则超时返回。

-
- -**返回:** - -DISPLAY\_SUCCESS 表示执行成功。 - -其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#ga12a925dadef7573cd74d63d06824f9b0)。 - diff --git a/zh-cn/device-dev/api/toctopics/_layer_info.md b/zh-cn/device-dev/api/toctopics/_layer_info.md deleted file mode 100644 index 16aa2aa62e..0000000000 --- a/zh-cn/device-dev/api/toctopics/_layer_info.md +++ /dev/null @@ -1,53 +0,0 @@ -# LayerInfo - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

width

-

图层宽度

-

height

-

图层高度

-

type

-

图层类型,包括图形层、视频层和媒体播放模式。

-

bpp

-

每像素所占bit数

-

pixFormat

-

图层像素格式

-
- -## **详细描述** - -定义图层信息结构体。 - -在创建图层时,需要将LayerInfo传递给创建图层接口,创建图层接口根据图层信息创建相应图层。 - diff --git a/zh-cn/device-dev/api/toctopics/_light.md b/zh-cn/device-dev/api/toctopics/_light.md deleted file mode 100644 index 3849027cb3..0000000000 --- a/zh-cn/device-dev/api/toctopics/_light.md +++ /dev/null @@ -1,295 +0,0 @@ -# Light - -## **汇总** - -## 文件 - - - - - - - - - - - - - -

文件

-

描述

-

light_if.h

-

声明light模块的通用API,可用于获取灯ID、打开或关闭灯、并设置灯光亮度和闪烁模式。

-

light_type.h

-

定义灯的数据结构,包括灯ID、灯的模式、灯的闪烁模式和持续时间、灯的状态、灯的效果。

-
- -## 类 - - - - - - - - - - - - - - - - - - - -

-

描述

-

LightFlashEffect

-

定义闪烁参数。 更多...

-

LightEffect

-

定义灯的效果参数。 更多...

-

LightInfo

-

定义灯的基本信息。 更多...

-

LightInterface

-

定义可以在灯上执行的基本操作。 更多...

-
- -## 枚举 - - - - - - - - - - - - - - - - -

枚举

-

描述

-

LightStatus { LIGHT_SUCCESS = 0, LIGHT_NOT_SUPPORT = -1, LIGHT_NOT_FLASH = -2, LIGHT_NOT_BRIGHTNESS = -3 }

-

枚举灯模块的状态值。 更多...

-

LightId { LIGHT_ID_NONE = 0, LIGHT_ID_BATTERY = 1, LIGHT_ID_NOTIFICATIONS = 2, LIGHT_ID_ATTENTION = 3, LIGHT_ID_BUTT = 4 }

-

枚举灯类型 更多...

-

LightFlashMode { LIGHT_FLASH_NONE = 0, LIGHT_FLASH_TIMED = 1, LIGHT_FLASH_BUTT = 2 }

-

枚举灯的模式 更多...

-
- -## 函数 - - - - - - - - - - - - - -

函数

-

描述

-

NewLightInterfaceInstance (void)

-

创建LightInterface实例。 更多...

-

FreeLightInterfaceInstance (void)

-

释放LightInterface实例和相关资源。 更多...

-
- -## **详细描述** - -灯模块对灯服务提供通用的接口能力。 - -灯模块为灯服务提供通用的接口去访问灯驱动。 服务获取灯驱动对象或代理后,可以调用相关的APIs接口获取灯信息、打开或关闭灯,并根据灯ID设置灯闪烁模式。 - -**Since:** - -3.1 - -## **枚举类型说明** - -## LightFlashMode - -``` -enum LightFlashMode -``` - -**描述:** - -枚举灯的模式 - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

LIGHT_FLASH_NONE

-

常亮。

-

-

LIGHT_FLASH_TIMED

-

闪烁。

-

-

LIGHT_FLASH_BUTT

-

无效模式。

-

-
- -## LightId - -``` -enum LightId -``` - -**描述:** - -枚举灯类型 - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

LIGHT_ID_NONE

-

未知ID。

-

-

LIGHT_ID_BATTERY

-

电源指示灯。

-

-

LIGHT_ID_NOTIFICATIONS

-

通知灯。

-

-

LIGHT_ID_ATTENTION

-

报警灯。

-

-

LIGHT_ID_BUTT

-

无效ID。

-

-
- -## LightStatus - -``` -enum LightStatus -``` - -**描述:** - -枚举灯模块的状态值。 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

LIGHT_SUCCESS

-

操作成功。

-

-

LIGHT_NOT_SUPPORT

-

灯ID不支持。

-

-

LIGHT_NOT_FLASH

-

设置闪烁不支持。

-

-

LIGHT_NOT_BRIGHTNESS

-

设置亮度不支持。

-

-
- -## **函数说明** - -## FreeLightInterfaceInstance\(\) - -``` -int32_t FreeLightInterfaceInstance (void ) -``` - -**描述:** - -释放LightInterface实例和相关资源。 - -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -**Since:** - -3.1 - -## NewLightInterfaceInstance\(\) - -``` -const struct LightInterface* NewLightInterfaceInstance (void ) -``` - -**描述:** - -创建LightInterface实例。 - -创建的LightInterface实例可用于执行相关的灯控制操作。 - -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -**Since:** - -3.1 - diff --git a/zh-cn/device-dev/api/toctopics/_light_effect.md b/zh-cn/device-dev/api/toctopics/_light_effect.md deleted file mode 100644 index 71ab2d12de..0000000000 --- a/zh-cn/device-dev/api/toctopics/_light_effect.md +++ /dev/null @@ -1,64 +0,0 @@ -# LightEffect - -## **概述** - -**所属模块:** - -[Light](_light.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

lightBrightness

-

亮度值。

-

flashEffect

-

闪烁模式。

-
- -## **详细描述** - -定义灯的效果参数。 - -参数包括亮度和闪烁模式。 - -**Since:** - -3.1 - -## **类成员变量说明** - -## flashEffect - -``` -struct LightFlashEffect LightEffect::flashEffect -``` - -**描述:** - -闪烁模式。详见[LightFlashEffect](_light_flash_effect.md)。 - -## lightBrightness - -``` -int32_t LightEffect::lightBrightness -``` - -**描述:** - -亮度值:Bits 24–31为扩展位,Bits 16–23为红色,bits 8–15为绿色,bits 0–7为蓝色。 如果字节段不等于0,指示打开相应颜色的灯。 - diff --git a/zh-cn/device-dev/api/toctopics/_light_flash_effect.md b/zh-cn/device-dev/api/toctopics/_light_flash_effect.md deleted file mode 100644 index 46a896534a..0000000000 --- a/zh-cn/device-dev/api/toctopics/_light_flash_effect.md +++ /dev/null @@ -1,79 +0,0 @@ -# LightFlashEffect - -## **概述** - -**所属模块:** - -[Light](_light.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

flashMode

-

闪烁模式。

-

onTime

-

表示灯在闪烁期间点亮时持续的时间(毫秒)。

-

offTime

-

表示灯在闪烁期间熄灭时持续的时间(毫秒)。

-
- -## **详细描述** - -定义闪烁参数。 - -这些参数包括闪烁模式以及闪烁期间指示灯的打开和关闭时间。 - -**Since:** - -3.1 - -## **类成员变量说明** - -## flashMode - -``` -int32_t LightFlashEffect::flashMode -``` - -**描述:** - -闪烁模式,详见[LightFlashMode](_light.md#gaacf9823c64514a279833614add26ab5d)。 - -## offTime - -``` -int32_t LightFlashEffect::offTime -``` - -**描述:** - -表示灯在闪烁期间熄灭时持续的时间(毫秒)。 - -## onTime - -``` -int32_t LightFlashEffect::onTime -``` - -**描述:** - -表示灯在闪烁期间点亮时持续的时间(毫秒)。 - diff --git a/zh-cn/device-dev/api/toctopics/_light_info.md b/zh-cn/device-dev/api/toctopics/_light_info.md deleted file mode 100644 index 96485ffa36..0000000000 --- a/zh-cn/device-dev/api/toctopics/_light_info.md +++ /dev/null @@ -1,64 +0,0 @@ -# LightInfo - -## **概述** - -**所属模块:** - -[Light](_light.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

lightId

-

灯ID

-

reserved

-

自定义扩展信息

-
- -## **详细描述** - -定义灯的基本信息。 - -基本的灯信息包括灯ID和自定义扩展信息。 - -**Since:** - -3.1 - -## **类成员变量说明** - -## lightId - -``` -uint32_t LightInfo::lightId -``` - -**描述:** - -灯ID,详见[LightId](_light.md#ga8af1cb654f32fb5377425257b28748e5)。 - -## reserved - -``` -int32_t LightInfo::reserved -``` - -**描述:** - -自定义扩展信息。 - diff --git a/zh-cn/device-dev/api/toctopics/_light_interface.md b/zh-cn/device-dev/api/toctopics/_light_interface.md deleted file mode 100644 index b3b1a92cbe..0000000000 --- a/zh-cn/device-dev/api/toctopics/_light_interface.md +++ /dev/null @@ -1,158 +0,0 @@ -# LightInterface - -## **概述** - -**所属模块:** - -[Light](_light.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

( GetLightInfo )([out] struct LightInfo **lightInfo, [out] uint32_t *count)

-

获取当前系统中所有类型的灯信息。 更多...

-

( TurnOnLight )([in] uint32_t lightId, [in] struct LightEffect *effect)

-

根据指定的灯ID打开列表中的可用灯。 更多...

-

( TurnOffLight )([in] uint32_t lightId)

-

根据指定的灯ID关闭列表中的可用灯。 更多...

-
- -## **详细描述** - -定义可以在灯上执行的基本操作。 - -操作包括获取灯的信息、打开或关闭灯、设置灯的亮度或闪烁模式。 - -## **类成员变量说明** - -## GetLightInfo - -``` -int32_t(* LightInterface::GetLightInfo) ([out] struct LightInfo **lightInfo,[out] uint32_t *count) -``` - -**描述:** - -获取当前系统中所有类型的灯信息。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

lightInfo

-

表示指向灯信息的二级指针,详见LightInfo

-

count

-

表示指向灯数量的指针。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## TurnOffLight - -``` -int32_t(* LightInterface::TurnOffLight) ([in] uint32_t lightId) -``` - -**描述:** - -根据指定的灯ID关闭列表中的可用灯。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

lightId

-

表示灯ID,详见LightId

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## TurnOnLight - -``` -int32_t(* LightInterface::TurnOnLight) ([in] uint32_t lightId,[in] struct LightEffect *effect) -``` - -**描述:** - -根据指定的灯ID打开列表中的可用灯。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

lightId

-

表示灯ID,详见LightId

-

effect

-

表示指向灯效果的指针,如果lightbrightness字段为0时, 灯的亮度根据HCS配置的默认亮度进行设置,详见LightEffect

-
- -**返回:** - -如果操作成功,则返回0。 - -如果不支持灯ID,则返回-1。 - -如果不支持闪烁设置,则返回-2。 - -如果不支持亮度设置,则返回3。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md deleted file mode 100644 index 093cdec385..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md +++ /dev/null @@ -1,36 +0,0 @@ -# OHOS::Camera::CaptureEndedInfo - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

streamId_

-

捕获的流ID。

-

frameCount_

-

捕获结束时已经抓取的帧数。

-
- -## **详细描述** - -捕获结束相关信息,用于捕获结束回调 **OnCaptureEnded**。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_error_info.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_error_info.md deleted file mode 100644 index d4df7b0059..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_error_info.md +++ /dev/null @@ -1,36 +0,0 @@ -# OHOS::Camera::CaptureErrorInfo - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

streamId_

-

流ID。

-

error_

-

错误类型。

-
- -## **详细描述** - -流错误信息,用于回调[OnCaptureError](_camera.md#gacea9a4cf4bdd5fab5499da06ecdf9b8f)。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_info.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_info.md deleted file mode 100644 index 3bef10d50d..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_capture_info.md +++ /dev/null @@ -1,41 +0,0 @@ -# OHOS::Camera::CaptureInfo - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

streamIds_

-

捕获的流ID集合。

-

captureSetting_

-

捕获的配置信息。

-

enableShutterCallback_

-

使能捕获回调,每一次捕获后都会触发 OnFrameShutter

-
- -## **详细描述** - -捕获请求的相关信息。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device.md deleted file mode 100644 index 54acfdfc62..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device.md +++ /dev/null @@ -1,66 +0,0 @@ -# OHOS::Camera::ICameraDevice - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 成员函数

-

描述

-

DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.Device")

-

IPC通信token校验。

-

GetStreamOperator (const OHOS::sptr< IStreamOperatorCallback > &callback, OHOS::sptr< IStreamOperator > &streamOperator)=0

-

获取流操作句柄。 更多...

-

UpdateSettings (const std::shared_ptr< CameraSetting > &settings)=0

-

更新设备控制参数。 更多...

-

SetResultMode (const ResultCallbackMode &mode)=0

-

设置metadata上报模式,逐帧上报还是设备状态变化时上报。 更多...

-

GetEnabledResults (std::vector< MetaType > &results)=0

-

查询使能的metadata。 更多...

-

EnableResult (const std::vector< MetaType > &results)=0

-

打开metadata上报开关。 更多...

-

DisableResult (const std::vector< MetaType > &results)=0

-

关闭metadata上报开关。 更多...

-

Close ()=0

-

关闭Camera设备。 更多...

-
- -## **详细描述** - -Camera设备操作。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md deleted file mode 100644 index bdc5cf1f61..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md +++ /dev/null @@ -1,41 +0,0 @@ -# OHOS::Camera::ICameraDeviceCallback - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - - - - - - - -

Public 成员函数

-

描述

-

DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.DeviceCallback")

-

IPC通信token校验。

-

OnError (ErrorType type, int32_t errorCode)=0

-

设备发生错误时调用,由调用者实现,用于返回错误信息给调用者。 更多...

-

OnResult (uint64_t timestamp, const std::shared_ptr< CameraMetadata > &result)=0

-

上报camera设备相关的metadata的回调,上报方式查看 SetResultMode更多...

-
- -## **详细描述** - -Camera设备操作回调。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host.md deleted file mode 100644 index 44aa52c315..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host.md +++ /dev/null @@ -1,73 +0,0 @@ -# OHOS::Camera::ICameraHost - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 成员函数

-

描述

-

DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.Host")

-

IPC通信token校验。

-

SetCallback (const OHOS::sptr< ICameraHostCallback > &callback)=0

-

设置ICameraHost回调接口,回调函数参考 ICameraHostCallback更多...

-

GetCameraIds (std::vector< std::string > &cameraIds)=0

-

获取当前可用的Camera设备ID列表。 更多...

-

GetCameraAbility (const std::string &cameraId, std::shared_ptr< CameraAbility > &ability)=0

-

获取Camera设备能力集合。 更多...

-

OpenCamera (const std::string &cameraId, const OHOS::sptr< ICameraDeviceCallback > &callback, OHOS::sptr< ICameraDevice > &device)=0

-

打开Camera设备。 更多...

-

SetFlashlight (const std::string &cameraId, bool &isEnable)=0

-

打开或关闭闪光灯。 更多...

-
- -## 静态 Public 成员函数 - - - - - - - - - - -

静态 Public 成员函数

-

描述

-

Get (const char *serviceName)

-

获取ICameraHost实例。 更多...

-
- -## **详细描述** - -Camera服务的管理类。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md deleted file mode 100644 index 883eda3f88..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md +++ /dev/null @@ -1,46 +0,0 @@ -# OHOS::Camera::ICameraHostCallback - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - - - - - - - - - - -

Public 成员函数

-

描述

-

DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.HostCallback")

-

IPC通信token校验。

-

OnCameraStatus (const std::string &cameraId, CameraStatus status)=0

-

用于Camera设备状态变化时上报状态信息给调用者。 更多...

-

OnFlashlightStatus (const std::string &cameraId, FlashlightStatus status)=0

-

用于在闪光灯状态变化时上报状态信息给调用者。 更多...

-

OnCameraEvent (const std::string &cameraId, CameraEvent event)=0

-

在相机事件发生时调用。 更多...

-
- -## **详细描述** - -Camera服务的管理回调。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md deleted file mode 100644 index 43f321256f..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md +++ /dev/null @@ -1,46 +0,0 @@ -# OHOS::Camera::IOfflineStreamOperator - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - - - - - - - - - - -

Public 成员函数

-

描述

-

DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.OfflineStreamOperator")

-

IPC通信token校验。

-

CancelCapture (int captureId)=0

-

取消捕获请求。 更多...

-

ReleaseStreams (const std::vector< int > &streamIds)=0

-

释放离线流。 更多...

-

Release ()=0

-

释放所有离线流。 更多...

-
- -## **详细描述** - -离线流的操作类。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md deleted file mode 100644 index 89e139d113..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md +++ /dev/null @@ -1,81 +0,0 @@ -# OHOS::Camera::IStreamOperator - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 成员函数

-

描述

-

DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.StreamOperator")

-

IPC通信token校验。

-

IsStreamsSupported (OperationMode mode, const std::shared_ptr< CameraMetadata > &modeSetting, const std::vector< std::shared_ptr< StreamInfo >> &info, StreamSupportType &type)=0

-

查询是否支持添加参数对应的流 更多...

-

CreateStreams (const std::vector< std::shared_ptr< StreamInfo >> &streamInfos)=0

-

创建流。 更多...

-

ReleaseStreams (const std::vector< int > &streamIds)=0

-

释放流。 更多...

-

CommitStreams (OperationMode mode, const std::shared_ptr< CameraMetadata > &modeSetting)=0

-

配置流。 更多...

-

GetStreamAttributes (std::vector< std::shared_ptr< StreamAttribute >> &attributes)=0

-

获取流的属性。 更多...

-

AttachBufferQueue (int streamId, const OHOS::sptr< OHOS::IBufferProducer > &producer)=0

-

绑定生产者句柄和指定流。 更多...

-

DetachBufferQueue (int streamId)=0

-

解除生产者句柄和指定流的绑定关系。 更多...

-

Capture (int captureId, const std::shared_ptr< CaptureInfo > &info, bool isStreaming)=0

-

捕获图像。 更多...

-

CancelCapture (int captureId)=0

-

取消捕获。 更多...

-

ChangeToOfflineStream (const std::vector< int > &streamIds, OHOS::sptr< IStreamOperatorCallback > &callback, OHOS::sptr< IOfflineStreamOperator > &offlineOperator)=0

-

将指定流转换成离线流。 更多...

-
- -## **详细描述** - -流的操作类。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md deleted file mode 100644 index 4575119dc4..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md +++ /dev/null @@ -1,51 +0,0 @@ -# OHOS::Camera::IStreamOperatorCallback - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - - - - - - - - - - - - - -

Public 成员函数

-

描述

-

DECLARE_INTERFACE_DESCRIPTOR (u"HDI.Camera.V1_0.StreamOperatorCallback")

-

IPC通信token校验。

-

OnCaptureStarted (int32_t captureId, const std::vector< int32_t > &streamIds)=0

-

捕获开始回调,在捕获开始时调用。 更多...

-

OnCaptureEnded (int32_t captureId, const std::vector< std::shared_ptr< CaptureEndedInfo >> &infos)=0

-

捕获结束回调,在捕获结束时调用。 更多...

-

OnCaptureError (int32_t captureId, const std::vector< std::shared_ptr< CaptureErrorInfo >> &infos)=0

-

捕获错误回调,在捕获过程中发生错误时调用。 更多...

-

OnFrameShutter (int32_t captureId, const std::vector< int32_t > &streamIds, uint64_t timestamp)=0

-

帧捕获回调。 更多...

-
- -## **详细描述** - -流的操作回调类。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_stream_attribute.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_stream_attribute.md deleted file mode 100644 index 4c97b65ee9..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_stream_attribute.md +++ /dev/null @@ -1,71 +0,0 @@ -# OHOS::Camera::StreamAttribute - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

streamId_

-

流的ID,用于在设备内唯一标识一条流。

-

width_

-

图像宽度。

-

height_

-

图像高度。

-

overrideFormat_

-

重写的图像格式。

-

overrideDatasapce_

-

重写的图像颜色空间

-

producerUsage_

-

重写后的生产者的使用方式。

-

producerBufferCount_

-

重写后的生产者缓存数量。

-

maxBatchCaptureCount_

-

连拍支持的最大捕获帧数量。

-

maxCaptureCount_

-

最大的并发捕获请求个数,默认为1。

-
- -## **详细描述** - -流的属性。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_stream_info.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_stream_info.md deleted file mode 100644 index e1efbf768f..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_camera_1_1_stream_info.md +++ /dev/null @@ -1,76 +0,0 @@ -# OHOS::Camera::StreamInfo - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

streamId_

-

流的ID,用于在设备内唯一标识一条流。

-

width_

-

图像宽度。

-

height_

-

图像高度。

-

format_

-

图像格式。

-

datasapce_

-

图像颜色空间。

-

intent_

-

流类型。

-

tunneledMode_

-

隧道模式,值为true时开启,false关闭。

-

bufferQueue_

-

图形提供的生产者句柄。

-

minFrameDuration_

-

最小帧间隔。

-

encodeType_

-

编码类型。

-
- -## **详细描述** - -流信息,用于创建流时传入相关的配置参数。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md deleted file mode 100644 index 5fbb825694..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md +++ /dev/null @@ -1,41 +0,0 @@ -# OHOS::USB::USBDeviceInfo - -## **概述** - -**所属模块:** - -[USB](_u_s_b.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

status

-

USB设备状态

-

busNum

-

USB总线编号

-

devNum

-

USB设备编号

-
- -## **详细描述** - -USB设备信息。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md deleted file mode 100644 index 3e6f39ec77..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md +++ /dev/null @@ -1,51 +0,0 @@ -# OHOS::USB::UsbCtrlTransfer - -## **概述** - -**所属模块:** - -[USB](_u_s_b.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

requestType

-

请求类型

-

requestCmd

-

请求命令字

-

value

-

请求值

-

index

-

索引

-

timeout

-

超时时间

-
- -## **详细描述** - -USB控制传输。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md deleted file mode 100644 index 52cb4df3ca..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md +++ /dev/null @@ -1,36 +0,0 @@ -# OHOS::USB::UsbDev - -## **概述** - -**所属模块:** - -[USB](_u_s_b.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

busNum

-

USB总线编号

-

devAddr

-

USB设备地址

-
- -## **详细描述** - -USB设备。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md deleted file mode 100644 index c7650dc48e..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md +++ /dev/null @@ -1,56 +0,0 @@ -# OHOS::USB::UsbInfo - -## **概述** - -**所属模块:** - -[USB](_u_s_b.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 成员函数

-

描述

-

setDevInfoStatus (int32_t status)

-

设置USB设备状态。 更多...

-

setDevInfoBusNum (int32_t busNum)

-

设置USB总线编号。 更多...

-

setDevInfoDevNum (int32_t devNum)

-

设置USB设备编号。 更多...

-

getDevInfoStatus () const

-

获取USB设备状态。 更多...

-

getDevInfoBusNum () const

-

获取USB总线编号。 更多...

-

getDevInfoDevNum () const

-

获取USB设备编号。 更多...

-
- -## **详细描述** - -USB设备信息类。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md deleted file mode 100644 index 71e16bbbc3..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md +++ /dev/null @@ -1,36 +0,0 @@ -# OHOS::USB::UsbPipe - -## **概述** - -**所属模块:** - -[USB](_u_s_b.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

interfaceId

-

USB设备接口ID

-

endpointId

-

USB设备端点ID

-
- -## **详细描述** - -管道信息。 - diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md deleted file mode 100644 index d1561216a0..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md +++ /dev/null @@ -1,204 +0,0 @@ -# OHOS::USB::UsbdClient - -## **概述** - -**所属模块:** - -[USB](_u_s_b.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 成员函数

-

描述

-

OpenDevice (const UsbDev &dev)

-

打开设备,建立连接。 更多...

-

CloseDevice (const UsbDev &dev)

-

关闭设备,释放与设备相关的所有系统资源。 更多...

-

GetDeviceDescriptor (const UsbDev &dev, std::vector< uint8_t > &descriptor)

-

获取设备描述符。 更多...

-

GetStringDescriptor (const UsbDev &dev, uint8_t descId, std::vector< uint8_t > &descriptor)

-

根据String ID获取设备的字符串描述符。 更多...

-

GetConfigDescriptor (const UsbDev &dev, uint8_t descId, std::vector< uint8_t > &descriptor)

-

根据config ID获取设备的配置描述符config。 更多...

-

GetRawDescriptor (const UsbDev &dev, std::vector< uint8_t > &descriptor)

-

获取原始描述符。 更多...

-

GetFileDescriptor (const UsbDev &dev, int32_t &fd)

-

获取文件描述符。 更多...

-

SetConfig (const UsbDev &dev, uint8_t configIndex)

-

设置当前的config信息。 更多...

-

GetConfig (const UsbDev &dev, uint8_t &configIndex)

-

获取当前的config信息。 更多...

-

ClaimInterface (const UsbDev &dev, uint8_t interfaceid, uint8_t force)

-

打开接口,并声明独占接口,必须在数据传输前执行。 更多...

-

ReleaseInterface (const UsbDev &dev, uint8_t interfaceid)

-

关闭接口,释放接口的占用,在停止数据传输后执行。 更多...

-

SetInterface (const UsbDev &dev, uint8_t interfaceid, uint8_t altIndex)

-

设置指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。 更多...

-

BulkTransferRead (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

-

在给定端点上执行批量数据读取,返回读取的数据和长度,端点方向必须为数据读取,可以设置超时时间。 更多...

-

BulkTransferWrite (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, const std::vector< uint8_t > &data)

-

在给定端点上执行批量数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 更多...

-

ControlTransfer (const UsbDev &dev, const UsbCtrlTransfer &ctrl, std::vector< uint8_t > &data)

-

对此设备执行端点零的控制事务,传输方向由请求类型决定。 如果requestType& USB_ENDPOINT_DIR_MASK是USB_DIR_OUT ,则传输是写入,如果是USB_DIR_IN ,则传输是读取。 更多...

-

InterruptTransferRead (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

-

在给定端点上执行中断数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 更多...

-

InterruptTransferWrite (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

-

在给定端点上执行中断数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 更多...

-

IsoTransferRead (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

-

在给定端点上执行等时数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 更多...

-

IsoTransferWrite (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

-

在给定端点上执行等时数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 更多...

-

RequestQueue (const UsbDev &dev, const UsbPipe &pipe, const std::vector< uint8_t > &clientData, const std::vector< uint8_t > &buffer)

-

将指定的端点进行异步数据发送或者接收请求,数据传输方向由端点方向决定。 更多...

-

RequestWait (const UsbDev &dev, std::vector< uint8_t > &clientData, std::vector< uint8_t > &buffer, int32_t timeout)

-

等待RequestQueue异步请求的操作结果。 更多...

-

RequestCancel (const UsbDev &dev, const UsbPipe &pipe)

-

取消待处理的数据请求。 更多...

-

GetCurrentFunctions (int32_t &funcs)

-

获取从设备支持的功能列表(按位域表示)(从设备)。 更多...

-

SetCurrentFunctions (int32_t funcs)

-

设置从设备支持的功能列表(按位域表示)(从设备)。 更多...

-

SetPortRole (int32_t portId, int32_t powerRole, int32_t dataRole)

-

设置port端口的角色。 更多...

-

QueryPort (int32_t &portId, int32_t &powerRole, int32_t &dataRole, int32_t &mode)

-

查询port端口的当前设置。 更多...

-

BindUsbdSubscriber (const sptr< UsbdSubscriber > &subscriber)

-

绑定订阅者。 更多...

-

UnbindUsbdSubscriber (const sptr< UsbdSubscriber > &subscriber)

-

解绑订阅者。 更多...

-

RegBulkCallback (const UsbDev &dev, const UsbPipe &pipe, const sptr< IRemoteObject > &cb)

-

注册批量传输异步回调函数。 更多...

-

UnRegBulkCallback (const UsbDev &dev, const UsbPipe &pipe)

-

注销批量传输异步回调函数。 更多...

-

BulkRead (const UsbDev &dev, const UsbPipe &pipe, sptr< Ashmem > &ashmem)

-

批量传输异步读数据。 更多...

-

BulkWrite (const UsbDev &dev, const UsbPipe &pipe, sptr< Ashmem > &ashmem)

-

批量传输异步写数据。 更多...

-

BulkCancel (const UsbDev &dev, const UsbPipe &pipe)

-

批量传输异步取消接口,用于取消当前接口的异步批量读写操作。 更多...

-
- -## 静态 Public 成员函数 - - - - - - - - - - -

静态 Public 成员函数

-

描述

-

GetInstance ()

-

获取实例。

-
- diff --git a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md b/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md deleted file mode 100644 index 11c9469311..0000000000 --- a/zh-cn/device-dev/api/toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md +++ /dev/null @@ -1,37 +0,0 @@ -# OHOS::USB::UsbdSubscriber - -## **概述** - -**所属模块:** - -[USB](_u_s_b.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - - - - - - - -

Public 成员函数

-

描述

-

DeviceEvent (const UsbInfo &info)=0

-

设备事件。 更多...

-

PortChangedEvent (int32_t portId, int32_t powerRole, int32_t dataRole, int32_t mode)=0

-

端口改变事件。 更多...

-

OnRemoteRequest (uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override

-

远程请求。 更多...

-
- diff --git a/zh-cn/device-dev/api/toctopics/_omx_codec_buffer.md b/zh-cn/device-dev/api/toctopics/_omx_codec_buffer.md deleted file mode 100644 index 74de5cba09..0000000000 --- a/zh-cn/device-dev/api/toctopics/_omx_codec_buffer.md +++ /dev/null @@ -1,223 +0,0 @@ -# OmxCodecBuffer - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

bufferId

-

buffer的ID。

-

size

-

结构体大小。

-

version

-

组件版本信息。

-

bufferType

-

buffer类型。

-

buffer

-

编码或者解码使用的buffer。

-

bufferLen

-

buffer大小。

-

allocLen

-

申请的buffer大小。

-

filledLen

-

填充的buffer大小。

-

offset

-

有效数据从缓冲区开始的起始偏移量。

-

fenceFd

-

该描述符来自buffer消费者,Codec等待成功后才可以使用输入或者输出buffer。

-

type

-

共享内存类型。

-

pts

-

时间戳。

-

flag

-

标志。

-
- -## **详细描述** - -Codec buffer信息的定义。 - -## **类成员变量说明** - -## allocLen - -``` -uint32_t OmxCodecBuffer::allocLen -``` - -**描述:** - -申请的buffer大小 - -## buffer - -``` -uint8_t* OmxCodecBuffer::buffer -``` - -**描述:** - -编码或者解码使用的buffer - -## bufferId - -``` -uint32_t OmxCodecBuffer::bufferId -``` - -**描述:** - -buffer ID - -## bufferLen - -``` -uint32_t OmxCodecBuffer::bufferLen -``` - -**描述:** - -buffer大小 - -## bufferType - -``` -enum CodecBufferType OmxCodecBuffer::bufferType -``` - -**描述:** - -buffer类型 - -## fenceFd - -``` -int32_t OmxCodecBuffer::fenceFd -``` - -**描述:** - -该描述符来自buffer消费者,Codec等待成功后才可以使用输入或者输出buffer - -## filledLen - -``` -uint32_t OmxCodecBuffer::filledLen -``` - -**描述:** - -填充的buffer大小 - -## flag - -``` -uint32_t OmxCodecBuffer::flag -``` - -**描述:** - -标志 - -## offset - -``` -uint32_t OmxCodecBuffer::offset -``` - -**描述:** - -有效数据从缓冲区开始的起始偏移量 - -## pts - -``` -int64_t OmxCodecBuffer::pts -``` - -**描述:** - -时间戳 - -## size - -``` -uint32_t OmxCodecBuffer::size -``` - -**描述:** - -结构体大小 - -## type - -``` -enum ShareMemTypes OmxCodecBuffer::type -``` - -**描述:** - -共享内存类型 - -## version - -``` -union OMX_VERSIONTYPE OmxCodecBuffer::version -``` - -**描述:** - -组件版本信息 - diff --git a/zh-cn/device-dev/api/toctopics/_power_types_8idl.md b/zh-cn/device-dev/api/toctopics/_power_types_8idl.md deleted file mode 100644 index 5f24f11d25..0000000000 --- a/zh-cn/device-dev/api/toctopics/_power_types_8idl.md +++ /dev/null @@ -1,68 +0,0 @@ -# PowerTypes.idl - -## **概述** - -**所属模块:** - -[Power](power.md) - -## **汇总** - -## 枚举 - - - - - - - - - - - - - - - - -

枚举

-

描述

-

PowerHdfCmd { CMD_REGISTER_CALLBCK = 0, CMD_START_SUSPEND, CMD_STOP_SUSPEND, CMD_FORCE_SUSPEND, CMD_SUSPEND_BLOCK, CMD_SUSPEND_UNBLOCK, CMD_DUMP }

-

枚举电源命令的参数。 更多...

-

PowerHdfCallbackCmd { CMD_ON_SUSPEND = 0, CMD_ON_WAKEUP }

-

枚举电源状态回调的参数。 更多...

-

PowerHdfState { AWAKE = 0, INACTIVE, SLEEP }

-

枚举电源的状态。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.power.v1_0

-

电源管理接口的包路径

-
- -## **详细描述** - -电源相关的数据类型。 - -电源管理中使用的数据类型,包括命令参数、回调参数和系统状态。 - -**Since:** - -3.1 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/_present_timestamp.md b/zh-cn/device-dev/api/toctopics/_present_timestamp.md deleted file mode 100644 index da14db4fd9..0000000000 --- a/zh-cn/device-dev/api/toctopics/_present_timestamp.md +++ /dev/null @@ -1,36 +0,0 @@ -# PresentTimestamp - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

type

-

上屏时间戳类型

-

time

-

类型对应的值

-
- -## **详细描述** - -上屏时间戳结构体定义。 - diff --git a/zh-cn/device-dev/api/toctopics/_property_object.md b/zh-cn/device-dev/api/toctopics/_property_object.md deleted file mode 100644 index 8002991443..0000000000 --- a/zh-cn/device-dev/api/toctopics/_property_object.md +++ /dev/null @@ -1,41 +0,0 @@ -# PropertyObject - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

name [PROPERTY_NAME_LEN]

-

属性名称

-

propId

-

属性ID

-

value

-

属性值

-
- -## **详细描述** - -定义包含名称、属性ID和值的属性对象。 - diff --git a/zh-cn/device-dev/api/toctopics/_range_value.md b/zh-cn/device-dev/api/toctopics/_range_value.md deleted file mode 100644 index 64e6c5c96a..0000000000 --- a/zh-cn/device-dev/api/toctopics/_range_value.md +++ /dev/null @@ -1,58 +0,0 @@ -# RangeValue - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

min

-

最小值

-

max

-

最大值

-
- -## **详细描述** - -取值范围的定义。 - -## **类成员变量说明** - -## max - -``` -int32_t RangeValue::max -``` - -**描述:** - -最大值 - -## min - -``` -int32_t RangeValue::min -``` - -**描述:** - -最小值 - diff --git a/zh-cn/device-dev/api/toctopics/_rect.md b/zh-cn/device-dev/api/toctopics/_rect.md deleted file mode 100644 index 66ad4baa6c..0000000000 --- a/zh-cn/device-dev/api/toctopics/_rect.md +++ /dev/null @@ -1,58 +0,0 @@ -# Rect - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

width

-

矩形的宽

-

height

-

矩形的高

-
- -## **详细描述** - -矩形的定义。 - -## **类成员变量说明** - -## height - -``` -int32_t Rect::height -``` - -**描述:** - -矩形的高 - -## width - -``` -int32_t Rect::width -``` - -**描述:** - -矩形的宽 - diff --git a/zh-cn/device-dev/api/toctopics/_rectangle.md b/zh-cn/device-dev/api/toctopics/_rectangle.md deleted file mode 100644 index 5acf5fb4f5..0000000000 --- a/zh-cn/device-dev/api/toctopics/_rectangle.md +++ /dev/null @@ -1,36 +0,0 @@ -# Rectangle - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

rect

-

矩形区域

-

color

-

矩形颜色

-
- -## **详细描述** - -矩形描述结构体定义,用于硬件加速绘制矩形。 - diff --git a/zh-cn/device-dev/api/toctopics/_schedule_info.md b/zh-cn/device-dev/api/toctopics/_schedule_info.md deleted file mode 100644 index da045bb232..0000000000 --- a/zh-cn/device-dev/api/toctopics/_schedule_info.md +++ /dev/null @@ -1,126 +0,0 @@ -# ScheduleInfo - -## **概述** - -**所属模块:** - -[HdfUserAuth](_hdf_user_auth.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

scheduleId

-

调度ID,用于标识一次操作请求的执行器调度过程。

-

templateIds

-

模版ID列表。

-

authType

-

用户认证凭据类型。

-

executorType

-

执行器类型。

-

scheduleMode

-

调度模式,支持注册、认证和识别模式。

-

executors

-

执行器信息列表。

-
- -## **详细描述** - -调度信息。 - -**Since:** - -3.2 - -**Version:** - -1.0 - -## **类成员变量说明** - -## authType - -``` -enum AuthType ScheduleInfo::authType -``` - -**描述:** - -用户认证凭据类型。 - -## executors - -``` -struct ExecutorInfo [] ScheduleInfo::executors -``` - -**描述:** - -执行器信息列表。 - -## executorType - -``` -unsigned int ScheduleInfo::executorType -``` - -**描述:** - -执行器类型。 - -## scheduleId - -``` -unsigned long ScheduleInfo::scheduleId -``` - -**描述:** - -调度ID,用于标识一次操作请求的执行器调度过程。 - -## scheduleMode - -``` -unsigned int ScheduleInfo::scheduleMode -``` - -**描述:** - -调度模式,支持注册、认证和识别模式。 - -## templateIds - -``` -unsigned long [] ScheduleInfo::templateIds -``` - -**描述:** - -模版id列表。 - diff --git a/zh-cn/device-dev/api/toctopics/_sensor.md b/zh-cn/device-dev/api/toctopics/_sensor.md deleted file mode 100644 index ed90db12ca..0000000000 --- a/zh-cn/device-dev/api/toctopics/_sensor.md +++ /dev/null @@ -1,742 +0,0 @@ -# Sensor - -## **汇总** - -## 文件 - - - - - - - - - - - - - -

文件

-

描述

-

sensor_if.h

-

Sensor模块对外通用的接口声明文件,提供获取传感器设备信息、订阅/去订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度,量程等可选配置接口定义。

-

sensor_type.h

-

定义传感器模块所使用的传感器类型,传感器信息,传感器数据结构等数据类型。

-
- -## 类 - - - - - - - - - - - - - - - - -

-

描述

-

SensorInterface

-

提供sensor设备基本控制操作接口。 更多...

-

SensorInformation

-

定义传感器基本信息。 更多...

-

SensorEvents

-

上报传感器数据结构。 更多...

-
- -## 宏定义 - - - - - - - - - - - - - -

宏定义

-

描述

-

SENSOR_NAME_MAX_LEN 32

-

Sensor名称的最大长度。

-

SENSOR_VERSION_MAX_LEN 16

-

Sensor版本号的最大长度。

-
- -## 类型定义 - - - - - - - - - - -

类型定义

-

描述

-

(RecordDataCallback) (const struct SensorEvents *)

-

传感器上报数据回调函数的定义,传感器服务用户在订阅传感器时, 需要注册上报数据回调函数,传感器使能后,传感器服务用户可以接受到传感器数据,详见SensorInterface更多...

-
- -## 枚举 - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举

-

描述

-

SensorStatus { SENSOR_SUCCESS = 0, SENSOR_FAILURE = -1, SENSOR_NOT_SUPPORT = -2, SENSOR_INVALID_PARAM = -3, SENSOR_INVALID_SERVICE = -4, SENSOR_NULL_PTR = -5 }

-

定义传感器模块返回值类型。 更多...

-

SensorTypeTag { SENSOR_TYPE_NONE = 0, SENSOR_TYPE_ACCELEROMETER = 1, SENSOR_TYPE_GYROSCOPE = 2, SENSOR_TYPE_PHOTOPLETHYSMOGRAPH = 3, SENSOR_TYPE_ELECTROCARDIOGRAPH = 4, SENSOR_TYPE_AMBIENT_LIGHT = 5, SENSOR_TYPE_MAGNETIC_FIELD = 6, SENSOR_TYPE_CAPACITIVE = 7, SENSOR_TYPE_BAROMETER = 8, SENSOR_TYPE_TEMPERATURE = 9, SENSOR_TYPE_HALL = 10, SENSOR_TYPE_GESTURE = 11, SENSOR_TYPE_PROXIMITY = 12, SENSOR_TYPE_HUMIDITY = 13, SENSOR_TYPE_MEDICAL_BEGIN = 128, SENSOR_TYPE_MEDICAL_END = 160, SENSOR_TYPE_PHYSICAL_MAX = 255, SENSOR_TYPE_ORIENTATION = 256, SENSOR_TYPE_GRAVITY = 257, SENSOR_TYPE_LINEAR_ACCELERATION = 258, SENSOR_TYPE_ROTATION_VECTOR = 259, SENSOR_TYPE_AMBIENT_TEMPERATURE = 260, SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED = 261, SENSOR_TYPE_GAME_ROTATION_VECTOR = 262, SENSOR_TYPE_GYROSCOPE_UNCALIBRATED = 263, SENSOR_TYPE_SIGNIFICANT_MOTION = 264, SENSOR_TYPE_PEDOMETER_DETECTION = 265, SENSOR_TYPE_PEDOMETER = 266, SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR = 277, SENSOR_TYPE_HEART_RATE = 278, SENSOR_TYPE_DEVICE_ORIENTATION = 279, SENSOR_TYPE_WEAR_DETECTION = 280, SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED = 281, SENSOR_TYPE_MAX }

-

定义传感器类型标识。 更多...

-

SensorAccuracyType { SENSOR_NO_ACCURACY = 0, SENSOR_LOW_ACCURACY = 1, SENSOR_MEDIUM_ACCURACY = 2, SENSOR_HIGH_ACCURACY = 3, SENSOR_MAX_ACCURACY }

-

传感器的精度类型。 更多...

-

SensorRangeType { SENSOR_RANGE_LEVEL1 = 0, SENSOR_RANGE_LEVEL2 = 1, SENSOR_RANGE_LEVEL3 = 2, SENSOR_RANGE_LEVEL_MAX }

-

传感器的量程级别。 更多...

-

SensorModeType { SENSOR_MODE_DEFAULT = 0, SENSOR_MODE_REALTIME = 1, SENSOR_MODE_ON_CHANGE = 2, SENSOR_MODE_ONE_SHOT = 3, SENSOR_MODE_FIFO_MODE = 4, SENSOR_MODE_MAX }

-

传感器的工作模式。 更多...

-

SensorGroupType { TRADITIONAL_SENSOR_TYPE = 0, MEDICAL_SENSOR_TYPE = 1, SENSOR_GROUP_TYPE_MAX }

-

枚举传感器的硬件服务组。 更多...

-
- -## 函数 - - - - - - - - - - - - - -

函数

-

描述

-

NewSensorInterfaceInstance (void)

-

创建传感器接口实例。 更多...

-

FreeSensorInterfaceInstance (void)

-

释放传感器接口实例。 更多...

-
- -## **详细描述** - -传感器设备驱动对传感器服务提供通用的接口能力。 - -模块提供传感器服务对传感器驱动访问统一接口,服务获取驱动对象或者代理后, 通过其提供的各类方法,以传感器id区分访问不同类型传感器设备,实现获取传感器设备信息、订阅/去订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度、量程等可选配置等。 - -**Since:** - -2.2 - -**Version:** - -1.0 - -## **宏定义说明** - -## SENSOR\_NAME\_MAX\_LEN - -``` -#define SENSOR_NAME_MAX_LEN 32 -``` - -**描述:** - -Sensor名称的最大长度。 - -## SENSOR\_VERSION\_MAX\_LEN - -``` -#define SENSOR_VERSION_MAX_LEN 16 -``` - -**描述:** - -Sensor版本号的最大长度。 - -## **类型定义说明** - -## RecordDataCallback - -``` -typedef int32_t(* RecordDataCallback) (const struct SensorEvents *) -``` - -**描述:** - -传感器上报数据回调函数的定义,传感器服务用户在订阅传感器时, 需要注册上报数据回调函数,传感器使能后,传感器服务用户可以接受到传感器数据,详见[SensorInterface](_sensor_interface.md)。 - -## **枚举类型说明** - -## SensorAccuracyType - -``` -enum SensorAccuracyType -``` - -**描述:** - -传感器的精度类型。 - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

SENSOR_NO_ACCURACY

-

无精度类型。

-

SENSOR_LOW_ACCURACY

-

低精度类型。

-

-

SENSOR_MEDIUM_ACCURACY

-

中等精度类型。

-

-

SENSOR_HIGH_ACCURACY

-

高精度类型。

-

-

SENSOR_MAX_ACCURACY

-

最大精度类型。

-

-
- -## SensorGroupType - -``` -enum SensorGroupType -``` - -**描述:** - -枚举传感器的硬件服务组。 - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

TRADITIONAL_SENSOR_TYPE

-

传统传感器类型,传感器ID枚举值范围为128-160。

-

-

MEDICAL_SENSOR_TYPE

-

医疗传感器类型,传感器ID枚举值范围不在128-160之间。

-

-

SENSOR_GROUP_TYPE_MAX

-

最大传感器类型。

-

-
- -## SensorModeType - -``` -enum SensorModeType -``` - -**描述:** - -传感器的工作模式。 - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

SENSOR_MODE_DEFAULT

-

传感器默认工作模式状态。

-

-

SENSOR_MODE_REALTIME

-

传感器实时工作模式状态,一组数据上报一次。

-

SENSOR_MODE_ON_CHANGE

-

传感器实时工作模式状态,状态变更上报一次。

-

-

SENSOR_MODE_ONE_SHOT

-

传感器实时工作模式状态,只上报一次。

-

-

SENSOR_MODE_FIFO_MODE

-

传感器缓存工作模式状态,根据配置的缓存大小上报。

-

-

SENSOR_MODE_MAX

-

传感器最大类型标识。

-

-
- -## SensorRangeType - -``` -enum SensorRangeType -``` - -**描述:** - -传感器的量程级别。 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

SENSOR_RANGE_LEVEL1

-

量程级别1。

-

SENSOR_RANGE_LEVEL2

-

量程级别2。

-

-

SENSOR_RANGE_LEVEL3

-

量程级别3。

-

-

SENSOR_RANGE_LEVEL_MAX

-

量程最大级别。

-

-
- -## SensorStatus - -``` -enum SensorStatus -``` - -**描述:** - -定义传感器模块返回值类型。 - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

SENSOR_SUCCESS

-

传感器执行成功。

-

-

SENSOR_FAILURE

-

传感器执行失败。

-

-

SENSOR_NOT_SUPPORT

-

传感器不支持。

-

-

SENSOR_INVALID_PARAM

-

传感器无效参数。

-

-

SENSOR_INVALID_SERVICE

-

传感器无效服务。

-

-

SENSOR_NULL_PTR

-

传感器空指针。

-

-
- -## SensorTypeTag - -``` -enum SensorTypeTag -``` - -**描述:** - -定义传感器类型标识。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

SENSOR_TYPE_NONE

-

空传感器类型,用于测试。

-

-

SENSOR_TYPE_ACCELEROMETER

-

加速度传感器。

-

SENSOR_TYPE_GYROSCOPE

-

陀螺仪传感器。

-

-

SENSOR_TYPE_PHOTOPLETHYSMOGRAPH

-

心率传感器。

-

-

SENSOR_TYPE_ELECTROCARDIOGRAPH

-

心电传感器。

-

-

SENSOR_TYPE_AMBIENT_LIGHT

-

环境光传感器。

-

-

SENSOR_TYPE_MAGNETIC_FIELD

-

地磁传感器。

-

-

SENSOR_TYPE_CAPACITIVE

-

电容传感器。

-

-

SENSOR_TYPE_BAROMETER

-

气压计传感器。

-

-

SENSOR_TYPE_TEMPERATURE

-

温度传感器。

-

-

SENSOR_TYPE_HALL

-

霍尔传感器。

-

-

SENSOR_TYPE_GESTURE

-

手势传感器。

-

-

SENSOR_TYPE_PROXIMITY

-

接近光传感器。

-

-

SENSOR_TYPE_HUMIDITY

-

湿度传感器。

-

-

SENSOR_TYPE_MEDICAL_BEGIN

-

医疗传感器ID枚举值范围的开始。

-

-

SENSOR_TYPE_MEDICAL_END

-

医疗传感器ID枚举值范围的结束。

-

-

SENSOR_TYPE_PHYSICAL_MAX

-

物理传感器最大类型。

-

-

SENSOR_TYPE_ORIENTATION

-

方向传感器。

-

-

SENSOR_TYPE_GRAVITY

-

重力传感器。

-

-

SENSOR_TYPE_LINEAR_ACCELERATION

-

线性加速度传感器。

-

-

SENSOR_TYPE_ROTATION_VECTOR

-

旋转矢量传感器。

-

-

SENSOR_TYPE_AMBIENT_TEMPERATURE

-

环境温度传感器

-

-

SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED

-

未校准磁场传感器。

-

-

SENSOR_TYPE_GAME_ROTATION_VECTOR

-

游戏旋转矢量传感器。

-

-

SENSOR_TYPE_GYROSCOPE_UNCALIBRATED

-

未校准陀螺仪传感器。

-

-

SENSOR_TYPE_SIGNIFICANT_MOTION

-

大幅度动作传感器。

-

-

SENSOR_TYPE_PEDOMETER_DETECTION

-

计步器检测传感器。

-

-

SENSOR_TYPE_PEDOMETER

-

计步器传感器。

-

-

SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR

-

地磁旋转矢量传感器。

-

-

SENSOR_TYPE_HEART_RATE

-

心率传感器。

-

-

SENSOR_TYPE_DEVICE_ORIENTATION

-

设备方向传感器。

-

-

SENSOR_TYPE_WEAR_DETECTION

-

佩戴检测传感器。

-

-

SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED

-

未校准加速度传感器。

-

-

SENSOR_TYPE_MAX

-

传感器类型最大个数。

-

-
- -## **函数说明** - -## FreeSensorInterfaceInstance\(\) - -``` -int32_t FreeSensorInterfaceInstance (void ) -``` - -**描述:** - -释放传感器接口实例。 - -**返回:** - -如果释放实例成功,则返回0。 - -如果释放实例失败,则返回负值。 - -**Since:** - -2.2 - -**Version:** - -1.0 - -## NewSensorInterfaceInstance\(\) - -``` -const struct SensorInterface* NewSensorInterfaceInstance (void ) -``` - -**描述:** - -创建传感器接口实例。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

sensorId

-

表示传感器ID。有关详细信息,详见SensorTypeTag

-

cb

-

表示要注册的回调函数。有关详细信息,详见RecordDataCallback

-
- -**返回:** - -如果创建实例成功,则返回非零值。 - -如果创建实例失败,则返回负值。 - -**Since:** - -2.2 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/_sensor_events.md b/zh-cn/device-dev/api/toctopics/_sensor_events.md deleted file mode 100644 index 483d07125e..0000000000 --- a/zh-cn/device-dev/api/toctopics/_sensor_events.md +++ /dev/null @@ -1,139 +0,0 @@ -# SensorEvents - -## **概述** - -**所属模块:** - -[Sensor](_sensor.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

sensorId

-

传感器的标识号。

-

version

-

传感器算法版本号。

-

timestamp

-

传感器数据生成时间。

-

option

-

传感器量程精度可选配置。

-

mode

-

传感器工作模式。

-

data

-

传感器数据地址。

-

dataLen

-

传感器数据长度。

-
- -## **详细描述** - -上报传感器数据结构。 - -上报传感器设备数据事件信息包括传感器的标识号、传感器算法版本号、传感器数据生成时间、传感器量程精度可选配置、传感器工作模式、传感器数据地址、传感器数据长度。 - -**Since:** - -2.2 - -## **类成员变量说明** - -## data - -``` -uint8_t* SensorEvents::data -``` - -**描述:** - -传感器数据地址。 - -## mode - -``` -int32_t SensorEvents::mode -``` - -**描述:** - -传感器工作模式。 - -## option - -``` -uint32_t SensorEvents::option -``` - -**描述:** - -传感器量程精度可选配置。 - -## sensorId - -``` -int32_t SensorEvents::sensorId -``` - -**描述:** - -传感器的标识号。 - -## timestamp - -``` -int64_t SensorEvents::timestamp -``` - -**描述:** - -传感器数据生成时间。 - -## version - -``` -int32_t SensorEvents::version -``` - -**描述:** - -传感器算法版本号。 - -## dataLen - -``` -int32_t SensorEvents::dataLen -``` - -**描述:** - -传感器算法版本号。 - diff --git a/zh-cn/device-dev/api/toctopics/_sensor_information.md b/zh-cn/device-dev/api/toctopics/_sensor_information.md deleted file mode 100644 index ca4f7f7412..0000000000 --- a/zh-cn/device-dev/api/toctopics/_sensor_information.md +++ /dev/null @@ -1,170 +0,0 @@ -# SensorInformation - -## **概述** - -**所属模块:** - -[Sensor](_sensor.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

sensorName [SENSOR_NAME_MAX_LEN]

-

传感器名称。

-

vendorName [SENSOR_NAME_MAX_LEN]

-

传感器设备厂商。

-

firmwareVersion [SENSOR_VERSION_MAX_LEN]

-

传感器固件版本号。

-

hardwareVersion

-

[SENSOR_VERSION_MAX_LEN]

-

传感器硬件版本号。

-

sensorTypeId

-

传感器类型编号,

-

sensorId

-

传感器的标识号,有传感器驱动开发者定义。

-

maxRange

-

传感器的最大量程。

-

accuracy

-

传感器的精度。

-

power

-

传感器的功耗。

-
- -## **详细描述** - -定义传感器基本信息。 - -一个传感器设备信息包括传感器名字、设备厂商、固件版本号、硬件版本号、传感器类型编号、传感器标识、最大量程、精度、功耗。 - -**Since:** - -2.2 - -## **类成员变量说明** - -## accuracy - -``` -float SensorInformation::accuracy -``` - -**描述:** - -传感器的精度。 - -## firmwareVersion - -``` -char SensorInformation::firmwareVersion[SENSOR_VERSION_MAX_LEN] -``` - -**描述:** - -传感器固件版本号。 - -## hardwareVersion - -``` -char SensorInformation::hardwareVersion[SENSOR_VERSION_MAX_LEN] -``` - -**描述:** - -传感器硬件版本号。 - -## maxRange - -``` -float SensorInformation::maxRange -``` - -**描述:** - -传感器的最大量程。 - -## sensorId - -``` -int32_t SensorInformation::sensorId -``` - -**描述:** - -传感器的标识号,有传感器驱动开发者定义。 - -## sensorName - -``` -char SensorInformation::sensorName[SENSOR_NAME_MAX_LEN] -``` - -**描述:** - -传感器名称。 - -## sensorTypeId - -``` -int32_t SensorInformation::sensorTypeId -``` - -**描述:** - -传感器类型编号,唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#gaea6a2a57db175118e08189b73f8f3da5)。 - -## vendorName - -``` -char SensorInformation::vendorName[SENSOR_NAME_MAX_LEN] -``` - -**描述:** - -传感器设备厂商。 - -## power - -``` -char SensorInformation::power -``` - -**描述:** - -传感器的功耗。 - diff --git a/zh-cn/device-dev/api/toctopics/_sensor_interface.md b/zh-cn/device-dev/api/toctopics/_sensor_interface.md deleted file mode 100644 index 06dd45ca7f..0000000000 --- a/zh-cn/device-dev/api/toctopics/_sensor_interface.md +++ /dev/null @@ -1,369 +0,0 @@ -# SensorInterface - -## **概述** - -**所属模块:** - -[Sensor](_sensor.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

( GetAllSensors )([out] struct SensorInformation **sensorInfo, [out] int32_t *count)

-

获取当前系统中所有类型的传感器信息。 更多...

-

( Enable )([in] int32_t sensorId)

-

根据传感器设备类型标识使能传感器信息列表里存在的设备,只有数据订阅者使能传感器后,才能获取订阅的传感器数据。 更多...

-

( Disable )([in] int32_t sensorId)

-

根据传感器设备类型标识去使能传感器信息列表里存在的设备。 更多...

-

( SetBatch )([in] int32_t sensorId, [in] int64_t samplingInterval, [in] int64_t reportInterval)

-

设置指定传感器的数据采样间隔和数据上报间隔。 更多...

-

( SetMode )([in] int32_t sensorId, [in] int32_t mode)

-

设置指定传感器的数据上报模式,不同的工作模式,上报数据的方式不同。 更多...

-

( SetOption )([in] int32_t sensorId, [in] uint32_t option)

-

设置指定传感器量程、精度等可选配置。 更多...

-

( Register )([in] int32_t groupId, [in] RecordDataCallback cb)

-

订阅者注册传感器数据回调函数,系统会将获取到的传感器数据上报给订阅者。 更多...

-

( Unregister )([in] int32_t groupId, [in] RecordDataCallback cb)

-

订阅者去注册传感器数据回调函数。 更多...

-
- -## **详细描述** - -提供sensor设备基本控制操作接口。 - -结构体提供获取传感器设备信息、订阅/去订阅传感器数据、使能/去使能传感器、设置传感器模式、设置传感器精度、量程等可选配置接口定义。 - -## **类成员变量说明** - -## Disable - -``` -int32_t(* SensorInterface::Disable) ([in] int32_t sensorId) -``` - -**描述:** - -根据传感器设备类型标识去使能传感器信息列表里存在的设备。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

sensorId

-

唯一标识一个传感器设备类型,详见SensorTypeTag

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## Enable - -``` -int32_t(* SensorInterface::Enable) ([in] int32_t sensorId) -``` - -**描述:** - -根据传感器设备类型标识使能传感器信息列表里存在的设备,只有数据订阅者使能传感器后,才能获取订阅的传感器数据。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

sensorId

-

唯一标识一个传感器设备类型,详见SensorTypeTag

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## GetAllSensors - -``` -int32_t(* SensorInterface::GetAllSensors) ([out] struct SensorInformation **sensorInfo,[out] int32_t *count) -``` - -**描述:** - -获取当前系统中所有类型的传感器信息。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

sensorInfo

-

输出系统中注册的所有传感器信息,一种类型传感器信息包括传感器名字、设备厂商、 固件版本号、硬件版本号、传感器类型编号、传感器标识、最大量程、精度、功耗,详见SensorInformation

-

count

-

输出系统中注册的传感器数量。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## Register - -``` -int32_t(* SensorInterface::Register) ([in] int32_t groupId,[in] RecordDataCallback cb) -``` - -**描述:** - -订阅者注册传感器数据回调函数,系统会将获取到的传感器数据上报给订阅者。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

groupId

-

传感器组ID。 sensorId枚举值范围为128-160,表示已订阅医疗传感器服务,只需成功订阅一次,无需重复订阅。 sensorId枚举值范围不在128-160之间,这意味着传统传感器已订阅,只需成功订阅一次,无需重复订阅。

-

cb

-

要注册的回调函数,详见RecordDataCallback

-
- -**返回:** - -如果注册回调函数成功,则返回0。 - -如果注册回调函数失败,则返回负数。 - -## SetBatch - -``` -int32_t(* SensorInterface::SetBatch) ([in] int32_t sensorId,[in] int64_t samplingInterval,[in] int64_t reportInterval) -``` - -**描述:** - -设置指定传感器的数据采样间隔和数据上报间隔。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

sensorId

-

唯一标识一个传感器设备类型,详见SensorTypeTag

-

samplingInterval

-

设置指定传感器的数据采样间隔,单位纳秒。

-

reportInterval

-

表示传感器数据上报间隔,单位纳秒。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## SetMode - -``` -int32_t(* SensorInterface::SetMode) ([in] int32_t sensorId,[in] int32_t mode) -``` - -**描述:** - -设置指定传感器的数据上报模式,不同的工作模式,上报数据的方式不同。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

sensorId

-

唯一标识一个传感器设备类型,详见SensorTypeTag

-

mode

-

传感器的数据上报模式,详见SensorModeType

-
- -**返回:** - -如果设置传感器数据报告模式成功,则返回0。 - -如果设置传感器数据报告模式失败,则返回负数。 - -## SetOption - -``` -int32_t(* SensorInterface::SetOption) ([in] int32_t sensorId,[in] uint32_t option) -``` - -**描述:** - -设置指定传感器量程、精度等可选配置。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

sensorId

-

唯一标识一个传感器设备类型,详见SensorTypeTag

-

option

-

传感器的量程、精度等配置。

-
- -**返回:** - -如果设置参数成功,则返回0。 - -如果设置参数失败,则返回负数。 - -## Unregister - -``` -int32_t(* SensorInterface::Unregister) ([in] int32_t groupId,[in] RecordDataCallback cb) -``` - -**描述:** - -订阅者去注册传感器数据回调函数。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

groupId

-

传感器组ID。 sensorId枚举值范围为128-160,表示已订阅医疗传感器服务。只需成功取消订阅一次,无需重复取消订阅。 sensorId枚举值范围不在128-160之间,这意味着传统传感器已订阅。并且成功取消订阅。

-

cb

-

要注册的回调函数,详见RecordDataCallback

-
- -**返回:** - -如果取消注册回调函数成功,则返回0。 - -如果取消注册回调函数失败,则返回负数。 - diff --git a/zh-cn/device-dev/api/toctopics/_sta_info.md b/zh-cn/device-dev/api/toctopics/_sta_info.md deleted file mode 100644 index 3f636ecf15..0000000000 --- a/zh-cn/device-dev/api/toctopics/_sta_info.md +++ /dev/null @@ -1,51 +0,0 @@ -# StaInfo - -## **概述** - -**所属模块:** - -[WLAN](_w_l_a_n.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - -

Public 属性

-

描述

-

mac [WIFI_MAC_ADDR_LENGTH]

-

STA的MAC地址

-
- -## **详细描述** - -描述与AP连接的STA的基本信息。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **类成员变量说明** - -## mac - -``` -unsigned char StaInfo::mac[WIFI_MAC_ADDR_LENGTH] -``` - -**描述:** - -STA的MAC地址。 - diff --git a/zh-cn/device-dev/api/toctopics/_support_buffer_type.md b/zh-cn/device-dev/api/toctopics/_support_buffer_type.md deleted file mode 100644 index f3ad71eab8..0000000000 --- a/zh-cn/device-dev/api/toctopics/_support_buffer_type.md +++ /dev/null @@ -1,88 +0,0 @@ -# SupportBufferType - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

size

-

结构体大小

-

version

-

组件版本信息

-

portIndex

-

端口索引

-

bufferTypes

-

支持的所有Buffer类型

-
- -## **详细描述** - -SupportBuffer类型定义。 - -## **类成员变量说明** - -## bufferTypes - -``` -uint32_t SupportBufferType::bufferTypes -``` - -**描述:** - -支持的所有Buffer类型 - -## portIndex - -``` -uint32_t SupportBufferType::portIndex -``` - -**描述:** - -端口索引 - -## size - -``` -uint32_t SupportBufferType::size -``` - -**描述:** - -结构体大小 - -## version - -``` -union OMX_VERSIONTYPE SupportBufferType::version -``` - -**描述:** - -组件版本信息 - diff --git a/zh-cn/device-dev/api/toctopics/_template_info.md b/zh-cn/device-dev/api/toctopics/_template_info.md deleted file mode 100644 index 14da99a8d4..0000000000 --- a/zh-cn/device-dev/api/toctopics/_template_info.md +++ /dev/null @@ -1,96 +0,0 @@ -# TemplateInfo - -## **概述** - -**所属模块:** - -[HdfFaceAuth](_hdf_face_auth.md) | [HdfPinAuth](_hdf_pin_auth.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

executorType

-

执行器类型,根据执行器支持的算法类型进行分类。

-

freezingTime

-

认证方式被冻结的时间。

-

remainTimes

-

认证方式距离被冻结的可处理认证请求次数。

-

extraInfo

-

其他相关信息,用于支持信息扩展。

-
- -## **详细描述** - -凭据模版信息。 - -**Since:** - -3.2 - -**Version:** - -1.0 - -## **类成员变量说明** - -## executorType - -``` -unsigned int TemplateInfo::executorType -``` - -**描述:** - -执行器类型,根据执行器支持的算法类型进行分类。 - -## extraInfo - -``` -unsigned char [] TemplateInfo::extraInfo -``` - -**描述:** - -其他相关信息,用于支持信息扩展。 - -## freezingTime - -``` -int TemplateInfo::freezingTime -``` - -**描述:** - -认证方式被冻结的时间。 - -## remainTimes - -``` -int TemplateInfo::remainTimes -``` - -**描述:** - -认证方式距离被冻结的可处理认证请求次数。 - diff --git a/zh-cn/device-dev/api/toctopics/_thermal_types_8idl.md b/zh-cn/device-dev/api/toctopics/_thermal_types_8idl.md deleted file mode 100644 index cffdfede0b..0000000000 --- a/zh-cn/device-dev/api/toctopics/_thermal_types_8idl.md +++ /dev/null @@ -1,63 +0,0 @@ -# ThermalTypes.idl - -## **概述** - -**所属模块:** - -[Thermal](thermal.md) - -## **汇总** - -## 类 - - - - - - - - - - - - - -

-

描述

-

ThermalZoneInfo

-

设备发热的信息。 更多...

-

HdfThermalCallbackInfo

-

设备发热的信息列表。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.thermal.v1_0

-

设备温度管理接口的包路径

-
- -## **详细描述** - -设备发热状态相关的数据类型。 - -热管理中使用的数据类型,包括设备发热的信息和设备发热的信息列表。 - -**Since:** - -3.1 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/_thermal_zone_info.md b/zh-cn/device-dev/api/toctopics/_thermal_zone_info.md deleted file mode 100644 index 42378f53b1..0000000000 --- a/zh-cn/device-dev/api/toctopics/_thermal_zone_info.md +++ /dev/null @@ -1,62 +0,0 @@ -# ThermalZoneInfo - -## **概述** - -**所属模块:** - -[Thermal](thermal.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

type

-

发热器件的类型。

-

temp

-

器件的温度值。

-
- -## **详细描述** - -设备发热的信息。 - -**Since:** - -3.1 - -## **类成员变量说明** - -## temp - -``` -int ThermalZoneInfo::temp -``` - -**描述:** - -器件的温度值。 - -## type - -``` -String ThermalZoneInfo::type -``` - -**描述:** - -发热器件的类型。 - diff --git a/zh-cn/device-dev/api/toctopics/_types_8idl.md b/zh-cn/device-dev/api/toctopics/_types_8idl.md deleted file mode 100644 index da1c979b92..0000000000 --- a/zh-cn/device-dev/api/toctopics/_types_8idl.md +++ /dev/null @@ -1,85 +0,0 @@ -# Types.idl - -## **概述** - -**所属模块:** - -[Battery](battery.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

BatteryInfo

-

电池相关信息。 更多...

-
- -## 枚举 - - - - - - - - - - - - - - - - -

枚举

-

描述

-

BatteryHealthState { BATTERY_HEALTH_UNKNOWN = 0, BATTERY_HEALTH_GOOD, BATTERY_HEALTH_OVERHEAT, BATTERY_HEALTH_OVERVOLTAGE, BATTERY_HEALTH_COLD, BATTERY_HEALTH_DEAD, BATTERY_HEALTH_RESERVED }

-

电池的健康状态。 更多...

-

BatteryChargeState { CHARGE_STATE_NONE = 0, CHARGE_STATE_ENABLE, CHARGE_STATE_DISABLE, CHARGE_STATE_FULL, CHARGE_STATE_RESERVED }

-

电池的充电状态。 更多...

-

BatteryPluggedType { PLUGGED_TYPE_NONE = 0, PLUGGED_TYPE_AC, PLUGGED_TYPE_USB, PLUGGED_TYPE_WIRELESS, PLUGGED_TYPE_BUTT }

-

电池的充电设备类型。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.battery.v1_0

-

电池信息接口的包路径

-
- -## **详细描述** - -电池信息相关数据类型。 - -电池信息中使用的数据类型,包括健康状态、充电状态、充电设备类型和电池信息结构。 - -**Since:** - -3.1 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/_u_s_b.md b/zh-cn/device-dev/api/toctopics/_u_s_b.md deleted file mode 100644 index 1ad29a5250..0000000000 --- a/zh-cn/device-dev/api/toctopics/_u_s_b.md +++ /dev/null @@ -1,2664 +0,0 @@ -# USB - -## **汇总** - -## 文件 - - - - - - - - - - - - - - - - - - - -

文件

-

描述

-

usb_info.h

-

USB驱动订阅模块使用的数据类型。

-

usbd_client.h

-

声明标准USB驱动接口函数。

-

usbd_subscriber.h

-

USB驱动订阅模块。

-

usbd_type.h

-

USB驱动模块接口定义中使用的自定义数据类型。

-
- -## 类 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-

描述

-

OHOS::USB::USBDeviceInfo

-

USB设备信息。 更多...

-

OHOS::USB::UsbInfo

-

USB设备信息类。 更多...

-

OHOS::USB::UsbdClient

-

Usb驱动类。更多...

-

OHOS::USB::UsbdSubscriber

-

订阅类。更多...

-

OHOS::USB::UsbDev

-

USB设备。 更多...

-

OHOS::USB::UsbPipe

-

管道信息。 更多...

-

OHOS::USB::UsbCtrlTransfer

-

USB控制传输。 更多...

-
- -## 宏定义 - - - - - - - - - - -

宏定义

-

描述

-

USB_MAX_INTERFACES 32

-

USB设备最大接口数量。

-
- -## 类型定义 - - - - - - - - - - -

类型定义

-

描述

-

(UsbdRequestCallback) (uint8_t *requestArg)

-

请求回调函数。更多...

-
- -## 枚举 - - - - - - - - - - - - - -

枚举

-

描述

-

UsbdBulkCbCmd { CMD_USBD_BULK_CALLBACK_READ, CMD_USBD_BULK_CALLBACK_WRITE }

-

批量回调命令字。 更多...

-

UsbdDeviceAction { ACT_DEVUP = 0, ACT_DEVDOWN, ACT_UPDEVICE, ACT_DOWNDEVICE }

-

主机端和设备端插拔事件。 更多...

-
- -## 函数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

函数

-

描述

-

OHOS::USB::UsbInfo::setDevInfoStatus (int32_t status)

-

设置USB设备状态。 更多...

-

OHOS::USB::UsbInfo::setDevInfoBusNum (int32_t busNum)

-

设置USB总线编号。 更多...

-

OHOS::USB::UsbInfo::setDevInfoDevNum (int32_t devNum)

-

设置USB设备编号。 更多...

-

OHOS::USB::UsbInfo::getDevInfoStatus () const

-

获取USB设备状态。 更多...

-

OHOS::USB::UsbInfo::getDevInfoBusNum () const

-

获取USB总线编号。 更多...

-

OHOS::USB::UsbInfo::getDevInfoDevNum () const

-

获取USB设备编号。 更多...

-

OHOS::USB::UsbdClient::GetInstance ()

-

获取实例。

-

OHOS::USB::UsbdClient::OpenDevice (const UsbDev &dev)

-

打开设备,建立连接。 更多...

-

OHOS::USB::UsbdClient::CloseDevice (const UsbDev &dev)

-

关闭设备,释放与设备相关的所有系统资源。 更多...

-

OHOS::USB::UsbdClient::GetDeviceDescriptor (const UsbDev &dev, std::vector< uint8_t > &descriptor)

-

获取设备描述符。 更多...

-

OHOS::USB::UsbdClient::GetStringDescriptor (const UsbDev &dev, uint8_t descId, std::vector< uint8_t > &descriptor)

-

根据String ID获取设备的字符串描述符。 更多...

-

OHOS::USB::UsbdClient::GetConfigDescriptor (const UsbDev &dev, uint8_t descId, std::vector< uint8_t > &descriptor)

-

根据config ID获取设备的配置描述符config。 更多...

-

OHOS::USB::UsbdClient::GetRawDescriptor (const UsbDev &dev, std::vector< uint8_t > &descriptor)

-

获取原始描述符。 更多...

-

OHOS::USB::UsbdClient::GetFileDescriptor (const UsbDev &dev, int32_t &fd)

-

获取文件描述符。 更多...

-

OHOS::USB::UsbdClient::SetConfig (const UsbDev &dev, uint8_t configIndex)

-

设置当前的config信息。 更多...

-

OHOS::USB::UsbdClient::GetConfig (const UsbDev &dev, uint8_t &configIndex)

-

获取当前的config信息。 更多...

-

OHOS::USB::UsbdClient::ClaimInterface (const UsbDev &dev, uint8_t interfaceid, uint8_t force)

-

打开接口,并声明独占接口,必须在数据传输前执行。 更多...

-

OHOS::USB::UsbdClient::ReleaseInterface (const UsbDev &dev, uint8_t interfaceid)

-

关闭接口,释放接口的占用,在停止数据传输后执行。 更多...

-

OHOS::USB::UsbdClient::SetInterface (const UsbDev &dev, uint8_t interfaceid, uint8_t altIndex)

-

设置指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。 更多...

-

OHOS::USB::UsbdClient::BulkTransferRead (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

-

在给定端点上执行批量数据读取,返回读取的数据和长度,端点方向必须为数据读取,可以设置超时时间。 更多...

-

OHOS::USB::UsbdClient::BulkTransferWrite (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, const std::vector< uint8_t > &data)

-

在给定端点上执行批量数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 更多...

-

OHOS::USB::UsbdClient::ControlTransfer (const UsbDev &dev, const UsbCtrlTransfer &ctrl, std::vector< uint8_t > &data)

-

对此设备执行端点零的控制事务,传输方向由请求类型决定。 如果requestType& USB_ENDPOINT_DIR_MASK是USB_DIR_OUT ,则传输是写入,如果是USB_DIR_IN ,则传输是读取。 更多...

-

OHOS::USB::UsbdClient::InterruptTransferRead (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

-

在给定端点上执行中断数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 更多...

-

OHOS::USB::UsbdClient::InterruptTransferWrite (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

-

在给定端点上执行中断数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 更多...

-

OHOS::USB::UsbdClient::IsoTransferRead (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

-

在给定端点上执行等时数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 更多...

-

OHOS::USB::UsbdClient::IsoTransferWrite (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data)

-

在给定端点上执行等时数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 更多...

-

OHOS::USB::UsbdClient::RequestQueue (const UsbDev &dev, const UsbPipe &pipe, const std::vector< uint8_t > &clientData, const std::vector< uint8_t > &buffer)

-

将指定的端点进行异步数据发送或者接收请求,数据传输方向由端点方向决定。 更多...

-

OHOS::USB::UsbdClient::RequestWait (const UsbDev &dev, std::vector< uint8_t > &clientData, std::vector< uint8_t > &buffer, int32_t timeout)

-

等待RequestQueue异步请求的操作结果。 更多...

-

OHOS::USB::UsbdClient::RequestCancel (const UsbDev &dev, const UsbPipe &pipe)

-

取消待处理的数据请求。 更多...

-

OHOS::USB::UsbdClient::GetCurrentFunctions (int32_t &funcs)

-

获取从设备支持的功能列表(按位域表示)(从设备)。 更多...

-

OHOS::USB::UsbdClient::SetCurrentFunctions (int32_t funcs)

-

设置从设备支持的功能列表(按位域表示)(从设备)。 更多...

-

OHOS::USB::UsbdClient::SetPortRole (int32_t portId, int32_t powerRole, int32_t dataRole)

-

设置port端口的角色。 更多...

-

OHOS::USB::UsbdClient::QueryPort (int32_t &portId, int32_t &powerRole, int32_t &dataRole, int32_t &mode)

-

查询port端口的当前设置。 更多...

-

OHOS::USB::UsbdClient::BindUsbdSubscriber (const sptr< UsbdSubscriber > &subscriber)

-

绑定订阅者。 更多...

-

OHOS::USB::UsbdClient::UnbindUsbdSubscriber (const sptr< UsbdSubscriber > &subscriber)

-

解绑订阅者。 更多...

-

OHOS::USB::UsbdClient::RegBulkCallback (const UsbDev &dev, const UsbPipe &pipe, const sptr< IRemoteObject > &cb)

-

注册批量传输异步回调函数。 更多...

-

OHOS::USB::UsbdClient::UnRegBulkCallback (const UsbDev &dev, const UsbPipe &pipe)

-

注销批量传输异步回调函数。 更多...

-

OHOS::USB::UsbdClient::BulkRead (const UsbDev &dev, const UsbPipe &pipe, sptr< Ashmem > &ashmem)

-

批量传输异步读数据。 更多...

-

OHOS::USB::UsbdClient::BulkWrite (const UsbDev &dev, const UsbPipe &pipe, sptr< Ashmem > &ashmem)

-

批量传输异步写数据。 更多...

-

OHOS::USB::UsbdClient::BulkCancel (const UsbDev &dev, const UsbPipe &pipe)

-

批量传输异步取消接口,用于取消当前接口的异步批量读写操作。 更多...

-

OHOS::USB::UsbdSubscriber::DeviceEvent (const UsbInfo &info)=0

-

设备事件。 更多...

-

OHOS::USB::UsbdSubscriber::PortChangedEvent (int32_t portId, int32_t powerRole, int32_t dataRole, int32_t mode)=0

-

端口改变事件。 更多...

-

OHOS::USB::UsbdSubscriber::OnRemoteRequest (uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override

-

远程请求。 更多...

-
- -## 变量 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

变量 名称

-

描述

-

OHOS::USB::USBDeviceInfo::status

-

USB设备状态

-

OHOS::USB::USBDeviceInfo::busNum

-

USB总线编号

-

OHOS::USB::USBDeviceInfo::devNum

-

USB设备编号

-

OHOS::USB::UsbDev::busNum

-

USB总线编号

-

OHOS::USB::UsbDev::devAddr

-

USB设备地址

-

OHOS::USB::UsbPipe::interfaceId

-

USB设备接口ID

-

OHOS::USB::UsbPipe::endpointId

-

USB设备端点ID

-

OHOS::USB::UsbCtrlTransfer::requestType

-

请求类型

-

OHOS::USB::UsbCtrlTransfer::requestCmd

-

请求命令字

-

OHOS::USB::UsbCtrlTransfer::value

-

请求值

-

OHOS::USB::UsbCtrlTransfer::index

-

索引

-

OHOS::USB::UsbCtrlTransfer::timeout

-

超时时间

-
- -## **详细描述** - -定义(USB)功能的标准API接口。 - -该模块用于获取描述符、接口对象、请求对象和提交请求的自定义数据类型和函数。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## **宏定义说明** - -## USB\_MAX\_INTERFACES - -``` -#define USB_MAX_INTERFACES 32 -``` - -**描述:** - -USB设备最大接口数量 - -## **类型定义说明** - -## UsbdRequestCallback - -``` -typedef void(* UsbdRequestCallback) (uint8_t *requestArg) -``` - -**描述:** - -请求回调函数 - -## **枚举类型说明** - -## UsbdBulkCbCmd - -``` -enum UsbdBulkCbCmd -``` - -**描述:** - -批量回调命令字。 - - - - - - - - - - - - - -

枚举值

-

描述

-

CMD_USBD_BULK_CALLBACK_READ

-

批量回调读取

-

-

CMD_USBD_BULK_CALLBACK_WRITE

-

批量回调写入

-

-
- -## UsbdDeviceAction - -``` -enum UsbdDeviceAction -``` - -**描述:** - -主机端和设备端插拔事件。 - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

ACT_DEVUP

-

主机端接入设备

-

-

ACT_DEVDOWN

-

主机端拔出设备

-

-

ACT_UPDEVICE

-

设备连接

-

-

ACT_DOWNDEVICE

-

设备断开

-

-
- -## **函数说明** - -## BindUsbdSubscriber\(\) - -``` -int32_t OHOS::USB::UsbdClient::BindUsbdSubscriber (const sptr< UsbdSubscriber > & subscriber) -``` - -**描述:** - -绑定订阅者。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

subscriber

-

输入参数,订阅者信息,详见UsbdSubscriber

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## BulkCancel\(\) - -``` -int32_t OHOS::USB::UsbdClient::BulkCancel (const UsbDev & dev, const UsbPipe & pipe ) -``` - -**描述:** - -批量传输异步取消接口,用于取消当前接口的异步批量读写操作。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

pipe

-

输入参数,USB设备pipe信息,详见UsbPipe

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## BulkRead\(\) - -``` -int32_t OHOS::USB::UsbdClient::BulkRead (const UsbDev & dev, const UsbPipe & pipe, sptr< Ashmem > & ashmem ) -``` - -**描述:** - -批量传输异步读数据。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

pipe

-

输入参数,USB设备pipe信息,详见UsbPipe

-

ashmem

-

输出参数,为共享内存,用于存放读取的数据,详见Ashmem

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## BulkTransferRead\(\) - -``` -int32_t OHOS::USB::UsbdClient::BulkTransferRead (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data ) -``` - -**描述:** - -在给定端点上执行批量数据读取,返回读取的数据和长度,端点方向必须为数据读取,可以设置超时时间。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

pipe

-

输入参数,USB设备pipe信息,详见UsbPipe

-

timeout

-

输入参数,超时时间。

-

data

-

输出参数,获取写入的数据。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## BulkTransferWrite\(\) - -``` -int32_t OHOS::USB::UsbdClient::BulkTransferWrite (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, const std::vector< uint8_t > & data ) -``` - -**描述:** - -在给定端点上执行批量数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

pipe

-

输入参数,USB设备pipe信息,详见UsbPipe

-

timeout

-

输入参数,超时时间。

-

data

-

输入参数,写入的数据。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## BulkWrite\(\) - -``` -int32_t OHOS::USB::UsbdClient::BulkWrite (const UsbDev & dev, const UsbPipe & pipe, sptr< Ashmem > & ashmem ) -``` - -**描述:** - -批量传输异步写数据。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

pipe

-

输入参数,USB设备pipe信息,详见UsbPipe

-

ashmem

-

输入参数,为共享内存,用于存放需要写入的数据,详见Ashmem

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## ClaimInterface\(\) - -``` -int32_t OHOS::USB::UsbdClient::ClaimInterface (const UsbDev & dev, uint8_t interfaceid, uint8_t force ) -``` - -**描述:** - -打开接口,并声明独占接口,必须在数据传输前执行。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

interfaceid

-

输入参数,USB设备interface ID。

-

force

-

输入参数,是否强制: 1强制 0不强制。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## CloseDevice\(\) - -``` -int32_t OHOS::USB::UsbdClient::CloseDevice (const UsbDev & dev) -``` - -**描述:** - -关闭设备,释放与设备相关的所有系统资源。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## ControlTransfer\(\) - -``` -int32_t OHOS::USB::UsbdClient::ControlTransfer (const UsbDev & dev, const UsbCtrlTransfer & ctrl, std::vector< uint8_t > & data ) -``` - -**描述:** - -对此设备执行端点零的控制事务,传输方向由请求类型决定。 如果requestType& USB\_ENDPOINT\_DIR\_MASK是USB\_DIR\_OUT ,则传输是写入,如果是USB\_DIR\_IN ,则传输是读取。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

ctrl

-

输入参数,USB设备控制数据包结构,详见UsbCtrlTransfer

-

data

-

输入/输出参数,读取/写入的数据。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## DeviceEvent\(\) - -``` -virtual int32_t OHOS::USB::UsbdSubscriber::DeviceEvent (const UsbInfo & info) -``` - -**描述:** - -设备事件。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

UsbInfo

-

输入参数,USB设备信息。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## GetConfig\(\) - -``` -int32_t OHOS::USB::UsbdClient::GetConfig (const UsbDev & dev, uint8_t & configIndex ) -``` - -**描述:** - -获取当前的config信息。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

configIndex

-

输出参数,USB设备config信息。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## GetConfigDescriptor\(\) - -``` -int32_t OHOS::USB::UsbdClient::GetConfigDescriptor (const UsbDev & dev, uint8_t descId, std::vector< uint8_t > & descriptor ) -``` - -**描述:** - -根据config ID获取设备的配置描述符config。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

descId

-

输入参数,USB的config ID。

-

descriptor

-

输出参数,获取USB设备config信息。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## GetCurrentFunctions\(\) - -``` -int32_t OHOS::USB::UsbdClient::GetCurrentFunctions (int32_t & funcs) -``` - -**描述:** - -获取从设备支持的功能列表(按位域表示)(从设备)。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

funcs

-

输出参数,获取当前设备的function的值。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## GetDeviceDescriptor\(\) - -``` -int32_t OHOS::USB::UsbdClient::GetDeviceDescriptor (const UsbDev & dev, std::vector< uint8_t > & descriptor ) -``` - -**描述:** - -获取设备描述符。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

descriptor

-

输出参数,USB设备描述符信息。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## getDevInfoBusNum\(\) - -``` -int32_t OHOS::USB::UsbInfo::getDevInfoBusNum () const -``` - -**描述:** - -获取USB总线编号。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

status

-

输出参数,USB总线编号。

-
- -**Since:** - -3.0 - -**Version:** - -1.0 - -## getDevInfoDevNum\(\) - -``` -int32_t OHOS::USB::UsbInfo::getDevInfoDevNum () const -``` - -**描述:** - -获取USB设备编号。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

status

-

输出参数,USB设备编号。

-
- -**Since:** - -3.0 - -**Version:** - -1.0 - -## getDevInfoStatus\(\) - -``` -int32_t OHOS::USB::UsbInfo::getDevInfoStatus () const -``` - -**描述:** - -获取USB设备状态。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

status

-

输出参数,设备状态。

-
- -**Since:** - -3.0 - -**Version:** - -1.0 - -## GetFileDescriptor\(\) - -``` -int32_t OHOS::USB::UsbdClient::GetFileDescriptor (const UsbDev & dev, int32_t & fd ) -``` - -**描述:** - -获取文件描述符。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

fd

-

输出参数,USB设备文件描述符。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## GetRawDescriptor\(\) - -``` -int32_t OHOS::USB::UsbdClient::GetRawDescriptor (const UsbDev & dev, std::vector< uint8_t > & descriptor ) -``` - -**描述:** - -获取原始描述符。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

descriptor

-

输出参数,USB设备原始描述符。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## GetStringDescriptor\(\) - -``` -int32_t OHOS::USB::UsbdClient::GetStringDescriptor (const UsbDev & dev, uint8_t descId, std::vector< uint8_t > & descriptor ) -``` - -**描述:** - -根据String ID获取设备的字符串描述符。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

descId

-

输入参数,USB的string ID。

-

descriptor

-

输出参数,获取USB设备config信息。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## InterruptTransferRead\(\) - -``` -int32_t OHOS::USB::UsbdClient::InterruptTransferRead (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data ) -``` - -**描述:** - -在给定端点上执行中断数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

pipe

-

输入参数,USB设备pipe信息,详见UsbPipe

-

timeout

-

输入参数,超时时间。

-

data

-

输出参数,读取的数据。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## InterruptTransferWrite\(\) - -``` -int32_t OHOS::USB::UsbdClient::InterruptTransferWrite (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data ) -``` - -**描述:** - -在给定端点上执行中断数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

pipe

-

输入参数,USB设备pipe信息,详见UsbPipe

-

timeout

-

输入参数,超时时间。

-

data

-

输入参数,写入的数据。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## IsoTransferRead\(\) - -``` -int32_t OHOS::USB::UsbdClient::IsoTransferRead (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data ) -``` - -**描述:** - -在给定端点上执行等时数据读取, 返回读取的数据和长度,端点方向必须为数据读取。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

pipe

-

输入参数,USB设备pipe信息,详见UsbPipe

-

timeout

-

输入参数,超时时间。

-

data

-

输出参数,读取的数据。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## IsoTransferWrite\(\) - -``` -int32_t OHOS::USB::UsbdClient::IsoTransferWrite (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data ) -``` - -**描述:** - -在给定端点上执行等时数据写入, 返回读取的数据和长度,端点方向必须为数据写入。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

pipe

-

输入参数,USB设备pipe信息,详见UsbPipe

-

timeout

-

输入参数,超时时间。

-

data

-

输入参数,读取的数据。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## OnRemoteRequest\(\) - -``` -int32_t OHOS::USB::UsbdSubscriber::OnRemoteRequest (uint32_t code, MessageParcel & data, MessageParcel & reply, MessageOption & option ) -``` - -**描述:** - -远程请求。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

code

-

输入参数,命令字。

-

data

-

输入参数,待解析的数据。

-

reply

-

输出参数,返回的数据。

-

option

-

输入参数,选项数据。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## OpenDevice\(\) - -``` -int32_t OHOS::USB::UsbdClient::OpenDevice (const UsbDev & dev) -``` - -**描述:** - -打开设备,建立连接。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## PortChangedEvent\(\) - -``` -virtual int32_t OHOS::USB::UsbdSubscriber::PortChangedEvent (int32_t portId, int32_t powerRole, int32_t dataRole, int32_t mode ) -``` - -**描述:** - -端口改变事件。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

portId

-

输入参数,端口ID。

-

powerRole

-

输入参数,电源角色的值。

-

dataRole

-

输入参数,数据角色的值。

-

mode

-

输入参数,端口模式的值。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## QueryPort\(\) - -``` -int32_t OHOS::USB::UsbdClient::QueryPort (int32_t & portId, int32_t & powerRole, int32_t & dataRole, int32_t & mode ) -``` - -**描述:** - -查询port端口的当前设置。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

portId

-

输出参数,port接口ID。

-

powerRole

-

输出参数,电源角色的值。

-

dataRole

-

输出参数,数据角色的值。

-

mode

-

输出参数,模式的值。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## RegBulkCallback\(\) - -``` -int32_t OHOS::USB::UsbdClient::RegBulkCallback (const UsbDev & dev, const UsbPipe & pipe, const sptr< IRemoteObject > & cb ) -``` - -**描述:** - -注册批量传输异步回调函数。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

pipe

-

输入参数,USB设备pipe信息,详见UsbPipe

-

cb

-

输入参数,回调函数对象的引用。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## ReleaseInterface\(\) - -``` -int32_t OHOS::USB::UsbdClient::ReleaseInterface (const UsbDev & dev, uint8_t interfaceid ) -``` - -**描述:** - -关闭接口,释放接口的占用,在停止数据传输后执行。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

interfaceid

-

输入参数,USB设备interface ID。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## RequestCancel\(\) - -``` -int32_t OHOS::USB::UsbdClient::RequestCancel (const UsbDev & dev, const UsbPipe & pipe ) -``` - -**描述:** - -取消待处理的数据请求。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

pipe

-

输入参数,USB设备pipe信息,详见UsbPipe

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## RequestQueue\(\) - -``` -int32_t OHOS::USB::UsbdClient::RequestQueue (const UsbDev & dev, const UsbPipe & pipe, const std::vector< uint8_t > & clientData, const std::vector< uint8_t > & buffer ) -``` - -**描述:** - -将指定的端点进行异步数据发送或者接收请求,数据传输方向由端点方向决定。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

pipe

-

输入参数,USB设备pipe信息,详见UsbPipe

-

clientData

-

输入参数,用户数据。

-

buffer

-

输入参数,传输的数据。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## RequestWait\(\) - -``` -int32_t OHOS::USB::UsbdClient::RequestWait (const UsbDev & dev, std::vector< uint8_t > & clientData, std::vector< uint8_t > & buffer, int32_t timeout ) -``` - -**描述:** - -等待RequestQueue异步请求的操作结果。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

clientData

-

输入参数,用户数据。

-

buffer

-

输入参数,传输数据。

-

timeout

-

输入参数,超时时间。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## SetConfig\(\) - -``` -int32_t OHOS::USB::UsbdClient::SetConfig (const UsbDev & dev, uint8_t configIndex ) -``` - -**描述:** - -设置当前的config信息。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

configIndex

-

输入参数,USB设备config信息。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## SetCurrentFunctions\(\) - -``` -int32_t OHOS::USB::UsbdClient::SetCurrentFunctions (int32_t funcs) -``` - -**描述:** - -设置从设备支持的功能列表(按位域表示)(从设备)。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

funcs

-

输入参数,传入设备支持的function的值。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## setDevInfoBusNum\(\) - -``` -void OHOS::USB::UsbInfo::setDevInfoBusNum (int32_t busNum) -``` - -**描述:** - -设置USB总线编号。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

status

-

输入参数,USB总线编号。

-
- -**Since:** - -3.0 - -**Version:** - -1.0 - -## setDevInfoDevNum\(\) - -``` -void OHOS::USB::UsbInfo::setDevInfoDevNum (int32_t devNum) -``` - -**描述:** - -设置USB设备编号。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

status

-

输入参数,USB设备编号。

-
- -**Since:** - -3.0 - -**Version:** - -1.0 - -## setDevInfoStatus\(\) - -``` -void OHOS::USB::UsbInfo::setDevInfoStatus (int32_t status) -``` - -**描述:** - -设置USB设备状态。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

status

-

输入参数,设备状态。

-
- -**Since:** - -3.0 - -**Version:** - -1.0 - -## SetInterface\(\) - -``` -int32_t OHOS::USB::UsbdClient::SetInterface (const UsbDev & dev, uint8_t interfaceid, uint8_t altIndex ) -``` - -**描述:** - -设置指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

interfaceid

-

输入参数,USB设备interface ID。

-

altIndex

-

输入参数,interface的AlternateSetting信息。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## SetPortRole\(\) - -``` -int32_t OHOS::USB::UsbdClient::SetPortRole (int32_t portId, int32_t powerRole, int32_t dataRole ) -``` - -**描述:** - -设置port端口的角色。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

portId

-

输入参数,port接口ID。

-

powerRole

-

输入参数,电源角色的值。

-

dataRole

-

输入参数,数据角色的值。

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## UnbindUsbdSubscriber\(\) - -``` -int32_t OHOS::USB::UsbdClient::UnbindUsbdSubscriber (const sptr< UsbdSubscriber > & subscriber) -``` - -**描述:** - -解绑订阅者。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

subscriber

-

输入参数,订阅者信息,详见UsbdSubscriber

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## UnRegBulkCallback\(\) - -``` -int32_t OHOS::USB::UsbdClient::UnRegBulkCallback (const UsbDev & dev, const UsbPipe & pipe ) -``` - -**描述:** - -注销批量传输异步回调函数。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

dev

-

输入参数,USB设备地址信息,详见UsbDev

-

pipe

-

输入参数,USB设备pipe信息,详见UsbPipe

-
- -**返回:** - -0 表示操作成功。 - -非零值 表示操作失败。 - -**Since:** - -3.0 - -**Version:** - -1.0 - -## **变量说明** - -## busNum \[1/2\] - -``` -int32_t OHOS::USB::USBDeviceInfo::busNum -``` - -**描述:** - -USB总线编号 - -## busNum \[2/2\] - -``` -uint8_t OHOS::USB::UsbDev::busNum -``` - -**描述:** - -USB总线编号 - -## devAddr - -``` -uint8_t OHOS::USB::UsbDev::devAddr -``` - -**描述:** - -USB设备地址 - -## devNum - -``` -int32_t OHOS::USB::USBDeviceInfo::devNum -``` - -**描述:** - -USB设备编号 - -## endpointId - -``` -uint8_t OHOS::USB::UsbPipe::endpointId -``` - -**描述:** - -USB设备端点ID - -## index - -``` -int32_t OHOS::USB::UsbCtrlTransfer::index -``` - -**描述:** - -索引 - -## interfaceId - -``` -uint8_t OHOS::USB::UsbPipe::interfaceId -``` - -**描述:** - -USB设备接口ID - -## requestCmd - -``` -int32_t OHOS::USB::UsbCtrlTransfer::requestCmd -``` - -**描述:** - -请求命令字 - -## requestType - -``` -int32_t OHOS::USB::UsbCtrlTransfer::requestType -``` - -**描述:** - -请求类型 - -## status - -``` -int32_t OHOS::USB::USBDeviceInfo::status -``` - -**描述:** - -USB设备状态 - -## timeout - -``` -int32_t OHOS::USB::UsbCtrlTransfer::timeout -``` - -**描述:** - -超时时间 - -## value - -``` -int32_t OHOS::USB::UsbCtrlTransfer::value -``` - -**描述:** - -请求值 - diff --git a/zh-cn/device-dev/api/toctopics/_use_buffer_type.md b/zh-cn/device-dev/api/toctopics/_use_buffer_type.md deleted file mode 100644 index 9d5fd8cfed..0000000000 --- a/zh-cn/device-dev/api/toctopics/_use_buffer_type.md +++ /dev/null @@ -1,88 +0,0 @@ -# UseBufferType - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

size

-

结构体大小

-

version

-

组件版本信息

-

portIndex

-

端口索引

-

bufferType

-

Buffer类型

-
- -## **详细描述** - -UseBuffer类型定义。 - -## **类成员变量说明** - -## bufferType - -``` -uint32_t UseBufferType::bufferType -``` - -**描述:** - -Buffer类型 - -## portIndex - -``` -uint32_t UseBufferType::portIndex -``` - -**描述:** - -端口索引 - -## size - -``` -uint32_t UseBufferType::size -``` - -**描述:** - -结构体大小 - -## version - -``` -union OMX_VERSIONTYPE UseBufferType::version -``` - -**描述:** - -组件版本信息 - diff --git a/zh-cn/device-dev/api/toctopics/_user_auth_types_8idl.md b/zh-cn/device-dev/api/toctopics/_user_auth_types_8idl.md deleted file mode 100644 index 845ea8a389..0000000000 --- a/zh-cn/device-dev/api/toctopics/_user_auth_types_8idl.md +++ /dev/null @@ -1,124 +0,0 @@ -# UserAuthTypes.idl - -## **概述** - -**所属模块:** - -[HdfUserAuth](_hdf_user_auth.md) - -## **汇总** - -## 类 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-

描述

-

ExecutorRegisterInfo

-

执行器注册信息。 更多...

-

ExecutorInfo

-

执行器信息。 更多...

-

ScheduleInfo

-

调度信息。 更多...

-

AuthSolution

-

认证方案。 更多...

-

ExecutorSendMsg

-

执行器发送的消息。 更多...

-

AuthResultInfo

-

用户身份认证结果信息。 更多...

-

IdentifyResultInfo

-

用户身份识别结果信息。 更多...

-

EnrollParam

-

注册认证凭据参数。 更多...

-

CredentialInfo

-

认证凭据信息。 更多...

-

EnrolledInfo

-

注册信息。 更多...

-
- -## 枚举 - - - - - - - - - - - - - - - - -

枚举

-

描述

-

AuthType : int { PIN = 1, FACE = 2, FINGERPRINT = 4, ALL = 0 }

-

枚举用户认证凭据类型。 更多...

-

ExecutorRole : int { COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 }

-

枚举执行器角色。 更多...

-

ExecutorSecureLevel : int { ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 }

-

枚举执行器安全等级。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.user_auth.v1_0

-

用户认证接口的包路径

-
- -## **详细描述** - -定义用户认证驱动的枚举类和数据结构。 - -**Since:** - -3.2 - diff --git a/zh-cn/device-dev/api/toctopics/_verify_alloc_info.md b/zh-cn/device-dev/api/toctopics/_verify_alloc_info.md deleted file mode 100644 index 2288340ed3..0000000000 --- a/zh-cn/device-dev/api/toctopics/_verify_alloc_info.md +++ /dev/null @@ -1,46 +0,0 @@ -# VerifyAllocInfo - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

width

-

分配内存的宽度

-

height

-

分配内存的高度

-

usage

-

内存的用处

-

format

-

分配内存的像素格式

-
- -## **详细描述** - -用于验证内存分配信息的结构体定义。 - diff --git a/zh-cn/device-dev/api/toctopics/_vibrator.md b/zh-cn/device-dev/api/toctopics/_vibrator.md deleted file mode 100644 index 3c7155320e..0000000000 --- a/zh-cn/device-dev/api/toctopics/_vibrator.md +++ /dev/null @@ -1,188 +0,0 @@ -# Vibrator - -## **汇总** - -## 文件 - - - - - - - - - - - - - -

文件

-

描述

-

vibrator_if.h

-

定义马达数据结构,包括马达模式和效果振动。

-

vibrator_type.h

-

定义马达数据结构,包括马达模式和效果振动。

-
- -## 类 - - - - - - - - - - -

-

描述

-

VibratorInterface

-

提供Vibrator设备基本控制操作接口。更多...

-
- -## 枚举 - - - - - - - - - - -

枚举

-

描述

-

VibratorMode { VIBRATOR_MODE_ONCE = 0, VIBRATOR_MODE_PRESET = 1, VIBRATOR_MODE_BUTT }

-

枚举马达振动模式。 更多...

-
- -## 函数 - - - - - - - - - - - - - -

函数

-

描述

-

NewVibratorInterfaceInstance (void)

-

创建一个VibratorInterface实例。 更多...

-

FreeVibratorInterfaceInstance (void)

-

释放VibratorInterface实例以及相关资源。 更多...

-
- -## **详细描述** - -马达驱动对马达服务提供通用的接口能力。 - -服务获取驱动对象或者代理后,马达服务启动或停止振动。 通过驱动程序对象或代理提供使用功能。 - -**Since:** - -2.2 - -**版本** - -1.0: - -## **枚举类型说明** - -## VibratorMode - -``` -enum VibratorMode -``` - -**描述:** - -枚举马达振动模式。 - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

VIBRATOR_MODE_ONCE

-

表示给定持续时间内的一次性振动。

-

-

VIBRATOR_MODE_PRESET

-

表示具有预置效果的周期性振动。

-

-

VIBRATOR_MODE_BUTT

-

表示效果模式无效。

-

-
- -## **函数说明** - -## FreeVibratorInterfaceInstance\(\) - -``` -int32_t FreeVibratorInterfaceInstance (void ) -``` - -**描述:** - -释放VibratorInterface实例以及相关资源。 - -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -**Since:** - -2.2 - -**Version:** - -1.0 - -## NewVibratorInterfaceInstance\(\) - -``` -const struct VibratorInterface* NewVibratorInterfaceInstance (void ) -``` - -**描述:** - -创建一个VibratorInterface实例。 - -获的马达接口实例可用于控制马达按照配置进行振动。 - -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -**Since:** - -2.2 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/_vibrator_interface.md b/zh-cn/device-dev/api/toctopics/_vibrator_interface.md deleted file mode 100644 index aff35bc43e..0000000000 --- a/zh-cn/device-dev/api/toctopics/_vibrator_interface.md +++ /dev/null @@ -1,148 +0,0 @@ -# VibratorInterface - -## **概述** - -**所属模块:** - -[Vibrator](_vibrator.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

( StartOnce )([in] uint32_t duration)

-

控制马达以执行给定持续时间的一次性振动。 更多...

-

( Start )([in] const char *effectType)

-

控制马达以预置效果执行周期性振动。 更多...

-

( Stop )([in] enum VibratorMode mode)

-

停止马达振动。 更多...

-
- -## **详细描述** - -提供Vibrator设备基本控制操作接口。 - -## **类成员变量说明** - -## Start - -``` -int32_t(* VibratorInterface::Start) ([in] const char *effectType) -``` - -**描述:** - -控制马达以预置效果执行周期性振动。 - -单次振动与周期振动相互排斥。在执行一次性振动之前,需退出周期性振动。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

effectType

-

指向指示预置效果类型的指针。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## StartOnce - -``` -int32_t(* VibratorInterface::StartOnce) ([in] uint32_t duration) -``` - -**描述:** - -控制马达以执行给定持续时间的一次性振动。 - -单次振动与周期振动相互排斥。在执行一次性振动之前,需退出周期性振动。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

duration

-

指示一次性振动的持续时间,以毫秒为单位。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -## Stop - -``` -int32_t(* VibratorInterface::Stop) ([in] enum VibratorMode mode) -``` - -**描述:** - -停止马达振动。 - -马达启动前,必须在任何模式下停止振动。此功能用在振动过程之后。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

mode

-

指示振动模式,可以是一次性或周期性的,详见VibratorMode

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - diff --git a/zh-cn/device-dev/api/toctopics/_video_port_cap.md b/zh-cn/device-dev/api/toctopics/_video_port_cap.md deleted file mode 100644 index cae1dc9396..0000000000 --- a/zh-cn/device-dev/api/toctopics/_video_port_cap.md +++ /dev/null @@ -1,133 +0,0 @@ -# VideoPortCap - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 属性

-

描述

-

minSize

-

支持的最小分辨率

-

maxSize

-

支持的最大分辨率

-

whAlignment

-

宽高对齐值

-

blockCount

-

支持的块数量范围

-

blocksPerSecond

-

每秒可处理的块数量范围

-

blockSize

-

支持的块大小

-

supportPixFmts [PIX_FORMAT_NUM]

-

支持的像素格式

-
- -## **详细描述** - -定义视频编解码能力。 - -## **类成员变量说明** - -## blockCount - -``` -RangeValue VideoPortCap::blockCount -``` - -**描述:** - -支持的块数量范围 - -## blockSize - -``` -Rect VideoPortCap::blockSize -``` - -**描述:** - -支持的块大小 - -## blocksPerSecond - -``` -RangeValue VideoPortCap::blocksPerSecond -``` - -**描述:** - -每秒可处理的块数量范围 - -## maxSize - -``` -Rect VideoPortCap::maxSize -``` - -**描述:** - -支持的最大分辨率 - -## minSize - -``` -Rect VideoPortCap::minSize -``` - -**描述:** - -支持的最小分辨率 - -## supportPixFmts - -``` -int32_t VideoPortCap::supportPixFmts[PIX_FORMAT_NUM] -``` - -**描述:** - -支持的像素格式,详见**OMX\_COLOR\_FORMATTYPE**。 - -## whAlignment - -``` -Alignment VideoPortCap::whAlignment -``` - -**描述:** - -宽高对齐值 - diff --git a/zh-cn/device-dev/api/toctopics/_w_l_a_n.md b/zh-cn/device-dev/api/toctopics/_w_l_a_n.md deleted file mode 100644 index 368d8d20a4..0000000000 --- a/zh-cn/device-dev/api/toctopics/_w_l_a_n.md +++ /dev/null @@ -1,537 +0,0 @@ -# WLAN - -## **汇总** - -## 文件 - - - - - - - - - - - - - - - - - - - -

文件

-

描述

-

wifi_hal.h

-

提供给WLAN服务的WLAN基本能力接口。

-

wifi_hal_ap_feature.h

-

提供WLAN的AP特性能力(获取与AP连接的STA的基本信息、设置国家码)。

-

wifi_hal_base_feature.h

-

提供WLAN基本特性能力。

-

wifi_hal_sta_feature.h

-

提供WLAN的STA特性能力。

-
- -## 类 - - - - - - - - - - - - - - - - - - - - - - -

-

描述

-

IWiFi

-

HAL对WLAN服务提供的基本能力。 更多...

-

StaInfo

-

描述与AP连接的STA的基本信息 更多...

-

IWiFiAp

-

继承了IWiFiBaseFeature基本特性,并包含AP模式下获取连接STA的信息和设置国家码的功能。 更多...

-

IWiFiBaseFeature

-

WLAN基本特性操作接口,包括获取网卡名称,设置MAC地址,设置发射功率等公共能力接口。 更多...

-

IWiFiSta

-

继承了IWiFiBaseFeature基本特性,额外包含设置扫描单个MAC地址功能。 更多...

-
- -## 宏定义 - - - - - - - - - - - - - - - - -

宏定义

-

描述

-

IFNAME_MAX_LEN 16

-

网卡名称最大长度。

-

WIFI_MAC_ADDR_LENGTH 6

-

WLAN的MAC地址长度。

-

ERR_UNAUTH_ACCESS (-6)

-

定义访问失败错误码。

-
- -## 类型定义 - - - - - - - - - - -

类型定义

-

描述

-

(CallbackFunc) (uint32_t event, void *data, const char *ifName)

-

定义IWiFi回调函数的原型,监听异步事件。 更多...

-
- -## 枚举 - - - - - - - - - - -

枚举

-

描述

-

FeatureType { PROTOCOL_80211_IFTYPE_UNSPECIFIED, PROTOCOL_80211_IFTYPE_ADHOC, PROTOCOL_80211_IFTYPE_STATION, PROTOCOL_80211_IFTYPE_AP, PROTOCOL_80211_IFTYPE_AP_VLAN, PROTOCOL_80211_IFTYPE_WDS, PROTOCOL_80211_IFTYPE_MONITOR, PROTOCOL_80211_IFTYPE_MESH_POINT, PROTOCOL_80211_IFTYPE_P2P_CLIENT, PROTOCOL_80211_IFTYPE_P2P_GO, PROTOCOL_80211_IFTYPE_P2P_DEVICE, PROTOCOL_80211_IFTYPE_NUM }

-

枚举WLAN相关特性的类型FeatureType更多...

-
- -## 函数 - - - - - - - - - - - - - - - - - - - - - - -

函数

-

描述

-

WifiConstruct (struct IWiFi **wifiInstance)

-

创建IWiFi结构体,挂接IWiFi中能力接口。 更多...

-

WifiDestruct (struct IWiFi **wifiInstance)

-

销毁IWiFi结构体并释放相关资源。 更多...

-

InitApFeature (struct IWiFiAp **fe)

-

初始化AP特性。WLAN服务在创建AP类型的特性FeatureType时调用。 更多...

-

InitBaseFeature (struct IWiFiBaseFeature **fe)

-

WLAN服务创建任何类型的特性{@Link FeatureType}时,都需要调用此函数。 更多...

-

InitStaFeature (struct IWiFiSta **fe)

-

初始化STA特性。WLAN服务在创建STA类型的特性FeatureType时调用。 更多...

-
- -## **详细描述** - -WLAN模块向上层WLAN服务提供了统一接口。 - -HDI层开发人员可根据WLAN模块提供的向上统一接口获取如下能力:建立/关闭WLAN热点,扫描,关联WLAN热点,WLAN平台芯片管理,网络数据缓冲的申请、释放、移动等操作,网络设备管理,电源管理等。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **类型定义说明** - -## CallbackFunc - -``` -typedef int32_t(* CallbackFunc) (uint32_t event, void *data, const char *ifName) -``` - -**描述:** - -定义IWiFi回调函数的原型,监听异步事件。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

event

-

输入参数,回调传入的事件类型标识。

-

data

-

输入参数,回调传入的数据。

-

ifName

-

输入参数,网卡名称。

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## **枚举类型说明** - -## FeatureType - -``` -enum FeatureType -``` - -**描述:** - -枚举WLAN相关特性的类型[FeatureType](_w_l_a_n.md#gad2b28a6ade408676d1371ea941824012)。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

PROTOCOL_80211_IFTYPE_UNSPECIFIED

-

未定义的类型

-

PROTOCOL_80211_IFTYPE_ADHOC

-

特设型网络

-

PROTOCOL_80211_IFTYPE_STATION

-

工作站

-

-

PROTOCOL_80211_IFTYPE_AP

-

接入点

-

-

PROTOCOL_80211_IFTYPE_AP_VLAN

-

虚拟接入点

-

-

PROTOCOL_80211_IFTYPE_WDS

-

无线分布式系统

-

-

PROTOCOL_80211_IFTYPE_MONITOR

-

网络监听器

-

-

PROTOCOL_80211_IFTYPE_MESH_POINT

-

组网

-

-

PROTOCOL_80211_IFTYPE_P2P_CLIENT

-

对等网络客户端

-

-

PROTOCOL_80211_IFTYPE_P2P_GO

-

对等网络群组所有者

-

-

PROTOCOL_80211_IFTYPE_P2P_DEVICE

-

对等网络设备

-

-

PROTOCOL_80211_IFTYPE_NUM

-

网口的数目

-

-
- -## **函数说明** - -## InitApFeature\(\) - -``` -int32_t InitApFeature (struct IWiFiAp ** fe) -``` - -**描述:** - -初始化AP特性。WLAN服务在创建AP类型的特性[FeatureType](_w_l_a_n.md#gad2b28a6ade408676d1371ea941824012)时调用。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

fe

-

输入参数,AP特性IWiFiAp

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## InitBaseFeature\(\) - -``` -int32_t InitBaseFeature (struct IWiFiBaseFeature ** fe) -``` - -**描述:** - -WLAN服务创建任何类型的特性\{@Link FeatureType\}时,都需要调用此函数。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

fe

-

输入参数,基本特性IWiFiBaseFeature

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## InitStaFeature\(\) - -``` -int32_t InitStaFeature (struct IWiFiSta ** fe) -``` - -**描述:** - -初始化STA特性。WLAN服务在创建STA类型的特性[FeatureType](_w_l_a_n.md#gad2b28a6ade408676d1371ea941824012)时调用。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

fe

-

输出参数,STA特性IWiFiSta

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## WifiConstruct\(\) - -``` -int32_t WifiConstruct (struct IWiFi ** wifiInstance) -``` - -**描述:** - -创建IWiFi结构体,挂接[IWiFi](_i_wi_fi.md)中能力接口。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

wifiInstance

-

HAL服务对象IWiFi

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -**Since:** - -1.0 - -**Version:** - -1.0 - -## WifiDestruct\(\) - -``` -int32_t WifiDestruct (struct IWiFi ** wifiInstance) -``` - -**描述:** - -销毁IWiFi结构体并释放相关资源。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

wifiInstance

-

HAL服务对象IWiFi

-
- -**返回:** - -如果操作成功,则返回0。 - -如果操作失败,则返回负值。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/annotated.md b/zh-cn/device-dev/api/toctopics/annotated.md deleted file mode 100644 index 96aa1f963a..0000000000 --- a/zh-cn/device-dev/api/toctopics/annotated.md +++ /dev/null @@ -1,261 +0,0 @@ -# 结构体 - -- **[\_\_attribute\_\_](____attribute____.md)** - -- **[Alignment](_alignment.md)** - -- **[AllocInfo](_alloc_info.md)** - -- **[AudioAdapter](_audio_adapter.md)** - -- **[AudioAdapterDescriptor](_audio_adapter_descriptor.md)** - -- **[AudioAttribute](_audio_attribute.md)** - -- **[AudioCapture](_audio_capture.md)** - -- **[AudioControl](_audio_control.md)** - -- **[AudioDevExtInfo](_audio_dev_ext_info.md)** - -- **[AudioDeviceDescriptor](_audio_device_descriptor.md)** - -- **[AudioManager](_audio_manager.md)** - -- **[AudioMixExtInfo](_audio_mix_ext_info.md)** - -- **[AudioMmapBufferDescripter](_audio_mmap_buffer_descripter.md)** - -- **[AudioPort](_audio_port.md)** - -- **[AudioPortCap](_audio_port_cap.md)** - -- **[AudioPortCapability](_audio_port_capability.md)** - -- **[AudioRender](_audio_render.md)** - -- **[AudioRoute](_audio_route.md)** - -- **[AudioRouteNode](_audio_route_node.md)** - -- **[AudioSampleAttributes](_audio_sample_attributes.md)** - -- **[AudioScene](_audio_scene.md)** - -- **[AudioSceneDescriptor](_audio_scene_descriptor.md)** - -- **[AudioSceneDescriptor::SceneDesc](union_audio_scene_descriptor_1_1_scene_desc.md)** - -- **[AudioSessionExtInfo](_audio_session_ext_info.md)** - -- **[AudioSubPortCapability](_audio_sub_port_capability.md)** - -- **[AudioTimeStamp](_audio_time_stamp.md)** - -- **[AudioVolume](_audio_volume.md)** - -- **[AuthResultInfo](_auth_result_info.md)** - -- **[AuthSolution](_auth_solution.md)** - -- **[BatteryInfo](_battery_info.md)** - -- **[BufferData](_buffer_data.md)** - -- **[CodecCallbackType](_codec_callback_type.md)** - -- **[CodecCompCapability](_codec_comp_capability.md)** - -- **[CodecComponentManager](_codec_component_manager.md)** - -- **[CodecComponentType](_codec_component_type.md)** - -- **[CompVerInfo](_comp_ver_info.md)** - -- **[CredentialInfo](_credential_info.md)** - -- **[DacIoMsg](_dac_io_msg.md)** - -- **[DeviceFuncs](_device_funcs.md)** - -- **[DeviceInfo](_device_info.md)** - -- **[DisplayCapability](_display_capability.md)** - -- **[DisplayInfo](_display_info.md)** - -- **[DisplayModeInfo](_display_mode_info.md)** - -- **[EnrolledInfo](_enrolled_info.md)** - -- **[EnrollParam](_enroll_param.md)** - -- **[EventInfo](_event_info.md)** - -- **[EventPackage](_event_package.md)** - -- **[ExecutorInfo](_executor_info.md)** - -- **[ExecutorRegisterInfo](_executor_register_info.md)** - -- **[ExecutorSendMsg](_executor_send_msg.md)** - -- **[GetBufferHandleUsageParams](_get_buffer_handle_usage_params.md)** - -- **[GfxFuncs](_gfx_funcs.md)** - -- **[GfxOpt](_gfx_opt.md)** - -- **[GrallocFuncs](_gralloc_funcs.md)** - -- **[HdfThermalCallbackInfo](_hdf_thermal_callback_info.md)** - -- **[HDRCapability](_h_d_r_capability.md)** - -- **[HDRMetaData](_h_d_r_meta_data.md)** - -- **[IBatteryCallback](interface_i_battery_callback.md)** - -- **[IBatteryInterface](interface_i_battery_interface.md)** - -- **[ICircle](_i_circle.md)** - -- **[IdentifyResultInfo](_identify_result_info.md)** - -- **[IExecutor](interface_i_executor.md)** - -- **[IExecutorCallback](interface_i_executor_callback.md)** - -- **[IFaceAuthInterface](interface_i_face_auth_interface.md)** - -- **[IInputInterface](_i_input_interface.md)** - -- **[ILine](_i_line.md)** - -- **[InputController](_input_controller.md)** - -- **[InputExtraCmd](_input_extra_cmd.md)** - -- **[InputManager](_input_manager.md)** - -- **[InputReporter](_input_reporter.md)** - -- **[InputReportEventCb](_input_report_event_cb.md)** - -- **[IPinAuthInterface](interface_i_pin_auth_interface.md)** - -- **[IPowerHdiCallback](interface_i_power_hdi_callback.md)** - -- **[IPowerInterface](interface_i_power_interface.md)** - -- **[IRect](_i_rect.md)** - -- **[ISurface](_i_surface.md)** - -- **[IThermalCallback](interface_i_thermal_callback.md)** - -- **[IThermalInterface](interface_i_thermal_interface.md)** - -- **[IUserAuthInterface](interface_i_user_auth_interface.md)** - -- **[IWiFi](_i_wi_fi.md)** - -- **[IWiFiAp](_i_wi_fi_ap.md)** - -- **[IWiFiBaseFeature](_i_wi_fi_base_feature.md)** - -- **[IWiFiSta](_i_wi_fi_sta.md)** - -- **[LayerAlpha](_layer_alpha.md)** - -- **[LayerBuffer](_layer_buffer.md)** - -- **[LayerFuncs](_layer_funcs.md)** - -- **[LayerInfo](_layer_info.md)** - -- **[LightEffect](_light_effect.md)** - -- **[LightFlashEffect](_light_flash_effect.md)** - -- **[LightInfo](_light_info.md)** - -- **[LightInterface](_light_interface.md)** - -- **[OHOS::Camera::CaptureEndedInfo](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md)** - -- **[OHOS::Camera::CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md)** - -- **[OHOS::Camera::CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md)** - -- **[OHOS::Camera::ICameraDevice](_o_h_o_s_1_1_camera_1_1_i_camera_device.md)** - -- **[OHOS::Camera::ICameraDeviceCallback](_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md)** - -- **[OHOS::Camera::ICameraHost](_o_h_o_s_1_1_camera_1_1_i_camera_host.md)** - -- **[OHOS::Camera::ICameraHostCallback](_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md)** - -- **[OHOS::Camera::IOfflineStreamOperator](_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md)** - -- **[OHOS::Camera::IStreamOperator](_o_h_o_s_1_1_camera_1_1_i_stream_operator.md)** - -- **[OHOS::Camera::IStreamOperatorCallback](_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md)** - -- **[OHOS::Camera::StreamAttribute](_o_h_o_s_1_1_camera_1_1_stream_attribute.md)** - -- **[OHOS::Camera::StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md)** - -- **[OHOS::USB::UsbCtrlTransfer](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md)** - -- **[OHOS::USB::UsbdClient](_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md)** - -- **[OHOS::USB::UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md)** - -- **[OHOS::USB::USBDeviceInfo](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md)** - -- **[OHOS::USB::UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md)** - -- **[OHOS::USB::UsbInfo](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md)** - -- **[OHOS::USB::UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md)** - -- **[OmxCodecBuffer](_omx_codec_buffer.md)** - -- **[PortCap](union_port_cap.md)** - -- **[PresentTimestamp](_present_timestamp.md)** - -- **[PropertyObject](_property_object.md)** - -- **[RangeValue](_range_value.md)** - -- **[Rect](_rect.md)** - -- **[Rectangle](_rectangle.md)** - -- **[ScheduleInfo](_schedule_info.md)** - -- **[SensorEvents](_sensor_events.md)** - -- **[SensorInformation](_sensor_information.md)** - -- **[SensorInterface](_sensor_interface.md)** - -- **[StaInfo](_sta_info.md)** - -- **[SupportBufferType](_support_buffer_type.md)** - -- **[TemplateInfo](_template_info.md)** - -- **[ThermalZoneInfo](_thermal_zone_info.md)** - -- **[UseBufferType](_use_buffer_type.md)** - -- **[VerifyAllocInfo](_verify_alloc_info.md)** - -- **[VibratorInterface](_vibrator_interface.md)** - -- **[VideoPortCap](_video_port_cap.md)** - - diff --git a/zh-cn/device-dev/api/toctopics/audio__adapter_8h.md b/zh-cn/device-dev/api/toctopics/audio__adapter_8h.md deleted file mode 100644 index 4b76650358..0000000000 --- a/zh-cn/device-dev/api/toctopics/audio__adapter_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# audio\_adapter.h - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

AudioAdapter

-

AudioAdapter音频适配器接口 更多...

-
- -## **详细描述** - -Audio适配器的接口定义文件。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/audio__attribute_8h.md b/zh-cn/device-dev/api/toctopics/audio__attribute_8h.md deleted file mode 100644 index f27f5aa1f4..0000000000 --- a/zh-cn/device-dev/api/toctopics/audio__attribute_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# audio\_attribute.h - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

AudioAttribute

-

AudioAttribute音频属性接口 更多...

-
- -## **详细描述** - -Audio属性的接口定义文件。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/audio__capture_8h.md b/zh-cn/device-dev/api/toctopics/audio__capture_8h.md deleted file mode 100644 index 4060fae0e7..0000000000 --- a/zh-cn/device-dev/api/toctopics/audio__capture_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# audio\_capture.h - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

AudioCapture

-

AudioCapture音频录音接口 更多...

-
- -## **详细描述** - -Audio录音的接口定义文件。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/audio__control_8h.md b/zh-cn/device-dev/api/toctopics/audio__control_8h.md deleted file mode 100644 index eae77ce333..0000000000 --- a/zh-cn/device-dev/api/toctopics/audio__control_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# audio\_control.h - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

AudioControl

-

AudioControl音频控制接口 更多...

-
- -## **详细描述** - -Audio控制的接口定义文件。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/audio__manager_8h.md b/zh-cn/device-dev/api/toctopics/audio__manager_8h.md deleted file mode 100644 index f505757488..0000000000 --- a/zh-cn/device-dev/api/toctopics/audio__manager_8h.md +++ /dev/null @@ -1,56 +0,0 @@ -# audio\_manager.h - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

AudioManager

-

AudioManager音频适配器管理接口 更多...

-
- -## 函数 - - - - - - - - - - -

函数

-

描述

-

GetAudioManagerFuncs (void)

-

获取音频适配器管理接口的操作函数列表,详情参考AudioManager 更多...

-
- -## **详细描述** - -Audio适配器管理及加载的接口定义文件。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/audio__render_8h.md b/zh-cn/device-dev/api/toctopics/audio__render_8h.md deleted file mode 100644 index 2a351bba4a..0000000000 --- a/zh-cn/device-dev/api/toctopics/audio__render_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# audio\_render.h - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

AudioRender

-

AudioRender音频播放接口 更多...

-
- -## **详细描述** - -Audio播放的接口定义文件。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/audio__scene_8h.md b/zh-cn/device-dev/api/toctopics/audio__scene_8h.md deleted file mode 100644 index d6d821ae63..0000000000 --- a/zh-cn/device-dev/api/toctopics/audio__scene_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# audio\_scene.h - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

AudioScene

-

AudioScene音频场景接口 更多...

-
- -## **详细描述** - -Audio场景的接口定义文件。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/audio__types_8h.md b/zh-cn/device-dev/api/toctopics/audio__types_8h.md deleted file mode 100644 index 96b432f193..0000000000 --- a/zh-cn/device-dev/api/toctopics/audio__types_8h.md +++ /dev/null @@ -1,215 +0,0 @@ -# audio\_types.h - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## 类 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-

描述

-

AudioPort

-

音频端口 更多...

-

AudioAdapterDescriptor

-

音频适配器描述符 更多...

-

AudioDeviceDescriptor

-

音频设备描述符 更多...

-

AudioSceneDescriptor

-

音频场景描述符 更多...

-

AudioSceneDescriptor::SceneDesc

-

音频场景描述 更多...

-

AudioSampleAttributes

-

音频采样属性 更多...

-

AudioTimeStamp

-

音频时间戳 更多...

-

AudioSubPortCapability

-

音频子端口的支持能力 更多...

-

AudioPortCapability

-

音频端口的支持能力 更多...

-

AudioMmapBufferDescripter

-

mmap缓冲区描述符 更多...

-

AudioDevExtInfo

-

音频设备拓展信息 更多...

-

AudioMixExtInfo

-

音轨拓展信息 更多...

-

AudioSessionExtInfo

-

会话拓展信息 更多...

-

AudioRouteNode

-

音频路由节点 更多...

-

AudioRoute

-

音频路由信息 更多...

-
- -## 类型定义 - - - - - - - - - - - - - -

类型定义

-

描述

-

AudioHandle

-

音频句柄

-

(RenderCallback) (enum AudioCallbackType, void *reserved, void *cookie)

-

回调函数指针 更多...

-
- -## 枚举 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举

-

描述

-

AudioPortDirection { PORT_OUT = 0x1u, PORT_IN = 0x2u, PORT_OUT_IN = 0x3u }

-

音频端口的类型 更多...

-

AudioPortPin { PIN_NONE = 0x0u, PIN_OUT_SPEAKER = 0x1u, PIN_OUT_HEADSET = 0x2u, PIN_OUT_LINEOUT = 0x4u, PIN_OUT_HDMI = 0x8u, PIN_OUT_USB = 0x10u, PIN_OUT_USB_EXT = 0x20u, PIN_IN_MIC = 0x8000001u, PIN_IN_HS_MIC = 0x8000002u, PIN_IN_LINEIN = 0x8000004u, PIN_IN_USB_EXT = 0x8000008u }

-

音频适配器端口的PIN脚 更多...

-

AudioCategory { AUDIO_IN_MEDIA = 0, AUDIO_IN_COMMUNICATION, AUDIO_IN_RINGTONE, AUDIO_IN_CALL }

-

音频类型(category) 更多...

-

AudioFormat { AUDIO_FORMAT_PCM_8_BIT = 0x1u, AUDIO_FORMAT_PCM_16_BIT = 0x2u, AUDIO_FORMAT_PCM_24_BIT = 0x3u, AUDIO_FORMAT_PCM_32_BIT = 0x4u, AUDIO_FORMAT_AAC_MAIN = 0x1000001u, AUDIO_FORMAT_AAC_LC = 0x1000002u, AUDIO_FORMAT_AAC_LD = 0x1000003u, AUDIO_FORMAT_AAC_ELD = 0x1000004u, AUDIO_FORMAT_AAC_HE_V1 = 0x1000005u, AUDIO_FORMAT_AAC_HE_V2 = 0x1000006u, AUDIO_FORMAT_G711A = 0x2000001u, AUDIO_FORMAT_G711U = 0x2000002u, AUDIO_FORMAT_G726 = 0x2000003u }

-

音频格式 更多...

-

AudioChannelMask { AUDIO_CHANNEL_FRONT_LEFT = 0x1, AUDIO_CHANNEL_FRONT_RIGHT = 0x2, AUDIO_CHANNEL_MONO = 0x1u, AUDIO_CHANNEL_STEREO = 0x3u }

-

音频通道掩码(mask) 更多...

-

AudioSampleRatesMask { AUDIO_SAMPLE_RATE_MASK_8000 = 0x1u, AUDIO_SAMPLE_RATE_MASK_12000 = 0x2u, AUDIO_SAMPLE_RATE_MASK_11025 = 0x4u, AUDIO_SAMPLE_RATE_MASK_16000 = 0x8u, AUDIO_SAMPLE_RATE_MASK_22050 = 0x10u, AUDIO_SAMPLE_RATE_MASK_24000 = 0x20u, AUDIO_SAMPLE_RATE_MASK_32000 = 0x40u, AUDIO_SAMPLE_RATE_MASK_44100 = 0x80u, AUDIO_SAMPLE_RATE_MASK_48000 = 0x100u, AUDIO_SAMPLE_RATE_MASK_64000 = 0x200u, AUDIO_SAMPLE_RATE_MASK_96000 = 0x400u, AUDIO_SAMPLE_RATE_MASK_INVALID = 0xFFFFFFFFu }

-

音频采样频率MASK 更多...

-

AudioPortPassthroughMode { PORT_PASSTHROUGH_LPCM = 0x1, PORT_PASSTHROUGH_RAW = 0x2, PORT_PASSTHROUGH_HBR2LBR = 0x4, PORT_PASSTHROUGH_AUTO = 0x8 }

-

音频端口的数据透传模式 更多...

-

AudioSampleFormat { AUDIO_SAMPLE_FORMAT_S8, AUDIO_SAMPLE_FORMAT_S8P, AUDIO_SAMPLE_FORMAT_U8, AUDIO_SAMPLE_FORMAT_U8P, AUDIO_SAMPLE_FORMAT_S16, AUDIO_SAMPLE_FORMAT_S16P, AUDIO_SAMPLE_FORMAT_U16, AUDIO_SAMPLE_FORMAT_U16P, AUDIO_SAMPLE_FORMAT_S24, AUDIO_SAMPLE_FORMAT_S24P, AUDIO_SAMPLE_FORMAT_U24, AUDIO_SAMPLE_FORMAT_U24P, AUDIO_SAMPLE_FORMAT_S32, AUDIO_SAMPLE_FORMAT_S32P, AUDIO_SAMPLE_FORMAT_U32, AUDIO_SAMPLE_FORMAT_U32P, AUDIO_SAMPLE_FORMAT_S64, AUDIO_SAMPLE_FORMAT_S64P, AUDIO_SAMPLE_FORMAT_U64, AUDIO_SAMPLE_FORMAT_U64P, AUDIO_SAMPLE_FORMAT_F32, AUDIO_SAMPLE_FORMAT_F32P, AUDIO_SAMPLE_FORMAT_F64, AUDIO_SAMPLE_FORMAT_F64P, AUDIO_SAMPLE_FMT_U8, AUDIO_SAMPLE_FMT_S16, AUDIO_SAMPLE_FMT_S32, AUDIO_SAMPLE_FMT_FLOAT, AUDIO_SAMPLE_FMT_DOUBLE, AUDIO_SAMPLE_FMT_U8P, AUDIO_SAMPLE_FMT_S16P, AUDIO_SAMPLE_FMT_S32P, AUDIO_SAMPLE_FMT_FLOATP, AUDIO_SAMPLE_FMT_DOUBLEP, AUDIO_SAMPLE_FMT_INVALID }

-

原始音频样本格式 更多...

-

AudioChannelMode { AUDIO_CHANNEL_NORMAL = 0, AUDIO_CHANNEL_BOTH_LEFT, AUDIO_CHANNEL_BOTH_RIGHT, AUDIO_CHANNEL_EXCHANGE, AUDIO_CHANNEL_MIX, AUDIO_CHANNEL_LEFT_MUTE, AUDIO_CHANNEL_RIGHT_MUTE, AUDIO_CHANNEL_BOTH_MUTE }

-

音频播放的通道模式 更多...

-

AudioDrainNotifyType { AUDIO_DRAIN_NORMAL_MODE, AUDIO_DRAIN_EARLY_MODE }

-

DrainBuffer函数结束类型 更多...

-

AudioCallbackType { AUDIO_NONBLOCK_WRITE_COMPELETED, AUDIO_DRAIN_COMPELETED, AUDIO_FLUSH_COMPLETED, AUDIO_RENDER_FULL, AUDIO_ERROR_OCCUR }

-

回调函数通知事件类型 更多...

-

AudioPortRole { AUDIO_PORT_UNASSIGNED_ROLE = 0, AUDIO_PORT_SOURCE_ROLE = 1, AUDIO_PORT_SINK_ROLE = 2 }

-

音频端口角色 更多...

-

AudioPortType { AUDIO_PORT_UNASSIGNED_TYPE = 0, AUDIO_PORT_DEVICE_TYPE = 1, AUDIO_PORT_MIX_TYPE = 2, AUDIO_PORT_SESSION_TYPE = 3 }

-

音频端口类型. 更多...

-

AudioSessionType { AUDIO_OUTPUT_STAGE_SESSION = 0, AUDIO_OUTPUT_MIX_SESSION, AUDIO_ALLOCATE_SESSION, AUDIO_INVALID_SESSION }

-

端口会话类型 更多...

-
- -## **详细描述** - -Audio模块接口定义中使用的自定义数据类型 - -Audio模块接口定义中使用的自定义数据类型,包括音频端口、适配器描述符、设备描述符、场景描述符、采样属性、时间戳等。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/audio__volume_8h.md b/zh-cn/device-dev/api/toctopics/audio__volume_8h.md deleted file mode 100644 index af645db939..0000000000 --- a/zh-cn/device-dev/api/toctopics/audio__volume_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# audio\_volume.h - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

AudioVolume

-

AudioVolume音频音量接口 更多...

-
- -## **详细描述** - -Audio音量的接口定义文件。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/battery.md b/zh-cn/device-dev/api/toctopics/battery.md deleted file mode 100644 index cee4f89403..0000000000 --- a/zh-cn/device-dev/api/toctopics/battery.md +++ /dev/null @@ -1,280 +0,0 @@ -# Battery - -## **汇总** - -## 文件 - - - - - - - - - - - - - - - - -

文件

-

描述

-

IBatteryCallback.idl

-

电池信息的回调。

-

IBatteryInterface.idl

-

获取、订阅电池信息的接口。

-

Types.idl

-

电池信息相关数据类型。

-
- -## 类 - - - - - - - - - - - - - - - - -

-

描述

-

IBatteryCallback

-

电池信息的回调。 更多...

-

IBatteryInterface

-

获取、订阅电池信息的接口。 更多...

-

BatteryInfo

-

电池相关信息。 更多...

-
- -## 枚举 - - - - - - - - - - - - - - - - -

枚举

-

描述

-

BatteryHealthState { BATTERY_HEALTH_UNKNOWN = 0, BATTERY_HEALTH_GOOD, BATTERY_HEALTH_OVERHEAT, BATTERY_HEALTH_OVERVOLTAGE, BATTERY_HEALTH_COLD, BATTERY_HEALTH_DEAD, BATTERY_HEALTH_RESERVED }

-

电池的健康状态。 更多...

-

BatteryChargeState { CHARGE_STATE_NONE = 0, CHARGE_STATE_ENABLE, CHARGE_STATE_DISABLE, CHARGE_STATE_FULL, CHARGE_STATE_RESERVED }

-

电池的充电状态。 更多...

-

BatteryPluggedType { PLUGGED_TYPE_NONE = 0, PLUGGED_TYPE_AC, PLUGGED_TYPE_USB, PLUGGED_TYPE_WIRELESS, PLUGGED_TYPE_BUTT }

-

电池的充电设备类型。 更多...

-
- -## 变量 - - - - - - - - - - -

变量

-

描述

-

package ohos.hdi.battery.v1_0

-

电池信息接口的包路径

-
- -## **详细描述** - -提供获取、订阅电池信息的接口。 - -电池模块为电池服务提供的获取、订阅电池信息的接口。 服务获取此模块的对象或代理后,可以调用相关的接口获取电池信息、订阅电池信息的变化。 - -**Since:** - -3.1 - -**Version:** - -1.0 - -## **枚举类型说明** - -## BatteryChargeState - -``` -enum BatteryChargeState -``` - -**描述:** - -电池的充电状态。 - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

CHARGE_STATE_NONE

-

表示电池充电状态未知。

-

-

CHARGE_STATE_ENABLE

-

表示电池充电状态为使能状态。

-

-

CHARGE_STATE_DISABLE

-

表示电池充电状态为停止状态。

-

-

CHARGE_STATE_FULL

-

表示电池充电状态为已充满状态。

-

-

CHARGE_STATE_RESERVED

-

预留。

-

-
- -## BatteryHealthState - -``` -enum BatteryHealthState -``` - -**描述:** - -电池的健康状态。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

BATTERY_HEALTH_UNKNOWN

-

表示电池健康状态未知。

-

-

BATTERY_HEALTH_GOOD

-

表示电池健康状态为正常。

-

-

BATTERY_HEALTH_OVERHEAT

-

表示电池健康状态为过热。

-

-

BATTERY_HEALTH_OVERVOLTAGE

-

表示电池健康状态为过压。

-

-

BATTERY_HEALTH_COLD

-

表示电池健康状态为低温。

-

-

BATTERY_HEALTH_DEAD

-

表示电池健康状态为耗尽。

-

-

BATTERY_HEALTH_RESERVED

-

预留。

-

-
- -## BatteryPluggedType - -``` -enum BatteryPluggedType -``` - -**描述:** - -电池的充电设备类型。 - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

PLUGGED_TYPE_NONE

-

表示连接充电器类型未知。

-

-

PLUGGED_TYPE_AC

-

表示连接的充电器类型为交流充电器。

-

-

PLUGGED_TYPE_USB

-

表示连接的充电器类型为USB充电器。

-

-

PLUGGED_TYPE_WIRELESS

-

表示连接的充电器类型为无线充电器。

-

-

PLUGGED_TYPE_BUTT

-

预留。

-

-
- diff --git a/zh-cn/device-dev/api/toctopics/codec__callback__if_8h.md b/zh-cn/device-dev/api/toctopics/codec__callback__if_8h.md deleted file mode 100644 index 012da60850..0000000000 --- a/zh-cn/device-dev/api/toctopics/codec__callback__if_8h.md +++ /dev/null @@ -1,63 +0,0 @@ -# codec\_callback\_if.h - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

CodecCallbackType

-

Codec回调接口定义。 更多...

-
- -## 函数 - - - - - - - - - - - - - -

函数

-

描述

-

CodecCallbackTypeGet (struct HdfRemoteService *remote)

-

实例化CodecCallbackType对象。 更多...

-

CodecCallbackTypeRelease (struct CodecCallbackType *instance)

-

释放CodecCallbackType对象。 更多...

-
- -## **详细描述** - -主要包括回调函数接口定义。 - -Codec模块事件上报、上报输入buffer和输出buffer处理完毕等接口定义。 - -**Since:** - -3.1 - -**Version:** - -2.0 - diff --git a/zh-cn/device-dev/api/toctopics/codec__common__type_8h.md b/zh-cn/device-dev/api/toctopics/codec__common__type_8h.md deleted file mode 100644 index a9153a5497..0000000000 --- a/zh-cn/device-dev/api/toctopics/codec__common__type_8h.md +++ /dev/null @@ -1,88 +0,0 @@ -# codec\_common\_type.h - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## 类 - - - - - - - - - - - - - - - - -

-

描述

-

Alignment

-

对齐结构定义,包含宽高的对齐值 更多...

-

Rect

-

矩形的定义 更多...

-

RangeValue

-

取值范围的定义 更多...

-
- -## 枚举 - - - - - - - - - - - - - - - - - - - - - - -

枚举

-

描述

-

CodecType { VIDEO_DECODER, VIDEO_ENCODER, AUDIO_DECODER, AUDIO_ENCODER, INVALID_TYPE }

-

枚举编解码的类型 更多...

-

Profile { INVALID_PROFILE = 0, AAC_LC_PROFILE = 0x1000, AAC_MAIN_PROFILE, AAC_HE_V1_PROFILE, AAC_HE_V2_PROFILE, AAC_LD_PROFILE, AAC_ELD_PROFILE, AVC_BASELINE_PROFILE = 0x2000, AVC_MAIN_PROFILE, AVC_HIGH_PROFILE, HEVC_MAIN_PROFILE = 0x3000, HEVC_MAIN_10_PROFILE }

-

枚举Codec规格 更多...

-

AudioSampleRate { AUD_SAMPLE_RATE_8000 = 8000, AUD_SAMPLE_RATE_12000 = 12000, AUD_SAMPLE_RATE_11025 = 11025, AUD_SAMPLE_RATE_16000 = 16000, AUD_SAMPLE_RATE_22050 = 22050, AUD_SAMPLE_RATE_24000 = 24000, AUD_SAMPLE_RATE_32000 = 32000, AUD_SAMPLE_RATE_44100 = 44100, AUD_SAMPLE_RATE_48000 = 48000, AUD_SAMPLE_RATE_64000 = 64000, AUD_SAMPLE_RATE_96000 = 96000, AUD_SAMPLE_RATE_INVALID }

-

枚举音频采样率 更多...

-

CodecCapsMask { CODEC_CAP_ADAPTIVE_PLAYBACK = 0x1, CODEC_CAP_SECURE_PLAYBACK = 0x2, CODEC_CAP_TUNNEL_PLAYBACK = 0x4, CODEC_CAP_MULTI_PLANE = 0x10000 }

-

枚举播放能力 更多...

-

CodecProcessMode { PROCESS_BLOCKING_INPUT_BUFFER = 0X1, PROCESS_BLOCKING_OUTPUT_BUFFER = 0X2, PROCESS_BLOCKING_CONTROL_FLOW = 0X4, PROCESS_NONBLOCKING_INPUT_BUFFER = 0X100, PROCESS_NONBLOCKING_OUTPUT_BUFFER = 0X200, PROCESS_NONBLOCKING_CONTROL_FLOW = 0X400 }

-

枚举编解码处理模式 更多...

-
- -## **详细描述** - -Codec模块接口定义中使用的自定义数据类型。 - -Codec模块接口定义中使用的自定义数据类型,包括编解码类型、音视频参数、buffer定义等。 - -**Since:** - -3.1 - -**Version:** - -2.0 - diff --git a/zh-cn/device-dev/api/toctopics/codec__component__if_8h.md b/zh-cn/device-dev/api/toctopics/codec__component__if_8h.md deleted file mode 100644 index dba5966834..0000000000 --- a/zh-cn/device-dev/api/toctopics/codec__component__if_8h.md +++ /dev/null @@ -1,63 +0,0 @@ -# codec\_component\_if.h - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

CodecComponentType

-

Codec组件接口定义。 更多...

-
- -## 函数 - - - - - - - - - - - - - -

函数

-

描述

-

CodecComponentTypeGet (struct HdfRemoteService *remote)

-

实例化CodecComponentType对象。 更多...

-

CodecComponentTypeRelease (struct CodecComponentType *instance)

-

释放CodecComponentType对象。 更多...

-
- -## **详细描述** - -主要包括Codec组件接口定义。 - -Codec模块提供了获取组件信息、给组件发送命令、组件参数设置、buffer轮转和控制等接口定义。创建组件后,可使用下列接口进行编解码处理。 - -**Since:** - -3.1 - -**Version:** - -2.0 - diff --git a/zh-cn/device-dev/api/toctopics/codec__component__manager_8h.md b/zh-cn/device-dev/api/toctopics/codec__component__manager_8h.md deleted file mode 100644 index 67196af101..0000000000 --- a/zh-cn/device-dev/api/toctopics/codec__component__manager_8h.md +++ /dev/null @@ -1,63 +0,0 @@ -# codec\_component\_manager.h - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

CodecComponentManager

-

Codec组件管理类接口定义。 更多...

-
- -## 函数 - - - - - - - - - - - - - -

函数

-

描述

-

GetCodecComponentManager (void)

-

实例化CodecComponentManager对象。 更多...

-

CodecComponentManagerRelease (void)

-

释放CodecComponentManager对象。 更多...

-
- -## **详细描述** - -主要包括Codec组件管理类接口。 - -Codec模块获取组件编解码能力集、创建组件和销毁组件等接口定义。 - -**Since:** - -3.1 - -**Version:** - -2.0 - diff --git a/zh-cn/device-dev/api/toctopics/codec__component__type_8h.md b/zh-cn/device-dev/api/toctopics/codec__component__type_8h.md deleted file mode 100644 index 42a988b3ee..0000000000 --- a/zh-cn/device-dev/api/toctopics/codec__component__type_8h.md +++ /dev/null @@ -1,180 +0,0 @@ -# codec\_component\_type.h - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## 类 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-

描述

-

VideoPortCap

-

定义视频编解码能力 更多...

-

AudioPortCap

-

定义音频编解码能力 更多...

-

PortCap

-

定义音视频编解码能力 更多...

-

CodecCompCapability

-

定义Codec编解码能力 更多...

-

OmxCodecBuffer

-

Codec buffer信息的定义 更多...

-

CompVerInfo

-

定义组件版本信息 更多...

-

EventInfo

-

定义事件上报信息 更多...

-

SupportBufferType

-

SupportBuffer类型定义. 更多...

-

UseBufferType

-

UseBuffer类型定义 更多...

-

GetBufferHandleUsageParams

-

BufferHandleUsage类型定义 更多...

-
- -## 宏定义 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

宏定义

-

描述

-

SAMPLE_FMT_NUM 32

-

采样格式最大值

-

UUID_LENGTH 128

-

定义UUID长度

-

PIX_FORMAT_NUM 16

-

支持的像素格式数组大小

-

SAMPLE_FORMAT_NUM 12

-

支持的音频采样格式数组大小

-

SAMPLE_RATE_NUM 16

-

支持的音频采样率数组大小

-

CHANNEL_NUM 16

-

支持的音频通道数组大小

-

NAME_LENGTH 32

-

组件名称大小

-

PROFILE_NUM 256

-

支持的profile数组大小

-
- -## 枚举 - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举

-

描述

-

AvCodecRole { MEDIA_ROLETYPE_IMAGE_JPEG = 0, MEDIA_ROLETYPE_VIDEO_AVC, MEDIA_ROLETYPE_VIDEO_HEVC, MEDIA_ROLETYPE_AUDIO_FIRST = 0x10000, MEDIA_ROLETYPE_AUDIO_AAC = 0x10000, MEDIA_ROLETYPE_AUDIO_G711A, MEDIA_ROLETYPE_AUDIO_G711U, MEDIA_ROLETYPE_AUDIO_G726, MEDIA_ROLETYPE_AUDIO_PCM, MEDIA_ROLETYPE_AUDIO_MP3, MEDIA_ROLETYPE_INVALID }

-

枚举音视频编解码组件类型 更多...

-

AudioSampleFormat { AUDIO_SAMPLE_FORMAT_S8, AUDIO_SAMPLE_FORMAT_S8P, AUDIO_SAMPLE_FORMAT_U8, AUDIO_SAMPLE_FORMAT_U8P, AUDIO_SAMPLE_FORMAT_S16, AUDIO_SAMPLE_FORMAT_S16P, AUDIO_SAMPLE_FORMAT_U16, AUDIO_SAMPLE_FORMAT_U16P, AUDIO_SAMPLE_FORMAT_S24, AUDIO_SAMPLE_FORMAT_S24P, AUDIO_SAMPLE_FORMAT_U24, AUDIO_SAMPLE_FORMAT_U24P, AUDIO_SAMPLE_FORMAT_S32, AUDIO_SAMPLE_FORMAT_S32P, AUDIO_SAMPLE_FORMAT_U32, AUDIO_SAMPLE_FORMAT_U32P, AUDIO_SAMPLE_FORMAT_S64, AUDIO_SAMPLE_FORMAT_S64P, AUDIO_SAMPLE_FORMAT_U64, AUDIO_SAMPLE_FORMAT_U64P, AUDIO_SAMPLE_FORMAT_F32, AUDIO_SAMPLE_FORMAT_F32P, AUDIO_SAMPLE_FORMAT_F64, AUDIO_SAMPLE_FORMAT_F64P, AUDIO_SAMPLE_FMT_U8, AUDIO_SAMPLE_FMT_S16, AUDIO_SAMPLE_FMT_S32, AUDIO_SAMPLE_FMT_FLOAT, AUDIO_SAMPLE_FMT_DOUBLE, AUDIO_SAMPLE_FMT_U8P, AUDIO_SAMPLE_FMT_S16P, AUDIO_SAMPLE_FMT_S32P, AUDIO_SAMPLE_FMT_FLOATP, AUDIO_SAMPLE_FMT_DOUBLEP, AUDIO_SAMPLE_FMT_INVALID }

-

枚举音频采样格式 更多...

-

CodecBufferType { CODEC_BUFFER_TYPE_INVALID = 0, CODEC_BUFFER_TYPE_VIRTUAL_ADDR = 0x1, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD = 0x2, CODEC_BUFFER_TYPE_HANDLE = 0x4, CODEC_BUFFER_TYPE_DYNAMIC_HANDLE = 0x8 }

-

定义buffer类型 更多...

-

ShareMemTypes { READ_WRITE_TYPE = 0x1, READ_ONLY_TYPE = 0x2 }

-

枚举共享内存类型 更多...

-

OmxIndexCodecExType { OMX_IndexExtBufferTypeStartUnused = OMX_IndexKhronosExtensions + 0x00a00000, OMX_IndexParamSupportBufferType, OMX_IndexParamUseBufferType, OMX_IndexParamGetBufferHandleUsage }

-

枚举Codec扩展index 更多...

-

OmxVideoExType { OMX_VIDEO_CodingHEVC = 11 }

-

枚举Codec扩展编码类型 更多...

-
- -## **详细描述** - -Codec模块接口定义中使用的自定义数据类型。 - -Codec模块接口定义中使用的自定义数据类型,包括编解码类型、音视频参数、buffer定义等。 - -**Since:** - -3.1 - -**Version:** - -2.0 - diff --git a/zh-cn/device-dev/api/toctopics/dac__if_8h.md b/zh-cn/device-dev/api/toctopics/dac__if_8h.md deleted file mode 100644 index 098a002a8c..0000000000 --- a/zh-cn/device-dev/api/toctopics/dac__if_8h.md +++ /dev/null @@ -1,62 +0,0 @@ -# dac\_if.h - -## **概述** - -**所属模块:** - -[DAC](_d_a_c.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

DacIoMsg

-

DAC设备信息传输结构体 更多...

-
- -## 函数 - - - - - - - - - - - - - - - - -

函数

-

描述

-

DacOpen (uint32_t number)

-

获取DAC控制器的句柄。 更多...

-

DacClose (DevHandle handle)

-

释放DAC控制器的句柄。 更多...

-

DacWrite (DevHandle handle, uint32_t channel, uint32_t val)

-

启动DAC设备进行传输,将目标值写入指定的DAC通道。 更多...

-
- -## **详细描述** - -声明标准DAC接口函数。 - -**Since:** - -3.1 - diff --git a/zh-cn/device-dev/api/toctopics/display__device_8h.md b/zh-cn/device-dev/api/toctopics/display__device_8h.md deleted file mode 100644 index b12c3425ec..0000000000 --- a/zh-cn/device-dev/api/toctopics/display__device_8h.md +++ /dev/null @@ -1,88 +0,0 @@ -# display\_device.h - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

DeviceFuncs

-

显示设备控制接口结构体,定义显示设备控制接口函数指针。 更多...

-
- -## 类型定义 - - - - - - - - - - - - - - - - -

类型定义

-

描述

-

(HotPlugCallback) (uint32_t devId, bool connected, void *data)

-

注册热插拔事件回调

-

(VBlankCallback) (unsigned int sequence, uint64_t ns, void *data)

-

注册VBlank事件回调。

-

(RefreshCallback) (uint32_t devId, void *data)

-

刷新请求回调。

-
- -## 函数 - - - - - - - - - - - - - -

函数

-

描述

-

DeviceInitialize (DeviceFuncs **funcs)

-

实现显示设备控制接口的初始化,申请操作显示设备控制接口的资源,并获取对应的操作接口。 更多...

-

DeviceUninitialize (DeviceFuncs *funcs)

-

取消显示设备控制接口的初始化,释放控制接口使用到的资源。 更多...

-
- -## **详细描述** - -显示设备控制接口声明。 - -**Since:** - -1.0 - -**Version:** - -2.0 - diff --git a/zh-cn/device-dev/api/toctopics/display__gfx_8h.md b/zh-cn/device-dev/api/toctopics/display__gfx_8h.md deleted file mode 100644 index 47d4f526b3..0000000000 --- a/zh-cn/device-dev/api/toctopics/display__gfx_8h.md +++ /dev/null @@ -1,61 +0,0 @@ -# display\_gfx.h - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

GfxFuncs

-

显示硬件加速驱动接口结构体,定义硬件加速驱动接口函数指针。 更多...

-
- -## 函数 - - - - - - - - - - - - - -

函数

-

描述

-

GfxInitialize (GfxFuncs **funcs)

-

获取硬件加速相关的操作接口指针。 更多...

-

GfxUninitialize (GfxFuncs *funcs)

-

释放硬件加速相关的操作接口指针。 更多...

-
- -## **详细描述** - -显示硬件加速驱动接口声明。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/display__gralloc_8h.md b/zh-cn/device-dev/api/toctopics/display__gralloc_8h.md deleted file mode 100644 index cd018c7762..0000000000 --- a/zh-cn/device-dev/api/toctopics/display__gralloc_8h.md +++ /dev/null @@ -1,61 +0,0 @@ -# display\_gralloc.h - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

GrallocFuncs

-

显示内存驱动接口结构体,定义显示内存驱动接口函数指针。 更多...

-
- -## 函数 - - - - - - - - - - - - - -

函数

-

描述

-

GrallocInitialize (GrallocFuncs **funcs)

-

初始化内存模块,并获取内存提供的操作接口。 更多...

-

GrallocUninitialize (GrallocFuncs *funcs)

-

取消初始化内存模块,并释放内存操作接口指针。 更多...

-
- -## **详细描述** - -显示内存驱动接口声明。 - -**Since:** - -1.0 - -**Version:** - -2.0 - diff --git a/zh-cn/device-dev/api/toctopics/display__layer_8h.md b/zh-cn/device-dev/api/toctopics/display__layer_8h.md deleted file mode 100644 index 30f06b89e6..0000000000 --- a/zh-cn/device-dev/api/toctopics/display__layer_8h.md +++ /dev/null @@ -1,61 +0,0 @@ -# display\_layer.h - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

LayerFuncs

-

显示图层驱动接口结构体,定义显示图层驱动接口函数指针。 更多...

-
- -## 函数 - - - - - - - - - - - - - -

函数

-

描述

-

LayerInitialize (LayerFuncs **funcs)

-

实现图层初始化功能,申请图层使用的资源,并获取图层提供的操作接口。 更多...

-

LayerUninitialize (LayerFuncs *funcs)

-

取消图层初始化功能,释放图层使用到的资源,并释放图层操作接口指针。 更多...

-
- -## **详细描述** - -显示图层驱动接口声明。 - -**Since:** - -1.0 - -**Version:** - -2.0 - diff --git a/zh-cn/device-dev/api/toctopics/display__type_8h.md b/zh-cn/device-dev/api/toctopics/display__type_8h.md deleted file mode 100644 index a44f46b2db..0000000000 --- a/zh-cn/device-dev/api/toctopics/display__type_8h.md +++ /dev/null @@ -1,258 +0,0 @@ -# display\_type.h - -## **概述** - -**所属模块:** - -[Display](_display.md) - -## **汇总** - -## 类 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-

描述

-

DisplayInfo

-

定义显示信息结构体 更多...

-

LayerInfo

-

定义图层信息结构体 更多...

-

LayerAlpha

-

定义图层Alpha信息的结构体 更多...

-

BufferData

-

定义一层的缓冲区数据,包括虚拟和物理内存地址。 更多...

-

LayerBuffer

-

图层Buffer,用于存放图层数据。 更多...

-

IRect

-

定义矩形信息 更多...

-

ISurface

-

用于存放窗口相关信息的结构体定义,提供给硬件加速使用,例如图像合成,位图搬移等操作。 更多...

-

ILine

-

线条描述结构体定义,用于硬件加速绘制直线。 更多...

-

ICircle

-

圆形描述结构体定义,用于硬件加速绘制圆形。 更多...

-

Rectangle

-

矩形描述结构体定义,用于硬件加速绘制矩形, 更多...

-

GfxOpt

-

图像硬件加速相关的操作选项结构体定义,用于图像硬件加速时的操作选项。 更多...

-

PropertyObject

-

定义包含名称、属性ID和值的属性对象。 更多...

-

DisplayCapability

-

定义输出性能。 更多...

-

DisplayModeInfo

-

定义输出模式信息。 更多...

-

AllocInfo

-

定义关于要分配的内存的信息。 更多...

-

HDRCapability

-

HDR属性结构体定义 更多...

-

HDRMetaData

-

HDR元数据结构体定义 更多...

-

VerifyAllocInfo

-

用于验证内存分配信息的结构体定义 更多...

-

PresentTimestamp

-

上屏时间戳结构体定义 更多...

-

__attribute__

-

扩展数据句柄结构体定义 更多...

-
- -## 宏定义 - - - - - - - - - - -

宏定义

-

描述

-

PROPERTY_NAME_LEN 50

-

属性名称长度

-
- -## 枚举 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举

-

描述

-

DispErrCode { DISPLAY_SUCCESS = 0, DISPLAY_FAILURE = -1, DISPLAY_FD_ERR = -2, DISPLAY_PARAM_ERR = -3, DISPLAY_NULL_PTR = -4, DISPLAY_NOT_SUPPORT = -5, DISPLAY_NOMEM = -6, DISPLAY_SYS_BUSY = -7, DISPLAY_NOT_PERM = -8 }

-

返回值类型定义。 更多...

-

LayerType { LAYER_TYPE_GRAPHIC, LAYER_TYPE_OVERLAY, LAYER_TYPE_SDIEBAND, LAYER_TYPE_CURSOR, LAYER_TYPE_BUTT }

-

图层类型定义。 更多...

-

{ HBM_USE_CPU_READ = (1 << 0), HBM_USE_CPU_WRITE = (1 << 1), HBM_USE_MEM_MMZ = (1 << 2), HBM_USE_MEM_DMA = (1 << 3), HBM_USE_MEM_SHARE = (1 << 4), HBM_USE_MEM_MMZ_CACHE = (1 << 5), HBM_USE_MEM_FB = (1 << 6), HBM_USE_ASSIGN_SIZE = (1 << 7) }

-

缓冲区定义。更多...

-

PixelFormat { PIXEL_FMT_CLUT8 = 0, PIXEL_FMT_CLUT1, PIXEL_FMT_CLUT4, PIXEL_FMT_RGB_565, PIXEL_FMT_RGBA_5658, PIXEL_FMT_RGBX_4444, PIXEL_FMT_RGBA_4444, PIXEL_FMT_RGB_444, PIXEL_FMT_RGBX_5551, PIXEL_FMT_RGBA_5551, PIXEL_FMT_RGB_555, PIXEL_FMT_RGBX_8888, PIXEL_FMT_RGBA_8888, PIXEL_FMT_RGB_888, PIXEL_FMT_BGR_565, PIXEL_FMT_BGRX_4444, PIXEL_FMT_BGRA_4444, PIXEL_FMT_BGRX_5551, PIXEL_FMT_BGRA_5551, PIXEL_FMT_BGRX_8888, PIXEL_FMT_BGRA_8888, PIXEL_FMT_YUV_422_I, PIXEL_FMT_YCBCR_422_SP, PIXEL_FMT_YCRCB_422_SP, PIXEL_FMT_YCBCR_420_SP, PIXEL_FMT_YCRCB_420_SP, PIXEL_FMT_YCBCR_422_P, PIXEL_FMT_YCRCB_422_P, PIXEL_FMT_YCBCR_420_P, PIXEL_FMT_YCRCB_420_P, PIXEL_FMT_YUYV_422_PKG, PIXEL_FMT_UYVY_422_PKG, PIXEL_FMT_YVYU_422_PKG, PIXEL_FMT_VYUY_422_PKG, PIXEL_FMT_VENDER_MASK = 0X7FFF0000, PIXEL_FMT_BUTT = 0X7FFFFFFF }

-

像素格式类型定义。 更多...

-

TransformType { ROTATE_NONE = 0, ROTATE_90, ROTATE_180, ROTATE_270, ROTATE_BUTT }

-

图层变换类型定义。 更多...

-

BlendType { BLEND_NONE = 0, BLEND_CLEAR, BLEND_SRC, BLEND_SRCOVER, BLEND_DSTOVER, BLEND_SRCIN, BLEND_DSTIN, BLEND_SRCOUT, BLEND_DSTOUT, BLEND_SRCATOP, BLEND_DSTATOP, BLEND_ADD, BLEND_XOR, BLEND_DST, BLEND_AKS, BLEND_AKD, BLEND_BUTT }

-

显示内存类型定义。 更多...

-

RopType { ROP_BLACK = 0, ROP_NOTMERGEPEN, ROP_MASKNOTPEN, ROP_NOTCOPYPEN, ROP_MASKPENNOT, ROP_NOT, ROP_XORPEN, ROP_NOTMASKPEN, ROP_MASKPEN, ROP_NOTXORPEN, ROP_NOP, ROP_MERGENOTPEN, ROP_COPYPE, ROP_MERGEPENNOT, ROP_MERGEPEN, ROP_WHITE, ROP_BUTT }

-

硬件加速支持的ROP操作类型。 更多...

-

ColorKey { CKEY_NONE = 0, CKEY_SRC, CKEY_DST, CKEY_BUTT }

-

Color key操作类型定义,即硬件加速支持的Color key操作类型。 更多...

-

MirrorType { MIRROR_NONE = 0, MIRROR_LR, MIRROR_TB, MIRROR_BUTT }

-

硬件加速支持的镜像操作类型定义 更多...

-

Connection { CON_INVALID = 0, CONNECTED, DISCONNECTED }

-

热插拔连接类型定义 更多...

-

InterfaceType { DISP_INTF_HDMI = 0, DISP_INTF_LCD, DISP_INTF_BT1120, DISP_INTF_BT656, DISP_INTF_YPBPR, DISP_INTF_RGB, DISP_INTF_CVBS, DISP_INTF_SVIDEO, DISP_INTF_VGA, DISP_INTF_MIPI, DISP_INTF_PANEL, DISP_INTF_BUTT }

-

枚举接口类型。 更多...

-

DispPowerStatus { POWER_STATUS_ON, POWER_STATUS_STANDBY, POWER_STATUS_SUSPEND, POWER_STATUS_OFF, POWER_STATUS_BUTT }

-

枚举显示状态 更多...

-

CompositionType { COMPOSITION_CLIENT, COMPOSITION_DEVICE, COMPOSITION_CURSOR, COMPOSITION_VIDEO, COMPOSITION_DEVICE_CLEAR, COMPOSITION_CLIENT_CLEAR, COMPOSITION_TUNNEL, COMPOSITION_BUTT }

-

枚举特殊层的组合类型。 更多...

-

ColorGamut { COLOR_GAMUT_INVALID = -1, COLOR_GAMUT_NATIVE = 0, COLOR_GAMUT_SATNDARD_BT601 = 1, COLOR_GAMUT_STANDARD_BT709 = 2, COLOR_GAMUT_DCI_P3 = 3, COLOR_GAMUT_SRGB = 4, COLOR_GAMUT_ADOBE_RGB = 5, COLOR_GAMUT_DISPLAY_P3 = 6, COLOR_GAMUT_BT2020 = 7, COLOR_GAMUT_BT2100_PQ = 8, COLOR_GAMUT_BT2100_HLG = 9, COLOR_GAMUT_DISPLAY_BT2020 = 10 }

-

色域类型枚举值 更多...

-

GamutMap { GAMUT_MAP_CONSTANT = 0, GAMUT_MAP_EXPANSION = 1, GAMUT_MAP_HDR_CONSTANT = 2, GAMUT_MAP_HDR_EXPANSION = 3 }

-

枚举色域的映射类型 更多...

-

ColorDataSpace { COLOR_DATA_SPACE_UNKNOWN = 0, GAMUT_BT601 = 0x00000001, GAMUT_BT709 = 0x00000002, GAMUT_DCI_P3 = 0x00000003, GAMUT_SRGB = 0x00000004, GAMUT_ADOBE_RGB = 0x00000005, GAMUT_DISPLAY_P3 = 0x00000006, GAMUT_BT2020 = 0x00000007, GAMUT_BT2100_PQ = 0x00000008, GAMUT_BT2100_HLG = 0x00000009, GAMUT_DISPLAY_BT2020 = 0x0000000a, TRANSFORM_FUNC_UNSPECIFIED = 0x00000100, TRANSFORM_FUNC_LINEAR = 0x00000200, TRANSFORM_FUNC_SRGB = 0x00000300, TRANSFORM_FUNC_SMPTE_170M = 0x00000400, TRANSFORM_FUNC_GM2_2 = 0x00000500, TRANSFORM_FUNC_GM2_6 = 0x00000600, TRANSFORM_FUNC_GM2_8 = 0x00000700, TRANSFORM_FUNC_ST2084 = 0x00000800, TRANSFORM_FUNC_HLG = 0x00000900, PRECISION_UNSPECIFIED = 0x00010000, PRECISION_FULL = 0x00020000, PRESION_LIMITED = 0x00030000, PRESION_EXTENDED = 0x00040000, BT601_SMPTE170M_FULL = GAMUT_BT601 | TRANSFORM_FUNC_SMPTE_170M | PRECISION_FULL, BT601_SMPTE170M_LIMITED = GAMUT_BT601 | TRANSFORM_FUNC_SMPTE_170M | PRESION_LIMITED, BT709_LINEAR_FULL = GAMUT_BT709 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, BT709_LINEAR_EXTENDED = GAMUT_BT709 | TRANSFORM_FUNC_LINEAR | PRESION_EXTENDED, BT709_SRGB_FULL = GAMUT_BT709 | TRANSFORM_FUNC_SRGB | PRECISION_FULL, BT709_SRGB_EXTENDED = GAMUT_BT709 | TRANSFORM_FUNC_SRGB | PRESION_EXTENDED, BT709_SMPTE170M_LIMITED = GAMUT_BT709 | TRANSFORM_FUNC_SMPTE_170M | PRESION_LIMITED, DCI_P3_LINEAR_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, DCI_P3_GAMMA26_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_GM2_6 | PRECISION_FULL, DISPLAY_P3_LINEAR_FULL = GAMUT_DISPLAY_P3 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, DCI_P3_SRGB_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_SRGB | PRECISION_FULL, ADOBE_RGB_GAMMA22_FULL = GAMUT_ADOBE_RGB | TRANSFORM_FUNC_GM2_2 | PRECISION_FULL, BT2020_LINEAR_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, BT2020_SRGB_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_SRGB | PRECISION_FULL, BT2020_SMPTE170M_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_SMPTE_170M | PRECISION_FULL, BT2020_ST2084_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_ST2084 | PRECISION_FULL, BT2020_HLG_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_HLG | PRECISION_FULL, BT2020_ST2084_LIMITED = GAMUT_BT2020 | TRANSFORM_FUNC_ST2084 | PRESION_LIMITED }

-

枚举颜色空间的类型 更多...

-

HDRFormat { NOT_SUPPORT_HDR = 0, DOLBY_VISION = 1, HDR10 = 2, HLG = 3, HDR10_PLUS = 4, HDR_VIVID = 5 }

-

枚举HDR格式 更多...

-

HDRMetadataKey { MATAKEY_RED_PRIMARY_X = 0, MATAKEY_RED_PRIMARY_Y = 1, MATAKEY_GREEN_PRIMARY_X = 2, MATAKEY_GREEN_PRIMARY_Y = 3, MATAKEY_BLUE_PRIMARY_X = 4, MATAKEY_BLUE_PRIMARY_Y = 5, MATAKEY_WHITE_PRIMARY_X = 6, MATAKEY_WHITE_PRIMARY_Y = 7, MATAKEY_MAX_LUMINANCE = 8, MATAKEY_MIN_LUMINANCE = 9, MATAKEY_MAX_CONTENT_LIGHT_LEVEL = 10, MATAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL = 11, MATAKEY_HDR10_PLUS = 12, MATAKEY_HDR_VIVID = 13 }

-

枚举HDR元数据关键字 更多...

-

PresentTimestampType { HARDWARE_DISPLAY_PTS_UNSUPPORTED = 0, HARDWARE_DISPLAY_PTS_DELAY = 1 << 0, HARDWARE_DISPLAY_PTS_TIMESTAMP = 1 << 1 }

-

上屏时间戳类型枚举值 更多...

-
- -## **详细描述** - -显示类型定义,定义显示驱动接口所使用的数据类型。 - -**Since:** - -1.0 - -**Version:** - -2.0 - diff --git a/zh-cn/device-dev/api/toctopics/face__auth_2_i_executor_8idl.md b/zh-cn/device-dev/api/toctopics/face__auth_2_i_executor_8idl.md deleted file mode 100644 index 07300803f4..0000000000 --- a/zh-cn/device-dev/api/toctopics/face__auth_2_i_executor_8idl.md +++ /dev/null @@ -1,52 +0,0 @@ -# FACEAUTH\_IExecutor.idl - -## **概述** - -**所属模块:** - -[HdfFaceAuth](_hdf_face_auth.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

IExecutor

-

定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.face_auth.v1_0

-

人脸认证接口的包路径

-
- -## **详细描述** - -定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 - -**Since:** - -3.2 - diff --git a/zh-cn/device-dev/api/toctopics/face__auth_2_i_executor_callback_8idl.md b/zh-cn/device-dev/api/toctopics/face__auth_2_i_executor_callback_8idl.md deleted file mode 100644 index 697b05f517..0000000000 --- a/zh-cn/device-dev/api/toctopics/face__auth_2_i_executor_callback_8idl.md +++ /dev/null @@ -1,52 +0,0 @@ -# FACEAUTH\_IExecutorCallback.idl - -## **概述** - -**所属模块:** - -[HdfFaceAuth](_hdf_face_auth.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

IExecutorCallback

-

定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见IExecutor更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.face_auth.v1_0

-

人脸认证接口的包路径

-
- -## **详细描述** - -定义异步API接口回调,用于返回异步接口的请求处理结果和信息。 - -**Since:** - -3.2 - diff --git a/zh-cn/device-dev/api/toctopics/files.md b/zh-cn/device-dev/api/toctopics/files.md deleted file mode 100644 index d8579b7c58..0000000000 --- a/zh-cn/device-dev/api/toctopics/files.md +++ /dev/null @@ -1,131 +0,0 @@ -# 头文件 - -- **[audio\_adapter.h](audio__adapter_8h.md)** - -- **[audio\_attribute.h](audio__attribute_8h.md)** - -- **[audio\_capture.h](audio__capture_8h.md)** - -- **[audio\_control.h](audio__control_8h.md)** - -- **[audio\_manager.h](audio__manager_8h.md)** - -- **[audio\_render.h](audio__render_8h.md)** - -- **[audio\_scene.h](audio__scene_8h.md)** - -- **[audio\_types.h](audio__types_8h.md)** - -- **[audio\_volume.h](audio__volume_8h.md)** - -- **[codec\_callback\_if.h](codec__callback__if_8h.md)** - -- **[codec\_common\_type.h](codec__common__type_8h.md)** - -- **[codec\_component\_if.h](codec__component__if_8h.md)** - -- **[codec\_component\_manager.h](codec__component__manager_8h.md)** - -- **[codec\_component\_type.h](codec__component__type_8h.md)** - -- **[dac\_if.h](dac__if_8h.md)** - -- **[display\_device.h](display__device_8h.md)** - -- **[display\_gfx.h](display__gfx_8h.md)** - -- **[display\_gralloc.h](display__gralloc_8h.md)** - -- **[display\_layer.h](display__layer_8h.md)** - -- **[display\_type.h](display__type_8h.md)** - -- **[icamera\_device\_callback.h](icamera__device__callback_8h.md)** - -- **[icamera\_device.h](icamera__device_8h.md)** - -- **[icamera\_host\_callback.h](icamera__host__callback_8h.md)** - -- **[icamera\_host.h](icamera__host_8h.md)** - -- **[input\_controller.h](input__controller_8h.md)** - -- **[input\_manager.h](input__manager_8h.md)** - -- **[input\_reporter.h](input__reporter_8h.md)** - -- **[input\_type.h](input__type_8h.md)** - -- **[ioffline\_stream\_operator.h](ioffline__stream__operator_8h.md)** - -- **[istream\_operator\_callback.h](istream__operator__callback_8h.md)** - -- **[istream\_operator.h](istream__operator_8h.md)** - -- **[light\_if.h](light__if_8h.md)** - -- **[light\_type.h](light_8typeh.md)** - -- **[sensor\_if.h](sensor__if_8h.md)** - -- **[sensor\_type.h](sensor__type_8h.md)** - -- **[types.h](types_8h.md)** - -- **[usb\_info.h](usb__info_8h.md)** - -- **[usbd\_client.h](usbd__client_8h.md)** - -- **[usbd\_subscriber.h](usbd__subscriber_8h.md)** - -- **[usbd\_type.h](usbd__type_8h.md)** - -- **[vibrator\_if.h](vibrator__if_8h.md)** - -- **[vibrator\_type.h](vibrator__type_8h.md)** - -- **[wifi\_hal\_ap\_feature.h](wifi__hal__ap__feature_8h.md)** - -- **[wifi\_hal\_base\_feature.h](wifi__hal__base__feature_8h.md)** - -- **[wifi\_hal\_sta\_feature.h](wifi__hal__sta__feature_8h.md)** - -- **[wifi\_hal.h](wifi__hal_8h.md)** - -- **[FACEAUTH\_IExecutor.idl](face__auth_2_i_executor_8idl.md)** - -- **[FACEAUTH\_IExecutorCallback.idl](face__auth_2_i_executor_callback_8idl.md)** - -- **[FaceAuthTypes.idl](_face_auth_types_8idl.md)** - -- **[IBatteryCallback.idl](_i_battery_callback_8idl.md)** - -- **[IBatteryInterface.idl](_i_battery_interface_8idl.md)** - -- **[IExecutor.idl](pin__auth_2_i_executor_8idl.md)** - -- **[IExecutorCallback.idl](pin__auth_2_i_executor_callback_8idl.md)** - -- **[IFaceAuthInterface.idl](_i_face_auth_interface_8idl.md)** - -- **[IPinAuthInterface.idl](_i_pin_auth_interface_8idl.md)** - -- **[IPowerHdiCallback.idl](_i_power_hdi_callback_8idl.md)** - -- **[IPowerInterface.idl](_i_power_interface_8idl.md)** - -- **[IThermalInterface.idl](_i_thermal_interface_8idl.md)** - -- **[IThermalCallback.idl](_i_thermal_callback_8idl.md)** - -- **[IUserAuthInterface.idl](_i_user_auth_interface_8idl.md)** - -- **[PowerTypes.idl](_power_types_8idl.md)** - -- **[ThermalTypes.idl](_thermal_types_8idl.md)** - -- **[Types.idl](_types_8idl.md)** - -- **[UserAuthTypes.idl](_user_auth_types_8idl.md)** - - diff --git a/zh-cn/device-dev/api/toctopics/icamera__device_8h.md b/zh-cn/device-dev/api/toctopics/icamera__device_8h.md deleted file mode 100644 index e0827a8120..0000000000 --- a/zh-cn/device-dev/api/toctopics/icamera__device_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# icamera\_device.h - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

OHOS::Camera::ICameraDevice

-

Camera设备操作。

-
- -## **详细描述** - -Camera设备操作接口。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/icamera__device__callback_8h.md b/zh-cn/device-dev/api/toctopics/icamera__device__callback_8h.md deleted file mode 100644 index 60e87d217c..0000000000 --- a/zh-cn/device-dev/api/toctopics/icamera__device__callback_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# icamera\_device\_callback.h - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

OHOS::Camera::ICameraDeviceCallback

-

Camera设备操作回调。

-
- -## **详细描述** - -Camera设备的回调接口,主要包含camera设备发生错误时和上报metadata的回调函数。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/icamera__host_8h.md b/zh-cn/device-dev/api/toctopics/icamera__host_8h.md deleted file mode 100644 index 160ccb93df..0000000000 --- a/zh-cn/device-dev/api/toctopics/icamera__host_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# icamera\_host.h - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

OHOS::Camera::ICameraHost

-

Camera服务的管理类。

-
- -## **详细描述** - -Camera服务的管理类,对上层提供HDI接口。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/icamera__host__callback_8h.md b/zh-cn/device-dev/api/toctopics/icamera__host__callback_8h.md deleted file mode 100644 index e482262c6c..0000000000 --- a/zh-cn/device-dev/api/toctopics/icamera__host__callback_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# icamera\_host\_callback.h - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

OHOS::Camera::ICameraHostCallback

-

Camera服务的管理回调。

-
- -## **详细描述** - -ICameraHost的回调接口,提供Camera设备和闪关灯状态变化的回调函数,回调函数由调用者实现。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/index.md b/zh-cn/device-dev/api/toctopics/index.md deleted file mode 100644 index 4580e97fa9..0000000000 --- a/zh-cn/device-dev/api/toctopics/index.md +++ /dev/null @@ -1,37 +0,0 @@ -# NativeAPI参考 - -- **[Audio](_audio.md)** - -- **[Battery](battery.md)** - -- **[Camera](_camera.md)** - -- **[Codec](_codec.md)** - -- **[Display](_display.md)** - -- **[DAC](_d_a_c.md)** - -- **[HdfFaceAuth](_hdf_face_auth.md)** - -- **[Input](_input.md)** - -- **[Light](_light.md)** - -- **[HdfPinAuth](_hdf_pin_auth.md)** - -- **[Power](power.md)** - -- **[Sensor](_sensor.md)** - -- **[Thermal](thermal.md)** - -- **[USB](_u_s_b.md)** - -- **[HdfUserAuth](_hdf_user_auth.md)** - -- **[Vibrator](_vibrator.md)** - -- **[WLAN](_w_l_a_n.md)** - - diff --git a/zh-cn/device-dev/api/toctopics/input__controller_8h.md b/zh-cn/device-dev/api/toctopics/input__controller_8h.md deleted file mode 100644 index 8537fac3ee..0000000000 --- a/zh-cn/device-dev/api/toctopics/input__controller_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# input\_controller.h - -## **概述** - -**所属模块:** - -[Input](_input.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

InputController

-

提供input设备业务控制相关的接口。 更多...

-
- -## **详细描述** - -描述input设备业务控制相关的接口声明。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/input__manager_8h.md b/zh-cn/device-dev/api/toctopics/input__manager_8h.md deleted file mode 100644 index c22c3135b5..0000000000 --- a/zh-cn/device-dev/api/toctopics/input__manager_8h.md +++ /dev/null @@ -1,61 +0,0 @@ -# input\_manager.h - -## **概述** - -**所属模块:** - -[Input](_input.md) - -## **汇总** - -## 类 - - - - - - - - - - - - - -

-

描述

-

InputManager

-

提供input设备管理相关的接口。 更多...

-

IInputInterface

-

定义用于提供输入设备驱动能力的接口。更多...

-
- -## 函数 - - - - - - - - - - -

函数

-

描述

-

GetInputInterface (IInputInterface **interface)

-

input服务通过调用此接口获取操作input设备的所有接口。 更多...

-
- -## **详细描述** - -描述input设备管理相关的接口声明。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/input__reporter_8h.md b/zh-cn/device-dev/api/toctopics/input__reporter_8h.md deleted file mode 100644 index 6ca5cf08ad..0000000000 --- a/zh-cn/device-dev/api/toctopics/input__reporter_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# input\_reporter.h - -## **概述** - -**所属模块:** - -[Input](_input.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

InputReporter

-

提供input设备数据上报相关的接口。 更多...

-
- -## **详细描述** - -描述input设备数据上报相关的接口声明。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/input__type_8h.md b/zh-cn/device-dev/api/toctopics/input__type_8h.md deleted file mode 100644 index 4035c8d157..0000000000 --- a/zh-cn/device-dev/api/toctopics/input__type_8h.md +++ /dev/null @@ -1,128 +0,0 @@ -# input\_type.h - -## **概述** - -**所属模块:** - -[Input](_input.md) - -## **汇总** - -## 类 - - - - - - - - - - - - - - - - - - - -

-

描述

-

EventPackage

-

input事件数据包结构 更多...

-

InputReportEventCb

-

此结构体定义了输入事件回调函数并提供给input服务使用 更多...

-

DeviceInfo

-

input设备基础设备信息 更多...

-

InputExtraCmd

-

扩展指令的数据结构 更多...

-
- -## 宏定义 - - - - - - - - - - - - - - - - - - - - - - - - - -

宏定义

-

描述

-

MAX_INPUT_DEV_NUM 32

-

Input设备最大数量。

-

MAX_NODE_PATH_LEN 64

-

节点路径最大长度。

-

CHIP_INFO_LEN 10

-

芯片信息长度。

-

CHIP_NAME_LEN 10

-

芯片名称长度。

-

VENDOR_NAME_LEN 10

-

厂商名称长度。

-

SELF_TEST_RESULT_LEN 20

-

自测结果长度。

-
- -## 枚举 - - - - - - - - - - - - - - - - - - - -

枚举

-

描述

-

RetStatus { INPUT_SUCCESS = 0, INPUT_FAILURE = -1, INPUT_INVALID_PARAM = -2, INPUT_NOMEM = -3, INPUT_NULL_PTR = -4, INPUT_TIMEOUT = -5, INPUT_UNSUPPORTED = -6 }

-

定义返回值类型 更多...

-

InputDevType { INDEV_TYPE_TOUCH, INDEV_TYPE_KEY, INDEV_TYPE_KEYBOARD, INDEV_TYPE_MOUSE, INDEV_TYPE_BUTTON, INDEV_TYPE_CROWN, INDEV_TYPE_ENCODER, INDEV_TYPE_UNKNOWN }

-

定义input设备类型 更多...

-

PowerStatus { INPUT_RESUME, INPUT_SUSPEND, INPUT_LOW_POWER, INPUT_POWER_STATUS_UNKNOWN }

-

定义电源状态 更多...

-

CapacitanceTest { BASE_TEST, FULL_TEST, MMI_TEST, RUNNING_TEST, TEST_TYPE_UNKNOWN }

-

定义容值测试类型 更多...

-
- -## **详细描述** - -input设备相关的类型定义,定义了input设备驱动接口所使用的结构体及枚举类型。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/interface_i_battery_callback.md b/zh-cn/device-dev/api/toctopics/interface_i_battery_callback.md deleted file mode 100644 index aa8fd9a5a4..0000000000 --- a/zh-cn/device-dev/api/toctopics/interface_i_battery_callback.md +++ /dev/null @@ -1,72 +0,0 @@ -# IBatteryCallback - -## **概述** - -**所属模块:** - -[Battery](battery.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - -

Public 成员函数

-

描述

-

Update ([in] struct BatteryInfo event)

-

电池信息的回调方法。 更多...

-
- -## **详细描述** - -电池信息的回调。 - -服务创建此回调对象后,可以调用IBatteryInterface的接口注册回调,从而订阅电池信息的变化。 - -**Since:** - -3.1 - -## **成员函数说明** - -## Update\(\) - -``` -IBatteryCallback::Update ([in] struct BatteryInfo event) -``` - -**描述:** - -电池信息的回调方法。 - -当电池信息发生变化时,将通过此方法的参数返回给服务。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

event

-

电池信息,如电量,电压,健康状态等。

-
- -**参见:** - -[BatteryInfo](_battery_info.md) - diff --git a/zh-cn/device-dev/api/toctopics/interface_i_battery_interface.md b/zh-cn/device-dev/api/toctopics/interface_i_battery_interface.md deleted file mode 100644 index 5981147195..0000000000 --- a/zh-cn/device-dev/api/toctopics/interface_i_battery_interface.md +++ /dev/null @@ -1,609 +0,0 @@ -# IBatteryInterface - -## **概述** - -**所属模块:** - -[Battery](battery.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 成员函数

-

描述

-

Register ([in] IBatteryCallback event)

-

注册电池信息的回调。 更多...

-

UnRegister ()

-

取消注册电池信息的回调。 更多...

-

ChangePath ([in] String path)

-

设置电池信息节点的路径。 更多...

-

GetCapacity ([out] int capacity)

-

获取电池的电量百分比。 更多...

-

GetVoltage ([out] int voltage)

-

获取电池的电压,单位微伏。 更多...

-

GetTemperature ([out] int temperature)

-

获取电池的充电温度,单位0.1摄氏度。 更多...

-

GetHealthState ([out] enum BatteryHealthState healthState)

-

获取电池的健康状态。 更多...

-

GetPluggedType ([out] enum BatteryPluggedType pluggedType)

-

获取充电设备类型。 更多...

-

GetChargeState ([out] enum BatteryChargeState chargeState)

-

获取充电状态。 更多...

-

GetPresent ([out] boolean present)

-

获取是否支持电池或者电池是否在位。 更多...

-

GetTechnology ([out] String technology)

-

获取电池的技术型号。 更多...

-

GetTotalEnergy ([out] int totalEnergy)

-

获取电池的总容量。 更多...

-

GetCurrentAverage ([out] int curAverage)

-

获取电池的平均电流。 更多...

-

GetCurrentNow ([out] int curNow)

-

获取电池的电流。 更多...

-

GetRemainEnergy ([out] int remainEnergy)

-

获取电池的剩余容量。 更多...

-

GetBatteryInfo ([out] struct BatteryInfo info)

-

获取电池的全部信息。 更多...

-
- -## **详细描述** - -获取、订阅电池信息的接口。 - -服务获取此对象后,可以调用相关的接口获取、订阅电池信息。 - -**Since:** - -3.1 - -## **成员函数说明** - -## ChangePath\(\) - -``` -IBatteryInterface::ChangePath ([in] String path) -``` - -**描述:** - -设置电池信息节点的路径。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

path

-

输入参数,电池信息节点的路径。

-
- -**返回:** - -HDF\_SUCCESS 表示路径设置成功。 - -## GetBatteryInfo\(\) - -``` -IBatteryInterface::GetBatteryInfo ([out] struct BatteryInfo info) -``` - -**描述:** - -获取电池的全部信息。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

info

-

输出参数,电池的全部信息。

-
- -**返回:** - -HDF\_SUCCESS 表示获取成功。 - -**参见:** - -[BatteryInfo](_battery_info.md) - -## GetCapacity\(\) - -``` -IBatteryInterface::GetCapacity ([out] int capacity) -``` - -**描述:** - -获取电池的电量百分比。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

capacity

-

输出参数,表示电量的百分比值。

-
- -**返回:** - -HDF\_SUCCESS 表示获取成功。 - -## GetChargeState\(\) - -``` -IBatteryInterface::GetChargeState ([out] enum BatteryChargeState chargeState) -``` - -**描述:** - -获取充电状态。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

chargeState

-

输出参数,表示充电状态。

-
- -**返回:** - -HDF\_SUCCESS 表示获取成功。 - -**参见:** - -[BatteryChargeState](battery.md#ga35791cca3603f7855c6368fbd00b21f1) - -## GetCurrentAverage\(\) - -``` -IBatteryInterface::GetCurrentAverage ([out] int curAverage) -``` - -**描述:** - -获取电池的平均电流。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

totalEnergy

-

输出参数,表示电池的平均电流,单位毫安。

-
- -**返回:** - -HDF\_SUCCESS 表示获取成功。 - -## GetCurrentNow\(\) - -``` -IBatteryInterface::GetCurrentNow ([out] int curNow) -``` - -**描述:** - -获取电池的电流。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

curNow

-

输出参数,表示电池的实时电流,单位毫安。

-
- -**返回:** - -HDF\_SUCCESS 表示获取成功。 - -## GetHealthState\(\) - -``` -IBatteryInterface::GetHealthState ([out] enum BatteryHealthState healthState) -``` - -**描述:** - -获取电池的健康状态。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

healthState

-

输出参数,表示电池健康状态。

-
- -**返回:** - -HDF\_SUCCESS 表示获取成功。 - -**参见:** - -[BatteryHealthState](battery.md#gaec9b86ee31a5d8abf7c804d81b542f2f) - -## GetPluggedType\(\) - -``` -IBatteryInterface::GetPluggedType ([out] enum BatteryPluggedType pluggedType) -``` - -**描述:** - -获取充电设备类型。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

pluggedType

-

输出参数,表示充电设备类型。

-
- -**返回:** - -HDF\_SUCCESS 表示获取成功。 - -**参见:** - -[BatteryPluggedType](battery.md#gab80029eabf9d0fdcc3ab4d4a4c3be6ba) - -## GetPresent\(\) - -``` -IBatteryInterface::GetPresent ([out] boolean present) -``` - -**描述:** - -获取是否支持电池或者电池是否在位。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

present

-

输出参数,表示是否支持电池或者电池是否在位。true表示支持或在位,false表示不支持或不在位。

-
- -**返回:** - -HDF\_SUCCESS 表示获取成功。 - -## GetRemainEnergy\(\) - -``` -IBatteryInterface::GetRemainEnergy ([out] int remainEnergy) -``` - -**描述:** - -获取电池的剩余容量。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

remainEnergy

-

输出参数,表示电池的剩余容量,单位毫安时。

-
- -**返回:** - -HDF\_SUCCESS 表示获取成功。 - -## GetTechnology\(\) - -``` -IBatteryInterface::GetTechnology ([out] String technology) -``` - -**描述:** - -获取电池的技术型号。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

technology

-

输出参数,当前电池技术型号。

-
- -**返回:** - -HDF\_SUCCESS 表示获取成功。 - -## GetTemperature\(\) - -``` -IBatteryInterface::GetTemperature ([out] int temperature) -``` - -**描述:** - -获取电池的充电温度,单位0.1摄氏度。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

temperature

-

输出参数,表示电池温度。

-
- -**返回:** - -HDF\_SUCCESS 表示获取成功。 - -## GetTotalEnergy\(\) - -``` -IBatteryInterface::GetTotalEnergy ([out] int totalEnergy) -``` - -**描述:** - -获取电池的总容量。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

totalEnergy

-

输出参数,表示电池的总容量,单位毫安时。

-
- -**返回:** - -HDF\_SUCCESS 表示获取成功。 - -## GetVoltage\(\) - -``` -IBatteryInterface::GetVoltage ([out] int voltage) -``` - -**描述:** - -获取电池的电压,单位微伏。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

voltage

-

输出参数,表示电池的电压。

-
- -**返回:** - -HDF\_SUCCESS 表示获取成功。 - -## Register\(\) - -``` -IBatteryInterface::Register ([in] IBatteryCallback event) -``` - -**描述:** - -注册电池信息的回调。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

event

-

输入参数,服务注册的回调。

-
- -**返回:** - -HDF\_SUCCESS 表示注册成功。 - -## UnRegister\(\) - -``` -IBatteryInterface::UnRegister () -``` - -**描述:** - -取消注册电池信息的回调。 - -**返回:** - -HDF\_SUCCESS 表示取消注册成功。 - diff --git a/zh-cn/device-dev/api/toctopics/interface_i_executor.md b/zh-cn/device-dev/api/toctopics/interface_i_executor.md deleted file mode 100644 index 79f515ea61..0000000000 --- a/zh-cn/device-dev/api/toctopics/interface_i_executor.md +++ /dev/null @@ -1,764 +0,0 @@ -# IExecutor - -## **概述** - -**所属模块:** - -[HdfFaceAuth](_hdf_face_auth.md) | [HdfPinAuth](_hdf_pin_auth.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 成员函数

-

描述

-

GetExecutorInfo ([out] struct ExecutorInfo executorInfo)

-

获取执行器信息,人脸认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。 更多...

-

GetTemplateInfo ([in] unsigned long templateId, [out] struct TemplateInfo templateInfo)

-

获取凭据模版信息。 更多...

-

OnRegisterFinish ([in] unsigned long[] templateIdList, [in] unsigned char[] frameworkPublicKey, [in] unsigned char[] extraInfo)

-

完成执行器注册,对人脸特征模版进行对账,用于删除无效的人脸特征模板及相关信息。 更多...

-

Enroll ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj)

-

注册人脸特征模版。 更多...

-

Authenticate ([in] unsigned long scheduleId, [in] unsigned long[] templateIdList, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj)

-

人脸认证。 更多...

-

Identify ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj)

-

人脸识别。 更多...

-

Delete ([in] unsigned long[] templateIdList)

-

删除人脸特征模版。 更多...

-

Cancel ([in] unsigned long scheduleId)

-

取消操作请求。 更多...

-

SendCommand ([in] int commandId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj)

-

发送人脸认证功能相关操作命令。 更多...

-

GetExecutorInfo ([out] struct ExecutorInfo executorInfo)

-

获取执行器信息,口令认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。 更多...

-

OnRegisterFinish ([in] unsigned long[] templateIdList, [in] unsigned char[] frameworkPublicKey, [in] unsigned char[] extraInfo)

-

完成执行器注册,对口令模版信息进行对账,用于删除无效的口令模板及相关信息。 更多...

-

OnSetData ([in] unsigned long scheduleId, [in] unsigned long authSubType, [in] unsigned char[] data)

-

设置口令数据,口令认证驱动处理注册或认证口令请求时,如果口令数据由口令认证服务获取,需要通过该接口将口令数据传给口令认证驱动。 更多...

-

Enroll ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj)

-

注册口令。 更多...

-

Authenticate ([in] unsigned long scheduleId, [in] unsigned long templateId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj)

-

认证口令。 更多...

-

Delete ([in] unsigned long templateId)

-

删除口令。 更多...

-

SendCommand ([in] int commandId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj)

-

发送口令认证功能相关操作命令。 更多...

-
- -## **详细描述** - -定义执行器标准API接口。接口可用于: - -- 获取执行器信息。 -- 获取凭据模版信息。 -- 注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 -- 注册口令,认证口令,删除口令等。 - -**Since:** - -3.2 - -**Version:** - -1.0 - -## **成员函数说明** - -## Authenticate\(\) \[1/2\] - -``` -IExecutor::Authenticate ([in] unsigned long scheduleId, [in] unsigned long templateId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) -``` - -**描述:** - -认证口令。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

scheduleId

-

调度ID,用于标识一次操作请求的调度过程。

-

templateId

-

指定要认证的模版ID。

-

extraInfo

-

其他相关信息,用于支持信息扩展。

-

callbackObj

-

回调对象IExecutorCallback

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## Authenticate\(\) \[2/2\] - -``` -IExecutor::Authenticate ([in] unsigned long scheduleId, [in] unsigned long[] templateIdList, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) -``` - -**描述:** - -人脸认证。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

scheduleId

-

调度ID,用于标识一次操作请求的调度过程。

-

templateIdList

-

指定要认证的模版ID列表。

-

extraInfo

-

其他相关信息,用于支持信息扩展。

-

callbackObj

-

回调对象IExecutorCallback

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## Cancel\(\) - -``` -IExecutor::Cancel ([in] unsigned long scheduleId) -``` - -**描述:** - -取消操作请求。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

scheduleId

-

调度ID,用于标识一次操作请求的调度过程。

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## Delete\(\) \[1/2\] - -``` -IExecutor::Delete ([in] unsigned long templateId) -``` - -**描述:** - -删除口令。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

templateId

-

模版ID。

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## Delete\(\) \[2/2\] - -``` -IExecutor::Delete ([in] unsigned long[] templateIdList) -``` - -**描述:** - -删除人脸特征模版。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

templateIdList

-

指定要删除的模版ID列表。

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## Enroll\(\) \[1/2\] - -``` -IExecutor::Enroll ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) -``` - -**描述:** - -注册人脸特征模版。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

scheduleId

-

调度ID,用于标识一次操作请求的调度过程。

-

extraInfo

-

其他相关信息,用于支持信息扩展。

-

callbackObj

-

回调对象IExecutorCallback

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## Enroll\(\) \[2/2\] - -``` -IExecutor::Enroll ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) -``` - -**描述:** - -注册口令。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

scheduleId

-

调度ID,用于标识一次操作请求的调度过程。

-

extraInfo

-

其他相关信息,用于支持信息扩展。

-

callbackObj

-

回调对象IExecutorCallback

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## GetExecutorInfo\(\) \[1/2\] - -``` -IExecutor::GetExecutorInfo ([out] struct ExecutorInfo executorInfo) -``` - -**描述:** - -获取执行器信息,人脸认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

executorInfo

-

执行器信息ExecutorInfo

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## GetExecutorInfo\(\) \[2/2\] - -``` -IExecutor::GetExecutorInfo ([out] struct ExecutorInfo executorInfo) -``` - -**描述:** - -获取执行器信息,口令认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

executorInfo

-

执行器信息ExecutorInfo

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## GetTemplateInfo\(\) - -``` -IExecutor::GetTemplateInfo ([in] unsigned long templateId, [out] struct TemplateInfo templateInfo ) -``` - -**描述:** - -获取凭据模版信息。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

templateId

-

凭据模版ID。

-

templateInfo

-

凭据模版信息TemplateInfo

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## Identify\(\) - -``` -IExecutor::Identify ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) -``` - -**描述:** - -人脸识别。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

scheduleId

-

调度ID,用于标识一次操作请求的调度过程。

-

extraInfo

-

其他相关信息,用于支持信息扩展。

-

callbackObj

-

回调对象IExecutorCallback

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## OnRegisterFinish\(\) \[1/2\] - -``` -IExecutor::OnRegisterFinish ([in] unsigned long[] templateIdList, [in] unsigned char[] frameworkPublicKey, [in] unsigned char[] extraInfo ) -``` - -**描述:** - -完成执行器注册,对人脸特征模版进行对账,用于删除无效的人脸特征模板及相关信息。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

templateIdList

-

用户认证框架内由该执行器注册的人脸特征模版ID列表。

-

frameworkPublicKey

-

用户认证框架的公钥,用于校验用户认证框架私钥签名的信息。

-

extraInfo

-

其他相关信息,用于支持信息扩展。

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## OnRegisterFinish\(\) \[2/2\] - -``` -IExecutor::OnRegisterFinish ([in] unsigned long[] templateIdList, [in] unsigned char[] frameworkPublicKey, [in] unsigned char[] extraInfo ) -``` - -**描述:** - -完成执行器注册,对口令模版信息进行对账,用于删除无效的口令模板及相关信息。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

templateIdList

-

用户认证框架内由该执行器注册的口令凭据模版ID列表。

-

frameworkPublicKey

-

用户认证框架的公钥,用于校验用户认证框架私钥签名的信息。

-

extraInfo

-

其他相关信息,用于支持信息扩展。

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## OnSetData\(\) - -``` -IExecutor::OnSetData ([in] unsigned long scheduleId, [in] unsigned long authSubType, [in] unsigned char[] data ) -``` - -**描述:** - -设置口令数据,口令认证驱动处理注册或认证口令请求时,如果口令数据由口令认证服务获取,需要通过该接口将口令数据传给口令认证驱动。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

scheduleId

-

调度ID,用于标识一次操作请求的调度过程。

-

authSubType

-

口令子类型,如六位数字PIN码等。

-

data

-

口令数据。

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## SendCommand\(\) \[1/2\] - -``` -IExecutor::SendCommand ([in] int commandId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) -``` - -**描述:** - -发送人脸认证功能相关操作命令。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

commandId

-

操作命令IDCommandId

-

extraInfo

-

其他相关信息,用于支持信息扩展。

-

callbackObj

-

回调对象IExecutorCallback

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## SendCommand\(\) \[2/2\] - -``` -IExecutor::SendCommand ([in] int commandId, [in] unsigned char[] extraInfo, [in] IExecutorCallback callbackObj ) -``` - -**描述:** - -发送口令认证功能相关操作命令。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

commandId

-

操作命令IDCommandId

-

extraInfo

-

其他相关信息,用于支持信息扩展。

-

callbackObj

-

回调对象IExecutorCallback

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - diff --git a/zh-cn/device-dev/api/toctopics/interface_i_executor_callback.md b/zh-cn/device-dev/api/toctopics/interface_i_executor_callback.md deleted file mode 100644 index 640732758e..0000000000 --- a/zh-cn/device-dev/api/toctopics/interface_i_executor_callback.md +++ /dev/null @@ -1,165 +0,0 @@ -# IExecutorCallback - -## **概述** - -**所属模块:** - -[HdfFaceAuth](_hdf_face_auth.md) | [HdfPinAuth](_hdf_pin_auth.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - - - - - - - -

Public 成员函数

-

描述

-

OnResult ([in] int result, [in] unsigned char[] extraInfo)

-

定义操作结果回调函数。 更多...

-

OnAcquireInfo ([in] int acquire, [in] unsigned char[] extraInfo)

-

定义操作过程信息反馈回调函数。 更多...

-

OnGetData ([in] unsigned long scheduleId, [in] unsigned char[] salt, [in] unsigned long authSubType)

-

定义请求获取口令数据回调函数。 更多...

-
- -## **详细描述** - -定义异步API接口回调,用于返回异步接口的请求处理结果和获取信息。使用细节见[IExecutor](interface_i_executor.md)。 - -**Since:** - -3.2 - -**Version:** - -1.0 - -## **成员函数说明** - -## OnAcquireInfo\(\) - -``` -IExecutorCallback::OnAcquireInfo ([in] int acquire, [in] unsigned char[] extraInfo ) -``` - -**描述:** - -定义操作过程信息反馈回调函数。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

acquire

-

提示信息编码FaceTipsCode

-

extraInfo

-

其他相关信息,用于支持信息扩展。

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## OnGetData\(\) - -``` -IExecutorCallback::OnGetData ([in] unsigned long scheduleId, [in] unsigned char[] salt, [in] unsigned long authSubType ) -``` - -**描述:** - -定义请求获取口令数据回调函数。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

salt

-

盐值,用于对口令明文进行单向处理。

-

authSubType

-

口令子类型,如六位数字PIN码等。

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## OnResult\(\) - -``` -IExecutorCallback::OnResult ([in] int result, [in] unsigned char[] extraInfo ) -``` - -**描述:** - -定义操作请求处理结果回调函数。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

result

-

操作请求处理结果。

-

extraInfo

-

其他相关信息,如用户认证通过时用于返回执行器签发的认证令牌等。

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - diff --git a/zh-cn/device-dev/api/toctopics/interface_i_face_auth_interface.md b/zh-cn/device-dev/api/toctopics/interface_i_face_auth_interface.md deleted file mode 100644 index 645f51f2b3..0000000000 --- a/zh-cn/device-dev/api/toctopics/interface_i_face_auth_interface.md +++ /dev/null @@ -1,74 +0,0 @@ -# IFaceAuthInterface - -## **概述** - -**所属模块:** - -[HdfFaceAuth](_hdf_face_auth.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - -

Public 成员函数

-

描述

-

GetExecutorList ([out] IExecutor[] executorList)

-

获取执行器列表,人脸认证服务进程启动进行初始化操作时通过该接口获取人脸认证驱动支持的执行器列表。 更多...

-
- -## **详细描述** - -定义获取人脸认证驱动的执行器列表接口。 - -**Since:** - -3.2 - -**Version:** - -1.0 - -## **成员函数说明** - -## GetExecutorList\(\) - -``` -IFaceAuthInterface::GetExecutorList ([out] IExecutor[] executorList) -``` - -**描述:** - -获取执行器列表,人脸认证服务进程启动进行初始化操作时通过该接口获取人脸认证驱动支持的执行器列表。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

executorList

-

执行器对象列表IExecutor

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - diff --git a/zh-cn/device-dev/api/toctopics/interface_i_pin_auth_interface.md b/zh-cn/device-dev/api/toctopics/interface_i_pin_auth_interface.md deleted file mode 100644 index a07212b3f6..0000000000 --- a/zh-cn/device-dev/api/toctopics/interface_i_pin_auth_interface.md +++ /dev/null @@ -1,74 +0,0 @@ -# IPinAuthInterface - -## **概述** - -**所属模块:** - -[HdfPinAuth](_hdf_pin_auth.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - -

Public 成员函数

-

描述

-

GetExecutorList ([out] IExecutor[] executorList)

-

获取执行器列表,口令认证服务进程启动进行初始化操作时通过该接口获取口令认证驱动支持的执行器列表。 更多...

-
- -## **详细描述** - -定义获取口令认证驱动的执行器列表接口。 - -**Since:** - -3.2 - -**Version:** - -1.0 - -## **成员函数说明** - -## GetExecutorList\(\) - -``` -IPinAuthInterface::GetExecutorList ([out] IExecutor[] executorList) -``` - -**描述:** - -获取执行器列表,口令认证服务进程启动进行初始化操作时通过该接口获取口令认证驱动支持的执行器列表。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

executorList

-

执行器对象列表IExecutor

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - diff --git a/zh-cn/device-dev/api/toctopics/interface_i_power_hdi_callback.md b/zh-cn/device-dev/api/toctopics/interface_i_power_hdi_callback.md deleted file mode 100644 index 039e06e76a..0000000000 --- a/zh-cn/device-dev/api/toctopics/interface_i_power_hdi_callback.md +++ /dev/null @@ -1,68 +0,0 @@ -# IPowerHdiCallback - -## **概述** - -**所属模块:** - -[Power](power.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - - - - -

Public 成员函数

-

描述

-

OnSuspend ()

-

休眠状态的回调方法。 更多...

-

OnWakeup ()

-

唤醒状态的回调方法。 更多...

-
- -## **详细描述** - -休眠/唤醒状态的回调。 - -服务创建此回调对象后,可以调用IPowerInterface的接口注册回调,从而订阅休眠/唤醒状态的变化。 - -**Since:** - -3.1 - -## **成员函数说明** - -## OnSuspend\(\) - -``` -IPowerHdiCallback::OnSuspend () -``` - -**描述:** - -休眠状态的回调方法。 - -当设备进入休眠状态时,将通过此方法通知给服务。 - -## OnWakeup\(\) - -``` -IPowerHdiCallback::OnWakeup () -``` - -**描述:** - -唤醒状态的回调方法。 - -当设备进入唤醒状态时,将通过此方法通知给服务。 - diff --git a/zh-cn/device-dev/api/toctopics/interface_i_power_interface.md b/zh-cn/device-dev/api/toctopics/interface_i_power_interface.md deleted file mode 100644 index 42fd9b8edb..0000000000 --- a/zh-cn/device-dev/api/toctopics/interface_i_power_interface.md +++ /dev/null @@ -1,239 +0,0 @@ -# IPowerInterface - -## **概述** - -**所属模块:** - -[Power](power.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 成员函数

-

描述

-

RegisterCallback ([in] IPowerHdiCallback ipowerHdiCallback)

-

注册休眠/唤醒状态的回调。 更多...

-

StartSuspend ()

-

执行设备休眠操作。 更多...

-

StopSuspend ()

-

执行设备唤醒操作。 更多...

-

ForceSuspend ()

-

执行设备强制休眠操作。 更多...

-

SuspendBlock ([in] String name)

-

打开运行锁,阻止休眠。 更多...

-

SuspendUnblock ([in] String name)

-

关闭运行锁,取消阻止休眠。 更多...

-

PowerDump ([out] String info)

-

获取电源的Dump信息。 更多...

-
- -## **详细描述** - -休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 - -服务获取此对象后,可以调用相关的接口对设备进行休眠/唤醒、订阅休眠/唤醒状态和管理运行锁。 - -**Since:** - -3.1 - -## **成员函数说明** - -## ForceSuspend\(\) - -``` -IPowerInterface::ForceSuspend () -``` - -**描述:** - -执行设备强制休眠操作。 - -**返回:** - -HDF\_SUCCESS 表示操作成功。 - -## PowerDump\(\) - -``` -IPowerInterface::PowerDump ([out] String info) -``` - -**描述:** - -获取电源的Dump信息。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

info

-

输出参数,电源的Dump信息。

-
- -**返回:** - -HDF\_SUCCESS 表示操作成功。 - -## RegisterCallback\(\) - -``` -IPowerInterface::RegisterCallback ([in] IPowerHdiCallback ipowerHdiCallback) -``` - -**描述:** - -注册休眠/唤醒状态的回调。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

ipowerHdiCallback

-

输入参数,服务注册的回调。

-
- -**返回:** - -HDF\_SUCCESS 表示注册成功。 - -**参见:** - -[IPowerHdiCallback](interface_i_power_hdi_callback.md) - -## StartSuspend\(\) - -``` -IPowerInterface::StartSuspend () -``` - -**描述:** - -执行设备休眠操作。 - -**返回:** - -HDF\_SUCCESS 表示操作成功。 - -## StopSuspend\(\) - -``` -IPowerInterface::StopSuspend () -``` - -**描述:** - -执行设备唤醒操作。 - -**返回:** - -HDF\_SUCCESS 表示操作成功。 - -## SuspendBlock\(\) - -``` -IPowerInterface::SuspendBlock ([in] String name) -``` - -**描述:** - -打开运行锁,阻止休眠。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

name

-

输入参数,运行锁的名称。

-
- -**返回:** - -HDF\_SUCCESS 表示操作成功。 - -## SuspendUnblock\(\) - -``` -IPowerInterface::SuspendUnblock ([in] String name) -``` - -**描述:** - -关闭运行锁,取消阻止休眠。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

name

-

输入参数,运行锁的名称。

-
- -**返回:** - -HDF\_SUCCESS 表示操作成功。 - diff --git a/zh-cn/device-dev/api/toctopics/interface_i_thermal_callback.md b/zh-cn/device-dev/api/toctopics/interface_i_thermal_callback.md deleted file mode 100644 index c77ae0c300..0000000000 --- a/zh-cn/device-dev/api/toctopics/interface_i_thermal_callback.md +++ /dev/null @@ -1,72 +0,0 @@ -# IThermalCallback - -## **概述** - -**所属模块:** - -[Thermal](thermal.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - -

Public 成员函数

-

描述

-

OnThermalDataEvent ([in] struct HdfThermalCallbackInfo event)

-

设备发热状态变化的回调方法。 更多...

-
- -## **详细描述** - -订阅设备发热状态的回调。 - -服务创建此回调对象后,可以调用IThermalInterface的接口注册回调,从而订阅设备发热状态的变化。 - -**Since:** - -3.1 - -## **成员函数说明** - -## OnThermalDataEvent\(\) - -``` -IThermalCallback::OnThermalDataEvent ([in] struct HdfThermalCallbackInfo event) -``` - -**描述:** - -设备发热状态变化的回调方法。 - -当设备发热状态发生变化时,将通过此方法的参数返回给服务。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

event

-

输入参数,设备发热信息,包括器件类型、器件温度。

-
- -**参见:** - -[HdfThermalCallbackInfo](_hdf_thermal_callback_info.md) - diff --git a/zh-cn/device-dev/api/toctopics/interface_i_thermal_interface.md b/zh-cn/device-dev/api/toctopics/interface_i_thermal_interface.md deleted file mode 100644 index 6618449c02..0000000000 --- a/zh-cn/device-dev/api/toctopics/interface_i_thermal_interface.md +++ /dev/null @@ -1,241 +0,0 @@ -# IThermalInterface - -## **概述** - -**所属模块:** - -[Thermal](thermal.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 成员函数

-

描述

-

SetCpuFreq ([in] int freq)

-

设置CPU频率。 更多...

-

SetGpuFreq ([in] int freq)

-

设置GPU频率。 更多...

-

SetBatteryCurrent ([in] int current)

-

设置充电电流。 更多...

-

GetThermalZoneInfo ([out] struct HdfThermalCallbackInfo event)

-

获取设备发热的信息。 更多...

-

Register ([in] IThermalCallback callbackObj)

-

注册设备发热状态的回调。 更多...

-

Unregister ()

-

取消注册设备发热状态的回调。 更多...

-
- -## **详细描述** - -设备温度管理、控制及订阅接口。 - -服务获取此对象后,可以调用相关的接口管理、控制和订阅设备温度。 - -**Since:** - -3.1 - -## **成员函数说明** - -## GetThermalZoneInfo\(\) - -``` -IThermalInterface::GetThermalZoneInfo ([out] struct HdfThermalCallbackInfo event) -``` - -**描述:** - -获取设备发热的信息。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

event

-

输出参数,设备发热信息,包括器件类型、器件温度。

-
- -**返回:** - -HDF\_SUCCESS 表示获取成功。 - -**参见:** - -[HdfThermalCallbackInfo](_hdf_thermal_callback_info.md) - -## Register\(\) - -``` -IThermalInterface::Register ([in] IThermalCallback callbackObj) -``` - -**描述:** - -注册设备发热状态的回调。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

callbackObj

-

输入参数,服务注册的回调。

-
- -**返回:** - -HDF\_SUCCESS 表示注册成功。 - -**参见:** - -[IThermalCallback](interface_i_thermal_callback.md) - -## SetBatteryCurrent\(\) - -``` -IThermalInterface::SetBatteryCurrent ([in] int current) -``` - -**描述:** - -设置充电电流。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

current

-

输入参数,充电电流,单位毫安。

-
- -**返回:** - -HDF\_SUCCESS 表示设置成功 - -## SetCpuFreq\(\) - -``` -IThermalInterface::SetCpuFreq ([in] int freq) -``` - -**描述:** - -设置CPU频率。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

freq

-

输入参数,设置CPU频率的值。

-
- -**返回:** - -HDF\_SUCCESS 表示设置成功。 - -## SetGpuFreq\(\) - -``` -IThermalInterface::SetGpuFreq ([in] int freq) -``` - -**描述:** - -设置GPU频率。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

freq

-

输入参数,设置GPU频率的值。

-
- -**返回:** - -HDF\_SUCCESS 表示设置成功。 - -## Unregister\(\) - -``` -IThermalInterface::Unregister () -``` - -**描述:** - -取消注册设备发热状态的回调。 - -**返回:** - -HDF\_SUCCESS 表示取消注册成功。 - diff --git a/zh-cn/device-dev/api/toctopics/interface_i_user_auth_interface.md b/zh-cn/device-dev/api/toctopics/interface_i_user_auth_interface.md deleted file mode 100644 index 58ebca0c9a..0000000000 --- a/zh-cn/device-dev/api/toctopics/interface_i_user_auth_interface.md +++ /dev/null @@ -1,982 +0,0 @@ -# IUserAuthInterface - -## **概述** - -**所属模块:** - -[HdfUserAuth](_hdf_user_auth.md) - -## **汇总** - -## Public 成员函数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public 成员函数

-

描述

-

Init ()

-

初始化用户认证驱动缓存信息,用于用户认证框架进程启动时初始化信息。 更多...

-

AddExecutor ([in] struct ExecutorRegisterInfo info, [out] unsigned long index, [out] unsigned char[] publicKey, [out] unsigned long[] templateIds)

-

添加认证执行器来获取认证能力,用于各认证基础服务如口令认证服务等将认证能力对接到用户认证框架。 更多...

-

DeleteExecutor ([in] unsigned long index)

-

删除执行器,用于清理失效的执行器信息。 更多...

-

OpenSession ([in] int userId, [out] unsigned char[] challenge)

-

开启一个认证凭据管理会话,用于在请求管理用户认证凭据前获取有效挑战值。 更多...

-

CloseSession ([in] int userId)

-

关闭认证凭据管理会话,完成用户认证凭据管理请求处理后,调用该接口使原挑战值失效。 更多...

-

BeginEnrollment ([in] int userId, [in] unsigned char[] authToken, [in] struct EnrollParam param, [out] struct ScheduleInfo info)

-

开始注册用户认证凭据。当注册凭据类型为口令且该用户已经注册了口令凭据时,将会更新口令凭据。 更多...

-

UpdateEnrollmentResult ([in] int userId, [in] unsigned char[] scheduleResult, [out] unsigned long credentialId, [out] struct CredentialInfo oldInfo)

-

更新用户凭据注册结果,完成凭据注册。 更多...

-

CancelEnrollment ([in] int userId)

-

取消注册请求。 更多...

-

DeleteCredential ([in] int userId, [in] unsigned long credentialId, [in] unsigned char[] authToken, [out] struct CredentialInfo info)

-

删除用户凭据信息。 更多...

-

GetCredential ([in] int userId, [in] enum AuthType authType, [out] struct CredentialInfo[] infos)

-

查询用户凭据信息。 更多...

-

GetSecureInfo ([in] int userId, [out] unsigned long secureUid, [out] struct EnrolledInfo[] infos)

-

查询用户安全信息。 更多...

-

DeleteUser ([in] int userId, [in] unsigned char[] authToken, [out] struct CredentialInfo[] deletedInfos)

-

删除用户口令认证凭据,在用户IAM系统内删除该用户,该请求由用户触发。 更多...

-

EnforceDeleteUser ([in] int userId, [out] struct CredentialInfo[] deletedInfos)

-

强制删除用户,该请求由系统内管理用户的模块触发。 更多...

-

BeginAuthentication ([in] unsigned long contextId, [in] struct AuthSolution param, [out] struct ScheduleInfo[] scheduleInfos)

-

开始认证用户,并生成认证方案。 更多...

-

UpdateAuthenticationResult ([in] unsigned long contextId, [in] unsigned char[] scheduleResult, [out] struct AuthResultInfo info)

-

更新认证结果,评估认证方案的认证结果。 更多...

-

CancelAuthentication ([in] unsigned long contextId)

-

取消用户认证请求。 更多...

-

BeginIdentification ([in] unsigned long contextId, [in] enum AuthType authType, [in] byte[] challenge, [in] unsigned int executorId, [out] struct ScheduleInfo scheduleInfo)

-

开始用户身份识别,并生成识别方案。 更多...

-

UpdateIdentificationResult ([in] unsigned long contextId, [in] unsigned char[] scheduleResult, [out] struct IdentifyResultInfo info)

-

更新用户身份识别结果,生成身份识别方案的结果 更多...

-

CancelIdentification ([in] unsigned long contextId)

-

取消用户身份识别请求。 更多...

-

GetAuthTrustLevel ([in] int userId, [in] enum AuthType authType, [out] unsigned int authTrustLevel)

-

获取当前认证类型的认证结果可信等级。 更多...

-

GetValidSolution ([in] int userId, [in] enum AuthType[] authTypes, [in] unsigned int authTrustLevel, [out] enum AuthType[] validTypes)

-

获取指定认证结果可信等级下有效的认证方式。 更多...

-
- -## **详细描述** - -声明用户认证驱动的API接口。 - -**Since:** - -3.2 - -**Version:** - -1.0 - -## **成员函数说明** - -## AddExecutor\(\) - -``` -IUserAuthInterface::AddExecutor ([in] struct ExecutorRegisterInfo info, [out] unsigned long index, [out] unsigned char[] publicKey, [out] unsigned long[] templateIds ) -``` - -**描述:** - -添加认证执行器来获取认证能力,用于各认证基础服务如口令认证服务等将认证能力对接到用户认证框架。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

info

-

执行器注册信息ExecutorRegisterInfo

-

index

-

用户认证框架的执行器索引。

-

publicKey

-

用户认证框架公钥。

-

templateIds

-

该执行器已注册的模版ID列表。

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## BeginAuthentication\(\) - -``` -IUserAuthInterface::BeginAuthentication ([in] unsigned long contextId, [in] struct AuthSolution param, [out] struct ScheduleInfo[] scheduleInfos ) -``` - -**描述:** - -开始认证用户,并生成认证方案。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

contextId

-

上下文索引。

-

param

-

认证方案AuthSolution

-

scheduleInfos

-

调度信息ScheduleInfo

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## BeginEnrollment\(\) - -``` -IUserAuthInterface::BeginEnrollment ([in] int userId, [in] unsigned char[] authToken, [in] struct EnrollParam param, [out] struct ScheduleInfo info ) -``` - -**描述:** - -开始注册用户认证凭据。当注册凭据类型为口令且该用户已经注册了口令凭据时,将会更新口令凭据。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

userId

-

用户ID。

-

authToken

-

用户口令认证令牌。

-

param

-

注册凭据参数EnrollParam

-

info

-

调度信息ScheduleInfo

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## BeginIdentification\(\) - -``` -IUserAuthInterface::BeginIdentification ([in] unsigned long contextId, [in] enum AuthType authType, [in] byte[] challenge, [in] unsigned int executorId, [out] struct ScheduleInfo scheduleInfo ) -``` - -**描述:** - -开始用户身份识别,并生成识别方案。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

contextId

-

上下文索引。

-

authType

-

用户身份识别类型AuthType}。

-

scheduleInfo

-

调度信息ScheduleInfo

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## CancelAuthentication\(\) - -``` -IUserAuthInterface::CancelAuthentication ([in] unsigned long contextId) -``` - -**描述:** - -取消用户认证请求。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

contextId

-

上下文索引。

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## CancelEnrollment\(\) - -``` -IUserAuthInterface::CancelEnrollment ([in] int userId) -``` - -**描述:** - -取消注册请求。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

userId

-

用户ID。

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## CancelIdentification\(\) - -``` -IUserAuthInterface::CancelIdentification ([in] unsigned long contextId) -``` - -**描述:** - -取消用户身份识别请求。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

contextId

-

上下文索引。

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## CloseSession\(\) - -``` -IUserAuthInterface::CloseSession ([in] int userId) -``` - -**描述:** - -关闭认证凭据管理会话,完成用户认证凭据管理请求处理后,调用该接口使原挑战值失效。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

userId

-

用户ID。

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## DeleteCredential\(\) - -``` -IUserAuthInterface::DeleteCredential ([in] int userId, [in] unsigned long credentialId, [in] unsigned char[] authToken, [out] struct CredentialInfo info ) -``` - -**描述:** - -删除用户凭据信息。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

userId

-

用户ID。

-

credentialId

-

凭据ID。

-

authToken

-

用户口令认证令牌。

-

info

-

删除的凭据信息CredentialInfo

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## DeleteExecutor\(\) - -``` -IUserAuthInterface::DeleteExecutor ([in] unsigned long index) -``` - -**描述:** - -删除执行器,用于清理失效的执行器信息。 - -**参数:** - - - - - - - - - - -

名称

-

描述

-

index

-

用户认证框架的执行器索引。

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## DeleteUser\(\) - -``` -IUserAuthInterface::DeleteUser ([in] int userId, [in] unsigned char[] authToken, [out] struct CredentialInfo[] deletedInfos ) -``` - -**描述:** - -删除用户口令认证凭据,在用户IAM系统内删除该用户,该请求由用户触发。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

userId

-

用户ID。

-

authToken

-

用户口令认证令牌。

-

deletedInfos

-

删除的凭据信息CredentialInfo

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## EnforceDeleteUser\(\) - -``` -IUserAuthInterface::EnforceDeleteUser ([in] int userId, [out] struct CredentialInfo[] deletedInfos ) -``` - -**描述:** - -强制删除用户,该请求由系统内管理用户的模块触发。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

userId

-

用户ID。

-

deletedInfos

-

删除的凭据信息CredentialInfo

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## GetAuthTrustLevel\(\) - -``` -IUserAuthInterface::GetAuthTrustLevel ([in] int userId, [in] enum AuthType authType, [out] unsigned int authTrustLevel ) -``` - -**描述:** - -获取当前认证类型的认证结果可信等级。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

userId

-

用户ID。

-

authType

-

认证类型AuthType

-

authTrustLevel

-

认证结果可信等级。

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## GetCredential\(\) - -``` -IUserAuthInterface::GetCredential ([in] int userId, [in] enum AuthType authType, [out] struct CredentialInfo[] infos ) -``` - -**描述:** - -查询用户凭据信息。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

userId

-

用户ID。

-

authType

-

凭据类型AuthType

-

infos

-

凭据信息CredentialInfo

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## GetSecureInfo\(\) - -``` -IUserAuthInterface::GetSecureInfo ([in] int userId, [out] unsigned long secureUid, [out] struct EnrolledInfo[] infos ) -``` - -**描述:** - -查询用户安全信息。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

userId

-

用户ID。

-

secureUid

-

安全用户ID。

-

infos

-

注册信息EnrolledInfo

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## GetValidSolution\(\) - -``` -IUserAuthInterface::GetValidSolution ([in] int userId, [in] enum AuthType[] authTypes, [in] unsigned int authTrustLevel, [out] enum AuthType[] validTypes ) -``` - -**描述:** - -获取指定认证结果可信等级下有效的认证方式。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

userId

-

用户ID。

-

authTypes

-

用于筛选的认证方式列表AuthType

-

authTrustLevel

-

认证结果可信等级。

-

validTypes

-

有效的认证方式列表AuthType

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## Init\(\) - -``` -IUserAuthInterface::Init () -``` - -**描述:** - -初始化用户认证驱动缓存信息,用于用户认证框架进程启动时初始化信息。 - -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## OpenSession\(\) - -``` -IUserAuthInterface::OpenSession ([in] int userId, [out] unsigned char[] challenge ) -``` - -**描述:** - -开启一个认证凭据管理会话,用于在请求管理用户认证凭据前获取有效挑战值。 - -**参数:** - - - - - - - - - - - - - -

名称

-

描述

-

userId

-

用户ID。

-

challenge

-

随机挑战值,用于生成用户身份认证令牌。

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## UpdateAuthenticationResult\(\) - -``` -IUserAuthInterface::UpdateAuthenticationResult ([in] unsigned long contextId, [in] unsigned char[] scheduleResult, [out] struct AuthResultInfo info ) -``` - -**描述:** - -更新认证结果,评估认证方案的认证结果。 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

contextId

-

上下文索引。

-

scheduleResult

-

执行器签发的认证结果。

-

info

-

认证结果信息AuthResultInfo

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## UpdateEnrollmentResult\(\) - -``` -IUserAuthInterface::UpdateEnrollmentResult ([in] int userId, [in] unsigned char[] scheduleResult, [out] unsigned long credentialId, [out] struct CredentialInfo oldInfo ) -``` - -**描述:** - -更新用户凭据注册结果,完成凭据注册。 - -**参数:** - - - - - - - - - - - - - - - - - - - -

名称

-

描述

-

userId

-

用户ID。

-

scheduleResult

-

执行器签发的注册结果。

-

credentialId

-

凭据ID。

-

oldInfo

-

已经删除的凭据信息CredentialInfo

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - -## UpdateIdentificationResult\(\) - -``` -IUserAuthInterface::UpdateIdentificationResult ([in] unsigned long contextId, [in] unsigned char[] scheduleResult, [out] struct IdentifyResultInfo info ) -``` - -**描述:** - -更新用户身份识别结果,生成身份识别方案的结果 - -**参数:** - - - - - - - - - - - - - - - - -

名称

-

描述

-

contextId

-

上下文索引。

-

scheduleResult

-

执行器签发的用户身份识别结果。

-

info

-

用户身份识别结果IdentifyResultInfo

-
- -**返回:** - -0 表示操作成功。 - -非0 表示操作失败。 - diff --git a/zh-cn/device-dev/api/toctopics/ioffline__stream__operator_8h.md b/zh-cn/device-dev/api/toctopics/ioffline__stream__operator_8h.md deleted file mode 100644 index 170fdc5034..0000000000 --- a/zh-cn/device-dev/api/toctopics/ioffline__stream__operator_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# ioffline\_stream\_operator.h - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

OHOS::Camera::IOfflineStreamOperator

-

离线流的操作类。

-
- -## **详细描述** - -离线流的操作接口。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/istream__operator_8h.md b/zh-cn/device-dev/api/toctopics/istream__operator_8h.md deleted file mode 100644 index c56593f41e..0000000000 --- a/zh-cn/device-dev/api/toctopics/istream__operator_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# istream\_operator.h - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

OHOS::Camera::IStreamOperator

-

流的操作类。

-
- -## **详细描述** - -流的操作接口。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/istream__operator__callback_8h.md b/zh-cn/device-dev/api/toctopics/istream__operator__callback_8h.md deleted file mode 100644 index aa6975e6e2..0000000000 --- a/zh-cn/device-dev/api/toctopics/istream__operator__callback_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# istream\_operator\_callback.h - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

OHOS::Camera::IStreamOperatorCallback

-

流的操作回调类。

-
- -## **详细描述** - -[IStreamOperator](istream__operator_8h.md) 相关的回调,这些回调均由调用者实现。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/light_8typeh.md b/zh-cn/device-dev/api/toctopics/light_8typeh.md deleted file mode 100644 index f1fb441062..0000000000 --- a/zh-cn/device-dev/api/toctopics/light_8typeh.md +++ /dev/null @@ -1,45 +0,0 @@ -# light\_type.h - -## **概述** - -**所属模块:** - -[Light](_light.md) - -## **汇总** - -## 类 - - - - - - - - - - - - - - - - -

-

描述

-

LightFlashEffect

-

定义闪烁参数。 更多...

-

LightEffect

-

定义灯的效果参数。 更多...

-

LightInfo

-

定义灯的基本信息。 更多...

-
- -## **详细描述** - -声明light模块的通用API,可用于获取灯ID、打开或关闭灯、并设置灯光亮度和闪烁模式。 - -**Since:** - -3.1 - diff --git a/zh-cn/device-dev/api/toctopics/light__if_8h.md b/zh-cn/device-dev/api/toctopics/light__if_8h.md deleted file mode 100644 index 535239042b..0000000000 --- a/zh-cn/device-dev/api/toctopics/light__if_8h.md +++ /dev/null @@ -1,57 +0,0 @@ -# light\_if.h - -## **概述** - -**所属模块:** - -[Light](_light.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

LightInterface

-

定义可以在灯上执行的基本操作。 更多...

-
- -## 函数 - - - - - - - - - - - - - -

函数

-

描述

-

NewLightInterfaceInstance (void)

-

创建LightInterface实例。 更多...

-

FreeLightInterfaceInstance (void)

-

释放LightInterface实例和相关资源。 更多...

-
- -## **详细描述** - -声明light模块的通用API,可用于获取灯ID、打开或关闭灯、并设置灯光亮度和闪烁模式。 - -**Sinc[更多...](_light_flash_effect.md)e更多...[更多...](_light_info.md):** - -3.1 - diff --git a/zh-cn/device-dev/api/toctopics/pin__auth_2_i_executor_8idl.md b/zh-cn/device-dev/api/toctopics/pin__auth_2_i_executor_8idl.md deleted file mode 100644 index 8388cb8ed3..0000000000 --- a/zh-cn/device-dev/api/toctopics/pin__auth_2_i_executor_8idl.md +++ /dev/null @@ -1,52 +0,0 @@ -# IExecutor.idl - -## **概述** - -**所属模块:** - -[HdfPinAuth](_hdf_pin_auth.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

IExecutor

-

定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.pin_auth.v1_0

-

口令认证接口的包路径

-
- -## **详细描述** - -定义执行器标准API接口。接口可用于获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。 - -**Since:** - -3.2 - diff --git a/zh-cn/device-dev/api/toctopics/pin__auth_2_i_executor_callback_8idl.md b/zh-cn/device-dev/api/toctopics/pin__auth_2_i_executor_callback_8idl.md deleted file mode 100644 index be0e5cfc7d..0000000000 --- a/zh-cn/device-dev/api/toctopics/pin__auth_2_i_executor_callback_8idl.md +++ /dev/null @@ -1,56 +0,0 @@ -# IExecutorCallback.idl - -## **概述** - -**所属模块:** - -[HdfPinAuth](_hdf_pin_auth.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

IExecutorCallback

-

定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见IExecutor更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.pin_auth.v1_0

-

口令认证接口的包路径

-
- -## **详细描述** - -定义异步API接口回调,用于返回异步接口的请求处理结果和获取信息。使用细节见[IExecutor](interface_i_executor.md)。 - -**Since:** - -3.2 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/power.md b/zh-cn/device-dev/api/toctopics/power.md deleted file mode 100644 index 96d3b01b15..0000000000 --- a/zh-cn/device-dev/api/toctopics/power.md +++ /dev/null @@ -1,245 +0,0 @@ -# Power - -## **汇总** - -## 文件 - - - - - - - - - - - - - - - - -

文件

-

描述

-

IPowerHdiCallback.idl

-

休眠/唤醒状态的回调。

-

IPowerInterface.idl

-

休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。

-

PowerTypes.idl

-

电源相关的数据类型。

-
- -## 类 - - - - - - - - - - - - - -

-

描述

-

IPowerHdiCallback

-

休眠/唤醒状态的回调。 更多...

-

IPowerInterface

-

休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 更多...

-
- -## 枚举 - - - - - - - - - - - - - - - - -

枚举

-

描述

-

PowerHdfCmd { CMD_REGISTER_CALLBCK = 0, CMD_START_SUSPEND, CMD_STOP_SUSPEND, CMD_FORCE_SUSPEND, CMD_SUSPEND_BLOCK, CMD_SUSPEND_UNBLOCK, CMD_DUMP }

-

枚举电源命令的参数。 更多...

-

PowerHdfCallbackCmd { CMD_ON_SUSPEND = 0, CMD_ON_WAKEUP }

-

枚举电源状态回调的参数。 更多...

-

PowerHdfState { AWAKE = 0, INACTIVE, SLEEP }

-

枚举电源的状态。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.power.v1_0

-

电源管理接口的包路径

-
- -## **详细描述** - -提供休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 - -电源模块为电源服务提供的休眠/唤醒操作、订阅休眠/唤醒状态和运行锁管理的接口。 服务获取此模块的对象或代理后,可以调用相关的接口对设备进行休眠/唤醒、订阅休眠/唤醒状态和管理运行锁。 - -**Since:** - -3.1 - -**Version:** - -1.0 - -## **枚举类型说明** - -## PowerHdfCallbackCmd - -``` -enum PowerHdfCallbackCmd -``` - -**描述:** - -枚举电源状态回调的参数。 - - - - - - - - - - - - - -

枚举值

-

描述

-

CMD_ON_SUSPEND

-

休眠回调的命令参数。

-

-

CMD_ON_WAKEUP

-

唤醒回调的命令参数。

-

-
- -## PowerHdfCmd - -``` -enum PowerHdfCmd -``` - -**描述:** - -枚举电源命令的参数。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

CMD_REGISTER_CALLBCK

-

订阅状态的命令参数

-

-

CMD_START_SUSPEND

-

休眠的命令参数

-

-

CMD_STOP_SUSPEND

-

唤醒的命令参数

-

-

CMD_FORCE_SUSPEND

-

强制休眠的命令参数

-

-

CMD_SUSPEND_BLOCK

-

打开运行锁的命令参数

-

-

CMD_SUSPEND_UNBLOCK

-

关闭运行锁的命令参数

-

-

CMD_DUMP

-

Dump的命令参数

-

-
- -## PowerHdfState - -``` -enum PowerHdfState -``` - -**描述:** - -枚举电源的状态。 - - - - - - - - - - - - - - - - -

枚举值

-

描述

-

AWAKE

-

唤醒状态。

-

-

INACTIVE

-

非活动状态。

-

-

SLEEP

-

休眠状态。

-

-
- diff --git a/zh-cn/device-dev/api/toctopics/sensor__if_8h.md b/zh-cn/device-dev/api/toctopics/sensor__if_8h.md deleted file mode 100644 index d9bbfd1d24..0000000000 --- a/zh-cn/device-dev/api/toctopics/sensor__if_8h.md +++ /dev/null @@ -1,61 +0,0 @@ -# sensor\_if.h - -## **概述** - -**所属模块:** - -[Sensor](_sensor.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

SensorInterface

-

提供sensor设备基本控制操作接口。 更多...

-
- -## 函数 - - - - - - - - - - - - - -

函数

-

描述

-

NewSensorInterfaceInstance (void)

-

创建传感器接口实例。 更多...

-

FreeSensorInterfaceInstance (void)

-

释放传感器接口实例。 更多...

-
- -## **详细描述** - -Sensor模块对外通用的接口声明文件,提供获取传感器设备信息、订阅/去订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度,量程等可选配置接口定义。 - -**Since:** - -2.2 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/sensor__type_8h.md b/zh-cn/device-dev/api/toctopics/sensor__type_8h.md deleted file mode 100644 index 4c674c4f62..0000000000 --- a/zh-cn/device-dev/api/toctopics/sensor__type_8h.md +++ /dev/null @@ -1,125 +0,0 @@ -# sensor\_type.h - -## **概述** - -**所属模块:** - -[Sensor](_sensor.md) - -## **汇总** - -## 类 - - - - - - - - - - - - - -

-

描述

-

SensorInformation

-

定义传感器基本信息。 更多...

-

SensorEvents

-

上报传感器数据结构。 更多...

-
- -## 宏定义 - - - - - - - - - - - - - -

宏定义

-

描述

-

SENSOR_NAME_MAX_LEN 32

-

Sensor名称的最大长度

-

SENSOR_VERSION_MAX_LEN 16

-

Sensor版本号的最大长度

-
- -## 类型定义 - - - - - - - - - - -

类型定义

-

描述

-

(RecordDataCallback) (const struct SensorEvents *)

-

传感器上报数据回调函数的定义,传感器服务用户在订阅传感器时, 需要注册上报数据回调函数,传感器使能后,传感器服务用户可以接受到传感器数据,详见SensorInterface更多...

-
- -## 枚举 - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举

-

描述

-

SensorStatus { SENSOR_SUCCESS = 0, SENSOR_FAILURE = -1, SENSOR_NOT_SUPPORT = -2, SENSOR_INVALID_PARAM = -3, SENSOR_INVALID_SERVICE = -4, SENSOR_NULL_PTR = -5 }

-

定义传感器模块返回值类型。 更多...

-

SensorTypeTag { SENSOR_TYPE_NONE = 0, SENSOR_TYPE_ACCELEROMETER = 1, SENSOR_TYPE_GYROSCOPE = 2, SENSOR_TYPE_PHOTOPLETHYSMOGRAPH = 3, SENSOR_TYPE_ELECTROCARDIOGRAPH = 4, SENSOR_TYPE_AMBIENT_LIGHT = 5, SENSOR_TYPE_MAGNETIC_FIELD = 6, SENSOR_TYPE_CAPACITIVE = 7, SENSOR_TYPE_BAROMETER = 8, SENSOR_TYPE_TEMPERATURE = 9, SENSOR_TYPE_HALL = 10, SENSOR_TYPE_GESTURE = 11, SENSOR_TYPE_PROXIMITY = 12, SENSOR_TYPE_HUMIDITY = 13, SENSOR_TYPE_MEDICAL_BEGIN = 128, SENSOR_TYPE_MEDICAL_END = 160, SENSOR_TYPE_PHYSICAL_MAX = 255, SENSOR_TYPE_ORIENTATION = 256, SENSOR_TYPE_GRAVITY = 257, SENSOR_TYPE_LINEAR_ACCELERATION = 258, SENSOR_TYPE_ROTATION_VECTOR = 259, SENSOR_TYPE_AMBIENT_TEMPERATURE = 260, SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED = 261, SENSOR_TYPE_GAME_ROTATION_VECTOR = 262, SENSOR_TYPE_GYROSCOPE_UNCALIBRATED = 263, SENSOR_TYPE_SIGNIFICANT_MOTION = 264, SENSOR_TYPE_PEDOMETER_DETECTION = 265, SENSOR_TYPE_PEDOMETER = 266, SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR = 277, SENSOR_TYPE_HEART_RATE = 278, SENSOR_TYPE_DEVICE_ORIENTATION = 279, SENSOR_TYPE_WEAR_DETECTION = 280, SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED = 281, SENSOR_TYPE_MAX }

-

定义传感器类型标识。 更多...

-

SensorAccuracyType { SENSOR_NO_ACCURACY = 0, SENSOR_LOW_ACCURACY = 1, SENSOR_MEDIUM_ACCURACY = 2, SENSOR_HIGH_ACCURACY = 3, SENSOR_MAX_ACCURACY }

-

传感器的精度类型。 更多...

-

SensorRangeType { SENSOR_RANGE_LEVEL1 = 0, SENSOR_RANGE_LEVEL2 = 1, SENSOR_RANGE_LEVEL3 = 2, SENSOR_RANGE_LEVEL_MAX }

-

传感器的量程级别。 更多...

-

SensorModeType { SENSOR_MODE_DEFAULT = 0, SENSOR_MODE_REALTIME = 1, SENSOR_MODE_ON_CHANGE = 2, SENSOR_MODE_ONE_SHOT = 3, SENSOR_MODE_FIFO_MODE = 4, SENSOR_MODE_MAX }

-

传感器的工作模式。 更多...

-

SensorGroupType { TRADITIONAL_SENSOR_TYPE = 0, MEDICAL_SENSOR_TYPE = 1, SENSOR_GROUP_TYPE_MAX }

-

枚举传感器的硬件服务组。 更多...

-
- -## **详细描述** - -定义传感器模块所使用的传感器类型,传感器信息,传感器数据结构等数据类型。 - -**Since:** - -2.2 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/thermal.md b/zh-cn/device-dev/api/toctopics/thermal.md deleted file mode 100644 index 8864f04d97..0000000000 --- a/zh-cn/device-dev/api/toctopics/thermal.md +++ /dev/null @@ -1,94 +0,0 @@ -# Thermal - -## **汇总** - -## 文件 - - - - - - - - - - - - - - - - -

文件

-

描述

-

IThermalCallback.idl

-

设备发热状态的回调。

-

IThermalInterface.idl

-

设备温度管理、控制及订阅接口。

-

ThermalTypes.idl

-

设备发热状态相关的数据类型。

-
- -## 类 - - - - - - - - - - - - - - - - - - - -

-

描述

-

IThermalCallback

-

订阅设备发热状态的回调。 更多...

-

IThermalInterface

-

设备温度管理、控制及订阅接口。 更多...

-

ThermalZoneInfo

-

设备发热的信息。 更多...

-

HdfThermalCallbackInfo

-

设备发热的信息列表。 更多...

-
- -## 变量 - - - - - - - - - - -

变量 名称

-

描述

-

package ohos.hdi.thermal.v1_0

-

设备温度管理接口的包路径

-
- -## **详细描述** - -提供设备温度管理、控制及订阅接口。 - -热模块为热服务提供的设备温度管理、控制及订阅接口。 服务获取此模块的对象或代理后,可以调用相关的接口管理、控制和订阅设备温度。 - -**Since:** - -3.1 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/total.md b/zh-cn/device-dev/api/toctopics/total.md deleted file mode 100644 index 901e02c84a..0000000000 --- a/zh-cn/device-dev/api/toctopics/total.md +++ /dev/null @@ -1,7 +0,0 @@ -# 头文件和结构体 - -- **[头文件](files.md)** - -- **[结构体](annotated.md)** - - diff --git a/zh-cn/device-dev/api/toctopics/types_8h.md b/zh-cn/device-dev/api/toctopics/types_8h.md deleted file mode 100644 index 8a56500af2..0000000000 --- a/zh-cn/device-dev/api/toctopics/types_8h.md +++ /dev/null @@ -1,153 +0,0 @@ -# types.h - -## **概述** - -**所属模块:** - -[Camera](_camera.md) - -## **汇总** - -## 类 - - - - - - - - - - - - - - - - - - - - - - -

-

描述

-

OHOS::Camera::StreamInfo

-

流信息,用于创建流时传入相关的配置参数。 更多...

-

OHOS::Camera::StreamAttribute

-

流的属性。 更多...

-

OHOS::Camera::CaptureInfo

-

捕获请求的相关信息。 更多...

-

OHOS::Camera::CaptureEndedInfo

-

捕获结束相关信息,用于捕获结束回调 OnCaptureEnded更多...

-

OHOS::Camera::CaptureErrorInfo

-

流错误信息,用于回调 OnCaptureError更多...

-
- -## 类型定义 - - - - - - - - - - - - - - - - -

类型定义

-

描述

-

OHOS::Camera::CameraAbility = CameraMetadata

-

Camera设备能力集合。

-

OHOS::Camera::CameraSetting = CameraMetadata

-

Camera设置参数,包括sensor帧率,3A相关参数等。

-

OHOS::Camera::MetaType = int32_t

-

整型。

-
- -## 枚举 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

枚举

-

描述

-

OHOS::Camera::CamRetCode : int32_t { OHOS::Camera::NO_ERROR = 0, OHOS::Camera::CAMERA_BUSY = -1, OHOS::Camera::INSUFFICIENT_RESOURCES = -2, OHOS::Camera::INVALID_ARGUMENT = -3, OHOS::Camera::METHOD_NOT_SUPPORTED = -4, OHOS::Camera::CAMERA_CLOSED = -5, OHOS::Camera::DEVICE_ERROR = -6 }

-

HDI接口的返回值。 更多...

-

OHOS::Camera::ResultCallbackMode : int32_t { OHOS::Camera::PER_FRAME, OHOS::Camera::ON_CHANGED }

-

metadata的上报模式。 更多...

-

OHOS::Camera::OperationMode : int32_t { OHOS::Camera::NORMAL = 0 }

-

流的使用模式。 更多...

-

OHOS::Camera::StreamIntent : int32_t { OHOS::Camera::PREVIEW = 0, OHOS::Camera::VIDEO = 1, OHOS::Camera::STILL_CAPTURE = 2, OHOS::Camera::POST_VIEW = 3, OHOS::Camera::ANALYZE = 4, OHOS::Camera::CUSTOM = 5 }

-

流的类型。 更多...

-

OHOS::Camera::EncodeType : int32_t { OHOS::Camera::ENCODE_TYPE_NULL = 0, OHOS::Camera::ENCODE_TYPE_H264 = 1, OHOS::Camera::ENCODE_TYPE_H265 = 2, OHOS::Camera::ENCODE_TYPE_JPEG = 3 }

-

流数据的编码类型。 更多...

-

OHOS::Camera::StreamSupportType : int32_t { OHOS::Camera::DYNAMIC_SUPPORTED, OHOS::Camera::RE_CONFIGURED_REQUIRED, OHOS::Camera::NOT_SUPPORTED }

-

动态配置流的切换方式,使用场景参考 IsStreamsSupported更多...

-

OHOS::Camera::CameraStatus { OHOS::Camera::UN_AVAILABLE = 0, OHOS::Camera::AVAILABLE = 1 }

-

Camera设备状态。 更多...

-

OHOS::Camera::FlashlightStatus : uint32_t { OHOS::Camera::FLASHLIGHT_OFF = 0, OHOS::Camera::FLASHLIGHT_ON = 1, OHOS::Camera::FLASHLIGHT_UNAVAILABLE = 2 }

-

闪光灯状态。 更多...

-

OHOS::Camera::CameraEvent : uint32_t { OHOS::Camera::CAMERA_EVENT_DEVICE_ADD = 0, OHOS::Camera::CAMERA_EVENT_DEVICE_RMV = 1 }

-

Camera事件。 更多...

-

OHOS::Camera::ErrorType : uint32_t { OHOS::Camera::FATAL_ERROR = 0, OHOS::Camera::REQUEST_TIMEOUT = 1 }

-

设备错误类型,用于设备错误回调 OnError更多...

-

OHOS::Camera::StreamError { OHOS::Camera::UNKNOWN_ERROR = 0, OHOS::Camera::BUFFER_LOST = 1 }

-

流错误类型,用于流错误类型 CaptureErrorInfo更多...

-
- -## **详细描述** - -Camera模块HDI接口使用的数据类型。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/union_audio_scene_descriptor_1_1_scene_desc.md b/zh-cn/device-dev/api/toctopics/union_audio_scene_descriptor_1_1_scene_desc.md deleted file mode 100644 index a8866a25bf..0000000000 --- a/zh-cn/device-dev/api/toctopics/union_audio_scene_descriptor_1_1_scene_desc.md +++ /dev/null @@ -1,36 +0,0 @@ -# AudioSceneDescriptor::SceneDesc - -## **概述** - -**所属模块:** - -[Audio](_audio.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

id

-

音频场景的ID。

-

desc

-

以字符串命名的音频场景。

-
- -## **详细描述** - -音频场景描述。 - diff --git a/zh-cn/device-dev/api/toctopics/union_port_cap.md b/zh-cn/device-dev/api/toctopics/union_port_cap.md deleted file mode 100644 index 71c8d90f17..0000000000 --- a/zh-cn/device-dev/api/toctopics/union_port_cap.md +++ /dev/null @@ -1,58 +0,0 @@ -# PortCap - -## **概述** - -**所属模块:** - -[Codec](_codec.md) - -## **汇总** - -## Public 属性 - - - - - - - - - - - - - -

Public 属性

-

描述

-

video

-

视频编解码能力

-

audio

-

音频编解码能力

-
- -## **详细描述** - -定义音视频编解码能力。 - -## **类成员变量说明** - -## audio - -``` -AudioPortCap PortCap::audio -``` - -**描述:** - -音频编解码能力 - -## video - -``` -VideoPortCap PortCap::video -``` - -**描述:** - -视频编解码能力 - diff --git a/zh-cn/device-dev/api/toctopics/usb__info_8h.md b/zh-cn/device-dev/api/toctopics/usb__info_8h.md deleted file mode 100644 index e8c5682f15..0000000000 --- a/zh-cn/device-dev/api/toctopics/usb__info_8h.md +++ /dev/null @@ -1,44 +0,0 @@ -# usb\_info.h - -## **概述** - -**所属模块:** - -[USB](_u_s_b.md) - -## **汇总** - -## 类 - - - - - - - - - - - - - -

-

描述

-

OHOS::USB::USBDeviceInfo

-

USB设备信息。 更多...

-

OHOS::USB::UsbInfo

-

USB设备信息类。 更多...

-
- -## **详细描述** - -USB驱动订阅模块使用的数据类型。 - -**Since:** - -3.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/usbd__client_8h.md b/zh-cn/device-dev/api/toctopics/usbd__client_8h.md deleted file mode 100644 index 9eb3ebc024..0000000000 --- a/zh-cn/device-dev/api/toctopics/usbd__client_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# usbd\_client.h - -## **概述** - -**所属模块:** - -[USB](_u_s_b.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

OHOS::USB::UsbdClient

-

USB驱动类。更多...

-
- -## **详细描述** - -声明标准USB驱动接口函数。 - -**Since:** - -3.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/usbd__subscriber_8h.md b/zh-cn/device-dev/api/toctopics/usbd__subscriber_8h.md deleted file mode 100644 index 842ddb91ba..0000000000 --- a/zh-cn/device-dev/api/toctopics/usbd__subscriber_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# usbd\_subscriber.h - -## **概述** - -**所属模块:** - -[USB](_u_s_b.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

OHOS::USB::UsbdSubscriber

-

USB订阅类。更多...

-
- -## **详细描述** - -USB驱动订阅模块。 - -**Since:** - -3.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/usbd__type_8h.md b/zh-cn/device-dev/api/toctopics/usbd__type_8h.md deleted file mode 100644 index f3cda91c42..0000000000 --- a/zh-cn/device-dev/api/toctopics/usbd__type_8h.md +++ /dev/null @@ -1,112 +0,0 @@ -# usbd\_type.h - -## **概述** - -**所属模块:** - -[USB](_u_s_b.md) - -## **汇总** - -## 类 - - - - - - - - - - - - - - - - - - - -

-

描述

-

OHOS::USB::UsbDev

-

USB设备。 更多...

-

OHOS::USB::UsbPipe

-

管道信息。 更多...

-

OHOS::USB::UsbCtrlTransfer

-

USB控制传输。 更多...

-

OHOS::USB::USBDeviceInfo

-

USB设备信息。 更多...

-
- -## 宏定义 - - - - - - - - - - -

宏定义

-

描述

-

USB_MAX_INTERFACES 32

-

USB设备最大接口数量。

-
- -## 类型定义 - - - - - - - - - - -

类型定义

-

描述

-

(UsbdRequestCallback) (uint8_t *requestArg)

-

请求回调函数。

-
- -## 枚举 - - - - - - - - - - - - - -

枚举

-

描述

-

UsbdBulkCbCmd { CMD_USBD_BULK_CALLBACK_READ, CMD_USBD_BULK_CALLBACK_WRITE }

-

批量回调命令字。 更多...

-

UsbdDeviceAction { ACT_DEVUP = 0, ACT_DEVDOWN, ACT_UPDEVICE, ACT_DOWNDEVICE }

-

主机端和设备端插拔事件。 更多...

-
- -## **详细描述** - -USB驱动模块接口定义中使用的自定义数据类型。 - -USB驱动模块接口定义中使用的自定义数据类型, 包括分发的命令字、数据方向等。 - -**Since:** - -3.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/vibrator__if_8h.md b/zh-cn/device-dev/api/toctopics/vibrator__if_8h.md deleted file mode 100644 index 0ff8106997..0000000000 --- a/zh-cn/device-dev/api/toctopics/vibrator__if_8h.md +++ /dev/null @@ -1,61 +0,0 @@ -# vibrator\_if.h - -## **概述** - -**所属模块:** - -[Vibrator](_vibrator.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

VibratorInterface

-

提供Vibrator设备基本控制操作接口。

-
- -## 函数 - - - - - - - - - - - - - -

函数

-

描述

-

NewVibratorInterfaceInstance (void)

-

创建一个VibratorInterface实例。 更多...

-

FreeVibratorInterfaceInstance (void)

-

释放VibratorInterface实例以及相关资源。 更多...

-
- -## **详细描述** - -定义马达数据结构,包括马达模式和效果振动。 - -**Since:** - -2.2 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/vibrator__type_8h.md b/zh-cn/device-dev/api/toctopics/vibrator__type_8h.md deleted file mode 100644 index 1f89ae4bad..0000000000 --- a/zh-cn/device-dev/api/toctopics/vibrator__type_8h.md +++ /dev/null @@ -1,39 +0,0 @@ -# vibrator\_type.h - -## **概述** - -**所属模块:** - -[Vibrator](_vibrator.md) - -## **汇总** - -## 枚举 - - - - - - - - - - -

枚举

-

描述

-

VibratorMode { VIBRATOR_MODE_ONCE = 0, VIBRATOR_MODE_PRESET = 1, VIBRATOR_MODE_BUTT }

-

枚举马达振动模式。 更多...

-
- -## **详细描述** - -定义马达数据结构,包括马达模式和效果振动。 - -**Since:** - -2.2 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/wifi__hal_8h.md b/zh-cn/device-dev/api/toctopics/wifi__hal_8h.md deleted file mode 100644 index 62d5587aa6..0000000000 --- a/zh-cn/device-dev/api/toctopics/wifi__hal_8h.md +++ /dev/null @@ -1,78 +0,0 @@ -# wifi\_hal.h - -## **概述** - -**所属模块:** - -[WLAN](_w_l_a_n.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

IWiFi

-

HAL对WLAN服务提供的基本能力。 更多...

-
- -## 类型定义 - - - - - - - - - - -

类型定义

-

描述

-

(CallbackFunc) (uint32_t event, void *data, const char *ifName)

-

定义IWiFi回调函数的原型,监听异步事件。 更多...

-
- -## 函数 - - - - - - - - - - - - - -

函数

-

描述

-

WifiConstruct (struct IWiFi **wifiInstance)

-

创建IWiFi结构体,挂接IWiFi中能力接口。 更多...

-

WifiDestruct (struct IWiFi **wifiInstance)

-

销毁IWiFi结构体并释放相关资源。 更多...

-
- -## **详细描述** - -提供给WLAN服务的WLAN基本能力接口。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/wifi__hal__ap__feature_8h.md b/zh-cn/device-dev/api/toctopics/wifi__hal__ap__feature_8h.md deleted file mode 100644 index fce63613c2..0000000000 --- a/zh-cn/device-dev/api/toctopics/wifi__hal__ap__feature_8h.md +++ /dev/null @@ -1,61 +0,0 @@ -# wifi\_hal\_ap\_feature.h - -## **概述** - -**所属模块:** - -[WLAN](_w_l_a_n.md) - -## **汇总** - -## 类 - - - - - - - - - - - - - -

-

描述

-

StaInfo

-

描述与AP连接的STA的基本信息 更多...

-

IWiFiAp

-

继承了IWiFiBaseFeature基本特性,并包含AP模式下获取连接STA的信息和设置国家码的功能。 更多...

-
- -## 函数 - - - - - - - - - - -

函数

-

描述

-

InitApFeature (struct IWiFiAp **fe)

-

初始化AP特性。WLAN服务在创建AP类型的特性FeatureType时调用。 更多...

-
- -## **详细描述** - -提供WLAN的AP特性能力(获取与AP连接的STA的基本信息、设置国家码)。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/wifi__hal__base__feature_8h.md b/zh-cn/device-dev/api/toctopics/wifi__hal__base__feature_8h.md deleted file mode 100644 index a828e2dbf9..0000000000 --- a/zh-cn/device-dev/api/toctopics/wifi__hal__base__feature_8h.md +++ /dev/null @@ -1,100 +0,0 @@ -# wifi\_hal\_base\_feature.h - -## **概述** - -**所属模块:** - -[WLAN](_w_l_a_n.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

IWiFiBaseFeature

-

WLAN基本特性操作接口,包括获取网卡名称,设置MAC地址,设置发射功率等公共能力接口。 更多...

-
- -## 宏定义 - - - - - - - - - - - - - - - - -

宏定义

-

描述

-

IFNAME_MAX_LEN 16

-

网卡名称最大长度。

-

WIFI_MAC_ADDR_LENGTH 6

-

WLAN的MAC地址长度。

-

ERR_UNAUTH_ACCESS (-6)

-

定义访问失败错误码。

-
- -## 枚举 - - - - - - - - - - -

枚举

-

描述

-

FeatureType { PROTOCOL_80211_IFTYPE_UNSPECIFIED, PROTOCOL_80211_IFTYPE_ADHOC, PROTOCOL_80211_IFTYPE_STATION, PROTOCOL_80211_IFTYPE_AP, PROTOCOL_80211_IFTYPE_AP_VLAN, PROTOCOL_80211_IFTYPE_WDS, PROTOCOL_80211_IFTYPE_MONITOR, PROTOCOL_80211_IFTYPE_MESH_POINT, PROTOCOL_80211_IFTYPE_P2P_CLIENT, PROTOCOL_80211_IFTYPE_P2P_GO, PROTOCOL_80211_IFTYPE_P2P_DEVICE, PROTOCOL_80211_IFTYPE_NUM }

-

枚举WLAN相关特性的类型FeatureType更多...

-
- -## 函数 - - - - - - - - - - -

函数

-

描述

-

InitBaseFeature (struct IWiFiBaseFeature **fe)

-

WLAN服务创建任何类型的特性{@Link FeatureType}时,都需要调用此函数。 更多...

-
- -## **详细描述** - -提供WLAN基本特性能力。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/toctopics/wifi__hal__sta__feature_8h.md b/zh-cn/device-dev/api/toctopics/wifi__hal__sta__feature_8h.md deleted file mode 100644 index 0876533c3a..0000000000 --- a/zh-cn/device-dev/api/toctopics/wifi__hal__sta__feature_8h.md +++ /dev/null @@ -1,56 +0,0 @@ -# wifi\_hal\_sta\_feature.h - -## **概述** - -**所属模块:** - -[WLAN](_w_l_a_n.md) - -## **汇总** - -## 类 - - - - - - - - - - -

-

描述

-

IWiFiSta

-

继承了IWiFiBaseFeature基本特性,额外包含设置扫描单个MAC地址功能。 更多...

-
- -## 函数 - - - - - - - - - - -

函数

-

描述

-

InitStaFeature (struct IWiFiSta **fe)

-

初始化STA特性。WLAN服务在创建STA类型的特性FeatureType时调用。 更多...

-
- -## **详细描述** - -提供WLAN的STA特性能力。 - -**Since:** - -1.0 - -**Version:** - -1.0 - diff --git a/zh-cn/device-dev/api/total.md b/zh-cn/device-dev/api/total.md new file mode 100644 index 0000000000..bac5076606 --- /dev/null +++ b/zh-cn/device-dev/api/total.md @@ -0,0 +1,7 @@ +# 头文件和结构体 + + + +- **[头文件](files.md)** + +- **[结构体](annotated.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/api/types_8h.md b/zh-cn/device-dev/api/types_8h.md new file mode 100644 index 0000000000..18685dc8ea --- /dev/null +++ b/zh-cn/device-dev/api/types_8h.md @@ -0,0 +1,61 @@ +# types.h + + +## **概述** + +**所属模块:** + +[Camera](_camera.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [OHOS::Camera::StreamInfo](_o_h_o_s_1_1_camera_1_1_stream_info.md) | 流信息,用于创建流时传入相关的配置参数。 [更多...](_o_h_o_s_1_1_camera_1_1_stream_info.md) | +| [OHOS::Camera::StreamAttribute](_o_h_o_s_1_1_camera_1_1_stream_attribute.md) | 流的属性。 [更多...](_o_h_o_s_1_1_camera_1_1_stream_attribute.md) | +| [OHOS::Camera::CaptureInfo](_o_h_o_s_1_1_camera_1_1_capture_info.md) | 捕获请求的相关信息。 [更多...](_o_h_o_s_1_1_camera_1_1_capture_info.md) | +| [OHOS::Camera::CaptureEndedInfo](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md) | 捕获结束相关信息,用于捕获结束回调 **OnCaptureEnded**。 [更多...](_o_h_o_s_1_1_camera_1_1_capture_ended_info.md) | +| [OHOS::Camera::CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md) | 流错误信息,用于回调 **OnCaptureError**。 [更多...](_o_h_o_s_1_1_camera_1_1_capture_error_info.md) | + + +### 类型定义 + + | 类型定义 | 描述 | +| -------- | -------- | +| **OHOS::Camera::CameraAbility** = CameraMetadata | Camera设备能力集合。 | +| **OHOS::Camera::CameraSetting** = CameraMetadata | Camera设置参数,包括sensor帧率,3A相关参数等。 | +| **OHOS::Camera::MetaType** = int32_t | 整型。 | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [OHOS::Camera::CamRetCode](_camera.md#camretcode) : int32_t {   [OHOS::Camera::NO_ERROR](_camera.md#gga9ecee2f0e6599644dc440c9e1c553b80aac4124a539038c0eb9752f19bd41db9a) = 0, [OHOS::Camera::CAMERA_BUSY](_camera.md#gga9ecee2f0e6599644dc440c9e1c553b80a6d812337e14eb19f8afb2e70f3aad1a0) = -1, [OHOS::Camera::INSUFFICIENT_RESOURCES](_camera.md#gga9ecee2f0e6599644dc440c9e1c553b80a7250a9e68d64f0804d92f99e8cbc1e7e) = -2, [OHOS::Camera::INVALID_ARGUMENT](_camera.md#gga9ecee2f0e6599644dc440c9e1c553b80a9cfb72153a13ecf08abb34d59bec2223) = -3,   [OHOS::Camera::METHOD_NOT_SUPPORTED](_camera.md#gga9ecee2f0e6599644dc440c9e1c553b80ae66837f5eefe837cf5777083e1aaadcc) = -4, [OHOS::Camera::CAMERA_CLOSED](_camera.md#gga9ecee2f0e6599644dc440c9e1c553b80a0322e66dfb3b398ead3bd50c823415cd) = -5, [OHOS::Camera::DEVICE_ERROR](_camera.md#gga9ecee2f0e6599644dc440c9e1c553b80a2b74d8a616b4360eec8826d9810c03c0) = -6 } | HDI接口的返回值。 [更多...](_camera.md#camretcode) | +| [OHOS::Camera::ResultCallbackMode](_camera.md#resultcallbackmode) : int32_t { [OHOS::Camera::PER_FRAME](_camera.md#gga0290782009631708fe5351c54f019353a25a4a7cc14577e328d08dd1a758f784c), [OHOS::Camera::ON_CHANGED](_camera.md#gga0290782009631708fe5351c54f019353ab84abaca84197e5e75dc1210519ea37c) } | metadata的上报模式。 [更多...](_camera.md#resultcallbackmode) | +| [OHOS::Camera::OperationMode](_camera.md#operationmode) : int32_t { [OHOS::Camera::NORMAL](_camera.md#ggac397708a7aefbcf48c8a32b8af367ffda66a457d6883b55722bda11ac9a47e4dd) = 0 } | 流的使用模式。 [更多...](_camera.md#operationmode) | +| [OHOS::Camera::StreamIntent](_camera.md#streamintent) : int32_t {   [OHOS::Camera::PREVIEW](_camera.md#gga2b195a400dc0113b8185900ddc231c19a2ec888585737101c7bc133d302e4ce0a) = 0, [OHOS::Camera::VIDEO](_camera.md#gga2b195a400dc0113b8185900ddc231c19ad480442d11e56ef84ac7018df5637b6a) = 1, [OHOS::Camera::STILL_CAPTURE](_camera.md#gga2b195a400dc0113b8185900ddc231c19a5898656f053185f8a374bc35cbd4d784) = 2, [OHOS::Camera::POST_VIEW](_camera.md#gga2b195a400dc0113b8185900ddc231c19a67891a15f68cdc23c2b1bb6fdfe2d72f) = 3,   [OHOS::Camera::ANALYZE](_camera.md#gga2b195a400dc0113b8185900ddc231c19a817268e94893ff41b8a03147dfbbc94b) = 4, [OHOS::Camera::CUSTOM](_camera.md#gga2b195a400dc0113b8185900ddc231c19a4ca8b162608a384d4335d04a56ac3e72) = 5 } | 流的类型。 [更多...](_camera.md#streamintent) | +| [OHOS::Camera::EncodeType](_camera.md#encodetype) : int32_t { [OHOS::Camera::ENCODE_TYPE_NULL](_camera.md#gga57d3c5974b8119b90f6f43592bd4b1d1af72ea69717272db8b03c0d2281c2f221) = 0, [OHOS::Camera::ENCODE_TYPE_H264](_camera.md#gga57d3c5974b8119b90f6f43592bd4b1d1a6d21ce4760d97641e66c9a6a58df6105) = 1, [OHOS::Camera::ENCODE_TYPE_H265](_camera.md#gga57d3c5974b8119b90f6f43592bd4b1d1a60e25172afdb6ca5f18db408485c1cdf) = 2, [OHOS::Camera::ENCODE_TYPE_JPEG](_camera.md#gga57d3c5974b8119b90f6f43592bd4b1d1a1cf15a45d92fa0eae74c778f09d4bae7) = 3 } | 流数据的编码类型。 [更多...](_camera.md#encodetype) | +| [OHOS::Camera::StreamSupportType](_camera.md#streamsupporttype) : int32_t { [OHOS::Camera::DYNAMIC_SUPPORTED](_camera.md#gga2de5b91b51f744902c071f89d9302d56a96466427b9427c04c0a9f9a74e21b222), [OHOS::Camera::RE_CONFIGURED_REQUIRED](_camera.md#gga2de5b91b51f744902c071f89d9302d56afb9ebd5b0f7137f06e0b636247e7419e), [OHOS::Camera::NOT_SUPPORTED](_camera.md#gga2de5b91b51f744902c071f89d9302d56a5e0d17d563241a98d968bbdb5facf05e) } | 动态配置流的切换方式,使用场景参考 [IsStreamsSupported](_camera.md#isstreamssupported) 。 [更多...](_camera.md#streamsupporttype) | +| [OHOS::Camera::CameraStatus](_camera.md#camerastatus) { [OHOS::Camera::UN_AVAILABLE](_camera.md#ggac2c065c30743f0053f460a6683845dadaefabd193aca6ec50ad022c4003b079bd) = 0, [OHOS::Camera::AVAILABLE](_camera.md#ggac2c065c30743f0053f460a6683845dada41bd9156c9456c38aa47cf0b8b2486a2) = 1 } | Camera设备状态。 [更多...](_camera.md#camerastatus) | +| [OHOS::Camera::FlashlightStatus](_camera.md#flashlightstatus) : uint32_t { [OHOS::Camera::FLASHLIGHT_OFF](_camera.md#gga1a82bc94cb6ff38f7fd0dfcffab71df3a624df2112053caa6316c6ee443758d1a) = 0, [OHOS::Camera::FLASHLIGHT_ON](_camera.md#gga1a82bc94cb6ff38f7fd0dfcffab71df3a9f360d5fdf77e2f7c1c123f3ba45bc0c) = 1, [OHOS::Camera::FLASHLIGHT_UNAVAILABLE](_camera.md#gga1a82bc94cb6ff38f7fd0dfcffab71df3a7fae7a9c7a791d240f3b6f6399988e8c) = 2 } | 闪光灯状态。 [更多...](_camera.md#flashlightstatus) | +| [OHOS::Camera::CameraEvent](_camera.md#cameraevent) : uint32_t { [OHOS::Camera::CAMERA_EVENT_DEVICE_ADD](_camera.md#gga14253812c3a39d52d827589bf5e5b970a85028d1dd16bef4b3f60e9543f2c89d8) = 0, [OHOS::Camera::CAMERA_EVENT_DEVICE_RMV](_camera.md#gga14253812c3a39d52d827589bf5e5b970a715b664103cdf584fb48ed5e7c591c06) = 1 } | Camera事件。 [更多...](_camera.md#cameraevent) | +| [OHOS::Camera::ErrorType](_camera.md#errortype) : uint32_t { [OHOS::Camera::FATAL_ERROR](_camera.md#gga4d1b650185695d9df8652593a7bc522dad0dde9e602d14d5b583be24c5014f998) = 0, [OHOS::Camera::REQUEST_TIMEOUT](_camera.md#gga4d1b650185695d9df8652593a7bc522da2b8e229bcb457de66e7b2882502a4df6) = 1 } | 设备错误类型,用于设备错误回调 **OnError**。 [更多...](_camera.md#errortype) | +| [OHOS::Camera::StreamError](_camera.md#streamerror) { [OHOS::Camera::UNKNOWN_ERROR](_camera.md#gga376e6d566c73ec98e29b7dd93763aee6ae724e09ec34e66e49c86734ceffa2a26) = 0, [OHOS::Camera::BUFFER_LOST](_camera.md#gga376e6d566c73ec98e29b7dd93763aee6a9300ec08f81b121b74ec589fca815952) = 1 } | 流错误类型,用于流错误类型 **CaptureErrorInfo**。 [更多...](_camera.md#streamerror) | + + +## **详细描述** + +Camera模块HDI接口使用的数据类型。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/union_audio_scene_descriptor_1_1_scene_desc.md b/zh-cn/device-dev/api/union_audio_scene_descriptor_1_1_scene_desc.md new file mode 100644 index 0000000000..8de76492ce --- /dev/null +++ b/zh-cn/device-dev/api/union_audio_scene_descriptor_1_1_scene_desc.md @@ -0,0 +1,24 @@ +# AudioSceneDescriptor::SceneDesc + + +## **概述** + +**所属模块:** + +[Audio](_audio.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [id](_audio.md#id) | 音频场景的ID。 | +| [desc](_audio.md#desc-35) | 以字符串命名的音频场景。 | + + +## **详细描述** + +音频场景描述。 diff --git a/zh-cn/device-dev/api/union_port_cap.md b/zh-cn/device-dev/api/union_port_cap.md new file mode 100644 index 0000000000..3e1b3f0602 --- /dev/null +++ b/zh-cn/device-dev/api/union_port_cap.md @@ -0,0 +1,51 @@ +# PortCap + + +## **概述** + +**所属模块:** + +[Codec](_codec.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [video](#video) | 视频编解码能力 | +| [audio](#audio) | 音频编解码能力 | + + +## **详细描述** + +定义音视频编解码能力。 + + +## **类成员变量说明** + + +### audio + + +``` +AudioPortCap PortCap::audio +``` + +**描述:** + +音频编解码能力 + + +### video + + +``` +VideoPortCap PortCap::video +``` + +**描述:** + +视频编解码能力 diff --git a/zh-cn/device-dev/api/usb__info_8h.md b/zh-cn/device-dev/api/usb__info_8h.md new file mode 100644 index 0000000000..4d075be4d5 --- /dev/null +++ b/zh-cn/device-dev/api/usb__info_8h.md @@ -0,0 +1,32 @@ +# usb_info.h + + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [OHOS::USB::USBDeviceInfo](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md) | USB设备信息。 [更多...](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md) | +| [OHOS::USB::UsbInfo](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md) | USB设备信息类。 [更多...](_o_h_o_s_1_1_u_s_b_1_1_usb_info.md) | + + +## **详细描述** + +USB驱动订阅模块使用的数据类型。 + +**Since:** + +3.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/usbd__client_8h.md b/zh-cn/device-dev/api/usbd__client_8h.md new file mode 100644 index 0000000000..e8ca6691a0 --- /dev/null +++ b/zh-cn/device-dev/api/usbd__client_8h.md @@ -0,0 +1,31 @@ +# usbd_client.h + + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [OHOS::USB::UsbdClient](_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md) | USB驱动类。[更多...](_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md) | + + +## **详细描述** + +声明标准USB驱动接口函数。 + +**Since:** + +3.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/usbd__subscriber_8h.md b/zh-cn/device-dev/api/usbd__subscriber_8h.md new file mode 100644 index 0000000000..5bddc2d6b2 --- /dev/null +++ b/zh-cn/device-dev/api/usbd__subscriber_8h.md @@ -0,0 +1,31 @@ +# usbd_subscriber.h + + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [OHOS::USB::UsbdSubscriber](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md) | USB订阅类。[更多...](_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md) | + + +## **详细描述** + +USB驱动订阅模块。 + +**Since:** + +3.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/usbd__type_8h.md b/zh-cn/device-dev/api/usbd__type_8h.md new file mode 100644 index 0000000000..050693cc79 --- /dev/null +++ b/zh-cn/device-dev/api/usbd__type_8h.md @@ -0,0 +1,58 @@ +# usbd_type.h + + +## **概述** + +**所属模块:** + +[USB](_u_s_b.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [OHOS::USB::UsbDev](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) | USB设备。 [更多...](_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) | +| [OHOS::USB::UsbPipe](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) | 管道信息。 [更多...](_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) | +| [OHOS::USB::UsbCtrlTransfer](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md) | USB控制传输。 [更多...](_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md) | +| [OHOS::USB::USBDeviceInfo](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md) | USB设备信息。 [更多...](_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md) | + + +### 宏定义 + + | 宏定义 | 描述 | +| -------- | -------- | +| [USB_MAX_INTERFACES](_u_s_b.md#usbmaxinterfaces)   32 | USB设备最大接口数量。 | + + +### 类型定义 + + | 类型定义 | 描述 | +| -------- | -------- | +| ([UsbdRequestCallback](_u_s_b.md#usbdrequestcallback)) (uint8_t \*requestArg) | 请求回调函数。 | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [UsbdBulkCbCmd](_u_s_b.md#usbdbulkcbcmd) { [CMD_USBD_BULK_CALLBACK_READ](_u_s_b.md#gga734dda3df39a921fae88ada278bf35a3a5f84dff517954bbde58a2e1a0b8e8da6), [CMD_USBD_BULK_CALLBACK_WRITE](_u_s_b.md#gga734dda3df39a921fae88ada278bf35a3ac7fc2d22d4d348c672003c308263b9fb) } | 批量回调命令字。 [更多...](_u_s_b.md#usbdbulkcbcmd) | +| [UsbdDeviceAction](_u_s_b.md#usbddeviceaction) { [ACT_DEVUP](_u_s_b.md#gga4b7620d940f58152cd17a12401120c16af3ed12ba6838a4ebb16ae0713cb2324f) = 0, [ACT_DEVDOWN](_u_s_b.md#gga4b7620d940f58152cd17a12401120c16a97801ad0ac063dbb69d698adc19159bf), [ACT_UPDEVICE](_u_s_b.md#gga4b7620d940f58152cd17a12401120c16aecf16e36110fbe276f2a11e91252de20), [ACT_DOWNDEVICE](_u_s_b.md#gga4b7620d940f58152cd17a12401120c16a45115ba5d58e4a5358acae70a9fc33d4) } | 主机端和设备端插拔事件。 [更多...](_u_s_b.md#usbddeviceaction) | + + +## **详细描述** + +USB驱动模块接口定义中使用的自定义数据类型。 + +USB驱动模块接口定义中使用的自定义数据类型, 包括分发的命令字、数据方向等。 + +**Since:** + +3.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/vibrator__if_8h.md b/zh-cn/device-dev/api/vibrator__if_8h.md new file mode 100644 index 0000000000..29b0c3a7c2 --- /dev/null +++ b/zh-cn/device-dev/api/vibrator__if_8h.md @@ -0,0 +1,39 @@ +# vibrator_if.h + + +## **概述** + +**所属模块:** + +[Vibrator](_vibrator.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [VibratorInterface](_vibrator_interface.md) | 提供Vibrator设备基本控制操作接口。 | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [NewVibratorInterfaceInstance](_vibrator.md#newvibratorinterfaceinstance) (void) | 创建一个VibratorInterface实例。 [更多...](_vibrator.md#newvibratorinterfaceinstance) | +| [FreeVibratorInterfaceInstance](_vibrator.md#freevibratorinterfaceinstance) (void) | 释放VibratorInterface实例以及相关资源。 [更多...](_vibrator.md#freevibratorinterfaceinstance) | + + +## **详细描述** + +定义马达数据结构,包括马达模式和效果振动。 + +**Since:** + +2.2 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/vibrator__type_8h.md b/zh-cn/device-dev/api/vibrator__type_8h.md new file mode 100644 index 0000000000..279a2d778a --- /dev/null +++ b/zh-cn/device-dev/api/vibrator__type_8h.md @@ -0,0 +1,33 @@ +# vibrator_type.h + + +## **概述** + +**所属模块:** + +[Vibrator](_vibrator.md) + + +## **汇总** + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [VibratorMode](_vibrator.md#vibratormode) { [VIBRATOR_MODE_ONCE](_vibrator.md#ggadbbc422555ccc89c4d9cf80f5175af2fa5da1f5dd1752e8ef6b8ade59db31f80f) = 0, [VIBRATOR_MODE_PRESET](_vibrator.md#ggadbbc422555ccc89c4d9cf80f5175af2fa34c456f3c8038b601c4a0276f639f666) = 1, [VIBRATOR_MODE_BUTT](_vibrator.md#ggadbbc422555ccc89c4d9cf80f5175af2faa548af2d7414a81a8036e77b9bcd6606) } | 枚举马达振动模式。 [更多...](_vibrator.md#vibratormode) | +| [VibratorStatus](_vibrator.md#vibratorstatus) { [VIBRATOR_SUCCESS](_vibrator.md#p181591120650) = 0, [VIBRATOR_NOT_PERIOD](_vibrator.md#p515914207520) = -1,  [VIBRATOR_NOT_INTENSITY](_vibrator.md#p015972013512)  = -2,  [VIBRATOR_NOT_FREQUENCY](_vibrator.md#p14260156580)= -3} | 枚举马达振动模式。[更多...](_vibrator.md#vibratorstatus) | +| [VibratorInfo](_vibrator.md#vibratorinfo) { [isSupportIntensity](_vibrator.md#p16982125191511), [isSupportFrequency](_vibrator.md#p79831625101517), [intensityMaxValue](_vibrator.md#p1798317259153), [intensityMinValue](_vibrator.md#p196672031811), [frequencyMaxValue](_vibrator.md#p14421742189), [frequencyMinValue](_vibrator.md#p61323771819)} | 定义马达参数。[更多...](_vibrator.md#vibratorinfo) | + + +## **详细描述** + +定义马达数据结构,包括马达模式和效果振动。 + +**Since:** + +2.2 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/wifi__hal_8h.md b/zh-cn/device-dev/api/wifi__hal_8h.md new file mode 100644 index 0000000000..ce0a6c3e03 --- /dev/null +++ b/zh-cn/device-dev/api/wifi__hal_8h.md @@ -0,0 +1,46 @@ +# wifi_hal.h + + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IWiFi](_i_wi_fi.md) | HAL对WLAN服务提供的基本能力。 [更多...](_i_wi_fi.md) | + + +### 类型定义 + + | 类型定义 | 描述 | +| -------- | -------- | +| ([CallbackFunc](_w_l_a_n.md#callbackfunc)) (uint32_t event, void \*data, const char \*ifName) | 定义IWiFi回调函数的原型,监听异步事件。 [更多...](_w_l_a_n.md#callbackfunc) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [WifiConstruct](_w_l_a_n.md#wificonstruct) (struct [IWiFi](_i_wi_fi.md) \*\*wifiInstance) | 创建IWiFi结构体,挂接[IWiFi](_i_wi_fi.md)中能力接口。 [更多...](_w_l_a_n.md#wificonstruct) | +| [WifiDestruct](_w_l_a_n.md#wifidestruct) (struct [IWiFi](_i_wi_fi.md) \*\*wifiInstance) | 销毁IWiFi结构体并释放相关资源。 [更多...](_w_l_a_n.md#wifidestruct) | + + +## **详细描述** + +提供给WLAN服务的WLAN基本能力接口。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/wifi__hal__ap__feature_8h.md b/zh-cn/device-dev/api/wifi__hal__ap__feature_8h.md new file mode 100644 index 0000000000..5070b56b1b --- /dev/null +++ b/zh-cn/device-dev/api/wifi__hal__ap__feature_8h.md @@ -0,0 +1,39 @@ +# wifi_hal_ap_feature.h + + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [StaInfo](_sta_info.md) | 描述与AP连接的STA的基本信息 [更多...](_sta_info.md) | +| [IWiFiAp](_i_wi_fi_ap.md) | 继承了[IWiFiBaseFeature](_i_wi_fi_base_feature.md)基本特性,并包含AP模式下获取连接STA的信息和设置国家码的功能。 [更多...](_i_wi_fi_ap.md) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [InitApFeature](_w_l_a_n.md#initapfeature) (struct [IWiFiAp](_i_wi_fi_ap.md) \*\*fe) | 初始化AP特性。WLAN服务在创建AP类型的特性[FeatureType](_w_l_a_n.md#featuretype)时调用。 [更多...](_w_l_a_n.md#initapfeature) | + + +## **详细描述** + +提供WLAN的AP特性能力(获取与AP连接的STA的基本信息、设置国家码)。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/wifi__hal__base__feature_8h.md b/zh-cn/device-dev/api/wifi__hal__base__feature_8h.md new file mode 100644 index 0000000000..54d2c8f77a --- /dev/null +++ b/zh-cn/device-dev/api/wifi__hal__base__feature_8h.md @@ -0,0 +1,54 @@ +# wifi_hal_base_feature.h + + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IWiFiBaseFeature](_i_wi_fi_base_feature.md) | WLAN基本特性操作接口,包括获取网卡名称,设置MAC地址,设置发射功率等公共能力接口。 [更多...](_i_wi_fi_base_feature.md) | + + +### 宏定义 + + | 宏定义 | 描述 | +| -------- | -------- | +| [IFNAME_MAX_LEN](_w_l_a_n.md#ga63637ece87095ff8d153f650434ecf97)   16 | 网卡名称最大长度。 | +| [WIFI_MAC_ADDR_LENGTH](_w_l_a_n.md#ga27ea7645cf89c113dae48346e19a676f)   6 | WLAN的MAC地址长度。 | +| [ERR_UNAUTH_ACCESS](_w_l_a_n.md#gadfe9ac5a374d348cd8f77a84cd5ab94e)   (-6) | 定义访问失败错误码。 | + + +### 枚举 + + | 枚举 | 描述 | +| -------- | -------- | +| [FeatureType](_w_l_a_n.md#featuretype) {   [PROTOCOL_80211_IFTYPE_UNSPECIFIED](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012a6b209b916aabd18f2a950a82e68b6a4c), [PROTOCOL_80211_IFTYPE_ADHOC](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012a0926a98ddc2ceec4ba58ebfc01c5fe35), [PROTOCOL_80211_IFTYPE_STATION](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012acd26f8cefbd658e9ea02feecefd054fb), [PROTOCOL_80211_IFTYPE_AP](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012a9e92654b9ab6ed6eb62868f1e0e4ea8f),   [PROTOCOL_80211_IFTYPE_AP_VLAN](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012a991ad1a3f8c43b06c4eeb9dc88acdb1e), [PROTOCOL_80211_IFTYPE_WDS](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012aa25631c32cd6c996a7c96ba4f61299e2), [PROTOCOL_80211_IFTYPE_MONITOR](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012a3ff1c1358af5a0c50b64e0ef0e96a970), [PROTOCOL_80211_IFTYPE_MESH_POINT](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012a382756b8a71015cd536cdbc113c4f483),   [PROTOCOL_80211_IFTYPE_P2P_CLIENT](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012acfd81d6e484c6f7a3b863327af112cfc), [PROTOCOL_80211_IFTYPE_P2P_GO](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012abca0ccb5cf4c14af9b6ff0bd9eeb4173), [PROTOCOL_80211_IFTYPE_P2P_DEVICE](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012ad63ad4a5a66892e842e4d75cc82b0755), [PROTOCOL_80211_IFTYPE_NUM](_w_l_a_n.md#p3611518433) } | 枚举WLAN相关特性的类型[FeatureType](_w_l_a_n.md#featuretype)。 [更多...](_w_l_a_n.md#featuretype) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [InitBaseFeature](_w_l_a_n.md#initbasefeature) (struct [IWiFiBaseFeature](_i_wi_fi_base_feature.md) \*\*fe) | WLAN服务创建任何类型的特性{\@Link FeatureType}时,都需要调用此函数。 [更多...](_w_l_a_n.md#initbasefeature) | + + +## **详细描述** + +提供WLAN基本特性能力。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/wifi__hal__sta__feature_8h.md b/zh-cn/device-dev/api/wifi__hal__sta__feature_8h.md new file mode 100644 index 0000000000..66cf5f1a52 --- /dev/null +++ b/zh-cn/device-dev/api/wifi__hal__sta__feature_8h.md @@ -0,0 +1,38 @@ +# wifi_hal_sta_feature.h + + +## **概述** + +**所属模块:** + +[WLAN](_w_l_a_n.md) + + +## **汇总** + + +### 类 + + | 类 | 描述 | +| -------- | -------- | +| [IWiFiSta](_i_wi_fi_sta.md) | 继承了[IWiFiBaseFeature](_i_wi_fi_base_feature.md)基本特性,额外包含设置扫描单个MAC地址功能。 [更多...](_i_wi_fi_sta.md) | + + +### 函数 + + | 函数 | 描述 | +| -------- | -------- | +| [InitStaFeature](_w_l_a_n.md#initstafeature) (struct [IWiFiSta](_i_wi_fi_sta.md) \*\*fe) | 初始化STA特性。WLAN服务在创建STA类型的特性[FeatureType](_w_l_a_n.md#featuretype)时调用。 [更多...](_w_l_a_n.md#initstafeature) | + + +## **详细描述** + +提供WLAN的STA特性能力。 + +**Since:** + +1.0 + +**Version:** + +1.0 diff --git a/zh-cn/device-dev/api/zh-cn_bookmap_0000001343320953.md b/zh-cn/device-dev/api/zh-cn_bookmap_0000001343320953.md deleted file mode 100644 index 78960532e6..0000000000 --- a/zh-cn/device-dev/api/zh-cn_bookmap_0000001343320953.md +++ /dev/null @@ -1,219 +0,0 @@ -# Native API 参考 - -- [NativeAPI参考](toctopics/index.md) - - [Audio](toctopics/_audio.md) - - [Battery](toctopics/battery.md) - - [Camera](toctopics/_camera.md) - - [Codec](toctopics/_codec.md) - - [Display](toctopics/_display.md) - - [DAC](toctopics/_d_a_c.md) - - [HdfFaceAuth](toctopics/_hdf_face_auth.md) - - [Input](toctopics/_input.md) - - [Light](toctopics/_light.md) - - [HdfPinAuth](toctopics/_hdf_pin_auth.md) - - [Power](toctopics/power.md) - - [Sensor](toctopics/_sensor.md) - - [Thermal](toctopics/thermal.md) - - [USB](toctopics/_u_s_b.md) - - [HdfUserAuth](toctopics/_hdf_user_auth.md) - - [Vibrator](toctopics/_vibrator.md) - - [WLAN](toctopics/_w_l_a_n.md) - -- [头文件和结构体](toctopics/total.md) - - [头文件](toctopics/files.md) - - [audio\_adapter.h](toctopics/audio__adapter_8h.md) - - [audio\_attribute.h](toctopics/audio__attribute_8h.md) - - [audio\_capture.h](toctopics/audio__capture_8h.md) - - [audio\_control.h](toctopics/audio__control_8h.md) - - [audio\_manager.h](toctopics/audio__manager_8h.md) - - [audio\_render.h](toctopics/audio__render_8h.md) - - [audio\_scene.h](toctopics/audio__scene_8h.md) - - [audio\_types.h](toctopics/audio__types_8h.md) - - [audio\_volume.h](toctopics/audio__volume_8h.md) - - [codec\_callback\_if.h](toctopics/codec__callback__if_8h.md) - - [codec\_common\_type.h](toctopics/codec__common__type_8h.md) - - [codec\_component\_if.h](toctopics/codec__component__if_8h.md) - - [codec\_component\_manager.h](toctopics/codec__component__manager_8h.md) - - [codec\_component\_type.h](toctopics/codec__component__type_8h.md) - - [dac\_if.h](toctopics/dac__if_8h.md) - - [display\_device.h](toctopics/display__device_8h.md) - - [display\_gfx.h](toctopics/display__gfx_8h.md) - - [display\_gralloc.h](toctopics/display__gralloc_8h.md) - - [display\_layer.h](toctopics/display__layer_8h.md) - - [display\_type.h](toctopics/display__type_8h.md) - - [icamera\_device\_callback.h](toctopics/icamera__device__callback_8h.md) - - [icamera\_device.h](toctopics/icamera__device_8h.md) - - [icamera\_host\_callback.h](toctopics/icamera__host__callback_8h.md) - - [icamera\_host.h](toctopics/icamera__host_8h.md) - - [input\_controller.h](toctopics/input__controller_8h.md) - - [input\_manager.h](toctopics/input__manager_8h.md) - - [input\_reporter.h](toctopics/input__reporter_8h.md) - - [input\_type.h](toctopics/input__type_8h.md) - - [ioffline\_stream\_operator.h](toctopics/ioffline__stream__operator_8h.md) - - [istream\_operator\_callback.h](toctopics/istream__operator__callback_8h.md) - - [istream\_operator.h](toctopics/istream__operator_8h.md) - - [light\_if.h](toctopics/light__if_8h.md) - - [light\_type.h](toctopics/light_8typeh.md) - - [sensor\_if.h](toctopics/sensor__if_8h.md) - - [sensor\_type.h](toctopics/sensor__type_8h.md) - - [types.h](toctopics/types_8h.md) - - [usb\_info.h](toctopics/usb__info_8h.md) - - [usbd\_client.h](toctopics/usbd__client_8h.md) - - [usbd\_subscriber.h](toctopics/usbd__subscriber_8h.md) - - [usbd\_type.h](toctopics/usbd__type_8h.md) - - [vibrator\_if.h](toctopics/vibrator__if_8h.md) - - [vibrator\_type.h](toctopics/vibrator__type_8h.md) - - [wifi\_hal\_ap\_feature.h](toctopics/wifi__hal__ap__feature_8h.md) - - [wifi\_hal\_base\_feature.h](toctopics/wifi__hal__base__feature_8h.md) - - [wifi\_hal\_sta\_feature.h](toctopics/wifi__hal__sta__feature_8h.md) - - [wifi\_hal.h](toctopics/wifi__hal_8h.md) - - [FACEAUTH\_IExecutor.idl](toctopics/face__auth_2_i_executor_8idl.md) - - [FACEAUTH\_IExecutorCallback.idl](toctopics/face__auth_2_i_executor_callback_8idl.md) - - [FaceAuthTypes.idl](toctopics/_face_auth_types_8idl.md) - - [IBatteryCallback.idl](toctopics/_i_battery_callback_8idl.md) - - [IBatteryInterface.idl](toctopics/_i_battery_interface_8idl.md) - - [IExecutor.idl](toctopics/pin__auth_2_i_executor_8idl.md) - - [IExecutorCallback.idl](toctopics/pin__auth_2_i_executor_callback_8idl.md) - - [IFaceAuthInterface.idl](toctopics/_i_face_auth_interface_8idl.md) - - [IPinAuthInterface.idl](toctopics/_i_pin_auth_interface_8idl.md) - - [IPowerHdiCallback.idl](toctopics/_i_power_hdi_callback_8idl.md) - - [IPowerInterface.idl](toctopics/_i_power_interface_8idl.md) - - [IThermalInterface.idl](toctopics/_i_thermal_interface_8idl.md) - - [IThermalCallback.idl](toctopics/_i_thermal_callback_8idl.md) - - [IUserAuthInterface.idl](toctopics/_i_user_auth_interface_8idl.md) - - [PowerTypes.idl](toctopics/_power_types_8idl.md) - - [ThermalTypes.idl](toctopics/_thermal_types_8idl.md) - - [Types.idl](toctopics/_types_8idl.md) - - [UserAuthTypes.idl](toctopics/_user_auth_types_8idl.md) - - - [结构体](toctopics/annotated.md) - - [\_\_attribute\_\_](toctopics/____attribute____.md) - - [Alignment](toctopics/_alignment.md) - - [AllocInfo](toctopics/_alloc_info.md) - - [AudioAdapter](toctopics/_audio_adapter.md) - - [AudioAdapterDescriptor](toctopics/_audio_adapter_descriptor.md) - - [AudioAttribute](toctopics/_audio_attribute.md) - - [AudioCapture](toctopics/_audio_capture.md) - - [AudioControl](toctopics/_audio_control.md) - - [AudioDevExtInfo](toctopics/_audio_dev_ext_info.md) - - [AudioDeviceDescriptor](toctopics/_audio_device_descriptor.md) - - [AudioManager](toctopics/_audio_manager.md) - - [AudioMixExtInfo](toctopics/_audio_mix_ext_info.md) - - [AudioMmapBufferDescripter](toctopics/_audio_mmap_buffer_descripter.md) - - [AudioPort](toctopics/_audio_port.md) - - [AudioPortCap](toctopics/_audio_port_cap.md) - - [AudioPortCapability](toctopics/_audio_port_capability.md) - - [AudioRender](toctopics/_audio_render.md) - - [AudioRoute](toctopics/_audio_route.md) - - [AudioRouteNode](toctopics/_audio_route_node.md) - - [AudioSampleAttributes](toctopics/_audio_sample_attributes.md) - - [AudioScene](toctopics/_audio_scene.md) - - [AudioSceneDescriptor](toctopics/_audio_scene_descriptor.md) - - [AudioSceneDescriptor::SceneDesc](toctopics/union_audio_scene_descriptor_1_1_scene_desc.md) - - [AudioSessionExtInfo](toctopics/_audio_session_ext_info.md) - - [AudioSubPortCapability](toctopics/_audio_sub_port_capability.md) - - [AudioTimeStamp](toctopics/_audio_time_stamp.md) - - [AudioVolume](toctopics/_audio_volume.md) - - [AuthResultInfo](toctopics/_auth_result_info.md) - - [AuthSolution](toctopics/_auth_solution.md) - - [BatteryInfo](toctopics/_battery_info.md) - - [BufferData](toctopics/_buffer_data.md) - - [CodecCallbackType](toctopics/_codec_callback_type.md) - - [CodecCompCapability](toctopics/_codec_comp_capability.md) - - [CodecComponentManager](toctopics/_codec_component_manager.md) - - [CodecComponentType](toctopics/_codec_component_type.md) - - [CompVerInfo](toctopics/_comp_ver_info.md) - - [CredentialInfo](toctopics/_credential_info.md) - - [DacIoMsg](toctopics/_dac_io_msg.md) - - [DeviceFuncs](toctopics/_device_funcs.md) - - [DeviceInfo](toctopics/_device_info.md) - - [DisplayCapability](toctopics/_display_capability.md) - - [DisplayInfo](toctopics/_display_info.md) - - [DisplayModeInfo](toctopics/_display_mode_info.md) - - [EnrolledInfo](toctopics/_enrolled_info.md) - - [EnrollParam](toctopics/_enroll_param.md) - - [EventInfo](toctopics/_event_info.md) - - [EventPackage](toctopics/_event_package.md) - - [ExecutorInfo](toctopics/_executor_info.md) - - [ExecutorRegisterInfo](toctopics/_executor_register_info.md) - - [ExecutorSendMsg](toctopics/_executor_send_msg.md) - - [GetBufferHandleUsageParams](toctopics/_get_buffer_handle_usage_params.md) - - [GfxFuncs](toctopics/_gfx_funcs.md) - - [GfxOpt](toctopics/_gfx_opt.md) - - [GrallocFuncs](toctopics/_gralloc_funcs.md) - - [HdfThermalCallbackInfo](toctopics/_hdf_thermal_callback_info.md) - - [HDRCapability](toctopics/_h_d_r_capability.md) - - [HDRMetaData](toctopics/_h_d_r_meta_data.md) - - [IBatteryCallback](toctopics/interface_i_battery_callback.md) - - [IBatteryInterface](toctopics/interface_i_battery_interface.md) - - [ICircle](toctopics/_i_circle.md) - - [IdentifyResultInfo](toctopics/_identify_result_info.md) - - [IExecutor](toctopics/interface_i_executor.md) - - [IExecutorCallback](toctopics/interface_i_executor_callback.md) - - [IFaceAuthInterface](toctopics/interface_i_face_auth_interface.md) - - [IInputInterface](toctopics/_i_input_interface.md) - - [ILine](toctopics/_i_line.md) - - [InputController](toctopics/_input_controller.md) - - [InputExtraCmd](toctopics/_input_extra_cmd.md) - - [InputManager](toctopics/_input_manager.md) - - [InputReporter](toctopics/_input_reporter.md) - - [InputReportEventCb](toctopics/_input_report_event_cb.md) - - [IPinAuthInterface](toctopics/interface_i_pin_auth_interface.md) - - [IPowerHdiCallback](toctopics/interface_i_power_hdi_callback.md) - - [IPowerInterface](toctopics/interface_i_power_interface.md) - - [IRect](toctopics/_i_rect.md) - - [ISurface](toctopics/_i_surface.md) - - [IThermalCallback](toctopics/interface_i_thermal_callback.md) - - [IThermalInterface](toctopics/interface_i_thermal_interface.md) - - [IUserAuthInterface](toctopics/interface_i_user_auth_interface.md) - - [IWiFi](toctopics/_i_wi_fi.md) - - [IWiFiAp](toctopics/_i_wi_fi_ap.md) - - [IWiFiBaseFeature](toctopics/_i_wi_fi_base_feature.md) - - [IWiFiSta](toctopics/_i_wi_fi_sta.md) - - [LayerAlpha](toctopics/_layer_alpha.md) - - [LayerBuffer](toctopics/_layer_buffer.md) - - [LayerFuncs](toctopics/_layer_funcs.md) - - [LayerInfo](toctopics/_layer_info.md) - - [LightEffect](toctopics/_light_effect.md) - - [LightFlashEffect](toctopics/_light_flash_effect.md) - - [LightInfo](toctopics/_light_info.md) - - [LightInterface](toctopics/_light_interface.md) - - [OHOS::Camera::CaptureEndedInfo](toctopics/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md) - - [OHOS::Camera::CaptureErrorInfo](toctopics/_o_h_o_s_1_1_camera_1_1_capture_error_info.md) - - [OHOS::Camera::CaptureInfo](toctopics/_o_h_o_s_1_1_camera_1_1_capture_info.md) - - [OHOS::Camera::ICameraDevice](toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device.md) - - [OHOS::Camera::ICameraDeviceCallback](toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md) - - [OHOS::Camera::ICameraHost](toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host.md) - - [OHOS::Camera::ICameraHostCallback](toctopics/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md) - - [OHOS::Camera::IOfflineStreamOperator](toctopics/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md) - - [OHOS::Camera::IStreamOperator](toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md) - - [OHOS::Camera::IStreamOperatorCallback](toctopics/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md) - - [OHOS::Camera::StreamAttribute](toctopics/_o_h_o_s_1_1_camera_1_1_stream_attribute.md) - - [OHOS::Camera::StreamInfo](toctopics/_o_h_o_s_1_1_camera_1_1_stream_info.md) - - [OHOS::USB::UsbCtrlTransfer](toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md) - - [OHOS::USB::UsbdClient](toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md) - - [OHOS::USB::UsbDev](toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md) - - [OHOS::USB::USBDeviceInfo](toctopics/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md) - - [OHOS::USB::UsbdSubscriber](toctopics/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md) - - [OHOS::USB::UsbInfo](toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md) - - [OHOS::USB::UsbPipe](toctopics/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md) - - [OmxCodecBuffer](toctopics/_omx_codec_buffer.md) - - [PortCap](toctopics/union_port_cap.md) - - [PresentTimestamp](toctopics/_present_timestamp.md) - - [PropertyObject](toctopics/_property_object.md) - - [RangeValue](toctopics/_range_value.md) - - [Rect](toctopics/_rect.md) - - [Rectangle](toctopics/_rectangle.md) - - [ScheduleInfo](toctopics/_schedule_info.md) - - [SensorEvents](toctopics/_sensor_events.md) - - [SensorInformation](toctopics/_sensor_information.md) - - [SensorInterface](toctopics/_sensor_interface.md) - - [StaInfo](toctopics/_sta_info.md) - - [SupportBufferType](toctopics/_support_buffer_type.md) - - [TemplateInfo](toctopics/_template_info.md) - - [ThermalZoneInfo](toctopics/_thermal_zone_info.md) - - [UseBufferType](toctopics/_use_buffer_type.md) - - [VerifyAllocInfo](toctopics/_verify_alloc_info.md) - - [VibratorInterface](toctopics/_vibrator_interface.md) - - [VideoPortCap](toctopics/_video_port_cap.md) - -- GitLab From 435dce5a0268f6b0064c418640ad227f3c2627c1 Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Fri, 15 Jul 2022 15:15:50 +0800 Subject: [PATCH 033/868] update ts-basic-components-image.md Signed-off-by: ester.zhou --- .../arkui-ts/ts-basic-components-image.md | 143 ++++++++++-------- 1 file changed, 81 insertions(+), 62 deletions(-) diff --git a/en/application-dev/reference/arkui-ts/ts-basic-components-image.md b/en/application-dev/reference/arkui-ts/ts-basic-components-image.md index 8823168602..d506add310 100644 --- a/en/application-dev/reference/arkui-ts/ts-basic-components-image.md +++ b/en/application-dev/reference/arkui-ts/ts-basic-components-image.md @@ -1,83 +1,101 @@ # Image +The **\** component is used to render and display local and online images. -> **NOTE**
+> **NOTE** +> > This component is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version. -The **<Image>** component is used to render and display images. - - ## Required Permissions -ohos.permission.INTERNET (using Internet images) +To use online images, you need to add the **ohos.permission.INTERNET** permission to the corresponding abilities in the **config.json** (for the FA model) or **module.json5** file (for the stage model). + +``` +"abilities": [ + { + ... + "permissions": ["ohos.permission.INTERNET"], + ... + } +] +``` ## Child Components -None +Not supported ## APIs -Image(value: {uri: string | PixelMap}) +Image(src: string | PixelMap | Resource) -- Parameters - | Name | Type | Mandatory | Default Value | Description | - | -------- | -------- | -------- | -------- | -------- | - | uri | string | Yes | - | Image URI. Both local and Internal URIs are supported. | +Obtains an image from the specified source for subsequent rendering and display. +**Parameters** + +| Name| Type | Mandatory| Default Value| Description | +| ------ | ------------------------------------------------------------ | ---- | ------ | ------------------------------------------------------------ | +| src | string \| [PixelMap](../apis/js-apis-image.md#pixelmap7) \| [Resource](../../ui/ts-types.md) | Yes | - | Image source. Both local and online images are supported.
When using resources referenced using a relative path, for example, `Image("common/test.jpg")`, the **\** component cannot be called across bundles or modules. Therefore, you are advised to use `$r` to reference image resources that need to be used globally.
\- The following image formats are supported: PNG, JPG, BMP, SVG, GIF.
\- Base64 strings are supported. The value format is `data:image/[png\|jpeg\|bmp\|webp];base64,[base64 data]`, where `[base64 data]` is a Base64 string.
\- The value can also be a path starting with `dataability://`, which is used to access the image path provided by a Data ability. | ## Attributes -| Name | Type | Default Value | Description | -| -------- | -------- | -------- | -------- | -| alt | string | - | Placeholder image displayed during loading. Both local and Internal URIs are supported. | -| objectFit | ImageFit | ImageFit.Cover | Image scale type. | -| objectRepeat | [ImageRepeat](ts-appendix-enums.md#imagerepeat enums) | ImageRepeat.NoRepeat | Whether the image is repeated.
> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
> - This attribute is not applicable to SVG images. | -| interpolation | ImageInterpolation | ImageInterpolation.None | Interpolation effect of the image. This attribute is valid only when the image is zoomed in.
> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
> - This attribute is not applicable to SVG images.
>
> - This attribute is not applicable to a **PixelMap** object. | -| renderMode | ImageRenderMode | ImageRenderMode.Original | Rendering mode of the image.
> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
> - This attribute is not applicable to SVG images. | -| sourceSize | {
width: number,
height: number
} | - | Decoding size of the image. The original image is decoded into an image of the specified size. If the value is of the number type, the unit px is used.
> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
> This attribute is not applicable to a **PixelMap** object. | -| syncLoad8+ | boolean | false | Whether to load images synchronously. By default, images are loaded asynchronously. During synchronous loading, the UI thread is blocked and the placeholder diagram is not displayed. | - -- ImageFit enums - | Name | Description | - | -------- | -------- | - | Cover | The image is scaled with its aspect ratio retained for both sides to be greater than or equal to the display boundaries. | - | Contain | The image is scaled with its aspect ratio retained for the content to be completely displayed within the display boundaries. | - | Fill | The video content is resized to fill the display area while retaining its aspect ratio. | - | None | The original size is retained. Generally, this enum is used together with the **objectRepeat** attribute. | - | ScaleDown | The image content is displayed with its aspect ratio retained. The size is smaller than or equal to the original size. | - -- ImageInterpolation enums - | Name | Description | - | -------- | -------- | - | None | Interpolation image data is not used. | - | High | The interpolation image data is used at the high level. The use of the interpolation image data may affect the image rendering speed. | - | Medium | The interpolation image data is used at the medium level. | - | Low | The interpolation image data is used at the low level. | - -- ImageRenderMode enums - | Name | Description | - | -------- | -------- | - | Original | The image is rendered based on the original image, including the color. | - | Template | The image is rendered as a template image, and its color is ignored. | +In addition to the [universal attributes](ts-universal-attributes-size.md), the following attributes are supported. + +| Name | Type | Default Value | Description | +| --------------------- | ---------------------------------------- | ------------------------ | ---------------------------------------- | +| alt | string \| [Resource](../../ui/ts-types.md) | - | Placeholder image displayed during loading. Both local and Internet URIs are supported. | +| objectFit | [ImageFit](#imagefit-enums) | ImageFit.Cover | Image scale type. | +| objectRepeat | [ImageRepeat](ts-appendix-enums.md#imagerepeat) | NoRepeat | Whether the image is repeated.
**NOTE**
This attribute is not applicable to SVG images. | +| interpolation | [ImageInterpolation](#imageinterpolation) | ImageInterpolation.None | Interpolation effect of the image. This attribute is valid only when the image is zoomed in.
**NOTE**
This attribute is not applicable to SVG images or **PixelMap** objects. | +| renderMode | [ImageRenderMode](#imagerendermode) | ImageRenderMode.Original | Rendering mode of the image.
**NOTE**
This attribute is not applicable to SVG images. | +| sourceSize | {
width: number,
height: number
} | - | Decoding size of the image. The original image is decoded into an image of the specified size, in px.
**NOTE**
This attribute is not applicable to **PixelMap** objects. | +| syncLoad8+ | boolean | false | Whether to load images synchronously. By default, images are loaded asynchronously. During synchronous loading, the UI thread is blocked and the placeholder diagram is not displayed. | + +### ImageFit + +| Name | Description | +| --------- | -------------------------------- | +| Cover | The image is scaled with its aspect ratio retained for both sides to be greater than or equal to the display boundaries. | +| Contain | The image is scaled with its aspect ratio retained for the content to be completely displayed within the display boundaries. | +| Fill | The image is scaled to fill the display area, and its aspect ratio is not retained. | +| None | The image is displayed in its original size. Generally, this enum is used together with the **objectRepeat** attribute.| +| ScaleDown | The image is displayed with its aspect ratio retained, in a size smaller than or equal to the original size. | + +### ImageInterpolation +| Name | Description | +| ------ | ------------------------- | +| None | Interpolation image data is not used. | +| High | The interpolation image data is used at the high level, which may affect the image rendering speed.| +| Medium | The interpolation image data is used at the medium level. | +| Low | The interpolation image data is used at the low level. | + +### ImageRenderMode + +| Name | Description | +| -------- | --------------------- | +| Original | The image is rendered based on the original image, including the color. | +| Template | The image is rendered as a template image, and its color is ignored.| ## Events -| Name | Description | -| -------- | -------- | -| onComplete(callback: (event?: { width: number, height: number, componentWidth: number, componentHeight: number, loadingStatus: number }) => void) | Triggered when an image is successfully loaded. The loaded image is returned. | -| onError(callback: (event?: { componentWidth: number, componentHeight: number }) => void) | An exception occurs during image loading. | -| onFinish(callback: () => void) | If the source file to be loaded is an SVG image, this callback is invoked when the SVG animation playback is complete. If the animation is an infinite loop, this callback is not triggered. | +In addition to the universal events (ts-universal-events-click.md), the following events are supported. +| Name | Description | +| ---------------------------------------- | ---------------------------------------- | +| onComplete(callback: (event?: { width: number, height: number, componentWidth: number,
componentHeight: number, loadingStatus: number }) => void) | Triggered when an image is successfully loaded. The size of the loaded image is returned.
- **width**: width of the image, in pixels.
- **height**: height of the image, in pixels.
- **componentWidth**: width of the container component, in pixels.
- **componentHeight**: height of the container component, in pixels.
- **loadingStatus**: image loading status.
| +| onError(callback: (event?: { componentWidth: number, componentHeight: number }) => void) | Triggered when an exception occurs during image loading.
- **componentWidth**: width of the container component, in pixels.
- **componentHeight**: height of the container component, in pixels.
| +| onFinish(callback: () => void) | Triggered when the animation playback in the loaded SVG image is complete. If the animation is an infinite loop, this callback is not triggered.| ## Example +### Loading Images -``` -// Image1 +Load and display different types of images and set the scale type of the images. + +```ts @Entry @Component struct ImageExample1 { @@ -143,9 +161,9 @@ struct ImageExample1 { ![en-us_image_0000001211898484](figures/en-us_image_0000001211898484.gif) +### Setting Attributes -``` -// Image2 +```ts @Entry @Component struct ImageExample2 { @@ -163,12 +181,12 @@ struct ImageExample2 { .border({ width: 1 }).borderStyle(BorderStyle.Dashed) .overlay('Template', { align: Alignment.Bottom, offset: { x: 0, y: 20 } }) } - + Text('alt').fontSize(12).fontColor(0xcccccc).width('96%').height(30) Image('') .alt($r('app.media.Image_none')) .width(100).height(100).border({ width: 1 }).borderStyle(BorderStyle.Dashed) - + Text('sourceSize').fontSize(12).fontColor(0xcccccc).width('96%') Row({ space: 50 }) { Image($r('app.media.img_example')) @@ -188,7 +206,7 @@ struct ImageExample2 { .border({ width: 1 }).borderStyle(BorderStyle.Dashed) .overlay('w:200 h:200', { align: Alignment.Bottom, offset: { x: 0, y: 20 } }) } - + Text('objectRepeat').fontSize(12).fontColor(0xcccccc).width('96%').height(30) Row({ space: 5 }) { Image($r('app.media.ic_health_heart')) @@ -211,18 +229,18 @@ struct ImageExample2 { ![en-us_image_0000001212058474](figures/en-us_image_0000001212058474.png) +### Invoking Events -``` -// Image3 +```ts @Entry @Component struct ImageExample3 { @State width: number = 0 @State height: number = 0 - private on: Resource = $r('app.media.wifi_on') - private off: Resource = $r('app.media.wifi_off') - private on2off: Resource = $r('app.media.wifi_on2off') - private off2on: Resource = $r('app.media.wifi_off2on') + private on: Resource = $r('app.media.image_on') + private off: Resource = $r('app.media.image_off') + private on2off: Resource = $r('app.media.image_on2off') + private off2on: Resource = $r('app.media.image_off2on') @State src: Resource = this.on build() { @@ -237,6 +255,7 @@ struct ImageExample3 { }) .objectFit(ImageFit.Cover) .height(180).width(180) + // Obtain the size of an image after the image loading is complete. .onComplete((msg: { width: number,height: number }) => { this.width = msg.width this.height = msg.height @@ -249,7 +268,7 @@ struct ImageExample3 { offset: { x: 0, y: 20 } }) } - + // Add a click event so that a specific image is loaded upon clicking. Image(this.src) .width(120).height(120) .onClick(() => { -- GitLab From bf30af4f61f1c16232a5b36c58ae8495e23fa299 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Fri, 15 Jul 2022 16:48:29 +0800 Subject: [PATCH 034/868] update docs Signed-off-by: Annie_wang --- .../security/accesstoken-guidelines.md | 46 +++++++- .../security/accesstoken-overview.md | 108 ++++++++++-------- .../security/figures/permission-workflow.png | Bin 26962 -> 27019 bytes .../security/permission-list.md | 15 +-- 4 files changed, 105 insertions(+), 64 deletions(-) diff --git a/en/application-dev/security/accesstoken-guidelines.md b/en/application-dev/security/accesstoken-guidelines.md index 0eefcc9175..2e706b7617 100644 --- a/en/application-dev/security/accesstoken-guidelines.md +++ b/en/application-dev/security/accesstoken-guidelines.md @@ -24,9 +24,13 @@ The table below lists only the API used in this guide. For more information, see ## Declaring Permissions -### config.json +Declare the permissions required by the app one by one in the project configuration file. The app cannot obtain the permissions that are not declared in the configuration file. The ability framework provides two models: Feature Ability (FA) model and Stage model. For more information, see [Ability Framework Overview](../ability/ability-brief.md). -Declare the permissions required by the app one by one in the **config.json** file. The app can obtain permissions that have been declared in the **config.json** file. +Note that the app bundle structure and configuration file vary with the ability framework model. + +### FA Model + +For the apps based on the FA model, declare the permissions in the **config.json** file. **Description of config.json** @@ -40,6 +44,41 @@ Declare the permissions required by the app one by one in the **config.json** fi **Example** +```json +{ + "module" : { + "reqPermissions":[ + { + "name" : "ohos.permission.PERMISSION1", + "reason": "$string:reason", + "usedScene": { + "abilities": [ + "FormAbility" + ], + "when":"inuse" + } + }, + { + "name" : "ohos.permission.PERMISSION2", + "reason": "$string:reason", + "usedScene": { + "abilities": [ + "FormAbility" + ], + "when":"always" + } + } + ], + } +} +``` + +### Stage Model + +For the apps based on the stage model, declare the permissions in the **module.json5** file. + +**Example** + ```json { "module" : { @@ -68,11 +107,12 @@ Declare the permissions required by the app one by one in the **config.json** fi } } ``` + ## Declaring the ACL The permission level of **ohos.permission.PERMISSION2** is **system_basic**, which is higher than the app's APL. In this case, use the ACL. -In addition to declaring all the permissions in the **config.json** file, you must declare the permissions whose levels are higher than the app's APL in the app's [profile](../quick-start/app-provision-structure.md). In this example, declare the permission under the **acls** field: +In addition to declaring all the permissions in the configuration file, you must declare the permissions whose levels are higher than the app's APL in the app's [profile](../quick-start/app-provision-structure.md). In this example, declare the permission under the **acls** field: ```json { "version-name": "1.0.0", diff --git a/en/application-dev/security/accesstoken-overview.md b/en/application-dev/security/accesstoken-overview.md index f4241cadfe..4537e67fa4 100644 --- a/en/application-dev/security/accesstoken-overview.md +++ b/en/application-dev/security/accesstoken-overview.md @@ -1,6 +1,5 @@ # Access Control Overview -## Introduction AccessTokenManager (ATM) implements unified app permission management based on access tokens on OpenHarmony. By default, apps can access limited system resources. However, in some cases, an app needs to access excess data (including personal data) and functions of the system or another app to implement extended functions. The system or apps must also share their data or functions through interfaces in an explicit manner. OpenHarmony uses app permissions to perform access control and prevent improper or malicious use of these data or functions. @@ -12,9 +11,9 @@ App permissions are used to protect the following objects: Without the required permissions, an app cannot access or perform operations on the target object. Permissions must be clearly defined for apps. With well-defined app permissions, the system can standardize the behavior of apps and protect user privacy. Before an app accesses the target object, the target object verifies the app's permissions and denies the access if the app does not have required permissions. -Currently, ATM performs app permission verification based on the token identity (Token ID). A token ID identifies an app. The ATM manages app permissions based on the app's token ID. +Currently, ATM verifies app permissions based on the token identity (Token ID). A token ID identifies an app. The ATM manages app permissions based on the app's token ID. -## How to Develop +## Permission Workflow Determine the permissions required for an app to access data or perform an operation. Declare the required permissions in the app installation package. @@ -22,12 +21,34 @@ Determine whether the required permissions need to be authorized by users. If ye After the user grants permissions to the app, the app can access the data or perform the operation. -The figure below shows the process. +The figure below shows the permission workflow. ![](figures/permission-workflow.png) +1. Refer to the figure below for the process of applying for app permissions. + +![](figures/permission-application-process.png) + +1. For details about the mapping between the application Ability Privilege Level (APL) and permission level, see [Permission Levels](#permission-levels). + +2. The permission authorization modes include user_grant (permission granted by the user) and system_grant (permission granted by the system). For details, see [Permission Authorization Modes](#permission-authorization-mode). + +3. A low-level app can have a high-level permission by using the Access Control List (ACL). For details, see [ACL](#acl). + ## When to Use +### Basic Principles + +Observe the following principles for permission management: + +- Provide clear description about the app functions and scenarios for each permission required by the app so that users can clearly know why and when these permissions are required. Do not induce or mislead users' authorization. The permissions on an app must comply with the description provided in the app. +- Use the principle of least authority for user permissions. Allow only necessary permissions for service functions. +- When an app is started for the first time, avoid frequently displaying dialog boxes to request permissions. Allow the app to apply for permissions only when it needs to use the corresponding service functions. +- If a user rejects to authorize a permission, the user can still use functions irrelevant to this permission and can register and access the app. +- Provide no more message if a user rejects the authorization required by a function. Provide onscreen instructions to direct the user to grant the permission in **Settings** if the user triggers this function again or needs to use this function. + +- All the permissions granted to apps must come from the [Permission List](permission-list.md). Custom permissions are not allowed for apps currently. + ### Scenarios The following describes two common scenarios. @@ -46,25 +67,13 @@ The following describes two common scenarios. ohos.permission.CAMERA (allowing the apps to use the camera to take photos and record videos) -### Basic Principles - -Observe the following principles for permission management: - -- Provide clear description about the app functions and scenarios for each permission required by the app so that users can clearly know why and when these permissions are required. Do not induce or mislead users' authorization. The permissions on an app must comply with the description provided in the app. -- Use the principle of least authority for user permissions. Allow only necessary permissions for service functions. -- When an app is started for the first time, avoid frequently displaying dialog boxes to request permissions. Allow the app to apply for permissions only when it needs to use the corresponding service functions. -- If a user rejects to authorize a permission, the user can still use functions irrelevant to this permission and can register and access the app. -- Provide no more message if a user rejects the authorization required by a function. Provide onscreen instructions to direct the user to grant the permission in **Settings** if the user triggers this function again or needs to use this function. - -- All the permissions granted to apps must come from the Permission List. Custom permissions are not allowed for apps currently. - ## Permission Levels To protect user privacy, ATM defines different permission levels based on the sensitivity of the data involved or the security threat of the ability. -### App APL +### App APLs -The ability privilege level (APL) defines the priority of the app permission requested. Apps of different APLs can apply for permissions of different levels. +The APL defines the priority of the app permission requested. Apps of different APLs can apply for permissions of different levels. The table below describes the APLs. @@ -78,7 +87,7 @@ By default, apps are of the normal APL. For the app of the system_basic or system_core APL, declare the app APL level in the **apl** field in the app's profile, and use the profile signing tool to generate a certificate when developing the app installation package. For details about the signing process, see [Hapsigner Guide](hapsigntool-guidelines.md). -### Permission Levels +### Levels of Permissions The permissions open to apps vary with the permission level. The permission levels include the following in ascending order of seniority. @@ -100,33 +109,6 @@ The permissions open to apps vary with the permission level. The permission leve The permissions of this type are not open to any app currently. -### ACL - -As described above, permission levels and app APLs are in one-to-one correspondence. In principle, **an app with a lower APL cannot apply for higher permissions by default**. - -The Access Control List (ACL) makes low-level apps have high-level permissions. - -**Example** - -The APL of app A is normal. App A needs to have permission B (system_basic level) and permission C (normal level). - -In this case, you can use the ACL to grant permission B to app A. - -For details, see [Using the ACL](#using-the-acl). -For details about whether the ACL is enabled for a permission, see [Permission List](permission-list.md). - -### Using the ACL - -If the permission required by an app has higher level than the app's APL, you can use the ACL to grant the permissions required. - -In addition to the preceding [authorization processes](#authorization-processes), you must declare the ACL. - -In other words, in addition to declaring the required permissions in the **config.json** file, you must declare the high-level permissions in the app's [profile](accesstoken-guidelines.md#declaring-the-acl). The subsequent steps of authorization are the same. - -**NOTE** - -Declare the target ACL in the **acl** field of the app's profile in the app installation package, and generate a certificate using the profile signing tool. For details about the signing process, see [Hapsigner Guide](hapsigntool-guidelines.md). - ## Permission Authorization Modes Permissions can be classified into the following types based on the authorization mode: @@ -151,15 +133,15 @@ Permissions can be classified into the following types based on the authorizatio The process for an app obtaining the required permissions varies depending on the permission authorization mode. -- For a system_grant permission, you need to [declare the permission](accesstoken-guidelines.md) in the **config.json** file. The permission will be pre-granted when the app is installed. +- For a system_grant permission, you need to [declare the permission](accesstoken-guidelines.md#declaring-permissions) in the configuration file. The permission will be pre-granted when the app is installed. -- For a user_grant permission, you need to [declare the permission](accesstoken-guidelines.md) in the **config.json** file, and a dialog box needs to be displayed to request user authorization during the running of the app. +- For a user_grant permission, you need to [declare the permission](accesstoken-guidelines.md#declaring-permissions) in the configuration file and trigger user authorization through a dialog box during the running of the app. ### Permission Authorization Process (user_grant) The procedure is as follows: -1. In the **config.json** file, declare the permissions required by the app. For details, see [Access Control Development](accesstoken-guidelines.md). +1. In the configuration file, declare the permissions required by the app. For details, see [Access Control Development](accesstoken-guidelines.md). 2. Associate the object that requires the permissions in the app with the target permissions. In this way, the user knows the operations to be granted with the specified permissions. @@ -170,7 +152,33 @@ The procedure is as follows: **Precautions** - Check the app's permission each time before the operation requiring the permission is performed. - - To check whether a user has granted specific permissions to your app, use the [verifyAccessToken](../reference/apis/js-apis-abilityAccessCtrl.md) method. This method returns [PERMISSION_GRANTED](../reference/apis/js-apis-abilityAccessCtrl.md) or [PERMISSION_DENIED](../reference/apis/js-apis-abilityAccessCtrl.md). For details about the sample code, see [Access Control Development](accesstoken-guidelines.md). - Users must be able to understand and control the authorization of user_grant permissions. During the running process, the app requiring user authorization must proactively call the API to dynamically request the authorization. Then, the system displays a dialog box asking the user to grant the requested permission. The user will determine whether to grant the permission based on the running context of the app. - The permission authorized is not permanent, because the user may revoke the authorization at any time. Therefore, even if the user has granted the requested permission to the app, the app must check for the permission before calling the API controlled by this permission. + +## ACL + +As described above, permission levels and app APLs are in one-to-one correspondence. In principle, **an app with a lower APL cannot apply for higher permissions by default**. + +The ACL makes low-level apps have high-level permissions. + +**Example** + +The APL of app A is normal. App A needs to have permission B (system_basic level) and permission C (normal level). + +In this case, you can use the ACL to grant permission B to app A. + +For details, see [Using the ACL](#using-the-acl). +For details about whether a permission can be enabled through the ACL, see the [Permission List](permission-list.md). + +### Using the ACL + +If the permission required by an app has higher level than the app's APL, you can use the ACL to grant the permissions required. + +In addition to the preceding [authorization processes](#authorization-processes), you must declare the ACL. + +In other words, in addition to declaring the required permissions in the **config.json** file, you must declare the high-level permissions in the app's [profile](accesstoken-guidelines.md#declaring-the-acl). The subsequent steps of authorization are the same. + +**NOTE** + +Declare the target ACL in the **acl** field of the app's profile in the app installation package, and generate a certificate using the profile signing tool. For details about the signing process, see [Hapsigner Guide](hapsigntool-guidelines.md). diff --git a/en/application-dev/security/figures/permission-workflow.png b/en/application-dev/security/figures/permission-workflow.png index 03d329c575e822c92f0dc4b9d0323e1a90405073..db44f9d26d422c2eff640ca123a4d2ede0b91b72 100644 GIT binary patch delta 15765 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 delta 15771 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 Date: Fri, 15 Jul 2022 17:39:16 +0800 Subject: [PATCH 035/868] update docs Signed-off-by: Annie_wang --- .../apis/js-apis-data-distributedobject.md | 226 +++++++++--------- 1 file changed, 112 insertions(+), 114 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-data-distributedobject.md b/en/application-dev/reference/apis/js-apis-data-distributedobject.md index a58a4583a1..83875a6edb 100644 --- a/en/application-dev/reference/apis/js-apis-data-distributedobject.md +++ b/en/application-dev/reference/apis/js-apis-data-distributedobject.md @@ -1,6 +1,6 @@ # Distributed Data Object -Provides basic data object management, including creating, querying, deleting, modifying, and subscribing to data objects, and distributed data object collaboration for the same application among multiple devices. +The distributedDataObject module provides basic data object management, including creating, querying, deleting, modifying, and subscribing to data objects, and distributed data object collaboration for the same application among multiple devices. > **NOTE**
> @@ -23,9 +23,9 @@ Creates a distributed data object. **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| source | object | Yes| Attribute of the distributed data object to create.| + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | source | object | Yes| Attribute of the distributed data object to create.| **Return value** | Type| Description| @@ -33,12 +33,11 @@ Creates a distributed data object. | [DistributedObject](#distributedobject) | Distributed data object created.| **Example** - ```js - import distributedObject from '@ohos.data.distributedDataObject'; - // Create a distributed data object, which contains attributes of four types, namely, string, number, boolean, and object. - var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, - parent:{mother:"jack mom",father:"jack Dad"}}); - ``` +```js +import distributedObject from '@ohos.data.distributedDataObject'; +// Create a distributed data object, which contains attributes of four types, namely, string, number, boolean, and object. +var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}}); +``` ## distributedObject.genSessionId @@ -50,15 +49,15 @@ Creates a random session ID. **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Return value** -| Type| Description| -| -------- | -------- | -| string | Session ID created.| + | Type| Description| + | -------- | -------- | + | string | Session ID created.| **Example** - ```js - import distributedObject from '@ohos.data.distributedDataObject'; - var sessionId = distributedObject.genSessionId(); - ``` +```js +import distributedObject from '@ohos.data.distributedDataObject'; +var sessionId = distributedObject.genSessionId(); +``` ## SaveSuccessResponse9+ @@ -98,27 +97,26 @@ Sets a session ID for synchronization. Automatic synchronization is performed fo **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| sessionId | string | No| ID of a distributed data object on a trusted network. To remove a distributed data object from the network, set this parameter to "" or leave it empty.| + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | sessionId | string | No| ID of a distributed data object on a trusted network. To remove a distributed data object from the network, set this parameter to "" or leave it empty.| **Return value** -| Type| Description| -| -------- | -------- | -| boolean | Returns **true** if the session ID is set successfully;
returns **false** otherwise. | + | Type| Description| + | -------- | -------- | + | boolean | Returns **true** if the session ID is set successfully;
returns **false** otherwise. | **Example** - ```js - import distributedObject from '@ohos.data.distributedDataObject'; - var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, - parent:{mother:"jack mom",father:"jack Dad"}}); - // Add g_object to the distributed network. - g_object.setSessionId(distributedObject.genSessionId()); - // Remove g_object from the distributed network. - g_object.setSessionId(""); - ``` +```js +import distributedObject from '@ohos.data.distributedDataObject'; +var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});; +// Add g_object to the distributed network. +g_object.setSessionId(distributedObject.genSessionId()); +// Remove g_object from the distributed network. +g_object.setSessionId(""); +``` ### on('change') @@ -130,15 +128,15 @@ Subscribes to the changes of this distributed data object. **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| type | string | Yes| Event type to subscribe to. The value is **change**, which indicates data changes.| -| callback | Callback<{ sessionId: string, fields: Array<string> }> | Yes| Callback used to return the changes of the distributed data object.
**sessionId** indicates the session ID of the distributed data object.
**fields** indicates the changed attributes of the distributed data object.| + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | type | string | Yes| Event type to subscribe to. The value is **change**, which indicates data changes.| + | callback | Callback<{ sessionId: string, fields: Array<string> }> | Yes| Callback used to return the changes of the distributed data object.
**sessionId** indicates the session ID of the distributed data object.
**fields** indicates the changed attributes of the distributed data object.| **Example** ```js import distributedObject from '@ohos.data.distributedDataObject'; -var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,parent:{mother:"jack mom",father:"jack Dad"}}); +var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}}); globalThis.changeCallback = (sessionId, changeData) => { console.info("change" + sessionId); if (changeData != null && changeData != undefined) { @@ -159,16 +157,16 @@ Unsubscribes from the changes of this distributed data object. **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| type | string | Yes| Event type to unsubscribe from. The value is **change**, which indicates data changes.| -| callback | Callback<{ sessionId: string, fields: Array<string> }> | No| Callback to be unregistered. If this parameter is not set, all data change callbacks of the object will be unregistered.
**sessionId** indicates the session ID of the distributed data object.
**fields** indicates the changed attributes of the distributed data object.| + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | type | string | Yes| Event type to unsubscribe from. The value is **change**, which indicates data changes.| + | callback | Callback<{ sessionId: string, fields: Array<string> }> | No| Callback to be unregistered. If this parameter is not set, all data change callbacks of the object will be unregistered.
**sessionId** indicates the session ID of the distributed data object.
**fields** indicates the changed attributes of the distributed data object.| **Example** ```js import distributedObject from '@ohos.data.distributedDataObject'; -var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,parent:{mother:"jack mom",father:"jack Dad"}}); +var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}}); // Unregister the specified data change callback. g_object.off("change", globalThis.changeCallback); // Unregister all data change callbacks. @@ -184,10 +182,10 @@ Subscribes to the status change (online or offline) of this distributed data obj **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| type | string | Yes| Event type to subscribe to. The value is **status**, which indicates the status change (online or offline) of the distributed data object.| -| callback | Callback<{ sessionId: string, networkId: string, status: 'online' \| 'offline' }> | Yes| Callback used to return the status change.
**sessionId**: session ID of the distributed data object.
**networkId**: object device ID, that is, **deviceId**.
**status** indicates the object status, which can be online or offline. | + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | type | string | Yes| Event type to subscribe to. The value is **status**, which indicates the status change (online or offline) of the distributed data object.| + | callback | Callback<{ sessionId: string, networkId: string, status: 'online' \| 'offline' }> | Yes| Callback used to return the status change.
**sessionId**: session ID of the distributed data object.
**networkId**: object device ID, that is, **deviceId**.
**status** indicates the object status, which can be online or offline.| **Example** ```js @@ -195,7 +193,7 @@ import distributedObject from '@ohos.data.distributedDataObject'; globalThis.statusCallback = (sessionId, networkId, status) => { globalThis.response += "status changed " + sessionId + " " + status + " " + networkId; } -var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,parent:{mother:"jack mom",father:"jack Dad"}}); +var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}}); g_object.on("status", globalThis.statusCallback); ``` @@ -209,16 +207,16 @@ Unsubscribes from the status change (online or offline) of this distributed data **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| type | string | Yes| Event type to unsubscribe from. The value is **status**, which indicates the status change (online or offline) of the distributed data object.| -| callback | Callback<{ sessionId: string, deviceId: string, status: 'online' \| 'offline' }> | No| Callback used to return the status change. If this parameter is not specified, this API unsubscribes from all callbacks of this distributed data object.
**sessionId**: session ID of the distributed data object.
**deviceId** indicates the device ID of the distributed data object.
**status** indicates the status, which can be online or offline.| + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | type | string | Yes| Event type to unsubscribe from. The value is **status**, which indicates the status change (online or offline) of the distributed data object.| + | callback | Callback<{ sessionId: string, deviceId: string, status: 'online' \| 'offline' }> | No| Callback used to return the status change. If this parameter is not specified, this API unsubscribes from all callbacks of this distributed data object.
**sessionId**: session ID of the distributed data object.
**deviceId** indicates the device ID of the distributed data object.
**status** indicates the status, which can be online or offline.| **Example** ```js import distributedObject from '@ohos.data.distributedDataObject'; -var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,parent:{mother:"jack mom",father:"jack Dad"}}); +var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}}); globalThis.statusCallback = (sessionId, networkId, status) => { globalThis.response += "status changed " + sessionId + " " + status + " " + networkId; } @@ -245,24 +243,24 @@ The saved data will be released in the following cases: **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| deviceId | string | Yes| ID of the device where data is stored. The value **local** indicates the local device.| -| callback | AsyncCallback<[SaveSuccessResponse](#savesuccessresponse)> | Yes| Callback used to return **SaveSuccessResponse**, which contains information such as session ID, version, and device ID.| + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | deviceId | string | Yes| ID of the device where data is stored. The value **local** indicates the local device.| + | callback | AsyncCallback<[SaveSuccessResponse](#savesuccessresponse9)> | Yes| Callback used to return **SaveSuccessResponse**, which contains information such as session ID, version, and device ID.| **Example** - - ```ts - import distributedObject from '@ohos.data.distributedDataObject'; - var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false}); - g_object.setSessionId("123456"); - g_object.save("local", (result)=>{ - console.log("save callback"); - console.info("save sessionId " + result.sessionId); - console.info("save version " + result.version); - console.info("save deviceId " + result.deviceId); - }); - ``` +```js +import distributedObject from '@ohos.data.distributedDataObject'; +var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false}); +g_object.setSessionId("123456"); +g_object.save("local", (status, result)=>{ + console.log("save status = " + status); + console.log("save callback"); + console.info("save sessionId: " + result.sessionId); + console.info("save version: " + result.version); + console.info("save deviceId: " + result.deviceId); +}); +``` ### save9+ @@ -281,31 +279,31 @@ The saved data will be released in the following cases: **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| deviceId | string | Yes| ID of the device where the data is saved. The default value is **local**, which indicates the local device. | + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | deviceId | string | Yes| ID of the device where the data is saved. The default value is **local**, which indicates the local device. | - **Return value** +**Return value** -| Type| Description| -| -------- | -------- | -| Promise<[SaveSuccessResponse](#savesuccessresponse)> | Promise used to return **SaveSuccessResponse**, which contains information such as session ID, version, and device ID.| + | Type| Description| + | -------- | -------- | + | Promise<[SaveSuccessResponse](#savesuccessresponse9)> | Promise used to return **SaveSuccessResponse**, which contains information such as session ID, version, and device ID.| **Example** - ```ts - import distributedObject from '@ohos.data.distributedDataObject'; - var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false}); - g_object.setSessionId("123456"); - g_object.save("local").then((result)=>{ - console.log("save callback"); - console.info("save sessionId " + result.sessionId); - console.info("save version " + result.version); - console.info("save deviceId " + result.deviceId); - }, ()=>{ - console.error("save failed"); - }); - ``` +```js +import distributedObject from '@ohos.data.distributedDataObject'; +var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false}); +g_object.setSessionId("123456"); +g_object.save("local").then((result)=>{ + console.log("save callback"); + console.info("save sessionId " + result.sessionId); + console.info("save version " + result.version); + console.info("save deviceId " + result.deviceId); +}, ()=>{ + console.error("save failed"); +}); +``` ### revokeSave9+ @@ -319,20 +317,20 @@ If the object is stored on another device, the data on the local device will be **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| callback | AsyncCallback<[RevokeSaveSuccessResponse](#revokesavesuccessresponse)> | No| Callback used to return **RevokeSaveSuccessResponse**, which contains the session ID.| + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | callback | AsyncCallback<[RevokeSaveSuccessResponse](#revokesavesuccessresponse9)> | No| Callback used to return **RevokeSaveSuccessResponse**, which contains the session ID.| **Example** - ```ts - import distributedObject from '@ohos.data.distributedDataObject'; - var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false}); - g_object.setSessionId("123456"); - g_object.revokeSave((result, data) =>{ - console.log("revokeSave callback"); - }); - ``` +```js +import distributedObject from '@ohos.data.distributedDataObject'; +var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false}); +g_object.setSessionId("123456"); +g_object.revokeSave((result, data) =>{ + console.log("revokeSave callback"); +}); +``` ### revokeSave9+ @@ -345,22 +343,22 @@ If the object is stored on another device, the data on the local device will be **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject - **Return value** +**Return value** -| Type| Description| -| -------- | -------- | -| Promise<[RevokeSaveSuccessResponse](#revokesavesuccessresponse)> | Promise used to return **RevokeSaveSuccessResponse**, which contains the session ID.| + | Type| Description| + | -------- | -------- | + | Promise<[RevokeSaveSuccessResponse](#revokesavesuccessresponse9)> | Promise used to return **RevokeSaveSuccessResponse**, which contains the session ID.| **Example** - ```ts - import distributedObject from '@ohos.data.distributedDataObject'; - var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false}); - g_object.setSessionId("123456"); - g_object.revokeSave("local").then((result)=>{ - console.log("revokeSave callback"); - console.log("sessionId" + result.sessionId); - }, ()=>{ - console.error("revokeSave failed"); - }); - ``` +```js +import distributedObject from '@ohos.data.distributedDataObject'; +var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false}); +g_object.setSessionId("123456"); +g_object.revokeSave().then((result)=>{ + console.log("revokeSave callback"); + console.log("sessionId" + result.sessionId); +}, ()=>{ + console.error("revokeSave failed"); +}); +``` -- GitLab From 4aaa6e5ead0cc0e0e068dda1e71b4abe5d41db0e Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Fri, 15 Jul 2022 17:49:36 +0800 Subject: [PATCH 036/868] update device-usage-statistics Signed-off-by: ester.zhou --- .../device-usage-statistics-dev-guide.md | 107 ++++++------ .../apis/js-apis-deviceUsageStatistics.md | 163 +++++++++--------- 2 files changed, 139 insertions(+), 131 deletions(-) diff --git a/en/application-dev/device-usage-statistics/device-usage-statistics-dev-guide.md b/en/application-dev/device-usage-statistics/device-usage-statistics-dev-guide.md index c4e4fdf385..fb107049c5 100644 --- a/en/application-dev/device-usage-statistics/device-usage-statistics-dev-guide.md +++ b/en/application-dev/device-usage-statistics/device-usage-statistics-dev-guide.md @@ -3,7 +3,6 @@ ## When to Use With device usage statistics APIs, you can have a better understanding of the application, notification, and system usage. For example, in application usage statistics, you can query the application usage, event log, and bundle group. - The application records (usage history statistics and event records) cached by components are updated to the database for persistent storage within 30 minutes after an event is reported. ## Available APIs @@ -23,7 +22,7 @@ import stats from '@ohos.bundleState'; | function queryAppUsagePriorityGroup(callback: AsyncCallback<number>): void | Queries the priority group of this application. This API uses an asynchronous callback to return the result.| | function queryAppUsagePriorityGroup(): Promise<number>; | Queries the priority group of this application. This API uses a promise to return the result.| | function isIdleState(bundleName: string, callback: AsyncCallback<boolean>): void | Checks whether the application specified by **bundleName** is in the idle state. | -| function getRecentlyUsedModules(maxNum: number, callback: AsyncCallback<BundleActiveModuleInfo>): void | Obtains the number of FA usage records specified by **maxNum**.| +| function getRecentlyUsedModules(maxNum? : number, callback: AsyncCallback<BundleActiveModuleInfo>): void | Obtains the number of FA usage records specified by **maxNum**. If **maxNum** is not specified, the default value **1000** is used.| | function queryAppNotificationNumber(begin: number, end: number, callback: AsyncCallback<Array<BundleActiveEventState>>): void | Queries the number of notifications from all applications based on the specified start time and end time.| | function queryBundleActiveEventStates(begin: number, end: number, callback: AsyncCallback<Array<BundleActiveEventState>>): void | Queries statistics about system events (hibernation, wakeup, unlocking, and screen locking) that occur between the specified start time and end time.| | function queryAppUsagePriorityGroup(bundleName? : string, callback: AsyncCallback<number>): void | Queries the priority group of the application specified by **bundleName**. If **bundleName** is not specified, the priority group of the current application is queried. This API uses an asynchronous callback to return the result.| @@ -45,7 +44,7 @@ import stats from '@ohos.bundleState'; ..., "reqPermissions": [ { - "name": "ohos.permission.BUNDLE_ACTIVE_INFO" + "name": "ohos.permission.BUNDLE_ACTIVE_INFO" } ] } @@ -57,13 +56,13 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' // Promise mode - stats.queryBundleActiveStates(0, 20000000000000).then( res => { + stats.queryBundleActiveStates(0, 20000000000000).then(res => { console.log('BUNDLE_ACTIVE queryBundleActiveStates promise success.'); for (let i = 0; i < res.length; i++) { console.log('BUNDLE_ACTIVE queryBundleActiveStates promise number : ' + (i + 1)); console.log('BUNDLE_ACTIVE queryBundleActiveStates promise result ' + JSON.stringify(res[i])); } - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE queryBundleActiveStates promise failed, because: ' + err.code); }); @@ -87,7 +86,7 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' // Promise mode - stats.queryBundleStateInfos(0, 20000000000000).then( res => { + stats.queryBundleStateInfos(0, 20000000000000).then(res => { console.log('BUNDLE_ACTIVE queryBundleStateInfos promise success.'); let i = 1; for (let key in res){ @@ -95,7 +94,7 @@ import stats from '@ohos.bundleState'; console.log('BUNDLE_ACTIVE queryBundleStateInfos promise result ' + JSON.stringify(res[key])); i++; } - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE queryBundleStateInfos promise failed, because: ' + err.code); }); @@ -121,13 +120,13 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' // Promise mode - stats.queryCurrentBundleActiveStates(0, 20000000000000).then( res => { + stats.queryCurrentBundleActiveStates(0, 20000000000000).then(res => { console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise success.'); for (let i = 0; i < res.length; i++) { console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise number : ' + (i + 1)); console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise result ' + JSON.stringify(res[i])); } - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise failed, because: ' + err.code); }); @@ -151,13 +150,13 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' // Promise mode - stats.queryBundleStateInfoByInterval(0, 0, 20000000000000).then( res => { + stats.queryBundleStateInfoByInterval(0, 0, 20000000000000).then(res => { console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise success.'); for (let i = 0; i < res.length; i++) { console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise number : ' + (i + 1)); console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise result ' + JSON.stringify(res[i])); } - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise failed, because: ' + err.code); }); @@ -179,14 +178,14 @@ import stats from '@ohos.bundleState'; ```js import stats from '@ohos.bundleState' - + // Promise mode - stats.queryAppUsagePriorityGroup().then( res => { + stats.queryAppUsagePriorityGroup().then(res => { console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise succeeded. result: ' + JSON.stringify(res)); - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise failed. because: ' + err.code); }); - + // Callback mode stats.queryAppUsagePriorityGroup((err, res) => { if (err) { @@ -196,16 +195,16 @@ import stats from '@ohos.bundleState'; } }); ``` - + 7. Check whether the application specified by **bundleName** is in the idle state. This requires no permission to be configured in the **config.json** file. A third-party application can only check the idle status of itself. ```js import stats from '@ohos.bundleState' // Promise mode - stats.isIdleState("com.ohos.camera").then( res => { + stats.isIdleState("com.ohos.camera").then(res => { console.log('BUNDLE_ACTIVE isIdleState promise succeeded, result: ' + JSON.stringify(res)); - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE isIdleState promise failed, because: ' + err.code); }); @@ -225,18 +224,18 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' // Promise mode - stats.getRecentlyUsedModules(1000).then( res => { + stats.getRecentlyUsedModules(1000).then(res => { console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise succeeded'); for (let i = 0; i < res.length; i++) { console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise number : ' + (i + 1)); console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise result ' + JSON.stringify(res[i])); } - }).catch( err=> { + }).catch(err=> { console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise failed, because: ' + err.code); }); // Promise mode when maxNum is not specified - stats.getRecentlyUsedModules().then( res => { + stats.getRecentlyUsedModules().then(res => { console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise succeeded'); for (let i = 0; i < res.length; i++) { console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise number : ' + (i + 1)); @@ -247,7 +246,7 @@ import stats from '@ohos.bundleState'; }); // Asynchronous callback mode - stats.getRecentlyUsedModules(1000,(err, res) => { + stats.getRecentlyUsedModules(1000, (err, res) => { if(err) { console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback failed, because: ' + err.code); } else { @@ -261,7 +260,7 @@ import stats from '@ohos.bundleState'; // Asynchronous callback mode when maxNum is not specified stats.getRecentlyUsedModules((err, res) => { - if(err) { + if (err) { console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback failed, because: ' + err.code); } else { console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback succeeded.'); @@ -279,10 +278,10 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' // Promise mode - stats.queryAppNotificationNumber(0, 20000000000000).then( res => { + stats.queryAppNotificationNumber(0, 20000000000000).then(res => { console.log('BUNDLE_ACTIVE queryAppNotificationNumber promise success.'); console.log('BUNDLE_ACTIVE queryAppNotificationNumber promise result ' + JSON.stringify(res)); - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE queryAppNotificationNumber promise failed, because: ' + err.code); }); @@ -301,15 +300,15 @@ import stats from '@ohos.bundleState'; ```js import stats from '@ohos.bundleState' - + // Promise mode - stats.queryBundleActiveEventStates(0, 20000000000000).then( res => { + stats.queryBundleActiveEventStates(0, 20000000000000).then(res => { console.log('BUNDLE_ACTIVE queryBundleActiveEventStates promise success.'); console.log('BUNDLE_ACTIVE queryBundleActiveEventStates promise result ' + JSON.stringify(res)); - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE queryBundleActiveEventStates promise failed, because: ' + err.code); }); - + // Asynchronous callback mode stats.queryBundleActiveEventStates(0, 20000000000000, (err, res) => { if (err) { @@ -325,14 +324,14 @@ import stats from '@ohos.bundleState'; ```js import stats from '@ohos.bundleState' - + // Promise mode without parameters - stats.queryAppUsagePriorityGroup().then( res => { + stats.queryAppUsagePriorityGroup().then(res => { console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise succeeded. result: ' + JSON.stringify(res)); - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise failed. because: ' + err.code); }); - + // Asynchronous callback mode without parameters stats.queryAppUsagePriorityGroup((err, res) => { if (err) { @@ -341,17 +340,17 @@ import stats from '@ohos.bundleState'; console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup callback succeeded. result: ' + JSON.stringify(res)); } }); - + // Promise mode with parameters - stats.queryAppUsagePriorityGroup(this.bundleName).then( res => { + stats.queryAppUsagePriorityGroup(this.bundleName).then(res => { console.log('BUNDLE_ACTIVE QueryPackageGroup promise succeeded. result: ' + JSON.stringify(res)); - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE QueryPackageGroup promise failed. because: ' + err.code); }); - + // Asynchronous callback mode with parameters stats.queryAppUsagePriorityGroup(this.bundleName, (err, res) => { - if(err) { + if (err) { console.log('BUNDLE_ACTIVE QueryPackageGroup callback failed. because: ' + err.code); } else { console.log('BUNDLE_ACTIVE QueryPackageGroup callback succeeded. result: ' + JSON.stringify(res)); @@ -363,16 +362,16 @@ import stats from '@ohos.bundleState'; ```javascript import stats from '@ohos.bundleState' - + // Promise mode - stats.setBundleGroup(this.bundleName, this.newGroup).then( () => { + stats.setBundleGroup(this.bundleName, this.newGroup).then(() => { console.log('BUNDLE_ACTIVE SetBundleGroup promise succeeded.'); }).catch( err => { console.log('BUNDLE_ACTIVE SetBundleGroup promise failed. because: ' + err.code); }); // Asynchronous callback mode stats.setBundleGroup(this.bundleName, this.newGroup, (err) => { - if(err) { + if (err) { console.log('BUNDLE_ACTIVE SetBundleGroup callback failed. because: ' + err.code); } else { console.log('BUNDLE_ACTIVE SetBundleGroup callback succeeded.'); @@ -384,9 +383,9 @@ import stats from '@ohos.bundleState'; ```javascript import stats from '@ohos.bundleState' - + // Promise mode - let onBundleGroupChanged = (err,res) =>{ + let onBundleGroupChanged = (err,res) => { console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.'); console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result oldGroup is : ' + res.oldGroup); console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result newGroup is : ' + res.newGroup); @@ -394,13 +393,13 @@ import stats from '@ohos.bundleState'; console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result userId is : ' + res.userId); console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result bundleName is : ' + res.bundleName); }; - stats.registerGroupCallBack(onBundleGroupChanged).then( () => { + stats.registerGroupCallBack(onBundleGroupChanged).then(() => { console.log('BUNDLE_ACTIVE RegisterGroupCallBack promise succeeded.'); - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE RegisterGroupCallBack promise failed. because: ' + err.code); }); // Asynchronous callback mode - let onBundleGroupChanged = (err,res) =>{ + let onBundleGroupChanged = (err,res) => { console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.'); console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's oldGroup is : ' + res.oldGroup); console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's newGroup is : ' + res.newGroup); @@ -408,29 +407,29 @@ import stats from '@ohos.bundleState'; console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's userId is : ' + res.userId); console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's bundleName is : ' + res.bundleName); }; - stats.registerGroupCallBack(onBundleGroupChanged, (err)=>{ - if(err) { + stats.registerGroupCallBack(onBundleGroupChanged, (err) => { + if (err) { console.log('BUNDLE_ACTIVE RegisterGroupCallBack callback failed, because: ' + err.code); } else { console.log('BUNDLE_ACTIVE RegisterGroupCallBack callback success.'); } }); ``` - + 13. Deregister the callback for application group changes. ```javascript import stats from '@ohos.bundleState' - + //promise - stats.unRegisterGroupCallBack().then( () => { + stats.unRegisterGroupCallBack().then(() => { console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack promise succeeded.'); - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack promise failed. because: ' + err.code); }); //callback - stats.unRegisterGroupCallBack((err)=>{ - if(err) { + stats.unRegisterGroupCallBack((err) => { + if (err) { console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack callback failed, because: ' + err.code); } else { console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack callback success.'); diff --git a/en/application-dev/reference/apis/js-apis-deviceUsageStatistics.md b/en/application-dev/reference/apis/js-apis-deviceUsageStatistics.md index 2ae6d7b5a1..8d18622ce2 100644 --- a/en/application-dev/reference/apis/js-apis-deviceUsageStatistics.md +++ b/en/application-dev/reference/apis/js-apis-deviceUsageStatistics.md @@ -1,6 +1,24 @@ # Device Usage Statistics -> **NOTE**
+This module provides APIs for collecting statistics on device usage. + +System applications can call these APIs to implement the following features: + +- Query the usage duration in different time segments, events (foreground, background, start and end of continuous tasks), and the number of notifications, on a per application basis. +- Query statistics about system events (sleep, wakeup, unlock, and screen lock). +- Query the bundle group information of applications, including the invoking application itself. +- Query the idle status of applications, including the invoking application itself. +- Set the bundle group for other applications. +- Register and deregister the callback for application group changes. + +Third-party applications can call these APIs to implement the following features: + +- Query the idle status of the invoking application itself. +- Query the bundle group information of the invoking application itself. +- Query the events of the invoking application itself. + +> **NOTE** +> > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. @@ -23,7 +41,7 @@ Checks whether the application specified by **bundleName** is in the idle state. | Name | Type | Mandatory | Description | | ---------- | ---------------------------- | ---- | ---------------------------------------- | | bundleName | string | Yes | Bundle name of an application. | -| callback | AsyncCallback<boolean> | Yes | Callback used to return the result. If the value of **bundleName** is valid, **null** will be returned.| +| callback | AsyncCallback<boolean> | Yes | Callback used to return the result. If the value of bundleName is valid, null will be returned.| **Example** @@ -69,7 +87,7 @@ Checks whether the application specified by **bundleName** is in the idle state. ## bundleState.queryAppUsagePriorityGroup -queryAppUsagePriorityGroup(): Promise\ +queryAppUsagePriorityGroup(): Promise<number> Queries the priority group of this application. This API uses a promise to return the result. @@ -79,7 +97,7 @@ Queries the priority group of this application. This API uses a promise to retur | Type | Description | | --------------- | --------------------------- | -| Promise\ | Promise used to return the result.| +| Promise<number> | Promise used to return the result.| **Example** @@ -93,7 +111,7 @@ bundleState.queryAppUsagePriorityGroup().then( res => { ## bundleState.queryAppUsagePriorityGroup -queryAppUsagePriorityGroup(callback: AsyncCallback\): void +queryAppUsagePriorityGroup(callback: AsyncCallback<number>): void Queries the priority group of this application. This API uses an asynchronous callback to return the result. @@ -103,20 +121,11 @@ Queries the priority group of this application. This API uses an asynchronous ca | Name | Type | Mandatory | Description | | -------- | --------------------- | ---- | -------------------------- | -| callback | AsyncCallback\ | Yes | Callback used to return the result.| +| callback | AsyncCallback<number> | Yes | Callback used to return the result.| **Example** ```javascript -// Callback with bundleName -bundleState.queryAppUsagePriorityGroup(this.bundleName, (err, res) => { - if(err) { - console.log('BUNDLE_ACTIVE QueryPackageGroup callback failed. because: ' + err.code); - } else { - console.log('BUNDLE_ACTIVE QueryPackageGroup callback succeeded. result: ' + JSON.stringify(res)); - } -}); -// Callback without bundleName bundleState.queryAppUsagePriorityGroup((err, res) => { if(err) { console.log('BUNDLE_ACTIVE QueryPackageGroup callback failed. because: ' + err.code); @@ -523,7 +532,7 @@ Obtains the number of FA usage records specified by **maxNum**. This API uses an ## bundleState.queryAppUsagePriorityGroup9+ -queryAppUsagePriorityGroup(bundleName? : string): Promise +queryAppUsagePriorityGroup(bundleName? : string): Promise<number> Queries the priority group of the application specified by **bundleName**. If **bundleName** is not specified, the priority group of the current application is queried. This API uses a promise to return the result. @@ -543,13 +552,14 @@ Queries the priority group of the application specified by **bundleName**. If ** | Type | Description | | --------------- | --------------------------- | -| Promise\ | Promise used to return the result.| +| Promise<number> | Promise used to return the result.| **Example** ```javascript // Promise with bundleName -bundleState.queryAppUsagePriorityGroup(this.bundleName).then( res => { +let bundleName = "com.ohos.camera"; +bundleState.queryAppUsagePriorityGroup(bundleName).then( res => { console.log('BUNDLE_ACTIVE QueryPackageGroup promise succeeded. result: ' + JSON.stringify(res)); }).catch( err => { console.log('BUNDLE_ACTIVE QueryPackageGroup promise failed. because: ' + err.code); @@ -564,7 +574,7 @@ bundleState.queryAppUsagePriorityGroup().then( res => { ## bundleState.queryAppUsagePriorityGroup9+ -queryAppUsagePriorityGroup(bundleName? : string, callback: AsyncCallback\): void +queryAppUsagePriorityGroup(bundleName? : string, callback: AsyncCallback<number>): void Queries the priority group of the application specified by **bundleName**. If **bundleName** is not specified, the priority group of the current application is queried. This API uses an asynchronous callback to return the result. @@ -579,13 +589,14 @@ Queries the priority group of the application specified by **bundleName**. If ** | Name | Type | Mandatory | Description | | ---------- | --------------------- | ---- | ---------------------------------------- | | bundleName | string | No | Bundle name of the target application. If this parameter is not specified, the priority group of the current application is queried.| -| callback | AsyncCallback\ | Yes | Callback used to return the result. | +| callback | AsyncCallback<number> | Yes | Callback used to return the result. | **Example** ```javascript // Callback with bundleName -bundleState.queryAppUsagePriorityGroup(this.bundleName, (err, res) => { +let bundleName = "com.ohos.camera"; +bundleState.queryAppUsagePriorityGroup(bundleName, (err, res) => { if(err) { console.log('BUNDLE_ACTIVE QueryPackageGroup callback failed. because: ' + err.code); } else { @@ -604,7 +615,7 @@ bundleState.queryAppUsagePriorityGroup((err, res) => { ## bundleState.setBundleGroup9+ -setBundleGroup(bundleName: string, newGroup: GroupType): Promise\ +setBundleGroup(bundleName: string, newGroup: GroupType): Promise<void> Sets the group for the application specified by **bundleName**. This API uses a promise to return the result. @@ -618,22 +629,22 @@ Sets the group for the application specified by **bundleName**. This API uses a | Name | Type | Mandatory | Description | | ---------- | --------- | ---- | ---- | -| bundleName | string | Yes | Bundle name of the target application.| -| newGroup | GroupType | Yes | Application group.| +| bundleName | string | Yes | Bundle name of an application.| +| newGroup | [GroupType](#grouptype) | Yes | Application group.| **Return value** | Type | Description | | ------------- | ------------------------- | -| Promise\ | Promise used to return the result.| +| Promise<void> | Promise used to return the result.| **Example** ```javascript -this.bundleName = "com.example.deviceUsageStatistics"; -this.newGroup = stats.GroupType.ACTIVE_GROUP_DAILY; +let bundleName = "com.example.deviceUsageStatistics"; +let newGroup = bundleState.GroupType.ACTIVE_GROUP_DAILY; -bundleState.setBundleGroup(this.bundleName, this.newGroup).then( () => { +bundleState.setBundleGroup(bundleName, newGroup).then( () => { console.log('BUNDLE_ACTIVE SetBundleGroup promise succeeded.'); }).catch( err => { console.log('BUNDLE_ACTIVE SetBundleGroup promise failed. because: ' + err.code); @@ -642,7 +653,7 @@ bundleState.setBundleGroup(this.bundleName, this.newGroup).then( () => { ## bundleState.setBundleGroup9+ -setBundleGroup(bundleName: string, newGroup: GroupType, callback: AsyncCallback\): void +setBundleGroup(bundleName: string, newGroup: GroupType, callback: AsyncCallback<void>): void Sets the group for the application specified by **bundleName**. This API uses an asynchronous callback to return the result. @@ -656,17 +667,17 @@ Sets the group for the application specified by **bundleName**. This API uses an | Name | Type | Mandatory | Description | | ---------- | ------------------- | ---- | ------------------------- | -| bundleName | string | Yes | Bundle name of the target application. | -| newGroup | GroupType | Yes | Application group. | -| callback | AsyncCallback\ | Yes | Callback used to return the result.| +| bundleName | string | Yes | Bundle name of an application. | +| newGroup | [GroupType](#grouptype) | Yes | Application group. | +| callback | AsyncCallback<void> | Yes | Callback used to return the result.| **Example** ```javascript -this.bundleName = "com.example.deviceUsageStatistics"; -this.newGroup = stats.GroupType.ACTIVE_GROUP_DAILY; +let bundleName = "com.example.deviceUsageStatistics"; +let newGroup = bundleState.GroupType.ACTIVE_GROUP_DAILY; -bundleState.setBundleGroup(this.bundleName, this.newGroup, (err) => { +bundleState.setBundleGroup(bundleName, newGroup, (err) => { if(err) { console.log('BUNDLE_ACTIVE SetBundleGroup callback failed. because: ' + err.code); } else { @@ -677,9 +688,9 @@ bundleState.setBundleGroup(this.bundleName, this.newGroup, (err) => { ## bundleState.registerGroupCallBack9+ -registerGroupCallBack(callback: Callback\): Promise\ +registerGroupCallBack(callback: Callback<BundleActiveGroupCallbackInfo>): Promise<void> -Registers a callback for application group changes. When an application group of the user changes, **BundleActiveGroupCallbackInfo** is returned to all applications that have registered the callback. This API uses a promise to return the result. +Registers a callback for application group changes. When an application group of the user changes, a **[BundleActiveGroupCallbackInfo](#bundleactivegroupcallbackinfo9)** instance is returned to all applications that have registered the callback. This API uses a promise to return the result. **Required permissions**: ohos.permission.BUNDLE_ACTIVE_INFO @@ -689,26 +700,26 @@ Registers a callback for application group changes. When an application group of **Parameters** -| Name | Type | Mandatory | Description | -| -------- | --------------------------------------- | ---- | ----------- | -| callback | Callback\ | Yes | Callback for application group changes.| +| Name | Type | Mandatory| Description | +| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------ | +| callback | Callback<[BundleActiveGroupCallbackInfo](#bundleactivegroupcallbackinfo9)> | Yes | Callback used to return the application group changes.| **Return value** | Type | Description | | ------------- | ----------------------- | -| Promise\ | Promise used to return the result.| +| Promise<void> | Promise used to return the result.| **Example** ```javascript let onBundleGroupChanged = (err,res) =>{ console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.'); - console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result oldGroup is : ' + res.oldGroup); - console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result newGroup is : ' + res.newGroup); - console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result changeReason is : ' + res.newGroup); - console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result userId is : ' + res.userId); - console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result bundleName is : ' + res.bundleName); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack result appUsageOldGroup is : ' + res.appUsageOldGroup); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack result appUsageNewGroup is : ' + res.appUsageNewGroup); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack result changeReason is : ' + res.changeReason); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack result userId is : ' + res.userId); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack result bundleName is : ' + res.bundleName); }; bundleState.registerGroupCallBack(onBundleGroupChanged).then( () => { console.log('BUNDLE_ACTIVE RegisterGroupCallBack promise succeeded.'); @@ -719,9 +730,9 @@ bundleState.registerGroupCallBack(onBundleGroupChanged).then( () => { ## bundleState.registerGroupCallBack9+ -registerGroupCallBack(callback: Callback\, callback: AsyncCallback\): void +registerGroupCallBack(callback: Callback<BundleActiveGroupCallbackInfo>, callback: AsyncCallback<void>): void -Registers a callback for application group changes. When an application group of the user changes, **BundleActiveGroupCallbackInfo** is returned to all applications that have registered the callback. This API uses an asynchronous callback to return the result. +Registers a callback for application group changes. When an application group of the user changes, a **[BundleActiveGroupCallbackInfo](#bundleactivegroupcallbackinfo9)** instance is returned to all applications that have registered the callback. This API uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.BUNDLE_ACTIVE_INFO @@ -731,21 +742,21 @@ Registers a callback for application group changes. When an application group of **Parameters** -| Name | Type | Mandatory | Description | -| -------- | --------------------------------------- | ---- | ------------- | -| callback | Callback\ | Yes | Callback for application group changes. | -| callback | AsyncCallback\ | Yes | Callback used to return the result.| +| Name | Type | Mandatory| Description | +| -------- | ------------------------------------------------------------ | ---- | -------------------------------------------- | +| callback | Callback<[BundleActiveGroupCallbackInfo](#bundleactivegroupcallbackinfo9)> | Yes | Callback used to return the application group changes. | +| callback | AsyncCallback<void> | Yes | Callback used to return the result.| **Example** ```javascript let onBundleGroupChanged = (err,res) =>{ console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.'); - console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's oldGroup is : ' + res.oldGroup); - console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's newGroup is : ' + res.newGroup); - console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's changeReason is : ' + res.newGroup); - console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's userId is : ' + res.userId); - console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result's bundleName is : ' + res.bundleName); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack result appUsageOldGroup is : ' + res.appUsageOldGroup); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack result appUsageNewGroup is : ' + res.appUsageNewGroup); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack result changeReason is : ' + res.changeReason); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack result userId is : ' + res.userId); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack result bundleName is : ' + res.bundleName); }; bundleState.registerGroupCallBack(onBundleGroupChanged, (err)=>{ if(err) { @@ -758,7 +769,7 @@ bundleState.registerGroupCallBack(onBundleGroupChanged, (err)=>{ ## bundleState.unRegisterGroupCallBack9+ -unRegisterGroupCallBack(): Promise\ +unRegisterGroupCallBack(): Promise<void> Deregisters the callback for application group changes. This API uses a promise to return the result. @@ -774,7 +785,7 @@ Deregisters the callback for application group changes. This API uses a promise | Type | Description | | ------------- | ------------------------ | -| Promise\ | Promise used to return the result.| +| Promise<void> | Promise used to return the result.| **Example** @@ -788,7 +799,7 @@ bundleState.unRegisterGroupCallBack().then( () => { ## bundleState.unRegisterGroupCallBack9+ -unRegisterGroupCallBack(callback: AsyncCallback\): void; +unRegisterGroupCallBack(callback: AsyncCallback<void>): void; Deregisters the callback for application group changes. This API uses an asynchronous callback to return the result. @@ -802,7 +813,7 @@ Deregisters the callback for application group changes. This API uses an asynchr | Name | Type | Mandatory | Description | | -------- | ------------------- | ---- | -------------- | -| callback | AsyncCallback\ | Yes | Callback used to return the result.| +| callback | AsyncCallback<void> | Yes | Callback used to return the result.| **Example** @@ -870,7 +881,7 @@ Queries statistics about system events (hibernation, wakeup, unlocking, and scre | -------- | ---------------------------------------- | ---- | ---------------------------------------- | | begin | number | Yes | Start time. | | end | number | Yes | End time. | -| callback | AsyncCallback<Array<[BundleActiveEventState](#bundleactiveeventstate9)>> | Yes | Promise used to return the result.| +| callback | AsyncCallback<Array<[BundleActiveEventState](#bundleactiveeventstate9)>> | Yes | Callback used to return the result.| **Example** @@ -982,7 +993,7 @@ Provides the FA widget usage information. | Name | Type | Mandatory | Description | | ---------------- | ------ | ---- | ----------- | -| formName | number | Yes | Widget name. | +| formName | string | Yes | Widget name. | | formDimension | number | Yes | Widget dimensions. | | formId | number | Yes | Widget ID. | | formLastUsedTime | number | Yes | Last time when the widget was clicked.| @@ -992,15 +1003,15 @@ Provides the FA widget usage information. Provides the application group changes returned through a callback. -**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App +**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.AppGroup -| Name | Type | Mandatory | Description | -| ---------------- | ------ | ---- | -------- | -| appUsageOldGroup | number | Yes | Application group before the change.| -| appUsageNewGroup | number | Yes | Application group after the change.| -| useId | number | Yes | User ID. | -| changeReason | number | Yes | Reason for the group change. | -| bundleName | string | Yes | Bundle name of an application. | +| Name | Type | Mandatory| Description | +| ---------------- | ------ | ---- | ---------------- | +| appUsageOldGroup | number | Yes | Application group before the change.| +| appUsageNewGroup | number | Yes | Application group after the change.| +| userId | number | Yes | User ID. | +| changeReason | number | Yes | Reason for the group change. | +| bundleName | string | Yes | Bundle name of an application. | ## BundleStateInfo @@ -1008,11 +1019,11 @@ Provides the usage duration information of applications. ### Attributes -**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.AppGroup +**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App | Name | Type | Mandatory | Description | | ------------------------ | ------ | ---- | ---------------------------------------- | -| bundleName | string | Yes | Bundle name of the application. | +| bundleName | string | Yes | Bundle name of an application. | | abilityPrevAccessTime | number | Yes | Last time when the application was used. | | abilityInFgTotalTime | number | Yes | Total time that the application runs in the foreground. | | id | number | No | User ID.
This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR.| @@ -1029,8 +1040,6 @@ merge(toMerge: BundleStateInfo): void Merges the application usage information that has the same bundle name. -This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR. - **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App **Parameters** @@ -1047,7 +1056,7 @@ Provides information about an application event. | Name | Type | Mandatory | Description | | --------------------- | ------ | ---- | ---------------------------------------- | -| bundleName | string | Yes | Bundle name of the application. | +| bundleName | string | Yes | Bundle name of an application. | | stateType | number | Yes | Application event type. | | stateOccurredTime | number | Yes | Timestamp when the application event occurs. | | appUsagePriorityGroup | number | No | Usage priority group of the application.
This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR.| @@ -1092,7 +1101,7 @@ Enumerates the interval types for querying the application usage duration. | BY_MONTHLY | 3 | The system obtains the application usage duration statistics in the specified time frame on a monthly basis. | | BY_ANNUALLY | 4 | The system obtains the application usage duration statistics in the specified time frame on an annual basis. | -## GroupType +## GroupType9+ Enumerates the application group types. -- GitLab From fa61d66c7823a6eb018388a8139b2f11477ef50b Mon Sep 17 00:00:00 2001 From: xiexiyun Date: Fri, 15 Jul 2022 18:05:42 +0800 Subject: [PATCH 037/868] fix border image code example error Signed-off-by: xiexiyun Change-Id: I9b8a1143528c452c523cefe8168071477fc1baec --- .../arkui-ts/figures/borderImage.png | Bin 8486 -> 5324 bytes .../arkui-ts/figures/borderImageGradient.png | Bin 0 -> 4174 bytes .../ts-universal-attributes-border-image.md | 29 +++++++++++++----- 3 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 zh-cn/application-dev/reference/arkui-ts/figures/borderImageGradient.png diff --git a/zh-cn/application-dev/reference/arkui-ts/figures/borderImage.png b/zh-cn/application-dev/reference/arkui-ts/figures/borderImage.png index a111a8e4ed06adf129c010801d10880a22018b25..22285e0910e3c447036d2144194a2e4301c2df6f 100644 GIT binary patch literal 5324 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 literal 0 HcmV?d00001 diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border-image.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border-image.md index 0bedbd2b91..ca42d63a08 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border-image.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border-image.md @@ -43,13 +43,10 @@ @Entry @Component struct Index { - @State message: string = 'This is\nborderImage.' - @State message2: string = 'This is\ngradient color.' - build() { Row() { Column() { - Text(this.message).textAlign(TextAlign.Center) + Text('This is\nborderImage.').textAlign(TextAlign.Center) .borderImage({ source: "borderOrigin.png", slice: {top:"31%", bottom:"31%", left:"31%", right:"31%"}, @@ -58,8 +55,26 @@ struct Index { repeat: RepeatMode.Repeat, fill: false }); - Text(this.message2).textAlign(TextAlign.Center) - .margin(10) + } + .width('100%') + } + .height('100%') + } +} +``` + +![zh-cn_image_borderImage](figures/borderImage.png) + + +```ts +// xxx.ets +@Entry +@Component +struct Index { + build() { + Row() { + Column() { + Text('This is\ngradient color.').textAlign(TextAlign.Center) .borderImage({ source: {angle:90, direction: GradientDirection.Left, @@ -77,4 +92,4 @@ struct Index { } ``` -![zh-cn_image_borderImage](figures/borderImage.png) +![zh-cn_image_borderImageGradient](figures/borderImageGradient.png) -- GitLab From bdfb8de7f5dd935603d4590a8cdaaa5784dbd3e2 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Mon, 18 Jul 2022 10:49:11 +0800 Subject: [PATCH 038/868] update docs Signed-off-by: Annie_wang --- .../database-distributedobject-guidelines.md | 86 +++++++++---------- .../database/database-mdds-guidelines.md | 45 +++++----- .../database-relational-guidelines.md | 14 +-- 3 files changed, 74 insertions(+), 71 deletions(-) diff --git a/en/application-dev/database/database-distributedobject-guidelines.md b/en/application-dev/database/database-distributedobject-guidelines.md index baf12a5741..dde1feb495 100644 --- a/en/application-dev/database/database-distributedobject-guidelines.md +++ b/en/application-dev/database/database-distributedobject-guidelines.md @@ -7,6 +7,8 @@ The distributed data objects allow data across devices to be processed like loca ## Available APIs +For details about the APIs related to the distributed data object, see [Distributed Data Object](../reference/apis/js-apis-data-distributedobject.md). + ### Creating a Distributed Data Object Instance Call **createDistributedObject()** to create a distributed data object instance. You can specify the attributes of the instance in **source**. @@ -15,7 +17,7 @@ Call **createDistributedObject()** to create a distributed data object instance. **Table 1** API for creating a distributed data object instance | Package| API| Description| | -------- | -------- | -------- | -| ohos.data.distributedDataObject| createDistributedObject(source: object): DistributedObject | Creates a distributed data object instance for data operations.
- **source**: attributes of the **distributedObject** set.
- **DistributedObject**: returns the distributed object created.| +| ohos.data.distributedDataObject| createDistributedObject(source: object): DistributedObject | Creates a distributed data object instance for data operations.
- **source**: attributes of the **distributedObject** set.
- **DistributedObject**: returns the distributed object created.| ### Generating a Session ID @@ -33,16 +35,16 @@ Call **setSessionId()** to set a session ID for a distributed data object. The s **Table 3** API for setting a session ID | Class| API| Description| | -------- | -------- | -------- | -| DistributedDataObject | setSessionId(sessionId?: string): boolean | Sets a session ID for distributed data objects.
 **sessionId**: session ID of a distributed object in a trusted network. To remove a distributed data object from the network, set this parameter to "" or leave it empty.| +| DistributedDataObject | setSessionId(sessionId?: string): boolean | Sets a session ID for distributed data objects.
**sessionId**: session ID of a distributed object in a trusted network. To remove a distributed data object from the network, set this parameter to "" or leave it empty.| ### Observing Data Changes Call **on()** to subscribe to data changes of a distributed data object. When the data changes, a callback will be invoked to return the data changes. You can use **off()** to unsubscribe from the data changes. **Table 4** APIs for observing data changes of a distributed data object -| Class| API| Description| +| Class| API| Description| | -------- | -------- | -------- | -| DistributedDataObject| on(type: 'change', callback: Callback<{ sessionId: string, fields: Array<string> }>): void | Subscribes to data changes.| +| DistributedDataObject| on(type: 'change', callback: Callback<{ sessionId: string, fields: Array<string> }>): void | Subscribes to data changes.| | DistributedDataObject| off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array<string> }>): void | Unsubscribes from data changes. **Callback**: specifies callback used to return changes of the distributed data object. If this parameter is not specified, all callbacks related to data changes will be unregistered.| ### Observing Online or Offline Status @@ -67,13 +69,13 @@ The saved data will be released in the following cases: - The application has been uninstalled. - Data is successfully restored. -**Table 6** APIs for saving a distributed data object and revoking the saving +**Table 6** APIs for saving a distributed data object and revoking the saving operation | Class| API| Description| | -------- | -------- | -------- | | DistributedDataObject | save(deviceId: string): Promise<SaveSuccessResponse> | Saves a distributed data object. This API uses a promise to return the result.| | DistributedDataObject| save(deviceId: string, callback: AsyncCallback<SaveSuccessResponse>): void | Saves a distributed data object. This API uses an asynchronous callback to return the result.| -| DistributedDataObject | revokeSave(callback: AsyncCallback<RevokeSaveSuccessResponse>): void | Revokes the data saving operation. This API uses an asynchronous callback to return the result. | -| DistributedDataObject| revokeSave(): Promise<RevokeSaveSuccessResponse> | Revokes the data saving operation. This API uses a promise to return the result. | +| DistributedDataObject | revokeSave(callback: AsyncCallback<RevokeSaveSuccessResponse>): void | Revokes the data saving operation. This API uses an asynchronous callback to return the result.| +| DistributedDataObject| revokeSave(): Promise<RevokeSaveSuccessResponse> | Revokes the data saving operation. This API uses a promise to return the result.| ## How to Develop @@ -157,7 +159,7 @@ The following example shows how to implement a distributed data object synchroni local_object.on("change", this.changeCallback.bind(this)); ``` -6. Modify object attributes.
The object attributes support basic data types (such as number, Boolean, and string) and complex data types (array and nested basic types). +6. Modify object attributes.
The object attributes support basic data types (such as number, Boolean, and string) and complex data types (array and nested basic types). The sample code is as follows: ```js @@ -205,41 +207,39 @@ The following example shows how to implement a distributed data object synchroni 10. Save a distributed data object and revoke the data saving operation. - Callback - - - ```js - // Save a distributed data object. - local_object.save("local", (result, data)=>{ - console.log("save callback"); - console.info("save sessionId " + data.sessionId); - console.info("save version " + data.version); - console.info("save deviceId " + data.deviceId); - }); - // Revoke the data saving operation. - local_object.revokeSave((result, data) =>{ - console.log("revokeSave callback"); - console.info("revokeSave sessionId " + data.sessionId); - }); - ``` - - Promise - - ```js - // Save a distributed data object. - g_object.save("local").then((result)=>{ - console.info("save sessionId " + result.sessionId); - console.info("save version " + result.version); - console.info("save deviceId " + result.deviceId); - }, (result)=>{ - console.info("save local failed."); - }); - // Revoke the data saving operation. - g_object.revokeSave().then((result)=>{ - console.info("revokeSave success."); - }, (result)=>{ - console.info("revokeSave failed."); - }); - ``` -11. Unsubscribe from the status changes of the distributed data object.
You can specify the callback to unregister. If you do not specify the callback, this API unregister all callbacks of this distributed data object. + + ```js + // Save a distributed data object. + local_object.save("local", (result, data)=>{ + console.log("save callback"); + console.info("save sessionId " + data.sessionId); + console.info("save version " + data.version); + console.info("save deviceId " + data.deviceId); + }); + // Revoke the data saving operation. + local_object.revokeSave((result, data) =>{ + console.log("revokeSave callback"); + console.info("revokeSave sessionId " + data.sessionId); + }); + ``` + - Promise + ```js + // Save a distributed data object. + g_object.save("local").then((result)=>{ + console.info("save sessionId " + result.sessionId); + console.info("save version " + result.version); + console.info("save deviceId " + result.deviceId); + }, (result)=>{ + console.info("save local failed."); + }); + // Revoke the data saving operation. + g_object.revokeSave().then((result)=>{ + console.info("revokeSave success."); + }, (result)=>{ + console.info("revokeSave failed."); + }); + ``` +11. Unsubscribe from the status changes of the distributed data object.
You can specify the callback to unregister. If you do not specify the callback, this API unregisters all callbacks of this distributed data object. The sample code is as follows: ```js diff --git a/en/application-dev/database/database-mdds-guidelines.md b/en/application-dev/database/database-mdds-guidelines.md index 309d2a38e4..c5608c6eab 100644 --- a/en/application-dev/database/database-mdds-guidelines.md +++ b/en/application-dev/database/database-mdds-guidelines.md @@ -7,19 +7,21 @@ The Distributed Data Service (DDS) implements synchronization of application dat ## Available APIs +For details about the APIs related to distributed data, see [Distributed Data Management](../reference/apis/js-apis-distributed-data.md). + The table below describes the APIs provided by the OpenHarmony DDS module. **Table 1** APIs provided by the DDS -| Category | API | Description | -| -------- | --- | ----------- | -| Creating a distributed database | createKVManager(config: KVManagerConfig, callback: AsyncCallback<KVManager>): void
createKVManager(config: KVManagerConfig): Promise<KVManager> | Creates a **KVManager** object for database management.| -| Obtaining a distributed KV store | getKVStore<T extends KVStore>(storeId: string, options: Options, callback: AsyncCallback<T>): void
getKVStore<T extends KVStore>(storeId: string, options: Options): Promise<T> | Obtains the KV store with the specified **Options** and **storeId**. | -| Managing data in a distributed KV store | put(key: string, value: Uint8Array \| string \| number \| boolean, callback: AsyncCallback<void>): void
put(key: string, value: Uint8Array \| string \| number \| boolean): Promise<void> | Inserts and updates data. | +| Category | API | Description | +| ------------ | ------------- | ------------- | +| Creating a distributed database| createKVManager(config: KVManagerConfig, callback: AsyncCallback<KVManager>): void
createKVManager(config: KVManagerConfig): Promise<KVManager> | Creates a **KVManager** object for database management.| +| Obtaining a distributed KV store| getKVStore<T extends KVStore>(storeId: string, options: Options, callback: AsyncCallback<T>): void
getKVStore<T extends KVStore>(storeId: string, options: Options): Promise<T> | Obtains the KV store with the specified **Options** and **storeId**.| +| Managing data in a distributed KV store| put(key: string, value: Uint8Array \| string \| number \| boolean, callback: AsyncCallback<void>): void
put(key: string, value: Uint8Array \| string \| number \| boolean): Promise<void> | Inserts and updates data.| | Managing data in a distributed KV store| delete(key: string, callback: AsyncCallback<void>): void
delete(key: string): Promise<void> | Deletes data. | -| Managing data in a distributed KV store | get(key: string, callback: AsyncCallback<Uint8Array \| string \| boolean \| number>): void
get(key: string): Promise<Uint8Array \| string \| boolean \| number> | Queries data. | -| Subscribing to changes in the distributed data | on(event: 'dataChange', type: SubscribeType, observer: Callback<ChangeNotification>): void
on(event: 'syncComplete', syncCallback: Callback<Array<[string, number]>>): void | Subscribes to data changes in the KV store. | -| Synchronizing data across devices | sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void | Triggers database synchronization in manual mode. | +| Managing data in a distributed KV store| get(key: string, callback: AsyncCallback<Uint8Array \| string \| boolean \| number>): void
get(key: string): Promise<Uint8Array \| string \| boolean \| number> | Queries data. | +| Subscribing to changes in the distributed data| on(event: 'dataChange', type: SubscribeType, observer: Callback<ChangeNotification>): void
on(event: 'syncComplete', syncCallback: Callback<Array<[string, number]>>): void | Subscribes to data changes in the KV store.| +| Synchronizing data across devices| sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void | Triggers database synchronization in manual mode. | @@ -29,14 +31,13 @@ The table below describes the APIs provided by the OpenHarmony DDS module. The following uses a single KV store as an example to describe the development procedure. 1. Import the distributed data module. - ```js import distributedData from '@ohos.data.distributedData'; ``` 2. Create a **KvManager** instance based on the specified **KvManagerConfig** object. - 1. Create a **KvManagerConfig** object based on the application context. - 2. Create a **KvManager** instance. + (1) Create a **KvManagerConfig** object based on the application context. + (2) Create a **KvManager** instance. The sample code is as follows: ```js @@ -63,8 +64,8 @@ The following uses a single KV store as an example to describe the development p ``` 3. Create and obtain a single KV store. - 1. Declare the ID of the single KV store to create. - 2. Create a single KV store. You are advised to disable automatic synchronization (**autoSync:false**) and call **sync** when a synchronization is required. + (1) Declare the ID of the single KV store to create. + (2) Create a single KV store. You are advised to disable automatic synchronization (**autoSync:false**) and call **sync** when a synchronization is required. The sample code is as follows: ```js @@ -91,12 +92,11 @@ The following uses a single KV store as an example to describe the development p } ``` - > ![icon-note.gif](../public_sys-resources/icon-note.gif) **NOTE**
+ > ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
> For data synchronization between networked devices, you are advised to open the distributed KV store during application startup to obtain the database handle. With this database handle (**kvStore** in this example), you can perform operations, such as inserting data into the KV store, without creating the KV store repeatedly during the lifecycle of the handle. -4. Subscribe to changes in the distributed data.
+4. Subscribe to changes in the distributed data.
The following is the sample code for subscribing to the data changes of a single KV store: - ```js kvStore.on('dataChange', distributedData.SubscribeType.SUBSCRIBE_TYPE_ALL, function (data) { console.log("dataChange callback call data: " + JSON.stringify(data)); @@ -104,8 +104,8 @@ The following uses a single KV store as an example to describe the development p ``` 5. Write data to the single KV store. - 1. Construct the key and value to be written into the single KV store. - 2. Write key-value pairs into the single KV store. + (1) Construct the key and value to be written into the single KV store. + (2) Write key-value pairs into the single KV store. The following is the sample code for writing key-value pairs of the string type into the single KV store: @@ -126,11 +126,10 @@ The following uses a single KV store as an example to describe the development p ``` 6. Query data in the single KV store. - 1. Construct the key to be queried from the single KV store. - 2. Query data from the single KV store. + (1) Construct the key to be queried from the single KV store. + (2) Query data from the single KV store. The following is the sample code for querying data of the string type from the single KV store: - ```js const KEY_TEST_STRING_ELEMENT = 'key_test_string'; const VALUE_TEST_STRING_ELEMENT = 'value-test-string'; @@ -178,3 +177,7 @@ The following uses a single KV store as an example to describe the development p } }); ``` +## Samples +The following samples are provided to help you better understand the distributed data development: +- [`KvStore`: Distributed Database (eTS) (API8)](https://gitee.com/openharmony/app_samples/tree/master/data/Kvstore) +- [Distributed Database](https://gitee.com/openharmony/codelabs/tree/master/Data/JsDistributedData) diff --git a/en/application-dev/database/database-relational-guidelines.md b/en/application-dev/database/database-relational-guidelines.md index 50d34b56ce..53bba06280 100644 --- a/en/application-dev/database/database-relational-guidelines.md +++ b/en/application-dev/database/database-relational-guidelines.md @@ -34,7 +34,7 @@ The RDB provides APIs for inserting, deleting, updating, and querying data in th | Class| API| Description| | -------- | -------- | -------- | - | RdbStore | insert(table: string, values: ValuesBucket, callback: AsyncCallback<number>):void | Inserts a row of data into a table. This API uses a callback to return the result.
- **table**: name of the target table.
- **values**: data to be inserted into the table.
- **callback**: callback invoked to return the result. If the operation is successful, the row ID will be returned. Otherwise, **-1** will be returned.| + | RdbStore | insert(table: string, values: ValuesBucket, callback: AsyncCallback<number>):void | Inserts a row of data into a table. This API uses a callback to return the result.
- **table**: name of the target table.
- **values**: data to be inserted into the table.
- **callback**: callback invoked to return the result. If the operation is successful, the row ID will be returned; otherwise, **-1** will be returned.| | RdbStore | insert(table: string, values: ValuesBucket): Promise<number> | Inserts a row of data into a table. This API uses a promise to return the result.
- **table**: name of the target table.
- **values**: data to be inserted into the table.| - **Updating data** @@ -190,7 +190,7 @@ You can obtain the distributed table name for a remote device based on the local | -------- | -------- | -------- | | RdbStore |off(event:'dataChange', type: SubscribeType, observer: Callback\>): void;| Unregisters the observer of the specified type for the RDB store. This API uses a callback to return the result.
- **type**: subscription type. **SUBSCRIBE_TYPE_REMOTE** means to subscribe to remote data changes.
- **observer**: observer to unregister.| -### Backing Up and Restore an RDB Store +### Backing Up and Restoring an RDB Store **Backing Up an RDB Store** @@ -198,8 +198,8 @@ You can obtain the distributed table name for a remote device based on the local | Class| API| Description| | -------- | -------- | -------- | -| RdbStore |backup(destName:string, callback: AsyncCallback<void>):void| Backs up the RDB store with the specified name. This API uses an asynchronous callback to return the result.
- **destName**: name of the RDB backup file.
- **callback**: callback invoked to return the result.| -| RdbStore |backup(destName:string): Promise<void>| Backs up the RDB store with the specified name. This API uses a promise to return the result.
- **destName**: name of the RDB backup file.| +| RdbStore |backup(destName:string, callback: AsyncCallback<void>):void| Backs up an RDB store. This API uses an asynchronous callback to return the result.
- **destName**: name of the RDB backup file.
- **callback**: callback invoked to return the result.| +| RdbStore |backup(destName:string): Promise<void>| Backs up an RDB store. This API uses a promise to return the result.
- **destName**: name of the RDB backup file.| **Restoring an RDB Store** @@ -207,8 +207,8 @@ You can obtain the distributed table name for a remote device based on the local | Class| API| Description| | -------- | -------- | -------- | -| RdbStore |restore(srcName:string, callback: AsyncCallback<void>):void| Restores an RDB store using the specified backup file. This API uses an asynchronous callback to return the result.
- **srcName**: name of the RDB backup file.
- **callback**: callback invoked to return the result.| -| RdbStore |restore(srcName:string): Promise<void>| Restores an RDB store using the specified backup file. This API uses a promise to return the result.
- **srcName**: name of the RDB backup file.| +| RdbStore |restore(srcName:string, callback: AsyncCallback<void>):void| Restores an RDB store using a backup file. This API uses an asynchronous callback to return the result.
- **srcName**: name of the RDB backup file.
- **callback**: callback invoked to return the result.| +| RdbStore |restore(srcName:string): Promise<void>| Restores an RDB store using a backup file. This API uses a promise to return the result.
- **srcName**: name of the RDB backup file.| ## How to Develop @@ -270,7 +270,7 @@ You can obtain the distributed table name for a remote device based on the local const blobType = resultSet.getBlob(resultSet.getColumnIndex("blobType")) resultSet.close() }) - ``` + ``` 4. Set the distributed tables to be synchronized. -- GitLab From 51aabfa21d494b0f812f616c20e4025f60fc55f8 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Mon, 18 Jul 2022 11:21:55 +0800 Subject: [PATCH 039/868] update docs Signed-off-by: Annie_wang --- .../apis/js-apis-distributed-account.md | 2 +- .../reference/apis/js-apis-osAccount.md | 62 +++++++++---------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-distributed-account.md b/en/application-dev/reference/apis/js-apis-distributed-account.md index bc64da83d9..dc674978d2 100644 --- a/en/application-dev/reference/apis/js-apis-distributed-account.md +++ b/en/application-dev/reference/apis/js-apis-distributed-account.md @@ -2,7 +2,7 @@ The distributedAccount module provides basic functions for managing distributed accounts, including querying and updating account login status. -> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
+> **NOTE**
> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. diff --git a/en/application-dev/reference/apis/js-apis-osAccount.md b/en/application-dev/reference/apis/js-apis-osAccount.md index 7135d5666d..e1dbb5f4a5 100644 --- a/en/application-dev/reference/apis/js-apis-osAccount.md +++ b/en/application-dev/reference/apis/js-apis-osAccount.md @@ -20,7 +20,7 @@ Obtains an **AccountManager** instance. **System capability**: SystemCapability.Account.OsAccount -**Return Value** +**Return value** | Type | Description | | --------------------------------- | ------------------------ | | [AccountManager](#accountmanager) | Obtains an **AccountManager** instance.| @@ -92,7 +92,7 @@ This is a system API and cannot be called by third-party applications. | ------- | ------ | ---- | -------------------- | | localId | number | Yes | ID of the OS account to activate.| -**Return Value** +**Return value** | Type | Description | | :------------------ | :---------------------------------- | @@ -141,7 +141,7 @@ Checks whether multiple OS accounts are supported. This API uses a promise to re **System capability**: SystemCapability.Account.OsAccount -**Return Value** +**Return value** | Type | Description | | :--------------------- | :----------------------------------------------------------- | @@ -202,7 +202,7 @@ Checks whether an OS account is activated. This API uses a promise to return the | ------- | ------ | ---- | ------------ | | localId | number | Yes | ID of the target OS account.| -**Return Value** +**Return value** | Type | Description | | :--------------------- | :----------------------------------------------------------- | @@ -266,7 +266,7 @@ Checks whether the specified constraint is enabled for an OS account. This API u | localId | number | Yes | ID of the target OS account. | | constraint | string | Yes | [Constraint](#constraints) specified.| -**Return Value** +**Return value** | Type | Description | | :--------------------- | :----------------------------------------------------------- | @@ -316,7 +316,7 @@ Checks whether this OS account is a test account. This API uses a promise to ret **System capability**: SystemCapability.Account.OsAccount -**Return Value** +**Return value** | Type | Description | | :--------------------- | :----------------------------------------------------------- | @@ -400,7 +400,7 @@ Checks whether an OS account has been verified. This API uses a promise to retur | ------- | ------ | ---- | ------------------ | | localId | number | No | ID of the target OS account.| -**Return Value** +**Return value** | Type | Description | | :--------------------- | :----------------------------------------------------------- | @@ -467,7 +467,7 @@ This is a system API and cannot be called by third-party applications. | ------- | ------ | ---- | -------------------- | | localId | number | Yes | ID of the OS account to remove.| -**Return Value** +**Return value** | Type | Description | | :------------------ | :---------------------------------- | @@ -540,7 +540,7 @@ This is a system API and cannot be called by third-party applications. | constraints | Array<string> | Yes | List of [constraints](#constraints) to set or remove.| | enable | boolean | Yes | Set or remove constraints. The value **true** means to set constraints, and **false** means to remove constraints. | -**Return Value** +**Return value** | Type | Description | | :------------------ | :---------------------------------- | @@ -608,7 +608,7 @@ This is a system API and cannot be called by third-party applications. | localId | number | Yes | ID of the target OS account.| | localName | string | Yes | Account name to set. | -**Return Value** +**Return value** | Type | Description | | :------------------ | :---------------------------------- | @@ -663,7 +663,7 @@ Obtains the number of OS accounts created. This API uses a promise to return the **System capability**: SystemCapability.Account.OsAccount -**Return Value** +**Return value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | @@ -712,7 +712,7 @@ Obtains the ID of the OS account to which the current process belongs. This API **System capability**: SystemCapability.Account.OsAccount -**Return Value** +**Return value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | @@ -769,7 +769,7 @@ Obtains the OS account ID based on the process UID. This API uses a promise to r | ------ | ------ | ---- | --------- | | uid | number | Yes | Process UID.| -**Return Value** +**Return value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | @@ -831,7 +831,7 @@ Obtains the OS account ID based on domain account information. This API uses a p | ---------- | --------------------------------------- | ---- | ------------ | | domainInfo | [DomainAccountInfo](#domainaccountinfo) | Yes | Domain account information.| -**Return Value** +**Return value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | @@ -885,7 +885,7 @@ This is a system API and cannot be called by third-party applications. **System capability**: SystemCapability.Account.OsAccount -**Return Value** +**Return value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | @@ -946,7 +946,7 @@ Obtains all constraints enabled for an OS account. This API uses a promise to re | ------- | ------ | ---- | ------------ | | localId | number | Yes | ID of the target OS account.| -**Return Value** +**Return value** | Type | Description | | :--------------------------------- | :----------------------------------------------------------- | @@ -1004,7 +1004,7 @@ This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS -**Return Value** +**Return value** | Type | Description | | :---------------------------------------------------------- | :----------------------------------------------------------- | @@ -1056,7 +1056,7 @@ Obtains information about all activated OS accounts. This API uses a promise to **System capability**: SystemCapability.Account.OsAccount -**Return Value** +**Return value** | Type | Description | | :--------------------------------- | :----------------------------------------------------------- | @@ -1122,7 +1122,7 @@ This is a system API and cannot be called by third-party applications. | localName | string | Yes | Name of the OS account to create.| | type | [OsAccountType](#osaccounttype) | Yes | Type of the OS account to create.| -**Return Value** +**Return value** | Type | Description | | :--------------------------------------------- | :----------------------------------------------------------- | @@ -1189,7 +1189,7 @@ This is a system API and cannot be called by third-party applications. | type | [OsAccountType](#osaccounttype) | Yes | Type of the OS account to create.| | domainInfo | [DomainAccountInfo](#domainaccountinfo) | Yes | Domain account information. | -**Return Value** +**Return value** | Type | Description | | :--------------------------------------------- | :----------------------------------------------------------- | @@ -1243,7 +1243,7 @@ Obtains information about the OS account to which the current process belongs. T **System capability**: SystemCapability.Account.OsAccount -**Return Value** +**Return value** | Type | Description | | :--------------------------------------------- | :----------------------------------------------------------- | @@ -1308,7 +1308,7 @@ This is a system API and cannot be called by third-party applications. | ------- | ------ | ---- | -------------------- | | localId | number | Yes | ID of the target OS account.| -**Return Value** +**Return value** | Type | Description | | :--------------------------------------------- | :----------------------------------------------------------- | @@ -1358,7 +1358,7 @@ Obtains the type of the OS account to which the current process belongs. This AP **System capability**: SystemCapability.Account.OsAccount -**Return Value** +**Return value** | Type | Description | | :--------------------------------------------- | :----------------------------------------------------------- | @@ -1411,7 +1411,7 @@ Obtains the ID of this distributed virtual device. This API uses a promise to re **System capability**: SystemCapability.Account.OsAccount -**Return Value** +**Return value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | @@ -1476,7 +1476,7 @@ This is a system API and cannot be called by third-party applications. | ------- | ------ | ---- | ------------ | | localId | number | Yes | ID of the target OS account.| -**Return Value** +**Return value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | @@ -1547,7 +1547,7 @@ This is a system API and cannot be called by third-party applications. | localId | number | Yes | ID of the target OS account.| | photo | string | Yes | Profile photo information. | -**Return Value** +**Return value** | Type | Description | | :------------------ | :---------------------------------- | @@ -1609,7 +1609,7 @@ Obtains the OS account ID based on the SN. This API uses a promise to return the | ------------ | ------ | ---- | ---------- | | serialNumber | number | Yes | Account SN.| -**Return Value** +**Return value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | @@ -1667,7 +1667,7 @@ Obtains the SN of an OS account based on the account ID. This API uses a promise | ------- | ------ | ---- | ------------ | | localId | number | Yes | ID of the target OS account.| -**Return Value** +**Return value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | @@ -1787,7 +1787,7 @@ This is a system API and cannot be called by third-party applications. | ------- | ------ | ---- | ------------ | | uid | number | Yes | Process UID.| -**Return Value** +**Return value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | @@ -1836,7 +1836,7 @@ This is a system API and cannot be called by third-party applications. **System capability**: SystemCapability.Account.OsAccount -**Return Value** +**Return value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | @@ -1898,7 +1898,7 @@ This is a system API and cannot be called by third-party applications. | localId | number | Yes | ID of the target OS account.| | constraint | string | Yes | Name of the [constraint](#constraints) to query.| -**Return Value** +**Return value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | -- GitLab From 64d58675c671eee064b5656eb1df428b48c2f513 Mon Sep 17 00:00:00 2001 From: clevercong Date: Mon, 18 Jul 2022 11:48:36 +0800 Subject: [PATCH 040/868] update Signed-off-by: clevercong --- .../reference/apis/js-apis-call.md | 343 +++++++++--------- .../reference/apis/js-apis-radio.md | 102 +++--- .../reference/apis/js-apis-sim.md | 92 ++--- .../reference/apis/js-apis-sms.md | 179 ++++----- 4 files changed, 365 insertions(+), 351 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-call.md b/zh-cn/application-dev/reference/apis/js-apis-call.md index 217391f3c4..228340b56e 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-call.md +++ b/zh-cn/application-dev/reference/apis/js-apis-call.md @@ -611,15 +611,15 @@ answer\(callId: number, callback: AsyncCallback\): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------------------- | ---- | ---------- | -| callId | number | 是 | 呼叫Id。 | -| callback | AsyncCallback<void> | 是 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ----------------------------------------------- | +| callId | number | 是 | 呼叫Id。可以通过订阅callDetailsChange事件获得。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | **示例:** ```js -call.dial(1, (err, data) => { +call.answer(1, (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` @@ -639,9 +639,9 @@ answer(callId?: number\): Promise **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------ | ---- | ------------------------------- | -| callId | number | 否 | 呼叫Id。自API 9起,它是可选的。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------------------------------------------------------------ | +| callId | number | 否 | 呼叫Id。可以通过订阅callDetailsChange事件获得。从API Version 9开始为可选参数。 | **返回值:** @@ -697,10 +697,10 @@ hangup\(callId: number, callback: AsyncCallback\): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------------------- | ---- | ---------- | -| callId | number | 是 | 呼叫id。 | -| callback | AsyncCallback<void> | 是 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ----------------------------------------------- | +| callId | number | 是 | 呼叫id。可以通过订阅callDetailsChange事件获得。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | **示例:** @@ -723,9 +723,9 @@ hangup\(callId?: number\): Promise **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------ | ---- | --------------------------------- | -| callId | number | 否 | 呼叫id。自API 9以来,它是可选的。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------------------------------------------------------------ | +| callId | number | 否 | 呼叫id。可以通过订阅callDetailsChange事件获得。从API Version 9开始为可选参数。 | **返回值:** @@ -781,10 +781,10 @@ reject\(options: RejectMessageOptions, callback: AsyncCallback\): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | --------------------------------------------- | ---- | -------------- | -| options | [RejectMessageOptions](#RejectMessageOptions) | 是 | 拒绝消息选项。 | -| callback | AsyncCallback<void> | 是 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------------- | ---- | -------------- | +| options | [RejectMessageOptions](#rejectmessageoptions7) | 是 | 拒绝消息选项。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | **示例:** @@ -810,10 +810,10 @@ reject(callId: number, callback: AsyncCallback): **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------------------- | ---- | ---------- | -| callId | number | 是 | 呼叫Id。 | -| callback | AsyncCallback<void> | 是 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------- | ---- | ----------------------------------------------- | +| callId | number | 是 | 呼叫Id。可以通过订阅callDetailsChange事件获得。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | **返回值:** @@ -844,11 +844,11 @@ reject\(callId: number, options: RejectMessageOption, callback: AsyncCallback **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------- | --------------------------------------------- | ---- | --------------------------------- | -| callId | number | 否 | 呼叫Id。自API 9以来,它是可选的。 | -| options | [RejectMessageOptions](#RejectMessageOptions) | 否 | 拒绝消息选项。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ---------------------------------------------- | ---- | ------------------------------------------------------------ | +| callId | number | 否 | 呼叫Id。可以通过订阅callDetailsChange事件获得。从API Version 9开始为可选参数。 | +| options | [RejectMessageOptions](#rejectmessageoptions7) | 否 | 拒绝消息选项。 | **返回值:** @@ -1080,7 +1080,7 @@ promise.then(data => { combineConference\(callId: number, callback: AsyncCallback\): void -组合会议。使用callback异步回调。 +合并通话,将两通电话合并成会议电话。使用callback异步回调。 此接口为系统接口。 @@ -1106,7 +1106,7 @@ call.combineConference(1, (err, data) => { combineConference\(callId: number\): Promise -组合会议。使用Promise异步回调。 +合并通话,将两通电话合并成会议电话。使用Promise异步回调。 此接口为系统接口。 @@ -1255,7 +1255,7 @@ promise.then(data => { ## call.getCallIdListForConference7+ -getCallIdListForConference\(callId: number, callback: AsyncCallback**<**Array>\): void +getCallIdListForConference\(callId: number, callback: AsyncCallback>\): void 获取会议的呼叫Id列表。使用callback异步回调。 @@ -1314,7 +1314,7 @@ promise.then(data => { ## call.getCallWaitingStatus7+ -getCallWaitingStatus\(slotId: number, callback: AsyncCallback**<**CallWaitingStatus>\): void +getCallWaitingStatus\(slotId: number, callback: AsyncCallback\): void 获取呼叫等待状态。使用callback异步回调。 @@ -1324,10 +1324,10 @@ getCallWaitingStatus\(slotId: number, callback: AsyncCallback**<**CallWaitingSta **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------------------------ | ---- | -------------------------------------- | -| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| callback | AsyncCallback\> | 是 | 回调函数。返回呼叫等待状态。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------------------------------- | ---- | ------------------------------------------------------------ | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback<[CallWaitingStatus](#callwaitingstatus7)\> | 是 | 回调函数。
返回呼叫等待状态。
- 0:禁用呼叫等待
- 1:启用呼叫等待 | **示例:** @@ -1356,9 +1356,9 @@ getCallWaitingStatus\(slotId: number\): Promise **返回值:** -| 类型 | 说明 | -| ------------------------------------------------------- | ----------------------------------- | -| Promise<[CallWaitingStatus](#CallWaitingStatus7)> | 以Promise形式异步返回呼叫等待状态。 | +| 类型 | 说明 | +| ------------------------------------------------------- | ------------------------------------------------------------ | +| Promise<[CallWaitingStatus](#callwaitingstatus7)> | 以Promise形式异步返回呼叫等待状态。
- 0:禁用呼叫等待
- 1:启用呼叫等待 | **示例:** @@ -1383,11 +1383,11 @@ setCallWaiting\(slotId: number, activate: boolean, callback: AsyncCallback- 0:卡槽1
- 1:卡槽2 | -| activate | boolean | 是 | 是否激活。 | -| callback | AsyncCallback\> | 是 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ------------------------------------------------------------ | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| activate | boolean | 是 | 呼叫等待是否处于启用状态。
- false:禁用呼叫等待
- true:启用呼叫等待 | +| callback | AsyncCallback | 是 | 回调函数。 | **示例:** @@ -1410,10 +1410,10 @@ setCallWaiting\(slotId: number, activate: boolean\): Promise **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------- | ---- | -------------------------------------- | -| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| activate | boolean | 是 | 是否激活。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------- | ---- | ------------------------------------------------------------ | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| activate | boolean | 是 | 呼叫等待是否处于启用状态。
- false:禁用呼叫等待
- true:启用呼叫等待 | **返回值:** @@ -1608,9 +1608,9 @@ promise.then(data => { }); ``` -## call.on7+ +## call.on('callDetailsChange')7+ -on\(type: 'callDetailsChange', callback: Callback**<**CallAttributeOptions>\): void +on\(type: 'callDetailsChange', callback: Callback\): void 订阅callDetailsChange事件。使用callback异步回调。 @@ -1620,10 +1620,10 @@ on\(type: 'callDetailsChange', callback: Callback**<**CallAttributeOptions>\): v **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------------------------------- | ---- | ---------------- | -| type | 'callDetailsChange' | 是 | 调用的细节变化。 | -| callback | Callback**<**[CallAttributeOptions](#CallAttributeOptions)> | 是 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------------- | ---- | -------------------------- | +| type | string | 是 | 通话时监听通话详情的变化。 | +| callback | Callback<[CallAttributeOptions](#callattributeoptions7)> | 是 | 回调函数。 | **示例:** @@ -1633,9 +1633,9 @@ call.on('callDetailsChange', (err, data) => { }); ``` -## call.on8+ +## call.on('callEventChange')8+ -on\(type: 'callEventChange', callback: Callback**<**CallEventOptions>\): void +on\(type: 'callEventChange', callback: Callback\): void 订阅callEventChange事件。使用callback异步回调。 @@ -1645,10 +1645,10 @@ on\(type: 'callEventChange', callback: Callback**<**CallEventOptions>\): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | --------------------------------------------------- | ---- | -------------- | -| type | 'callEventChange' | 是 | 调用事件改变。 | -| callback | Callback**<**[CallEventOptions](#CallEventOptions)> | 是 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------ | ---- | -------------------------- | +| type | string | 是 | 通话时监听通话事件的变化。 | +| callback | Callback<[CallEventOptions](#calleventoptions8)> | 是 | 回调函数。 | **示例:** @@ -1658,9 +1658,9 @@ call.on('callEventChange', (err, data) => { }); ``` -## call.on8+ +## call.on('callDisconnectedCause')8+ -on\(type: 'callDisconnectedCause', callback: Callback**<**DisconnectedDetails>\): void +on\(type: 'callDisconnectedCause', callback: Callback): void 订阅callDisconnectedCause事件。使用callback异步回调。 @@ -1670,10 +1670,10 @@ on\(type: 'callDisconnectedCause', callback: Callback**<**DisconnectedDetails>\) **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------------------------- | ---- | -------------------- | -| type | 'callDisconnectedCause' | 是 | 调用断开连接的原因。 | -| callback | Callback**<**[DisconnectedDetails](#DisconnectedDetails8)> | 是 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------------ | ---- | -------------------------- | +| type | string | 是 | 通话时监听断开连接的原因。 | +| callback | Callback<[DisconnectedDetails](#disconnecteddetails8)> | 是 | 回调函数。 | **示例:** @@ -1683,7 +1683,7 @@ call.on('callDisconnectedCause', (err, data) => { }); ``` -## call.on9+ +## call.on('mmiCodeResult')9+ on\(type: 'mmiCodeResult', callback: Callback\): void @@ -1695,10 +1695,10 @@ on\(type: 'mmiCodeResult', callback: Callback\): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------------------------------------------ | ---- | ----------- | -| type | 'mmiCodeResult' | 是 | MMI码结果。 | -| callback | Callback**<**[MmiCodeResults](#MmiCodeResults9)> | 是 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------------------------------- | ---- | --------------------- | +| type | string | 是 | 通话时监听MMI码结果。 | +| callback | Callback<[MmiCodeResults](#mmicoderesults9)> | 是 | 回调函数。 | **示例:** @@ -1708,9 +1708,9 @@ isNewCallAllowedcall.on('mmiCodeResult', (err, data) => { }); ``` -## call.off7+ +## call.off('callDetailsChange')7+ -off\(type: 'callDetailsChange', callback?: Callback**<**CallAttributeOptions>\): void +off\(type: 'callDetailsChange', callback?: Callback\): void 取消订阅callDetailsChange事件。使用callback异步回调。 @@ -1720,10 +1720,10 @@ off\(type: 'callDetailsChange', callback?: Callback**<**CallAttributeOptions>\): **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------------------------------- | ---- | ---------------- | -| type | 'callDetailsChange' | 是 | 调用的细节变化。 | -| callback | Callback**<**[CallAttributeOptions](#CallAttributeOptions)> | 否 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------------------------------------------- | ---- | ---------------------------------- | +| type | string | 是 | 通话结束时取消监听通话详情的变化。 | +| callback | Callback<[CallAttributeOptions](#callattributeoptions7)> | 否 | 回调函数。 | **示例:** @@ -1733,7 +1733,7 @@ call.off('callDetailsChange', (err, data) => { }); ``` -## call.off8+ +## call.off('callEventChange')8+ off\(type: 'callEventChange', callback?: Callback\): void @@ -1745,10 +1745,10 @@ off\(type: 'callEventChange', callback?: Callback\): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | --------------------------------------------------- | ---- | -------------- | -| type | 'callEventChange' | 是 | 调用事件改变。 | -| callback | Callback**<**[CallEventOptions](#CallEventOptions)> | 否 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------ | ---- | ---------------------------------- | +| type | string | 是 | 通话结束时取消监听通话事件的变化。 | +| callback | Callback<[CallEventOptions](#calleventoptions8)> | 否 | 回调函数。 | **示例:** @@ -1758,9 +1758,9 @@ call.off('callEventChange', (err, data) => { }); ``` -## call.off8+ +## call.off('callDisconnectedCause')8+ -off\(type: 'callDisconnectedCause', callback?: Callback**<**DisconnectedDetails>\): void +off\(type: 'callDisconnectedCause', callback?: Callback\): void 取消订阅callDisconnectedCause事件。使用callback异步回调。 @@ -1773,7 +1773,7 @@ off\(type: 'callDisconnectedCause', callback?: Callback**<**DisconnectedDetails> | 参数名 | 类型 | 必填 | 说明 | | -------- | ---------------------------------------------------------- | ---- | -------------------- | | type | 'callDisconnectedCause' | 是 | 调用断开连接的原因。 | -| callback | Callback**<**[DisconnectedDetails](#DisconnectedDetails8)> | 否 | 回调函数。 | +| callback | Callback**<**[DisconnectedDetails](#disconnecteddetails8)> | 否 | 回调函数。 | **示例:** @@ -1783,7 +1783,7 @@ call.off('callDisconnectedCause', (err, data) => { }); ``` -## call.off9+ +## call.off('mmiCodeResult')9+ off\(type: 'mmiCodeResult', callback?: Callback\): void @@ -1798,7 +1798,7 @@ off\(type: 'mmiCodeResult', callback?: Callback\): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------------ | ---- | ----------- | | type | 'mmiCodeResult' | 是 | MMI码结果。 | -| callback | Callback**<**[MmiCodeResults](#MmiCodeResults9)> | 否 | 回调函数。 | +| callback | Callback<[MmiCodeResults](#mmicoderesults9)> | 否 | 回调函数。 | **示例:** @@ -1812,7 +1812,7 @@ call.off('mmiCodeResult', (err, data) => { isNewCallAllowed\(callback: AsyncCallback\): void -是否允许新通话。使用callback异步回调。 +判断是否允许再拨打一通新电话。使用callback异步回调。 此接口为系统接口。 @@ -1837,7 +1837,7 @@ call.isNewCallAllowed((err, data) => { isNewCallAllowed\(\): Promise -是否允许新通话。使用Promise异步回调。 +判断是否允许再拨打一通新电话。使用Promise异步回调。 此接口为系统接口。 @@ -1864,7 +1864,7 @@ promise.then(data => { separateConference\(callId: number, callback: AsyncCallback\): void -分离会议。使用callback异步回调。 +断开会议电话。使用callback异步回调。 此接口为系统接口。 @@ -1890,7 +1890,7 @@ call.separateConference(1, (err, data) => { separateConference\(callId: number\): Promise -分离会议。使用Promise异步回调。 +断开会议电话。使用Promise异步回调。 此接口为系统接口。 @@ -1934,8 +1934,8 @@ getCallRestrictionStatus\(slotId: number, type: CallRestrictionType, callback: A | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------------------------ | ---- | -------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| type | [CallRestrictionType](#CallRestrictionType8) | 是 | 呼叫限制类型。 | -| callback | AsyncCallback<[RestrictionStatus](#RestrictionStatus8)> | 是 | 回调函数。返回限制状态。 | +| type | [CallRestrictionType](#callrestrictiontype8) | 是 | 呼叫限制类型。 | +| callback | AsyncCallback<[RestrictionStatus](#restrictionstatus8)> | 是 | 回调函数。返回限制状态。 | **示例:** @@ -1961,13 +1961,13 @@ getCallRestrictionStatus\(slotId: number, type: CallRestrictionType\): Promise- 0:卡槽1
- 1:卡槽2 | -| type | [CallRestrictionType](#CallRestrictionType8) | 是 | 呼叫限制类型。 | +| type | [CallRestrictionType](#callrestrictiontype8) | 是 | 呼叫限制类型。 | **返回值:** | 类型 | 说明 | | ------------------------------------------------------- | --------------------------- | -| Promise<[RestrictionStatus](#RestrictionStatus8)> | 以Promise形式异步返回结果。 | +| Promise<[RestrictionStatus](#restrictionstatus8)> | 以Promise形式异步返回结果。 | **示例:** @@ -1995,7 +1995,7 @@ setCallRestriction\(slotId: number, info: CallRestrictionInfo, callback: AsyncCa | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------- | ---- | -------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| info | [CallRestrictionInfo](#CallRestrictionInfo) | 是 | 呼叫限制信息。 | +| info | [CallRestrictionInfo](#callrestrictioninfo8) | 是 | 呼叫限制信息。 | | callback | AsyncCallback<void> | 是 | 回调函数。 | **示例:** @@ -2024,10 +2024,10 @@ setCallRestriction\(slotId: number, info: CallRestrictionInfo\): Promise **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------------------------------------------- | ---- | -------------------------------------- | -| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| info | [CallRestrictionInfo](#CallRestrictionInfo) | 是 | 呼叫限制信息。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | -------------------------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| info | [CallRestrictionInfo](#callrestrictioninfo8) | 是 | 呼叫限制信息。 | **返回值:** @@ -2066,8 +2066,8 @@ getCallTransferInfo\(slotId: number, type: CallTransferType, callback: AsyncCall | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------------------------ | ---- | -------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| type | [CallTransferType](#CallTransferType8) | 是 | 呼叫转移类型。 | -| callback | AsyncCallback<[CallTransferResult](#CallTransferResult)> | 是 | 回调函数。返回呼叫转移信息。 | +| type | [CallTransferType](#calltransfertype8) | 是 | 呼叫转移类型。 | +| callback | AsyncCallback<[CallTransferResult](#calltransferresult8)> | 是 | 回调函数。返回呼叫转移信息。 | **示例:** @@ -2096,13 +2096,13 @@ getCallTransferInfo\(slotId: number, type: CallTransferType): Promise- 0:卡槽1
- 1:卡槽2 | -| type | [CallTransferType](#CallTransferType8) | 是 | 呼叫转移类型。 | +| type | [CallTransferType](#calltransfertype8) | 是 | 呼叫转移类型。 | **返回值:** -| 类型 | 说明 | -| -------------------------------------------------------- | --------------------------- | -| Promise<[CallTransferResult](#CallTransferResult)> | 以Promise形式异步返回结果。 | +| 类型 | 说明 | +| --------------------------------------------------------- | --------------------------- | +| Promise<[CallTransferResult](#calltransferresult8)> | 以Promise形式异步返回结果。 | **示例:** @@ -2133,7 +2133,7 @@ setCallTransfer\(slotId: number, info: CallTransferInfo, callback: AsyncCallback | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------- | ---- | -------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| info | [CallTransferInfo](#CallTransferInfo) | 是 | 呼叫转移信息。 | +| info | [CallTransferInfo](#calltransferinfo8) | 是 | 呼叫转移信息。 | | callback | AsyncCallback<void> | 是 | 回调函数。 | **示例:** @@ -2165,7 +2165,7 @@ setCallTransfer\(slotId: number, info: CallTransferInfo): Promise | 参数名 | 类型 | 必填 | 说明 | | ------ | ------------------------------------- | ---- | -------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| info | [CallTransferInfo](#CallTransferInfo) | 是 | 呼叫转移信息。 | +| info | [CallTransferInfo](#calltransferinfo8) | 是 | 呼叫转移信息。 | **返回值:** @@ -2249,7 +2249,7 @@ promise.then(data => { setMuted\(callback: AsyncCallback\): void -设置静音。使用callback异步回调。 +设置通话中的静音。使用callback异步回调。 此接口为系统接口。 @@ -2274,7 +2274,7 @@ call.setMuted((err, data) => { setMuted\(\): Promise -设置静音。使用Promise异步回调。 +设置通话中的静音。使用Promise异步回调。 此接口为系统接口。 @@ -2301,7 +2301,7 @@ promise.then(data => { cancelMuted(callback: AsyncCallback): void -取消静音。使用callback异步回调。 +取消通话中的静音。使用callback异步回调。 此接口为系统接口。 @@ -2326,7 +2326,7 @@ call.cancelMuted((err, data) => { cancelMuted(): Promise -设置静音。使用Promise异步回调。 +取消通话中的静音。使用Promise异步回调。 此接口为系统接口。 @@ -2353,7 +2353,7 @@ promise.then(data => { setAudioDevice\(device: AudioDevice, callback: AsyncCallback\): void -设置音频设备。使用callback异步回调。 +设置通话音频设备。使用callback异步回调。 此接口为系统接口。 @@ -2363,7 +2363,7 @@ setAudioDevice\(device: AudioDevice, callback: AsyncCallback\): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ---------------------------- | ---- | ---------- | -| device | [AudioDevice](#AudioDevice8) | 是 | 音频设备。 | +| device | [AudioDevice](#audiodevice8) | 是 | 音频设备。 | | callback | AsyncCallback<void> | 是 | 回调函数。 | **示例:** @@ -2379,7 +2379,7 @@ call.setAudioDevice(1, (err, data) => { setAudioDevice\(device: AudioDevice, options: AudioDeviceOptions, callback: AsyncCallback\): void -设置音频设备。使用callback异步回调。 +设置通话音频设备。使用callback异步回调。 此接口为系统接口。 @@ -2389,8 +2389,8 @@ setAudioDevice\(device: AudioDevice, options: AudioDeviceOptions, callback: Asyn | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------ | ---- | -------------- | -| device | [AudioDevice](#AudioDevice8) | 是 | 音频设备。 | -| options | [AudioDeviceOptions](#AudioDeviceOptions9) | 是 | 音频设备参数。 | +| device | [AudioDevice](#audiodevice8) | 是 | 音频设备。 | +| options | [AudioDeviceOptions](#audiodeviceoptions9) | 是 | 音频设备参数。 | | callback | AsyncCallback<void> | 是 | 回调函数。 | **示例:** @@ -2407,9 +2407,9 @@ call.setAudioDevice(1, bluetoothAddress, (err, value) => { ## call.setAudioDevice8+ -setAudioDevice(device: AudioDevice, options?: AudioDeviceOptions**): **Promise +setAudioDevice(device: AudioDevice, options?: AudioDeviceOptions): Promise -设置音频设备。使用Promise异步回调。 +设置通话音频设备。使用Promise异步回调。 此接口为系统接口。 @@ -2419,14 +2419,14 @@ setAudioDevice(device: AudioDevice, options?: AudioDeviceOptions**): **Promise { console.log(`setAudioDevice success, promise: data->${JSON.stringify(data)}`); }).catch(err => { @@ -2517,7 +2517,7 @@ updateImsCallMode(callId: number, mode: ImsCallMode, callback: AsyncCallback | 参数名 | 类型 | 必填 | 说明 | | ------ | ---------------------------- | ---- | -------------- | | callId | number | 是 | 呼叫Id。 | -| mode | [ImsCallMode](#ImsCallMode8) | 是 | Ims呼叫模式。 | +| mode | [ImsCallMode](#imscallmode8) | 是 | Ims呼叫模式。 | **返回值:** @@ -2745,10 +2745,10 @@ promise.then(data => { | 参数名 | 类型 | 必填 | 说明 | | ---------- | ---------------------------------- | ---- | ------------------------------------------------------------ | | extras | boolean | 否 | 根据extras的值判断是否为视频通话,默认为语音通话。
- true:视频通话。
- false:语音通话。 | -| accountId | number | 否 | 帐户Id | -| videoState | [VideoStateType](#VideoStateType7) | 否 | 视频状态类型 | -| dialScene | [DialScene](#DialScene8) | 否 | 拨号场景 | -| dialType | [DialType](#DialType8) | 否 | 拨号类型 | +| accountId | number | 否 | 帐户Id。从API version 8开始支持。此接口为系统接口。 | +| videoState | [VideoStateType](#videostatetype7) | 否 | 视频状态类型。从API version 8开始支持。此接口为系统接口。 | +| dialScene | [DialScene](#dialscene8) | 否 | 拨号场景。从API version 8开始支持。此接口为系统接口。 | +| dialType | [DialType](#dialtype8) | 否 | 拨号类型。从API version 8开始支持。此接口为系统接口。 | ## CallState @@ -2785,19 +2785,19 @@ promise.then(data => { ## ImsCallMode8+ -ims调用模式。 +IP多媒体系统调用模式。 此接口为系统接口。 **系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 -| 名称 | 值 | 说明 | -| ---------------------- | ---- | ---------------- | -| CALL_MODE_AUDIO_ONLY | 0 | 仅限音频呼叫模式 | -| CALL_MODE_SEND_ONLY | 1 | 仅发送呼叫模式 | -| CALL_MODE_RECEIVE_ONLY | 2 | 仅接收呼叫模式 | -| CALL_MODE_SEND_RECEIVE | 3 | 发送接收呼叫模式 | -| CALL_MODE_VIDEO_PAUSED | 4 | 视频暂停呼叫模式 | +| 名称 | 值 | 说明 | +| ---------------------- | ---- | ------------------ | +| CALL_MODE_AUDIO_ONLY | 0 | 仅限音频呼叫 | +| CALL_MODE_SEND_ONLY | 1 | 仅发送呼叫 | +| CALL_MODE_RECEIVE_ONLY | 2 | 仅接收呼叫 | +| CALL_MODE_SEND_RECEIVE | 3 | 允许发送和接收呼叫 | +| CALL_MODE_VIDEO_PAUSED | 4 | 暂停视频呼叫 | ## AudioDevice8+ @@ -2813,7 +2813,6 @@ ims调用模式。 | DEVICE_SPEAKER | 1 | 扬声器设备 | | DEVICE_WIRED_HEADSET | 2 | 有线耳机设备 | | DEVICE_BLUETOOTH_SCO | 3 | 蓝牙SCO设备 | -| DEVICE_MIC | 4 | 麦克风设备 | ## CallRestrictionType8+ @@ -2823,16 +2822,16 @@ ims调用模式。 **系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 -| 名称 | 值 | 说明 | -| --------------------------------------------- | ---- | ---------------------- | -| RESTRICTION_TYPE_ALL_INCOMING | 0 | 限制所有传入类型 | -| RESTRICTION_TYPE_ALL_OUTGOING | 1 | 限制所有传出类型 | -| RESTRICTION_TYPE_INTERNATIONAL | 2 | 限制国际类型 | -| RESTRICTION_TYPE_INTERNATIONAL_EXCLUDING_HOME | 3 | 限制国际不包括住宅类型 | -| RESTRICTION_TYPE_ROAMING_INCOMING | 4 | 限制漫游传入类型 | -| RESTRICTION_TYPE_ALL_CALLS | 5 | 限制所有调用类型 | -| RESTRICTION_TYPE_OUTGOING_SERVICES | 6 | 限制传出服务类型 | -| RESTRICTION_TYPE_INCOMING_SERVICES | 7 | 限制传入服务类型 | +| 名称 | 值 | 说明 | +| --------------------------------------------- | ---- | -------------------------- | +| RESTRICTION_TYPE_ALL_INCOMING | 0 | 限制所有呼入 | +| RESTRICTION_TYPE_ALL_OUTGOING | 1 | 限制所有呼出 | +| RESTRICTION_TYPE_INTERNATIONAL | 2 | 限制国际通话 | +| RESTRICTION_TYPE_INTERNATIONAL_EXCLUDING_HOME | 3 | 限制除归属国以外的国际通话 | +| RESTRICTION_TYPE_ROAMING_INCOMING | 4 | 限制漫游呼入 | +| RESTRICTION_TYPE_ALL_CALLS | 5 | 限制所有通话 | +| RESTRICTION_TYPE_OUTGOING_SERVICES | 6 | 限制传出业务 | +| RESTRICTION_TYPE_INCOMING_SERVICES | 7 | 限制呼入业务 | ## CallTransferInfo8+ @@ -2845,8 +2844,8 @@ ims调用模式。 | 参数名 | 类型 | 必填 | 说明 | | ----------- | ---------------------------------------------------- | ---- | ---------------- | | transferNum | string | 是 | 转移编号 | -| type | [CallTransferType](#CallTransferType8) | 是 | 呼叫转移类型 | -| settingType | [CallTransferSettingType](#CallTransferSettingType8) | 是 | 设置呼叫转移类型 | +| type | [CallTransferType](#calltransfertype8) | 是 | 呼叫转移类型 | +| settingType | [CallTransferSettingType](#calltransfersettingtype8) | 是 | 设置呼叫转移类型 | ## CallTransferType8+ @@ -2856,12 +2855,12 @@ ims调用模式。 **系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。 -| 名称 | 值 | 说明 | -| --------------------------- | ---- | ---------------- | -| TRANSFER_TYPE_UNCONDITIONAL | 0 | 无条件转移类型 | -| TRANSFER_TYPE_BUSY | 1 | 忙线转移类型 | -| TRANSFER_TYPE_NO_REPLY | 2 | 无回复转移类型 | -| TRANSFER_TYPE_NOT_REACHABLE | 3 | 无法访问转移类型 | +| 名称 | 值 | 说明 | +| --------------------------- | ---- | ------------ | +| TRANSFER_TYPE_UNCONDITIONAL | 0 | 无条件转移 | +| TRANSFER_TYPE_BUSY | 1 | 忙线转移 | +| TRANSFER_TYPE_NO_REPLY | 2 | 无回复转移 | +| TRANSFER_TYPE_NOT_REACHABLE | 3 | 无法访问转移 | ## CallTransferSettingType8+ @@ -2891,13 +2890,13 @@ ims调用模式。 | accountNumber | string | 是 | 帐号号码 | | speakerphoneOn | boolean | 是 | 扬声器接通电话 | | accountId | number | 是 | 帐户Id | -| videoState | [VideoStateType](#VideoStateType7) | 是 | 视频状态类型 | +| videoState | [VideoStateType](#videostatetype7) | 是 | 视频状态类型 | | startTime | number | 是 | 开始时间 | | isEcc | boolean | 是 | 是否是Ecc | -| callType | [CallType](#CallType7) | 是 | 通话类型 | +| callType | [CallType](#calltype7) | 是 | 通话类型 | | callId | number | 是 | 呼叫Id | -| callState | [DetailedCallState](#DetailedCallState7) | 是 | 详细呼叫状态 | -| conferenceState | [ConferenceState](#ConferenceState7) | 是 | 会议状态 | +| callState | [DetailedCallState](#detailedcallstate7) | 是 | 详细呼叫状态 | +| conferenceState | [ConferenceState](#conferencestate7) | 是 | 会议状态 | ## ConferenceState7+ @@ -2972,9 +2971,9 @@ ims调用模式。 | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------------------------------- | ---- | ------------ | -| type | [CallRestrictionType](#CallRestrictionType8) | 是 | 呼叫限制类型 | +| type | [CallRestrictionType](#callrestrictiontype8) | 是 | 呼叫限制类型 | | password | string | 是 | 密码 | -| mode | [CallRestrictionMode](#CallRestrictionMode8) | 是 | 呼叫限制模式 | +| mode | [CallRestrictionMode](#callrestrictionmode8) | 是 | 呼叫限制模式 | ## CallRestrictionMode8+ @@ -2999,7 +2998,7 @@ ims调用模式。 | 参数名 | 类型 | 必填 | 说明 | | ------- | ------------------------------------------ | ---- | -------------- | -| eventId | [CallAbilityEventId](#CallAbilityEventId8) | 是 | 呼叫能力事件Id | +| eventId | [CallAbilityEventId](#callabilityeventid8) | 是 | 呼叫能力事件Id | ## CallAbilityEventId8+ @@ -3064,7 +3063,7 @@ ims调用模式。 | 参数名 | 类型 | 必填 | 说明 | | ------ | ---------------------------------- | ---- | -------- | -| status | [TransferStatus](#TransferStatus8) | 是 | 转移状态 | +| status | [TransferStatus](#transferstatus8) | 是 | 转移状态 | | number | string | 是 | 号码 | ## CallWaitingStatus7+ @@ -3147,7 +3146,7 @@ MMI码结果。 | 名称 | 类型 | 必填 | 说明 | | ------- | -------------------------------- | ---- | --------------- | -| result | [MmiCodeResult](#MmiCodeResult9) | 是 | MMI码结果 | +| result | [MmiCodeResult](#mmicoderesult9) | 是 | MMI码结果 | | message | string | 是 | MMI码消息 | ## MmiCodeResult9+ @@ -3163,7 +3162,7 @@ MMI码结果。 | MMI_CODE_SUCCESS | 0 | 表示MMI码成功 | | MMI_CODE_FAILED | 1 | 表示MMI码失败 | -## AudioDeviceOptions +## AudioDeviceOptions9+ 音频设备选项。 diff --git a/zh-cn/application-dev/reference/apis/js-apis-radio.md b/zh-cn/application-dev/reference/apis/js-apis-radio.md index c8675e6574..b8665dec70 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-radio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-radio.md @@ -966,7 +966,7 @@ getCellInformation(callback: AsyncCallback>): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------------------------ | ---- | ------------------------ | -| callback | AsyncCallback\\> | 是 | 回调函数,返回小区信息。 | +| callback | AsyncCallback\\> | 是 | 回调函数,返回小区信息。 | **示例:** @@ -994,7 +994,7 @@ getCellInformation(slotId: number, callback: AsyncCallback- 0:卡槽1
- 1:卡槽2 | -| callback | AsyncCallback\\> | 是 | 回调函数,返回小区信息。 | +| callback | AsyncCallback\\> | 是 | 回调函数,返回小区信息。 | **示例:** @@ -1026,9 +1026,9 @@ getCellInformation(slotId?: number): Promise\> **返回值:** -| 类型 | 说明 | -| ------------------------------------------------------ | ----------------------- | -| Promise\\> | 以Promise形式返回结果。 | +| 类型 | 说明 | +| ------------------------------------------------------- | ----------------------- | +| Promise\\> | 以Promise形式返回结果。 | **示例:** @@ -1058,7 +1058,7 @@ setNetworkSelectionMode\(options: NetworkSelectionModeOptions, callback: AsyncCa | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------------------- | ---- | ------------------ | -| options | [NetworkSelectionModeOptions](#networkSelectionModeOptions) | 是 | 网络选择模式选项。 | +| options | [NetworkSelectionModeOptions](#networkselectionmodeoptions) | 是 | 网络选择模式选项。 | | callback | AsyncCallback\ | 是 | 回调函数。 | **示例:** @@ -1097,7 +1097,7 @@ setNetworkSelectionMode\(options: NetworkSelectionModeOptions\): Promise | 参数名 | 类型 | 必填 | 说明 | | ------- | ----------------------------------------------------------- | ---- | ------------------ | -| options | [NetworkSelectionModeOptions](#networkSelectionModeOptions) | 是 | 网络选择模式选项。 | +| options | [NetworkSelectionModeOptions](#networkselectionmodeoptions) | 是 | 网络选择模式选项。 | **返回值:** @@ -1145,7 +1145,7 @@ getNetworkSearchInformation\(slotId: number, callback: AsyncCallback- 0:卡槽1
- 1:卡槽2 | -| callback | AsyncCallback\<[NetworkSearchResult](#networkSearchResult)\> | 是 | 回调函数。返回网络搜索信息。 | +| callback | AsyncCallback\<[NetworkSearchResult](#networksearchresult)\> | 是 | 回调函数。返回网络搜索信息。 | **示例:** @@ -1177,7 +1177,7 @@ getNetworkSearchInformation\(slotId: number\): Promise | 类型 | 说明 | | ------------------------------------------------------ | ----------------------- | -| Promise\<[NetworkSearchResult](#networkSearchResult)\> | 以Promise形式返回结果。 | +| Promise\<[NetworkSearchResult](#networksearchresult)\> | 以Promise形式返回结果。 | **示例:** @@ -1202,9 +1202,9 @@ getNrOptionMode(callback: AsyncCallback): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------------- | ---- | ---------- | -| callback | AsyncCallback\<[NrOptionMode](#nrOptionMode)\> | 是 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------------------- | ---- | ---------- | +| callback | AsyncCallback\<[NrOptionMode](#nroptionmode8)\> | 是 | 回调函数。 | **示例:** @@ -1227,10 +1227,10 @@ getNrOptionMode(slotId: number, callback: AsyncCallback): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------------- | ---- | -------------------------------------- | -| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| callback | AsyncCallback\<[NrOptionMode](#nrOptionMode)\> | 是 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback\<[NrOptionMode](#nroptionmode8)\> | 是 | 回调函数。 | **示例:** @@ -1260,9 +1260,9 @@ getNrOptionMode(slotId?: number): Promise **返回值:** -| 类型 | 说明 | -| ---------------------------------------- | ----------------------- | -| Promise\<[NrOptionMode](#nrOptionMode)\> | 以Promise形式返回结果。 | +| 类型 | 说明 | +| ----------------------------------------- | ----------------------- | +| Promise\<[NrOptionMode](#nroptionmode8)\> | 以Promise形式返回结果。 | **示例:** @@ -1352,9 +1352,9 @@ turnOnRadio(slotId?: number): Promise **返回值:** -| 类型 | 说明 | -| --------------- | ------------------------- | -| Promise\ | 无返回结果的Promise对象。 | +| 类型 | 说明 | +| --------------- | ----------------------- | +| Promise\ | 以Promise形式返回结果。 | **示例:** @@ -1444,9 +1444,9 @@ turnOffRadio(slotId?: number): Promise **返回值:** -| 类型 | 说明 | -| --------------- | ------------------------- | -| Promise\ | 无返回结果的Promise对象。 | +| 类型 | 说明 | +| --------------- | ----------------------- | +| Promise\ | 以Promise形式返回结果。 | **示例:** @@ -1474,16 +1474,16 @@ setPreferredNetwork\(slotId: number, networkMode: PreferredNetworkMode, callback **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ----------- | --------------------------------------------- | ---- | -------------------------------------- | -| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| networkMode | [PreferredNetworkMode](#preferredNetworkMode) | 是 | 设置首选网络模式 | -| callback | AsyncCallback\ | 是 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| ----------- | ---------------------------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| networkMode | [PreferredNetworkMode](#preferrednetworkmode8) | 是 | 设置首选网络模式 | +| callback | AsyncCallback\ | 是 | 回调函数。 | **示例:** ```js -radio.setPreferredNetwork(0, , (err, data) => { +radio.setPreferredNetwork(0, 1, (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` @@ -1502,21 +1502,21 @@ setPreferredNetwork(slotId: number, networkMode: PreferredNetworkMode): Promise< **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ----------- | --------------------------------------------- | ---- | -------------------------------------- | -| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| networkMode | [PreferredNetworkMode](#preferredNetworkMode) | 是 | 设置首选网络模式 | +| 参数名 | 类型 | 必填 | 说明 | +| ----------- | ---------------------------------------------- | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| networkMode | [PreferredNetworkMode](#preferrednetworkmode8) | 是 | 设置首选网络模式 | **返回值:** -| 类型 | 说明 | -| --------------- | ------------------------- | -| Promise\ | 无返回结果的Promise对象。 | +| 类型 | 说明 | +| --------------- | ----------------------- | +| Promise\ | 以Promise形式返回结果。 | **示例:** ```js -let promise = radio.setPreferredNetwork(0, ); +let promise = radio.setPreferredNetwork(0, 1); promise.then(data => { console.log(`setPreferredNetwork success, promise: data->${JSON.stringify(data)}`); }).catch(err => { @@ -1538,10 +1538,10 @@ getPreferredNetwork\(slotId: number, callback: AsyncCallback- 0:卡槽1
- 1:卡槽2 | -| callback | AsyncCallback\ | 是 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------------------ | ---- | -------------------------------------- | +| slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | +| callback | AsyncCallback\<[PreferredNetworkMode](#preferrednetworkmode8)\> | 是 | 回调函数。 | **示例:** @@ -1706,8 +1706,8 @@ promise.then(data => { **系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。 -| 名称 | 值 | 说明 | -| --------------------------------------------------------- | ---- | ---------------------------------------------- | +| 名称 | 值 | 说明 | +| --------------------------------------------------------- | ---- | --------------------------------------------- | | PREFERRED_NETWORK_MODE_GSM | 1 | 首选GSM网络模式。 | | PREFERRED_NETWORK_MODE_WCDMA | 2 | 首选WCDMA网络模式。 | | PREFERRED_NETWORK_MODE_LTE | 3 | 首选LTE网络模式。 | @@ -1717,7 +1717,7 @@ promise.then(data => { | PREFERRED_NETWORK_MODE_CDMA | 7 | 首选CDMA网络模式。 | | PREFERRED_NETWORK_MODE_EVDO | 8 | 首选EVDO网络模式。 | | PREFERRED_NETWORK_MODE_EVDO_CDMA | 9 | 首选EVDO CDMA网络模式。 | -| PREFERRED_NETWORK_MODE_WCDMA_GSM_EVDO_CDMA | 10 | 首选WCDMA GSM EVDO CDMA网络模式。 | +| PREFERRED_NETWORK_MODE_WCDMA_GSM_EVDO_CDMA | 10 | 首选WCDMA GSM EVDO CDMA网络模式。 | | PREFERRED_NETWORK_MODE_LTE_EVDO_CDMA | 11 | 首选LTE EVDO CDMA网络模式。 | | PREFERRED_NETWORK_MODE_LTE_WCDMA_GSM_EVDO_CDMA | 12 | 首选LTE WCDMA GSM EVDO CDMA网络模式。 | | PREFERRED_NETWORK_MODE_TDSCDMA | 13 | 首选TDSCDMA网络模式。 | @@ -1741,7 +1741,7 @@ promise.then(data => { | PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA | 39 | 首选NR LTE TDSCDMA WCDMA网络模式。 | | PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA_GSM | 40 | 首选NR LTE TDSCDMA WCDMA GSM网络模式。 | | PREFERRED_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA_GSM_EVDO_CDMA | 41 | 首选NR LTE TDSCDMA WCDMA GSM网络模式。 | -| PREFERRED_NETWORK_MODE_MAX_VALUE | 99 | 首选网络模式最大值 | +| PREFERRED_NETWORK_MODE_MAX_VALUE | 99 | 首选网络模式最大值。 | ## CellInformation8+ @@ -1756,8 +1756,8 @@ promise.then(data => { | networkType | [NetworkType](#networkType) | 获取服务单元的网络类型。 | | isCamped | boolean | 获取服务单元的状态。 | | timeStamp | number | 获取单元格信息时获取时间戳。 | -| signalInformation | [SignalInformation](#signalInformation) | 信号信息。 | -| data | [CdmaCellInformation](#cdmaCellInformation) \| [GsmCellInformation](#gsmCellInformation) \| [LteCellInformation](#lteCellInformation) \| [NrCellInformation](#nrCellInformation) \| [TdscdmaCellInformation](#tdscdmaCellInformation) | Cdma小区信息 \|Gsm小区信息\|Lte小区信息\|Nr小区信息\|Tdscdma小区信息 | +| signalInformation | [SignalInformation](#signalinformation) | 信号信息。 | +| data | [CdmaCellInformation](#cdmacellinformation) \| [GsmCellInformation](#gsmcellinformation) \| [LteCellInformation](#ltecellinformation) \| [NrCellInformation](#nrcellinformation) \| [TdscdmaCellInformation](#tdscdmacellinformation) | Cdma小区信息 \|Gsm小区信息\|Lte小区信息\|Nr小区信息\|Tdscdma小区信息 | ## CdmaCellInformation8+ @@ -1929,7 +1929,7 @@ Nr的选择模式。 | 名称 | 类型 | 说明 | | ------------------ | --------------------------------------------- | -------------------------------------- | | slotId | number | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| selectMode | [NetworkSelectionMode](#networkSelectionMode) | 网络选择模式。 | -| networkInformation | [NetworkInformation](#networkInformation) | 网络信息。 | +| selectMode | [NetworkSelectionMode](#networkselectionmode) | 网络选择模式。 | +| networkInformation | [NetworkInformation](#networkinformation) | 网络信息。 | | resumeSelection | boolean | 继续选择。 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-sim.md b/zh-cn/application-dev/reference/apis/js-apis-sim.md index 1c05e4ef37..49a02e0b4d 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-sim.md +++ b/zh-cn/application-dev/reference/apis/js-apis-sim.md @@ -522,7 +522,7 @@ getSimAccountInfo(slotId: number, callback: AsyncCallback): voi | 参数名 | 类型 | 必填 | 说明 | | -------- | --------------------------------------------------- | ---- | -------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| callback | AsyncCallback\<[IccAccountInfo](#IccAccountInfo7)\> | 是 | 回调函数。 | +| callback | AsyncCallback\<[IccAccountInfo](#iccaccountinfo7)\> | 是 | 回调函数。 | **示例:** @@ -555,7 +555,7 @@ getSimAccountInfo(slotId: number): Promise | 类型 | 说明 | | -------------------------------------------- | ------------------------------------------ | -| Promise<[IccAccountInfo](#IccAccountInfo7)\> | 以Promise形式返回指定卡槽SIM卡的账户信息。 | +| Promise<[IccAccountInfo](#iccaccountinfo7)\> | 以Promise形式返回指定卡槽SIM卡的账户信息。 | **示例:** @@ -584,7 +584,7 @@ getActiveSimAccountInfoList(callback: AsyncCallback>): vo | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------------------- | ---- | ---------- | -| callback | AsyncCallback\\> | 是 | 回调函数。 | +| callback | AsyncCallback\\> | 是 | 回调函数。 | **示例:** @@ -611,7 +611,7 @@ getActiveSimAccountInfoList(): Promise>; | 类型 | 说明 | | ---------------------------------------------------- | ---------------------------------------------- | -| Promise\> | 以Promise形式返回活跃卡槽SIM卡的账户信息列表。 | +| Promise\> | 以Promise形式返回活跃卡槽SIM卡的账户信息列表。 | **示例:** @@ -1089,8 +1089,8 @@ setLockState(slotId: number, options: LockInfo, callback: AsyncCallback- 0:卡槽1
- 1:卡槽2 | -| callback | AsyncCallback\<[LockStatusResponse](#LockStatusResponse7)\> | 是 | 回调函数。 | -| options | [LockInfo](#LockInfo8) | 是 | 锁信息。
lockType: [LockType](#LockType8)
password: string
state: [LockState](#LockState8) | +| callback | AsyncCallback\<[LockStatusResponse](#lockstatusresponse7)\> | 是 | 回调函数。 | +| options | [LockInfo](#lockinfo8) | 是 | 锁信息。
lockType: [LockType](#locktype8)
password: string
state: [LockState](#lockstate8) | **示例:** @@ -1123,13 +1123,13 @@ setLockState(slotId: number, options: LockInfo): Promise | 参数名 | 类型 | 必填 | 说明 | | ------- | ---------------------- | ---- | ------------------------------------------------------------ | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| options | [LockInfo](#LockInfo8) | 是 | 锁信息。
lockType: [LockType](#LockType8)
password: string
state: [LockState](#LockState8) | +| options | [LockInfo](#lockinfo8) | 是 | 锁信息。
lockType: [LockType](#locktype8)
password: string
state: [LockState](#lockstate8) | **返回值:** | 类型 | 说明 | | ---------------------------------------------------- | -------------------------------------------- | -| Promise<[LockStatusResponse](#LockStatusResponse7)\> | 以Promise形式返回获取指定卡槽SIM卡的锁状态。 | +| Promise<[LockStatusResponse](#lockstatusresponse7)\> | 以Promise形式返回获取指定卡槽SIM卡的锁状态。 | **示例:** @@ -1162,8 +1162,8 @@ getLockState(slotId: number, lockType: LockType, callback: AsyncCallback- 0:卡槽1
- 1:卡槽2 | -| callback | AsyncCallback\<[LockState](#LockState8)\> | 是 | 回调函数。 | -| options | [LockType](#LockType8) | 是 | 锁类型。
- 1: PIN锁
- 2: PIN2锁 | +| callback | AsyncCallback\<[LockState](#lockstate8)\> | 是 | 回调函数。 | +| options | [LockType](#locktype8) | 是 | 锁类型。
- 1: PIN锁
- 2: PIN2锁 | **示例:** @@ -1189,13 +1189,13 @@ getLockState(slotId: number, lockType: LockType): Promise | 参数名 | 类型 | 必填 | 说明 | | ------- | ---------------------- | ---- | --------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| options | [LockType](#LockType8) | 是 | 锁类型。
- 1: PIN锁
- 2: PIN2锁 | +| options | [LockType](#locktype8) | 是 | 锁类型。
- 1: PIN锁
- 2: PIN2锁 | **返回值:** | 类型 | 说明 | | ---------------------------------- | -------------------------------------------- | -| Promise<[LockState](#LockState8)\> | 以Promise形式返回获取指定卡槽SIM卡的锁状态。 | +| Promise<[LockState](#lockstate8)\> | 以Promise形式返回获取指定卡槽SIM卡的锁状态。 | **示例:** @@ -1225,7 +1225,7 @@ alterPin(slotId: number, newPin: string, oldPin: string, callback: AsyncCallback | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------------------- | ---- | -------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| callback | AsyncCallback\<[LockStatusResponse](#LockStatusResponse7)\> | 是 | 回调函数。 | +| callback | AsyncCallback\<[LockStatusResponse](#lockstatusresponse7)\> | 是 | 回调函数。 | | newPin | string | 是 | 新密码。 | | oldPin | string | 是 | 旧密码。 | @@ -1262,7 +1262,7 @@ alterPin(slotId: number, newPin: string, oldPin: string): Promise | 以Promise形式返回指定卡槽SIM卡的Pin是否成功。 | +| Promise<[LockStatusResponse](#lockstatusresponse7)\> | 以Promise形式返回指定卡槽SIM卡的Pin是否成功。 | **示例:** @@ -1292,7 +1292,7 @@ alterPin2(slotId: number, newPin2: string, oldPin2: string, callback: AsyncCallb | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------------------- | ---- | -------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| callback | AsyncCallback\<[LockStatusResponse](#LockStatusResponse7)\> | 是 | 回调函数。 | +| callback | AsyncCallback\<[LockStatusResponse](#lockstatusresponse7)\> | 是 | 回调函数。 | | newPin2 | string | 是 | 新密码。 | | oldPin2 | string | 是 | 旧密码。 | @@ -1329,7 +1329,7 @@ alterPin2(slotId: number, newPin2: string, oldPin2: string): Promise | 以Promise形式返回指定卡槽SIM卡的Pin是否成功。 | +| Promise<[LockStatusResponse](#lockstatusresponse7)\> | 以Promise形式返回指定卡槽SIM卡的Pin是否成功。 | **示例:** @@ -1360,7 +1360,7 @@ unlockPin(slotId: number,pin: string ,callback: AsyncCallback- 0:卡槽1
- 1:卡槽2 | | pin | string | 是 | SIM卡的密码 | -| callback | AsyncCallback<[LockStatusResponse](#LockStatusResponse7)> | 是 | 回调函数。 | +| callback | AsyncCallback<[LockStatusResponse](#lockstatusresponse7)> | 是 | 回调函数。 | **示例:** @@ -1395,7 +1395,7 @@ unlockPin(slotId: number,pin: string): Promise<LockStatusResponse\> | 类型 | 说明 | | ---------------------------------------------------- | -------------------------------------------------- | -| Promise\<[LockStatusResponse](#LockStatusResponse)\> | 以Promise形式返回获取指定卡槽的SIM卡锁状态的响应。 | +| Promise\<[LockStatusResponse](#lockstatusresponse7)\> | 以Promise形式返回获取指定卡槽的SIM卡锁状态的响应。 | **示例:** @@ -1428,7 +1428,7 @@ unlockPuk(slotId: number,newPin: string,puk: string ,callback: AsyncCallback- 0:卡槽1
- 1:卡槽2 | | newPin | string | 是 | 重置SIM卡的密码 | | puk | string | 是 | SIM卡密码的解锁密码 | -| callback | AsyncCallback<[LockStatusResponse](#LockStatusResponse7)> | 是 | 回调函数。 | +| callback | AsyncCallback<[LockStatusResponse](#lockstatusresponse7)> | 是 | 回调函数。 | **示例:** @@ -1465,7 +1465,7 @@ unlockPuk(slotId: number,newPin: string,puk: string): Promise<LockStatusRespo | 类型 | 说明 | | ---------------------------------------------------- | -------------------------------------------------- | -| Promise\<[LockStatusResponse](#LockStatusResponse)\> | 以Promise形式返回获取指定卡槽的SIM卡锁状态的响应。 | +| Promise\<[LockStatusResponse](#lockstatusresponse7)\> | 以Promise形式返回获取指定卡槽的SIM卡锁状态的响应。 | **示例:** @@ -1498,7 +1498,7 @@ promise.then(data => { | -------- | ------------------------------------------------------------ | ---- | -------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | | pin2 | string | 是 | SIM卡的密码 | -| callback | AsyncCallback<[LockStatusResponse](#LockStatusResponse7)> | 是 | 回调函数。 | +| callback | AsyncCallback<[LockStatusResponse](#lockstatusresponse7)> | 是 | 回调函数。 | **示例:** @@ -1533,7 +1533,7 @@ unlockPin2(slotId: number,pin2: string): Promise<LockStatusResponse\> | 类型 | 说明 | | ----------------------------------------------------- | -------------------------------------------------- | -| Promise\<[LockStatusResponse](#LockStatusResponse7)\> | 以Promise形式返回获取指定卡槽的SIM卡锁状态的响应。 | +| Promise\<[LockStatusResponse](#lockstatusresponse7)\> | 以Promise形式返回获取指定卡槽的SIM卡锁状态的响应。 | **示例:** @@ -1566,7 +1566,7 @@ unlockPuk2(slotId: number,newPin2: string,puk2: string ,callback: AsyncCallback< | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | | newPin2 | string | 是 | 重置SIM卡的密码 | | puk2 | string | 是 | SIM卡密码的解锁密码 | -| callback | AsyncCallback<[LockStatusResponse](#LockStatusResponse7)> | 是 | 回调函数。 | +| callback | AsyncCallback<[LockStatusResponse](#lockstatusresponse7)> | 是 | 回调函数。 | **示例:** @@ -1603,7 +1603,7 @@ unlockPuk2slotId: number,newPin2: string,puk2: string): Promise<LockStatusRes | 类型 | 说明 | | ---------------------------------------------------- | -------------------------------------------------- | -| Promise\<[LockStatusResponse](#LockStatusResponse)\> | 以Promise形式返回获取指定卡槽的SIM卡锁状态的响应。 | +| Promise\<[LockStatusResponse](#lockstatusresponse7)\> | 以Promise形式返回获取指定卡槽的SIM卡锁状态的响应。 | **示例:** @@ -2100,7 +2100,7 @@ getOperatorConfigs(slotId: number, callback: AsyncCallback- 0:卡槽1
- 1:卡槽2 | -| callback | AsyncCallback> | 是 | 回调函数。 | +| callback | AsyncCallback> | 是 | 回调函数。 | **示例:** @@ -2164,7 +2164,7 @@ queryIccDiallingNumbers(slotId: number, type: ContactType, callback: AsyncCallba | -------- | ------------------------------------------------------------ | ---- | ---------------------------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | | type | ContactType | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | -| callback | AsyncCallback> | 是 | 回调函数。 | +| callback | AsyncCallback> | 是 | 回调函数。 | **示例:** @@ -2198,7 +2198,7 @@ queryIccDiallingNumbers(slotId: number, type: ContactType): Promise> | 以Promise形式返回Icc拨号号码。 | +| Promise> | 以Promise形式返回Icc拨号号码。 | **示例:** @@ -2228,8 +2228,8 @@ addIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: Dialli | 参数名 | 类型 | 必填 | 说明 | | --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| type | [ContactType](#ContactType8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | -| diallingNumbers | [DiallingNumbersInfo](#DiallingNumbersInfo8) | 是 | 拨号号码信息 | +| type | [ContactType](#contacttype8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | +| diallingNumbers | [DiallingNumbersInfo](#diallingnumbersinfo8) | 是 | 拨号号码信息 | | callback | AsyncCallback | 是 | 回调函数 | **示例:** @@ -2264,8 +2264,8 @@ addIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: Dialli | 参数名 | 类型 | 必填 | 说明 | | --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| type | [ContactType](#ContactType8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | -| diallingNumbers | [DiallingNumbersInfo](#DiallingNumbersInfo8) | 是 | 拨号号码信息 | +| type | [ContactType](#contacttype8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | +| diallingNumbers | [DiallingNumbersInfo](#diallingnumbersinfo8) | 是 | 拨号号码信息 | **返回值:** @@ -2307,8 +2307,8 @@ delIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: Dialli | 参数名 | 类型 | 必填 | 说明 | | --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| type | [ContactType](#ContactType8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | -| diallingNumbers | [DiallingNumbersInfo](#DiallingNumbersInfo8) | 是 | 拨号号码信息 | +| type | [ContactType](#contacttype8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | +| diallingNumbers | [DiallingNumbersInfo](#diallingnumbersinfo8) | 是 | 拨号号码信息 | | callback | AsyncCallback | 是 | 回调函数 | **示例:** @@ -2343,8 +2343,8 @@ delIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: Dialli | 参数名 | 类型 | 必填 | 说明 | | --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| type | [ContactType](#ContactType8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | -| diallingNumbers | [DiallingNumbersInfo](#DiallingNumbersInfo8) | 是 | 拨号号码信息 | +| type | [ContactType](#contacttype8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | +| diallingNumbers | [DiallingNumbersInfo](#diallingnumbersinfo8) | 是 | 拨号号码信息 | **返回值:** @@ -2386,8 +2386,8 @@ updateIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: Dia | 参数名 | 类型 | 必填 | 说明 | | --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| type | [ContactType](#ContactType8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | -| diallingNumbers | [DiallingNumbersInfo](#DiallingNumbersInfo8) | 是 | 拨号号码信息 | +| type | [ContactType](#contacttype8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | +| diallingNumbers | [DiallingNumbersInfo](#diallingnumbersinfo8) | 是 | 拨号号码信息 | | callback | AsyncCallback | 是 | 回调函数 | **示例:** @@ -2422,8 +2422,8 @@ updateIccDiallingNumbers(slotId: number, type: ContactType, diallingNumbers: Dia | 参数名 | 类型 | 必填 | 说明 | | --------------- | -------------------------------------------- | ---- | ---------------------------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| type | [ContactType](#ContactType8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | -| diallingNumbers | [DiallingNumbersInfo](#DiallingNumbersInfo8) | 是 | 拨号号码信息 | +| type | [ContactType](#contacttype8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | +| diallingNumbers | [DiallingNumbersInfo](#diallingnumbersinfo8) | 是 | 拨号号码信息 | **返回值:** @@ -2595,8 +2595,8 @@ unlockSimLock(slotId: number, lockInfo: PersoLockInfo, callback: AsyncCallback- 0:卡槽1
- 1:卡槽2 | -| lockInfo | [PersoLockInfo](#PersoLockInfo8) | 是 | 定制锁类型信息 | -| callback | AsyncCallback<[LockStatusResponse](#LockStatusResponse7)\> | 是 | 回调函数 | +| lockInfo | [PersoLockInfo](#persolockinfo8) | 是 | 定制锁类型信息 | +| callback | AsyncCallback<[LockStatusResponse](#lockstatusresponse7)\> | 是 | 回调函数 | **示例:** @@ -2628,13 +2628,13 @@ unlockSimLock(slotId: number, lockInfo: PersoLockInfo): Promise- 0:卡槽1
- 1:卡槽2 | -| lockInfo | [PersoLockInfo](#PersoLockInfo8) | 是 | 定制锁类型信息 | +| lockInfo | [PersoLockInfo](#persolockinfo8) | 是 | 定制锁类型信息 | **返回值:** | 类型 | 说明 | | ---------------------------------------------------- | ------------------------- | -| Promise<[LockStatusResponse](#LockStatusResponse7)\> | 以Promise形式返回锁状态。 | +| Promise<[LockStatusResponse](#lockstatusresponse7)\> | 以Promise形式返回锁状态。 | **示例:** @@ -2873,9 +2873,9 @@ SIM卡状态。 | 名称 | 类型 | 说明 | | -------- | ------------------------ | ------ | -| lockType | [LockType](#LockType8) | 锁类型 | +| lockType | [LockType](#locktype8) | 锁类型 | | password | string | 密码 | -| state | [LockState](#LockState8) | 锁状态 | +| state | [LockState](#lockstate8) | 锁状态 | ## **PersoLockInfo**8+ @@ -2887,7 +2887,7 @@ SIM卡状态。 | 名称 | 类型 | 说明 | | -------- | -------------------------------- | ------------ | -| lockType | [PersoLockType](#PersoLockType8) | 定制锁的类型 | +| lockType | [PersoLockType](#persolocktype8) | 定制锁的类型 | | password | string | 密码 | ## **IccAccountInfo**7+ diff --git a/zh-cn/application-dev/reference/apis/js-apis-sms.md b/zh-cn/application-dev/reference/apis/js-apis-sms.md index cc3cefb397..802515f797 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-sms.md +++ b/zh-cn/application-dev/reference/apis/js-apis-sms.md @@ -444,7 +444,7 @@ promise.then(data => { addSimMessage(options: SimMessageOptions, callback: AsyncCallback): void -添加SIM卡短信,使用callback方式作为异步方法。 +添加SIM卡消息,使用callback方式作为异步方法。 此接口为系统接口。 @@ -454,10 +454,10 @@ addSimMessage(options: SimMessageOptions, callback: AsyncCallback): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | ------------------------------------------------------------ | -| options | [SimMessageOptions](#SimMessageOptions7) | 是 | slotId: number
smsc: string
pdu: string
status: [SimMessageStatus](#SimMessageStatus7) | -| callback | AsyncCallback<void> | 是 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------------- | +| options | [SimMessageOptions](#simmessageoptions7) | 是 | SIM卡消息选项。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | **示例:** @@ -478,7 +478,7 @@ sms.addSimMessage(simMessageOptions, (err, data) => { addSimMessage(options: SimMessageOptions): Promise -添加SIM卡短信,使用Promise方式作为异步方法。 +添加SIM卡消息,使用Promise方式作为异步方法。 此接口为系统接口。 @@ -488,9 +488,9 @@ addSimMessage(options: SimMessageOptions): Promise **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------- | ---------------------------------------- | ---- | ------------------------------------------------------------ | -| options | [SimMessageOptions](#SimMessageOptions7) | 是 | slotId: number
smsc: string
pdu: string
status: [SimMessageStatus](#SimMessageStatus7) | +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ---------------------------------------- | ---- | --------------- | +| options | [SimMessageOptions](#simmessageoptions7) | 是 | SIM卡消息选项。 | **返回值:** @@ -519,7 +519,7 @@ promise.then(data => { delSimMessage(slotId: number, msgIndex: number, callback: AsyncCallback): void -删除SIM卡短信,使用callback方式作为异步方法。 +删除SIM卡消息,使用callback方式作为异步方法。 此接口为系统接口。 @@ -550,7 +550,7 @@ sms.delSimMessage(slotId, msgIndex, (err, data) => { delSimMessage(slotId: number, msgIndex: number): Promise -删除SIM卡短信,使用Promise方式作为异步方法。 +删除SIM卡信息,使用Promise方式作为异步方法。 此接口为系统接口。 @@ -588,7 +588,7 @@ promise.then(data => { updateSimMessage(options: UpdateSimMessageOptions, callback: AsyncCallback): void -更新SIM卡短信,使用callback方式作为异步方法。 +更新SIM卡消息,使用callback方式作为异步方法。 此接口为系统接口。 @@ -598,10 +598,10 @@ updateSimMessage(options: UpdateSimMessageOptions, callback: AsyncCallbackmsgIndex: number
newStatus: [SimMessageStatus](#SimMessageStatus7)
pdu: string
smsc: string | -| callback | AsyncCallback<void> | 是 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------------------- | ---- | ------------------- | +| options | [UpdateSimMessageOptions](#updatesimmessageoptions7) | 是 | 更新SIM卡消息选项。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | **示例:** @@ -623,7 +623,7 @@ sms.updateSimMessage(updateSimMessageOptions, (err, data) => { updateSimMessage(options: UpdateSimMessageOptions): Promise -更新SIM卡短信,使用Promise方式作为异步方法。 +更新SIM卡消息,使用Promise方式作为异步方法。 此接口为系统接口。 @@ -633,9 +633,9 @@ updateSimMessage(options: UpdateSimMessageOptions): Promise **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------ | -| options | [UpdateSimMessageOptions](#UpdateSimMessageOptions7) | 是 | slotId: number
msgIndex: number
newStatus: [SimMessageStatus](#SimMessageStatus7)
pdu: string
smsc: string | +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ---------------------------------------------------- | ---- | ------------------- | +| options | [UpdateSimMessageOptions](#updatesimmessageoptions7) | 是 | 更新SIM卡消息选项。 | **返回值:** @@ -665,7 +665,7 @@ promise.then(data => { getAllSimMessages(slotId: number, callback: AsyncCallback>): void -获取所有SIM卡短信,使用callback方式作为异步方法。 +获取所有SIM卡消息,使用callback方式作为异步方法。 此接口为系统接口。 @@ -678,7 +678,7 @@ getAllSimMessages(slotId: number, callback: AsyncCallback- 0:卡槽1
- 1:卡槽2 | -| callback | AsyncCallback> | 是 | 回调函数。 | +| callback | AsyncCallback> | 是 | 回调函数。 | **示例:** @@ -694,7 +694,7 @@ sms.getAllSimMessages(slotId, (err, data) => { getAllSimMessages(slotId: number): Promise> -获取所有SIM卡短信,使用Promise方式作为异步方法。 +获取所有SIM卡消息,使用Promise方式作为异步方法。 此接口为系统接口。 @@ -712,7 +712,7 @@ getAllSimMessages(slotId: number): Promise> | 类型 | 说明 | | ------------------------------------------------------- | ---------------------------------- | -| PromiseArray<[SimShortMessage](#SimShortMessage8)\>> | 以Promise形式返回获取的SIM短消息。 | +| PromiseArray<[SimShortMessage](#simshortmessage8)\>> | 以Promise形式返回获取的SIM短消息。 | **示例:** @@ -730,7 +730,7 @@ promise.then(data => { setCBConfig(options: CBConfigOptions, callback: AsyncCallback): void -设置CB配置,使用callback方式作为异步方法。 +设置小区广播配置,使用callback方式作为异步方法。 此接口为系统接口。 @@ -740,10 +740,10 @@ setCBConfig(options: CBConfigOptions, callback: AsyncCallback): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------------------------------ | ---- | ------------------------------------------------------------ | -| options | [CBConfigOptions](#CBConfigOptions8) | 是 | slotId: number
smsc: string
pdu: string
status: [SimMessageStatus](#SimMessageStatus7) | -| callback | AsyncCallback<void> | 是 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------ | ---- | ------------ | +| options | [CBConfigOptions](#cbconfigoptions8) | 是 | 小区广播配置选项。 | +| callback | AsyncCallback<void> | 是 | 回调函数。 | **示例:** @@ -764,7 +764,7 @@ sms.setCBConfig(cbConfigOptions, (err, data) => { setCBConfig(options: CBConfigOptions): Promise -设置CB配置,使用Promise方式作为异步方法。 +设置小区广播配置,使用Promise方式作为异步方法。 此接口为系统接口。 @@ -774,9 +774,9 @@ setCBConfig(options: CBConfigOptions): Promise **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------- | ------------------------------------ | ---- | ------------------------------------------------------------ | -| options | [CBConfigOptions](#CBConfigOptions8) | 是 | slotId: number
smsc: string
pdu: string
status: [SimMessageStatus](#SimMessageStatus7) | +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ------------------------------------ | ---- | ------------ | +| options | [CBConfigOptions](#cbconfigoptions8) | 是 | 小区广播配置选项。 | **返回值:** @@ -818,7 +818,7 @@ getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean, callback | slotId | number | 是 | SIM卡槽ID:
- 0:卡槽1
- 1:卡槽2 | | message | string | 是 | 消息 | | force7bit | boolean | 是 | 强转7位 | -| callback | AsyncCallback<[SmsSegmentsInfo](#<SmsSegmentsInfo8)> | 是 | 回调函数 | +| callback | AsyncCallback<[SmsSegmentsInfo](#<smssegmentsinfo8)> | 是 | 回调函数 | **示例:** @@ -850,9 +850,9 @@ getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean): Promise **返回值:** -| 类型 | 说明 | -| ------------------------------------------------------------ | ----------------------------- | -| Promise<<[SmsSegmentsInfo](#<SmsSegmentsInfo8)>> | 以Promise形式返回短信段信息。 | +| 类型 | 说明 | +| ------------------------------------------------------- | ----------------------------- | +| Promise<[SmsSegmentsInfo](#<smssegmentsinfo8)> | 以Promise形式返回短信段信息。 | **示例:** @@ -985,7 +985,7 @@ decodeMms(mmsFilePathName: string | Array, callback: AsyncCallback | 是 | 彩信文件路径名 | -| callback | AsyncCallback<[MmsInformation](#MmsInformation8)> | 是 | 回调函数。 | +| callback | AsyncCallback<[MmsInformation](#mmsinformation8)> | 是 | 回调函数。 | **示例:** @@ -1017,7 +1017,7 @@ decodeMms(mmsFilePathName: string | Array): Promise | 类型 | 说明 | | --------------------------------------------------------- | --------------------------- | -| Promise<<[MmsInformation](#MmsInformation8)>> | 以Promise形式返回彩信信息。 | +| Promise<<[MmsInformation](#mmsinformation8)>> | 以Promise形式返回彩信信息。 | **示例:** @@ -1043,10 +1043,10 @@ encodeMms(mms: MmsInformation, callback: AsyncCallback>): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------- | ---- | ------------------------------------------------------------ | -| mms | [MmsInformation](#MmsInformation8) | 是 | messageType: [MessageType](#MessageType8)
mmsType : [MmsSendReq](#MmsSendReq8) \|[MmsSendConf](#MmsSendConf8)\|[MmsNotificationInd](#MmsNotificationInd8)\|
[MmsRespInd](#MmsRespInd8)\|[MmsRetrieveConf](#MmsRetrieveConf8)\|[MmsAcknowledgeInd](#MmsAcknowledgeInd8)\|
[MmsDeliveryInd](#MmsDeliveryInd8)\|[MmsReadOrigInd](#MmsReadOrigInd8)\|[MmsReadRecInd](#MmsReadRecInd8)
attachment?: Array<[MmsAttachment](#MmsAttachment8)\> | -| callback | AsyncCallback<Array> | 是 | 回调函数。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------- | ---- | ---------- | +| mms | [MmsInformation](#mmsinformation8) | 是 | 彩信信息。 | +| callback | AsyncCallback<Array> | 是 | 回调函数。 | **示例:** @@ -1078,9 +1078,9 @@ encodeMms(mms: MmsInformation): Promise> **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ---------------------------------- | ---- | ------------------------------------------------------------ | -| mms | [MmsInformation](#MmsInformation8) | 是 | messageType: [MessageType](#MessageType8)
mmsType : [MmsSendReq](#MmsSendReq8) \|[MmsSendConf](#MmsSendConf8)\|[MmsNotificationInd](#MmsNotificationInd8)\|
[MmsRespInd](#MmsRespInd8)\|[MmsRetrieveConf](#MmsRetrieveConf8)\|[MmsAcknowledgeInd](#MmsAcknowledgeInd8)\|
[MmsDeliveryInd](#MmsDeliveryInd8)\|[MmsReadOrigInd](#MmsReadOrigInd8)\|[MmsReadRecInd](#MmsReadRecInd8)
attachment?: Array<[MmsAttachment](#MmsAttachment8)\> | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ---------------------------------- | ---- | ---------- | +| mms | [MmsInformation](#mmsinformation8) | 是 | 彩信信息。 | **返回值:** @@ -1206,11 +1206,11 @@ promise.then(data => { **系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 -| 参数名 | 类型 | 必填 | 说明 | -| ----------- | ------------------------------------------------------------ | ---- | -------- | -| messageType | [MessageType](#MessageType8) | 是 | 消息类型 | -| mmsType | [MmsSendReq](#MmsSendReq8) \|[MmsSendConf](#MmsSendConf8) \|[MmsNotificationInd](#MmsNotificationInd8) \|[MmsRespInd](#MmsRespInd8) \|[MmsRetrieveConf](#MmsRetrieveConf8)\|[MmsAcknowledgeInd](#MmsAcknowledgeInd8)\|[MmsDeliveryInd](#MmsDeliveryInd8)\|[MmsReadOrigInd](#MmsReadOrigInd8)\|[MmsReadRecInd](#MmsReadOrigInd8) | 是 | 彩信类型 | -| attachment | Array<[MmsAttachment](#MmsAttachment8)\> | 否 | 附件 | +| 参数名 | 类型 | 必填 | 说明 | +| ----------- | ------------------------------------------------------------ | ---- | --------- | +| messageType | [MessageType](#messagetype8) | 是 | 消息类型 | +| mmsType | [MmsSendReq](#mmssendreq8) \|[MmsSendConf](#mmssendconf8) \|[MmsNotificationInd](#mmsnotificationind8) \|[MmsRespInd](#mmsrespind8) \|[MmsRetrieveConf](#mmsretrieveconf8)\|[MmsAcknowledgeInd](#mmsacknowledgeind8)\|[MmsDeliveryInd](#mmsdeliveryind8)\|[MmsReadOrigInd](#mmsreadorigInd8)\|[MmsReadRecInd](#mmsreadorigind8) | 是 | pdu头类型 | +| attachment | Array<[MmsAttachment](#mmsattachment8)\> | 否 | 附件 | ## MmsSendReq8+ @@ -1222,18 +1222,18 @@ promise.then(data => { | 参数名 | 类型 | 必填 | 说明 | | ---------------- | ------------------------------------ | ---- | ------------ | -| from | [MmsAddress](#MmsAddress8) | 是 | 彩信来源 | +| from | [MmsAddress](#mmsaddress8) | 是 | 彩信来源 | | transactionId | string | 是 | 事务ID | | contentType | string | 是 | 内容类型 | -| version | [MmsVersionType](#MmsVersionType8) | 是 | 版本 | -| to | Array<[MmsAddress](#MmsAddress8)\> | 否 | 发送至 | +| version | [MmsVersionType](#mmsversiontype8) | 是 | 版本 | +| to | Array<[MmsAddress](#mmsaddress8)\> | 否 | 发送至 | | date | number | 否 | 日期 | -| cc | Array<[MmsAddress](#MmsAddress8)\> | 否 | 抄送 | -| bcc | Array<[MmsAddress](#MmsAddress8)\> | 否 | 暗抄送 | +| cc | Array<[MmsAddress](#mmsaddress8)\> | 否 | 抄送 | +| bcc | Array<[MmsAddress](#mmsaddress8)\> | 否 | 暗抄送 | | subject | string | 否 | 主题 | | messageClass | number | 否 | 消息类 | | expiry | number | 否 | 到期 | -| priority | [MmsPriorityType](#MmsPriorityType8) | 否 | 优先 | +| priority | [MmsPriorityType](#mmsprioritytype8) | 否 | 优先 | | senderVisibility | number | 否 | 发件人可见性 | | deliveryReport | number | 否 | 交付报告 | | readReport | number | 否 | 阅读报告 | @@ -1250,7 +1250,7 @@ promise.then(data => { | ------------- | ---------------------------------- | ---- | -------- | | responseState | number | 是 | 响应状态 | | transactionId | string | 是 | 事务ID | -| version | [MmsVersionType](#MmsVersionType8) | 是 | 版本 | +| version | [MmsVersionType](#mmsversiontype8) | 是 | 版本 | | messageId | string | 否 | 消息ID | ## MmsNotificationInd8+ @@ -1268,8 +1268,8 @@ promise.then(data => { | messageSize | number | 是 | 消息大小 | | expiry | number | 是 | 到期 | | contentLocation | string | 是 | 内容位置 | -| version | [MmsVersionType](#MmsVersionType8) | 是 | 版本 | -| from | [MmsAddress](#MmsAddress8) | 否 | 来源 | +| version | [MmsVersionType](#mmsversiontype8) | 是 | 版本 | +| from | [MmsAddress](#mmsaddress8) | 否 | 来源 | | subject | string | 否 | 主题 | | deliveryReport | number | 否 | 状态报告 | | contentClass | number | 否 | 内容类 | @@ -1285,8 +1285,8 @@ promise.then(data => { | 参数名 | 类型 | 必填 | 说明 | | ------------- | ---------------------------------- | ---- | -------- | | transactionId | string | 是 | 事务ID | -| version | [MmsVersionType](#MmsVersionType8) | 是 | 版本 | -| reportAllowed | [ReportType](#ReportType8) | 否 | 允许报告 | +| version | [MmsVersionType](#mmsversiontype8) | 是 | 版本 | +| reportAllowed | [ReportType](#reporttype8) | 否 | 允许报告 | ## MmsRetrieveConf8+ @@ -1302,12 +1302,12 @@ promise.then(data => { | messageId | string | 是 | 消息ID | | date | number | 是 | 日期 | | contentType | string | 是 | 内容类型 | -| to | Array<[MmsAddress](#MmsAddress8)\> | 是 | 发送至 | -| version | [MmsVersionType](#MmsVersionType8) | 是 | 版本 | -| from | [MmsAddress](#MmsAddress8) | 否 | 来源 | -| cc | Array<[MmsAddress](#MmsAddress8)\> | 否 | 抄送 | +| to | Array<[MmsAddress](#mmsaddress8)\> | 是 | 发送至 | +| version | [MmsVersionType](#mmsversiontype8) | 是 | 版本 | +| from | [MmsAddress](#mmsaddress8) | 否 | 来源 | +| cc | Array<[MmsAddress](#mmsaddress8)\> | 否 | 抄送 | | subject | string | 否 | 主题 | -| priority | [MmsPriorityType](#MmsPriorityType8) | 否 | 优先级 | +| priority | [MmsPriorityType](#mmsPrioritytype8) | 否 | 优先级 | | deliveryReport | number | 否 | 状态报告 | | readReport | number | 否 | 阅读报告 | | retrieveStatus | number | 否 | 检索状态 | @@ -1323,10 +1323,10 @@ promise.then(data => { | 参数名 | 类型 | 必填 | 说明 | | ---------- | ---------------------------------- | ---- | -------- | -| version | [MmsVersionType](#MmsVersionType8) | 是 | 版本 | +| version | [MmsVersionType](#mmsversiontype8) | 是 | 版本 | | messageId | string | 是 | 消息ID | -| to | Array<[MmsAddress](#MmsAddress8)\> | 是 | 发送至 | -| from | [MmsAddress](#MmsAddress8) | 是 | 来源 | +| to | Array<[MmsAddress](#mmsaddress8)\> | 是 | 发送至 | +| from | [MmsAddress](#mmsaddress8) | 是 | 来源 | | date | number | 是 | 日期 | | readStatus | number | 是 | 阅读状态 | @@ -1342,14 +1342,14 @@ promise.then(data => { | ----------------------- | ------------------------------------ | ---- | ------------------ | | contentId | string | 是 | 内容ID | | contentLocation | string | 是 | 内容位置 | -| contentDisposition | [DispositionType](#DispositionType8) | 是 | 内容处理 | +| contentDisposition | [DispositionType](#dispositiontype8) | 是 | 内容处理 | | contentTransferEncoding | string | 是 | 内容传输编码 | | contentType | string | 是 | 内容类型 | | isSmil | boolean | 是 | 同步多媒体集成语言 | | path | string | 否 | 路径 | | inBuff | Array | 否 | 缓冲区中 | | fileName | string | 否 | 文件名 | -| charset | [MmsCharSets](#MmsCharSets8) | 否 | 字符集 | +| charset | [MmsCharSets](#mmscharsets8) | 否 | 字符集 | ## MmsAddress8+ @@ -1362,7 +1362,7 @@ promise.then(data => { | 参数名 | 类型 | 必填 | 说明 | | ------- | ---------------------------- | ---- | ------ | | address | string | 是 | 地址 | -| charset | [MmsCharSets](#MmsCharSets8) | 是 | 字符集 | +| charset | [MmsCharSets](#mmscharsets8) | 是 | 字符集 | ## MessageType8+ @@ -1479,7 +1479,7 @@ promise.then(data => { | enable | boolean | 是 | 可行 | | startMessageId | number | 是 | 消息起始ID | | endMessageId | number | 是 | 消息结束ID | -| ranType | [RanType](#RanType7) | 是 | 手机网络制式 | +| ranType | [RanType](#rantype7) | 是 | 手机网络制式 | ## SimMessageStatus7+ @@ -1538,7 +1538,7 @@ SIM卡消息选项。 | slotId | number | 是 | 卡槽ID | | smsc | string | 是 | 短消息业务中心 | | pdu | string | 是 | 协议数据单元 | -| status | [SimMessageStatus](#SimMessageStatus7) | 是 | 状态 | +| status | [SimMessageStatus](#simmessagestatus7) | 是 | 状态 | ## UpdateSimMessageOptions7+ @@ -1552,7 +1552,7 @@ SIM卡消息选项。 | --------- | -------------------------------------- | ---- | -------------- | | slotId | number | 是 | 卡槽ID | | msgIndex | number | 是 | 消息索引 | -| newStatus | [SimMessageStatus](#SimMessageStatus7) | 是 | 新状态 | +| newStatus | [SimMessageStatus](#simmessagestatus7) | 是 | 新状态 | | pdu | string | 是 | 协议数据单元 | | smsc | string | 是 | 短消息业务中心 | @@ -1566,8 +1566,8 @@ SIM卡短消息。 | 参数名 | 类型 | 必填 | 说明 | | ---------------- | -------------------------------------- | ---- | ------------- | -| shortMessage | [ShortMessage](#ShortMessage) | 是 | 短消息 | -| simMessageStatus | [SimMessageStatus](#SimMessageStatus7) | 是 | SIM卡消息状态 | +| shortMessage | [ShortMessage](#shortmessage) | 是 | 短消息 | +| simMessageStatus | [SimMessageStatus](#simmessagestatus7) | 是 | SIM卡消息状态 | | indexOnSim | number | 是 | SIM卡索引 | ## MmsDeliveryInd8+ @@ -1582,9 +1582,9 @@ SIM卡短消息。 | --------- | ---------------------------------- | ---- | ------ | | messageId | string | 是 | 消息ID | | date | number | 是 | 日期 | -| to | Array<[MmsAddress](#MmsAddress8)\> | 是 | 发送至 | +| to | Array<[MmsAddress](#mmsaddress8)\> | 是 | 发送至 | | status | number | 是 | 状态 | -| version | [MmsVersionType](#MmsVersionType8) | 是 | 版本 | +| version | [MmsVersionType](#mmsversiontype8) | 是 | 版本 | ## MmsRespInd8+ @@ -1598,5 +1598,20 @@ SIM卡短消息。 | ------------- | ---------------------------------- | ---- | -------- | | transactionId | string | 是 | 事件ID | | status | number | 是 | 状态 | -| version | [MmsVersionType](#MmsVersionType8) | 是 | 版本 | -| reportAllowed | [ReportType](#ReportType8) | 否 | 允许报告 | +| version | [MmsVersionType](#mmsversiontype8) | 是 | 版本 | +| reportAllowed | [ReportType](#reporttype8) | 否 | 允许报告 | + +## SmsSegmentsInfo8+ + +短信段信息。 + +此接口为系统接口。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。 + +| 参数名 | 类型 | 必填 | 说明 | +| -------------------- | ---------------------------------------- | ---- | ------------ | +| splitCount | number | 是 | 拆分计数 | +| encodeCount | number | 是 | 编码计数 | +| encodeCountRemaining | number | 是 | 剩余编码计数 | +| scheme | [SmsEncodingScheme](#smsencodingscheme8) | 是 | 短信编码方案 | -- GitLab From 2624c14d9d754f734565310dea2a88a2e8ddca94 Mon Sep 17 00:00:00 2001 From: libing_frank Date: Mon, 18 Jul 2022 10:52:48 +0800 Subject: [PATCH 041/868] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=A7=BB=E6=A4=8D?= =?UTF-8?q?=E6=A1=88=E4=BE=8B=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: libing_frank Change-Id: I43c87b0699471c0b113f7af817487311b0aedae4 --- zh-cn/OpenHarmony-Overview_zh.md | 8 ++--- zh-cn/device-dev/dev-board-on-the-master.md | 40 ++++++++++----------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/zh-cn/OpenHarmony-Overview_zh.md b/zh-cn/OpenHarmony-Overview_zh.md index c9d0e1714a..30c90f04b5 100644 --- a/zh-cn/OpenHarmony-Overview_zh.md +++ b/zh-cn/OpenHarmony-Overview_zh.md @@ -351,11 +351,11 @@ OpenHarmony支持如下几种系统类型: 当前OpenHarmony社区支持17款开发板,下表介绍3款(此处选择三种系统类型首款进入OpenHarmony主干的开发板),更多开发板信息,请参考[社区支持的开发板清单](device-dev/dev-board-on-the-master.md)。 -| 系统类型 | 开发板型号 | 芯片型号 | 主要能力 | 典型应用场景 | 开发板代码仓及社区每日构建版本获取地址 | +| 系统类型 | 开发板型号 | 芯片型号 | 主要能力及适配案例 | 典型应用场景 | 开发板代码仓及社区每日构建版本获取地址 | | -------- | -------- | -------- | -------- | -------- | -------- | -| 标准系统 | 润和DAYU200 | RK3568 | 润和HH-SCDAYU200基于Rockchip RK3568,集成双核心架构GPU以及高效能NPU;板载四核64位Cortex-A55 处理器采用22nm先进工艺,主频高达2.0GHz;支持蓝牙、Wi-Fi、音频、视频和摄像头等功能,拥有丰富的扩展接口,支持多种视频输入输出接口;配置双千兆自适应RJ45以太网口,可满足NVR、工业网关等多网口产品需求。 | 影音娱乐、智慧出行、智能家居,如烟机、烤箱、跑步机等。 | 代码仓:
[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)
[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)
[vendor_hihope](https://gitee.com/openharmony/vendor_hihope)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | -| 小型系统 | Hispark_Taurus | Hi3516DV300 | Hi3516DV300是新一代Smart HD IP摄像机SOC,集成新一代ISP(Image Signal Processor)、H.265视频压缩编码器、高性能NNIE引擎,在低码率、高画质、智能处理和分析、低功耗等方面有较好的性能。 | 带屏智能硬件,比如带屏冰箱、车机等。 | 代码仓:
[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)
[device_board_hisilicon](https://gitee.com/openharmony/device_board_hisilicon)
[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | -| 轻量系统 | 欧智通V200ZR | BES2600 | Multi-modal V200Z-R开发板是基于恒玄科技BES2600WM芯片的一款高性能、多功能、高性价比AIoT SoC开发板Multi-modal V200Z-R开发板,单模组集成四核ARM处理器(最高主频1GHz),集成双频WiFi + 双模蓝牙,支持标准的802.11 a/b/g/n/协议,支持BT/BLE 5.2协议,内建多种容量的RAM(最大42MB)和Flash(最大32MB),支持MIPI DSI及CSI,适用于各种AIoT多模态VUI + GUI交互硬件场景。 | 智能硬件、带屏类模组产品,如音箱、手表等。 | 代码仓:
[device_soc_bestechnic](https://gitee.com/openharmony/device_soc_bestechnic)
[device_board_fnlink](https://gitee.com/openharmony/device_board_fnlink)
[vendor_bestechnic](https://gitee.com/openharmony/vendor_bestechnic)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | +| 标准系统 | 润和DAYU200 | RK3568 | 主要能力:
润和HH-SCDAYU200基于Rockchip RK3568,集成双核心架构GPU以及高效能NPU;板载四核64位Cortex-A55 处理器采用22nm先进工艺,主频高达2.0GHz;支持蓝牙、Wi-Fi、音频、视频和摄像头等功能,拥有丰富的扩展接口,支持多种视频输入输出接口;配置双千兆自适应RJ45以太网口,可满足NVR、工业网关等多网口产品需求。
适配案例:
[DAYU200适配案例](device-dev/porting/porting-dayu200-on_standard-demo.md) | 影音娱乐、智慧出行、智能家居,如烟机、烤箱、跑步机等。 | 代码仓:
[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)
[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)
[vendor_hihope](https://gitee.com/openharmony/vendor_hihope)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | +| 小型系统 | Hispark_Taurus | Hi3516DV300 | 主要能力:
Hi3516DV300是新一代Smart HD IP摄像机SOC,集成新一代ISP(Image Signal Processor)、H.265视频压缩编码器、高性能NNIE引擎,在低码率、高画质、智能处理和分析、低功耗等方面有较好的性能。 | 带屏智能硬件,比如带屏冰箱、车机等。 | 代码仓:
[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)
[device_board_hisilicon](https://gitee.com/openharmony/device_board_hisilicon)
[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | +| 轻量系统 | 欧智通V200ZR | BES2600 | 主要能力:
Multi-modal V200Z-R开发板是基于恒玄科技BES2600WM芯片的一款高性能、多功能、高性价比AIoT SoC开发板Multi-modal V200Z-R开发板,单模组集成四核ARM处理器(最高主频1GHz),集成双频WiFi + 双模蓝牙,支持标准的802.11 a/b/g/n/协议,支持BT/BLE 5.2协议,内建多种容量的RAM(最大42MB)和Flash(最大32MB),支持MIPI DSI及CSI,适用于各种AIoT多模态VUI + GUI交互硬件场景。
适配案例:
[V200ZR适配案例](device-dev/porting/porting-bes2600w-on-minisystem-display-demo.md) | 智能硬件、带屏类模组产品,如音箱、手表等。 | 代码仓:
[device_soc_bestechnic](https://gitee.com/openharmony/device_soc_bestechnic)
[device_board_fnlink](https://gitee.com/openharmony/device_board_fnlink)
[vendor_bestechnic](https://gitee.com/openharmony/vendor_bestechnic)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | ## 快速入门 diff --git a/zh-cn/device-dev/dev-board-on-the-master.md b/zh-cn/device-dev/dev-board-on-the-master.md index dff638dceb..adadf6e9db 100644 --- a/zh-cn/device-dev/dev-board-on-the-master.md +++ b/zh-cn/device-dev/dev-board-on-the-master.md @@ -5,32 +5,32 @@ ## 标准系统开发板 -| 开发板型号 | 芯片型号 | 主要能力 | 典型应用场景 | 开发板代码仓及社区每日构建版本获取地址 | +| 开发板型号 | 芯片型号 | 主要能力及适配案例 | 典型应用场景 | 开发板代码仓及社区每日构建版本获取地址 | | ---------- | -------- | -------- | ------------ | -------------------------------------- | -|润和HH-SCDAYU200| RK3568 |润和HH-SCDAYU200开发板基于Rockchip RK3568平台,集成双核架构GPU以及高效能NPU,四核64位Cortex-A55 处理器采用22nm工艺,主频高达2.0GHz;支持蓝牙、Wi-Fi、音频、视频和摄像头等功能,拥有丰富的扩展接口,支持多种视频输入输出接口,配置双千兆自适应RJ45以太网口,可满足NVR、工业网关等多网口产品需求。|影音娱乐、智慧出行、智能家居,如烟机、烤箱、跑步机等。|代码仓:
[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)
[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)
[vendor_hihope](https://gitee.com/openharmony/vendor_hihope)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | -|Hispark_Phoenix|Hi3751V351|全球制式FHD(全高清)智能电视主处理芯片,内置高性能多核 ARM A53 CPU,多核MALI T450 GPU,支持NTSC/PAL/SECAM制式解调,支持DTMB/DVB-C/ATSC/ISDB-T等全球数字Demod,可以扩展DVB-T/T2/S/S2,支持USB播放,支持主流的视频格式包括MPEG2、H.264、H.265、RMVB、AVS+等,支持主流音频解码及音效处理,以及海思自研的SWS音效处理,支持CVBS/YPbPr/VGA/HDMI 1.4/USB接口,内置1GB DDR,支持LVDS和miniLVDS接口,支持主流的Tconless屏。|智能电视、智能家居中控屏、智能显示器、商显广告屏、交互白板、工业控制屏、打印机屏、白电屏、健身器显示屏等。|代码仓:
[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)
[device_board_hisilicon](https://gitee.com/openharmony/device_board_hisilicon)
[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| -|Unionpi Tiger|Amlogic A311D|Unionpi Tiger是一款应用于图像处理,音视频处理和深度学习等场景的智能硬件,其主芯片采用Amlogic A311D芯片方案。 A311D支持GPU和神经网络加速子系统,支持4K视频编解码器引擎和一流的HDR图像处理,并集成了所有标准音频/视频输入/输出接口。主系统的CPU采用大小核设计,主频高达2.2GHz,集成了四个Cortex-A73核心和两Cortex-A53核心 ,集成独立的5.0T NPU处理器。|智能家居、AI人脸识别、工业控制、智慧车载、多媒体处理、AI边缘计算等。|代码仓:
[device_soc_amlogic](https://gitee.com/openharmony/device_soc_amlogic)
[device_board_unionman](https://gitee.com/openharmony/device_board_unionman)
[vendor_unionman](https://gitee.com/openharmony/vendor_unionman)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| -|MILOS_Standard0|NXP i.MX8M Mini|基于 NXP i.MX8M Mini处理器,1.8G Hz主频。接⼝外设丰富:LVDS显⽰、MIPI-DSI信号引出、 MIPI-CSI摄像头接⼝、⽀持⾳频输⼊输出、千兆⽹、多路USB、多串⼝、等多种通信接⼝|⾼性能仪器仪表(⼯业及医疗)、⼯业控制及⼈机互动装置、智能交通、智慧消防、智慧楼宇等。|代码仓:
[device_soc_nxp](https://gitee.com/openharmony/device_soc_nxp)
[device_board_osware](https://gitee.com/openharmony/device_board_osware)
[vendor_osware](https://gitee.com/openharmony/vendor_osware)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| -|扬帆开发板|RK3399|扬帆开发板基于RK3399芯片平台;RK3399的CPU采用big.LITTLE核心架构,采用双核Cortex-A72大核+四核Cortex-A53小核结构。在整数,浮点数,内存,整体性能,功耗和核心面积方面都进行了重大改进。RK3399的GPU采用四核ARM的新一代高端图像处理器Mali-T860,集成了更多的带宽压缩技术(如智能叠加,ASTC和本地像素存储),并支持更多的图形和计算接口。|互动广告机、互动数字标牌、智能自助终端、智能零售终端、工控主机、机器人设备等。|代码仓:
[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)
[device_board_isoftstone](https://gitee.com/openharmony/device_board_isoftstone)
[vendor_isoftstone](https://gitee.com/openharmony/vendor_isoftstone)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| -|致远开发板|T507|致远开发板搭载了全志工业级T507芯片,该芯片集成四核CortexTM – A53 CPU、G31 MP2 GPU、多路视频输出接口(RGB/2*LVDS/HDMI/CVBS OUT)、多路视频输入接口(MIPI CSI/BT656/BT1120),支持4K@60fps H.265解码,4K@25fps H.264解码,DI,3D降噪,自动调色系统和梯形校正模块可以提供提供流畅的用户体验和专业的视觉效果|工业控制、智能驾舱、智慧家居、智慧电力、在线教育等。|代码仓:
[device_soc_allwinner](https://gitee.com/openharmony/device_soc_allwinner)
[device_board_isoftstone](https://gitee.com/openharmony/device_board_isoftstone)
[vendor_isoftstone](https://gitee.com/openharmony/vendor_isoftstone)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| +|润和HH-SCDAYU200| RK3568 |主要能力:
基于Rockchip RK3568平台,集成双核架构GPU以及高效能NPU,四核64位Cortex-A55 处理器采用22nm工艺,主频高达2.0GHz;支持蓝牙、Wi-Fi、音频、视频和摄像头等功能,拥有丰富的扩展接口,支持多种视频输入输出接口,配置双千兆自适应RJ45以太网口,可满足NVR、工业网关等多网口产品需求。
适配案例:
[DAYU200适配案例](porting/porting-dayu200-on_standard-demo.md)|影音娱乐、智慧出行、智能家居,如烟机、烤箱、跑步机等。|代码仓:
[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)
[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)
[vendor_hihope](https://gitee.com/openharmony/vendor_hihope)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | +|Hispark_Phoenix|Hi3751V351|主要能力:
全球制式FHD(全高清)智能电视主处理芯片,内置高性能多核 ARM A53 CPU,多核MALI T450 GPU,支持NTSC/PAL/SECAM制式解调,支持DTMB/DVB-C/ATSC/ISDB-T等全球数字Demod,可以扩展DVB-T/T2/S/S2,支持USB播放,支持主流的视频格式包括MPEG2、H.264、H.265、RMVB、AVS+等,支持主流音频解码及音效处理,以及海思自研的SWS音效处理,支持CVBS/YPbPr/VGA/HDMI 1.4/USB接口,内置1GB DDR,支持LVDS和miniLVDS接口,支持主流的Tconless屏。|智能电视、智能家居中控屏、智能显示器、商显广告屏、交互白板、工业控制屏、打印机屏、白电屏、健身器显示屏等。|代码仓:
[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)
[device_board_hisilicon](https://gitee.com/openharmony/device_board_hisilicon)
[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| +|Unionpi Tiger|Amlogic A311D|主要能力:
Unionpi Tiger是一款应用于图像处理,音视频处理和深度学习等场景的智能硬件,其主芯片采用Amlogic A311D芯片方案。 A311D支持GPU和神经网络加速子系统,支持4K视频编解码器引擎和一流的HDR图像处理,并集成了所有标准音频/视频输入/输出接口。主系统的CPU采用大小核设计,主频高达2.2GHz,集成了四个Cortex-A73核心和两Cortex-A53核心 ,集成独立的5.0T NPU处理器。|智能家居、AI人脸识别、工业控制、智慧车载、多媒体处理、AI边缘计算等。|代码仓:
[device_soc_amlogic](https://gitee.com/openharmony/device_soc_amlogic)
[device_board_unionman](https://gitee.com/openharmony/device_board_unionman)
[vendor_unionman](https://gitee.com/openharmony/vendor_unionman)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| +|MILOS_Standard0|NXP i.MX8M Mini|主要能力:
基于 NXP i.MX8M Mini处理器,1.8G Hz主频。接⼝外设丰富:LVDS显⽰、MIPI-DSI信号引出、 MIPI-CSI摄像头接⼝、⽀持⾳频输⼊输出、千兆⽹、多路USB、多串⼝、等多种通信接⼝|⾼性能仪器仪表(⼯业及医疗)、⼯业控制及⼈机互动装置、智能交通、智慧消防、智慧楼宇等。|代码仓:
[device_soc_nxp](https://gitee.com/openharmony/device_soc_nxp)
[device_board_osware](https://gitee.com/openharmony/device_board_osware)
[vendor_osware](https://gitee.com/openharmony/vendor_osware)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| +|扬帆开发板|RK3399|主要能力:
扬帆开发板基于RK3399芯片平台;RK3399的CPU采用big.LITTLE核心架构,采用双核Cortex-A72大核+四核Cortex-A53小核结构。在整数,浮点数,内存,整体性能,功耗和核心面积方面都进行了重大改进。RK3399的GPU采用四核ARM的新一代高端图像处理器Mali-T860,集成了更多的带宽压缩技术(如智能叠加,ASTC和本地像素存储),并支持更多的图形和计算接口。|互动广告机、互动数字标牌、智能自助终端、智能零售终端、工控主机、机器人设备等。|代码仓:
[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)
[device_board_isoftstone](https://gitee.com/openharmony/device_board_isoftstone)
[vendor_isoftstone](https://gitee.com/openharmony/vendor_isoftstone)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| +|致远开发板|T507|主要能力:
致远开发板搭载了全志工业级T507芯片,该芯片集成四核CortexTM – A53 CPU、G31 MP2 GPU、多路视频输出接口(RGB/2*LVDS/HDMI/CVBS OUT)、多路视频输入接口(MIPI CSI/BT656/BT1120),支持4K@60fps H.265解码,4K@25fps H.264解码,DI,3D降噪,自动调色系统和梯形校正模块可以提供提供流畅的用户体验和专业的视觉效果|工业控制、智能驾舱、智慧家居、智慧电力、在线教育等。|代码仓:
[device_soc_allwinner](https://gitee.com/openharmony/device_soc_allwinner)
[device_board_isoftstone](https://gitee.com/openharmony/device_board_isoftstone)
[vendor_isoftstone](https://gitee.com/openharmony/vendor_isoftstone)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| ## 小型系统开发板 -| 开发板型号 | 芯片型号 | 主要能力 | 典型应用场景 | 开发板代码仓及社区每日构建版本获取地址 | +| 开发板型号 | 芯片型号 | 主要能力及适配案例 | 典型应用场景 | 开发板代码仓及社区每日构建版本获取地址 | | ---------- | -------- | -------- | ------------ | -------------------------------------- | -|Hispark_Taurus|Hi3516DV300|Hi3516DV300是新一代Smart HD IP摄像机SOC,集成新一代ISP(Image Signal Processor)、H.265视频压缩编码器、高性能NNIE引擎,在低码率、高画质、智能处理和分析、低功耗等方面有较好的性能。|带屏智能设备,如带屏冰箱、车机等。|代码仓:
[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)
[device_board_hisilicon](https://gitee.com/openharmony/device_board_hisilicon)
[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| -|BearPi-HM Micro|STM32MP157A|BearPi-HM Micro开发板是一块高度集成并可运行OpenHarmony系统的开发板,板载高性能的工业级处理器STM32MP157芯片,搭配4.3寸LCD电容式触摸屏,并板载wifi电路及标准的E53接口,标准的E53接口可扩展智能加湿器、智能台灯、智能安防、智能烟感等案例。|智慧家居、智能硬件、中控屏等。|代码仓:
[device_soc_st](https://gitee.com/openharmony/device_soc_st)
[device_board_bearpi](https://gitee.com/openharmony/device_board_bearpi)
[vendor_bearpi](https://gitee.com/openharmony/vendor_bearpi)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| +|Hispark_Taurus|Hi3516DV300|主要能力:
Hi3516DV300是新一代Smart HD IP摄像机SOC,集成新一代ISP(Image Signal Processor)、H.265视频压缩编码器、高性能NNIE引擎,在低码率、高画质、智能处理和分析、低功耗等方面有较好的性能。|带屏智能设备,如带屏冰箱、车机等。|代码仓:
[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)
[device_board_hisilicon](https://gitee.com/openharmony/device_board_hisilicon)
[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| +|BearPi-HM Micro|STM32MP157A|主要能力:
BearPi-HM Micro开发板基于STM32MP157芯片,搭配4.3寸LCD电容式触摸屏,并板载wifi电路及标准的E53接口,标准的E53接口可扩展智能加湿器、智能台灯、智能安防、智能烟感等案例。
适配案例:
[BearPi-HM Mircro适配案例](porting/porting-stm32mp15xx-on-smallsystem.md)|智慧家居、智能硬件、中控屏等。|代码仓:
[device_soc_st](https://gitee.com/openharmony/device_soc_st)
[device_board_bearpi](https://gitee.com/openharmony/device_board_bearpi)
[vendor_bearpi](https://gitee.com/openharmony/vendor_bearpi)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | ## 轻量系统开发板 -| 开发板型号 | 芯片型号 | 主要能力 | 典型应用场景 | 开发板代码仓及社区每日构建版本获取地址 | +| 开发板型号 | 芯片型号 | 主要能力及适配案例 | 典型应用场景 | 开发板代码仓及社区每日构建版本获取地址 | | ---------- | -------- | -------- | ------------ | -------------------------------------- | -|小熊派BearPi-HM Nano|Hi3861|BearPi-HM_Nano开发板是一块专门为OpenHarmony设计的开发板,板载高度集成的2.4GHz WiFi SoC芯片Hi3861,并板载NFC电路及标准的E53接口,标准的E53接口可扩展智能加湿器、智能台灯、智能安防、智能烟感等案例。|智慧路灯、智慧物流、人体红外等连接类设备。|代码仓:
[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)
[device_board_bearpi](https://gitee.com/openharmony/device_board_bearpi)
[vendor_bearpi](https://gitee.com/openharmony/vendor_bearpi)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| -|欧智通V200ZR|BES2600|Multi-modal V200Z-R开发板是基于恒玄科技BES2600WM芯片的一款高性能、多功能、高性价比AIoT SoC开发板;开发板单模组集成四核ARM处理器(最高主频1GHz),集成双频WiFi + 双模蓝牙,支持标准的802.11 a/b/g/n/协议,支持BT/BLE 5.2协议,内建多种容量的RAM(最大42MB)和Flash(最大32MB),支持MIPI DSI及CSI,适用于各种AIoT多模态VUI + GUI交互硬件场景。|智能硬件、带屏类模组产品,如音箱、手表等。|代码仓:
[device_soc_bestechnic](https://gitee.com/openharmony/device_soc_bestechnic)
[device_board_fnlink](https://gitee.com/openharmony/device_board_fnlink)
[vendor_bestechnic](https://gitee.com/openharmony/vendor_bestechnic)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| -|朗国LANGO200|ASR582X|LANGO200 IOT开发板,集成了高性能的WIFI-BLE双模芯片ASR5822、外部存储芯片、语音播放芯片以及模数转换等,同时支持SPI等IOT设备常用外设接口,可外扩OLED显示屏、红外遥控等。|智能家居、连接类模组。|代码仓:
[device_soc_asrmicro](https://gitee.com/openharmony/device_soc_asrmicro)
[device_board_lango](https://gitee.com/openharmony/device_board_lango)
[vendor_asrmicro](https://gitee.com/openharmony/vendor_asrmicro)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| -|汇顶GR5515-STARTER-KIT|GR5515|支持Bluetooth 5.1的单模低功耗蓝牙SoC,多功能按键和LED指示灯。|智能硬件,如手表、手环、价格类标签。|代码仓:
[device_soc_goodix](https://gitee.com/openharmony/device_soc_goodix)
[device_board_goodix](https://gitee.com/openharmony/device_board_goodix)
[vendor_goodix](https://gitee.com/openharmony/vendor_goodix)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| -|Niobe407|STM32F407IGT6|Niobe407开发板基于STM32F407芯片,该芯片集成Arm Cortex-M4 CPU,带 FPU,自适应实时加速器,频率高达 168 MHz。|智慧交通、工业控制等。|代码仓:
[device_soc_st](https://gitee.com/openharmony/device_soc_st)
[device_board_talkweb](https://gitee.com/openharmony/device_board_talkweb)
[vendor_talkweb](https://gitee.com/openharmony/vendor_talkweb)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| -|B91 Generic Starter Kit|TLSR9x|泰凌微公司的B91 Generic Starter Kit是一个可用于评估TLSR9系列芯片组的硬件平台,BLE,BLE Mesh,Zigbee 3.0, Thread和2.4GHz私有协议等多种适用于2.4GHz接口标准的应用程序都可以用它来进行开发。|智能家居、连接类模组。|代码仓:
[device_soc_telink](https://gitee.com/openharmony/device_soc_telink)
[device_board_telink](https://gitee.com/openharmony/device_board_telink)
[vendor_telink](https://gitee.com/openharmony/vendor_telink)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| -|cst85_wblink|cst85f01|cst85_wblink开发板是基于芯海科技cst85f01芯片,由芯海科技出品的一款高性能、多功能、高性价比AIoT SoC开发板。cst85_wblink开发板,集成双频WiFi + 双模蓝牙,支持标准的802.11 a/b/g/n/协议,支持BT/BLE 5.0协议,内建多种容量的RAM(最大992KB)和Flash(最大16MB),支持MIPI DSI及CSI,适用于快速开发物联网(IOT)及智能设备的Wi-Fi、蓝牙的应用。|物联网、智能家居等。|代码仓:
[device_soc_chipsea](https://gitee.com/openharmony/device_soc_chipsea)
[device_board_chipsea](https://gitee.com/openharmony/device_board_chipsea)
[vendor_chipsea](https://gitee.com/openharmony/vendor_chipsea)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| -|Neptune100| W800 |润和 Neptune100开发板基于联盛德W800芯片,是一款Wi-Fi &蓝牙双模SoC开发板,支持标准的802.11 b/g/n协议,内置完整的TCP/IP协议栈,集成蓝牙基带处理器,支持BT/BLE4.2协议;具备丰富的数字接口,内置QFlash、SPI、UART、GPIO、I2C、I2S、7816等;具备强大的安全特性,支持多种硬件加解密算法,内置DSP、浮点运算单元与安全引擎,支持代码安全权限设置,内置2MBFlash存储器,支持固件加密存储、固件签名、安全调试、安全升级等多项安全措施。|物联网、智能家居、连接类产品。|代码仓:
[device_soc_winnermicro](https://gitee.com/openharmony/device_soc_winnermicro)
[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)
[vendor_hihope](https://gitee.com/openharmony/vendor_hihope)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | -|小凌派-RK2206| RK2206 |小凌派-RK2206开发板主控器为瑞芯微高性能、高性价比的RK2206芯片,搭载OpenHarmony轻量级操作系统,内置WiFi/AP功能、NFC功能、液晶显示接口以及E53接口,E53接口兼容各类传感器模块,便于多样化的IoT物联网应用;目前小凌派-RK2006开发板已经拥有20+个成熟的应用案例,以及完善的教学课程。|智慧城市、智能家居、智慧教学、智慧车载以及智慧医疗等。|代码仓:
[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)
[device_board_lockzhiner](https://gitee.com/openharmony/device_board_lockzhiner)
[vendor_lockzhiner](https://gitee.com/openharmony/vendor-lockzhiner)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | \ No newline at end of file +|小熊派BearPi-HM Nano|Hi3861|主要能力:
BearPi-HM_Nano开发板是一块专门为OpenHarmony设计的开发板,板载高度集成的2.4GHz WiFi SoC芯片Hi3861,并板载NFC电路及标准的E53接口,标准的E53接口可扩展智能加湿器、智能台灯、智能安防、智能烟感等案例。|智慧路灯、智慧物流、人体红外等连接类设备。|代码仓:
[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)
[device_board_bearpi](https://gitee.com/openharmony/device_board_bearpi)
[vendor_bearpi](https://gitee.com/openharmony/vendor_bearpi)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| +|欧智通V200ZR|BES2600|主要能力:
Multi-modal V200Z-R开发板是基于恒玄科技BES2600WM芯片的一款高性能、多功能、高性价比AIoT SoC开发板;开发板单模组集成四核ARM处理器(最高主频1GHz),集成双频WiFi + 双模蓝牙,支持标准的802.11 a/b/g/n/协议,支持BT/BLE 5.2协议,内建多种容量的RAM(最大42MB)和Flash(最大32MB),支持MIPI DSI及CSI,适用于各种AIoT多模态VUI + GUI交互硬件场景。
适配案例:
[V200ZR适配案例](porting/porting-bes2600w-on-minisystem-display-demo.md)|智能硬件、带屏类模组产品,如音箱、手表等。|代码仓:
[device_soc_bestechnic](https://gitee.com/openharmony/device_soc_bestechnic)
[device_board_fnlink](https://gitee.com/openharmony/device_board_fnlink)
[vendor_bestechnic](https://gitee.com/openharmony/vendor_bestechnic)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | +|朗国LANGO200|ASR582X|主要能力:
LANGO200 IOT开发板,集成了高性能的WIFI-BLE双模芯片ASR5822、外部存储芯片、语音播放芯片以及模数转换等,同时支持SPI等IOT设备常用外设接口,可外扩OLED显示屏、红外遥控等。
适配案例:
[LANGO200适配案例](porting/porting-asr582x-combo-demo.md)|智能家居、连接类模组。|代码仓:
[device_soc_asrmicro](https://gitee.com/openharmony/device_soc_asrmicro)
[device_board_lango](https://gitee.com/openharmony/device_board_lango)
[vendor_asrmicro](https://gitee.com/openharmony/vendor_asrmicro)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | +|汇顶GR5515-STARTER-KIT|GR5515|主要能力:
支持Bluetooth 5.1的单模低功耗蓝牙SoC,多功能按键和LED指示灯。|智能硬件,如手表、手环、价格类标签。|代码仓:
[device_soc_goodix](https://gitee.com/openharmony/device_soc_goodix)
[device_board_goodix](https://gitee.com/openharmony/device_board_goodix)
[vendor_goodix](https://gitee.com/openharmony/vendor_goodix)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| +|Niobe407|STM32F407IGT6|主要能力:
Niobe407开发板基于STM32F407芯片,该芯片集成Arm Cortex-M4 CPU,带 FPU,自适应实时加速器,频率高达 168 MHz。
适配案例:
[Niobe407适配案例](porting/porting-stm32f407-on-minisystem-eth.md)|智慧交通、工业控制等。|代码仓:
[device_soc_st](https://gitee.com/openharmony/device_soc_st)
[device_board_talkweb](https://gitee.com/openharmony/device_board_talkweb)
[vendor_talkweb](https://gitee.com/openharmony/vendor_talkweb)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | +|B91 Generic Starter Kit|TLSR9x|主要能力:
泰凌微公司的B91 Generic Starter Kit是一个可用于评估TLSR9系列芯片组的硬件平台,BLE,BLE Mesh,Zigbee 3.0, Thread和2.4GHz私有协议等多种适用于2.4GHz接口标准的应用程序都可以用它来进行开发。|智能家居、连接类模组。|代码仓:
[device_soc_telink](https://gitee.com/openharmony/device_soc_telink)
[device_board_telink](https://gitee.com/openharmony/device_board_telink)
[vendor_telink](https://gitee.com/openharmony/vendor_telink)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| +|cst85_wblink|cst85f01|主要能力:
cst85_wblink开发板是基于芯海科技cst85f01芯片,由芯海科技出品的一款高性能、多功能、高性价比AIoT SoC开发板。cst85_wblink开发板,集成双频WiFi + 双模蓝牙,支持标准的802.11 a/b/g/n/协议,支持BT/BLE 5.0协议,内建多种容量的RAM(最大992KB)和Flash(最大16MB),支持MIPI DSI及CSI,适用于快速开发物联网(IOT)及智能设备的Wi-Fi、蓝牙的应用。
适配案例:
[cst85_wblink适配案例](porting/porting-cst85f01-combo-demo.md)|物联网、智能家居等。|代码仓:
[device_soc_chipsea](https://gitee.com/openharmony/device_soc_chipsea)
[device_board_chipsea](https://gitee.com/openharmony/device_board_chipsea)
[vendor_chipsea](https://gitee.com/openharmony/vendor_chipsea)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | +|Neptune100| W800 |主要能力:
润和 Neptune100开发板基于联盛德W800芯片,是一款Wi-Fi &蓝牙双模SoC开发板,支持标准的802.11 b/g/n协议,内置完整的TCP/IP协议栈,集成蓝牙基带处理器,支持BT/BLE4.2协议;具备丰富的数字接口,内置QFlash、SPI、UART、GPIO、I2C、I2S、7816等;具备强大的安全特性,支持多种硬件加解密算法,内置DSP、浮点运算单元与安全引擎,支持代码安全权限设置,内置2MBFlash存储器,支持固件加密存储、固件签名、安全调试、安全升级等多项安全措施。
适配案例:
[Neptune100适配案例](porting/porting-w800-combo-demo.md)|物联网、智能家居、连接类产品。|代码仓:
[device_soc_winnermicro](https://gitee.com/openharmony/device_soc_winnermicro)
[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)
[vendor_hihope](https://gitee.com/openharmony/vendor_hihope)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | +|小凌派-RK2206| RK2206 |主要能力:
小凌派-RK2206开发板主控器为瑞芯微高性能、高性价比的RK2206芯片,搭载OpenHarmony轻量级操作系统,内置WiFi/AP功能、NFC功能、液晶显示接口以及E53接口,E53接口兼容各类传感器模块,便于多样化的IoT物联网应用;目前小凌派-RK2006开发板已经拥有20+个成熟的应用案例,以及完善的教学课程。|智慧城市、智能家居、智慧教学、智慧车载以及智慧医疗等。|代码仓:
[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)
[device_board_lockzhiner](https://gitee.com/openharmony/device_board_lockzhiner)
[vendor_lockzhiner](https://gitee.com/openharmony/vendor-lockzhiner)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | \ No newline at end of file -- GitLab From 2103a95e780181001b39b1359f0bb794fcb5814b Mon Sep 17 00:00:00 2001 From: zwx1138075 Date: Mon, 18 Jul 2022 14:28:55 +0800 Subject: [PATCH 042/868] =?UTF-8?q?=E7=BC=96=E8=AF=91=E5=BD=A2=E6=80=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=85=8D=E7=BD=AE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zwx1138075 --- .../quick-start/quickstart-build.md | 74 +++++++++---------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/zh-cn/device-dev/quick-start/quickstart-build.md b/zh-cn/device-dev/quick-start/quickstart-build.md index 0cc4275aab..8480cf4724 100644 --- a/zh-cn/device-dev/quick-start/quickstart-build.md +++ b/zh-cn/device-dev/quick-start/quickstart-build.md @@ -1,41 +1,41 @@ # 编译形态整体说明 - -**编译构建支持的产品列表** +[wifiiot_hispark_pegasus](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_pegasus/config.json) +**编译构建支持的产品列表** (点击链接可知道具体产品配置及其相关差异) | 编译形态 | 开发板 | 主芯片 | 内核 | 系统类型 | | ----------------------------- | --------------- | ----------- | ----------- | ----------- | -| neptune100 | neptune100 | winnermicro | liteos_m | mini | -| rk3568 | rk3568 | rockchip | linux | standard | -| rk3568_mini_system | rk3568 | rockchip | linux | standard | -| bearpi_hm_micro | bearpi_hm_micro | stm32mp1xx | liteos_a | small | -| bearpi_hm_nano | bearpi_hm_nano | hi3861v100 | liteos_m | mini | -| wifiiot_hispark_pegasus | hispark_pegasus | hi3861v100 | liteos_m | mini | -| ipcamera_hispark_aries | hispark_aries | hi3518ev300 | liteos_a | small | -| ipcamera_hispark_taurus | hispark_taurus | hi3516dv300 | liteos_a | small | -| ipcamera_hispark_taurus_linux | hispark_taurus | hi3516dv300 | linux | small | -| hispark_taurus_standard | hispark_taurus | hi3516dv300 | linux | standard | -| watchos | hispark_taurus | hi3516dv300 | linux | standard | -| hispark_phoenix | hispark_phoenix | hi3751v350 | linux | standard | -| hispark_taurus_mini_system | hispark_taurus | hi3516dv300 | liteos_a | mini | -| hispark_pegasus_mini_system | hispark_pegasus | hi3861v100 | liteos_m | mini | -| gr5515_sk_iotlink_demo | gr5515_sk | gr551x | liteos_m | mini | -| gr5515_sk_xts_demo | gr5515_sk | gr551x | liteos_m | mini | -| wifi_demo | dev_wifi_a | asr582x | liteos_m | mini | -| xts_demo | dev_wifi_a | asr582x | liteos_m | mini | -| display_demo | v200zr | bes2600 | liteos_m | mini | -| xts_demo | v200zr | bes2600 | liteos_m | mini | -| iotlink_demo | v200zr | bes2600 | liteos_m | mini | -| mini_distributed_music_player | v200zr | bes2600 | liteos_m | mini | -| niobe407 | niobe407 | stm32f4xx | liteos_m | mini | -| qemu_mini_system_demo | arm_mps2_an386 | qemu | liteos_m | mini | -| qemu_cksy_mini_system_demo | SmartL_E802 | qemu | liteos_m | mini | -| qemu_cm55_mini_system_demo | arm_mps3_an547 | qemu | liteos_m | mini | -| qemu_xtensa_mini_system_demo | esp32 | qemu | liteos_m | mini | -| qemu_riscv_mini_system_demo | ricsv32_virt | qemu | liteos_m | mini | -| qemu_ca7_mini_system_demo | arm_virt | qemu | liteos_a | small | -| qemu_small_system_demo | arm_virt | qemu | liteos_a | small | -| qemu-arm-linux-min | qemu-arm-linux | qemu | linux | standard | -| qemu-arm-linux-headless | qemu-arm-linux | qemu | linux | standard | -| iotlink_demo | cst85_wblink | chipsea | liteos_m | mini | -| dsoftbus_demo | cst85_wblink | chipsea | liteos_m | mini | -| xts_demo | cst85_wblink | chipsea | liteos_m | mini | +| [neptune100](https://gitee.com/openharmony/vendor_hihope/blob/master/neptune_iotlink_demo/config.json) | neptune100 | winnermicro | liteos_m | mini | +| [rk3568](https://gitee.com/openharmony/vendor_hihope/blob/master/rk3568/config.json) | rk3568 | rockchip | linux | standard | +| [rk3568_mini_system](https://gitee.com/openharmony/vendor_hihope/blob/master/rk3568_mini_system/config.json) | rk3568 | rockchip | linux | standard | +| [bearpi_hm_micro](https://gitee.com/openharmony/vendor_bearpi/blob/master/bearpi_hm_micro/config.json) | bearpi_hm_micro | stm32mp1xx | liteos_a | small | +| [bearpi_hm_nano](https://gitee.com/openharmony/vendor_bearpi/blob/master/bearpi_hm_nano/config.json) | bearpi_hm_nano | hi3861v100 | liteos_m | mini | +| [wifiiot_hispark_pegasus](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_pegasus/config.json) | hispark_pegasus | hi3861v100 | liteos_m | mini | +| [ipcamera_hispark_aries](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_aries/config.json) | hispark_aries | hi3518ev300 | liteos_a | small | +| [ipcamera_hispark_taurus](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_taurus/config.json) | hispark_taurus | hi3516dv300 | liteos_a | small | +| [ipcamera_hispark_taurus_linux](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_taurus_linux/config.json) | hispark_taurus | hi3516dv300 | linux | small | +| [hispark_taurus_standard](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_taurus_standard/config.json) | hispark_taurus | hi3516dv300 | linux | standard | +| [watchos](https://gitee.com/openharmony/vendor_hisilicon/blob/master/watchos/config.json) | hispark_taurus | hi3516dv300 | linux | standard | +| [hispark_phoenix](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_phoenix/config.json) | hispark_phoenix | hi3751v350 | linux | standard | +| [hispark_taurus_mini_system](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_taurus_mini_system/config.json) | hispark_taurus | hi3516dv300 | liteos_a | mini | +| [hispark_pegasus_mini_system](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_pegasus_mini_system/config.json) | hispark_pegasus | hi3861v100 | liteos_m | mini | +| [gr5515_sk_iotlink_demo](https://gitee.com/openharmony/vendor_goodix/blob/master/gr5515_sk_iotlink_demo/config.json) | gr5515_sk | gr551x | liteos_m | mini | +| [gr5515_sk_xts_demo](https://gitee.com/openharmony/vendor_goodix/blob/master/gr5515_sk_xts_demo/config.json) | gr5515_sk | gr551x | liteos_m | mini | +| [wifi_demo](https://gitee.com/openharmony/vendor_asrmicro/blob/master/wifi_demo/config.json) | dev_wifi_a | asr582x | liteos_m | mini | +| [xts_demo](https://gitee.com/openharmony/vendor_asrmicro/blob/master/xts_demo/config.json) | dev_wifi_a | asr582x | liteos_m | mini | +| [display_demo](https://gitee.com/openharmony/vendor_bestechnic/blob/master/display_demo/config.json) | v200zr | bes2600 | liteos_m | mini | +| [xts_demo](https://gitee.com/openharmony/vendor_bestechnic/blob/master/xts_demo/config.json) | v200zr | bes2600 | liteos_m | mini | +| [iotlink_demo](https://gitee.com/openharmony/vendor_bestechnic/blob/master/iotlink_demo/config.json) | v200zr | bes2600 | liteos_m | mini | +| [mini_distributed_music_player](https://gitee.com/openharmony/vendor_bestechnic/blob/master/mini_distributed_music_player/config.json) | v200zr | bes2600 | liteos_m | mini | +| [niobe407](https://gitee.com/openharmony/vendor_talkweb/blob/master/niobe407/config.json) | niobe407 | stm32f4xx | liteos_m | mini | +| [qemu_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_mini_system_demo/config.json) | arm_mps2_an386 | qemu | liteos_m | mini | +| [qemu_cksy_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_cksy_mini_system_demo/config.json) | SmartL_E802 | qemu | liteos_m | mini | +| [qemu_cm55_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_cm55_mini_system_demo/config.json) | arm_mps3_an547 | qemu | liteos_m | mini | +| [qemu_xtensa_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_xtensa_mini_system_demo/config.json) | esp32 | qemu | liteos_m | mini | +| [qemu_riscv_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_riscv_mini_system_demo/config.json) | ricsv32_virt | qemu | liteos_m | mini | +| [qemu_ca7_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_ca7_mini_system_demo/config.json) | arm_virt | qemu | liteos_a | small | +| [qemu_small_system_demo]https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_small_system_demo/config.json() | arm_virt | qemu | liteos_a | small | +| [qemu_arm_linux_min](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_arm_linux_min/config.json) | qemu-arm-linux | qemu | linux | standard | +| [qemu_arm_linux_headless](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_arm_linux_headless/config.json) | qemu-arm-linux | qemu | linux | standard | +| [iotlink_demo](https://gitee.com/openharmony/vendor_chipsea/blob/master/iotlink_demo/config.json) | cst85_wblink | chipsea | liteos_m | mini | +| [dsoftbus_demo](https://gitee.com/openharmony/vendor_chipsea/blob/master/dsoftbus_demo/config.json) | cst85_wblink | chipsea | liteos_m | mini | +| [xts_demo](https://gitee.com/openharmony/vendor_chipsea/blob/master/xts_demo/config.json) | cst85_wblink | chipsea | liteos_m | mini | -- GitLab From 9f1f817472a9135ea30e5ddfbabea877ea39cec8 Mon Sep 17 00:00:00 2001 From: zwx1138075 Date: Mon, 18 Jul 2022 14:31:52 +0800 Subject: [PATCH 043/868] =?UTF-8?q?=E7=BC=96=E8=AF=91=E5=BD=A2=E6=80=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=85=8D=E7=BD=AE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zwx1138075 --- zh-cn/device-dev/quick-start/quickstart-build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/quick-start/quickstart-build.md b/zh-cn/device-dev/quick-start/quickstart-build.md index 8480cf4724..b9b2c08d3e 100644 --- a/zh-cn/device-dev/quick-start/quickstart-build.md +++ b/zh-cn/device-dev/quick-start/quickstart-build.md @@ -33,7 +33,7 @@ | [qemu_xtensa_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_xtensa_mini_system_demo/config.json) | esp32 | qemu | liteos_m | mini | | [qemu_riscv_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_riscv_mini_system_demo/config.json) | ricsv32_virt | qemu | liteos_m | mini | | [qemu_ca7_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_ca7_mini_system_demo/config.json) | arm_virt | qemu | liteos_a | small | -| [qemu_small_system_demo]https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_small_system_demo/config.json() | arm_virt | qemu | liteos_a | small | +| [qemu_small_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_small_system_demo/config.json) | arm_virt | qemu | liteos_a | small | | [qemu_arm_linux_min](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_arm_linux_min/config.json) | qemu-arm-linux | qemu | linux | standard | | [qemu_arm_linux_headless](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_arm_linux_headless/config.json) | qemu-arm-linux | qemu | linux | standard | | [iotlink_demo](https://gitee.com/openharmony/vendor_chipsea/blob/master/iotlink_demo/config.json) | cst85_wblink | chipsea | liteos_m | mini | -- GitLab From b4f498787493c6b7b9908951b63d072fd4ae0b84 Mon Sep 17 00:00:00 2001 From: zwx1138075 Date: Mon, 18 Jul 2022 14:36:58 +0800 Subject: [PATCH 044/868] =?UTF-8?q?=E7=BC=96=E8=AF=91=E5=BD=A2=E6=80=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=85=8D=E7=BD=AE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zwx1138075 --- zh-cn/device-dev/quick-start/quickstart-build.md | 1 - 1 file changed, 1 deletion(-) diff --git a/zh-cn/device-dev/quick-start/quickstart-build.md b/zh-cn/device-dev/quick-start/quickstart-build.md index b9b2c08d3e..e1a6c4e90d 100644 --- a/zh-cn/device-dev/quick-start/quickstart-build.md +++ b/zh-cn/device-dev/quick-start/quickstart-build.md @@ -1,5 +1,4 @@ # 编译形态整体说明 -[wifiiot_hispark_pegasus](https://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_pegasus/config.json) **编译构建支持的产品列表** (点击链接可知道具体产品配置及其相关差异) | 编译形态 | 开发板 | 主芯片 | 内核 | 系统类型 | -- GitLab From 9cf3d74e8a5d1ed7b78aa2976b57051933e1a39c Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Mon, 18 Jul 2022 14:38:17 +0800 Subject: [PATCH 045/868] update ts-universal-attributes-menu.md Signed-off-by: ester.zhou --- .../arkui-ts/ts-universal-attributes-menu.md | 40 +++++++++++-------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/en/application-dev/reference/arkui-ts/ts-universal-attributes-menu.md b/en/application-dev/reference/arkui-ts/ts-universal-attributes-menu.md index d37d1d1f14..d322c63560 100644 --- a/en/application-dev/reference/arkui-ts/ts-universal-attributes-menu.md +++ b/en/application-dev/reference/arkui-ts/ts-universal-attributes-menu.md @@ -1,7 +1,10 @@ # Menu Control -> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE** -> The APIs of this module are supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version. +This module provides APIs for binding a menu – a vertical list of items – to a component. This menu is displayed by long-pressing, clicking, or right-clicking the component. + +> **NOTE** +> +> The APIs of this module are supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version. ## Required Permissions @@ -12,29 +15,30 @@ None ## Attributes -| Name | Type | Default Value | Description | -| ---------------------------- | ---------------------------------------- | ------------- | ---------------------------------------- | -| bindMenu | Array8+ | - | Menu bound to the component, which is displayed when you click the component. Textual and custom menu items are supported. | -| bindContextMenu8+ | content: [CustomBuilder](../../ui/ts-types.md)
responseType: ResponseType | - | Context menu bound to the component, which is displayed when you long-press or right-click the component. Only custom menu items are supported. | +| Name | Type | Default Value | Description | +| ---------------------------- | ---------------------------------------- | ---- | ---------------------------------- | +| bindMenu | Array8+ | - | Menu bound to the component, which is displayed when you click the component. Textual and custom menu items are supported.| +| bindContextMenu8+ | content: [CustomBuilder](../../ui/ts-types.md),
responseType: ResponseType | - | Context menu bound to the component, which is displayed when you long-press or right-click the component. Only custom menu items are supported. | - MenuItem - | Name | Type | Description | - | ------ | ------------- | ---------------------------------------- | - | value | string | Menu item text. | - | action | () => void | Action triggered when a menu item is clicked. | + | Name | Type | Description | + | ------ | ----------------------- | ----------- | + | value | string | Menu item text. | + | action | () => void | Action triggered when a menu item is clicked.| - ResponseType8+ - | Value | Description | - | ---------- | ---------------------------------------- | - | LongPress | The menu is displayed when the component is long-pressed. | - | RightClick | The menu is displayed when the component is right-clicked. | + | Value | Description | + | ---------- | ------------- | + | LongPress | The menu is displayed when the component is long-pressed. | + | RightClick | The menu is displayed when the component is right-clicked.| ## Example #### Menu with Textual Menu Items -``` +```ts +// xxx.ets @Entry @Component struct MenuExample { @@ -66,7 +70,8 @@ struct MenuExample { #### Menu with Custom Menu Items -``` +```ts +// xxx.ets import router from '@system.router'; @Entry @@ -116,7 +121,8 @@ struct MenuExample { #### Context Menu (Displayed Upon Right-Clicking) -``` +```ts +// xxx.ets @Entry @Component struct ContextMenuExample { -- GitLab From 8af56f21919c326fff41c4b4093cb861acf17e67 Mon Sep 17 00:00:00 2001 From: rahul Date: Wed, 13 Jul 2022 15:36:25 +0530 Subject: [PATCH 046/868] js-api-audio-md issues fix Signed-off-by: rahul --- .../reference/apis/js-apis-audio.md | 189 +++++++++++++++--- .../reference/apis/js-apis-audio.md | 189 +++++++++++++++--- 2 files changed, 322 insertions(+), 56 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-audio.md b/en/application-dev/reference/apis/js-apis-audio.md index 894370d603..68d01ed3f4 100644 --- a/en/application-dev/reference/apis/js-apis-audio.md +++ b/en/application-dev/reference/apis/js-apis-audio.md @@ -2273,7 +2273,43 @@ Writes the buffer. This API uses an asynchronous callback to return the result. ``` import audio from '@ohos.multimedia.audio'; import fileio from '@ohos.fileio'; +import featureAbility from '@ohos.ability.featureAbility' +var audioStreamInfo = { + samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000, + channels: audio.AudioChannel.CHANNEL_2, + sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE, + encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW +} + +var audioRendererInfo = { + content: audio.ContentType.CONTENT_TYPE_SPEECH, + usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION + rendererFlags: 1 +} + +var audioRendererOptions = { + streamInfo: audioStreamInfo, + rendererInfo: audioRendererInfo +} +var audioRenderer; +audio.createAudioRenderer(audioRendererOptions).then((data)=> { + audioRenderer = data; + console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS'); + }).catch((err) => { + console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message); + }); +var bufferSize; +audioRenderer.getBufferSize().then((data)=> { + console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data); + bufferSize = data; + }).catch((err) => { + console.info.('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message); + }); +console.info('Buffer size:'+bufferSize); +var context = featureAbility.getContext(); +var path = await context.getCacheDir(); +var filePath = path+"/StarWars10s-2C-48000-4SW.wav" let ss = fileio.createStreamSync(filePath, 'r'); let buf = new ArrayBuffer(bufferSize); ss.readSync(buf); @@ -2305,7 +2341,42 @@ Writes the buffer. This API uses a promise to return the result. ``` import audio from '@ohos.multimedia.audio'; import fileio from '@ohos.fileio'; +import featureAbility from '@ohos.ability.featureAbility' + +var audioStreamInfo = { + samplingRate:audio.AudioSamplingRate.SAMPLE_RATE_48000, + channels:audio.AudioChannel.CHANNEL_2, + sampleFormat.audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE, + encodingType.audio.AudioEncodingType.ENCODING_TYPE_RAW +} + +var audioRendererInfo = { + content: audio.ContentType.CONTENT_TYPE_SPEECH, + usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION, + rendererFlags: 1 +} +var audioRendererOptions = { + streamInfo: audioStreamInfo, + rendererInfo: audioRendererInfo +} +var audioRenderer; +audio.createAudioRenderer(audioRendererOptions).then((data) => { + audioRenderer = data; + console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS'); + }).catch((err) => { + console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message); + }); +var bufferSize; +audioRenderer.getBufferSize().then((data) => { + console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data); + bufferSize = data; + }).catch((err) => { + console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message); + }); +console.info('BufferSize: ' + bufferSize); +var context = featureAbility.getContext(); +var path = await context.getCacheDir(); var filePath = 'data/StarWars10s-2C-48000-4SW.wav'; let ss = fileio.createStreamSync(filePath, 'r'); let buf = new ArrayBuffer(bufferSize); @@ -2408,12 +2479,39 @@ Obtains a reasonable minimum buffer size in bytes for rendering. This API uses a **Example** ``` +import audio from '@ohos.multimedia.audio'; +import fileio from '@ohos.fileio'; + +var audioStreamInfo = { + samplingRate:audio.AudioSamplingRate.SAMPLE_RATE_48000, + channels:audio.AudioChannel.CHANNEL_2, + sampleFormat.audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE, + encodingType.audio.AudioEncodingType.ENCODING_TYPE_RAW +} + +var audioRendererInfo = { + content: audio.ContentType.CONTENT_TYPE_SPEECH, + usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION, + rendererFlags: 1 +} + +var audioRendererOptions = { + streamInfo: audioStreamInfo, + rendererInfo: audioRendererInfo +} +var audioRenderer; +audio.createAudioRenderer(audioRendererOptions).then((data) => { + audioRenderer = data; + console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS'); + }).catch((err) => { + console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message); + }); var bufferSize; -await audioRenderer.getBufferSize().then(async function (data) => { - console.info('AudioFrameworkRenderLog: getBufferSize :SUCCESS '+data); +audioRenderer.getBufferSize().then((data) => { + console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data); bufferSize=data; }).catch((err) => { - console.info('AudioFrameworkRenderLog: getBufferSize :ERROR : '+err.message); + console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message); }); ``` @@ -2542,7 +2640,8 @@ Sets the audio interruption mode for the application. This API uses a promise to **Example** ``` -audioManager.setInterruptMode(audio.InterruptType.SHARE_MODE).then(() => { +const audioManager = audio.getAudioManager(); +audioManager.setInterruptMode(audio.InterruptMode.SHARE_MODE).then(() => { console.log('Promise returned to indicate a successful volume setting.'); }); ``` @@ -2564,7 +2663,8 @@ Sets the audio interruption mode for the application. This API uses a callback t **Example** ``` -audioManager.setInterruptMode(audio.InterruptType.SHARE_MODE,()=>{ +const audioManager = audio.getAudioManager(); +audioManager.setInterruptMode(audio.InterruptMode.SHARE_MODE,()=>{ console.log('Callback returned to indicate a successful volume setting.'); }); ``` @@ -2654,7 +2754,7 @@ Subscribes to mark reached events. When the number of frames rendered reaches th ``` audioRenderer.on('markReach', 1000, (position) => { - if (position == "1000") { + if (position == 1000) { console.log('ON Triggered successfully'); } }); @@ -2701,7 +2801,7 @@ Subscribes to period reached events. When the period of frame rendering reaches ``` audioRenderer.on('periodReach', 1000, (position) => { - if (position == "1000") { + if (position == 1000) { console.log('ON Triggered successfully'); } }); @@ -2935,13 +3035,35 @@ Starts capturing. This API uses a promise to return the result. **Example** ``` +import audio from '@ohos.multimedia.audio'; +import fileio from '@ohos.fileio'; + +var audioStreamInfo = { + samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100, + channels: audio.AudioChannel.CHANNEL_2, + sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, + encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW +} + +var audioCapturerInfo = { + source: audio.SourceType.SOURCE_TYPE_MIC, + capturerFlags = 1 +} + +var audioCapturer; +audio.createAudioCapturer(audioCapturerOptions).then((data) => { + audioCapturer = data; + console.info('AudioFrameworkRecLog: AudioCapturer Created: SUCCESS'); + }).catch((err) => { + console.info('AudioFrameworkRecLog: AudioCapturer Created: ERROR: '+err.message); + }); audioCapturer.start().then(() => { console.info('AudioFrameworkRecLog: ---------START---------'); - console.info('AudioFrameworkRecLog: Capturer started :SUCCESS '); - console.info('AudioFrameworkRecLog: AudioCapturer : STATE : '+audioCapturer.state); - console.info('AudioFrameworkRecLog: Capturer started :SUCCESS '); + console.info('AudioFrameworkRecLog: Capturer started: SUCCESS'); + console.info('AudioFrameworkRecLog: AudioCapturer: STATE: '+audioCapturer.state); + console.info('AudioFrameworkRecLog: Capturer started: SUCCESS '); if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) { - stateFlag = true; + console.info('AudioFrameworkRecLog: AudioCapturer is in Running State'); } }).catch((err) => { console.info('AudioFrameworkRecLog: Capturer start :ERROR : '+err.message); @@ -2994,15 +3116,13 @@ Stops capturing. This API uses a promise to return the result. ``` audioCapturer.stop().then(() => { - console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------'); - console.info('AudioFrameworkRecLog: Capturer stopped : SUCCESS'); + console.info('AudioFrameworkRecLog: ---------STOP RECORD---------'); + console.info('AudioFrameworkRecLog: Capturer stopped: SUCCESS'); if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){ - stateFlag=true; - console.info('AudioFrameworkRecLog: resultFlag : '+stateFlag); + console.info('AudioFrameworkRecLog: State is Stopped': '); } }).catch((err) => { - console.info('AudioFrameworkRecLog: Capturer stop:ERROR : '+err.message); - stateFlag=false; + console.info('AudioFrameworkRecLog: Capturer stop: ERROR: '+err.message); }); ``` @@ -3054,11 +3174,9 @@ audioCapturer.release().then(() => { console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------'); console.info('AudioFrameworkRecLog: Capturer release : SUCCESS'); console.info('AudioFrameworkRecLog: AudioCapturer : STATE : '+audioCapturer.state); - stateFlag=true; console.info('AudioFrameworkRecLog: stateFlag : '+stateFlag); }).catch((err) => { - console.info('AudioFrameworkRecLog: Capturer stop:ERROR : '+err.message); - stateFlag=false + console.info('AudioFrameworkRecLog: Capturer stop: ERROR: '+err.message); }); ``` @@ -3082,6 +3200,13 @@ Reads the buffer. This API uses an asynchronous callback to return the result. **Example** ``` +var bufferSize; +audioCapturer.getBufferSize().then((data) => { + console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS '+data); + bufferSize = data; + }).catch((err) => { + console.info('AudioFrameworkRecLog: getBufferSize: EROOR: '+err.message); + }); audioCapturer.read(bufferSize, true, async(err, buffer) => { if (!err) { console.log("Success in reading the buffer data"); @@ -3114,6 +3239,14 @@ Reads the buffer. This API uses a promise to return the result. **Example** ``` +var bufferSize; +audioCapturer.getBufferSize().then((data) => { + console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS '+data); + bufferSize = data; + }).catch((err) => { + console.info('AudioFrameworkRecLog: getBufferSize: ERROR '+err.message); + }); +console.info('Buffer size: ' + bufferSize); audioCapturer.read(bufferSize, true).then((buffer) => { console.info('buffer read successfully'); }).catch((err) => { @@ -3217,12 +3350,12 @@ Obtains a reasonable minimum buffer size in bytes for capturing. This API uses a **Example** ``` -await audioCapturer.getBufferSize().then(async function (bufferSize) { - console.info('AudioFrameworkRecordLog: getBufferSize :SUCCESS '+ bufferSize); - var buffer = await audioCapturer.read(bufferSize, true); - console.info('Buffer read is ' + buffer ); - }).catch((err) => { - console.info('AudioFrameworkRecordLog: getBufferSize :ERROR : '+err.message); +var bufferSize; +audioCapturer.getBufferSize().then((data) => { + console.info('AudioFrameworkRecLog: getBufferSize :SUCCESS '+ data); + bufferSize = data; +}).catch((err) => { + console.info('AudioFrameworkRecLog: getBufferSize :ERROR : '+ err.message); }); ``` @@ -3247,7 +3380,7 @@ Subscribes to mark reached events. When the number of frames captured reaches th ``` audioCapturer.on('markReach', 1000, (position) => { - if (position == "1000") { + if (position == 1000) { console.log('ON Triggered successfully'); } }); @@ -3293,7 +3426,7 @@ Subscribes to mark reached events. When the period of frame capturing reaches th ``` audioCapturer.on('periodReach', 1000, (position) => { - if (position == "1000") { + if (position == 1000) { console.log('ON Triggered successfully'); } }); diff --git a/zh-cn/application-dev/reference/apis/js-apis-audio.md b/zh-cn/application-dev/reference/apis/js-apis-audio.md index 447df9f4cb..ae33129b70 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-audio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-audio.md @@ -2276,7 +2276,43 @@ write(buffer: ArrayBuffer, callback: AsyncCallback\): void ``` import audio from '@ohos.multimedia.audio'; import fileio from '@ohos.fileio'; +import featureAbility from '@ohos.ability.featureAbility' +var audioStreamInfo = { + samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000, + channels: audio.AudioChannel.CHANNEL_2, + sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE, + encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW +} + +var audioRendererInfo = { + content: audio.ContentType.CONTENT_TYPE_SPEECH, + usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION + rendererFlags: 1 +} + +var audioRendererOptions = { + streamInfo: audioStreamInfo, + rendererInfo: audioRendererInfo +} +var audioRenderer; +audio.createAudioRenderer(audioRendererOptions).then((data)=> { + audioRenderer = data; + console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS'); + }).catch((err) => { + console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message); + }); +var bufferSize; +audioRenderer.getBufferSize().then((data)=> { + console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data); + bufferSize = data; + }).catch((err) => { + console.info.('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message); + }); +console.info('Buffer size:'+bufferSize); +var context = featureAbility.getContext(); +var path = await context.getCacheDir(); +var filePath = path+"/StarWars10s-2C-48000-4SW.wav" let ss = fileio.createStreamSync(filePath, 'r'); let buf = new ArrayBuffer(bufferSize); ss.readSync(buf); @@ -2308,7 +2344,42 @@ write(buffer: ArrayBuffer): Promise\ ``` import audio from '@ohos.multimedia.audio'; import fileio from '@ohos.fileio'; +import featureAbility from '@ohos.ability.featureAbility' + +var audioStreamInfo = { + samplingRate:audio.AudioSamplingRate.SAMPLE_RATE_48000, + channels:audio.AudioChannel.CHANNEL_2, + sampleFormat.audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE, + encodingType.audio.AudioEncodingType.ENCODING_TYPE_RAW +} + +var audioRendererInfo = { + content: audio.ContentType.CONTENT_TYPE_SPEECH, + usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION, + rendererFlags: 1 +} +var audioRendererOptions = { + streamInfo: audioStreamInfo, + rendererInfo: audioRendererInfo +} +var audioRenderer; +audio.createAudioRenderer(audioRendererOptions).then((data) => { + audioRenderer = data; + console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS'); + }).catch((err) => { + console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message); + }); +var bufferSize; +audioRenderer.getBufferSize().then((data) => { + console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data); + bufferSize = data; + }).catch((err) => { + console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message); + }); +console.info('BufferSize: ' + bufferSize); +var context = featureAbility.getContext(); +var path = await context.getCacheDir(); var filePath = 'data/StarWars10s-2C-48000-4SW.wav'; let ss = fileio.createStreamSync(filePath, 'r'); let buf = new ArrayBuffer(bufferSize); @@ -2411,12 +2482,39 @@ getBufferSize(): Promise\ **示例:** ``` +import audio from '@ohos.multimedia.audio'; +import fileio from '@ohos.fileio'; + +var audioStreamInfo = { + samplingRate:audio.AudioSamplingRate.SAMPLE_RATE_48000, + channels:audio.AudioChannel.CHANNEL_2, + sampleFormat.audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE, + encodingType.audio.AudioEncodingType.ENCODING_TYPE_RAW +} + +var audioRendererInfo = { + content: audio.ContentType.CONTENT_TYPE_SPEECH, + usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION, + rendererFlags: 1 +} + +var audioRendererOptions = { + streamInfo: audioStreamInfo, + rendererInfo: audioRendererInfo +} +var audioRenderer; +audio.createAudioRenderer(audioRendererOptions).then((data) => { + audioRenderer = data; + console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS'); + }).catch((err) => { + console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message); + }); var bufferSize; -await audioRenderer.getBufferSize().then(async function (data) => { - console.info('AudioFrameworkRenderLog: getBufferSize :SUCCESS '+data); +audioRenderer.getBufferSize().then((data) => { + console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data); bufferSize=data; }).catch((err) => { - console.info('AudioFrameworkRenderLog: getBufferSize :ERROR : '+err.message); + console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message); }); ``` @@ -2545,7 +2643,8 @@ setInterruptMode(interruptMode: InterruptMode): Promise<void> **示例:** ``` -audioManager.setInterruptMode(audio.InterruptType.SHARE_MODE).then(() => { +const audioManager = audio.getAudioManager(); +audioManager.setInterruptMode(audio.InterruptMode.SHARE_MODE).then(() => { console.log('Promise returned to indicate a successful volume setting.'); }); ``` @@ -2567,7 +2666,8 @@ setInterruptMode(interruptMode: InterruptMode, callback: Callback\): void **示例:** ``` -audioManager.setInterruptMode(audio.InterruptType.SHARE_MODE,()=>{ +const audioManager = audio.getAudioManager(); +audioManager.setInterruptMode(audio.InterruptMode.SHARE_MODE,()=>{ console.log('Callback returned to indicate a successful volume setting.'); }); ``` @@ -2657,7 +2757,7 @@ on(type: 'markReach', frame: number, callback: (position: number) => {}): void ``` audioRenderer.on('markReach', 1000, (position) => { - if (position == "1000") { + if (position == 1000) { console.log('ON Triggered successfully'); } }); @@ -2704,7 +2804,7 @@ on(type: "periodReach", frame: number, callback: (position: number) => {}): void ``` audioRenderer.on('periodReach', 1000, (position) => { - if (position == "1000") { + if (position == 1000) { console.log('ON Triggered successfully'); } }); @@ -2938,13 +3038,35 @@ start(): Promise **示例:** ``` +import audio from '@ohos.multimedia.audio'; +import fileio from '@ohos.fileio'; + +var audioStreamInfo = { + samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100, + channels: audio.AudioChannel.CHANNEL_2, + sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, + encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW +} + +var audioCapturerInfo = { + source: audio.SourceType.SOURCE_TYPE_MIC, + capturerFlags = 1 +} + +var audioCapturer; +audio.createAudioCapturer(audioCapturerOptions).then((data) => { + audioCapturer = data; + console.info('AudioFrameworkRecLog: AudioCapturer Created: SUCCESS'); + }).catch((err) => { + console.info('AudioFrameworkRecLog: AudioCapturer Created: ERROR: '+err.message); + }); audioCapturer.start().then(() => { console.info('AudioFrameworkRecLog: ---------START---------'); - console.info('AudioFrameworkRecLog: Capturer started :SUCCESS '); - console.info('AudioFrameworkRecLog: AudioCapturer : STATE : '+audioCapturer.state); - console.info('AudioFrameworkRecLog: Capturer started :SUCCESS '); + console.info('AudioFrameworkRecLog: Capturer started: SUCCESS'); + console.info('AudioFrameworkRecLog: AudioCapturer: STATE: '+audioCapturer.state); + console.info('AudioFrameworkRecLog: Capturer started: SUCCESS '); if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) { - stateFlag = true; + console.info('AudioFrameworkRecLog: AudioCapturer is in Running State'); } }).catch((err) => { console.info('AudioFrameworkRecLog: Capturer start :ERROR : '+err.message); @@ -2997,15 +3119,13 @@ stop(): Promise ``` audioCapturer.stop().then(() => { - console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------'); - console.info('AudioFrameworkRecLog: Capturer stopped : SUCCESS'); + console.info('AudioFrameworkRecLog: ---------STOP RECORD---------'); + console.info('AudioFrameworkRecLog: Capturer stopped: SUCCESS'); if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){ - stateFlag=true; - console.info('AudioFrameworkRecLog: resultFlag : '+stateFlag); + console.info('AudioFrameworkRecLog: State is Stopped': '); } }).catch((err) => { - console.info('AudioFrameworkRecLog: Capturer stop:ERROR : '+err.message); - stateFlag=false; + console.info('AudioFrameworkRecLog: Capturer stop: ERROR: '+err.message); }); ``` @@ -3057,11 +3177,9 @@ audioCapturer.release().then(() => { console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------'); console.info('AudioFrameworkRecLog: Capturer release : SUCCESS'); console.info('AudioFrameworkRecLog: AudioCapturer : STATE : '+audioCapturer.state); - stateFlag=true; console.info('AudioFrameworkRecLog: stateFlag : '+stateFlag); }).catch((err) => { - console.info('AudioFrameworkRecLog: Capturer stop:ERROR : '+err.message); - stateFlag=false + console.info('AudioFrameworkRecLog: Capturer stop: ERROR: '+err.message); }); ``` @@ -3085,6 +3203,13 @@ read(size: number, isBlockingRead: boolean, callback: AsyncCallback { + console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS '+data); + bufferSize = data; + }).catch((err) => { + console.info('AudioFrameworkRecLog: getBufferSize: EROOR: '+err.message); + }); audioCapturer.read(bufferSize, true, async(err, buffer) => { if (!err) { console.log("Success in reading the buffer data"); @@ -3117,6 +3242,14 @@ read(size: number, isBlockingRead: boolean): Promise **示例:** ``` +var bufferSize; +audioCapturer.getBufferSize().then((data) => { + console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS '+data); + bufferSize = data; + }).catch((err) => { + console.info('AudioFrameworkRecLog: getBufferSize: ERROR '+err.message); + }); +console.info('Buffer size: ' + bufferSize); audioCapturer.read(bufferSize, true).then((buffer) => { console.info('buffer read successfully'); }).catch((err) => { @@ -3220,12 +3353,12 @@ getBufferSize(): Promise **示例:** ``` -await audioCapturer.getBufferSize().then(async function (bufferSize) { - console.info('AudioFrameworkRecordLog: getBufferSize :SUCCESS '+ bufferSize); - var buffer = await audioCapturer.read(bufferSize, true); - console.info('Buffer read is ' + buffer ); - }).catch((err) => { - console.info('AudioFrameworkRecordLog: getBufferSize :ERROR : '+err.message); +var bufferSize; +audioCapturer.getBufferSize().then((data) => { + console.info('AudioFrameworkRecLog: getBufferSize :SUCCESS '+ data); + bufferSize = data; +}).catch((err) => { + console.info('AudioFrameworkRecLog: getBufferSize :ERROR : '+ err.message); }); ``` @@ -3250,7 +3383,7 @@ on(type: 'markReach', frame: number, callback: (position: number) => {}): void ``` audioCapturer.on('markReach', 1000, (position) => { - if (position == "1000") { + if (position == 1000) { console.log('ON Triggered successfully'); } }); @@ -3296,7 +3429,7 @@ on(type: "periodReach", frame: number, callback: (position: number) => {}): void ``` audioCapturer.on('periodReach', 1000, (position) => { - if (position == "1000") { + if (position == 1000) { console.log('ON Triggered successfully'); } }); -- GitLab From 5ddb021faca8f67c038b1a08dc14499aca75dd50 Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Mon, 18 Jul 2022 15:02:00 +0800 Subject: [PATCH 047/868] update docs Signed-off-by: ester.zhou --- .../arkui-ts/ts-basic-components-search.md | 5 +- ...ts-transition-animation-shared-elements.md | 9 +-- .../arkui-ts/ts-universal-events-click.md | 43 ++++++----- .../arkui-ts/ts-universal-events-drag-drop.md | 23 +++--- .../arkui-ts/ts-universal-events-key.md | 77 ++++++++++--------- .../arkui-ts/ts-universal-events-touch.md | 66 ++++++++-------- .../arkui-ts/ts-universal-mouse-key.md | 77 ++++++++++--------- 7 files changed, 154 insertions(+), 146 deletions(-) diff --git a/en/application-dev/reference/arkui-ts/ts-basic-components-search.md b/en/application-dev/reference/arkui-ts/ts-basic-components-search.md index 7ea05b944a..386f5aa23c 100644 --- a/en/application-dev/reference/arkui-ts/ts-basic-components-search.md +++ b/en/application-dev/reference/arkui-ts/ts-basic-components-search.md @@ -1,10 +1,10 @@ # Search -The **\** component provides an input area for users to search. > **NOTE** > > This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version. +The **\** component provides an input area for users to search. ## Required Permissions @@ -24,7 +24,7 @@ Search(options?: { value?: string; placeholder?: string; icon?: string; controll | -------- | -------- | -------- | -------- | -------- | | value | string | No| - | Text input in the search text box. | | placeholder | string | No | - | Text displayed when there is no input. | - | icon | string | No| - | Path to the search icon. By default, the system search icon is used. The supported icon formats are svg, jpg, and png. | + | icon | string | No| - | Path to the search icon. By default, the system search icon is used. The supported icon formats are .svg, .jpg, and .png. | | controller | SearchController | No| - | Controller. | @@ -36,7 +36,6 @@ Search(options?: { value?: string; placeholder?: string; icon?: string; controll | placeholderColor | [ResourceColor](../../ui/ts-types.md) | - | Placeholder text color. | | placeholderFont | [Font](../../ui/ts-types.md) | - | Placeholder text style. | | textFont | [Font](../../ui/ts-types.md) | - | Text font for the search text box. | -| copyOption9+ | boolean\|[CopyOption](ts-basic-components-text.md) | true | Whether copy and paste is allowed. | ## Events diff --git a/en/application-dev/reference/arkui-ts/ts-transition-animation-shared-elements.md b/en/application-dev/reference/arkui-ts/ts-transition-animation-shared-elements.md index 4c39157590..0ebc3483be 100644 --- a/en/application-dev/reference/arkui-ts/ts-transition-animation-shared-elements.md +++ b/en/application-dev/reference/arkui-ts/ts-transition-animation-shared-elements.md @@ -1,21 +1,20 @@ # Transition of Shared Elements +Shared element transition can be used for transition between pages, for example, transition from an image on the current page to the next page. > **NOTE** +> > This animationis supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version. -Transition of shared elements can be used for transition between pages, for example, transition from an image on the current page to the next page. - - -## Type +## Attributes | Name | Type | Default Value | Description | | -------- | -------- | -------- | -------- | | sharedTransition | id: string,
options?: Object | - | If the same ID is configured for a component on the two pages, this shared component is transited. If this parameter is set to an empty string, no shared elements are transited. | - options parameters - | Name | Type | Default Value | Mandatory | Description | + | Name | Type | Default Value | Mandatory | Description | | -------- | -------- | -------- | -------- | -------- | | duration | number | 1000 | No | Animation duration, in ms. The default duration is 1000 ms. | | curve | Curve \| Curves | Linear | No | The default curve is linear. For details about the valid values, see **Curve enums**. | diff --git a/en/application-dev/reference/arkui-ts/ts-universal-events-click.md b/en/application-dev/reference/arkui-ts/ts-universal-events-click.md index 086a32f23b..cc1d167f4d 100644 --- a/en/application-dev/reference/arkui-ts/ts-universal-events-click.md +++ b/en/application-dev/reference/arkui-ts/ts-universal-events-click.md @@ -1,10 +1,11 @@ # Click Event +A click event is triggered when a component is clicked. -> **NOTE**
+> **NOTE** +> > This event is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version. - ## Required Permissions None @@ -12,12 +13,12 @@ None ## Events -| Name | Bubble Supported | Description | +| Name | Bubbling Supported | Description | | -------- | -------- | -------- | | onClick(callback: (event?: ClickEvent) => void) | No | Called when a click event occurs. For details about the event parameters, see [ClickEvent](#clickevent). | -### ClickEvent +## ClickEvent | Name | Type | Description | | -------- | -------- | -------- | @@ -25,30 +26,30 @@ None | screenY | number | Y coordinate of the click relative to the upper edge of the screen. | | x | number | X coordinate of the click relative to the left edge of the component being clicked. | | y | number | Y coordinate of the click relative to the upper edge of the component being clicked. | -| target8+ | EventTarget | Target element that is clicked. | +| target8+ | [EventTarget](#eventtarget8) | Target element that is clicked. | | timestamp | number | Timestamp of the event. | -- EventTarget8+ attributes +## EventTarget8+ - | Name | Type | Description | - | -------- | -------- | -------- | - | area | Area | Area information of the target element.| +| Name | Type | Description | +| -------- | -------- | -------- | +| area | [Area](#area8) | Area information of the target element.| -- Area8+ attributes +## Area8+ - | Name | Type | Description | - | -------- | -------- | -------- | - | width | number | Width of the target element, in vp. | - | height | number | Height of the target element, in vp. | - | position | Position | Position of the upper left corner of the target element relative to that of the parent element. | - | globalPosition | Position | Position of the upper left corner of the target element relative to that of the page. | +| Name | Type | Description | +| -------- | -------- | -------- | +| width | number | Width of the target element, in vp. | +| height | number | Height of the target element, in vp. | +| position | [Position](#position8) | Position of the upper left corner of the target element relative to that of the parent element. | +| globalPosition | [Position](#position8) | Position of the upper left corner of the target element relative to that of the page. | -- Position8+ attributes +## Position8+ - | Name | Type | Description | - | -------- | -------- | -------- | - | x | number | X-coordinate, in vp. | - | y | number | Y-coordinate, in vp. | +| Name | Type | Description | +| -------- | -------- | -------- | +| x | number | X-coordinate, in vp. | +| y | number | Y-coordinate, in vp. | ## Example diff --git a/en/application-dev/reference/arkui-ts/ts-universal-events-drag-drop.md b/en/application-dev/reference/arkui-ts/ts-universal-events-drag-drop.md index a08f165f89..be73b9cfd5 100644 --- a/en/application-dev/reference/arkui-ts/ts-universal-events-drag-drop.md +++ b/en/application-dev/reference/arkui-ts/ts-universal-events-drag-drop.md @@ -1,30 +1,31 @@ -# Drag/Drop Event +# Drag Event +A drag event is triggered when a component is dragged. > **NOTE** > > This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version. -## Events -| Name | Bubble Supported | Description | +| Name | Bubbling Supported | Description | | -------- | -------- | -------- | -| onDragStart(callback: (event: DragEvent, extraParams?: string) =>\|[Custom Builder](../../ui/ts-types.md)) | No | Triggered when the component bound to the event is dragged for the first time.
-**event**: information about the drag event, including the coordinates of the item that is being dragged.
-**extraParams**: additional information about the drag event. For details, see extraParam.
Return value: object being dragged, which is used for prompts displayed when the object is dragged.
**NOTE**
> - A drag event can be triggered by a 150 ms long press.
> - If the duration of a long-press gesture is set to less than or equal to 150 ms, the callback for the long-press gesture takes precedence. Otherwise, the callback for the drag event takes precedence. | -| onDragEnter(callback: (event: DragEvent, extraParams?: string) => void) | No | Triggered when the dragged item enters a valid drop target.
-**event**: information about the drag event, including the coordinates of the item that is being dragged.
-**extraParams**: additional information about the drag event. For details, see extraParam.
**NOTE**
This event is valid only when the **onDrop** event is listened to. | -| onDragMove(callback: (event: DragEvent, extraParams?: string) => void) | No | Triggered when the dragged item moves in a valid drop target.
-**event**: information about the drag event, including the coordinates of the item that is being dragged.
-**extraParams**: additional information about the drag event. For details, see extraParam.
**NOTE**
This event is valid only when the **onDrop** event is listened to. | -| onDragLeave(callback: (event: DragEvent, extraParams?: string) => void) | No | Triggered when the dragged item leaves a valid drop target.
-**event**: information about the drag event, including the coordinates of the item that is being dragged.
-**extraParams**: additional information about the drag event. For details, see extraParam.
**NOTE**
This event is valid only when the **onDrop** event is listened to. | -| onDrop(callback: (event:DragEvent, extraParams?: string) => void) | No | Triggered when the dragged item is dropped on a valid drop target.
-**event**: information about the drag event, including the coordinates of the item that is being dragged.
-**extraParams**: additional information about the drag event. For details, see extraParam. | +| onDragStart(callback: (event: DragEvent, extraParams?: string) =>\|[Custom Builder](../../ui/ts-types.md)) | No | Triggered when the component bound to the event is dragged for the first time.
- **event**: information about the drag event, including the coordinates of the item that is being dragged.
- **extraParams**: additional information about the drag event. For details, see **extraParam**.
Return value: object being dragged, which is used for prompts displayed when the object is dragged.
A drag event can be triggered by a 150 ms long press.
If the duration of a long-press gesture is set to less than or equal to 150 ms, the callback for the long-press gesture takes precedence. Otherwise, the callback for the drag event takes precedence. | +| onDragEnter(callback: (event: DragEvent, extraParams?: string) => void) | No | Triggered when the dragged item enters a valid drop target.
- **event**: information about the drag event, including the coordinates of the item that is being dragged.
- **extraParams**: additional information about the drag event. For details, see **extraParam**.
This event is valid only when the **onDrop** event is listened to. | +| onDragMove(callback: (event: DragEvent, extraParams?: string) => void) | No | Triggered when the dragged item moves in a valid drop target.
- **event**: information about the drag event, including the coordinates of the item that is being dragged.
- **extraParams**: additional information about the drag event. For details, see **extraParam**.
This event is valid only when the **onDrop** event is listened to. | +| onDragLeave(callback: (event: DragEvent, extraParams?: string) => void) | No | Triggered when the dragged item leaves a valid drop target.
- **event**: information about the drag event, including the coordinates of the item that is being dragged.
- **extraParams**: additional information about the drag event. For details, see **extraParam**.
This event is valid only when the **onDrop** event is listened to. | +| onDrop(callback: (event:DragEvent, extraParams?: string) => void) | No | Triggered when the dragged item is dropped on a valid drop target.
- **event**: information about the drag event, including the coordinates of the item that is being dragged.
- **extraParams**: additional information about the drag event. For details, see **extraParam**. | - extraParam + Returns additional information required for dragging an item. - + **extraParam** is a string converted from a JSON object. You can obtain the following attributes using the JSON object converted from **Json.parse**. | Name | Type | Description | | -------- | -------- | -------- | - | selectedIndex | number | Index of the dragged item in the parent container. The value of **selectedindex** starts from **0**.
**NOTE**
This attribute is valid only in the **ListItem** component. | - | insertIndex | number | Index of the element into which the dragged item is dropped in the **List** component. The value of **insertIndex** starts from **0**.
**NOTE**
This attribute is valid only in the drag event of the **List** component. | + | selectedIndex | number | Index of the dragged item in the parent container. The value of **selectedIndex** starts from **0**.
This attribute is valid only in the **\** component. | + | insertIndex | number | Index of the element into which the dragged item is dropped in the **List** component. The value of **insertIndex** starts from **0**.
This attribute is valid only in the drag event of the **\** component. | ### DragEvent diff --git a/en/application-dev/reference/arkui-ts/ts-universal-events-key.md b/en/application-dev/reference/arkui-ts/ts-universal-events-key.md index ca5694f8ef..77f563ad57 100644 --- a/en/application-dev/reference/arkui-ts/ts-universal-events-key.md +++ b/en/application-dev/reference/arkui-ts/ts-universal-events-key.md @@ -1,8 +1,10 @@ # Key Event +A key event is triggered when a component interacts with a keyboard, remote control, or any other input device with keys. -> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE** -> This method is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version. +> **NOTE** +> +> This event is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version. ## Required Permissions @@ -12,58 +14,61 @@ None ## Events -| Name | Bubble Supported | Description | +| Name | Bubbling Supported | Description | | -------- | -------- | -------- | -| onKeyEvent(event: (event?: KeyEvent) => void) | Yes | Called when a key event occurs. For details about the event parameters, see [KeyEvent Object](#KeyEvent Object). | +| onKeyEvent(event: (event?: KeyEvent) => void) | Yes | Called when a key event occurs. For details about **event**, see [KeyEvent](#keyevent). | -### KeyEvent Object +## KeyEvent - Attributes - | Name | Type | Description | + | Name | Type | Description | | -------- | -------- | -------- | - | type | KeyType | Type of a key. | - | keyCode | number | Key code. | - | keyText | string | Key value. | - | keySource | KeySource | Type of the input device that triggers the key event. | - | deviceId | number | ID of the input device that triggers the key event. | - | metaKey | number | State of the metakey when the key is pressed. The value **1** means the pressed state, and **0** means the unpressed state. | - | timestamp | number | Timestamp when the key is pressed. | + | type | [KeyType](#keytype-enums) | Type of a key. | + | keyCode | number | Key code. | + | keyText | string | Key value. | + | keySource | [KeySource](#keysource-enums) | Type of the input device that triggers the key event. | + | deviceId | number | ID of the input device that triggers the key event. | + | metaKey | number | State of the metakey when the key is pressed. The value **1** means the pressed state, and **0** means the unpressed state. | + | timestamp | number | Timestamp when the key is pressed. | - APIs - | Name | Description | + | Name | Description | | -------- | -------- | - | stopPropagation(): void | Stops the event from bubbling upwards or downwards. | + | stopPropagation(): void | Stops the event from bubbling upwards or downwards. | -- KeyType enums - | Name | Description | - | -------- | -------- | - | Down | The key is pressed. | - | Up | The key is released. | +## KeyType Enums +| Name | Description | +| -------- | -------- | +| Down | The key is pressed. | +| Up | The key is released. | -- KeySource enums - | Name | Description | - | -------- | -------- | - | Unknown | Unknown input device. | - | Keyboard | The input device is a keyboard. | -- Common KeyCode description - | Value | Behavior | Physical Button | - | -------- | -------- | -------- | - | 19 | Upward | Up button. | - | 20 | Downward | Down button. | - | 21 | Leftward | Left button. | - | 22 | Rightward | Right button. | - | 23 | OK | **OK** key on a remote control. | - | 66 | OK | **Enter** key on a keyboard. | - | 160 | OK | **Enter** button on the numeric keypad. | +## KeySource Enums +| Name | Description | +| -------- | -------- | +| Unknown | Unknown input device. | +| [KeyCode](#common-keycode-enums) | The input device is a keyboard. | + +## Common KeyCode Enums + +| Value | Behavior | Physical Button | +| -------- | -------- | -------- | +| 19 | Upward | Up button. | +| 20 | Downward | Down button. | +| 21 | Leftward | Left button. | +| 22 | Rightward | Right button. | +| 23 | OK | **OK** key on a remote control. | +| 66 | OK | **Enter** key on a keyboard. | +| 160 | OK | **Enter** button on the numeric keypad. | ## Example -``` +```ts +// xxx.ets @Entry @Component struct KeyEventExample { diff --git a/en/application-dev/reference/arkui-ts/ts-universal-events-touch.md b/en/application-dev/reference/arkui-ts/ts-universal-events-touch.md index ea64017630..58833a25b0 100644 --- a/en/application-dev/reference/arkui-ts/ts-universal-events-touch.md +++ b/en/application-dev/reference/arkui-ts/ts-universal-events-touch.md @@ -1,7 +1,9 @@ # Touch Event +A touch event is triggered when a finger is pressed, slides, or is lifted from a component. -> **NOTE**
+> **NOTE** +> > This event is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version. @@ -12,51 +14,51 @@ None ## Events -| Name | Pop-up | Description | -| -------- | -------- | -------- | -| onTouch(callback: (event?: TouchEvent) => void) | Yes | Invoked when a touch action is triggered. For details about the event parameters, see [TouchEvent](#touchevent). | +| Name | Bubbling Supported| Description | +| ---------------------------------------- | ---- | ---------------------------------------- | +| onTouch(callback: (event?: TouchEvent) => void) | Yes | Invoked when a touch action is triggered. For details about **event**, see [TouchEvent](#touchevent).| -### TouchEvent +## TouchEvent - Attributes - | Name | Type | Description | - | -------- | -------- | -------- | - | type | TouchType | Type of a touch event. | - | touches | Array<TouchObject> | All finger information. | - | changedTouches | Array<TouchObject> | Finger information changed. | - | timestamp | number | Timestamp of the event. | - | target8+ | [EventTarget](ts-universal-events-click.md) | Target of the event. | + | Name | Type | Description | + | ------------------- | ---------------------------------------- | ------------ | + | type | TouchType | Type of the touch event. | + | touches | Array<[TouchObject](#touchobject)> | All finger information. | + | changedTouches | Array<[TouchObject](#touchobject)> | Finger information changed.| + | timestamp | number | Timestamp of the event. | + | target8+ | [EventTarget](ts-universal-events-click.md#eventtarget8) | Target of the event. | + - APIs - | Name | Description | - | -------- | -------- | - | stopPropagation(): void | Pop-up of the stop event. | + | Name | Description | + | ---------------------- | ------- | + | stopPropagation(): void| Stops the event from bubbling upwards or downwards.| -- TouchObject - | Name | Type | Description | - | -------- | -------- | -------- | - | type | TouchType | Type of a touch event. | - | id | number | Unique identifier of a finger. | - | screenX | number | X coordinate of the touch point relative to the left edge of the screen. | - | screenY | number | Y coordinate of the touch point relative to the upper edge of the device screen. | - | x | number | X coordinate of the touch point relative to the left edge of the element to touch. | - | y | number | Y coordinate of the touch point relative to the upper edge of the element to touch. | +## TouchObject +| Name | Type | Description | +| ------- | --------------------------- | ------------------- | +| type | [TouchType](#touchtype-enums) | Type of the touch event. | +| id | number | Unique identifier of a finger. | +| screenX | number | X-coordinate of the touch point relative to the left edge of the screen. | +| screenY | number | Y-coordinate of the touch point relative to the upper edge of the device screen. | +| x | number | X-coordinate of the touch point relative to the left edge of the element being touched. | +| y | number | Y-coordinate of the touch point relative to the upper edge of the element being touched. | -- TouchType - | Name | Description | - | -------- | -------- | - | Down | Trigger a touch event when a finger is pressed. | - | Up | Trigger a touch event when a finger is lifted. | - | Move | Trigger a touch event when a finger moves on the screen in pressed state. | - | Cancel | Trigger an event when a touch event is canceled. | +## TouchType Enums +| Name | Description | +| ------ | --------------- | +| Down | A finger is pressed. | +| Up | A finger is lifted. | +| Move | A finger moves on the screen in pressed state.| +| Cancel | A touch event is canceled. | ## Example - ```ts // xxx.ets @Entry diff --git a/en/application-dev/reference/arkui-ts/ts-universal-mouse-key.md b/en/application-dev/reference/arkui-ts/ts-universal-mouse-key.md index c7a4880068..4174d6b266 100644 --- a/en/application-dev/reference/arkui-ts/ts-universal-mouse-key.md +++ b/en/application-dev/reference/arkui-ts/ts-universal-mouse-key.md @@ -1,7 +1,9 @@ # Mouse Event +If an action triggers multiple events, the order of these events is fixed. By default, mouse events are transmitted transparently. -> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE** +> **NOTE** +> > This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version. @@ -12,48 +14,47 @@ None ## Events - | Name | Bubble Supported | Description | +| Name | Bubbling Supported | Description | | -------- | -------- | -------- | -| onHover(callback: (isHover: boolean) => void) | No | Triggered when the mouse cursor enters or leaves the component.
**isHover**: whether the mouse cursor hovers over the component. The value **true** means that the mouse cursor enters the component, and the value **false** means that the mouse cursor leaves the component. | -| onMouse(callback: (event?: MouseEvent) => void) | Yes | Triggered when the component is clicked by a mouse button or the mouse cursor moves on the component. The **event** parameter indicates the timestamp, mouse button, action, coordinates of the clicked point on the entire screen, and coordinates of the clicked point relative to the component when the event is triggered. | - - -### MouseEvent - -- Attributes - | Name | Type | Description | - | -------- | -------- | -------- | - | timestamp | number | Timestamp when the event is triggered. | - | screenX | number | X-coordinate of the clicked point relative to the upper left corner of the screen. | - | screenY | number | Y-coordinate of the clicked point relative to the upper left corner of the screen. | - | x | number | X-coordinate of the clicked point relative to the upper left corner of the component. | - | y | number | Y-coordinate of the clicked point relative to the upper left corner of the component. | - | button | MouseButton | Mouse button. | - | action | MouseAction | Event action. | - - -- MouseButton attributes - | Name | Type | Description | - | -------- | -------- | -------- | - | Left | number | Left mouse button. | - | Right | number | Right mouse button. | - | Middle | number | Middle mouse button. | - | Back | number | Back button on the left of the mouse. | - | Forward | number | Forward button on the left of the mouse. | - | None | number | No button. | - -- MouseAction attributes - | Name | Type | Description | - | -------- | -------- | -------- | - | Press | number | The mouse button is pressed. | - | Release | number | The mouse button is released. | - | Move | number | The mouse cursor moves. | +| onHover(callback: (isHover: boolean) => void) | No | Triggered when the mouse cursor enters or leaves the component.
**isHover**: whether the mouse cursor hovers over the component. The value **true** means that the mouse cursor enters the component, and the value **false** means that the mouse cursor leaves the component. | +| onMouse(callback: (event?: MouseEvent) => void) | Yes | Triggered when the component is clicked by a mouse button or the mouse cursor moves on the component. The **event** parameter indicates the timestamp, mouse button, action, coordinates of the clicked point on the entire screen, and coordinates of the clicked point relative to the component when the event is triggered. | + + +## MouseEvent + +| Name | Type | Description | +| -------- | -------- | -------- | +| timestamp | number | Timestamp when the event is triggered. | +| screenX | number | X-coordinate of the clicked point relative to the upper left corner of the screen. | +| screenY | number | Y-coordinate of the clicked point relative to the upper left corner of the screen. | +| x | number | X-coordinate of the clicked point relative to the upper left corner of the component. | +| y | number | Y-coordinate of the clicked point relative to the upper left corner of the component. | +| button | [MouseButton](#mousebutton) | Mouse button. | +| action | [MouseAction](#mouseaction) | Event action. | + +## MouseButton +| Name | Type | Description | +| -------- | -------- | -------- | +| Left | number | Left mouse button. | +| Right | number | Right mouse button. | +| Middle | number | Middle mouse button. | +| Back | number | Back button on the left of the mouse. | +| Forward | number | Forward button on the left of the mouse. | +| None | number | No button. | + +## MouseAction +| Name | Type | Description | +| -------- | -------- | -------- | +| Press | number | The mouse button is pressed. | +| Release | number | The mouse button is released. | +| Move | number | The mouse cursor moves. | ## Example - -``` + +```ts +// xxx.ets @Entry @Component struct MouseEventExample { -- GitLab From c9fc207cdcba2fb512cbcca4ecc88bbbe3656a21 Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Mon, 18 Jul 2022 15:22:09 +0800 Subject: [PATCH 048/868] update docs Signed-off-by: ester.zhou --- .../quick-start/quickstart-ide-lite-steps-hi3516-helloworld.md | 2 +- .../quick-start/quickstart-ide-lite-steps-hi3861-helloworld.md | 2 +- .../quick-start/quickstart-lite-steps-hi3516-helloworld.md | 2 +- .../quick-start/quickstart-lite-steps-hi3861-helloworld.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/en/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-helloworld.md b/en/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-helloworld.md index 798e092f3b..1733121204 100644 --- a/en/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-helloworld.md +++ b/en/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-helloworld.md @@ -58,7 +58,7 @@ Perform the steps below in the source code directory: 3. Add a component. - Modify the **build/lite/components/applications.json** file and add the configuration of **hello_world_app**. The following code snippet is a snippet of the **applications.json** file: The configuration between \#\#start\#\# and \#\#end\#\# is new. (\#\#start\#\# and \#\#end\#\# are only used to identify the location. After the configuration is complete, delete these lines.) + Modify the **build/lite/components/communication.json** file and add the configuration of **hello_world_app**. The following code snippet is a snippet of the **communication.json** file: The configuration between \#\#start\#\# and \#\#end\#\# is new. (\#\#start\#\# and \#\#end\#\# are only used to identify the location. After the configuration is complete, delete these lines.) ``` diff --git a/en/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-helloworld.md b/en/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-helloworld.md index f3de1522e4..9c18045192 100644 --- a/en/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-helloworld.md +++ b/en/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-helloworld.md @@ -62,7 +62,7 @@ The following exemplifies how to create a program by modifying the source code. 4. Add a component. - Modify the **build/lite/components/applications.json** file and add the configuration of **hello_world_app**. The following code snippet is a snippet of the **applications.json** file: The configuration between \#\#start\#\# and \#\#end\#\# is new. (\#\#start\#\# and \#\#end\#\# are only used to identify the location. After the configuration is complete, delete these lines.) + Modify the **build/lite/components/communication.json** file and add the configuration of **hello_world_app**. The following code snippet is a snippet of the **communication.json** file: The configuration between \#\#start\#\# and \#\#end\#\# is new. (\#\#start\#\# and \#\#end\#\# are only used to identify the location. After the configuration is complete, delete these lines.) ``` diff --git a/en/device-dev/quick-start/quickstart-lite-steps-hi3516-helloworld.md b/en/device-dev/quick-start/quickstart-lite-steps-hi3516-helloworld.md index 798e092f3b..1733121204 100644 --- a/en/device-dev/quick-start/quickstart-lite-steps-hi3516-helloworld.md +++ b/en/device-dev/quick-start/quickstart-lite-steps-hi3516-helloworld.md @@ -58,7 +58,7 @@ Perform the steps below in the source code directory: 3. Add a component. - Modify the **build/lite/components/applications.json** file and add the configuration of **hello_world_app**. The following code snippet is a snippet of the **applications.json** file: The configuration between \#\#start\#\# and \#\#end\#\# is new. (\#\#start\#\# and \#\#end\#\# are only used to identify the location. After the configuration is complete, delete these lines.) + Modify the **build/lite/components/communication.json** file and add the configuration of **hello_world_app**. The following code snippet is a snippet of the **communication.json** file: The configuration between \#\#start\#\# and \#\#end\#\# is new. (\#\#start\#\# and \#\#end\#\# are only used to identify the location. After the configuration is complete, delete these lines.) ``` diff --git a/en/device-dev/quick-start/quickstart-lite-steps-hi3861-helloworld.md b/en/device-dev/quick-start/quickstart-lite-steps-hi3861-helloworld.md index f3de1522e4..9c18045192 100644 --- a/en/device-dev/quick-start/quickstart-lite-steps-hi3861-helloworld.md +++ b/en/device-dev/quick-start/quickstart-lite-steps-hi3861-helloworld.md @@ -62,7 +62,7 @@ The following exemplifies how to create a program by modifying the source code. 4. Add a component. - Modify the **build/lite/components/applications.json** file and add the configuration of **hello_world_app**. The following code snippet is a snippet of the **applications.json** file: The configuration between \#\#start\#\# and \#\#end\#\# is new. (\#\#start\#\# and \#\#end\#\# are only used to identify the location. After the configuration is complete, delete these lines.) + Modify the **build/lite/components/communication.json** file and add the configuration of **hello_world_app**. The following code snippet is a snippet of the **communication.json** file: The configuration between \#\#start\#\# and \#\#end\#\# is new. (\#\#start\#\# and \#\#end\#\# are only used to identify the location. After the configuration is complete, delete these lines.) ``` -- GitLab From 3ee55075642a1aa598a1adfa6d6e978c97a97abd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Mon, 18 Jul 2022 07:35:36 +0000 Subject: [PATCH 049/868] update zh-cn/application-dev/reference/apis/js-apis-data-dataShare.md. Signed-off-by: @ge-yafang --- .../reference/apis/js-apis-data-dataShare.md | 29 +++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-dataShare.md b/zh-cn/application-dev/reference/apis/js-apis-data-dataShare.md index a7d360e03b..19acb3eb1b 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-data-dataShare.md +++ b/zh-cn/application-dev/reference/apis/js-apis-data-dataShare.md @@ -10,7 +10,6 @@ ## 导入模块 ```ts -import Ability from '@ohos.application.Ability' import dataShare from '@ohos.data.dataShare' ``` @@ -34,7 +33,7 @@ createDataShareHelper(context: Context, uri: string, callback: AsyncCallback< **示例:** ```ts -import dataShare from '@ohos.data.dataShare' +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); let dataShareHelper; @@ -72,7 +71,7 @@ createDataShareHelper(context: Context, uri: string): Promise<DataShareHelper **示例:** ```ts -import dataShare from '@ohos.data.dataShare' +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); let dataShareHelper; @@ -109,6 +108,7 @@ openFile(uri: string, mode: string, callback: AsyncCallback<number>): void **示例:** ```ts +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); dataShareHelper.openFile(uri, "rwt", (err, data) => { if (err != undefined) { @@ -146,6 +146,7 @@ openFile(uri: string, mode: string): Promise<number> **示例:** ```ts +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); dataShareHelper.openFile(uri, "rwt").then((data) => { console.info("openFile succeed, data : " + data); @@ -176,6 +177,7 @@ on(type: 'dataChange', uri: string, callback: AsyncCallback<void>): void **示例:** ```ts +import Ability from '@ohos.application.Ability' function onCallback() { console.info("**** Observer on callback ****"); } @@ -204,6 +206,7 @@ off(type: 'dataChange', uri: string, callback?: AsyncCallback<void>): void **示例:** ```ts +import Ability from '@ohos.application.Ability' function offCallback() { console.info("**** Observer off callback ****"); } @@ -232,6 +235,7 @@ insert(uri: string, value: ValuesBucket, callback: AsyncCallback<number>): **示例:** ```ts +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); const valueBucket = { "name": "rose", @@ -273,6 +277,7 @@ insert(uri: string, value: ValuesBucket): Promise<number> **示例:** ```ts +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); const valueBucket = { "name": "rose1", @@ -307,6 +312,7 @@ delete(uri: string, predicates: dataSharePredicates.DataSharePredicates, callbac **示例:** ```ts +import Ability from '@ohos.application.Ability' import dataSharePredicates from '@ohos.data.dataSharePredicates' let uri = ("datashare:///com.samples.datasharetest.DataShare"); @@ -347,6 +353,7 @@ delete(uri: string, predicates: dataSharePredicates.DataSharePredicates): Promis **示例:** ```ts +import Ability from '@ohos.application.Ability' import dataSharePredicates from '@ohos.data.dataSharePredicates' let uri = ("datashare:///com.samples.datasharetest.DataShare"); @@ -381,6 +388,7 @@ query(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: **示例:** ```ts +import Ability from '@ohos.application.Ability' import dataSharePredicates from '@ohos.data.dataSharePredicates' let uri = ("datashare:///com.samples.datasharetest.DataShare"); @@ -423,6 +431,7 @@ query(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: **示例:** ```ts +import Ability from '@ohos.application.Ability' import dataSharePredicates from '@ohos.data.dataSharePredicates' let uri = ("datashare:///com.samples.datasharetest.DataShare"); @@ -458,6 +467,7 @@ update(uri: string, predicates: dataSharePredicates.DataSharePredicates, value: **示例:** ```ts +import Ability from '@ohos.application.Ability' import dataSharePredicates from '@ohos.data.dataSharePredicates' let uri = ("datashare:///com.samples.datasharetest.DataShare"); @@ -505,6 +515,7 @@ update(uri: string, predicates: dataSharePredicates.DataSharePredicates, value: **示例:** ```ts +import Ability from '@ohos.application.Ability' import dataSharePredicates from '@ohos.data.dataSharePredicates' let uri = ("datashare:///com.samples.datasharetest.DataShare"); @@ -544,6 +555,7 @@ batchInsert(uri: string, values: Array<ValuesBucket>, callback: AsyncCallb **示例:** ```ts +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); let vbs = new Array({"name": "roe11", "age": 21, "salary": 20.5,}, {"name": "roe12", "age": 21, "salary": 20.5,}, @@ -583,6 +595,7 @@ batchInsert(uri: string, values: Array<ValuesBucket>): Promise<number&g **示例:** ```ts +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); let vbs = new Array({"name": "roe11", "age": 21, "salary": 20.5,}, {"name": "roe12", "age": 21, "salary": 20.5,}, @@ -614,6 +627,7 @@ getType(uri: string, callback: AsyncCallback<string>): void **示例:** ```ts +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); dataShareHelper.getType(uri, (err, data)=>{ if (err != undefined) { @@ -650,6 +664,7 @@ getType(uri: string): Promise<string> **示例:** ```ts +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); dataShareHelper.getType(uri).then((data) => { console.log("getType succeed, data : " + data); @@ -679,6 +694,7 @@ getFileTypes(uri: string, mimeTypeFilter: string, callback: AsyncCallback<Arr **示例:** ```ts +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); let mimeTypeFilter = "image/*"; dataShareHelper.getFileTypes(uri, mimeTypeFilter, (err,data) => { @@ -716,6 +732,7 @@ getFileTypes(uri: string, mimeTypeFilter: string): Promise<Array<string> **示例:** ```ts +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); let mimeTypeFilter = "image/*"; dataShareHelper.getFileTypes(uri, mimeTypeFilter).then((data) => { @@ -745,6 +762,7 @@ normalizeUri(uri: string, callback: AsyncCallback<string>): void **示例:** ```ts +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); dataShareHelper.normalizeUri(uri, (err, data) => { if (err != undefined) { @@ -780,6 +798,7 @@ normalizeUri(uri: string): Promise<string> **示例:** ```ts +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); dataShareHelper.normalizeUri(uri).then((data) => { console.log("normalizeUri = " + data); @@ -808,6 +827,7 @@ denormalizeUri(uri: string, callback: AsyncCallback<string>): void **示例:** ```ts +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); dataShareHelper.denormalizeUri(uri, (err, data) => { if (err != undefined) { @@ -843,6 +863,7 @@ denormalizeUri(uri: string): Promise<string> **示例:** ```ts +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); dataShareHelper.denormalizeUri(uri).then((data) => { console.log("denormalizeUri = " + data); @@ -871,6 +892,7 @@ notifyChange(uri: string, callback: AsyncCallback<void>): void **示例:** ```ts +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); dataShareHelper.notifyChange(uri, () => { console.log("***** notifyChange *****"); @@ -902,6 +924,7 @@ notifyChange(uri: string): Promise<void> **示例:** ```ts +import Ability from '@ohos.application.Ability' let uri = ("datashare:///com.samples.datasharetest.DataShare"); dataShareHelper.notifyChange(uri); ``` -- GitLab From 7d0067e06484c5c598b268f03f787062ed923d8d Mon Sep 17 00:00:00 2001 From: xu-rui-w Date: Mon, 18 Jul 2022 15:50:51 +0800 Subject: [PATCH 050/868] =?UTF-8?q?=E6=96=87=E6=A1=A3=E5=AF=B9=E9=BD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xu-rui-w --- .../reference/apis/js-apis-image.md | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-image.md b/zh-cn/application-dev/reference/apis/js-apis-image.md index 6720c5cbcd..bdb9d82a61 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-image.md +++ b/zh-cn/application-dev/reference/apis/js-apis-image.md @@ -1,7 +1,5 @@ # 图片处理 -本模块提供图片处理效果,包括通过属性创建PixelMap、读取图像像素数据、读取区域内的图片数据等。 - > **说明:** > 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 @@ -65,13 +63,8 @@ createPixelMap(colors: ArrayBuffer, options: InitializationOptions, callback: As const color = new ArrayBuffer(96); let bufferArr = new Uint8Array(color); let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } -image.createPixelMap(color, opts, (error, pixelmap) => { - if(error) { - console.log('Failed to create pixelmap.'); - } else { - console.log('Succeeded in creating pixelmap.'); - } -}) +image.createPixelMap(color, opts, (pixelmap) => { + }) ``` ## PixelMap7+ @@ -2034,11 +2027,17 @@ img.release().then(() =>{ **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core -| 名称 | 默认值 | 描述 | -| --------- | ------ | ---------------- | -| UNKNOWN | 0 | 未知格式。 | -| RGB_565 | 2 | 格式为RGB_565。 | -| RGBA_8888 | 3 | 格式为RGBA_8888。 | +| 名称 | 默认值 | 描述 | +| ---------------- | ------ | ----------------- | +| UNKNOWN7+ | 0 | 未知格式。 | +| RGB_5657+ | 2 | 格式为RGB_565 | +| RGBA_88887+ | 3 | 格式为RGBA_8888。 | +| BGRA_88889+ | 4 | 格式为BGRA_8888。 | +| RGB_8889+ | 5 | 格式为RGB_888。 | +| ALPHA_89+ | 6 | 格式为ALPHA_8。 | +| RGBA_F169+ | 7 | 格式为RGBA_F16。 | +| NV219+ | 8 | 格式为NV21。 | +| NV129+ | 9 | 格式为NV12。 | ## AlphaType9+ @@ -2134,16 +2133,21 @@ PixelMap的初始化选项。 **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core -| 名称 | 默认值 | 说明 | -| ----------------- | ----------------------- | ------------------------ | -| BITS_PER_SAMPLE | "BitsPerSample" | 每个像素比特数。 | -| ORIENTATION | "Orientation" | 图片方向。 | -| IMAGE_LENGTH | "ImageLength" | 图片长度。 | -| IMAGE_WIDTH | "ImageWidth" | 图片宽度。 | -| GPS_LATITUDE | "GPSLatitude" | 图片纬度。 | -| GPS_LONGITUDE | "GPSLongitude" | 图片经度。 | -| GPS_LATITUDE_REF | "GPSLatitudeRef" | 纬度引用,例如N或S。 | -| GPS_LONGITUDE_REF | "GPSLongitudeRef" | 经度引用,例如W或E。 | +| 名称 | 默认值 | 说明 | +| ------------------------ | ----------------------- | ------------------------ | +| BITS_PER_SAMPLE7+ | "BitsPerSample" | 每个像素比特数。 | +| ORIENTATION7+ | "Orientation" | 图片方向。 | +| IMAGE_LENGTH7+ | "ImageLength" | 图片长度。 | +| IMAGE_WIDTH7+ | "ImageWidth" | 图片宽度。 | +| GPS_LATITUDE7+ | "GPSLatitude" | 图片纬度。 | +| GPS_LONGITUDE7+ | "GPSLongitude" | 图片经度。 | +| GPS_LATITUDE_REF7+ | "GPSLatitudeRef" | 纬度引用,例如N或S。 | +| GPS_LONGITUDE_REF7+ | "GPSLongitudeRef" | 经度引用,例如W或E。 | +| DateTimeOriginal9+ | "2022:06:02 15:51:35" | 拍摄时间。 | +| ExposureTime9+ | "1/33 sec." | 曝光时间。 | +| SceneType9+ | "Directly photographed" | 拍摄场景,默认直接拍摄。 | +| ISOSpeedRatings9+ | "400" | ISO 曝光度,默认值为400。| +| FNumber9+ | "f/1.8" | 光圈值。 | ## ImageFormat9+ -- GitLab From fef8d58eec8b247725c6a58605ee2c7318c51794 Mon Sep 17 00:00:00 2001 From: m00512953 Date: Mon, 18 Jul 2022 15:56:32 +0800 Subject: [PATCH 051/868] mingxihua@huawei.com.cn Signed-off-by: m00512953 --- .../apis/js-apis-application-Want.md | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-Want.md b/zh-cn/application-dev/reference/apis/js-apis-application-Want.md index fe90a7f82e..e51aa86b5b 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-application-Want.md +++ b/zh-cn/application-dev/reference/apis/js-apis-application-Want.md @@ -43,3 +43,77 @@ import Want from '@ohos.application.Want'; console.log("error.code = " + error.code) }) ``` + +## 传递FD数据 + +**示例:** + +``` js + var fd; + try { + fd = fileio.openSync("/data/storage/el2/base/haps/pic.png"); + } catch(e) { + console.log("openSync fail:" + JSON.stringify(e)); + } + var want = { + "deviceId": "", // deviceId为空表示本设备 + "bundleName": "com.extreme.test", + "abilityName": "MainAbility", + "moduleName": "entry" // moduleName非必选 + "parameters": { + "keyFd":{"type":"FD", "value":fd} + } + }; + this.context.startAbility(want, (error) => { + // 显式拉起Ability,通过bundleName、abilityName和moduleName可以唯一确定一个Ability + console.log("error.code = " + error.code) + }) +``` + +## 传递RemoteObject数据 + +**示例:** + +``` js + class Stub extends rpc.RemoteObject { + constructor(des) { + if (typeof des == 'string') { + super(des); + } else { + return null; + } + } + + onRemoteRequest(code, data, reply, option) { + if (code === 1) { + console.log('onRemoteRequest called') + let token = data.readInterfaceToken(); + let num = data.readInt(); + this.method(); + return true; + } + return false; + } + + method() { + console.log('method called'); + } + } + + var remoteObject = new Stub('want-test'); + var want = { + "deviceId": "", // deviceId为空表示本设备 + "bundleName": "com.extreme.test", + "abilityName": "MainAbility", + "moduleName": "entry" // moduleName非必选 + "parameters": { + "keyRemoteObject":{"type":"RemoteObject", "value":remoteObject} + } + }; + this.context.startAbility(want, (error) => { + // 显式拉起Ability,通过bundleName、abilityName和moduleName可以唯一确定一个Ability + console.log("error.code = " + error.code) + }) +``` + + -- GitLab From 6ab1218abf54f8966d71df743927b98ee6e91f88 Mon Sep 17 00:00:00 2001 From: xu-rui-w Date: Mon, 18 Jul 2022 16:48:42 +0800 Subject: [PATCH 052/868] =?UTF-8?q?=E6=96=87=E6=A1=A3=E5=AF=B9=E9=BD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xu-rui-w --- .../reference/apis/js-apis-image.md | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-image.md b/zh-cn/application-dev/reference/apis/js-apis-image.md index bdb9d82a61..f2bad15164 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-image.md +++ b/zh-cn/application-dev/reference/apis/js-apis-image.md @@ -1,5 +1,7 @@ # 图片处理 +本模块提供图片处理效果,包括通过属性创建PixelMap、读取图像像素数据、读取区域内的图片数据等。 + > **说明:** > 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 @@ -63,8 +65,13 @@ createPixelMap(colors: ArrayBuffer, options: InitializationOptions, callback: As const color = new ArrayBuffer(96); let bufferArr = new Uint8Array(color); let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } -image.createPixelMap(color, opts, (pixelmap) => { - }) +image.createPixelMap(color, opts, (error, pixelmap) => { + if(error) { + console.log('Failed to create pixelmap.'); + } else { + console.log('Succeeded in creating pixelmap.'); + } +}) ``` ## PixelMap7+ @@ -89,9 +96,9 @@ readPixelsToBuffer(dst: ArrayBuffer): Promise\ **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ----------- | ---- | ------------------------------------------------------------ | -| dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ----------- | ---- | ----------------------------------------------------------------------------------------------------- | +| dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。缓冲区大小由getPixelBytesNumber接口获取。 | **返回值:** @@ -102,7 +109,7 @@ readPixelsToBuffer(dst: ArrayBuffer): Promise\ **示例:** ```js -const readBuffer = new ArrayBuffer(400); +const readBuffer = new ArrayBuffer(96); pixelmap.readPixelsToBuffer(readBuffer).then(() => { console.log('Succeeded in reading image pixel data.'); //符合条件则进入 }).catch(error => { @@ -120,15 +127,15 @@ readPixelsToBuffer(dst: ArrayBuffer, callback: AsyncCallback\): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ------------------------------------------------------------ | -| dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。 | -| callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ----------------------------------------------------------------------------------------------------- | +| dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。缓冲区大小由getPixelBytesNumber接口获取。 | +| callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。 | **示例:** ```js -const readBuffer = new ArrayBuffer(400); +const readBuffer = new ArrayBuffer(96); pixelmap.readPixelsToBuffer(readBuffer, (err, res) => { if(err) { console.log('Failed to read image pixel data.'); //不符合条件则进入 -- GitLab From 204eb0a35d7e1aac44199ff09ed5dd9fa458b359 Mon Sep 17 00:00:00 2001 From: xu-rui-w Date: Mon, 18 Jul 2022 16:55:32 +0800 Subject: [PATCH 053/868] =?UTF-8?q?=E6=96=87=E6=A1=A3=E5=AF=B9=E9=BD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xu-rui-w --- zh-cn/application-dev/reference/apis/js-apis-image.md | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-image.md b/zh-cn/application-dev/reference/apis/js-apis-image.md index f2bad15164..724880739e 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-image.md +++ b/zh-cn/application-dev/reference/apis/js-apis-image.md @@ -2039,12 +2039,6 @@ img.release().then(() =>{ | UNKNOWN7+ | 0 | 未知格式。 | | RGB_5657+ | 2 | 格式为RGB_565 | | RGBA_88887+ | 3 | 格式为RGBA_8888。 | -| BGRA_88889+ | 4 | 格式为BGRA_8888。 | -| RGB_8889+ | 5 | 格式为RGB_888。 | -| ALPHA_89+ | 6 | 格式为ALPHA_8。 | -| RGBA_F169+ | 7 | 格式为RGBA_F16。 | -| NV219+ | 8 | 格式为NV21。 | -| NV129+ | 9 | 格式为NV12。 | ## AlphaType9+ @@ -2150,11 +2144,6 @@ PixelMap的初始化选项。 | GPS_LONGITUDE7+ | "GPSLongitude" | 图片经度。 | | GPS_LATITUDE_REF7+ | "GPSLatitudeRef" | 纬度引用,例如N或S。 | | GPS_LONGITUDE_REF7+ | "GPSLongitudeRef" | 经度引用,例如W或E。 | -| DateTimeOriginal9+ | "2022:06:02 15:51:35" | 拍摄时间。 | -| ExposureTime9+ | "1/33 sec." | 曝光时间。 | -| SceneType9+ | "Directly photographed" | 拍摄场景,默认直接拍摄。 | -| ISOSpeedRatings9+ | "400" | ISO 曝光度,默认值为400。| -| FNumber9+ | "f/1.8" | 光圈值。 | ## ImageFormat9+ -- GitLab From 1d56061b5c491df91c1b322737ca7b614357019d Mon Sep 17 00:00:00 2001 From: m00512953 Date: Mon, 18 Jul 2022 18:47:52 +0800 Subject: [PATCH 054/868] mingxihua@huawei.com.cn Signed-off-by: m00512953 --- .../apis/js-apis-application-Want.md | 154 +++++++++--------- 1 file changed, 76 insertions(+), 78 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-Want.md b/zh-cn/application-dev/reference/apis/js-apis-application-Want.md index e51aa86b5b..4caa15330e 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-application-Want.md +++ b/zh-cn/application-dev/reference/apis/js-apis-application-Want.md @@ -31,89 +31,87 @@ import Want from '@ohos.application.Want'; **示例:** -``` js - var want = { - "deviceId": "", // deviceId为空表示本设备 - "bundleName": "com.extreme.test", - "abilityName": "MainAbility", - "moduleName": "entry" // moduleName非必选 - }; - this.context.startAbility(want, (error) => { - // 显式拉起Ability,通过bundleName、abilityName和moduleName可以唯一确定一个Ability - console.log("error.code = " + error.code) - }) -``` - -## 传递FD数据 - -**示例:** - -``` js - var fd; - try { - fd = fileio.openSync("/data/storage/el2/base/haps/pic.png"); - } catch(e) { - console.log("openSync fail:" + JSON.stringify(e)); - } - var want = { - "deviceId": "", // deviceId为空表示本设备 - "bundleName": "com.extreme.test", - "abilityName": "MainAbility", - "moduleName": "entry" // moduleName非必选 - "parameters": { - "keyFd":{"type":"FD", "value":fd} +- 基础用法 + + ``` js + var want = { + "deviceId": "", // deviceId为空表示本设备 + "bundleName": "com.extreme.test", + "abilityName": "MainAbility", + "moduleName": "entry" // moduleName非必选 + }; + this.context.startAbility(want, (error) => { + // 显式拉起Ability,通过bundleName、abilityName和moduleName可以唯一确定一个Ability + console.log("error.code = " + error.code) + }) + ``` + +- 传递FD数据,FD表示文件描述符(FileDescriptor) + + ``` js + var fd; + try { + fd = fileio.openSync("/data/storage/el2/base/haps/pic.png"); + } catch(e) { + console.log("openSync fail:" + JSON.stringify(e)); + } + var want = { + "deviceId": "", // deviceId为空表示本设备 + "bundleName": "com.extreme.test", + "abilityName": "MainAbility", + "moduleName": "entry" // moduleName非必选 + "parameters": { + "keyFd":{"type":"FD", "value":fd} + } + }; + this.context.startAbility(want, (error) => { + // 显式拉起Ability,通过bundleName、abilityName和moduleName可以唯一确定一个Ability + console.log("error.code = " + error.code) + }) + ``` + +- 传递RemoteObject数据 + + ``` js + class Stub extends rpc.RemoteObject { + constructor(des) { + if (typeof des == 'string') { + super(des); + } else { + return null; + } } - }; - this.context.startAbility(want, (error) => { - // 显式拉起Ability,通过bundleName、abilityName和moduleName可以唯一确定一个Ability - console.log("error.code = " + error.code) - }) -``` - -## 传递RemoteObject数据 -**示例:** + onRemoteRequest(code, data, reply, option) { + if (code === 1) { + console.log('onRemoteRequest called') + let token = data.readInterfaceToken(); + let num = data.readInt(); + this.method(); + return true; + } + return false; + } -``` js - class Stub extends rpc.RemoteObject { - constructor(des) { - if (typeof des == 'string') { - super(des); - } else { - return null; - } + method() { + console.log('method called'); + } } - onRemoteRequest(code, data, reply, option) { - if (code === 1) { - console.log('onRemoteRequest called') - let token = data.readInterfaceToken(); - let num = data.readInt(); - this.method(); - return true; + var remoteObject = new Stub('want-test'); + var want = { + "deviceId": "", // deviceId为空表示本设备 + "bundleName": "com.extreme.test", + "abilityName": "MainAbility", + "moduleName": "entry" // moduleName非必选 + "parameters": { + "keyRemoteObject":{"type":"RemoteObject", "value":remoteObject} } - return false; - } - - method() { - console.log('method called'); - } - } - - var remoteObject = new Stub('want-test'); - var want = { - "deviceId": "", // deviceId为空表示本设备 - "bundleName": "com.extreme.test", - "abilityName": "MainAbility", - "moduleName": "entry" // moduleName非必选 - "parameters": { - "keyRemoteObject":{"type":"RemoteObject", "value":remoteObject} - } - }; - this.context.startAbility(want, (error) => { - // 显式拉起Ability,通过bundleName、abilityName和moduleName可以唯一确定一个Ability - console.log("error.code = " + error.code) - }) -``` + }; + this.context.startAbility(want, (error) => { + // 显式拉起Ability,通过bundleName、abilityName和moduleName可以唯一确定一个Ability + console.log("error.code = " + error.code) + }) + ``` -- GitLab From 8805116048e893947fdaa9f0181b2ac09f8ad512 Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Mon, 18 Jul 2022 17:39:01 +0800 Subject: [PATCH 055/868] update docs Signed-off-by: ester.zhou --- .../arkui-js/js-components-basic-marquee.md | 243 ++++-------------- .../arkui-ts/ts-basic-components-marquee.md | 33 +-- .../ts-universal-attributes-border.md | 26 +- 3 files changed, 90 insertions(+), 212 deletions(-) diff --git a/en/application-dev/reference/arkui-js/js-components-basic-marquee.md b/en/application-dev/reference/arkui-js/js-components-basic-marquee.md index 6f8ba597ae..9f13895436 100644 --- a/en/application-dev/reference/arkui-js/js-components-basic-marquee.md +++ b/en/application-dev/reference/arkui-js/js-components-basic-marquee.md @@ -1,215 +1,69 @@ -# marquee +# marquee -The **** component displays single-line scrolling text. +> **NOTE** +> +> This component is supported since API version 4. Updates will be marked with a superscript to indicate their earliest API version. +> Since API version 6, the text scrolls only when its width exceeds the width of the **\** component. -## Required Permissions +The **\** component is used to display a scrolling piece of text. + +## Required Permissions None -## Child Component + +## Child Components Not supported -## Attributes -In addition to the attributes in [Universal Attributes](js-components-common-attributes.md), the following attributes are supported. +## Attributes - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

-

Type

-

Default Value

-

Mandatory

-

Description

-

scrollamount

-

number

-

6

-

No

-

Maximum length of each scroll.

-

loop

-

number

-

-1

-

No

-

Number of rolling times. If this parameter is not set, the default value -1 is used. When the value is less than or equal to 0, the marquee scrolls continuously.

-

direction

-

string

-

left

-

No

-

Direction in which the marquee scrolls, which can be left or right.

-
+In addition to the [universal attributes](../arkui-js/js-components-common-attributes.md), the following attributes are supported. -## Styles +| Name | Type | Default Value | Mandatory | Description | +| ------------ | ------ | ---- | ---- | ---------------------------------------- | +| scrollamount | number | 6 | No | Maximum length of each scroll. | +| loop | number | -1 | No | Number of rolling times. If this parameter is not set, the default value **-1** is used. When the value is less than or equal to **0**, the marquee scrolls continuously.| +| direction | string | left | No | Direction in which the marquee scrolls, which can be **left** or **right**. | -In addition to the styles in [Universal Styles](js-components-common-styles.md), the following styles are supported. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

-

Type

-

Default Value

-

Mandatory

-

Description

-

color

-

<color>

-

#e5000000

-

No

-

Font color of the scrolling text.

-

font-size

-

<length>

-

37.5

-

No

-

Font size of the scrolling text.

-

allow-scale

-

boolean

-

true

-

No

-

Whether the font size changes with the system's font size settings.

-
NOTE:

If the config-changes tag of fontSize is configured for abilities in the config.json file, the setting takes effect without application restart.

-
-

font-weight

-

number | string

-

normal

-

No

-

Font weight of the scrolling text. For details, see font-weight of the text component.

-

font-family

-

string

-

sans-serif

-

No

-

Font family, in which fonts are separated by commas (,). Each font is set using a font name or font family name. The first font that exists in the system or the font specified by Custom Font Styles in the family is selected as the font for the text.

-
+## Styles -## Events +In addition to the [universal styles](../arkui-js/js-components-common-styles.md), the following styles are supported. -In addition to the events in [Universal Events](js-components-common-events.md), the following events are supported. +| Name | Type | Default Value | Mandatory | Description | +| ----------- | -------------------------- | ---------- | ---- | ---------------------------------------- | +| color | <color> | \#e5000000 | No | Font color of the scrolling text. | +| font-size | <length> | 37.5 | No | Font size of the scrolling text. | +| allow-scale | boolean | true | No | Whether the font size changes with the system's font size settings.
If the **config-changes** tag of **fontSize** is configured for abilities in the **config.json** file, the setting takes effect without application restart.| +| font-weight | number \| string | normal | No | Font weight of the scrolling text. For details, see **font-weight** of the **[\ component](../arkui-js/js-components-basic-text.md#styles)**.| +| font-family | string | sans-serif | No | Font family, in which fonts are separated by commas (,). Each font is set using a font name or font family name. The first font in the family or the specified [custom font](../arkui-js/js-components-common-customizing-font.md) is used for the text.| - - - - - - - - - - - - - - - - - - - -

Name

-

Parameter

-

Description

-

bounce(Rich)

-

-

-

Triggered when the marquee scrolls to the end.

-

finish(Rich)

-

-

-

Triggered when the marquee finishes the specified number of scrollings (value of the loop attribute). It can be triggered only when the loop attribute is set to a number greater than 0.

-

start(Rich)

-

-

-

Triggered when the marquee starts to scroll.

-
-## Methods +## Events -In addition to the methods in [Universal Methods](js-components-common-methods.md), the following events are supported. +In addition to the [universal events](../arkui-js/js-components-common-events.md), the following events are supported. - - - - - - - - - - - - - - - -

Name

-

Parameter

-

Description

-

start

-

-

-

Starts scrolling.

-

stop

-

-

-

Stops scrolling.

-
+| Name | Parameter | Description | +| ------------ | ---- | ---------------------------------------- | +| bounce(Rich) | - | Triggered when the marquee scrolls to the end. | +| finish(Rich) | - | Triggered when the marquee finishes the specified number of scrollings (value of the **loop** attribute). It can be triggered only when the **loop** attribute is set to a number greater than 0.| +| start(Rich) | - | Triggered when the marquee starts to scroll. | -## Example Code +## Methods -``` +In addition to the [universal methods](../arkui-js/js-components-common-methods.md), the following methods are supported. + +| Name | Parameter | Description | +| ----- | ---- | ----- | +| start | - | Starts scrolling.| +| stop | - | Stops scrolling.| + + +## Example + +```html
``` -``` +```css /* xxx.css */ .container { flex-direction: column; @@ -252,7 +106,7 @@ In addition to the methods in [Universal Methods](js-components-common-methods. } ``` -``` +```js // xxx.js export default { data: { @@ -279,5 +133,4 @@ export default { } ``` -![](figures/lite_bar.gif) - +![lite_bar](figures/lite_bar.gif) diff --git a/en/application-dev/reference/arkui-ts/ts-basic-components-marquee.md b/en/application-dev/reference/arkui-ts/ts-basic-components-marquee.md index 757050181d..dc89934a27 100644 --- a/en/application-dev/reference/arkui-ts/ts-basic-components-marquee.md +++ b/en/application-dev/reference/arkui-ts/ts-basic-components-marquee.md @@ -1,11 +1,12 @@ # Marquee -> **NOTE**
-> This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version. +> **NOTE** +> +> This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version. -The **\** component is used to display a scrolling piece of text. +The **\** component is used to display a scrolling piece of text. The text is scrolled only when its width exceeds the width of the **\** component. ## Required Permissions @@ -15,7 +16,7 @@ None ## Child Components -None +Not supported ## APIs @@ -23,28 +24,29 @@ None Marquee(value: { start: boolean, step?: number, loop?: number, fromStart?: boolean, src: string }) - Parameters - | Name | Type | Mandatory | Default Value | Description | + | Name| Type| Mandatory| Default Value| Description| | -------- | -------- | -------- | -------- | -------- | - | start | boolean | Yes | - | Whether to start scrolling. | - | step | number | No | 6 | Scrolling step. | - | loop | number | No | -1 | Number of times the marquee will scroll. If the value is less than or equal to **0**, the marquee will scroll continuously. | - | fromStart | boolean | No | true | Whether the text scrolls from the start. | - | src | string | Yes | - | Text to scroll. | + | start | boolean | Yes| - | Whether to start scrolling.| + | step | number | No| 6 | Scrolling step.| + | loop | number | No| -1 | Number of times the marquee will scroll. If the value is less than or equal to **0**, the marquee will scroll continuously.| + | fromStart | boolean | No| true | Whether the text scrolls from the start.| + | src | string | Yes| - | Text to scroll.| ## Events -| Name | Description | +| Name| Description| | -------- | -------- | -| onStart(callback: () => void) | Triggered when the marquee starts scrolling. | -| onBounce(callback: () => void) | Triggered when the marquee has reached the end. | -| onFinish(callback: () => void) | Triggered when the marquee has finished scrolling. | +| onStart(callback: () => void) | Triggered when the marquee starts scrolling.| +| onBounce(callback: () => void) | Triggered when the marquee has reached the end.| +| onFinish(callback: () => void) | Triggered when the marquee has finished scrolling.| ## Example -``` +```ts +// xxx.ets @Entry @Component struct MarqueeExample { @@ -63,6 +65,7 @@ struct MarqueeExample { fromStart: this.fromStart, src: this.src }) + .width(400) .fontColor(Color.White) .fontSize(50) .allowScale(false) diff --git a/en/application-dev/reference/arkui-ts/ts-universal-attributes-border.md b/en/application-dev/reference/arkui-ts/ts-universal-attributes-border.md index f530a14d3a..f37f499e12 100644 --- a/en/application-dev/reference/arkui-ts/ts-universal-attributes-border.md +++ b/en/application-dev/reference/arkui-ts/ts-universal-attributes-border.md @@ -1,16 +1,20 @@ # Border -You can set border styles for components. > **NOTE** > > The APIs of this module are supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version. > > The border of a component is displayed above the content of its child components since API version 9. + +You can set border styles for components. + + ## Required Permissions None + ## Attributes @@ -27,11 +31,25 @@ None | -------- | -------- | -------- | -------- | -------- | | width | [Length](../../ui/ts-types.md) | 0 | No| Border width.| | color | [ResourceColor](../../ui/ts-types.md) | 'Black' | No| Border color.| - | radius | [Length](../../ui/ts-types.md) | 0 | No| Border radius.| + | radius | [Length](../../ui/ts-types.md)\| EdgeRadiuses9+ | 0 | No| Border radius.| | style | BorderStyle | BorderStyle.Solid | No| Border style.| +- EdgeRadiuses9+ + + To reference this object, at least one parameter must be passed. + + | Name | Type| Mandatory| Default Value| Description | + | ----------- | -------- | ---- | ------ | ---------------- | + | topLeft | length | No | 0 | Radius of the upper-left rounded corner.| + | topRight | length | No | 0 | Radius of the upper-right rounded corner.| + | bottomLeft | length | No | 0 | Radius of the lower-left rounded corner.| + | bottomRight | length | No | 0 | Radius of the lower-right rounded corner.| + + + - BorderStyle enums + | Name| Description| | -------- | -------- | | Dotted | Dotted border. The radius of a dot is half of **borderWidth**.| @@ -52,6 +70,10 @@ struct BorderExample { Text('dashed') .borderStyle(BorderStyle.Dashed).borderWidth(5).borderColor(0xAFEEEE).borderRadius(10) .width(120).height(120).textAlign(TextAlign.Center).fontSize(16) + Text('dashed') + .borderStyle(BorderStyle.Dashed).borderWidth(5).borderColor(0xAFEEEE) + .borderRadius({ topLeft: 10, topRight: 20, bottomLeft: 30, bottomRight: 60 }) + .width(120).height(120).textAlign(TextAlign.Center).fontSize(16) // Dotted border Text('dotted') .border({ width: 5, color: 0x317AF7, radius: 10, style: BorderStyle.Dotted }) -- GitLab From 6caf0f7cb0fff78d2bea9b1b052640845875dcd4 Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 18 Jul 2022 20:12:37 +0800 Subject: [PATCH 056/868] HDI api Signed-off-by: duangavin123 --- zh-cn/device-dev/api/_audio.md | 30 ++++++------- zh-cn/device-dev/api/_camera.md | 26 ++++++------ zh-cn/device-dev/api/_codec.md | 24 +++++------ zh-cn/device-dev/api/_display.md | 42 +++++++++---------- zh-cn/device-dev/api/_face_auth_types_8idl.md | 12 +++--- zh-cn/device-dev/api/_hdf_face_auth.md | 12 +++--- zh-cn/device-dev/api/_hdf_pin_auth.md | 8 ++-- zh-cn/device-dev/api/_hdf_user_auth.md | 6 +-- zh-cn/device-dev/api/_input.md | 10 ++--- zh-cn/device-dev/api/_light.md | 8 ++-- zh-cn/device-dev/api/_pin_auth_types_8idl.md | 9 ++-- zh-cn/device-dev/api/_power_types_8idl.md | 8 ++-- zh-cn/device-dev/api/_sensor.md | 14 +++---- zh-cn/device-dev/api/_types_8idl.md | 8 ++-- zh-cn/device-dev/api/_u_s_b.md | 6 +-- zh-cn/device-dev/api/_user_auth_types_8idl.md | 6 +-- zh-cn/device-dev/api/_vibrator.md | 8 ++-- zh-cn/device-dev/api/_w_l_a_n.md | 2 +- zh-cn/device-dev/api/audio__types_8h.md | 30 ++++++------- zh-cn/device-dev/api/battery.md | 8 ++-- .../device-dev/api/codec__common__type_8h.md | 12 +++--- .../api/codec__component__type_8h.md | 14 +++---- zh-cn/device-dev/api/display__type_8h.md | 42 +++++++++---------- zh-cn/device-dev/api/input__type_8h.md | 10 ++--- zh-cn/device-dev/api/power.md | 8 ++-- zh-cn/device-dev/api/sensor__type_8h.md | 14 +++---- zh-cn/device-dev/api/types_8h.md | 24 +++++------ zh-cn/device-dev/api/usbd__type_8h.md | 6 +-- zh-cn/device-dev/api/vibrator__type_8h.md | 8 ++-- .../api/wifi__hal__base__feature_8h.md | 2 +- 30 files changed, 208 insertions(+), 209 deletions(-) diff --git a/zh-cn/device-dev/api/_audio.md b/zh-cn/device-dev/api/_audio.md index 3ea52c14e2..a12fe314af 100644 --- a/zh-cn/device-dev/api/_audio.md +++ b/zh-cn/device-dev/api/_audio.md @@ -58,22 +58,22 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [AudioPortDirection](#audioportdirection) { [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1872427638083931,link:zh-cn_topic_0000001295254272.xml#gga68ff7140b15790debbac4bbc62f8e9f8af54f110a0f64337d474989fbac06bc22](#gga68ff7140b15790debbac4bbc62f8e9f8af54f110a0f64337d474989fbac06bc22) = 0x1u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1956179113083931,link:zh-cn_topic_0000001295254272.xml#gga68ff7140b15790debbac4bbc62f8e9f8a154a6db110515b7afde52d3a36d57846](#gga68ff7140b15790debbac4bbc62f8e9f8a154a6db110515b7afde52d3a36d57846) = 0x2u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1870613635083931,link:zh-cn_topic_0000001295254272.xml#gga68ff7140b15790debbac4bbc62f8e9f8a87e14fe9da9c332ba29185b9213d7bbf](#gga68ff7140b15790debbac4bbc62f8e9f8a87e14fe9da9c332ba29185b9213d7bbf) = 0x3u } | 音频端口的类型 [更多...](#audioportdirection) | -| [AudioPortPin](#audioportpin) {   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1493981061083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ad2f867652c04c17517db7731af03bf20](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ad2f867652c04c17517db7731af03bf20) = 0x0u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref685216793083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ab1070439bab93e06446c21157771dd6f](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ab1070439bab93e06446c21157771dd6f) = 0x1u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1812227293083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a271013721c8840cc2700c19b3ff8d0a6](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a271013721c8840cc2700c19b3ff8d0a6) = 0x2u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref44597532083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a411e9037214c75d22c9080505cf9cae6](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a411e9037214c75d22c9080505cf9cae6) = 0x4u,   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1840039063083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ab4aaa2ec71ec77480f60743cd79340b9](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ab4aaa2ec71ec77480f60743cd79340b9) = 0x8u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1181985818083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a4fdca959c8b32bc9a30a36882bd3bdaa](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a4fdca959c8b32bc9a30a36882bd3bdaa) = 0x10u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1740611064083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a933d2d5aadef8b45038be8be69b56b27](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a933d2d5aadef8b45038be8be69b56b27) = 0x20u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1483273702083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a336001f5685d9c206b1251714553b485](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a336001f5685d9c206b1251714553b485) = 0x8000001u,   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref2052340513083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835aaeca21ac0a7b249905d1cea5b683f574](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835aaeca21ac0a7b249905d1cea5b683f574) = 0x8000002u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1541442973083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a5146add03ff98f06648567bb0e02a477](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a5146add03ff98f06648567bb0e02a477) = 0x8000004u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1972742366083931,link:zh-cn_topic_0000001295254272.xml#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ad6b81dc30e45f9f79801bf1e8ee0caef](#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ad6b81dc30e45f9f79801bf1e8ee0caef) = 0x8000008u } | 音频适配器端口的PIN脚 [更多...](#audioportpin) | -| [AudioCategory](#audiocategory) { [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref297140569083931,link:zh-cn_topic_0000001295254272.xml#ggaf210d41d152890f3aaf2aaac99bd28d5a6ac6cfd90dcc34de100c1cecb3df44c3](#ggaf210d41d152890f3aaf2aaac99bd28d5a6ac6cfd90dcc34de100c1cecb3df44c3) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1959787488083931,link:zh-cn_topic_0000001295254272.xml#ggaf210d41d152890f3aaf2aaac99bd28d5a474576c773934a0df994bad4cf781b41](#ggaf210d41d152890f3aaf2aaac99bd28d5a474576c773934a0df994bad4cf781b41), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1760094621083931,link:zh-cn_topic_0000001295254272.xml#ggaf210d41d152890f3aaf2aaac99bd28d5aa5361a2d3ed6703c130417ec243d0a69](#ggaf210d41d152890f3aaf2aaac99bd28d5aa5361a2d3ed6703c130417ec243d0a69), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref871250563083931,link:zh-cn_topic_0000001295254272.xml#ggaf210d41d152890f3aaf2aaac99bd28d5a7a6ef7c82e9a5eb63d004056eb13c894](#ggaf210d41d152890f3aaf2aaac99bd28d5a7a6ef7c82e9a5eb63d004056eb13c894) } | 音频类型(category) [更多...](#audiocategory) | -| [AudioFormat](#audioformat) {   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1847971465083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59a321cc2160af35aa86b8ee55f231ef1e6](#gga98d5d077cca088ddf77314871474fe59a321cc2160af35aa86b8ee55f231ef1e6) = 0x1u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1261428183083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59ae188cf87c8f2e6218c74b3b2385068e6](#gga98d5d077cca088ddf77314871474fe59ae188cf87c8f2e6218c74b3b2385068e6) = 0x2u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1801870868083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59a21eb864e2117df577dcd90ad81da3b14](#gga98d5d077cca088ddf77314871474fe59a21eb864e2117df577dcd90ad81da3b14) = 0x3u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref620562518083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59adf7a0bf1f3dd15c9c43fac07c0c6ea26](#gga98d5d077cca088ddf77314871474fe59adf7a0bf1f3dd15c9c43fac07c0c6ea26) = 0x4u,   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1087097448083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59a5a781e6f8b145066ae7fb2c310804bab](#gga98d5d077cca088ddf77314871474fe59a5a781e6f8b145066ae7fb2c310804bab) = 0x1000001u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1830475719083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59a3d4bc5d534d0452635455ed8d2cade57](#gga98d5d077cca088ddf77314871474fe59a3d4bc5d534d0452635455ed8d2cade57) = 0x1000002u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1989338155083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59ad4baf87ff9f4684c03483c572052b700](#gga98d5d077cca088ddf77314871474fe59ad4baf87ff9f4684c03483c572052b700) = 0x1000003u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1985412102083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59a4b8d42988fecf03e2bf73c4395501852](#gga98d5d077cca088ddf77314871474fe59a4b8d42988fecf03e2bf73c4395501852) = 0x1000004u,   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1803238353083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59abaddb86f122d3185de9407dbc673bf0e](#gga98d5d077cca088ddf77314871474fe59abaddb86f122d3185de9407dbc673bf0e) = 0x1000005u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref391270671083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59ab610e0121e0b5076b3f78831e3c237fd](#gga98d5d077cca088ddf77314871474fe59ab610e0121e0b5076b3f78831e3c237fd) = 0x1000006u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1730725146083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59a625f7a608bd66462e532762af64c5393](#gga98d5d077cca088ddf77314871474fe59a625f7a608bd66462e532762af64c5393) = 0x2000001u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref379396610083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59a6284a1ee0d6034eab8836f5d6352b3da](#gga98d5d077cca088ddf77314871474fe59a6284a1ee0d6034eab8836f5d6352b3da) = 0x2000002u,   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref203695405083931,link:zh-cn_topic_0000001295254272.xml#gga98d5d077cca088ddf77314871474fe59a46432573957951a919c84b00504b46b0](#gga98d5d077cca088ddf77314871474fe59a46432573957951a919c84b00504b46b0) = 0x2000003u } | 音频格式 [更多...](#audioformat) | -| [AudioChannelMask](#audiochannelmask) { [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref469505431083931,link:zh-cn_topic_0000001295254272.xml#gga137eb03027d5947ea294b32f5095b83ca0419483310bfc5abe46a0c586070ed18](#gga137eb03027d5947ea294b32f5095b83ca0419483310bfc5abe46a0c586070ed18) = 0x1, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1505633910083931,link:zh-cn_topic_0000001295254272.xml#gga137eb03027d5947ea294b32f5095b83ca05525a25c5912eda05e9a8786a743a75](#gga137eb03027d5947ea294b32f5095b83ca05525a25c5912eda05e9a8786a743a75) = 0x2, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1774752327083931,link:zh-cn_topic_0000001295254272.xml#gga137eb03027d5947ea294b32f5095b83ca0479e1cd2137cbbad68efae1d2b2c9a9](#gga137eb03027d5947ea294b32f5095b83ca0479e1cd2137cbbad68efae1d2b2c9a9) = 0x1u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref81777348083931,link:zh-cn_topic_0000001295254272.xml#gga137eb03027d5947ea294b32f5095b83ca70f2212ea5439c13f7fcba3e30b15c1a](#gga137eb03027d5947ea294b32f5095b83ca70f2212ea5439c13f7fcba3e30b15c1a) = 0x3u } | 音频通道掩码(mask) [更多...](#audiochannelmask) | -| [AudioSampleRatesMask](#audiosampleratesmask) {   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1216525371083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4ca046a26906a4df81bfc38c583ba3606e9](#gga7053fcaa56d1dc47d2fcd83ee131fe4ca046a26906a4df81bfc38c583ba3606e9) = 0x1u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1589795186083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4caf1f34aa763f2bf6d5f43178f2d335d10](#gga7053fcaa56d1dc47d2fcd83ee131fe4caf1f34aa763f2bf6d5f43178f2d335d10) = 0x2u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref201634848083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4ca5f13b000ef455b858506fc90d17e2dd7](#gga7053fcaa56d1dc47d2fcd83ee131fe4ca5f13b000ef455b858506fc90d17e2dd7) = 0x4u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1523021230083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4ca3102248493467e00d16c2cf1971635a7](#gga7053fcaa56d1dc47d2fcd83ee131fe4ca3102248493467e00d16c2cf1971635a7) = 0x8u,   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref292096040083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4cae7cfb2244a15cd133373cfa5e96ec82e](#gga7053fcaa56d1dc47d2fcd83ee131fe4cae7cfb2244a15cd133373cfa5e96ec82e) = 0x10u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref701474512083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4cacce4defc0cf23abfe52d399b4aa68fdf](#gga7053fcaa56d1dc47d2fcd83ee131fe4cacce4defc0cf23abfe52d399b4aa68fdf) = 0x20u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref440698404083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4ca5594285d8ef3897e9f29a15e0795b814](#gga7053fcaa56d1dc47d2fcd83ee131fe4ca5594285d8ef3897e9f29a15e0795b814) = 0x40u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1331816390083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4ca52345265822f55a62b2e038438daf37e](#gga7053fcaa56d1dc47d2fcd83ee131fe4ca52345265822f55a62b2e038438daf37e) = 0x80u,   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1378568104083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4caa52c49624fecf6d9f1d075d0d3ad0bbf](#gga7053fcaa56d1dc47d2fcd83ee131fe4caa52c49624fecf6d9f1d075d0d3ad0bbf) = 0x100u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1527587012083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4caf111a8b9762ec169361a106ba7efdb0f](#gga7053fcaa56d1dc47d2fcd83ee131fe4caf111a8b9762ec169361a106ba7efdb0f) = 0x200u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1311588140083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4caa9e4deb07b2a7c32e5a19b8c81d9fd0d](#gga7053fcaa56d1dc47d2fcd83ee131fe4caa9e4deb07b2a7c32e5a19b8c81d9fd0d) = 0x400u, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref835932715083931,link:zh-cn_topic_0000001295254272.xml#gga7053fcaa56d1dc47d2fcd83ee131fe4ca41f8d22ab95c84d0acb3d0c78679274c](#gga7053fcaa56d1dc47d2fcd83ee131fe4ca41f8d22ab95c84d0acb3d0c78679274c) = 0xFFFFFFFFu } | 音频采样频率MASK [更多...](#audiosampleratesmask) | -| [AudioPortPassthroughMode](#audioportpassthroughmode) { [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref2003128552083931,link:zh-cn_topic_0000001295254272.xml#gga186d2d4f9a2ecacb80cd2cce2bd26f0ea48da60ec7958d35e8884e67cc32cb465](#gga186d2d4f9a2ecacb80cd2cce2bd26f0ea48da60ec7958d35e8884e67cc32cb465) = 0x1, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1340675146083931,link:zh-cn_topic_0000001295254272.xml#gga186d2d4f9a2ecacb80cd2cce2bd26f0eaf44936c424fbadafda9e1a12829b291f](#gga186d2d4f9a2ecacb80cd2cce2bd26f0eaf44936c424fbadafda9e1a12829b291f) = 0x2, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref431072076083931,link:zh-cn_topic_0000001295254272.xml#gga186d2d4f9a2ecacb80cd2cce2bd26f0eada09d902428d269446b94c2b7e9eb95e](#gga186d2d4f9a2ecacb80cd2cce2bd26f0eada09d902428d269446b94c2b7e9eb95e) = 0x4, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref731183987083931,link:zh-cn_topic_0000001295254272.xml#gga186d2d4f9a2ecacb80cd2cce2bd26f0ea6fd7a77031d807247e159c3deec07e11](#gga186d2d4f9a2ecacb80cd2cce2bd26f0ea6fd7a77031d807247e159c3deec07e11) = 0x8 } | 音频端口的数据透传模式 [更多...](#audioportpassthroughmode) | -| [AudioSampleFormat](#audiosampleformat) {   [AUDIO_SAMPLE_FORMAT_S8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a2d8a330d2cb71268562e1c4da0c4eabc), [AUDIO_SAMPLE_FORMAT_S8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a4eb79a5d6d99244902cfb5c65f225c80), [AUDIO_SAMPLE_FORMAT_U8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab6d04d1d87a9a243b195ab6be183600e), [AUDIO_SAMPLE_FORMAT_U8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aeffb8620959b836e01622c7dc82ebc6d),   [AUDIO_SAMPLE_FORMAT_S16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a4422a2a04509e492ef823189d454d5a3), [AUDIO_SAMPLE_FORMAT_S16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a11a1fb37c21f722383a37fc5e6075dfe), [AUDIO_SAMPLE_FORMAT_U16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757af961944b4c8e77ee56defc30e6e61eb5), [AUDIO_SAMPLE_FORMAT_U16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a08ba605e3e58479ebb7432ff5d6d0972),   [AUDIO_SAMPLE_FORMAT_S24](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a102520af7c50d1ee4951e472f5f921e4), [AUDIO_SAMPLE_FORMAT_S24P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ae245cf6bd637c1f1304b38746f8940d6), [AUDIO_SAMPLE_FORMAT_U24](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a0d5fc3d14030aad7bc17d894bf4fc5c9), [AUDIO_SAMPLE_FORMAT_U24P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a0e8b7681ec3461988cb7fdd0f3616b2e),   [AUDIO_SAMPLE_FORMAT_S32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a46819088770f843230d2b094fd8d14ba), [AUDIO_SAMPLE_FORMAT_S32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a7883f8a4bede55eb4ffaf6ecb47f6841), [AUDIO_SAMPLE_FORMAT_U32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757afae09ccb9fdae65e73e5584a4c3a6d16), [AUDIO_SAMPLE_FORMAT_U32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a915025bfdcf9491a21b2d38dec7998cc),   [AUDIO_SAMPLE_FORMAT_S64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a2e5477f7cc05dcc271b50e570dfd0452), [AUDIO_SAMPLE_FORMAT_S64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab07b4d40994980a8012a79dc4a69a794), [AUDIO_SAMPLE_FORMAT_U64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a959950ea0f2b6c0e17d752640238c23b), [AUDIO_SAMPLE_FORMAT_U64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aad2c58522f7d16111756c1731bf52044),   [AUDIO_SAMPLE_FORMAT_F32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ac3cb5729241a7f73210d97d4fe0002fe), [AUDIO_SAMPLE_FORMAT_F32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a1121b8995d1083f61b2fa0afcc45143f), [AUDIO_SAMPLE_FORMAT_F64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a72f064169d0282fa8a152aea546056c3), [AUDIO_SAMPLE_FORMAT_F64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a1f0e407cd152b27f7b0ff761d26bb300),   [AUDIO_SAMPLE_FMT_U8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aad65a5b895b3dba000167dbb6c19b9ab), [AUDIO_SAMPLE_FMT_S16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a40335eaa7ca378540941909ed02b51a0), [AUDIO_SAMPLE_FMT_S32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab98feafb8396c0190a4fb719a15ab7c5), [AUDIO_SAMPLE_FMT_FLOAT](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ac2fb27a42b3f79e51dd71ce05b42f9db),   [AUDIO_SAMPLE_FMT_DOUBLE](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757afb8b12c44b4799f59a533609b4c360b5), [AUDIO_SAMPLE_FMT_U8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a8eb00238e7aa21d69f056d9292eb64d9), [AUDIO_SAMPLE_FMT_S16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a93008db1a966fee4a91b515fedc78cec), [AUDIO_SAMPLE_FMT_S32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a6bb874f2726bb94d08914b366ae947d6),   [AUDIO_SAMPLE_FMT_FLOATP](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a8a635bbd6c5df1a8a0fadb1d9602ea74), [AUDIO_SAMPLE_FMT_DOUBLEP](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a467bd88ce7f736a433425695ed0a0dbc), [AUDIO_SAMPLE_FMT_INVALID](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a5c8f7c2c0f84e70f609f8fd4ffd2c910) } | 原始音频样本格式 [更多...](#audiosampleformat) | -| [AudioChannelMode](#audiochannelmode) {   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1444525694083931,link:zh-cn_topic_0000001295254272.xml#gga78aab1fafb9657451804e42b42897123aa97ec21f6627e1dfd4854b5b470cdfba](#gga78aab1fafb9657451804e42b42897123aa97ec21f6627e1dfd4854b5b470cdfba) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1758738400083931,link:zh-cn_topic_0000001295254272.xml#gga78aab1fafb9657451804e42b42897123a47fd61e4531acb6b5cc058ac26af5d51](#gga78aab1fafb9657451804e42b42897123a47fd61e4531acb6b5cc058ac26af5d51), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref92277550083931,link:zh-cn_topic_0000001295254272.xml#gga78aab1fafb9657451804e42b42897123a3341b11cad1d47bda2b4a2be60dda023](#gga78aab1fafb9657451804e42b42897123a3341b11cad1d47bda2b4a2be60dda023), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref2092924788083931,link:zh-cn_topic_0000001295254272.xml#gga78aab1fafb9657451804e42b42897123a3f2e41939cc24c51213d8730c32e74e9](#gga78aab1fafb9657451804e42b42897123a3f2e41939cc24c51213d8730c32e74e9),   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1344286562083931,link:zh-cn_topic_0000001295254272.xml#gga78aab1fafb9657451804e42b42897123a2c1537bccd5c2a05d1c515e58ec4481e](#gga78aab1fafb9657451804e42b42897123a2c1537bccd5c2a05d1c515e58ec4481e), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref965246877083931,link:zh-cn_topic_0000001295254272.xml#gga78aab1fafb9657451804e42b42897123a485c0423ce07fbb7f844a387ed9bb546](#gga78aab1fafb9657451804e42b42897123a485c0423ce07fbb7f844a387ed9bb546), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref118340556083931,link:zh-cn_topic_0000001295254272.xml#gga78aab1fafb9657451804e42b42897123a0878cdf6f3e0d9ae9ae1f61b7f74257e](#gga78aab1fafb9657451804e42b42897123a0878cdf6f3e0d9ae9ae1f61b7f74257e), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1234763433083931,link:zh-cn_topic_0000001295254272.xml#gga78aab1fafb9657451804e42b42897123a22540143eb96abf8176e73c19fc0d8e5](#gga78aab1fafb9657451804e42b42897123a22540143eb96abf8176e73c19fc0d8e5) } | 音频播放的通道模式 [更多...](#audiochannelmode) | -| [AudioDrainNotifyType](#audiodrainnotifytype) { [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref775607707083931,link:zh-cn_topic_0000001295254272.xml#gga6359642a80d38bd309683186d904306da4963b68236fd3314ffee8bc02c1b5d9f](#gga6359642a80d38bd309683186d904306da4963b68236fd3314ffee8bc02c1b5d9f), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1047403888083931,link:zh-cn_topic_0000001295254272.xml#gga6359642a80d38bd309683186d904306da6502b8f1bc5e947ef45638a2155b5dff](#gga6359642a80d38bd309683186d904306da6502b8f1bc5e947ef45638a2155b5dff) } | DrainBuffer函数结束类型 [更多...](#audiodrainnotifytype) | -| [AudioCallbackType](#audiocallbacktype) {   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1832461030083931,link:zh-cn_topic_0000001295254272.xml#ggae6a108ed6d40bf9adc9124f59501e1a8ae5f3f33b8d4de2b6ae2004e46db16b4f](#ggae6a108ed6d40bf9adc9124f59501e1a8ae5f3f33b8d4de2b6ae2004e46db16b4f), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1794398377083931,link:zh-cn_topic_0000001295254272.xml#ggae6a108ed6d40bf9adc9124f59501e1a8a88770682790de22125afbee7fd0da618](#ggae6a108ed6d40bf9adc9124f59501e1a8a88770682790de22125afbee7fd0da618), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1867274954083931,link:zh-cn_topic_0000001295254272.xml#ggae6a108ed6d40bf9adc9124f59501e1a8a67b1cc122ca5bf96b68cb28bfbdfe9a8](#ggae6a108ed6d40bf9adc9124f59501e1a8a67b1cc122ca5bf96b68cb28bfbdfe9a8), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref483828898083931,link:zh-cn_topic_0000001295254272.xml#ggae6a108ed6d40bf9adc9124f59501e1a8a569f62b68b379f66e63bd8f0f8500421](#ggae6a108ed6d40bf9adc9124f59501e1a8a569f62b68b379f66e63bd8f0f8500421),   [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1991332510083931,link:zh-cn_topic_0000001295254272.xml#ggae6a108ed6d40bf9adc9124f59501e1a8a5372856fbf3214e0c54c4d4d4046bfe8](#ggae6a108ed6d40bf9adc9124f59501e1a8a5372856fbf3214e0c54c4d4d4046bfe8) } | 回调函数通知事件类型 [更多...](#audiocallbacktype) | -| [AudioPortRole](#audioportrole) { [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref2141548492083931,link:zh-cn_topic_0000001295254272.xml#gga9262d2f01824bf765fd79c2e78c9a62da87fb7ced5a0e447f2bbd1b7730d2eb7b](#gga9262d2f01824bf765fd79c2e78c9a62da87fb7ced5a0e447f2bbd1b7730d2eb7b) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref450998328083931,link:zh-cn_topic_0000001295254272.xml#gga9262d2f01824bf765fd79c2e78c9a62da22faadd2246a6ca5995c14560a9b9332](#gga9262d2f01824bf765fd79c2e78c9a62da22faadd2246a6ca5995c14560a9b9332) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1555569095083931,link:zh-cn_topic_0000001295254272.xml#gga9262d2f01824bf765fd79c2e78c9a62da6f2b666591eb7bb9106d1d998ca18ab7](#gga9262d2f01824bf765fd79c2e78c9a62da6f2b666591eb7bb9106d1d998ca18ab7) = 2 } | 音频端口角色 [更多...](#audioportrole) | -| [AudioPortType](#audioporttype) { [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1968248538083931,link:zh-cn_topic_0000001295254272.xml#ggaad9bcf12b3ab430a2f96a2af7505173bae8d72365ca8cd78b9245c874fbe06227](#ggaad9bcf12b3ab430a2f96a2af7505173bae8d72365ca8cd78b9245c874fbe06227) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref124855075083931,link:zh-cn_topic_0000001295254272.xml#ggaad9bcf12b3ab430a2f96a2af7505173ba52c6725d10840f7524b001ff71452439](#ggaad9bcf12b3ab430a2f96a2af7505173ba52c6725d10840f7524b001ff71452439) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref644032916083931,link:zh-cn_topic_0000001295254272.xml#ggaad9bcf12b3ab430a2f96a2af7505173baee29a064c72da8740173cd9e618681c1](#ggaad9bcf12b3ab430a2f96a2af7505173baee29a064c72da8740173cd9e618681c1) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1440590184083931,link:zh-cn_topic_0000001295254272.xml#ggaad9bcf12b3ab430a2f96a2af7505173ba1e16adb8496d8a0e28f0794334c425ec](#ggaad9bcf12b3ab430a2f96a2af7505173ba1e16adb8496d8a0e28f0794334c425ec) = 3 } | 音频端口类型 [更多...](#audioporttype) | -| [AudioSessionType](#audiosessiontype) { [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref250576326083931,link:zh-cn_topic_0000001295254272.xml#ggab242c41d88b46812f204052ba8509ccea0b887608f198d74497a4eb44c51f9fce](#ggab242c41d88b46812f204052ba8509ccea0b887608f198d74497a4eb44c51f9fce) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1097777551083931,link:zh-cn_topic_0000001295254272.xml#ggab242c41d88b46812f204052ba8509ccea5cd6f49112fc8a0f97fd83b0fd48b25a](#ggab242c41d88b46812f204052ba8509ccea5cd6f49112fc8a0f97fd83b0fd48b25a), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1048520415083931,link:zh-cn_topic_0000001295254272.xml#ggab242c41d88b46812f204052ba8509ccead78430579e471af7153917fbcc5aa6b4](#ggab242c41d88b46812f204052ba8509ccead78430579e471af7153917fbcc5aa6b4), [ERROR:Invalid link:zh-cn_topic_0000001295254272.xml#xref1887504163083931,link:zh-cn_topic_0000001295254272.xml#ggab242c41d88b46812f204052ba8509ccea8721a5a0498b144056551b41030afbb7](#ggab242c41d88b46812f204052ba8509ccea8721a5a0498b144056551b41030afbb7) } | 端口会话类型 [更多...](#audiosessiontype) | +| [AudioPortDirection](#audioportdirection) { PORT_OUT = 0x1u, PORT_IN = 0x2u, PORT_OUT_IN = 0x3u } | 音频端口的类型 [更多...](#audioportdirection) | +| [AudioPortPin](#audioportpin) {   PIN_NONE = 0x0u, PIN_OUT_SPEAKER = 0x1u, PIN_OUT_HEADSET = 0x2u, PIN_OUT_LINEOUT = 0x4u,   PIN_OUT_HDMI = 0x8u, PIN_OUT_USB = 0x10u, PIN_OUT_USB_EXT = 0x20u, PIN_IN_MIC = 0x8000001u,   PIN_IN_HS_MIC = 0x8000002u, PIN_IN_LINEIN = 0x8000004u, PIN_IN_USB_EXT = 0x8000008u } | 音频适配器端口的PIN脚 [更多...](#audioportpin) | +| [AudioCategory](#audiocategory) { AUDIO_IN_MEDIA = 0, AUDIO_IN_COMMUNICATION, AUDIO_IN_RINGTONE, AUDIO_IN_CALL } | 音频类型(category) [更多...](#audiocategory) | +| [AudioFormat](#audioformat) {   AUDIO_FORMAT_PCM_8_BIT = 0x1u, AUDIO_FORMAT_PCM_16_BIT = 0x2u, AUDIO_FORMAT_PCM_24_BIT = 0x3u, AUDIO_FORMAT_PCM_32_BIT = 0x4u,   AUDIO_FORMAT_AAC_MAIN = 0x1000001u, AUDIO_FORMAT_AAC_LC = 0x1000002u, AUDIO_FORMAT_AAC_LD = 0x1000003u, AUDIO_FORMAT_AAC_ELD = 0x1000004u,   AUDIO_FORMAT_AAC_HE_V1 = 0x1000005u, AUDIO_FORMAT_AAC_HE_V2 = 0x1000006u, AUDIO_FORMAT_G711A = 0x2000001u, AUDIO_FORMAT_G711U = 0x2000002u,   AUDIO_FORMAT_G726 = 0x2000003u } | 音频格式 [更多...](#audioformat) | +| [AudioChannelMask](#audiochannelmask) { AUDIO_CHANNEL_FRONT_LEFT = 0x1, AUDIO_CHANNEL_FRONT_RIGHT = 0x2, AUDIO_CHANNEL_MONO = 0x1u, AUDIO_CHANNEL_STEREO = 0x3u } | 音频通道掩码(mask) [更多...](#audiochannelmask) | +| [AudioSampleRatesMask](#audiosampleratesmask) {   AUDIO_SAMPLE_RATE_MASK_8000 = 0x1u, AUDIO_SAMPLE_RATE_MASK_12000 = 0x2u, AUDIO_SAMPLE_RATE_MASK_11025 = 0x4u, AUDIO_SAMPLE_RATE_MASK_16000 = 0x8u,   AUDIO_SAMPLE_RATE_MASK_22050 = 0x10u, AUDIO_SAMPLE_RATE_MASK_24000 = 0x20u, AUDIO_SAMPLE_RATE_MASK_32000 = 0x40u, AUDIO_SAMPLE_RATE_MASK_44100 = 0x80u,   AUDIO_SAMPLE_RATE_MASK_48000 = 0x100u, AUDIO_SAMPLE_RATE_MASK_64000 = 0x200u, AUDIO_SAMPLE_RATE_MASK_96000 = 0x400u, AUDIO_SAMPLE_RATE_MASK_INVALID = 0xFFFFFFFFu } | 音频采样频率MASK [更多...](#audiosampleratesmask) | +| [AudioPortPassthroughMode](#audioportpassthroughmode) { PORT_PASSTHROUGH_LPCM = 0x1, PORT_PASSTHROUGH_RAW = 0x2, PORT_PASSTHROUGH_HBR2LBR = 0x4, PORT_PASSTHROUGH_AUTO = 0x8 } | 音频端口的数据透传模式 [更多...](#audioportpassthroughmode) | +| [AudioSampleFormat](#audiosampleformat) {   AUDIO_SAMPLE_FORMAT_S8, AUDIO_SAMPLE_FORMAT_S8P, AUDIO_SAMPLE_FORMAT_U8, AUDIO_SAMPLE_FORMAT_U8P,   AUDIO_SAMPLE_FORMAT_S16, AUDIO_SAMPLE_FORMAT_S16P, AUDIO_SAMPLE_FORMAT_U16, AUDIO_SAMPLE_FORMAT_U16P,   AUDIO_SAMPLE_FORMAT_S24, AUDIO_SAMPLE_FORMAT_S24P, AUDIO_SAMPLE_FORMAT_U24, AUDIO_SAMPLE_FORMAT_U24P,   AUDIO_SAMPLE_FORMAT_S32, AUDIO_SAMPLE_FORMAT_S32P, AUDIO_SAMPLE_FORMAT_U32, AUDIO_SAMPLE_FORMAT_U32P,   AUDIO_SAMPLE_FORMAT_S64, AUDIO_SAMPLE_FORMAT_S64P, AUDIO_SAMPLE_FORMAT_U64, AUDIO_SAMPLE_FORMAT_U64P,   AUDIO_SAMPLE_FORMAT_F32, AUDIO_SAMPLE_FORMAT_F32P, AUDIO_SAMPLE_FORMAT_F64, AUDIO_SAMPLE_FORMAT_F64P,   AUDIO_SAMPLE_FMT_U8, AUDIO_SAMPLE_FMT_S16, AUDIO_SAMPLE_FMT_S32, AUDIO_SAMPLE_FMT_FLOAT,   AUDIO_SAMPLE_FMT_DOUBLE, AUDIO_SAMPLE_FMT_U8P, AUDIO_SAMPLE_FMT_S16P, AUDIO_SAMPLE_FMT_S32P,   AUDIO_SAMPLE_FMT_FLOATP, AUDIO_SAMPLE_FMT_DOUBLEP, AUDIO_SAMPLE_FMT_INVALID } | 原始音频样本格式 [更多...](#audiosampleformat) | +| [AudioChannelMode](#audiochannelmode) {   AUDIO_CHANNEL_NORMAL = 0, AUDIO_CHANNEL_BOTH_LEFT, AUDIO_CHANNEL_BOTH_RIGHT, AUDIO_CHANNEL_EXCHANGE,   AUDIO_CHANNEL_MIX, AUDIO_CHANNEL_LEFT_MUTE, AUDIO_CHANNEL_RIGHT_MUTE, AUDIO_CHANNEL_BOTH_MUTE } | 音频播放的通道模式 [更多...](#audiochannelmode) | +| [AudioDrainNotifyType](#audiodrainnotifytype) { AUDIO_DRAIN_NORMAL_MODE, AUDIO_DRAIN_EARLY_MODE } | DrainBuffer函数结束类型 [更多...](#audiodrainnotifytype) | +| [AudioCallbackType](#audiocallbacktype) {   AUDIO_NONBLOCK_WRITE_COMPELETED, AUDIO_DRAIN_COMPELETED, AUDIO_FLUSH_COMPLETED, AUDIO_RENDER_FULL,   AUDIO_ERROR_OCCUR } | 回调函数通知事件类型 [更多...](#audiocallbacktype) | +| [AudioPortRole](#audioportrole) { AUDIO_PORT_UNASSIGNED_ROLE = 0, AUDIO_PORT_SOURCE_ROLE = 1, AUDIO_PORT_SINK_ROLE = 2 } | 音频端口角色 [更多...](#audioportrole) | +| [AudioPortType](#audioporttype) { AUDIO_PORT_UNASSIGNED_TYPE = 0, AUDIO_PORT_DEVICE_TYPE = 1, AUDIO_PORT_MIX_TYPE = 2, AUDIO_PORT_SESSION_TYPE = 3 } | 音频端口类型 [更多...](#audioporttype) | +| [AudioSessionType](#audiosessiontype) { AUDIO_OUTPUT_STAGE_SESSION = 0, AUDIO_OUTPUT_MIX_SESSION, AUDIO_ALLOCATE_SESSION, AUDIO_INVALID_SESSION } | 端口会话类型 [更多...](#audiosessiontype) | ### 函数 diff --git a/zh-cn/device-dev/api/_camera.md b/zh-cn/device-dev/api/_camera.md index 3523eb86d0..702bea524b 100644 --- a/zh-cn/device-dev/api/_camera.md +++ b/zh-cn/device-dev/api/_camera.md @@ -47,19 +47,19 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [OHOS::Camera::CamRetCode](#camretcode) : int32_t {   [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1850988613083931,link:zh-cn_topic_0000001348293917.xml#gga9ecee2f0e6599644dc440c9e1c553b80aac4124a539038c0eb9752f19bd41db9a](#gga9ecee2f0e6599644dc440c9e1c553b80aac4124a539038c0eb9752f19bd41db9a) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref571563113083931,link:zh-cn_topic_0000001348293917.xml#gga9ecee2f0e6599644dc440c9e1c553b80a6d812337e14eb19f8afb2e70f3aad1a0](#gga9ecee2f0e6599644dc440c9e1c553b80a6d812337e14eb19f8afb2e70f3aad1a0) = -1, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1849826001083931,link:zh-cn_topic_0000001348293917.xml#gga9ecee2f0e6599644dc440c9e1c553b80a7250a9e68d64f0804d92f99e8cbc1e7e](#gga9ecee2f0e6599644dc440c9e1c553b80a7250a9e68d64f0804d92f99e8cbc1e7e) = -2, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref291745369083931,link:zh-cn_topic_0000001348293917.xml#gga9ecee2f0e6599644dc440c9e1c553b80a9cfb72153a13ecf08abb34d59bec2223](#gga9ecee2f0e6599644dc440c9e1c553b80a9cfb72153a13ecf08abb34d59bec2223) = -3,   [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1135011021083931,link:zh-cn_topic_0000001348293917.xml#gga9ecee2f0e6599644dc440c9e1c553b80ae66837f5eefe837cf5777083e1aaadcc](#gga9ecee2f0e6599644dc440c9e1c553b80ae66837f5eefe837cf5777083e1aaadcc) = -4, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1556125922083931,link:zh-cn_topic_0000001348293917.xml#gga9ecee2f0e6599644dc440c9e1c553b80a0322e66dfb3b398ead3bd50c823415cd](#gga9ecee2f0e6599644dc440c9e1c553b80a0322e66dfb3b398ead3bd50c823415cd) = -5, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1550105245083931,link:zh-cn_topic_0000001348293917.xml#gga9ecee2f0e6599644dc440c9e1c553b80a2b74d8a616b4360eec8826d9810c03c0](#gga9ecee2f0e6599644dc440c9e1c553b80a2b74d8a616b4360eec8826d9810c03c0) = -6 } | HDI接口的返回值。 [更多...](#camretcode) | -| [OHOS::Camera::ResultCallbackMode](#resultcallbackmode) : int32_t { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1226878426083931,link:zh-cn_topic_0000001348293917.xml#gga0290782009631708fe5351c54f019353a25a4a7cc14577e328d08dd1a758f784c](#gga0290782009631708fe5351c54f019353a25a4a7cc14577e328d08dd1a758f784c), [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref460002598083931,link:zh-cn_topic_0000001348293917.xml#gga0290782009631708fe5351c54f019353ab84abaca84197e5e75dc1210519ea37c](#gga0290782009631708fe5351c54f019353ab84abaca84197e5e75dc1210519ea37c) } | metadata的上报模式。 [更多...](#resultcallbackmode) | -| [OHOS::Camera::OperationMode](#operationmode) : int32_t { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1051962412083931,link:zh-cn_topic_0000001348293917.xml#ggac397708a7aefbcf48c8a32b8af367ffda66a457d6883b55722bda11ac9a47e4dd](#ggac397708a7aefbcf48c8a32b8af367ffda66a457d6883b55722bda11ac9a47e4dd) = 0 } | 流的使用模式。 [更多...](#operationmode) | -| [OHOS::Camera::StreamIntent](#streamintent) : int32_t {   [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1306449757083931,link:zh-cn_topic_0000001348293917.xml#gga2b195a400dc0113b8185900ddc231c19a2ec888585737101c7bc133d302e4ce0a](#gga2b195a400dc0113b8185900ddc231c19a2ec888585737101c7bc133d302e4ce0a) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref992295979083931,link:zh-cn_topic_0000001348293917.xml#gga2b195a400dc0113b8185900ddc231c19ad480442d11e56ef84ac7018df5637b6a](#gga2b195a400dc0113b8185900ddc231c19ad480442d11e56ef84ac7018df5637b6a) = 1, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1450183959083931,link:zh-cn_topic_0000001348293917.xml#gga2b195a400dc0113b8185900ddc231c19a5898656f053185f8a374bc35cbd4d784](#gga2b195a400dc0113b8185900ddc231c19a5898656f053185f8a374bc35cbd4d784) = 2, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1077440175083931,link:zh-cn_topic_0000001348293917.xml#gga2b195a400dc0113b8185900ddc231c19a67891a15f68cdc23c2b1bb6fdfe2d72f](#gga2b195a400dc0113b8185900ddc231c19a67891a15f68cdc23c2b1bb6fdfe2d72f) = 3,   [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref101962597083931,link:zh-cn_topic_0000001348293917.xml#gga2b195a400dc0113b8185900ddc231c19a817268e94893ff41b8a03147dfbbc94b](#gga2b195a400dc0113b8185900ddc231c19a817268e94893ff41b8a03147dfbbc94b) = 4, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref685898295083931,link:zh-cn_topic_0000001348293917.xml#gga2b195a400dc0113b8185900ddc231c19a4ca8b162608a384d4335d04a56ac3e72](#gga2b195a400dc0113b8185900ddc231c19a4ca8b162608a384d4335d04a56ac3e72) = 5 } | 流的类型。 [更多...](#streamintent) | -| [OHOS::Camera::EncodeType](#encodetype) : int32_t { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref859827503083931,link:zh-cn_topic_0000001348293917.xml#gga57d3c5974b8119b90f6f43592bd4b1d1af72ea69717272db8b03c0d2281c2f221](#gga57d3c5974b8119b90f6f43592bd4b1d1af72ea69717272db8b03c0d2281c2f221) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1499327670083931,link:zh-cn_topic_0000001348293917.xml#gga57d3c5974b8119b90f6f43592bd4b1d1a6d21ce4760d97641e66c9a6a58df6105](#gga57d3c5974b8119b90f6f43592bd4b1d1a6d21ce4760d97641e66c9a6a58df6105) = 1, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref610982733083931,link:zh-cn_topic_0000001348293917.xml#gga57d3c5974b8119b90f6f43592bd4b1d1a60e25172afdb6ca5f18db408485c1cdf](#gga57d3c5974b8119b90f6f43592bd4b1d1a60e25172afdb6ca5f18db408485c1cdf) = 2, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1698357165083931,link:zh-cn_topic_0000001348293917.xml#gga57d3c5974b8119b90f6f43592bd4b1d1a1cf15a45d92fa0eae74c778f09d4bae7](#gga57d3c5974b8119b90f6f43592bd4b1d1a1cf15a45d92fa0eae74c778f09d4bae7) = 3 } | 流数据的编码类型。 [更多...](#encodetype) | -| [OHOS::Camera::StreamSupportType](#streamsupporttype) : int32_t { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref459418693083931,link:zh-cn_topic_0000001348293917.xml#gga2de5b91b51f744902c071f89d9302d56a96466427b9427c04c0a9f9a74e21b222](#gga2de5b91b51f744902c071f89d9302d56a96466427b9427c04c0a9f9a74e21b222), [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref645113807083931,link:zh-cn_topic_0000001348293917.xml#gga2de5b91b51f744902c071f89d9302d56afb9ebd5b0f7137f06e0b636247e7419e](#gga2de5b91b51f744902c071f89d9302d56afb9ebd5b0f7137f06e0b636247e7419e), [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref783121376083931,link:zh-cn_topic_0000001348293917.xml#gga2de5b91b51f744902c071f89d9302d56a5e0d17d563241a98d968bbdb5facf05e](#gga2de5b91b51f744902c071f89d9302d56a5e0d17d563241a98d968bbdb5facf05e) } | 动态配置流的切换方式,使用场景参考 [IsStreamsSupported](#isstreamssupported) 。 [更多...](#streamsupporttype) | -| [OHOS::Camera::CameraStatus](#camerastatus) { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref183254253083931,link:zh-cn_topic_0000001348293917.xml#ggac2c065c30743f0053f460a6683845dadaefabd193aca6ec50ad022c4003b079bd](#ggac2c065c30743f0053f460a6683845dadaefabd193aca6ec50ad022c4003b079bd) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref2094706049083931,link:zh-cn_topic_0000001348293917.xml#ggac2c065c30743f0053f460a6683845dada41bd9156c9456c38aa47cf0b8b2486a2](#ggac2c065c30743f0053f460a6683845dada41bd9156c9456c38aa47cf0b8b2486a2) = 1 } | Camera设备状态。 [更多...](#camerastatus) | -| [OHOS::Camera::FlashlightStatus](#flashlightstatus) : uint32_t { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1498042712083931,link:zh-cn_topic_0000001348293917.xml#gga1a82bc94cb6ff38f7fd0dfcffab71df3a624df2112053caa6316c6ee443758d1a](#gga1a82bc94cb6ff38f7fd0dfcffab71df3a624df2112053caa6316c6ee443758d1a) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref2115915477083931,link:zh-cn_topic_0000001348293917.xml#gga1a82bc94cb6ff38f7fd0dfcffab71df3a9f360d5fdf77e2f7c1c123f3ba45bc0c](#gga1a82bc94cb6ff38f7fd0dfcffab71df3a9f360d5fdf77e2f7c1c123f3ba45bc0c) = 1, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref2110333559083931,link:zh-cn_topic_0000001348293917.xml#gga1a82bc94cb6ff38f7fd0dfcffab71df3a7fae7a9c7a791d240f3b6f6399988e8c](#gga1a82bc94cb6ff38f7fd0dfcffab71df3a7fae7a9c7a791d240f3b6f6399988e8c) = 2 } | 闪光灯状态。 [更多...](#flashlightstatus) | -| [OHOS::Camera::CameraEvent](#cameraevent) : uint32_t { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref660282900083931,link:zh-cn_topic_0000001348293917.xml#gga14253812c3a39d52d827589bf5e5b970a85028d1dd16bef4b3f60e9543f2c89d8](#gga14253812c3a39d52d827589bf5e5b970a85028d1dd16bef4b3f60e9543f2c89d8) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref99073138083931,link:zh-cn_topic_0000001348293917.xml#gga14253812c3a39d52d827589bf5e5b970a715b664103cdf584fb48ed5e7c591c06](#gga14253812c3a39d52d827589bf5e5b970a715b664103cdf584fb48ed5e7c591c06) = 1 } | Camera事件。 [更多...](#cameraevent) | -| [OHOS::Camera::ErrorType](#errortype) : uint32_t { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref729496342083931,link:zh-cn_topic_0000001348293917.xml#gga4d1b650185695d9df8652593a7bc522dad0dde9e602d14d5b583be24c5014f998](#gga4d1b650185695d9df8652593a7bc522dad0dde9e602d14d5b583be24c5014f998) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1208893271083931,link:zh-cn_topic_0000001348293917.xml#gga4d1b650185695d9df8652593a7bc522da2b8e229bcb457de66e7b2882502a4df6](#gga4d1b650185695d9df8652593a7bc522da2b8e229bcb457de66e7b2882502a4df6) = 1 } | 设备错误类型,用于设备错误回调 [OnError](#onerror)。 [更多...](#errortype) | -| [OHOS::Camera::StreamError](#streamerror) { [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref1631822168083931,link:zh-cn_topic_0000001348293917.xml#gga376e6d566c73ec98e29b7dd93763aee6ae724e09ec34e66e49c86734ceffa2a26](#gga376e6d566c73ec98e29b7dd93763aee6ae724e09ec34e66e49c86734ceffa2a26) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293917.xml#xref960469187083931,link:zh-cn_topic_0000001348293917.xml#gga376e6d566c73ec98e29b7dd93763aee6a9300ec08f81b121b74ec589fca815952](#gga376e6d566c73ec98e29b7dd93763aee6a9300ec08f81b121b74ec589fca815952) = 1 } | 流错误类型,用于流错误类型 [CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md)。 [更多...](#streamerror) | +| [OHOS::Camera::CamRetCode](#camretcode) : int32_t {   OHOS::Camera::NO_ERROR = 0, OHOS::Camera::CAMERA_BUSY = -1, OHOS::Camera::INSUFFICIENT_RESOURCES = -2, OHOS::Camera::INVALID_ARGUMENT = -3,   OHOS::Camera::METHOD_NOT_SUPPORTED = -4, OHOS::Camera::CAMERA_CLOSED = -5, OHOS::Camera::DEVICE_ERROR = -6 } | HDI接口的返回值。 [更多...](#camretcode) | +| [OHOS::Camera::ResultCallbackMode](#resultcallbackmode) : int32_t { OHOS::Camera::PER_FRAME, OHOS::Camera::ON_CHANGED } | metadata的上报模式。 [更多...](#resultcallbackmode) | +| [OHOS::Camera::OperationMode](#operationmode) : int32_t { OHOS::Camera::NORMAL = 0 } | 流的使用模式。 [更多...](#operationmode) | +| [OHOS::Camera::StreamIntent](#streamintent) : int32_t {   OHOS::Camera::PREVIEW = 0, OHOS::Camera::VIDEO = 1, OHOS::Camera::STILL_CAPTURE = 2, OHOS::Camera::POST_VIEW = 3,   OHOS::Camera::ANALYZE = 4, OHOS::Camera::CUSTOM = 5 } | 流的类型。 [更多...](#streamintent) | +| [OHOS::Camera::EncodeType](#encodetype) : int32_t { OHOS::Camera::ENCODE_TYPE_NULL = 0, OHOS::Camera::ENCODE_TYPE_H264 = 1, OHOS::Camera::ENCODE_TYPE_H265 = 2, OHOS::Camera::ENCODE_TYPE_JPEG = 3 } | 流数据的编码类型。 [更多...](#encodetype) | +| [OHOS::Camera::StreamSupportType](#streamsupporttype) : int32_t { OHOS::Camera::DYNAMIC_SUPPORTED, OHOS::Camera::RE_CONFIGURED_REQUIRED, OHOS::Camera::NOT_SUPPORTED } | 动态配置流的切换方式,使用场景参考 [IsStreamsSupported](#isstreamssupported) 。 [更多...](#streamsupporttype) | +| [OHOS::Camera::CameraStatus](#camerastatus) { OHOS::Camera::UN_AVAILABLE = 0, OHOS::Camera::AVAILABLE = 1 } | Camera设备状态。 [更多...](#camerastatus) | +| [OHOS::Camera::FlashlightStatus](#flashlightstatus) : uint32_t { OHOS::Camera::FLASHLIGHT_OFF = 0, OHOS::Camera::FLASHLIGHT_ON = 1, OHOS::Camera::FLASHLIGHT_UNAVAILABLE = 2 } | 闪光灯状态。 [更多...](#flashlightstatus) | +| [OHOS::Camera::CameraEvent](#cameraevent): uint32_t { OHOS::Camera::CAMERA_EVENT_DEVICE_ADD = 0, OHOS::Camera::CAMERA_EVENT_DEVICE_RMV = 1 } | Camera事件。 [更多...](#cameraevent) | +| [OHOS::Camera::ErrorType](#errortype) : uint32_t { OHOS::Camera::FATAL_ERROR = 0, OHOS::Camera::REQUEST_TIMEOUT = 1 } | 设备错误类型,用于设备错误回调 [OnError](#onerror)。 [更多...](#errortype) | +| [OHOS::Camera::StreamError](#streamerror) { OHOS::Camera::UNKNOWN_ERROR = 0, OHOS::Camera::BUFFER_LOST = 1 } | 流错误类型,用于流错误类型 [CaptureErrorInfo](_o_h_o_s_1_1_camera_1_1_capture_error_info.md)。 [更多...](#streamerror) | ### 函数 @@ -225,7 +225,7 @@ enum OHOS::Camera::EncodeType : int32_t | 枚举值 | **描述** | | -------- | -------- | -| ENCODE_TYPE_NULL | 未设置编码类型 | +| ENCODE_TYPE_NULL | 未设置编码类型。 | | ENCODE_TYPE_H264 | 编码类型为H264。 | | ENCODE_TYPE_H265 | 编码类型为H265。 | | ENCODE_TYPE_JPEG | 编码类型为JPEG。 | diff --git a/zh-cn/device-dev/api/_codec.md b/zh-cn/device-dev/api/_codec.md index 9371a0598b..7b98306854 100644 --- a/zh-cn/device-dev/api/_codec.md +++ b/zh-cn/device-dev/api/_codec.md @@ -53,19 +53,19 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [CodecType](#codectype) {   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1226574869083931,link:zh-cn_topic_0000001348174217.xml#gga03b4b6ae5fb82af68d46aaea3d3e4d79a19c3c7765c55583a64e21938e2439261](#gga03b4b6ae5fb82af68d46aaea3d3e4d79a19c3c7765c55583a64e21938e2439261), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1400049721083931,link:zh-cn_topic_0000001348174217.xml#gga03b4b6ae5fb82af68d46aaea3d3e4d79ad8044bc5b7d871723be90b5b6a094992](#gga03b4b6ae5fb82af68d46aaea3d3e4d79ad8044bc5b7d871723be90b5b6a094992), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1868464496083931,link:zh-cn_topic_0000001348174217.xml#gga03b4b6ae5fb82af68d46aaea3d3e4d79ae4ade329585f6c202847138e3f9cd4a4](#gga03b4b6ae5fb82af68d46aaea3d3e4d79ae4ade329585f6c202847138e3f9cd4a4), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref351084008083931,link:zh-cn_topic_0000001348174217.xml#gga03b4b6ae5fb82af68d46aaea3d3e4d79a7f7f3d3880168089c1de6d1ebc3dbb54](#gga03b4b6ae5fb82af68d46aaea3d3e4d79a7f7f3d3880168089c1de6d1ebc3dbb54),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref700718642083931,link:zh-cn_topic_0000001348174217.xml#gga03b4b6ae5fb82af68d46aaea3d3e4d79a7314b0d0e4638eaaeb8690b8555a6546](#gga03b4b6ae5fb82af68d46aaea3d3e4d79a7314b0d0e4638eaaeb8690b8555a6546) } | 枚举编解码的类型。 [更多...](#codectype) | -| [Profile](#profile) {   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1657963075083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01a6d67944b4958ad33b0eeb851bbcd169f](#gga85b10143618f300ff4f5bc6d45c72c01a6d67944b4958ad33b0eeb851bbcd169f) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2118494792083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01ad91765d6dcad7253a924d3cb30501e44](#gga85b10143618f300ff4f5bc6d45c72c01ad91765d6dcad7253a924d3cb30501e44) = 0x1000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref558204117083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01aada4d857818cd9aa1ad62cdf608dab6b](#gga85b10143618f300ff4f5bc6d45c72c01aada4d857818cd9aa1ad62cdf608dab6b), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref719764591083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01ab4255dc0e7450af4f526b85acbabfd3e](#gga85b10143618f300ff4f5bc6d45c72c01ab4255dc0e7450af4f526b85acbabfd3e),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1592491779083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01a9b54f7a8c45ea6d4804133d8de4b8dd8](#gga85b10143618f300ff4f5bc6d45c72c01a9b54f7a8c45ea6d4804133d8de4b8dd8), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2093958921083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01afaaacd4f6bdadac28b5cf49ae8f8470a](#gga85b10143618f300ff4f5bc6d45c72c01afaaacd4f6bdadac28b5cf49ae8f8470a), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1758087689083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01a7c8028283d1ff60e486b3305bf8c1adc](#gga85b10143618f300ff4f5bc6d45c72c01a7c8028283d1ff60e486b3305bf8c1adc), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1928953065083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01a5bab002f00d3d7281aedc4807123a47a](#gga85b10143618f300ff4f5bc6d45c72c01a5bab002f00d3d7281aedc4807123a47a) = 0x2000,   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref166414379083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01a323c1d6e02363f1717f7e6b33fd9a646](#gga85b10143618f300ff4f5bc6d45c72c01a323c1d6e02363f1717f7e6b33fd9a646), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref27655933083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01ab9406e6bf30a0c128c3639cce51fe246](#gga85b10143618f300ff4f5bc6d45c72c01ab9406e6bf30a0c128c3639cce51fe246), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref231585948083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01ae0d37dc2c7d39753a80f6e0ba64e5e22](#gga85b10143618f300ff4f5bc6d45c72c01ae0d37dc2c7d39753a80f6e0ba64e5e22) = 0x3000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2079710423083931,link:zh-cn_topic_0000001348174217.xml#gga85b10143618f300ff4f5bc6d45c72c01a811b9e02d8b0afa93e7ab8d2aa7e5de6](#gga85b10143618f300ff4f5bc6d45c72c01a811b9e02d8b0afa93e7ab8d2aa7e5de6) } | 枚举Codec规格。 [更多...](#profile) | -| [AudioSampleRate](#audiosamplerate) {   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1918023658083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842a65d5a1e4d1f048a33d29c9a3b6f540bd](#ggaa0280074adafe6d2581d31f71512b842a65d5a1e4d1f048a33d29c9a3b6f540bd) = 8000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref864113223083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842ac8379e14b05cdac5edfcc931ac8b33a9](#ggaa0280074adafe6d2581d31f71512b842ac8379e14b05cdac5edfcc931ac8b33a9) = 12000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1504523782083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842a57b1853b1e309bf1aa5b3a35b06b0f81](#ggaa0280074adafe6d2581d31f71512b842a57b1853b1e309bf1aa5b3a35b06b0f81) = 11025, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref215148463083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842a43395f0fe94ae2949778468e4488c3ee](#ggaa0280074adafe6d2581d31f71512b842a43395f0fe94ae2949778468e4488c3ee) = 16000,   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref291741590083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842a5e8155ecfa865686a66e004e37ce1e54](#ggaa0280074adafe6d2581d31f71512b842a5e8155ecfa865686a66e004e37ce1e54) = 22050, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref955843961083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842abd4c09d52f3da25adb108e9aa503119d](#ggaa0280074adafe6d2581d31f71512b842abd4c09d52f3da25adb108e9aa503119d) = 24000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1548100102083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842a1f94827fe757ad2857d970638b6f8d66](#ggaa0280074adafe6d2581d31f71512b842a1f94827fe757ad2857d970638b6f8d66) = 32000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1810460978083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842ac880553f2ee154a240d9414598e006a2](#ggaa0280074adafe6d2581d31f71512b842ac880553f2ee154a240d9414598e006a2) = 44100,   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1133692547083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842ade6dd509c28b66127c42d2634866b89c](#ggaa0280074adafe6d2581d31f71512b842ade6dd509c28b66127c42d2634866b89c) = 48000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref735747655083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842a925218c15bb8522796e623a09d99dbc3](#ggaa0280074adafe6d2581d31f71512b842a925218c15bb8522796e623a09d99dbc3) = 64000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1390737663083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842a48336a808a2ebcf5956995140e2d73dd](#ggaa0280074adafe6d2581d31f71512b842a48336a808a2ebcf5956995140e2d73dd) = 96000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref261510881083931,link:zh-cn_topic_0000001348174217.xml#ggaa0280074adafe6d2581d31f71512b842a0cb82ce52fb70b359a0b2232f7f465a2](#ggaa0280074adafe6d2581d31f71512b842a0cb82ce52fb70b359a0b2232f7f465a2) } | 枚举音频采样率。 [更多...](#audiosamplerate) | -| [CodecCapsMask](#codeccapsmask) { [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1008129247083931,link:zh-cn_topic_0000001348174217.xml#gga9e2fbfb8a5881de2f495933f90f23b3fa30c688a80d3e64a3f5c2a13da89eef3c](#gga9e2fbfb8a5881de2f495933f90f23b3fa30c688a80d3e64a3f5c2a13da89eef3c) = 0x1, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1068884083931,link:zh-cn_topic_0000001348174217.xml#gga9e2fbfb8a5881de2f495933f90f23b3fa33911c21f51bcd1980645cac6d0729ca](#gga9e2fbfb8a5881de2f495933f90f23b3fa33911c21f51bcd1980645cac6d0729ca) = 0x2, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1215364952083931,link:zh-cn_topic_0000001348174217.xml#gga9e2fbfb8a5881de2f495933f90f23b3fa423e1b0d0a7dc9e4abeeded920aafb5b](#gga9e2fbfb8a5881de2f495933f90f23b3fa423e1b0d0a7dc9e4abeeded920aafb5b) = 0x4, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref825851473083931,link:zh-cn_topic_0000001348174217.xml#gga9e2fbfb8a5881de2f495933f90f23b3fa0da8339e6a216573d7dc3b8d4380d96d](#gga9e2fbfb8a5881de2f495933f90f23b3fa0da8339e6a216573d7dc3b8d4380d96d) = 0x10000 } | 枚举播放能力。 [更多...](#codeccapsmask) | -| [CodecProcessMode](#codecprocessmode) {   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref611947245083931,link:zh-cn_topic_0000001348174217.xml#gga5bec468886b760c542669b1615613dc4a0324b4efc6d2095c788806bf387955fe](#gga5bec468886b760c542669b1615613dc4a0324b4efc6d2095c788806bf387955fe) = 0X1, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref177076729083931,link:zh-cn_topic_0000001348174217.xml#gga5bec468886b760c542669b1615613dc4acba39cb03563db7f38634009575fdc21](#gga5bec468886b760c542669b1615613dc4acba39cb03563db7f38634009575fdc21) = 0X2, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1743979161083931,link:zh-cn_topic_0000001348174217.xml#gga5bec468886b760c542669b1615613dc4a2ebd571bd15c86c289b04617e78584ec](#gga5bec468886b760c542669b1615613dc4a2ebd571bd15c86c289b04617e78584ec) = 0X4, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1013858360083931,link:zh-cn_topic_0000001348174217.xml#gga5bec468886b760c542669b1615613dc4a73009c59abb2943e3363ad0aeefa81c1](#gga5bec468886b760c542669b1615613dc4a73009c59abb2943e3363ad0aeefa81c1) = 0X100,   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1641056342083931,link:zh-cn_topic_0000001348174217.xml#gga5bec468886b760c542669b1615613dc4ab943f6f6a762a47e663b74f42941fe9e](#gga5bec468886b760c542669b1615613dc4ab943f6f6a762a47e663b74f42941fe9e) = 0X200, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1328533278083931,link:zh-cn_topic_0000001348174217.xml#gga5bec468886b760c542669b1615613dc4a5421710be01e8656530fb22f39e766ea](#gga5bec468886b760c542669b1615613dc4a5421710be01e8656530fb22f39e766ea) = 0X400 } | 枚举编解码处理模式。 [更多...](#codecprocessmode) | -| [AvCodecRole](#avcodecrole) {   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref173493394083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5ac261edd4c0d6eed15f6317024810dee2](#gga7c1ff03fc0cd5a8f738afae873b5d5d5ac261edd4c0d6eed15f6317024810dee2) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref688238919083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5adebef2ce1107d74e5d4f91d3452c823d](#gga7c1ff03fc0cd5a8f738afae873b5d5d5adebef2ce1107d74e5d4f91d3452c823d), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1904733606083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5af84180255d50e9ae94cedfc35ad19056](#gga7c1ff03fc0cd5a8f738afae873b5d5d5af84180255d50e9ae94cedfc35ad19056), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref978692029083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5a9e653abe452b248670825bd468f59d20](#gga7c1ff03fc0cd5a8f738afae873b5d5d5a9e653abe452b248670825bd468f59d20) = 0x10000,   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2040328027083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5ac9627d3deaca6bbf69f03c0dee1b6c05](#gga7c1ff03fc0cd5a8f738afae873b5d5d5ac9627d3deaca6bbf69f03c0dee1b6c05) = 0x10000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1552553578083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5a033c0faacbd270fa2c539686e6d60551](#gga7c1ff03fc0cd5a8f738afae873b5d5d5a033c0faacbd270fa2c539686e6d60551), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref389010746083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5ae0170e900d835de44884f483b28b10f8](#gga7c1ff03fc0cd5a8f738afae873b5d5d5ae0170e900d835de44884f483b28b10f8), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref297358192083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5a1bd136ced64ce1ab7b9e45fb0f5d75b6](#gga7c1ff03fc0cd5a8f738afae873b5d5d5a1bd136ced64ce1ab7b9e45fb0f5d75b6),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1063220299083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5a30e0f43909d411eb0f4c4fd8f9216dd8](#gga7c1ff03fc0cd5a8f738afae873b5d5d5a30e0f43909d411eb0f4c4fd8f9216dd8), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref829862961083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5aec847c178f28118703297fb600907338](#gga7c1ff03fc0cd5a8f738afae873b5d5d5aec847c178f28118703297fb600907338), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1628407345083931,link:zh-cn_topic_0000001348174217.xml#gga7c1ff03fc0cd5a8f738afae873b5d5d5aee058a8e8a635efc2ed3328440a58e45](#gga7c1ff03fc0cd5a8f738afae873b5d5d5aee058a8e8a635efc2ed3328440a58e45) } | 枚举音视频编解码组件类型。 [更多...](#avcodecrole) | -| [AudioSampleFormat](#audiosampleformat) {   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2003574848083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a2d8a330d2cb71268562e1c4da0c4eabc](#gga97cfd5633b2133e7ebe42dbb9b03e757a2d8a330d2cb71268562e1c4da0c4eabc), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref620047795083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a4eb79a5d6d99244902cfb5c65f225c80](#gga97cfd5633b2133e7ebe42dbb9b03e757a4eb79a5d6d99244902cfb5c65f225c80), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref142894648083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757ab6d04d1d87a9a243b195ab6be183600e](#gga97cfd5633b2133e7ebe42dbb9b03e757ab6d04d1d87a9a243b195ab6be183600e), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref6705514083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757aeffb8620959b836e01622c7dc82ebc6d](#gga97cfd5633b2133e7ebe42dbb9b03e757aeffb8620959b836e01622c7dc82ebc6d),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref66699849083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a4422a2a04509e492ef823189d454d5a3](#gga97cfd5633b2133e7ebe42dbb9b03e757a4422a2a04509e492ef823189d454d5a3), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1172713521083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a11a1fb37c21f722383a37fc5e6075dfe](#gga97cfd5633b2133e7ebe42dbb9b03e757a11a1fb37c21f722383a37fc5e6075dfe), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1455558145083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757af961944b4c8e77ee56defc30e6e61eb5](#gga97cfd5633b2133e7ebe42dbb9b03e757af961944b4c8e77ee56defc30e6e61eb5), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref104700168083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a08ba605e3e58479ebb7432ff5d6d0972](#gga97cfd5633b2133e7ebe42dbb9b03e757a08ba605e3e58479ebb7432ff5d6d0972),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1333780014083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a102520af7c50d1ee4951e472f5f921e4](#gga97cfd5633b2133e7ebe42dbb9b03e757a102520af7c50d1ee4951e472f5f921e4), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref924177791083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757ae245cf6bd637c1f1304b38746f8940d6](#gga97cfd5633b2133e7ebe42dbb9b03e757ae245cf6bd637c1f1304b38746f8940d6), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2030780353083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a0d5fc3d14030aad7bc17d894bf4fc5c9](#gga97cfd5633b2133e7ebe42dbb9b03e757a0d5fc3d14030aad7bc17d894bf4fc5c9), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref350166403083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a0e8b7681ec3461988cb7fdd0f3616b2e](#gga97cfd5633b2133e7ebe42dbb9b03e757a0e8b7681ec3461988cb7fdd0f3616b2e),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2089368438083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a46819088770f843230d2b094fd8d14ba](#gga97cfd5633b2133e7ebe42dbb9b03e757a46819088770f843230d2b094fd8d14ba), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref828579509083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a7883f8a4bede55eb4ffaf6ecb47f6841](#gga97cfd5633b2133e7ebe42dbb9b03e757a7883f8a4bede55eb4ffaf6ecb47f6841), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1544127027083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757afae09ccb9fdae65e73e5584a4c3a6d16](#gga97cfd5633b2133e7ebe42dbb9b03e757afae09ccb9fdae65e73e5584a4c3a6d16), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2141626376083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a915025bfdcf9491a21b2d38dec7998cc](#gga97cfd5633b2133e7ebe42dbb9b03e757a915025bfdcf9491a21b2d38dec7998cc),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref584049049083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a2e5477f7cc05dcc271b50e570dfd0452](#gga97cfd5633b2133e7ebe42dbb9b03e757a2e5477f7cc05dcc271b50e570dfd0452), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1992155113083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757ab07b4d40994980a8012a79dc4a69a794](#gga97cfd5633b2133e7ebe42dbb9b03e757ab07b4d40994980a8012a79dc4a69a794), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1735639451083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a959950ea0f2b6c0e17d752640238c23b](#gga97cfd5633b2133e7ebe42dbb9b03e757a959950ea0f2b6c0e17d752640238c23b), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1946681433083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757aad2c58522f7d16111756c1731bf52044](#gga97cfd5633b2133e7ebe42dbb9b03e757aad2c58522f7d16111756c1731bf52044),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1380270506083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757ac3cb5729241a7f73210d97d4fe0002fe](#gga97cfd5633b2133e7ebe42dbb9b03e757ac3cb5729241a7f73210d97d4fe0002fe), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref614528807083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a1121b8995d1083f61b2fa0afcc45143f](#gga97cfd5633b2133e7ebe42dbb9b03e757a1121b8995d1083f61b2fa0afcc45143f), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref898289380083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a72f064169d0282fa8a152aea546056c3](#gga97cfd5633b2133e7ebe42dbb9b03e757a72f064169d0282fa8a152aea546056c3), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2105995988083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a1f0e407cd152b27f7b0ff761d26bb300](#gga97cfd5633b2133e7ebe42dbb9b03e757a1f0e407cd152b27f7b0ff761d26bb300),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref181714056083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757aad65a5b895b3dba000167dbb6c19b9ab](#gga97cfd5633b2133e7ebe42dbb9b03e757aad65a5b895b3dba000167dbb6c19b9ab), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1331090330083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a40335eaa7ca378540941909ed02b51a0](#gga97cfd5633b2133e7ebe42dbb9b03e757a40335eaa7ca378540941909ed02b51a0), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref786053352083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757ab98feafb8396c0190a4fb719a15ab7c5](#gga97cfd5633b2133e7ebe42dbb9b03e757ab98feafb8396c0190a4fb719a15ab7c5), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2109222277083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757ac2fb27a42b3f79e51dd71ce05b42f9db](#gga97cfd5633b2133e7ebe42dbb9b03e757ac2fb27a42b3f79e51dd71ce05b42f9db),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref612599514083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757afb8b12c44b4799f59a533609b4c360b5](#gga97cfd5633b2133e7ebe42dbb9b03e757afb8b12c44b4799f59a533609b4c360b5), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref667066201083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a8eb00238e7aa21d69f056d9292eb64d9](#gga97cfd5633b2133e7ebe42dbb9b03e757a8eb00238e7aa21d69f056d9292eb64d9), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1989032944083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a93008db1a966fee4a91b515fedc78cec](#gga97cfd5633b2133e7ebe42dbb9b03e757a93008db1a966fee4a91b515fedc78cec), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1021492727083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a6bb874f2726bb94d08914b366ae947d6](#gga97cfd5633b2133e7ebe42dbb9b03e757a6bb874f2726bb94d08914b366ae947d6),   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref257850676083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a8a635bbd6c5df1a8a0fadb1d9602ea74](#gga97cfd5633b2133e7ebe42dbb9b03e757a8a635bbd6c5df1a8a0fadb1d9602ea74), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref385515098083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a467bd88ce7f736a433425695ed0a0dbc](#gga97cfd5633b2133e7ebe42dbb9b03e757a467bd88ce7f736a433425695ed0a0dbc), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref342798447083931,link:zh-cn_topic_0000001348174217.xml#gga97cfd5633b2133e7ebe42dbb9b03e757a5c8f7c2c0f84e70f609f8fd4ffd2c910](#gga97cfd5633b2133e7ebe42dbb9b03e757a5c8f7c2c0f84e70f609f8fd4ffd2c910) } | 枚举音频采样格式。 [更多...](#audiosampleformat) | -| [CodecBufferType](#codecbuffertype) {   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1110288353083931,link:zh-cn_topic_0000001348174217.xml#ggaf63c168decbe7dc156ad3b4d575a0d46aba35b6e9b3ca08afcb012f723c07baee](#ggaf63c168decbe7dc156ad3b4d575a0d46aba35b6e9b3ca08afcb012f723c07baee) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2088381045083931,link:zh-cn_topic_0000001348174217.xml#ggaf63c168decbe7dc156ad3b4d575a0d46a4df6de0078bcf908fdb12d0ec1486899](#ggaf63c168decbe7dc156ad3b4d575a0d46a4df6de0078bcf908fdb12d0ec1486899) = 0x1, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref858706672083931,link:zh-cn_topic_0000001348174217.xml#ggaf63c168decbe7dc156ad3b4d575a0d46aaba95e9bf8ffbd7fe7512bc842d70ca5](#ggaf63c168decbe7dc156ad3b4d575a0d46aaba95e9bf8ffbd7fe7512bc842d70ca5) = 0x2, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref995851734083931,link:zh-cn_topic_0000001348174217.xml#ggaf63c168decbe7dc156ad3b4d575a0d46a90db1a10a238c832937c7a0e02287a79](#ggaf63c168decbe7dc156ad3b4d575a0d46a90db1a10a238c832937c7a0e02287a79) = 0x4,   [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2022100500083931,link:zh-cn_topic_0000001348174217.xml#ggaf63c168decbe7dc156ad3b4d575a0d46a931ecc36727f5eb3baba00e0d2b8771e](#ggaf63c168decbe7dc156ad3b4d575a0d46a931ecc36727f5eb3baba00e0d2b8771e) = 0x8 } | 定义buffer类型。 [更多...](#codecbuffertype) | -| [ShareMemTypes](#sharememtypes) { [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref2102640873083931,link:zh-cn_topic_0000001348174217.xml#ggae84516e039a3963772dfeebd4937cb8daa268821c7f672c1b968aeed0ad745dd0](#ggae84516e039a3963772dfeebd4937cb8daa268821c7f672c1b968aeed0ad745dd0) = 0x1, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1705786981083931,link:zh-cn_topic_0000001348174217.xml#ggae84516e039a3963772dfeebd4937cb8daa5af6f1eec0b9f19c72a1085cef7c0ff](#ggae84516e039a3963772dfeebd4937cb8daa5af6f1eec0b9f19c72a1085cef7c0ff) = 0x2 } | 枚举共享内存类型。 [更多...](#sharememtypes) | -| [OmxIndexCodecExType](#omxindexcodecextype) { [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1239243344083931,link:zh-cn_topic_0000001348174217.xml#gga0ab3a4efe29745d2b49944c4014e0c28a228f8b3c93f68da516a76db3f594625d](#gga0ab3a4efe29745d2b49944c4014e0c28a228f8b3c93f68da516a76db3f594625d) = OMX_IndexKhronosExtensions + 0x00a00000, [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref234312713083931,link:zh-cn_topic_0000001348174217.xml#gga0ab3a4efe29745d2b49944c4014e0c28aaab75f888d711f3168327535312117fa](#gga0ab3a4efe29745d2b49944c4014e0c28aaab75f888d711f3168327535312117fa), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref1353327798083931,link:zh-cn_topic_0000001348174217.xml#gga0ab3a4efe29745d2b49944c4014e0c28a353c3ccfb9985619526c0c7a28c9cce8](#gga0ab3a4efe29745d2b49944c4014e0c28a353c3ccfb9985619526c0c7a28c9cce8), [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref663473178083931,link:zh-cn_topic_0000001348174217.xml#gga0ab3a4efe29745d2b49944c4014e0c28a3dea5e61dc211290d54d79d35679199d](#gga0ab3a4efe29745d2b49944c4014e0c28a3dea5e61dc211290d54d79d35679199d) } | 枚举Codec扩展index。 [更多...](#omxindexcodecextype) | -| [OmxVideoExType](#omxvideoextype) { [ERROR:Invalid link:zh-cn_topic_0000001348174217.xml#xref979218263083931,link:zh-cn_topic_0000001348174217.xml#ggab1cbacdf16bc8912e69547b37022a9c1acf4ea0b624499e3a53c3b36f6217f6fe](#ggab1cbacdf16bc8912e69547b37022a9c1acf4ea0b624499e3a53c3b36f6217f6fe) = 11 } | 枚举Codec扩展编码类型。 [更多...](#omxvideoextype) | +| [CodecType](#codectype) { VIDEO_DECODER, VIDEO_ENCODER, AUDIO_DECODER, AUDIO_ENCODER,   INVALID_TYPE } | 枚举编解码的类型。 [更多...](#codectype) | +| [Profile](#profile) { INVALID_PROFILE = 0, AAC_LC_PROFILE = 0x1000, AAC_MAIN_PROFILE, AAC_HE_V1_PROFILE,   AAC_HE_V2_PROFILE, AAC_LD_PROFILE, AAC_ELD_PROFILE, AVC_BASELINE_PROFILE = 0x2000,   AVC_MAIN_PROFILE, AVC_HIGH_PROFILE, HEVC_MAIN_PROFILE = 0x3000, HEVC_MAIN_10_PROFILE } | 枚举Codec规格。 [更多...](#profile) | +| [AudioSampleRate](#audiosamplerate) {   AUD_SAMPLE_RATE_8000 = 8000, AUD_SAMPLE_RATE_12000 = 12000, AUD_SAMPLE_RATE_11025 = 11025, AUD_SAMPLE_RATE_16000 = 16000,   AUD_SAMPLE_RATE_22050 = 22050, AUD_SAMPLE_RATE_24000 = 24000, AUD_SAMPLE_RATE_32000 = 32000, AUD_SAMPLE_RATE_44100 = 44100,   AUD_SAMPLE_RATE_48000 = 48000, AUD_SAMPLE_RATE_64000 = 64000, AUD_SAMPLE_RATE_96000 = 96000, AUD_SAMPLE_RATE_INVALID } | 枚举音频采样率。 [更多...](#audiosamplerate) | +| [CodecCapsMask](#codeccapsmask) { CODEC_CAP_ADAPTIVE_PLAYBACK = 0x1, CODEC_CAP_SECURE_PLAYBACK = 0x2, CODEC_CAP_TUNNEL_PLAYBACK = 0x4, CODEC_CAP_MULTI_PLANE = 0x10000 } | 枚举播放能力。 [更多...](#codeccapsmask) | +| [CodecProcessMode](#codecprocessmode) {   PROCESS_BLOCKING_INPUT_BUFFER = 0X1, PROCESS_BLOCKING_OUTPUT_BUFFER = 0X2, PROCESS_BLOCKING_CONTROL_FLOW = 0X4, PROCESS_NONBLOCKING_INPUT_BUFFER = 0X100,   PROCESS_NONBLOCKING_OUTPUT_BUFFER = 0X200, PROCESS_NONBLOCKING_CONTROL_FLOW = 0X400 } | 枚举编解码处理模式。 [更多...](#codecprocessmode) | +| [AvCodecRole](#avcodecrole) {   MEDIA_ROLETYPE_IMAGE_JPEG = 0, MEDIA_ROLETYPE_VIDEO_AVC, MEDIA_ROLETYPE_VIDEO_HEVC, MEDIA_ROLETYPE_AUDIO_FIRST = 0x10000,   MEDIA_ROLETYPE_AUDIO_AAC = 0x10000, MEDIA_ROLETYPE_AUDIO_G711A, MEDIA_ROLETYPE_AUDIO_G711U, MEDIA_ROLETYPE_AUDIO_G726,   MEDIA_ROLETYPE_AUDIO_PCM, MEDIA_ROLETYPE_AUDIO_MP3, MEDIA_ROLETYPE_INVALID } | 枚举音视频编解码组件类型。 [更多...](#avcodecrole) | +| [AudioSampleFormat](#audiosampleformat) {   AUDIO_SAMPLE_FORMAT_S8, AUDIO_SAMPLE_FORMAT_S8P, AUDIO_SAMPLE_FORMAT_U8, AUDIO_SAMPLE_FORMAT_U8P,   AUDIO_SAMPLE_FORMAT_S16, AUDIO_SAMPLE_FORMAT_S16P, AUDIO_SAMPLE_FORMAT_U16, AUDIO_SAMPLE_FORMAT_U16P,   AUDIO_SAMPLE_FORMAT_S24, AUDIO_SAMPLE_FORMAT_S24P, AUDIO_SAMPLE_FORMAT_U24, AUDIO_SAMPLE_FORMAT_U24P,   AUDIO_SAMPLE_FORMAT_S32, AUDIO_SAMPLE_FORMAT_S32P, AUDIO_SAMPLE_FORMAT_U32, AUDIO_SAMPLE_FORMAT_U32P,   AUDIO_SAMPLE_FORMAT_S64, AUDIO_SAMPLE_FORMAT_S64P, AUDIO_SAMPLE_FORMAT_U64, AUDIO_SAMPLE_FORMAT_U64P,   AUDIO_SAMPLE_FORMAT_F32, AUDIO_SAMPLE_FORMAT_F32P, AUDIO_SAMPLE_FORMAT_F64, AUDIO_SAMPLE_FORMAT_F64P,   AUDIO_SAMPLE_FMT_U8, AUDIO_SAMPLE_FMT_S16, AUDIO_SAMPLE_FMT_S32, AUDIO_SAMPLE_FMT_FLOAT,   AUDIO_SAMPLE_FMT_DOUBLE, AUDIO_SAMPLE_FMT_U8P, AUDIO_SAMPLE_FMT_S16P, AUDIO_SAMPLE_FMT_S32P,   AUDIO_SAMPLE_FMT_FLOATP, AUDIO_SAMPLE_FMT_DOUBLEP, AUDIO_SAMPLE_FMT_INVALID } | 枚举音频采样格式。 [更多...](#audiosampleformat) | +| [CodecBufferType](#codecbuffertype) {   CODEC_BUFFER_TYPE_INVALID = 0, CODEC_BUFFER_TYPE_VIRTUAL_ADDR = 0x1, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD = 0x2, CODEC_BUFFER_TYPE_HANDLE = 0x4,   CODEC_BUFFER_TYPE_DYNAMIC_HANDLE = 0x8 } | 定义buffer类型。 [更多...](#codecbuffertype) | +| [ShareMemTypes](#sharememtypes) { READ_WRITE_TYPE = 0x1, READ_ONLY_TYPE = 0x2 } | 枚举共享内存类型。 [更多...](#sharememtypes) | +| [OmxIndexCodecExType](#omxindexcodecextype) { OMX_IndexExtBufferTypeStartUnused = OMX_IndexKhronosExtensions + 0x00a00000, OMX_IndexParamSupportBufferType, OMX_IndexParamUseBufferType, OMX_IndexParamGetBufferHandleUsage } | 枚举Codec扩展index。 [更多...](#omxindexcodecextype) | +| [OmxVideoExType](#omxvideoextype) { OMX_VIDEO_CodingHEVC = 11 } | 枚举Codec扩展编码类型。 [更多...](#omxvideoextype) | ### 函数 diff --git a/zh-cn/device-dev/api/_display.md b/zh-cn/device-dev/api/_display.md index 76e1605577..45e1ff9854 100644 --- a/zh-cn/device-dev/api/_display.md +++ b/zh-cn/device-dev/api/_display.md @@ -63,27 +63,27 @@ ### 枚举 - | 枚举 | 描述 | -| -------- | -------- | -| [DispErrCode](#disperrcode) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref467931723083931,link:zh-cn_topic_0000001295414172.xml#gga12a925dadef7573cd74d63d06824f9b0a188daac95e787159d50ff9546536035b](#gga12a925dadef7573cd74d63d06824f9b0a188daac95e787159d50ff9546536035b) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref461318324083931,link:zh-cn_topic_0000001295414172.xml#gga12a925dadef7573cd74d63d06824f9b0afdffc20c71fb142c3e7f01323a31d742](#gga12a925dadef7573cd74d63d06824f9b0afdffc20c71fb142c3e7f01323a31d742) = -1, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1573229612083931,link:zh-cn_topic_0000001295414172.xml#gga12a925dadef7573cd74d63d06824f9b0a5bdb0a826a652f51e6c82685ae08ede8](#gga12a925dadef7573cd74d63d06824f9b0a5bdb0a826a652f51e6c82685ae08ede8) = -2, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref628139164083931,link:zh-cn_topic_0000001295414172.xml#gga12a925dadef7573cd74d63d06824f9b0a330e09be303bc7056f6115830bbd2370](#gga12a925dadef7573cd74d63d06824f9b0a330e09be303bc7056f6115830bbd2370) = -3,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref116149628083931,link:zh-cn_topic_0000001295414172.xml#gga12a925dadef7573cd74d63d06824f9b0a82fbcdba6c699059bc04b491c92424ac](#gga12a925dadef7573cd74d63d06824f9b0a82fbcdba6c699059bc04b491c92424ac) = -4, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1147568460083931,link:#entry1871899482083931p0](#entry1871899482083931p0) = -5, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref632114308083931,link:zh-cn_topic_0000001295414172.xml#gga12a925dadef7573cd74d63d06824f9b0af186ab511133fa3280c54d2c44358882](#gga12a925dadef7573cd74d63d06824f9b0af186ab511133fa3280c54d2c44358882) = -6, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref183420496083931,link:zh-cn_topic_0000001295414172.xml#gga12a925dadef7573cd74d63d06824f9b0ac11b678fc04745ff4d91f4398b83c427](#gga12a925dadef7573cd74d63d06824f9b0ac11b678fc04745ff4d91f4398b83c427) = -7,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1225838925083931,link:zh-cn_topic_0000001295414172.xml#gga12a925dadef7573cd74d63d06824f9b0ad133674b9f3b857a12791479aaf58cf8](#gga12a925dadef7573cd74d63d06824f9b0ad133674b9f3b857a12791479aaf58cf8) = -8 } | 返回值类型定义。 [更多...](#disperrcode) | -| [LayerType](#layertype) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref33455598083931,link:zh-cn_topic_0000001295414172.xml#gga56943a0946e5f15e5e58054b8e7a04a4a6ef157ea82a5d4c1715b3cddcca38d6f](#gga56943a0946e5f15e5e58054b8e7a04a4a6ef157ea82a5d4c1715b3cddcca38d6f), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1928108280083931,link:zh-cn_topic_0000001295414172.xml#gga56943a0946e5f15e5e58054b8e7a04a4ac33e449941bc0e4d039b4b5bed853a78](#gga56943a0946e5f15e5e58054b8e7a04a4ac33e449941bc0e4d039b4b5bed853a78), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1214480178083931,link:zh-cn_topic_0000001295414172.xml#gga56943a0946e5f15e5e58054b8e7a04a4a0aef2c460a206fa00c742219d65be477](#gga56943a0946e5f15e5e58054b8e7a04a4a0aef2c460a206fa00c742219d65be477), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1743879312083931,link:zh-cn_topic_0000001295414172.xml#gga56943a0946e5f15e5e58054b8e7a04a4a44b3a657e6bf4f1f5709c03a94a11019](#gga56943a0946e5f15e5e58054b8e7a04a4a44b3a657e6bf4f1f5709c03a94a11019),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1133479067083931,link:zh-cn_topic_0000001295414172.xml#gga56943a0946e5f15e5e58054b8e7a04a4acd813c5ad9a2be97c85a97d4bdf1cb57](#gga56943a0946e5f15e5e58054b8e7a04a4acd813c5ad9a2be97c85a97d4bdf1cb57) } | 图层类型定义。 [更多...](#layertype) | -| {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref146139778083931,link:zh-cn_topic_0000001295414172.xml#ggadf764cbdea00d65edcd07bb9953ad2b7a9bb139ab93fcaceac48e52bac1be53dc](#ggadf764cbdea00d65edcd07bb9953ad2b7a9bb139ab93fcaceac48e52bac1be53dc) = (1 << 0), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1607643731083931,link:zh-cn_topic_0000001295414172.xml#ggadf764cbdea00d65edcd07bb9953ad2b7a29217cbafbb6666fe1e8d96f3c368a4d](#ggadf764cbdea00d65edcd07bb9953ad2b7a29217cbafbb6666fe1e8d96f3c368a4d) = (1 << 1), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1226143925083931,link:zh-cn_topic_0000001295414172.xml#ggadf764cbdea00d65edcd07bb9953ad2b7a9126b10e53b48304a5d9c351b1ace6d4](#ggadf764cbdea00d65edcd07bb9953ad2b7a9126b10e53b48304a5d9c351b1ace6d4) = (1 << 2), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1354412377083931,link:zh-cn_topic_0000001295414172.xml#ggadf764cbdea00d65edcd07bb9953ad2b7af7d33fd75c60375bef211629ff02d8c4](#ggadf764cbdea00d65edcd07bb9953ad2b7af7d33fd75c60375bef211629ff02d8c4) = (1 << 3),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1235654974083931,link:zh-cn_topic_0000001295414172.xml#ggadf764cbdea00d65edcd07bb9953ad2b7a16042b501b66017d663c3f5bcd24a20f](#ggadf764cbdea00d65edcd07bb9953ad2b7a16042b501b66017d663c3f5bcd24a20f) = (1 << 4), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1166165519083931,link:zh-cn_topic_0000001295414172.xml#ggadf764cbdea00d65edcd07bb9953ad2b7a553664654199ebde6733a830cbe0a369](#ggadf764cbdea00d65edcd07bb9953ad2b7a553664654199ebde6733a830cbe0a369) = (1 << 5), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref867019725083931,link:zh-cn_topic_0000001295414172.xml#ggadf764cbdea00d65edcd07bb9953ad2b7a110b955655861ef11167e907be5f18fc](#ggadf764cbdea00d65edcd07bb9953ad2b7a110b955655861ef11167e907be5f18fc) = (1 << 6), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref475703695083931,link:zh-cn_topic_0000001295414172.xml#ggadf764cbdea00d65edcd07bb9953ad2b7a44d0fd6e88dbbe9e78c44cc8e5bddc22](#ggadf764cbdea00d65edcd07bb9953ad2b7a44d0fd6e88dbbe9e78c44cc8e5bddc22) = (1 << 7) } | 缓冲区定义。[更多...](#anonymous-enum) | -| [PixelFormat](#pixelformat) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1732209840083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aabdea255b6e5f2920977f11d21445b34a](#gga60883d4958a60b91661e97027a85072aabdea255b6e5f2920977f11d21445b34a) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2042431780083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa5740c66a546552c0c5a4bc06850af584](#gga60883d4958a60b91661e97027a85072aa5740c66a546552c0c5a4bc06850af584), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1240468655083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aabde13e8f357e39981973929309bb0e0e](#gga60883d4958a60b91661e97027a85072aabde13e8f357e39981973929309bb0e0e), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2130788661083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa5fae320872be3ffdda0d371cec048ec6](#gga60883d4958a60b91661e97027a85072aa5fae320872be3ffdda0d371cec048ec6),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref58537565083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa4c16147153b63d7ba71b257111afdd62](#gga60883d4958a60b91661e97027a85072aa4c16147153b63d7ba71b257111afdd62), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref999360489083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aaa479ac0d983fde9b4f7f0e1a3b3e230f](#gga60883d4958a60b91661e97027a85072aaa479ac0d983fde9b4f7f0e1a3b3e230f), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2110176620083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aacbb91256e8c45a51410a9f6caae2d04c](#gga60883d4958a60b91661e97027a85072aacbb91256e8c45a51410a9f6caae2d04c), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1175419870083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa7d18a83da06902c104208031ed487942](#gga60883d4958a60b91661e97027a85072aa7d18a83da06902c104208031ed487942),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref278468690083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa85e5dd1a0e547c0031baffd02abb31a0](#gga60883d4958a60b91661e97027a85072aa85e5dd1a0e547c0031baffd02abb31a0), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref495124063083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aadc1387526a271d8c6db7729de06474b1](#gga60883d4958a60b91661e97027a85072aadc1387526a271d8c6db7729de06474b1), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2005992881083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa720a429fa57133f6e27ef8c8fa1c404a](#gga60883d4958a60b91661e97027a85072aa720a429fa57133f6e27ef8c8fa1c404a), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1851802084083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa24a7181b7fb4019e7c19739bd9b65ff0](#gga60883d4958a60b91661e97027a85072aa24a7181b7fb4019e7c19739bd9b65ff0),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref981238871083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa90b462672221691ed66cacb07dd2e05f](#gga60883d4958a60b91661e97027a85072aa90b462672221691ed66cacb07dd2e05f), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1496414706083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa7ff77397bf2cf52b4614a46264f8ce01](#gga60883d4958a60b91661e97027a85072aa7ff77397bf2cf52b4614a46264f8ce01), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref18225218083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aaec581b908c291e2bd0155e25169f9629](#gga60883d4958a60b91661e97027a85072aaec581b908c291e2bd0155e25169f9629), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref911606020083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa6b5a7b35e00fc25146de0c9bf88b0230](#gga60883d4958a60b91661e97027a85072aa6b5a7b35e00fc25146de0c9bf88b0230),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1458046858083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa2f3d4ada099b2e8d84ec4501fbc8bed9](#gga60883d4958a60b91661e97027a85072aa2f3d4ada099b2e8d84ec4501fbc8bed9), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1137952576083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aaaf1a20dc0a597258cfe6aca806a8e0de](#gga60883d4958a60b91661e97027a85072aaaf1a20dc0a597258cfe6aca806a8e0de), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref562635814083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa2319d4a75dae0b56776fa63d525e308b](#gga60883d4958a60b91661e97027a85072aa2319d4a75dae0b56776fa63d525e308b), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1618305575083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa1b19279f89c8cfb60e7d77ce23cd5f43](#gga60883d4958a60b91661e97027a85072aa1b19279f89c8cfb60e7d77ce23cd5f43),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref758967891083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aaeb31c670120a1fbc96a0e0887997fe16](#gga60883d4958a60b91661e97027a85072aaeb31c670120a1fbc96a0e0887997fe16), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1617335806083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aac73c2a84907a53ed95a329007b5c8992](#gga60883d4958a60b91661e97027a85072aac73c2a84907a53ed95a329007b5c8992), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref298059959083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aabdf1224848278508479ce97f637dd711](#gga60883d4958a60b91661e97027a85072aabdf1224848278508479ce97f637dd711), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref73739201083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa8bf97d66e26b3aad7c83dfa70e2bc451](#gga60883d4958a60b91661e97027a85072aa8bf97d66e26b3aad7c83dfa70e2bc451),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref357426934083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa0d1db50eb492f9073abdd2d662c56396](#gga60883d4958a60b91661e97027a85072aa0d1db50eb492f9073abdd2d662c56396), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1072753167083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa1fa43c8a197d5c974a35b8bf02ab386e](#gga60883d4958a60b91661e97027a85072aa1fa43c8a197d5c974a35b8bf02ab386e), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref250680627083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aaa2fe085e63428ea76e1d975175001dc6](#gga60883d4958a60b91661e97027a85072aaa2fe085e63428ea76e1d975175001dc6), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref403598730083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aab04eb6e1d940e42f3b4cc20c0a44c4ee](#gga60883d4958a60b91661e97027a85072aab04eb6e1d940e42f3b4cc20c0a44c4ee),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref281652873083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa3d80e785bed28e2b3f5c7df563500962](#gga60883d4958a60b91661e97027a85072aa3d80e785bed28e2b3f5c7df563500962), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref793358918083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa3dc5a0a5ad2f21218b446c477277210a](#gga60883d4958a60b91661e97027a85072aa3dc5a0a5ad2f21218b446c477277210a), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2099129983083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa3980def5b133584bdb2982a71f07798e](#gga60883d4958a60b91661e97027a85072aa3980def5b133584bdb2982a71f07798e), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1329036123083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aadfd69bd5b421aad5bdd39d5f33317197](#gga60883d4958a60b91661e97027a85072aadfd69bd5b421aad5bdd39d5f33317197),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1795868980083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aaf851031c336e8d9f57c940c5f52381f4](#gga60883d4958a60b91661e97027a85072aaf851031c336e8d9f57c940c5f52381f4), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref626327261083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa317a761939335025379d382074a1541c](#gga60883d4958a60b91661e97027a85072aa317a761939335025379d382074a1541c), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref910922561083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa67668ea067a31a8479aece94094bc547](#gga60883d4958a60b91661e97027a85072aa67668ea067a31a8479aece94094bc547) = 0X7FFF0000, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref440016946083931,link:zh-cn_topic_0000001295414172.xml#gga60883d4958a60b91661e97027a85072aa07086bb3356c9c88959eee00c0982684](#gga60883d4958a60b91661e97027a85072aa07086bb3356c9c88959eee00c0982684) = 0X7FFFFFFF } | 像素格式类型定义。 [更多...](#pixelformat) | -| [TransformType](#transformtype) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref775310058083931,link:zh-cn_topic_0000001295414172.xml#ggaa65f3b21a9a92ff022e435a7304126d2a68e349e9d45a8eba440e2a7a3ba31ec9](#ggaa65f3b21a9a92ff022e435a7304126d2a68e349e9d45a8eba440e2a7a3ba31ec9) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref436596700083931,link:zh-cn_topic_0000001295414172.xml#ggaa65f3b21a9a92ff022e435a7304126d2a685062467b0c1a3164556335b467c886](#ggaa65f3b21a9a92ff022e435a7304126d2a685062467b0c1a3164556335b467c886), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1295314303083931,link:zh-cn_topic_0000001295414172.xml#ggaa65f3b21a9a92ff022e435a7304126d2a186263164422bb8f0eb5f7b7d195a3d1](#ggaa65f3b21a9a92ff022e435a7304126d2a186263164422bb8f0eb5f7b7d195a3d1), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1082872368083931,link:zh-cn_topic_0000001295414172.xml#ggaa65f3b21a9a92ff022e435a7304126d2a554e734d2a23790b248c5ce39816c18f](#ggaa65f3b21a9a92ff022e435a7304126d2a554e734d2a23790b248c5ce39816c18f),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1630028750083931,link:zh-cn_topic_0000001295414172.xml#ggaa65f3b21a9a92ff022e435a7304126d2a9b6ff871536aeef2a8e3ce4a753988ed](#ggaa65f3b21a9a92ff022e435a7304126d2a9b6ff871536aeef2a8e3ce4a753988ed) } | 图层变换类型定义。 [更多...](#transformtype) | -| [BlendType](#blendtype) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1630535161083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817ae410edb34509ca21425fe5872bbc7e2f](#ggaab1839ed4aab1030dfda801a51e68817ae410edb34509ca21425fe5872bbc7e2f) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1293460839083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a6330cee419fbdafc0b25f0aa068814e5](#ggaab1839ed4aab1030dfda801a51e68817a6330cee419fbdafc0b25f0aa068814e5), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1180798558083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817af01da0c255cdbf67d0774a67c2d221b5](#ggaab1839ed4aab1030dfda801a51e68817af01da0c255cdbf67d0774a67c2d221b5), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1762594512083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817ad4c0cd02aa4b5f4849e2b29a26481dde](#ggaab1839ed4aab1030dfda801a51e68817ad4c0cd02aa4b5f4849e2b29a26481dde),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref978725557083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a21f03e8d04a58ed0684b39eb84bdb89f](#ggaab1839ed4aab1030dfda801a51e68817a21f03e8d04a58ed0684b39eb84bdb89f), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref54214776083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a74e681f6c9027bb2cf0bda3b72d2dd9e](#ggaab1839ed4aab1030dfda801a51e68817a74e681f6c9027bb2cf0bda3b72d2dd9e), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref504312733083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a19f528828d75c34e18375219f113d9bb](#ggaab1839ed4aab1030dfda801a51e68817a19f528828d75c34e18375219f113d9bb), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref737668884083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a404e05a118462520e878c23f89808199](#ggaab1839ed4aab1030dfda801a51e68817a404e05a118462520e878c23f89808199),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1002570120083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817ac0dc902b4928413d367376e4c842d909](#ggaab1839ed4aab1030dfda801a51e68817ac0dc902b4928413d367376e4c842d909), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1482844901083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817ada473c7e3bf2b1102349489416aefefc](#ggaab1839ed4aab1030dfda801a51e68817ada473c7e3bf2b1102349489416aefefc), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref942142713083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a0129b4506a06b1a6df297bcf685f5f89](#ggaab1839ed4aab1030dfda801a51e68817a0129b4506a06b1a6df297bcf685f5f89), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2109257292083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817adbdb329830e5b4d9fa2b17d5d6d7894f](#ggaab1839ed4aab1030dfda801a51e68817adbdb329830e5b4d9fa2b17d5d6d7894f),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1722590029083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a167c3b256e051244066d8e53cdd5529d](#ggaab1839ed4aab1030dfda801a51e68817a167c3b256e051244066d8e53cdd5529d), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1078349153083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a4686a5f30c73982d625a05db021e9b15](#ggaab1839ed4aab1030dfda801a51e68817a4686a5f30c73982d625a05db021e9b15), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1719812602083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817ae549aa3794365df8965a2c3853c8da99](#ggaab1839ed4aab1030dfda801a51e68817ae549aa3794365df8965a2c3853c8da99), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1718413401083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817a3cc39f12fa8bceba626a33c2d82a8bf7](#ggaab1839ed4aab1030dfda801a51e68817a3cc39f12fa8bceba626a33c2d82a8bf7),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1072135724083931,link:zh-cn_topic_0000001295414172.xml#ggaab1839ed4aab1030dfda801a51e68817ad0650812ac2aa9eee228f48ac514b44a](#ggaab1839ed4aab1030dfda801a51e68817ad0650812ac2aa9eee228f48ac514b44a) } | 显示内存类型定义。 [更多...](#blendtype) | -| [RopType](#roptype) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref742002375083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a6358a786ec3b81000a07b343424cee0d](#gga24265f7618fbdba53d3da4806d3097c4a6358a786ec3b81000a07b343424cee0d) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref17811207083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a96c89f7b89a9048d355b4dc467224f4c](#gga24265f7618fbdba53d3da4806d3097c4a96c89f7b89a9048d355b4dc467224f4c), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2043334490083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a54d054ea6920cb88f374f70e8d41f934](#gga24265f7618fbdba53d3da4806d3097c4a54d054ea6920cb88f374f70e8d41f934), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2053741826083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4af4a5d5dc0f15249001cff7ef32fadef1](#gga24265f7618fbdba53d3da4806d3097c4af4a5d5dc0f15249001cff7ef32fadef1),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1527355910083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4ad777eea18ba9f4e071b00aa060db00e3](#gga24265f7618fbdba53d3da4806d3097c4ad777eea18ba9f4e071b00aa060db00e3), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2065629750083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4afa63c8e2a6a39d50954cb6316576b4e9](#gga24265f7618fbdba53d3da4806d3097c4afa63c8e2a6a39d50954cb6316576b4e9), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1601085310083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a79433776e85bb80ad0306ced0b82947c](#gga24265f7618fbdba53d3da4806d3097c4a79433776e85bb80ad0306ced0b82947c), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref92248121083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4ad6c4d2458a9caaa079a3e5907d636e8a](#gga24265f7618fbdba53d3da4806d3097c4ad6c4d2458a9caaa079a3e5907d636e8a),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1093756523083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a2a069e2105c5b8d4dac5d174c76eb9d4](#gga24265f7618fbdba53d3da4806d3097c4a2a069e2105c5b8d4dac5d174c76eb9d4), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1280708123083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a33c37c5ce718e876f43141dc5a028375](#gga24265f7618fbdba53d3da4806d3097c4a33c37c5ce718e876f43141dc5a028375), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref596450312083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a2acacab882af44bba09878bd58e18695](#gga24265f7618fbdba53d3da4806d3097c4a2acacab882af44bba09878bd58e18695), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref231000186083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4afaea3c47612082914332b78ca8c331b3](#gga24265f7618fbdba53d3da4806d3097c4afaea3c47612082914332b78ca8c331b3),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref261991109083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a91bae697f9dea25ac4d7be011958a45d](#gga24265f7618fbdba53d3da4806d3097c4a91bae697f9dea25ac4d7be011958a45d), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1444974344083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a3580b77320e4829da046b8739c61d6b8](#gga24265f7618fbdba53d3da4806d3097c4a3580b77320e4829da046b8739c61d6b8), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1590052574083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a8195ac0d37e0d69b2cd71dd7362d3fd3](#gga24265f7618fbdba53d3da4806d3097c4a8195ac0d37e0d69b2cd71dd7362d3fd3), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1361443035083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4a533a614b27da8a81b67ada085b018618](#gga24265f7618fbdba53d3da4806d3097c4a533a614b27da8a81b67ada085b018618),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2083205639083931,link:zh-cn_topic_0000001295414172.xml#gga24265f7618fbdba53d3da4806d3097c4aa858b07e214a7f62625e24776806c74b](#gga24265f7618fbdba53d3da4806d3097c4aa858b07e214a7f62625e24776806c74b) } | 硬件加速支持的ROP操作类型。 [更多...](#roptype) | -| [ColorKey](#colorkey) { [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1866201489083931,link:zh-cn_topic_0000001295414172.xml#gga4fe6fb05c7ba0048b1739d88f4d4878ea629b31de258db2ce01cb757b85bd5273](#gga4fe6fb05c7ba0048b1739d88f4d4878ea629b31de258db2ce01cb757b85bd5273) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1057243463083931,link:zh-cn_topic_0000001295414172.xml#gga4fe6fb05c7ba0048b1739d88f4d4878ea5e3271e73dce39d0806ff8e9cba011bc](#gga4fe6fb05c7ba0048b1739d88f4d4878ea5e3271e73dce39d0806ff8e9cba011bc), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref278164484083931,link:zh-cn_topic_0000001295414172.xml#gga4fe6fb05c7ba0048b1739d88f4d4878ea6921c2c202aa69293467baa6c33fae05](#gga4fe6fb05c7ba0048b1739d88f4d4878ea6921c2c202aa69293467baa6c33fae05), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref297021214083931,link:zh-cn_topic_0000001295414172.xml#gga4fe6fb05c7ba0048b1739d88f4d4878ea32cedc8986de2c290bf2ec193d88cabf](#gga4fe6fb05c7ba0048b1739d88f4d4878ea32cedc8986de2c290bf2ec193d88cabf) } | Color key操作类型定义,即硬件加速支持的Color key操作类型。 [更多...](#colorkey) | -| [MirrorType](#mirrortype) { [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1622625061083931,link:zh-cn_topic_0000001295414172.xml#gga08d32376574b541d162d8534adb78fd0a5ad82fcc8af04f92571e185b61eeb309](#gga08d32376574b541d162d8534adb78fd0a5ad82fcc8af04f92571e185b61eeb309) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1262697891083931,link:zh-cn_topic_0000001295414172.xml#gga08d32376574b541d162d8534adb78fd0ae35099d9fd28c2974661bcce36a9ea5c](#gga08d32376574b541d162d8534adb78fd0ae35099d9fd28c2974661bcce36a9ea5c), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1443537263083931,link:zh-cn_topic_0000001295414172.xml#gga08d32376574b541d162d8534adb78fd0afd82e59546a645fd29bc779c50bfa733](#gga08d32376574b541d162d8534adb78fd0afd82e59546a645fd29bc779c50bfa733), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref579554716083931,link:zh-cn_topic_0000001295414172.xml#gga08d32376574b541d162d8534adb78fd0ad9e357a2c2f7dc0e3ca5a351ec457410](#gga08d32376574b541d162d8534adb78fd0ad9e357a2c2f7dc0e3ca5a351ec457410) } | 硬件加速支持的镜像操作类型定义 [更多...](#mirrortype) | -| [Connection](#connection) { [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1976252805083931,link:zh-cn_topic_0000001295414172.xml#ggab0845c0c8d309ee865c78b095b00e671ab5c8a92e6af2e63e769dd8f711564760](#ggab0845c0c8d309ee865c78b095b00e671ab5c8a92e6af2e63e769dd8f711564760) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref137781331083931,link:zh-cn_topic_0000001295414172.xml#ggab0845c0c8d309ee865c78b095b00e671a7a691a2430ec26878897b5fbc9c22a4c](#ggab0845c0c8d309ee865c78b095b00e671a7a691a2430ec26878897b5fbc9c22a4c), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref302409363083931,link:zh-cn_topic_0000001295414172.xml#ggab0845c0c8d309ee865c78b095b00e671acdaad1112073e3e2ea032424c38c34e1](#ggab0845c0c8d309ee865c78b095b00e671acdaad1112073e3e2ea032424c38c34e1) } | 热插拔连接类型定义 [更多...](#connection) | -| [InterfaceType](#interfacetype) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1452208663083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9da717f9ae7960ba280c6c6b8822c6d8b66](#ggaf1ef2c97e255bd7f21d3b7614b283d9da717f9ae7960ba280c6c6b8822c6d8b66) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1121895311083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9da210dbbea7e5c30b693515bba570474d4](#ggaf1ef2c97e255bd7f21d3b7614b283d9da210dbbea7e5c30b693515bba570474d4), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref632913210083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9da89a4e456ceffa55cb93b2c6f4792c96b](#ggaf1ef2c97e255bd7f21d3b7614b283d9da89a4e456ceffa55cb93b2c6f4792c96b), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2037575674083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9daf23a0b7607d3fdc7eac791d62c5f9cd5](#ggaf1ef2c97e255bd7f21d3b7614b283d9daf23a0b7607d3fdc7eac791d62c5f9cd5),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1854194160083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9da54a83297ab61376574854e804a6158e1](#ggaf1ef2c97e255bd7f21d3b7614b283d9da54a83297ab61376574854e804a6158e1), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1974798167083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9da83ef625db890ee1ddb4e874d6155405f](#ggaf1ef2c97e255bd7f21d3b7614b283d9da83ef625db890ee1ddb4e874d6155405f), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1128524956083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9dabf3991ede75cb3bb454372174d63ec29](#ggaf1ef2c97e255bd7f21d3b7614b283d9dabf3991ede75cb3bb454372174d63ec29), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1601425364083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9daad740e6f901f40965d2824415fcb9041](#ggaf1ef2c97e255bd7f21d3b7614b283d9daad740e6f901f40965d2824415fcb9041),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref834357467083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9da5db1f365e675d992f47ce797339beff5](#ggaf1ef2c97e255bd7f21d3b7614b283d9da5db1f365e675d992f47ce797339beff5), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1826677317083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9da5b9c7382dfdcc029e467c6339bf90915](#ggaf1ef2c97e255bd7f21d3b7614b283d9da5b9c7382dfdcc029e467c6339bf90915), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1227458094083931,link:zh-cn_topic_0000001295414172.xml#ggaf1ef2c97e255bd7f21d3b7614b283d9da4d64c32b687840c7e08e28a2892ac222](#ggaf1ef2c97e255bd7f21d3b7614b283d9da4d64c32b687840c7e08e28a2892ac222), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref65502257333,link:#p106611424171011](#p106611424171011) } | 枚举接口类型。 [更多...](#interfacetype) | -| [DispPowerStatus](#disppowerstatus) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref378646307083931,link:zh-cn_topic_0000001295414172.xml#gga0f3c8af6e9d40730b0d2e0fbbf8e627da89e258c21283c662af2145bd3f9fc9a0](#gga0f3c8af6e9d40730b0d2e0fbbf8e627da89e258c21283c662af2145bd3f9fc9a0), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1015948368083931,link:zh-cn_topic_0000001295414172.xml#gga0f3c8af6e9d40730b0d2e0fbbf8e627da604748a7de21aa992c1f72c252fc77a7](#gga0f3c8af6e9d40730b0d2e0fbbf8e627da604748a7de21aa992c1f72c252fc77a7), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref821302934083931,link:zh-cn_topic_0000001295414172.xml#gga0f3c8af6e9d40730b0d2e0fbbf8e627da5605db047fd50c64fa0a13d8e558d479](#gga0f3c8af6e9d40730b0d2e0fbbf8e627da5605db047fd50c64fa0a13d8e558d479), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref21224644083931,link:zh-cn_topic_0000001295414172.xml#gga0f3c8af6e9d40730b0d2e0fbbf8e627daddd660122faa920f2adcd81e83d22c85](#gga0f3c8af6e9d40730b0d2e0fbbf8e627daddd660122faa920f2adcd81e83d22c85),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1203211795083931,link:zh-cn_topic_0000001295414172.xml#gga0f3c8af6e9d40730b0d2e0fbbf8e627dad1f590a00c02d7335bfc24edbea92037](#gga0f3c8af6e9d40730b0d2e0fbbf8e627dad1f590a00c02d7335bfc24edbea92037) } | 枚举显示状态 [更多...](#disppowerstatus) | -| [CompositionType](#compositiontype) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1830977517083931,link:zh-cn_topic_0000001295414172.xml#ggae5d7b642670cf3dc6654131dfa115fe5afc7ab4757f19ed87ea6d1603478edbe8](#ggae5d7b642670cf3dc6654131dfa115fe5afc7ab4757f19ed87ea6d1603478edbe8), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1161941610083931,link:zh-cn_topic_0000001295414172.xml#ggae5d7b642670cf3dc6654131dfa115fe5aa51390e0da602171f2d042a94c6b75bf](#ggae5d7b642670cf3dc6654131dfa115fe5aa51390e0da602171f2d042a94c6b75bf), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1097843950083931,link:zh-cn_topic_0000001295414172.xml#ggae5d7b642670cf3dc6654131dfa115fe5a663feec453d4509980f3bb34f641303b](#ggae5d7b642670cf3dc6654131dfa115fe5a663feec453d4509980f3bb34f641303b), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref700721638083931,link:zh-cn_topic_0000001295414172.xml#ggae5d7b642670cf3dc6654131dfa115fe5a89ea30239d366a6968c7dff429a99aa9](#ggae5d7b642670cf3dc6654131dfa115fe5a89ea30239d366a6968c7dff429a99aa9),   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2089060453083931,link:zh-cn_topic_0000001295414172.xml#ggae5d7b642670cf3dc6654131dfa115fe5a05f5ab2a5da295c0fdc7e19e9a121f3e](#ggae5d7b642670cf3dc6654131dfa115fe5a05f5ab2a5da295c0fdc7e19e9a121f3e), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref81247533083931,link:zh-cn_topic_0000001295414172.xml#ggae5d7b642670cf3dc6654131dfa115fe5a7c1535ef8d388f878fae7c722d69855e](#ggae5d7b642670cf3dc6654131dfa115fe5a7c1535ef8d388f878fae7c722d69855e), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref776657651083931,link:zh-cn_topic_0000001295414172.xml#ggae5d7b642670cf3dc6654131dfa115fe5a400576aea4b15e011ddd21748d16f9ca](#ggae5d7b642670cf3dc6654131dfa115fe5a400576aea4b15e011ddd21748d16f9ca), [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1598485913356,link:#p488974221219](#p488974221219) } | 枚举特殊层的组合类型。 [更多...](#compositiontype) | -| [ColorGamut](#colorgamut) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1320572072083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3a7d7d95bebc0ddb4d10da05b449bab1bf](#gga7e865f6dbae09a004be2949b473fd7c3a7d7d95bebc0ddb4d10da05b449bab1bf) = -1, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref680538601083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3af0e1dba48215d4d19bd9a3536a736cdb](#gga7e865f6dbae09a004be2949b473fd7c3af0e1dba48215d4d19bd9a3536a736cdb) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2112483204083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3affa91ab208128bec9b981e7020bcbfa9](#gga7e865f6dbae09a004be2949b473fd7c3affa91ab208128bec9b981e7020bcbfa9) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref977909621083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3a248480b6ae7ad6c5327dd7cb5cfd0a85](#gga7e865f6dbae09a004be2949b473fd7c3a248480b6ae7ad6c5327dd7cb5cfd0a85) = 2,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1659526516083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3a98eb540d5a93ab3ad4256907eec89c4e](#gga7e865f6dbae09a004be2949b473fd7c3a98eb540d5a93ab3ad4256907eec89c4e) = 3, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref750726964083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3a8327e3fc0a79c9935dd9279c10c841c5](#gga7e865f6dbae09a004be2949b473fd7c3a8327e3fc0a79c9935dd9279c10c841c5) = 4, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1950926867083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3a3377a7df82b495c65f3f7ab2b1655100](#gga7e865f6dbae09a004be2949b473fd7c3a3377a7df82b495c65f3f7ab2b1655100) = 5, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1621900951083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3ad79cdc9f86f3b581453c523a03a876d3](#gga7e865f6dbae09a004be2949b473fd7c3ad79cdc9f86f3b581453c523a03a876d3) = 6,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref300730856083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3a79ff774719c5b83287b298d39ee274f3](#gga7e865f6dbae09a004be2949b473fd7c3a79ff774719c5b83287b298d39ee274f3) = 7, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref269858315083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3aa8191f5fca2ad767fa56767b41f4dec5](#gga7e865f6dbae09a004be2949b473fd7c3aa8191f5fca2ad767fa56767b41f4dec5) = 8, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref185185729083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3ad4f624c7b578dacaa732cd9556724797](#gga7e865f6dbae09a004be2949b473fd7c3ad4f624c7b578dacaa732cd9556724797) = 9, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref327662541083931,link:zh-cn_topic_0000001295414172.xml#gga7e865f6dbae09a004be2949b473fd7c3a5d07e2f0d8e570c5e16ccff05e12cb29](#gga7e865f6dbae09a004be2949b473fd7c3a5d07e2f0d8e570c5e16ccff05e12cb29) = 10 } | 色域类型枚举值 [更多...](#colorgamut) | -| [GamutMap](#gamutmap) { [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1218064531083931,link:zh-cn_topic_0000001295414172.xml#gga5700b58f1bc340e309a0962101ad7fa4acdf75e246ac2f53f37ef9e11b5561535](#gga5700b58f1bc340e309a0962101ad7fa4acdf75e246ac2f53f37ef9e11b5561535) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref121550703083931,link:zh-cn_topic_0000001295414172.xml#gga5700b58f1bc340e309a0962101ad7fa4af3824abcccbd8d85d28e34149e9aaa33](#gga5700b58f1bc340e309a0962101ad7fa4af3824abcccbd8d85d28e34149e9aaa33) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref874892009083931,link:zh-cn_topic_0000001295414172.xml#gga5700b58f1bc340e309a0962101ad7fa4afd4e1cb10b8032108ab070925b73e270](#gga5700b58f1bc340e309a0962101ad7fa4afd4e1cb10b8032108ab070925b73e270) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref340489629083931,link:zh-cn_topic_0000001295414172.xml#gga5700b58f1bc340e309a0962101ad7fa4ad0f9722a0efd51910ac5f2f63fd86a10](#gga5700b58f1bc340e309a0962101ad7fa4ad0f9722a0efd51910ac5f2f63fd86a10) = 3 } | 枚举色域的映射类型 [更多...](#gamutmap) | -| [ColorDataSpace](#colordataspace) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref878538396083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca5a0aa62f13715cbdf2b5ec1e26e76225](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca5a0aa62f13715cbdf2b5ec1e26e76225) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref213046039083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad778a31f4c8e3431f5240f98c70f577d](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad778a31f4c8e3431f5240f98c70f577d) = 0x00000001, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1054907918083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca7d346fa865c56c76f62c7f6ab92511ec](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca7d346fa865c56c76f62c7f6ab92511ec) = 0x00000002, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1479012727083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccae29ccb674444c3f81f0a46361d7ce63c](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccae29ccb674444c3f81f0a46361d7ce63c) = 0x00000003,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1386886784083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca16c4c57e66f86b20269db0d5d6382ded](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca16c4c57e66f86b20269db0d5d6382ded) = 0x00000004, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref784825585083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca0a0a0c633a41a5f30596a5168a3267ca](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca0a0a0c633a41a5f30596a5168a3267ca) = 0x00000005, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1056392053083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca3d4a0608dd5c682fc020bfc68a425e15](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca3d4a0608dd5c682fc020bfc68a425e15) = 0x00000006, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref965963320083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa6dc448a5d0d16a7d2610edb29fff407](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa6dc448a5d0d16a7d2610edb29fff407) = 0x00000007,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref221255855083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6b100b6876c7e77106df92b9c8cf7d2b](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6b100b6876c7e77106df92b9c8cf7d2b) = 0x00000008, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1433734811083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca53a60a5ed93129597841bde263e9a798](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca53a60a5ed93129597841bde263e9a798) = 0x00000009, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1953311748083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa66ffaf12ec59488cccbd2170cc3d2c8](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa66ffaf12ec59488cccbd2170cc3d2c8) = 0x0000000a, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref722710803083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca0fe652843eafbf7a93b645a71342dce0](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca0fe652843eafbf7a93b645a71342dce0) = 0x00000100,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref807869741083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa2e1f70b023dd5ae3a31771217d958cc](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa2e1f70b023dd5ae3a31771217d958cc) = 0x00000200, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1259865942083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca47dd20703e8d8135aedfb687b75ef66c](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca47dd20703e8d8135aedfb687b75ef66c) = 0x00000300, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1984327463083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab031ec808cc46bee79d2c96460615206](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab031ec808cc46bee79d2c96460615206) = 0x00000400, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref561552060083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca078b8dad4e1eb6720c81c841b3f417d9](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca078b8dad4e1eb6720c81c841b3f417d9) = 0x00000500,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1263948536083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad6abe514be2fa6c57b2aec5a5eb6fc7d](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad6abe514be2fa6c57b2aec5a5eb6fc7d) = 0x00000600, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1183051809083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca850b419cb0075b5bd44df5708fc9c87f](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca850b419cb0075b5bd44df5708fc9c87f) = 0x00000700, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2118794799083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca24a6d830fca211b067260df9583a1b2b](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca24a6d830fca211b067260df9583a1b2b) = 0x00000800, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1273459295083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca4a6d68c7a2219cada2edf0e9d7bc46f8](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca4a6d68c7a2219cada2edf0e9d7bc46f8) = 0x00000900,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref708368044083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca77342396f1154be94079d0d76fc5e829](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca77342396f1154be94079d0d76fc5e829) = 0x00010000, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2084997452083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca200541efc2ee0d21e37a7200e7a08a54](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca200541efc2ee0d21e37a7200e7a08a54) = 0x00020000, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref550019244083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab51307e81936be84b6504a98197fb1ee](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab51307e81936be84b6504a98197fb1ee) = 0x00030000, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref599760488083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccafd6ac339ebbdbbdd7fee540a6fad5ec2](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccafd6ac339ebbdbbdd7fee540a6fad5ec2) = 0x00040000,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1337337657083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab640f36320dafb19066dfcaccc836999](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab640f36320dafb19066dfcaccc836999) = GAMUT_BT601 \| TRANSFORM_FUNC_SMPTE_170M \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1816105061083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6cd475c6421764e5d71d71f1de75d638](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6cd475c6421764e5d71d71f1de75d638) = GAMUT_BT601 \| TRANSFORM_FUNC_SMPTE_170M \| PRESION_LIMITED, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1498990098083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad2bc96da52c18ef9bb26320507747176](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad2bc96da52c18ef9bb26320507747176) = GAMUT_BT709 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref770259992083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca03631fd75bc6ec7280ce2c68a129e4fd](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca03631fd75bc6ec7280ce2c68a129e4fd) = GAMUT_BT709 \| TRANSFORM_FUNC_LINEAR \| PRESION_EXTENDED,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1144035591083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaaffba49d9c1c335387cd8153becad65a](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaaffba49d9c1c335387cd8153becad65a) = GAMUT_BT709 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1776467667083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca049878481c3ed46dbd6cfea995e2f0d5](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca049878481c3ed46dbd6cfea995e2f0d5) = GAMUT_BT709 \| TRANSFORM_FUNC_SRGB \| PRESION_EXTENDED, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1982944600083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca14381e6d202b6bda3c90264b05d31838](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca14381e6d202b6bda3c90264b05d31838) = GAMUT_BT709 \| TRANSFORM_FUNC_SMPTE_170M \| PRESION_LIMITED, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1756810240083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad03af85a7ff4c1069a97bfb603f7d694](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad03af85a7ff4c1069a97bfb603f7d694) = GAMUT_DCI_P3 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1597065210083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca9de9b32e0e7c172c77922af8904ba3a2](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca9de9b32e0e7c172c77922af8904ba3a2) = GAMUT_DCI_P3 \| TRANSFORM_FUNC_GM2_6 \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1497114999083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca8bcb3a4ed6039d158b9c32ba99fceaff](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca8bcb3a4ed6039d158b9c32ba99fceaff) = GAMUT_DISPLAY_P3 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1059463390083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca2fac97f61868100034eb40fdba9a9d3f](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca2fac97f61868100034eb40fdba9a9d3f) = GAMUT_DCI_P3 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1845514239083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca1f855c7b4bd5f8a9cc29f3e335a9f2f4](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca1f855c7b4bd5f8a9cc29f3e335a9f2f4) = GAMUT_ADOBE_RGB \| TRANSFORM_FUNC_GM2_2 \| PRECISION_FULL,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1108373610083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca27315309a3b866eda00f17825ee9532d](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca27315309a3b866eda00f17825ee9532d) = GAMUT_BT2020 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1250807752083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa63d6a3a8bb1c6c5b383cb7010f61d72](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa63d6a3a8bb1c6c5b383cb7010f61d72) = GAMUT_BT2020 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1723753803083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6de02e882e01743ce5ca07a17d481930](#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6de02e882e01743ce5ca07a17d481930) = GAMUT_BT2020 \| TRANSFORM_FUNC_SMPTE_170M \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1603971625083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccac2e37c91fc9bd29641cf95d74aa7862c](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccac2e37c91fc9bd29641cf95d74aa7862c) = GAMUT_BT2020 \| TRANSFORM_FUNC_ST2084 \| PRECISION_FULL,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref910505882083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad5b0a069ac80df8d045265e88f9b5e71](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad5b0a069ac80df8d045265e88f9b5e71) = GAMUT_BT2020 \| TRANSFORM_FUNC_HLG \| PRECISION_FULL, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1521841710083931,link:zh-cn_topic_0000001295414172.xml#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaeab2d55af8e3568130cf69fa614b3c9d](#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaeab2d55af8e3568130cf69fa614b3c9d) = GAMUT_BT2020 \| TRANSFORM_FUNC_ST2084 \| PRESION_LIMITED } | 枚举颜色空间的类型 [更多...](#colordataspace) | -| [HDRFormat](#hdrformat) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref665428812083931,link:zh-cn_topic_0000001295414172.xml#ggabdc446aa6fa47c5dd8d1b7d87bed2566a0799ce04a1873f60ed59c3d30dcda69a](#ggabdc446aa6fa47c5dd8d1b7d87bed2566a0799ce04a1873f60ed59c3d30dcda69a) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref638522815083931,link:zh-cn_topic_0000001295414172.xml#ggabdc446aa6fa47c5dd8d1b7d87bed2566ac43f1175d92c85033e0a85c7a14266a7](#ggabdc446aa6fa47c5dd8d1b7d87bed2566ac43f1175d92c85033e0a85c7a14266a7) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2122250653083931,link:zh-cn_topic_0000001295414172.xml#ggabdc446aa6fa47c5dd8d1b7d87bed2566ada5b15b3c4b4cc64593452113ac1d4dc](#ggabdc446aa6fa47c5dd8d1b7d87bed2566ada5b15b3c4b4cc64593452113ac1d4dc) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref6932435083931,link:zh-cn_topic_0000001295414172.xml#ggabdc446aa6fa47c5dd8d1b7d87bed2566a2c6e7224778e782cbbd478e4c11282e2](#ggabdc446aa6fa47c5dd8d1b7d87bed2566a2c6e7224778e782cbbd478e4c11282e2) = 3,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1192919169083931,link:zh-cn_topic_0000001295414172.xml#ggabdc446aa6fa47c5dd8d1b7d87bed2566abc6f25afdafdebb03fd137de1917389d](#ggabdc446aa6fa47c5dd8d1b7d87bed2566abc6f25afdafdebb03fd137de1917389d) = 4, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1193677514083931,link:zh-cn_topic_0000001295414172.xml#ggabdc446aa6fa47c5dd8d1b7d87bed2566a84318c5a162e5b9b822e38e675117e42](#ggabdc446aa6fa47c5dd8d1b7d87bed2566a84318c5a162e5b9b822e38e675117e42) = 5 } | 枚举HDR格式 [更多...](#hdrformat) | -| [HDRMetadataKey](#hdrmetadatakey) {   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1884505899083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a92c0f5eaba344bee22c657040b606fd3](#gga5d7d90acb5c568e62a02b18446f37789a92c0f5eaba344bee22c657040b606fd3) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref651614535083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a405841a4999556bd36281870d579dc7e](#gga5d7d90acb5c568e62a02b18446f37789a405841a4999556bd36281870d579dc7e) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref2104996214083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a08f31a74e8df3253c6326879818dfe1b](#gga5d7d90acb5c568e62a02b18446f37789a08f31a74e8df3253c6326879818dfe1b) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1726732454083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a19db3eede73e96c6a25dc4d31e5846e1](#gga5d7d90acb5c568e62a02b18446f37789a19db3eede73e96c6a25dc4d31e5846e1) = 3,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref149187678083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a23e7112a9c4aaf15bc2a529344a61939](#gga5d7d90acb5c568e62a02b18446f37789a23e7112a9c4aaf15bc2a529344a61939) = 4, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref957659268083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a5a34485b5884d8bd86273750b9d47b0b](#gga5d7d90acb5c568e62a02b18446f37789a5a34485b5884d8bd86273750b9d47b0b) = 5, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref254163734083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789ac12237b3de1eee6176c690e7f14ab339](#gga5d7d90acb5c568e62a02b18446f37789ac12237b3de1eee6176c690e7f14ab339) = 6, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1227069924083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a331c8b69a7d9484c9eaea70e78a34921](#gga5d7d90acb5c568e62a02b18446f37789a331c8b69a7d9484c9eaea70e78a34921) = 7,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1152477491083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789ac27053151e1fa76e58dc3281d843ad74](#gga5d7d90acb5c568e62a02b18446f37789ac27053151e1fa76e58dc3281d843ad74) = 8, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref974552333083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a345f5cea142c7357e0b9de5ccfc86bed](#gga5d7d90acb5c568e62a02b18446f37789a345f5cea142c7357e0b9de5ccfc86bed) = 9, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref332772781083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a9897f53fcb179afc9c90f8c7ca0ac254](#gga5d7d90acb5c568e62a02b18446f37789a9897f53fcb179afc9c90f8c7ca0ac254) = 10, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref819598522083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a8d285ea7b6246f62b7e7a65e5a870bfe](#gga5d7d90acb5c568e62a02b18446f37789a8d285ea7b6246f62b7e7a65e5a870bfe) = 11,   [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1771466287083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789a89ef9c02321a94080f185c7fea3f6d1d](#gga5d7d90acb5c568e62a02b18446f37789a89ef9c02321a94080f185c7fea3f6d1d) = 12, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1713611155083931,link:zh-cn_topic_0000001295414172.xml#gga5d7d90acb5c568e62a02b18446f37789ac99c4612b3aee2bfede23070fe32ac7e](#gga5d7d90acb5c568e62a02b18446f37789ac99c4612b3aee2bfede23070fe32ac7e) = 13 } | 枚举HDR元数据关键字 [更多...](#hdrmetadatakey) | -| [PresentTimestampType](#presenttimestamptype) { [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref660661019083931,link:zh-cn_topic_0000001295414172.xml#ggabdba71665ea5ba4004ac1a9fbeb505f3ad6e47ab1a80ab94cccb5e465610ff45d](#ggabdba71665ea5ba4004ac1a9fbeb505f3ad6e47ab1a80ab94cccb5e465610ff45d) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1774566629083931,link:zh-cn_topic_0000001295414172.xml#ggabdba71665ea5ba4004ac1a9fbeb505f3a5c06391b9583b69d37c7a0518dd10f09](#ggabdba71665ea5ba4004ac1a9fbeb505f3a5c06391b9583b69d37c7a0518dd10f09) = 1 << 0, [ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref1494486451083931,link:zh-cn_topic_0000001295414172.xml#ggabdba71665ea5ba4004ac1a9fbeb505f3afd872c457c9dade672aaaec5de622ff7](#ggabdba71665ea5ba4004ac1a9fbeb505f3afd872c457c9dade672aaaec5de622ff7) = 1 << 1 } | 上屏时间戳类型枚举值 [更多...](#presenttimestamptype) | + | 枚举名称 | 描述 | +| -------- | -------- | +| [DispErrCode](#disperrcode) { DISPLAY_SUCCESS = 0, DISPLAY_FAILURE = -1, DISPLAY_FD_ERR = -2, DISPLAY_PARAM_ERR = -3,   DISPLAY_NULL_PTR = -4, DISPLAY_NOT_SUPPORT = -5, DISPLAY_NOMEM = -6, DISPLAY_SYS_BUSY = -7,   DISPLAY_NOT_PERM = -8 } | 返回值类型定义。 [更多...](#disperrcode) | +| [LayerType](#layertype) { LAYER_TYPE_GRAPHIC, LAYER_TYPE_OVERLAY, LAYER_TYPE_SDIEBAND, LAYER_TYPE_CURSOR,   LAYER_TYPE_BUTT } | 图层类型定义。 [更多...](#layertype) | +| { HBM_USE_CPU_READ = (1 << 0), HBM_USE_CPU_WRITE = (1 << 1), HBM_USE_MEM_MMZ = (1 << 2), HBM_USE_MEM_DMA = (1 << 3),   HBM_USE_MEM_SHARE = (1 << 4), HBM_USE_MEM_MMZ_CACHE = (1 << 5), HBM_USE_MEM_FB = (1 << 6), HBM_USE_ASSIGN_SIZE = (1 << 7) } | 缓冲区定义。[更多...](#anonymous-enum) | +| [PixelFormat](#pixelformat) { PIXEL_FMT_CLUT8 = 0, PIXEL_FMT_CLUT1, PIXEL_FMT_CLUT4, PIXEL_FMT_RGB_565,   PIXEL_FMT_RGBA_5658, PIXEL_FMT_RGBX_4444, PIXEL_FMT_RGBA_4444, PIXEL_FMT_RGB_444,   PIXEL_FMT_RGBX_5551, PIXEL_FMT_RGBA_5551, PIXEL_FMT_RGB_555, PIXEL_FMT_RGBX_8888,   PIXEL_FMT_RGBA_8888, PIXEL_FMT_RGB_888, PIXEL_FMT_BGR_565, PIXEL_FMT_BGRX_4444,   PIXEL_FMT_BGRA_4444, PIXEL_FMT_BGRX_5551, PIXEL_FMT_BGRA_5551, PIXEL_FMT_BGRX_8888,   PIXEL_FMT_BGRA_8888, PIXEL_FMT_YUV_422_I, PIXEL_FMT_YCBCR_422_SP, PIXEL_FMT_YCRCB_422_SP,   PIXEL_FMT_YCBCR_420_SP, PIXEL_FMT_YCRCB_420_SP, PIXEL_FMT_YCBCR_422_P, PIXEL_FMT_YCRCB_422_P,   PIXEL_FMT_YCBCR_420_P, PIXEL_FMT_YCRCB_420_P, PIXEL_FMT_YUYV_422_PKG, PIXEL_FMT_UYVY_422_PKG,   PIXEL_FMT_YVYU_422_PKG, PIXEL_FMT_VYUY_422_PKG, PIXEL_FMT_VENDER_MASK = 0X7FFF0000, PIXEL_FMT_BUTT = 0X7FFFFFFF } | 像素格式类型定义。 [更多...](#pixelformat) | +| [TransformType](#transformtype) { ROTATE_NONE = 0, ROTATE_90, ROTATE_180, ROTATE_270,   ROTATE_BUTT } | 图层变换类型定义。 [更多...](#transformtype) | +| [BlendType](#blendtype) { BLEND_NONE = 0, BLEND_CLEAR, BLEND_SRC, BLEND_SRCOVER,   BLEND_DSTOVER, BLEND_SRCIN, BLEND_DSTIN, BLEND_SRCOUT,   BLEND_DSTOUT, BLEND_SRCATOP, BLEND_DSTATOP, BLEND_ADD,   BLEND_XOR, BLEND_DST, BLEND_AKS, BLEND_AKD,   BLEND_BUTT } | 显示内存类型定义。 [更多...](#blendtype) | +| [RopType](#roptype) { ROP_BLACK = 0, ROP_NOTMERGEPEN, ROP_MASKNOTPEN, ROP_NOTCOPYPEN,   ROP_MASKPENNOT, ROP_NOT, ROP_XORPEN, ROP_NOTMASKPEN,   ROP_MASKPEN, ROP_NOTXORPEN, ROP_NOP, ROP_MERGENOTPEN,   ROP_COPYPE, ROP_MERGEPENNOT, ROP_MERGEPEN, ROP_WHITE,   ROP_BUTT } | 硬件加速支持的ROP操作类型。 [更多...](#roptype) | +| [ColorKey](#colorkey) { CKEY_NONE = 0, CKEY_SRC, CKEY_DST, CKEY_BUTT } | Color key操作类型定义,即硬件加速支持的Color key操作类型。 [更多...](#colorkey) | +| [MirrorType](#mirrortype) { MIRROR_NONE = 0, MIRROR_LR, MIRROR_TB, MIRROR_BUTT } | 硬件加速支持的镜像操作类型定义 [更多...](#mirrortype) | +| [Connection](#connection) { CON_INVALID = 0, CONNECTED, DISCONNECTED } | 热插拔连接类型定义 [更多...](#connection) | +| [InterfaceType](#interfacetype) { DISP_INTF_HDMI = 0, DISP_INTF_LCD, DISP_INTF_BT1120, DISP_INTF_BT656,   DISP_INTF_YPBPR, DISP_INTF_RGB, DISP_INTF_CVBS, DISP_INTF_SVIDEO,   DISP_INTF_VGA, DISP_INTF_MIPI, DISP_INTF_PANEL, DISP_INTF_BUTT } | 枚举接口类型。 [更多...](#interfacetype) | +| [DispPowerStatus](#disppowerstatus) { POWER_STATUS_ON, POWER_STATUS_STANDBY, POWER_STATUS_SUSPEND, POWER_STATUS_OFF,   POWER_STATUS_BUTT } | 枚举显示状态 [更多...](#disppowerstatus) | +| [CompositionType](#compositiontype) { COMPOSITION_CLIENT, COMPOSITION_DEVICE, COMPOSITION_CURSOR, COMPOSITION_VIDEO,   COMPOSITION_DEVICE_CLEAR, COMPOSITION_CLIENT_CLEAR, COMPOSITION_TUNNEL, COMPOSITION_BUTT } | 枚举特殊层的组合类型。 [更多...](#compositiontype) | +| [ColorGamut](#colorgamut) { COLOR_GAMUT_INVALID = -1, COLOR_GAMUT_NATIVE = 0, COLOR_GAMUT_SATNDARD_BT601 = 1, COLOR_GAMUT_STANDARD_BT709 = 2,   COLOR_GAMUT_DCI_P3 = 3, COLOR_GAMUT_SRGB = 4, COLOR_GAMUT_ADOBE_RGB = 5, COLOR_GAMUT_DISPLAY_P3 = 6,   COLOR_GAMUT_BT2020 = 7, COLOR_GAMUT_BT2100_PQ = 8, COLOR_GAMUT_BT2100_HLG = 9, COLOR_GAMUT_DISPLAY_BT2020 = 10 } | 色域类型枚举值 [更多...](#colorgamut) | +| [GamutMap](#gamutmap) { GAMUT_MAP_CONSTANT = 0, GAMUT_MAP_EXPANSION = 1, GAMUT_MAP_HDR_CONSTANT = 2, GAMUT_MAP_HDR_EXPANSION = 3 } | 枚举色域的映射类型 [更多...](#gamutmap) | +| [ColorDataSpace](#colordataspace) {   COLOR_DATA_SPACE_UNKNOWN = 0, GAMUT_BT601 = 0x00000001, GAMUT_BT709 = 0x00000002, GAMUT_DCI_P3 = 0x00000003,   GAMUT_SRGB = 0x00000004, GAMUT_ADOBE_RGB = 0x00000005, GAMUT_DISPLAY_P3 = 0x00000006, GAMUT_BT2020 = 0x00000007,   GAMUT_BT2100_PQ = 0x00000008, GAMUT_BT2100_HLG = 0x00000009, GAMUT_DISPLAY_BT2020 = 0x0000000a, TRANSFORM_FUNC_UNSPECIFIED = 0x00000100,   TRANSFORM_FUNC_LINEAR = 0x00000200, TRANSFORM_FUNC_SRGB = 0x00000300, TRANSFORM_FUNC_SMPTE_170M = 0x00000400, TRANSFORM_FUNC_GM2_2 = 0x00000500,   TRANSFORM_FUNC_GM2_6 = 0x00000600, TRANSFORM_FUNC_GM2_8 = 0x00000700, TRANSFORM_FUNC_ST2084 = 0x00000800, TRANSFORM_FUNC_HLG = 0x00000900,   PRECISION_UNSPECIFIED = 0x00010000, PRECISION_FULL = 0x00020000, PRESION_LIMITED = 0x00030000, PRESION_EXTENDED = 0x00040000,   BT601_SMPTE170M_FULL = GAMUT_BT601 \| TRANSFORM_FUNC_SMPTE_170M \| PRECISION_FULL, BT601_SMPTE170M_LIMITED = GAMUT_BT601 \| TRANSFORM_FUNC_SMPTE_170M \| PRESION_LIMITED, BT709_LINEAR_FULL = GAMUT_BT709 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, BT709_LINEAR_EXTENDED = GAMUT_BT709 \| TRANSFORM_FUNC_LINEAR \| PRESION_EXTENDED,   BT709_SRGB_FULL = GAMUT_BT709 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, BT709_SRGB_EXTENDED = GAMUT_BT709 \| TRANSFORM_FUNC_SRGB \| PRESION_EXTENDED, BT709_SMPTE170M_LIMITED = GAMUT_BT709 \| TRANSFORM_FUNC_SMPTE_170M \| PRESION_LIMITED, DCI_P3_LINEAR_FULL = GAMUT_DCI_P3 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL,   DCI_P3_GAMMA26_FULL = GAMUT_DCI_P3 \| TRANSFORM_FUNC_GM2_6 \| PRECISION_FULL, DISPLAY_P3_LINEAR_FULL = GAMUT_DISPLAY_P3 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, DCI_P3_SRGB_FULL = GAMUT_DCI_P3 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, ADOBE_RGB_GAMMA22_FULL = GAMUT_ADOBE_RGB \| TRANSFORM_FUNC_GM2_2 \| PRECISION_FULL,   BT2020_LINEAR_FULL = GAMUT_BT2020 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, BT2020_SRGB_FULL = GAMUT_BT2020 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, BT2020_SMPTE170M_FULL = GAMUT_BT2020 \| TRANSFORM_FUNC_SMPTE_170M \| PRECISION_FULL, BT2020_ST2084_FULL = GAMUT_BT2020 \| TRANSFORM_FUNC_ST2084 \| PRECISION_FULL,   BT2020_HLG_FULL = GAMUT_BT2020 \| TRANSFORM_FUNC_HLG \| PRECISION_FULL, BT2020_ST2084_LIMITED = GAMUT_BT2020 \| TRANSFORM_FUNC_ST2084 \| PRESION_LIMITED } | 枚举颜色空间的类型 [更多...](#colordataspace) | +| [HDRFormat](#hdrformat) { NOT_SUPPORT_HDR = 0, DOLBY_VISION = 1, HDR10 = 2, HLG = 3,   HDR10_PLUS = 4, HDR_VIVID = 5 } | 枚举HDR格式 [更多...](#hdrformat) | +| [HDRMetadataKey](#hdrmetadatakey) { MATAKEY_RED_PRIMARY_X = 0, MATAKEY_RED_PRIMARY_Y = 1, MATAKEY_GREEN_PRIMARY_X = 2, MATAKEY_GREEN_PRIMARY_Y = 3,   MATAKEY_BLUE_PRIMARY_X = 4, MATAKEY_BLUE_PRIMARY_Y = 5, MATAKEY_WHITE_PRIMARY_X = 6, MATAKEY_WHITE_PRIMARY_Y = 7,   MATAKEY_MAX_LUMINANCE = 8, MATAKEY_MIN_LUMINANCE = 9, MATAKEY_MAX_CONTENT_LIGHT_LEVEL = 10, MATAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL = 11,   MATAKEY_HDR10_PLUS = 12, MATAKEY_HDR_VIVID = 13 } | 枚举HDR元数据关键字 [更多...](#hdrmetadatakey) | +| [PresentTimestampType](#presenttimestamptype) { HARDWARE_DISPLAY_PTS_UNSUPPORTED = 0, HARDWARE_DISPLAY_PTS_DELAY = 1 << 0, HARDWARE_DISPLAY_PTS_TIMESTAMP = 1 << 1 } | 上屏时间戳类型枚举值 [更多...](#presenttimestamptype) | ### 函数 diff --git a/zh-cn/device-dev/api/_face_auth_types_8idl.md b/zh-cn/device-dev/api/_face_auth_types_8idl.md index d9a3ac360a..2355173ac2 100644 --- a/zh-cn/device-dev/api/_face_auth_types_8idl.md +++ b/zh-cn/device-dev/api/_face_auth_types_8idl.md @@ -21,13 +21,13 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [AuthType](_hdf_face_auth.md#authtype) : int { [PIN](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a048efb7462d3f8cced82716c66926168) = 1, [FACE](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a5cfae78048cf95359061c2e812e7d691) = 2, [FINGERPRINT](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1ad03eae85b35bf9bc22d787c8913b795a) = 4 } | 枚举用户认证凭据类型。 [更多...](_hdf_face_auth.md#authtype) | -| [ExecutorRole](_hdf_face_auth.md#executorrole) : int { [COLLECTOR](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a539c54e76bcc96cddb85f0cabcff39ec) = 1, [VERIFIER](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a1286a5d974d0c68d7bc43ffc0576a6d4) = 2, [ALL_IN_ONE](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a7eebd77a403f81c5968b4c2898ee6fd4) = 3 } | 枚举执行器角色。 [更多...](_hdf_face_auth.md#executorrole) | -| [ExecutorSecureLevel](_hdf_face_auth.md#executorsecurelevel) : int { [ESL0](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa0cd05a2adda94d3c676fca84f96c0638) = 0, [ESL1](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fae6a34bbf2764541238bf81569faf29d3) = 1, [ESL2](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa8f898bca57625d548a011ba2aaf4285f) = 2, [ESL3](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa9a6fb8a4530b6a09dba2fbfdf2e6c2e9) = 3 } | 枚举执行器安全等级。 [更多...](_hdf_face_auth.md#executorsecurelevel) | -| [CommandId](_hdf_face_auth.md#commandid) : int { [LOCK_TEMPLATE](_hdf_face_auth.md#entry1378875880083931p0) = 1, [UNLOCK_TEMPLATE](_hdf_face_auth.md#entry1786148552083931p0) = 2, [VENDOR_COMMAND_BEGIN](_hdf_face_auth.md#entry1330595345083931p0) = 10000 } | 枚举人脸认证功能相关操作命令。 [更多...](_hdf_face_auth.md#commandid) | -| [FaceTipsCode](_hdf_face_auth.md#facetipscode) : int {   [FACE_AUTH_TIP_TOO_BRIGHT](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007aa973b57b70bddf6e04ea0d1d8ac84bbc) = 1, [FACE_AUTH_TIP_TOO_DARK](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a9e812580c2600ebd4847ac05478805fe) = 2, [FACE_AUTH_TIP_TOO_CLOSE](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007adbd6a2cd4effac8f2d08a406c21cee17) = 3, [FACE_AUTH_TIP_TOO_FAR](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a557c72d5d5dd9cc4ca52406d442a085e) = 4,   [FACE_AUTH_TIP_TOO_HIGH](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007ac573361a2c459a0d0f95f7691819611b) = 5, [FACE_AUTH_TIP_TOO_LOW](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a1fbbe62377b7746848761d4fc1e591d8) = 6, [FACE_AUTH_TIP_TOO_RIGHT](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a8b8f69a132ab5e9e4770fbe25efe6810) = 7, [FACE_AUTH_TIP_TOO_LEFT](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a4f1f1ab1bed69c0968981c6ecc52a572) = 8,   [FACE_AUTH_TIP_TOO_MUCH_MOTION](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a19f794720c79aaeb2b2cb895eca6c4fd) = 9, [FACE_AUTH_TIP_POOR_GAZE](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a93c89c83ede9a3b5a15e90a1975176b7) = 10, [FACE_AUTH_TIP_NOT_DETECTED](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007aa41ae58b84dbfe8b467de7a11ad236f8) = 11, [VENDOR_FACE_AUTH_TIP_BEGIN](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007abef2f1de5f74c324a7dd8958a279caab) = 10000 } | 枚举提示信息编码。 [更多...](_hdf_face_auth.md#facetipscode) | +| [AuthType](_hdf_face_auth.md#authtype) : int { PIN = 1, FACE = 2, FINGERPRINT = 4 } | 枚举用户认证凭据类型。 [更多...](_hdf_face_auth.md#authtype) | +| [ExecutorRole](_hdf_face_auth.md#executorrole) : int { COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 } | 枚举执行器角色。 [更多...](_hdf_face_auth.md#executorrole) | +| [ExecutorSecureLevel](_hdf_face_auth.md#executorsecurelevel) : int { ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 } | 枚举执行器安全等级。 [更多...](_hdf_face_auth.md#executorsecurelevel) | +| [CommandId](_hdf_face_auth.md#commandid) : int { LOCK_TEMPLATE = 1, UNLOCK_TEMPLATE = 2, VENDOR_COMMAND_BEGIN = 10000 } | 枚举人脸认证功能相关操作命令。 [更多...](_hdf_face_auth.md#commandid) | +| [FaceTipsCode](_hdf_face_auth.md#facetipscode) : int { FACE_AUTH_TIP_TOO_BRIGHT = 1, FACE_AUTH_TIP_TOO_DARK = 2, FACE_AUTH_TIP_TOO_CLOSE = 3, FACE_AUTH_TIP_TOO_FAR = 4,   FACE_AUTH_TIP_TOO_HIGH = 5, FACE_AUTH_TIP_TOO_LOW = 6, FACE_AUTH_TIP_TOO_RIGHT = 7, FACE_AUTH_TIP_TOO_LEFT = 8,   FACE_AUTH_TIP_TOO_MUCH_MOTION = 9, FACE_AUTH_TIP_POOR_GAZE = 10, FACE_AUTH_TIP_NOT_DETECTED = 11, VENDOR_FACE_AUTH_TIP_BEGIN = 10000 } | 枚举提示信息编码。 [更多...](_hdf_face_auth.md#facetipscode) | ### 变量 diff --git a/zh-cn/device-dev/api/_hdf_face_auth.md b/zh-cn/device-dev/api/_hdf_face_auth.md index 39f59d2b97..0a1a83330c 100644 --- a/zh-cn/device-dev/api/_hdf_face_auth.md +++ b/zh-cn/device-dev/api/_hdf_face_auth.md @@ -27,13 +27,13 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [AuthType](#authtype) : int {   [PIN](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a048efb7462d3f8cced82716c66926168) = 1, [FACE](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a5cfae78048cf95359061c2e812e7d691) = 2, [FINGERPRINT](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1ad03eae85b35bf9bc22d787c8913b795a) = 4 } | 枚举用户认证凭据类型。 [更多...](#authtype) | -| [ExecutorRole](#executorrole) : int {   [COLLECTOR](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a539c54e76bcc96cddb85f0cabcff39ec) = 1, [VERIFIER](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a1286a5d974d0c68d7bc43ffc0576a6d4) = 2, [ALL_IN_ONE](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a7eebd77a403f81c5968b4c2898ee6fd4) = 3 } | 枚举执行器角色。 [更多...](#executorrole) | -| [ExecutorSecureLevel](#executorsecurelevel) : int {   [ESL0](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa0cd05a2adda94d3c676fca84f96c0638) = 0, [ESL1](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fae6a34bbf2764541238bf81569faf29d3) = 1, [ESL2](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa8f898bca57625d548a011ba2aaf4285f) = 2, [ESL3](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa9a6fb8a4530b6a09dba2fbfdf2e6c2e9) = 3 } | 枚举执行器安全等级。 [更多...](#executorsecurelevel) | -| [CommandId](#commandid) : int { [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref313653401083931,link:#entry1378875880083931p0](#entry1378875880083931p0) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref148718194083931,link:#entry1786148552083931p0](#entry1786148552083931p0) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref2084154321083931,link:#entry1330595345083931p0](#entry1330595345083931p0) = 10000 } | 枚举人脸认证功能相关操作命令。 [更多...](#commandid) | -| [FaceTipsCode](#facetipscode) : int {   [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref1058539048083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007aa973b57b70bddf6e04ea0d1d8ac84bbc](#ggafe283e29a705391d97054a4b9d5fe007aa973b57b70bddf6e04ea0d1d8ac84bbc) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref2091712261083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007a9e812580c2600ebd4847ac05478805fe](#ggafe283e29a705391d97054a4b9d5fe007a9e812580c2600ebd4847ac05478805fe) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref2114375419083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007adbd6a2cd4effac8f2d08a406c21cee17](#ggafe283e29a705391d97054a4b9d5fe007adbd6a2cd4effac8f2d08a406c21cee17) = 3, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref640599540083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007a557c72d5d5dd9cc4ca52406d442a085e](#ggafe283e29a705391d97054a4b9d5fe007a557c72d5d5dd9cc4ca52406d442a085e) = 4,   [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref716207804083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007ac573361a2c459a0d0f95f7691819611b](#ggafe283e29a705391d97054a4b9d5fe007ac573361a2c459a0d0f95f7691819611b) = 5, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref1534653669083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007a1fbbe62377b7746848761d4fc1e591d8](#ggafe283e29a705391d97054a4b9d5fe007a1fbbe62377b7746848761d4fc1e591d8) = 6, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref840994427083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007a8b8f69a132ab5e9e4770fbe25efe6810](#ggafe283e29a705391d97054a4b9d5fe007a8b8f69a132ab5e9e4770fbe25efe6810) = 7, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref480644543083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007a4f1f1ab1bed69c0968981c6ecc52a572](#ggafe283e29a705391d97054a4b9d5fe007a4f1f1ab1bed69c0968981c6ecc52a572) = 8,   [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref1440203875083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007a19f794720c79aaeb2b2cb895eca6c4fd](#ggafe283e29a705391d97054a4b9d5fe007a19f794720c79aaeb2b2cb895eca6c4fd) = 9, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref1366149389083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007a93c89c83ede9a3b5a15e90a1975176b7](#ggafe283e29a705391d97054a4b9d5fe007a93c89c83ede9a3b5a15e90a1975176b7) = 10, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref1532937057083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007aa41ae58b84dbfe8b467de7a11ad236f8](#ggafe283e29a705391d97054a4b9d5fe007aa41ae58b84dbfe8b467de7a11ad236f8) = 11, [ERROR:Invalid link:zh-cn_topic_0000001295414192.xml#xref1048618882083931,link:zh-cn_topic_0000001295414192.xml#ggafe283e29a705391d97054a4b9d5fe007abef2f1de5f74c324a7dd8958a279caab](#ggafe283e29a705391d97054a4b9d5fe007abef2f1de5f74c324a7dd8958a279caab) = 10000 } | 枚举提示信息编码。 [更多...](#facetipscode) | +| [AuthType](#authtype) : int { PIN = 1, FACE = 2, FINGERPRINT = 4 } | 枚举用户认证凭据类型。 [更多...](#authtype) | +| [ExecutorRole](#executorrole) : int { COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 } | 枚举执行器角色。 [更多...](#executorrole) | +| [ExecutorSecureLevel](#executorsecurelevel) : int { ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 } | 枚举执行器安全等级。 [更多...](#executorsecurelevel) | +| [CommandId](#commandid) : int { LOCK_TEMPLATE = 1, UNLOCK_TEMPLATE = 2, VENDOR_COMMAND_BEGIN = 10000 } | 枚举人脸认证功能相关操作命令。 [更多...](#commandid) | +| [FaceTipsCode](#facetipscode) : int { FACE_AUTH_TIP_TOO_BRIGHT = 1, FACE_AUTH_TIP_TOO_DARK = 2, FACE_AUTH_TIP_TOO_CLOSE = 3, FACE_AUTH_TIP_TOO_FAR = 4,   FACE_AUTH_TIP_TOO_HIGH = 5, FACE_AUTH_TIP_TOO_LOW = 6, FACE_AUTH_TIP_TOO_RIGHT = 7, FACE_AUTH_TIP_TOO_LEFT = 8,   FACE_AUTH_TIP_TOO_MUCH_MOTION = 9, FACE_AUTH_TIP_POOR_GAZE = 10, FACE_AUTH_TIP_NOT_DETECTED = 11, VENDOR_FACE_AUTH_TIP_BEGIN = 10000 } | 枚举提示信息编码。 [更多...](#facetipscode) | ### 变量 diff --git a/zh-cn/device-dev/api/_hdf_pin_auth.md b/zh-cn/device-dev/api/_hdf_pin_auth.md index 938de8ac0e..a26f8a42ad 100644 --- a/zh-cn/device-dev/api/_hdf_pin_auth.md +++ b/zh-cn/device-dev/api/_hdf_pin_auth.md @@ -29,10 +29,10 @@ | 枚举 | 描述 | | -------- | -------- | -| [AuthType](#authtype) : int {   [PIN](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a048efb7462d3f8cced82716c66926168) = 1, [FACE](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a5cfae78048cf95359061c2e812e7d691) = 2, [FINGERPRINT](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1ad03eae85b35bf9bc22d787c8913b795a) = 4 } | 枚举用户认证凭据类型。 [更多...](#authtype) | -| [ExecutorRole](#executorrole) : int {   [COLLECTOR](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a539c54e76bcc96cddb85f0cabcff39ec) = 1, [VERIFIER](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a1286a5d974d0c68d7bc43ffc0576a6d4) = 2, [ALL_IN_ONE](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a7eebd77a403f81c5968b4c2898ee6fd4) = 3 } | 枚举执行器角色。 [更多...](#executorrole) | -| [ExecutorSecureLevel](#executorsecurelevel) : int {   [ESL0](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa0cd05a2adda94d3c676fca84f96c0638) = 0, [ESL1](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fae6a34bbf2764541238bf81569faf29d3) = 1, [ESL2](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa8f898bca57625d548a011ba2aaf4285f) = 2, [ESL3](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa9a6fb8a4530b6a09dba2fbfdf2e6c2e9) = 3 } | 枚举执行器安全等级。 [更多...](#executorsecurelevel) | -| [CommandId](#commandid) : int { [ERROR:Invalid link:zh-cn_topic_0000001295254320.xml#xref679966451083931,link:zh-cn_topic_0000001295254320.xml#gga5633c8cc52bef1a4df7539c7bb6febe7a88ec7d5086d2469ba843c7fcceade8a6](#gga5633c8cc52bef1a4df7539c7bb6febe7a88ec7d5086d2469ba843c7fcceade8a6) = 0 } | 枚举口令认证相关功能操作命令。 [更多...](#commandid) | +| [AuthType](#authtype) : int {   PIN = 1, FACE = 2, FINGERPRINT = 4 } | 枚举用户认证凭据类型。 [更多...](#authtype) | +| [ExecutorRole](#executorrole) : int {   COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 } | 枚举执行器角色。 [更多...](#executorrole) | +| [ExecutorSecureLevel](#executorsecurelevel) : int {   ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 } | 枚举执行器安全等级。 [更多...](#executorsecurelevel) | +| [CommandId](#commandid) : int { DEFAULT = 0 } | 枚举口令认证相关功能操作命令。 [更多...](#commandid) | ### 变量 diff --git a/zh-cn/device-dev/api/_hdf_user_auth.md b/zh-cn/device-dev/api/_hdf_user_auth.md index 2f919f29ba..824822acf7 100644 --- a/zh-cn/device-dev/api/_hdf_user_auth.md +++ b/zh-cn/device-dev/api/_hdf_user_auth.md @@ -33,9 +33,9 @@ | 枚举 | 描述 | | -------- | -------- | -| [AuthType](#authtype) : int {   [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref2099463766083931,link:zh-cn_topic_0000001295573820.xml#gga89fed1f0b2adadc0ab678c1c6b9570a1a048efb7462d3f8cced82716c66926168](#gga89fed1f0b2adadc0ab678c1c6b9570a1a048efb7462d3f8cced82716c66926168) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref1101090273083931,link:zh-cn_topic_0000001295573820.xml#gga89fed1f0b2adadc0ab678c1c6b9570a1a5cfae78048cf95359061c2e812e7d691](#gga89fed1f0b2adadc0ab678c1c6b9570a1a5cfae78048cf95359061c2e812e7d691) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref2144839375083931,link:zh-cn_topic_0000001295573820.xml#gga89fed1f0b2adadc0ab678c1c6b9570a1ad03eae85b35bf9bc22d787c8913b795a](#gga89fed1f0b2adadc0ab678c1c6b9570a1ad03eae85b35bf9bc22d787c8913b795a) = 4, [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref258518135083931,link:zh-cn_topic_0000001295573820.xml#gga89fed1f0b2adadc0ab678c1c6b9570a1ab1d5eac4b1dca480c8056eaea7663b7a](#gga89fed1f0b2adadc0ab678c1c6b9570a1ab1d5eac4b1dca480c8056eaea7663b7a) = 0 } | 枚举用户认证凭据类型。 [更多...](#authtype) | -| [ExecutorRole](#executorrole) : int {   [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref1855863902083931,link:zh-cn_topic_0000001295573820.xml#ggaef26ea73ebd494278e243c53b41ea7e5a539c54e76bcc96cddb85f0cabcff39ec](#ggaef26ea73ebd494278e243c53b41ea7e5a539c54e76bcc96cddb85f0cabcff39ec) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref1503416700083931,link:zh-cn_topic_0000001295573820.xml#ggaef26ea73ebd494278e243c53b41ea7e5a1286a5d974d0c68d7bc43ffc0576a6d4](#ggaef26ea73ebd494278e243c53b41ea7e5a1286a5d974d0c68d7bc43ffc0576a6d4) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref902051378083931,link:zh-cn_topic_0000001295573820.xml#ggaef26ea73ebd494278e243c53b41ea7e5a7eebd77a403f81c5968b4c2898ee6fd4](#ggaef26ea73ebd494278e243c53b41ea7e5a7eebd77a403f81c5968b4c2898ee6fd4) = 3 } | 枚举执行器角色。 [更多...](#executorrole) | -| [ExecutorSecureLevel](#executorsecurelevel) : int {   [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref984255741083931,link:zh-cn_topic_0000001295573820.xml#gga955c57d8720719916dd806106356fa0fa0cd05a2adda94d3c676fca84f96c0638](#gga955c57d8720719916dd806106356fa0fa0cd05a2adda94d3c676fca84f96c0638) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref1990347701083931,link:zh-cn_topic_0000001295573820.xml#gga955c57d8720719916dd806106356fa0fae6a34bbf2764541238bf81569faf29d3](#gga955c57d8720719916dd806106356fa0fae6a34bbf2764541238bf81569faf29d3) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref849727353083931,link:zh-cn_topic_0000001295573820.xml#gga955c57d8720719916dd806106356fa0fa8f898bca57625d548a011ba2aaf4285f](#gga955c57d8720719916dd806106356fa0fa8f898bca57625d548a011ba2aaf4285f) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295573820.xml#xref1372842813083931,link:zh-cn_topic_0000001295573820.xml#gga955c57d8720719916dd806106356fa0fa9a6fb8a4530b6a09dba2fbfdf2e6c2e9](#gga955c57d8720719916dd806106356fa0fa9a6fb8a4530b6a09dba2fbfdf2e6c2e9) = 3 } | 枚举执行器安全等级。 [更多...](#executorsecurelevel) | +| [AuthType](#authtype) : int {   PIN = 1, FACE = 2, FINGERPRINT = 4, ALL = 0 } | 枚举用户认证凭据类型。 [更多...](#authtype) | +| [ExecutorRole](#executorrole) : int {   COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 } | 枚举执行器角色。 [更多...](#executorrole) | +| [ExecutorSecureLevel](#executorsecurelevel) : int {   ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 } | 枚举执行器安全等级。 [更多...](#executorsecurelevel) | ### 变量 diff --git a/zh-cn/device-dev/api/_input.md b/zh-cn/device-dev/api/_input.md index 18675b371e..beaec0f597 100644 --- a/zh-cn/device-dev/api/_input.md +++ b/zh-cn/device-dev/api/_input.md @@ -42,12 +42,12 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [RetStatus](#retstatus) {   [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1300857390083931,link:zh-cn_topic_0000001295094392.xml#gga85d58a5185669daa4995e332b63eba7aa4b6c3821e689826c4323c4eb759b4d3a](#gga85d58a5185669daa4995e332b63eba7aa4b6c3821e689826c4323c4eb759b4d3a) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1409989604083931,link:zh-cn_topic_0000001295094392.xml#gga85d58a5185669daa4995e332b63eba7aa07d986b0ee365020834af82a31dfce11](#gga85d58a5185669daa4995e332b63eba7aa07d986b0ee365020834af82a31dfce11) = -1, [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref452864304083931,link:zh-cn_topic_0000001295094392.xml#gga85d58a5185669daa4995e332b63eba7aa5f54ab958e21a298da35c3c5c1c36d85](#gga85d58a5185669daa4995e332b63eba7aa5f54ab958e21a298da35c3c5c1c36d85) = -2, [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref961590603083931,link:zh-cn_topic_0000001295094392.xml#gga85d58a5185669daa4995e332b63eba7aaddf6c11b0fac107e0123b83cfc4a1185](#gga85d58a5185669daa4995e332b63eba7aaddf6c11b0fac107e0123b83cfc4a1185) = -3,   [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref924512393083931,link:zh-cn_topic_0000001295094392.xml#gga85d58a5185669daa4995e332b63eba7aa157cd4f4736dd1f05eb2e13dbc7123ed](#gga85d58a5185669daa4995e332b63eba7aa157cd4f4736dd1f05eb2e13dbc7123ed) = -4, [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1348525150083931,link:zh-cn_topic_0000001295094392.xml#gga85d58a5185669daa4995e332b63eba7aabdaeb2a27983bd66ff6e24d4df255f59](#gga85d58a5185669daa4995e332b63eba7aabdaeb2a27983bd66ff6e24d4df255f59) = -5, [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1671886965083931,link:zh-cn_topic_0000001295094392.xml#gga85d58a5185669daa4995e332b63eba7aa8978f7ee3d0ddd70f5077c21efc4a97a](#gga85d58a5185669daa4995e332b63eba7aa8978f7ee3d0ddd70f5077c21efc4a97a) = -6 } | 定义返回值类型 [更多...](#retstatus) | -| [InputDevType](#inputdevtype) {   [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1555941679083931,link:zh-cn_topic_0000001295094392.xml#ggaa8225ba155dfa1ef2c4119c832bc4dd3a621678554aac2b37ac244b80fc33da0d](#ggaa8225ba155dfa1ef2c4119c832bc4dd3a621678554aac2b37ac244b80fc33da0d), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref490402822083931,link:zh-cn_topic_0000001295094392.xml#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4c4c8407342021cc06a95aa13ebeaca1](#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4c4c8407342021cc06a95aa13ebeaca1), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref233720602083931,link:zh-cn_topic_0000001295094392.xml#ggaa8225ba155dfa1ef2c4119c832bc4dd3a3a4137efe666a3aaccf267d597879fdc](#ggaa8225ba155dfa1ef2c4119c832bc4dd3a3a4137efe666a3aaccf267d597879fdc), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1190476620083931,link:zh-cn_topic_0000001295094392.xml#ggaa8225ba155dfa1ef2c4119c832bc4dd3abe68740c1d125d3d474fdadc7d31d11c](#ggaa8225ba155dfa1ef2c4119c832bc4dd3abe68740c1d125d3d474fdadc7d31d11c),   [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1309699275083931,link:zh-cn_topic_0000001295094392.xml#ggaa8225ba155dfa1ef2c4119c832bc4dd3a2815a25dde3e56e1f8eb57f20049e8c0](#ggaa8225ba155dfa1ef2c4119c832bc4dd3a2815a25dde3e56e1f8eb57f20049e8c0), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1202673028083931,link:zh-cn_topic_0000001295094392.xml#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4ef2ab6bc355e2321664709716d1d04f](#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4ef2ab6bc355e2321664709716d1d04f), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref2038943016083931,link:zh-cn_topic_0000001295094392.xml#ggaa8225ba155dfa1ef2c4119c832bc4dd3a8cd6b27ac631b9d3fa89a17ddca37291](#ggaa8225ba155dfa1ef2c4119c832bc4dd3a8cd6b27ac631b9d3fa89a17ddca37291), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref753753548083931,link:zh-cn_topic_0000001295094392.xml#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4097247eba52062f47a1aa99414033de](#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4097247eba52062f47a1aa99414033de) } | 定义input设备类型 [更多...](#inputdevtype) | -| [PowerStatus](#powerstatus) { [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref2104217090083931,link:zh-cn_topic_0000001295094392.xml#gga65e6bb4d942c22dba9975253b0a1d73fa5edb1acdc509659046de9cb61bd9508a](#gga65e6bb4d942c22dba9975253b0a1d73fa5edb1acdc509659046de9cb61bd9508a), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref612508396083931,link:zh-cn_topic_0000001295094392.xml#gga65e6bb4d942c22dba9975253b0a1d73fa2a6aab1b3d50dae2b6ba43779e185ea5](#gga65e6bb4d942c22dba9975253b0a1d73fa2a6aab1b3d50dae2b6ba43779e185ea5), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1485213206083931,link:zh-cn_topic_0000001295094392.xml#gga65e6bb4d942c22dba9975253b0a1d73fa8895c64802d558830d46bcd921830e9d](#gga65e6bb4d942c22dba9975253b0a1d73fa8895c64802d558830d46bcd921830e9d), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1055889242083931,link:zh-cn_topic_0000001295094392.xml#gga65e6bb4d942c22dba9975253b0a1d73fa728020b31c626f749d426cbe8f0f92fe](#gga65e6bb4d942c22dba9975253b0a1d73fa728020b31c626f749d426cbe8f0f92fe) } | 定义电源状态 [更多...](#powerstatus) | -| [CapacitanceTest](#capacitancetest) {   [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref188734445083931,link:zh-cn_topic_0000001295094392.xml#ggae96e484cfd64ea37b5b7782f57f38a21aedd31f50c79a36cc8e084d69a3fc695b](#ggae96e484cfd64ea37b5b7782f57f38a21aedd31f50c79a36cc8e084d69a3fc695b), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref335398850083931,link:zh-cn_topic_0000001295094392.xml#ggae96e484cfd64ea37b5b7782f57f38a21abfe92c879dc84b5b071899a7ec5cc41d](#ggae96e484cfd64ea37b5b7782f57f38a21abfe92c879dc84b5b071899a7ec5cc41d), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1929415567083931,link:zh-cn_topic_0000001295094392.xml#ggae96e484cfd64ea37b5b7782f57f38a21a93335d88212604ade3b0bfe7e619916f](#ggae96e484cfd64ea37b5b7782f57f38a21a93335d88212604ade3b0bfe7e619916f), [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref2014653915083931,link:zh-cn_topic_0000001295094392.xml#ggae96e484cfd64ea37b5b7782f57f38a21a31afc25da895db4eaa2af6cec1d6b37c](#ggae96e484cfd64ea37b5b7782f57f38a21a31afc25da895db4eaa2af6cec1d6b37c),   [ERROR:Invalid link:zh-cn_topic_0000001295094392.xml#xref1192159830083931,link:zh-cn_topic_0000001295094392.xml#ggae96e484cfd64ea37b5b7782f57f38a21a9d739cecefd291b39152e3815445aa20](#ggae96e484cfd64ea37b5b7782f57f38a21a9d739cecefd291b39152e3815445aa20) } | 定义容值测试类型 [更多...](#capacitancetest) | +| [RetStatus](#retstatus) { INPUT_SUCCESS = 0, INPUT_FAILURE = -1, INPUT_INVALID_PARAM = -2, INPUT_NOMEM = -3,   INPUT_NULL_PTR = -4, INPUT_TIMEOUT = -5, INPUT_UNSUPPORTED = -6 } | 定义返回值类型 [更多...](#retstatus) | +| [InputDevType](#inputdevtype) { INDEV_TYPE_TOUCH, INDEV_TYPE_KEY, INDEV_TYPE_KEYBOARD, INDEV_TYPE_MOUSE,   INDEV_TYPE_BUTTON, INDEV_TYPE_CROWN, INDEV_TYPE_ENCODER, INDEV_TYPE_UNKNOWN } | 定义input设备类型 [更多...](#inputdevtype) | +| [PowerStatus](#powerstatus) { INPUT_RESUME, INPUT_SUSPEND, INPUT_LOW_POWER, INPUT_POWER_STATUS_UNKNOWN } | 定义电源状态 [更多...](#powerstatus) | +| [CapacitanceTest](#capacitancetest) { BASE_TEST, FULL_TEST, MMI_TEST, RUNNING_TEST,   TEST_TYPE_UNKNOWN } | 定义容值测试类型 [更多...](#capacitancetest) | ### 函数 diff --git a/zh-cn/device-dev/api/_light.md b/zh-cn/device-dev/api/_light.md index 086e3992b4..b7bde9508a 100644 --- a/zh-cn/device-dev/api/_light.md +++ b/zh-cn/device-dev/api/_light.md @@ -24,11 +24,11 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [LightStatus](#lightstatus) { [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref669817133083931,link:zh-cn_topic_0000001295094348.xml#gga7e734c01235aff210cae379b12e53e9da232a2bb4a97420c327e6f3ea0551eba9](#gga7e734c01235aff210cae379b12e53e9da232a2bb4a97420c327e6f3ea0551eba9) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref1922765945083931,link:zh-cn_topic_0000001295094348.xml#gga7e734c01235aff210cae379b12e53e9daa45f0187f0b5768ad0925ded9c89571a](#gga7e734c01235aff210cae379b12e53e9daa45f0187f0b5768ad0925ded9c89571a) = -1, [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref2144622860083931,link:zh-cn_topic_0000001295094348.xml#gga7e734c01235aff210cae379b12e53e9daf0b19776befd37739b12cf23d170ff30](#gga7e734c01235aff210cae379b12e53e9daf0b19776befd37739b12cf23d170ff30) = -2, [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref707352116083931,link:zh-cn_topic_0000001295094348.xml#gga7e734c01235aff210cae379b12e53e9dad2f1173892e1d07a8126c6c35a999a37](#gga7e734c01235aff210cae379b12e53e9dad2f1173892e1d07a8126c6c35a999a37) = -3 } | 枚举灯模块的状态值。 [更多...](#lightstatus) | -| [LightId](#lightid) {   [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref683206926083931,link:zh-cn_topic_0000001295094348.xml#gga8af1cb654f32fb5377425257b28748e5ac983420abafcd5130c932b845974f99b](#gga8af1cb654f32fb5377425257b28748e5ac983420abafcd5130c932b845974f99b) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref850328663083931,link:zh-cn_topic_0000001295094348.xml#gga8af1cb654f32fb5377425257b28748e5af15783cc343be88bf3008341ac0c6625](#gga8af1cb654f32fb5377425257b28748e5af15783cc343be88bf3008341ac0c6625) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref1639689805083931,link:zh-cn_topic_0000001295094348.xml#gga8af1cb654f32fb5377425257b28748e5a0130b68a96276084c65827c34a4e396d](#gga8af1cb654f32fb5377425257b28748e5a0130b68a96276084c65827c34a4e396d) = 2, [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref1331872722083931,link:zh-cn_topic_0000001295094348.xml#gga8af1cb654f32fb5377425257b28748e5a3b03c358d0573b293fe648cf349e7083](#gga8af1cb654f32fb5377425257b28748e5a3b03c358d0573b293fe648cf349e7083) = 3,   [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref1112243301083931,link:zh-cn_topic_0000001295094348.xml#gga8af1cb654f32fb5377425257b28748e5a25137b2ac5c4e6dc4f5edc47f175e38c](#gga8af1cb654f32fb5377425257b28748e5a25137b2ac5c4e6dc4f5edc47f175e38c) = 4 } | 枚举灯类型 [更多...](#lightid) | -| [LightFlashMode](#lightflashmode) { [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref1338345588083931,link:zh-cn_topic_0000001295094348.xml#ggaacf9823c64514a279833614add26ab5da72520ea2652cf669185239981de8a6f0](#ggaacf9823c64514a279833614add26ab5da72520ea2652cf669185239981de8a6f0) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref1733020795083931,link:zh-cn_topic_0000001295094348.xml#ggaacf9823c64514a279833614add26ab5da3d4dc48f86b6635811e497e5a27f475c](#ggaacf9823c64514a279833614add26ab5da3d4dc48f86b6635811e497e5a27f475c) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295094348.xml#xref444541071083931,link:zh-cn_topic_0000001295094348.xml#ggaacf9823c64514a279833614add26ab5da87ae168f921bbab98e18bf80f7d9b8d5](#ggaacf9823c64514a279833614add26ab5da87ae168f921bbab98e18bf80f7d9b8d5) = 2 } | 枚举灯的模式 [更多...](#lightflashmode) | +| [LightStatus](#lightstatus) { LIGHT_SUCCESS = 0, LIGHT_NOT_SUPPORT = -1, LIGHT_NOT_FLASH = -2, LIGHT_NOT_BRIGHTNESS = -3 } | 枚举灯模块的状态值。 [更多...](#lightstatus) | +| [LightId](#lightid) { LIGHT_ID_NONE = 0, LIGHT_ID_BATTERY = 1, LIGHT_ID_NOTIFICATIONS = 2, LIGHT_ID_ATTENTION = 3,   LIGHT_ID_BUTT = 4 } | 枚举灯类型 [更多...](#lightid) | +| [LightFlashMode](#lightflashmode) { LIGHT_FLASH_NONE = 0, LIGHT_FLASH_TIMED = 1, LIGHT_FLASH_BUTT = 2 } | 枚举灯的模式 [更多...](#lightflashmode) | ### 函数 diff --git a/zh-cn/device-dev/api/_pin_auth_types_8idl.md b/zh-cn/device-dev/api/_pin_auth_types_8idl.md index 5824a22612..9e2a1a49e5 100644 --- a/zh-cn/device-dev/api/_pin_auth_types_8idl.md +++ b/zh-cn/device-dev/api/_pin_auth_types_8idl.md @@ -23,11 +23,10 @@ | 枚举 | 描述 | | -------- | -------- | -| [AuthType](_hdf_face_auth.md#authtype) : int { [PIN](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a048efb7462d3f8cced82716c66926168) = 1, [FACE](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a5cfae78048cf95359061c2e812e7d691) = 2, [FINGERPRINT](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1ad03eae85b35bf9bc22d787c8913b795a) = 4 } | 枚举用户认证凭据类型。 [更多...](_hdf_face_auth.md#authtype) | -| [ExecutorRole](_hdf_face_auth.md#executorrole) : int { [COLLECTOR](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a539c54e76bcc96cddb85f0cabcff39ec) = 1, [VERIFIER](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a1286a5d974d0c68d7bc43ffc0576a6d4) = 2, [ALL_IN_ONE](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a7eebd77a403f81c5968b4c2898ee6fd4) = 3 } | 枚举执行器角色。 [更多...](_hdf_face_auth.md#executorrole) | -| [ExecutorSecureLevel](_hdf_face_auth.md#executorsecurelevel) : int { [ESL0](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa0cd05a2adda94d3c676fca84f96c0638) = 0, [ESL1](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fae6a34bbf2764541238bf81569faf29d3) = 1, [ESL2](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa8f898bca57625d548a011ba2aaf4285f) = 2, [ESL3](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa9a6fb8a4530b6a09dba2fbfdf2e6c2e9) = 3 } | 枚举执行器安全等级。 [更多...](_hdf_face_auth.md#executorsecurelevel) | -| [CommandId](_hdf_face_auth.md#commandid) : int { [DEFAULT](_hdf_pin_auth.md#gga5633c8cc52bef1a4df7539c7bb6febe7a88ec7d5086d2469ba843c7fcceade8a6) = 0 } | 枚举口令认证功能相关操作命令。 [更多...](_hdf_face_auth.md#commandid) | -| [FaceTipsCode](_hdf_face_auth.md#facetipscode) : int {   [FACE_AUTH_TIP_TOO_BRIGHT](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007aa973b57b70bddf6e04ea0d1d8ac84bbc) = 1, [FACE_AUTH_TIP_TOO_DARK](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a9e812580c2600ebd4847ac05478805fe) = 2, [FACE_AUTH_TIP_TOO_CLOSE](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007adbd6a2cd4effac8f2d08a406c21cee17) = 3, [FACE_AUTH_TIP_TOO_FAR](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a557c72d5d5dd9cc4ca52406d442a085e) = 4,   [FACE_AUTH_TIP_TOO_HIGH](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007ac573361a2c459a0d0f95f7691819611b) = 5, [FACE_AUTH_TIP_TOO_LOW](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a1fbbe62377b7746848761d4fc1e591d8) = 6, [FACE_AUTH_TIP_TOO_RIGHT](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a8b8f69a132ab5e9e4770fbe25efe6810) = 7, [FACE_AUTH_TIP_TOO_LEFT](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a4f1f1ab1bed69c0968981c6ecc52a572) = 8,   [FACE_AUTH_TIP_TOO_MUCH_MOTION](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a19f794720c79aaeb2b2cb895eca6c4fd) = 9, [FACE_AUTH_TIP_POOR_GAZE](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007a93c89c83ede9a3b5a15e90a1975176b7) = 10, [FACE_AUTH_TIP_NOT_DETECTED](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007aa41ae58b84dbfe8b467de7a11ad236f8) = 11, [VENDOR_FACE_AUTH_TIP_BEGIN](_hdf_face_auth.md#ggafe283e29a705391d97054a4b9d5fe007abef2f1de5f74c324a7dd8958a279caab) = 10000 } | 枚举提示信息编码。 [更多...](_hdf_face_auth.md#facetipscode) | +| [AuthType](_hdf_pin_auth.md#authtype) : int {   PIN = 1, FACE = 2, FINGERPRINT = 4 } | 枚举用户认证凭据类型。 [更多...](_hdf_face_auth.md#authtype) | +| [ExecutorRole](_hdf_pin_auth.md#executorrole) : int {   COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 } | 枚举执行器角色。 [更多...](_hdf_face_auth.md#executorrole) | +| [ExecutorSecureLevel](_hdf_pin_auth.md#executorsecurelevel) : int {   ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 } | 枚举执行器安全等级。 [更多...](_hdf_face_auth.md#executorsecurelevel) | +| [CommandId](_hdf_pin_auth.md#commandid) : int { DEFAULT = 0 } | 枚举口令认证功能相关操作命令。 [更多...](_hdf_face_auth.md#commandid) | ### 变量 diff --git a/zh-cn/device-dev/api/_power_types_8idl.md b/zh-cn/device-dev/api/_power_types_8idl.md index 664dad8fab..acbb4832b6 100644 --- a/zh-cn/device-dev/api/_power_types_8idl.md +++ b/zh-cn/device-dev/api/_power_types_8idl.md @@ -13,11 +13,11 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [PowerHdfCmd](power.md#powerhdfcmd) {   [CMD_REGISTER_CALLBCK](power.md#gga0c9f68a1cf4b1b76a8253281688a499fadb8d2fd75158645b1cd01cab62a11e48) = 0, [CMD_START_SUSPEND](power.md#gga0c9f68a1cf4b1b76a8253281688a499fab1d1e95415b8a9ab070fed3200b5f1d3), [CMD_STOP_SUSPEND](power.md#gga0c9f68a1cf4b1b76a8253281688a499fa65c754fdc432aa2a6f13c27cb97c27de), [CMD_FORCE_SUSPEND](power.md#gga0c9f68a1cf4b1b76a8253281688a499faa96402e649008dcafce89c7a47c6f266),   [CMD_SUSPEND_BLOCK](power.md#gga0c9f68a1cf4b1b76a8253281688a499fa0766f8c155a9de9fc7168a498c8317da), [CMD_SUSPEND_UNBLOCK](power.md#gga0c9f68a1cf4b1b76a8253281688a499fa840d1fd2227dfea25fcee7217deb82ed), [CMD_DUMP](power.md#gga0c9f68a1cf4b1b76a8253281688a499fab92b7d7125239e258bd22cd1a35aba0d) } | 枚举电源命令的参数。 [更多...](power.md#powerhdfcmd) | -| [PowerHdfCallbackCmd](power.md#powerhdfcallbackcmd) { [CMD_ON_SUSPEND](power.md#gga4bbb7ca0dc24efe3980c39cd409b4109a6d4a3ebd4580d7303df66d5ea9ad98d1) = 0, [CMD_ON_WAKEUP](power.md#gga4bbb7ca0dc24efe3980c39cd409b4109a4d0194285647be62fe2c191cad95e72f) } | 枚举电源状态回调的参数。 [更多...](power.md#powerhdfcallbackcmd) | -| [PowerHdfState](power.md#powerhdfstate) { [AWAKE](power.md#ggadf82dc0e2ae04729ac8fabb3e3d28ecda65e803ac3fb48fa726e326f3c63c2d83) = 0, [INACTIVE](power.md#ggadf82dc0e2ae04729ac8fabb3e3d28ecda3ff8ba88da6f8947ab7c22b7825c6bb6), [SLEEP](power.md#ggadf82dc0e2ae04729ac8fabb3e3d28ecdad6137abebe4fdc59e2f0f2c84bdbe3fa) } | 枚举电源的状态。 [更多...](power.md#powerhdfstate) | +| [PowerHdfCmd](power.md#powerhdfcmd) {   CMD_REGISTER_CALLBCK = 0, CMD_START_SUSPEND, CMD_STOP_SUSPEND, CMD_FORCE_SUSPEND,   CMD_SUSPEND_BLOCK, CMD_SUSPEND_UNBLOCK, CMD_DUMP } | 枚举电源命令的参数。 [更多...](power.md#powerhdfcmd) | +| [PowerHdfCallbackCmd](power.md#powerhdfcallbackcmd) { CMD_ON_SUSPEND = 0, CMD_ON_WAKEUP } | 枚举电源状态回调的参数。 [更多...](power.md#powerhdfcallbackcmd) | +| [PowerHdfState](power.md#powerhdfstate) { AWAKE = 0, INACTIVE, SLEEP } | 枚举电源的状态。 [更多...](power.md#powerhdfstate) | ### 变量 diff --git a/zh-cn/device-dev/api/_sensor.md b/zh-cn/device-dev/api/_sensor.md index 6bd941232f..5a461c5bd0 100644 --- a/zh-cn/device-dev/api/_sensor.md +++ b/zh-cn/device-dev/api/_sensor.md @@ -38,14 +38,14 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [SensorStatus](#sensorstatus) {   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1744368128083931,link:zh-cn_topic_0000001348293929.xml#ggaa348cf223e558076864814ee88920ceca6fe3474c6df06ef2bd1d3fb84fc57827](#ggaa348cf223e558076864814ee88920ceca6fe3474c6df06ef2bd1d3fb84fc57827) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1335251836083931,link:zh-cn_topic_0000001348293929.xml#ggaa348cf223e558076864814ee88920cecafc02a48cdab506c10ef1c5c66600ae71](#ggaa348cf223e558076864814ee88920cecafc02a48cdab506c10ef1c5c66600ae71) = -1, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1233191896083931,link:zh-cn_topic_0000001348293929.xml#ggaa348cf223e558076864814ee88920cecacbf62f7bd2738d9be4b81e603c4f3bd5](#ggaa348cf223e558076864814ee88920cecacbf62f7bd2738d9be4b81e603c4f3bd5) = -2, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1060174146083931,link:zh-cn_topic_0000001348293929.xml#ggaa348cf223e558076864814ee88920ceca0728f44385b2cb32a5c01e1370e6f2d7](#ggaa348cf223e558076864814ee88920ceca0728f44385b2cb32a5c01e1370e6f2d7) = -3,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1078641707083931,link:zh-cn_topic_0000001348293929.xml#ggaa348cf223e558076864814ee88920cecaeb19761a981ab03ce5144ed0b4c7a48c](#ggaa348cf223e558076864814ee88920cecaeb19761a981ab03ce5144ed0b4c7a48c) = -4, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref199916655214,link:#p431372085818](#p431372085818) = -5 } | 定义传感器模块返回值类型。 [更多...](#sensorstatus) | -| [SensorTypeTag](#sensortypetag) {   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref276196875083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a3f8e3e31e6a356192f150019309925ee](#ggaea6a2a57db175118e08189b73f8f3da5a3f8e3e31e6a356192f150019309925ee) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1251682907083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5abd9779b04292b5e8054485b10fccb99c](#ggaea6a2a57db175118e08189b73f8f3da5abd9779b04292b5e8054485b10fccb99c) = 1, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref952930154083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5adc01250dcba5642d294f74ba4d115c28](#ggaea6a2a57db175118e08189b73f8f3da5adc01250dcba5642d294f74ba4d115c28) = 2, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref472145700083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a93f36cca60373938f2410162b16b531e](#ggaea6a2a57db175118e08189b73f8f3da5a93f36cca60373938f2410162b16b531e) = 3,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref760459074083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a2d8e52264648743ae154b99eef141607](#ggaea6a2a57db175118e08189b73f8f3da5a2d8e52264648743ae154b99eef141607) = 4, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref982677450083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a717a301be1664d4cd1ea543ca0653325](#ggaea6a2a57db175118e08189b73f8f3da5a717a301be1664d4cd1ea543ca0653325) = 5, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref14169199083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a74438e3f4f1f8cb1e97ccebbd1096fe8](#ggaea6a2a57db175118e08189b73f8f3da5a74438e3f4f1f8cb1e97ccebbd1096fe8) = 6, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref154702882083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a3ed11be057d851a8ee1db6d946b0e69b](#ggaea6a2a57db175118e08189b73f8f3da5a3ed11be057d851a8ee1db6d946b0e69b) = 7,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1984772313083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5ab9ec86561c555fe323e6a45508e20ca8](#ggaea6a2a57db175118e08189b73f8f3da5ab9ec86561c555fe323e6a45508e20ca8) = 8, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1908999646083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a1931d9687ccbd0aac063417fc0d7b4f6](#ggaea6a2a57db175118e08189b73f8f3da5a1931d9687ccbd0aac063417fc0d7b4f6) = 9, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref2060890795083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a7a343ec270d2bd5b96b4748fb4300665](#ggaea6a2a57db175118e08189b73f8f3da5a7a343ec270d2bd5b96b4748fb4300665) = 10, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1014929795083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a875d96bbe6c91eb906e47bbda4250dfe](#ggaea6a2a57db175118e08189b73f8f3da5a875d96bbe6c91eb906e47bbda4250dfe) = 11,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1246330281083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a47912cab9ef79bbe4eb20538a88ce59c](#ggaea6a2a57db175118e08189b73f8f3da5a47912cab9ef79bbe4eb20538a88ce59c) = 12, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref927809977083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a09fbc658c0f86f34e08513ef355870f5](#ggaea6a2a57db175118e08189b73f8f3da5a09fbc658c0f86f34e08513ef355870f5) = 13, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref80376381083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a5e792e48a4eb7b53561af8e511dba943](#ggaea6a2a57db175118e08189b73f8f3da5a5e792e48a4eb7b53561af8e511dba943) = 128, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1670563828083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5ad53330afd8a904e115774ffc04f2e89e](#ggaea6a2a57db175118e08189b73f8f3da5ad53330afd8a904e115774ffc04f2e89e) = 160,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref925483407083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a618cf39cdc6bac1ffe31ba2ad488ca53](#ggaea6a2a57db175118e08189b73f8f3da5a618cf39cdc6bac1ffe31ba2ad488ca53) = 255, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1588739202083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5af2ccaca19bdabe513c45c058003ed596](#ggaea6a2a57db175118e08189b73f8f3da5af2ccaca19bdabe513c45c058003ed596) = 256, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1037316072083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5ac7d364262029cc21bc865577d5288a1e](#ggaea6a2a57db175118e08189b73f8f3da5ac7d364262029cc21bc865577d5288a1e) = 257, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref504051126083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a914a1f090dcc61586318fd4eb4cb1384](#ggaea6a2a57db175118e08189b73f8f3da5a914a1f090dcc61586318fd4eb4cb1384) = 258,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1823576696083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5ac407aca03c7ce72ea55e52f40477561b](#ggaea6a2a57db175118e08189b73f8f3da5ac407aca03c7ce72ea55e52f40477561b) = 259, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref542704221083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a7d9456395f361833de2ee3ef12a1af2a](#ggaea6a2a57db175118e08189b73f8f3da5a7d9456395f361833de2ee3ef12a1af2a) = 260, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1403111115083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a492db205ab694c3954f4b46fa6a999af](#ggaea6a2a57db175118e08189b73f8f3da5a492db205ab694c3954f4b46fa6a999af) = 261, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1386678478083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5af8302206e90774d69fb272ee50e6607b](#ggaea6a2a57db175118e08189b73f8f3da5af8302206e90774d69fb272ee50e6607b) = 262,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref219154468083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5ad123a39ee0525c760755a4b40e5dc638](#ggaea6a2a57db175118e08189b73f8f3da5ad123a39ee0525c760755a4b40e5dc638) = 263, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1498541716083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a3a4ce3aad51d07a5475c3fb1de90ec80](#ggaea6a2a57db175118e08189b73f8f3da5a3a4ce3aad51d07a5475c3fb1de90ec80) = 264, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref293505469083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a443b13dc20beadc7821db8df7682cd58](#ggaea6a2a57db175118e08189b73f8f3da5a443b13dc20beadc7821db8df7682cd58) = 265, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1947880315083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a0cef311260d7668885a937ee1ee8d5d8](#ggaea6a2a57db175118e08189b73f8f3da5a0cef311260d7668885a937ee1ee8d5d8) = 266,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref717567083083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a80a8adf73ab45b0eaaeb24fa3c5351f0](#ggaea6a2a57db175118e08189b73f8f3da5a80a8adf73ab45b0eaaeb24fa3c5351f0) = 277, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref494571919083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a4d4febf14d8366d19661d7b1acb5ff91](#ggaea6a2a57db175118e08189b73f8f3da5a4d4febf14d8366d19661d7b1acb5ff91) = 278, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1305798719083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a23a60d20eeedd90de69b27ffa4a764ac](#ggaea6a2a57db175118e08189b73f8f3da5a23a60d20eeedd90de69b27ffa4a764ac) = 279, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref592082955083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a0ca37fde34accc45f3065c635480a718](#ggaea6a2a57db175118e08189b73f8f3da5a0ca37fde34accc45f3065c635480a718) = 280,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1215860865083931,link:zh-cn_topic_0000001348293929.xml#ggaea6a2a57db175118e08189b73f8f3da5a730bd9013ab8fea3bbfae66f4c6a6129](#ggaea6a2a57db175118e08189b73f8f3da5a730bd9013ab8fea3bbfae66f4c6a6129) = 281, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref4210134214532,link:#p876144152111](#p876144152111) } | 定义传感器类型标识。 [更多...](#sensortypetag) | -| [SensorAccuracyType](#sensoraccuracytype) {   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref885806585083931,link:zh-cn_topic_0000001348293929.xml#gga985dcd359f32f3cdfbaecb98f1f436e7a1f1bc8e9ccbc83cb0cb107a795fd85f7](#gga985dcd359f32f3cdfbaecb98f1f436e7a1f1bc8e9ccbc83cb0cb107a795fd85f7) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref687798640083931,link:zh-cn_topic_0000001348293929.xml#gga985dcd359f32f3cdfbaecb98f1f436e7a6c2ad64f15e8d0ba24f8b573bc0f19ed](#gga985dcd359f32f3cdfbaecb98f1f436e7a6c2ad64f15e8d0ba24f8b573bc0f19ed) = 1, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1802973734083931,link:zh-cn_topic_0000001348293929.xml#gga985dcd359f32f3cdfbaecb98f1f436e7a9083140f63420c7b109c5ae8f009a8dd](#gga985dcd359f32f3cdfbaecb98f1f436e7a9083140f63420c7b109c5ae8f009a8dd) = 2, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1858007843083931,link:zh-cn_topic_0000001348293929.xml#gga985dcd359f32f3cdfbaecb98f1f436e7a8a8e8f15654a31f9df91bb0561f55574](#gga985dcd359f32f3cdfbaecb98f1f436e7a8a8e8f15654a31f9df91bb0561f55574) = 3,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref91811716205513,link:#p945419536162](#p945419536162)} | 传感器的精度类型。 [更多...](#sensoraccuracytype) | -| [SensorRangeType](#sensorrangetype) { [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref948776572083931,link:zh-cn_topic_0000001348293929.xml#gga4b389f271110480ce20fcc0763cf6d20a8b81d07987b7a203ef04579c60c07986](#gga4b389f271110480ce20fcc0763cf6d20a8b81d07987b7a203ef04579c60c07986) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref399481110083931,link:zh-cn_topic_0000001348293929.xml#gga4b389f271110480ce20fcc0763cf6d20a39dd36b72a88ef8bdccdddc9225e21a1](#gga4b389f271110480ce20fcc0763cf6d20a39dd36b72a88ef8bdccdddc9225e21a1) = 1, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref811186551083931,link:zh-cn_topic_0000001348293929.xml#gga4b389f271110480ce20fcc0763cf6d20a7fee94e695411165b4e1f7b75ce5d52e](#gga4b389f271110480ce20fcc0763cf6d20a7fee94e695411165b4e1f7b75ce5d52e) = 2, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref66771827105514,link:#p165901247205](#p165901247205) } | 传感器的量程级别。 [更多...](#sensorrangetype) | -| [SensorModeType](#sensormodetype) {   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref357904618083931,link:zh-cn_topic_0000001348293929.xml#gga066f4ffeb31a1f4cb3ed357736e0afabae36be092f02cd01eb5bf1c8ae23af73d](#gga066f4ffeb31a1f4cb3ed357736e0afabae36be092f02cd01eb5bf1c8ae23af73d) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref858811297083931,link:zh-cn_topic_0000001348293929.xml#gga066f4ffeb31a1f4cb3ed357736e0afaba5db5e8c1a702aca7ecc751532ecfa69d](#gga066f4ffeb31a1f4cb3ed357736e0afaba5db5e8c1a702aca7ecc751532ecfa69d) = 1, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1003544038083931,link:zh-cn_topic_0000001348293929.xml#gga066f4ffeb31a1f4cb3ed357736e0afaba9d264027423bdee89167c3c8f4c71322](#gga066f4ffeb31a1f4cb3ed357736e0afaba9d264027423bdee89167c3c8f4c71322) = 2, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1343791083931,link:zh-cn_topic_0000001348293929.xml#gga066f4ffeb31a1f4cb3ed357736e0afabac0967e6c4ef5004fda5f26f061fec6ee](#gga066f4ffeb31a1f4cb3ed357736e0afabac0967e6c4ef5004fda5f26f061fec6ee) = 3,   [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref751754462083931,link:zh-cn_topic_0000001348293929.xml#gga066f4ffeb31a1f4cb3ed357736e0afaba3f4f9b49ae7fe1fb89cd3bff398c7f0f](#gga066f4ffeb31a1f4cb3ed357736e0afaba3f4f9b49ae7fe1fb89cd3bff398c7f0f) = 4, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref14351915611,link:#p4932820101810](#p4932820101810) } | 传感器的工作模式。 [更多...](#sensormodetype) | -| [SensorGroupType](#sensorgrouptype) { [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1746000080083931,link:zh-cn_topic_0000001348293929.xml#gga588325c4c22f56d09cda6e54df0d9a6ca8cc091715416b86fd2eff0a875a76c64](#gga588325c4c22f56d09cda6e54df0d9a6ca8cc091715416b86fd2eff0a875a76c64) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref2030071987083931,link:zh-cn_topic_0000001348293929.xml#gga588325c4c22f56d09cda6e54df0d9a6cab8f846ffbc84b2a2275a88707f350a47](#gga588325c4c22f56d09cda6e54df0d9a6cab8f846ffbc84b2a2275a88707f350a47) = 1, [ERROR:Invalid link:zh-cn_topic_0000001348293929.xml#xref1096312121083931,link:zh-cn_topic_0000001348293929.xml#gga588325c4c22f56d09cda6e54df0d9a6cafdec26032d6c10626eb07a0812fe1d94](#gga588325c4c22f56d09cda6e54df0d9a6cafdec26032d6c10626eb07a0812fe1d94) } | 枚举传感器的硬件服务组。 [更多...](#sensorgrouptype) | +| [SensorStatus](#sensorstatus) { SENSOR_SUCCESS = 0, SENSOR_FAILURE = -1, SENSOR_NOT_SUPPORT = -2, SENSOR_INVALID_PARAM = -3,   SENSOR_INVALID_SERVICE = -4, SENSOR_NULL_PTR = -5 } | 定义传感器模块返回值类型。 [更多...](#sensorstatus) | +| [SensorTypeTag](#sensortypetag) { SENSOR_TYPE_NONE = 0, SENSOR_TYPE_ACCELEROMETER = 1, SENSOR_TYPE_GYROSCOPE = 2, SENSOR_TYPE_PHOTOPLETHYSMOGRAPH = 3,   SENSOR_TYPE_ELECTROCARDIOGRAPH = 4, SENSOR_TYPE_AMBIENT_LIGHT = 5, SENSOR_TYPE_MAGNETIC_FIELD = 6, SENSOR_TYPE_CAPACITIVE = 7,   SENSOR_TYPE_BAROMETER = 8, SENSOR_TYPE_TEMPERATURE = 9, SENSOR_TYPE_HALL = 10, SENSOR_TYPE_GESTURE = 11,   SENSOR_TYPE_PROXIMITY = 12, SENSOR_TYPE_HUMIDITY = 13, SENSOR_TYPE_MEDICAL_BEGIN = 128, SENSOR_TYPE_MEDICAL_END = 160,   SENSOR_TYPE_PHYSICAL_MAX = 255, SENSOR_TYPE_ORIENTATION = 256, SENSOR_TYPE_GRAVITY = 257, SENSOR_TYPE_LINEAR_ACCELERATION = 258,   SENSOR_TYPE_ROTATION_VECTOR = 259, SENSOR_TYPE_AMBIENT_TEMPERATURE = 260, SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED = 261, SENSOR_TYPE_GAME_ROTATION_VECTOR = 262,   SENSOR_TYPE_GYROSCOPE_UNCALIBRATED = 263, SENSOR_TYPE_SIGNIFICANT_MOTION = 264, SENSOR_TYPE_PEDOMETER_DETECTION = 265, SENSOR_TYPE_PEDOMETER = 266,   SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR = 277, SENSOR_TYPE_HEART_RATE = 278, SENSOR_TYPE_DEVICE_ORIENTATION = 279, SENSOR_TYPE_WEAR_DETECTION = 280,   SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED = 281, SENSOR_TYPE_MAX } | 定义传感器类型标识。 [更多...](#sensortypetag) | +| [SensorAccuracyType](#sensoraccuracytype) { SENSOR_NO_ACCURACY = 0, SENSOR_LOW_ACCURACY = 1, SENSOR_MEDIUM_ACCURACY = 2, SENSOR_HIGH_ACCURACY = 3,   SENSOR_MAX_ACCURACY } | 传感器的精度类型。 [更多...](#sensoraccuracytype) | +| [SensorRangeType](#sensorrangetype) { SENSOR_RANGE_LEVEL1 = 0, SENSOR_RANGE_LEVEL2 = 1, SENSOR_RANGE_LEVEL3 = 2, SENSOR_RANGE_LEVEL_MAX } | 传感器的量程级别。 [更多...](#sensorrangetype) | +| [SensorModeType](#sensormodetype) { SENSOR_MODE_DEFAULT = 0, SENSOR_MODE_REALTIME = 1, SENSOR_MODE_ON_CHANGE = 2, SENSOR_MODE_ONE_SHOT = 3,   SENSOR_MODE_FIFO_MODE = 4, SENSOR_MODE_MAX } | 传感器的工作模式。 [更多...](#sensormodetype) | +| [SensorGroupType](#sensorgrouptype) { TRADITIONAL_SENSOR_TYPE = 0, MEDICAL_SENSOR_TYPE = 1, SENSOR_GROUP_TYPE_MAX } | 枚举传感器的硬件服务组。 [更多...](#sensorgrouptype) | ### 函数 diff --git a/zh-cn/device-dev/api/_types_8idl.md b/zh-cn/device-dev/api/_types_8idl.md index 2293361b39..5e3f58d342 100644 --- a/zh-cn/device-dev/api/_types_8idl.md +++ b/zh-cn/device-dev/api/_types_8idl.md @@ -20,11 +20,11 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [BatteryHealthState](battery.md#batteryhealthstate) {   [BATTERY_HEALTH_UNKNOWN](battery.md#ggaec9b86ee31a5d8abf7c804d81b542f2fa383fc8bba89eb9195e07da10ebff6a6a) = 0, [BATTERY_HEALTH_GOOD](battery.md#ggaec9b86ee31a5d8abf7c804d81b542f2fa9019a1cab9aaffb56b968f846eae45c2), [BATTERY_HEALTH_OVERHEAT](battery.md#ggaec9b86ee31a5d8abf7c804d81b542f2fa34cb203c04d3f8b391fd0f193673d2cc), [BATTERY_HEALTH_OVERVOLTAGE](battery.md#ggaec9b86ee31a5d8abf7c804d81b542f2faeb20e3755faa28a34b37c20fce37672f),   [BATTERY_HEALTH_COLD](battery.md#ggaec9b86ee31a5d8abf7c804d81b542f2fa1ed5e419d57b9ff71ac397d1b17eb420), [BATTERY_HEALTH_DEAD](battery.md#ggaec9b86ee31a5d8abf7c804d81b542f2fa05f1241d31443ffefec7ac784e141341), [BATTERY_HEALTH_RESERVED](battery.md#ggaec9b86ee31a5d8abf7c804d81b542f2fa9583572172c946660b255d5ac3604f9b) } | 电池的健康状态。 [更多...](battery.md#batteryhealthstate) | -| [BatteryChargeState](battery.md#batterychargestate) {   [CHARGE_STATE_NONE](battery.md#gga35791cca3603f7855c6368fbd00b21f1afdc91bf6bc92fdcd784cb274b1a14d28) = 0, [CHARGE_STATE_ENABLE](battery.md#gga35791cca3603f7855c6368fbd00b21f1a03dc57c4f65da6b1472ae4f7ed676234), [CHARGE_STATE_DISABLE](battery.md#gga35791cca3603f7855c6368fbd00b21f1a33914f4c27c801d3ba5315ca486655cc), [CHARGE_STATE_FULL](battery.md#gga35791cca3603f7855c6368fbd00b21f1a70b48a2925871d0364ae6344bce944ae),   [CHARGE_STATE_RESERVED](battery.md#gga35791cca3603f7855c6368fbd00b21f1a38af1f4d697139ebaa8eb97fb5b34120) } | 电池的充电状态。 [更多...](battery.md#batterychargestate) | -| [BatteryPluggedType](battery.md#batterypluggedtype) {   [PLUGGED_TYPE_NONE](battery.md#ggab80029eabf9d0fdcc3ab4d4a4c3be6baa23f13d9ed048300c42930d844ead29c7) = 0, [PLUGGED_TYPE_AC](battery.md#ggab80029eabf9d0fdcc3ab4d4a4c3be6baaba143c5ab6146a49e3c1362d3ba38751), [PLUGGED_TYPE_USB](battery.md#ggab80029eabf9d0fdcc3ab4d4a4c3be6baacfe481a50e9915a049edd3debcc7de1c), [PLUGGED_TYPE_WIRELESS](battery.md#ggab80029eabf9d0fdcc3ab4d4a4c3be6baaa8b900a0327e60b02ad7d3501057be38),   [PLUGGED_TYPE_BUTT](battery.md#ggab80029eabf9d0fdcc3ab4d4a4c3be6baac85bb1a7b26e14b55cd9bb977c3e66c0) } | 电池的充电设备类型。 [更多...](battery.md#batterypluggedtype) | +| [BatteryHealthState](battery.md#batteryhealthstate) {   BATTERY_HEALTH_UNKNOWN = 0, BATTERY_HEALTH_GOOD, BATTERY_HEALTH_OVERHEAT, BATTERY_HEALTH_OVERVOLTAGE,   BATTERY_HEALTH_COLD, BATTERY_HEALTH_DEAD, BATTERY_HEALTH_RESERVED } | 电池的健康状态。 [更多...](battery.md#batteryhealthstate) | +| [BatteryChargeState](battery.md#batterychargestate) {   CHARGE_STATE_NONE = 0, CHARGE_STATE_ENABLE, CHARGE_STATE_DISABLE, CHARGE_STATE_FULL,   CHARGE_STATE_RESERVED } | 电池的充电状态。 [更多...](battery.md#batterychargestate) | +| [BatteryPluggedType](battery.md#batterypluggedtype) {   PLUGGED_TYPE_NONE = 0, PLUGGED_TYPE_AC, PLUGGED_TYPE_USB, PLUGGED_TYPE_WIRELESS,   PLUGGED_TYPE_BUTT } | 电池的充电设备类型。 [更多...](battery.md#batterypluggedtype) | ### 变量 diff --git a/zh-cn/device-dev/api/_u_s_b.md b/zh-cn/device-dev/api/_u_s_b.md index 40674ad1d6..1a57ce9427 100644 --- a/zh-cn/device-dev/api/_u_s_b.md +++ b/zh-cn/device-dev/api/_u_s_b.md @@ -43,10 +43,10 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [UsbdBulkCbCmd](#usbdbulkcbcmd) { [ERROR:Invalid link:zh-cn_topic_0000001348413461.xml#xref1485062147083931,link:zh-cn_topic_0000001348413461.xml#gga734dda3df39a921fae88ada278bf35a3a5f84dff517954bbde58a2e1a0b8e8da6](#gga734dda3df39a921fae88ada278bf35a3a5f84dff517954bbde58a2e1a0b8e8da6), [ERROR:Invalid link:zh-cn_topic_0000001348413461.xml#xref1983135169083931,link:zh-cn_topic_0000001348413461.xml#gga734dda3df39a921fae88ada278bf35a3ac7fc2d22d4d348c672003c308263b9fb](#gga734dda3df39a921fae88ada278bf35a3ac7fc2d22d4d348c672003c308263b9fb) } | 批量回调命令字。 [更多...](#usbdbulkcbcmd) | -| [UsbdDeviceAction](#usbddeviceaction) { [ERROR:Invalid link:zh-cn_topic_0000001348413461.xml#xref709354729083931,link:zh-cn_topic_0000001348413461.xml#gga4b7620d940f58152cd17a12401120c16af3ed12ba6838a4ebb16ae0713cb2324f](#gga4b7620d940f58152cd17a12401120c16af3ed12ba6838a4ebb16ae0713cb2324f) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348413461.xml#xref601390832083931,link:zh-cn_topic_0000001348413461.xml#gga4b7620d940f58152cd17a12401120c16a97801ad0ac063dbb69d698adc19159bf](#gga4b7620d940f58152cd17a12401120c16a97801ad0ac063dbb69d698adc19159bf), [ERROR:Invalid link:zh-cn_topic_0000001348413461.xml#xref1423061468083931,link:zh-cn_topic_0000001348413461.xml#gga4b7620d940f58152cd17a12401120c16aecf16e36110fbe276f2a11e91252de20](#gga4b7620d940f58152cd17a12401120c16aecf16e36110fbe276f2a11e91252de20), [ERROR:Invalid link:zh-cn_topic_0000001348413461.xml#xref273156642083931,link:zh-cn_topic_0000001348413461.xml#gga4b7620d940f58152cd17a12401120c16a45115ba5d58e4a5358acae70a9fc33d4](#gga4b7620d940f58152cd17a12401120c16a45115ba5d58e4a5358acae70a9fc33d4) } | 主机端和设备端插拔事件。 [更多...](#usbddeviceaction) | +| [UsbdBulkCbCmd](#usbdbulkcbcmd) { CMD_USBD_BULK_CALLBACK_READ, CMD_USBD_BULK_CALLBACK_WRITE } | 批量回调命令字。 [更多...](#usbdbulkcbcmd) | +| [UsbdDeviceAction](#usbddeviceaction) { ACT_DEVUP = 0, ACT_DEVDOWN, ACT_UPDEVICE, ACT_DOWNDEVICE } | 主机端和设备端插拔事件。 [更多...](#usbddeviceaction) | ### 函数 diff --git a/zh-cn/device-dev/api/_user_auth_types_8idl.md b/zh-cn/device-dev/api/_user_auth_types_8idl.md index 298db3df93..bd34488b2f 100644 --- a/zh-cn/device-dev/api/_user_auth_types_8idl.md +++ b/zh-cn/device-dev/api/_user_auth_types_8idl.md @@ -31,9 +31,9 @@ | 枚举 | 描述 | | -------- | -------- | -| [AuthType](_hdf_user_auth.md#authtype) : int {   [PIN](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a048efb7462d3f8cced82716c66926168) = 1, [FACE](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1a5cfae78048cf95359061c2e812e7d691) = 2, [FINGERPRINT](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1ad03eae85b35bf9bc22d787c8913b795a) = 4, [ALL](_hdf_user_auth.md#gga89fed1f0b2adadc0ab678c1c6b9570a1ab1d5eac4b1dca480c8056eaea7663b7a) = 0 } | 枚举用户认证凭据类型。 [更多...](_hdf_user_auth.md#authtype) | -| [ExecutorRole](_hdf_user_auth.md#executorrole) : int {   [COLLECTOR](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a539c54e76bcc96cddb85f0cabcff39ec) = 1, [VERIFIER](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a1286a5d974d0c68d7bc43ffc0576a6d4) = 2, [ALL_IN_ONE](_hdf_user_auth.md#ggaef26ea73ebd494278e243c53b41ea7e5a7eebd77a403f81c5968b4c2898ee6fd4) = 3 } | 枚举执行器角色。 [更多...](_hdf_user_auth.md#executorrole) | -| [ExecutorSecureLevel](_hdf_user_auth.md#executorsecurelevel) : int {   [ESL0](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa0cd05a2adda94d3c676fca84f96c0638) = 0, [ESL1](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fae6a34bbf2764541238bf81569faf29d3) = 1, [ESL2](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa8f898bca57625d548a011ba2aaf4285f) = 2, [ESL3](_hdf_user_auth.md#gga955c57d8720719916dd806106356fa0fa9a6fb8a4530b6a09dba2fbfdf2e6c2e9) = 3 } | 枚举执行器安全等级。 [更多...](_hdf_user_auth.md#executorsecurelevel) | +| [AuthType](_hdf_user_auth.md#authtype) : int {   PIN = 1, FACE = 2, FINGERPRINT = 4, ALL = 0 } | 枚举用户认证凭据类型。 [更多...](_hdf_user_auth.md#authtype) | +| [ExecutorRole](_hdf_user_auth.md#executorrole) : int {   COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 } | 枚举执行器角色。 [更多...](_hdf_user_auth.md#executorrole) | +| [ExecutorSecureLevel](_hdf_user_auth.md#executorsecurelevel) : int {   ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 } | 枚举执行器安全等级。 [更多...](_hdf_user_auth.md#executorsecurelevel) | ### 变量 diff --git a/zh-cn/device-dev/api/_vibrator.md b/zh-cn/device-dev/api/_vibrator.md index 7b102d1b68..f3919cb51d 100644 --- a/zh-cn/device-dev/api/_vibrator.md +++ b/zh-cn/device-dev/api/_vibrator.md @@ -21,11 +21,11 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [VibratorMode](#vibratormode) { [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref345548910083931,link:zh-cn_topic_0000001295254332.xml#ggadbbc422555ccc89c4d9cf80f5175af2fa5da1f5dd1752e8ef6b8ade59db31f80f](#ggadbbc422555ccc89c4d9cf80f5175af2fa5da1f5dd1752e8ef6b8ade59db31f80f) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref2104752933083931,link:zh-cn_topic_0000001295254332.xml#ggadbbc422555ccc89c4d9cf80f5175af2fa34c456f3c8038b601c4a0276f639f666](#ggadbbc422555ccc89c4d9cf80f5175af2fa34c456f3c8038b601c4a0276f639f666) = 1, [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref1052158260083931,link:zh-cn_topic_0000001295254332.xml#ggadbbc422555ccc89c4d9cf80f5175af2faa548af2d7414a81a8036e77b9bcd6606](#ggadbbc422555ccc89c4d9cf80f5175af2faa548af2d7414a81a8036e77b9bcd6606) } | 枚举马达振动模式。 [更多...](#vibratormode) | -| [VibratorStatus](#vibratorstatus) { [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref5450017161315,link:#p181591120650](#p181591120650) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref051613315133,link:#p515914207520](#p515914207520) = -1,  [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref2512150161418,link:#p015972013512](#p015972013512)  = -2,  [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref11358630181410,link:#p14260156580](#p14260156580)= -3} | 枚举马达振动模式。[更多...](#vibratorstatus) | -| [VibratorInfo](#vibratorinfo) { [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref2475651914,link:#p16982125191511](#p16982125191511), [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref477718919205,link:#p79831625101517](#p79831625101517), [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref8162413102010,link:#p1798317259153](#p1798317259153), [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref15221157205,link:#p196672031811](#p196672031811), [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref51801717132019,link:#p14421742189](#p14421742189), [ERROR:Invalid link:zh-cn_topic_0000001295254332.xml#xref99362189209,link:#p61323771819](#p61323771819)} | 定义马达参数。[更多...](#vibratorinfo) | +| [VibratorMode](#vibratormode) { VIBRATOR_MODE_ONCE = 0, VIBRATOR_MODE_PRESET = 1, VIBRATOR_MODE_BUTT } | 枚举马达振动模式。 [更多...](#vibratormode) | +| [VibratorStatus](#vibratorstatus) { VIBRATOR_SUCCESS = 0, VIBRATOR_NOT_PERIOD = -1,  VIBRATOR_NOT_INTENSITY  = -2,  VIBRATOR_NOT_FREQUENCY= -3} | 枚举马达振动模式。[更多...](#vibratorstatus) | +| [VibratorInfo](#vibratorinfo) { isSupportIntensity, isSupportFrequency, intensityMaxValue, intensityMinValue, frequencyMaxValue, frequencyMinValue} | 定义马达参数。[更多...](#vibratorinfo) | ### 函数 diff --git a/zh-cn/device-dev/api/_w_l_a_n.md b/zh-cn/device-dev/api/_w_l_a_n.md index 7ba49ce0c7..1abeadfea0 100644 --- a/zh-cn/device-dev/api/_w_l_a_n.md +++ b/zh-cn/device-dev/api/_w_l_a_n.md @@ -45,7 +45,7 @@ | 枚举 | 描述 | | -------- | -------- | -| [FeatureType](#featuretype) {   [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref2005757439083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012a6b209b916aabd18f2a950a82e68b6a4c](#ggad2b28a6ade408676d1371ea941824012a6b209b916aabd18f2a950a82e68b6a4c), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref356941748083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012a0926a98ddc2ceec4ba58ebfc01c5fe35](#ggad2b28a6ade408676d1371ea941824012a0926a98ddc2ceec4ba58ebfc01c5fe35), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref2034104077083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012acd26f8cefbd658e9ea02feecefd054fb](#ggad2b28a6ade408676d1371ea941824012acd26f8cefbd658e9ea02feecefd054fb), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref1210444972083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012a9e92654b9ab6ed6eb62868f1e0e4ea8f](#ggad2b28a6ade408676d1371ea941824012a9e92654b9ab6ed6eb62868f1e0e4ea8f),   [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref85888507083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012a991ad1a3f8c43b06c4eeb9dc88acdb1e](#ggad2b28a6ade408676d1371ea941824012a991ad1a3f8c43b06c4eeb9dc88acdb1e), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref2011035674083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012aa25631c32cd6c996a7c96ba4f61299e2](#ggad2b28a6ade408676d1371ea941824012aa25631c32cd6c996a7c96ba4f61299e2), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref1547927522083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012a3ff1c1358af5a0c50b64e0ef0e96a970](#ggad2b28a6ade408676d1371ea941824012a3ff1c1358af5a0c50b64e0ef0e96a970), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref959999069083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012a382756b8a71015cd536cdbc113c4f483](#ggad2b28a6ade408676d1371ea941824012a382756b8a71015cd536cdbc113c4f483),   [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref769421272083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012acfd81d6e484c6f7a3b863327af112cfc](#ggad2b28a6ade408676d1371ea941824012acfd81d6e484c6f7a3b863327af112cfc), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref2012633117083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012abca0ccb5cf4c14af9b6ff0bd9eeb4173](#ggad2b28a6ade408676d1371ea941824012abca0ccb5cf4c14af9b6ff0bd9eeb4173), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref1649808399083931,link:zh-cn_topic_0000001295573780.xml#ggad2b28a6ade408676d1371ea941824012ad63ad4a5a66892e842e4d75cc82b0755](#ggad2b28a6ade408676d1371ea941824012ad63ad4a5a66892e842e4d75cc82b0755), [ERROR:Invalid link:zh-cn_topic_0000001295573780.xml#xref2156186164917,link:#p3611518433](#p3611518433) } | 枚举WLAN相关特性的类型[FeatureType](#featuretype)。 [更多...](#featuretype) | +| [FeatureType](#featuretype) {   PROTOCOL_80211_IFTYPE_UNSPECIFIED, PROTOCOL_80211_IFTYPE_ADHOC, PROTOCOL_80211_IFTYPE_STATION, PROTOCOL_80211_IFTYPE_AP,   PROTOCOL_80211_IFTYPE_AP_VLAN, PROTOCOL_80211_IFTYPE_WDS, PROTOCOL_80211_IFTYPE_MONITOR, PROTOCOL_80211_IFTYPE_MESH_POINT,   PROTOCOL_80211_IFTYPE_P2P_CLIENT, PROTOCOL_80211_IFTYPE_P2P_GO, PROTOCOL_80211_IFTYPE_P2P_DEVICE, PROTOCOL_80211_IFTYPE_NUM } | 枚举WLAN相关特性的类型[FeatureType](#featuretype)。 [更多...](#featuretype) | ### 函数 diff --git a/zh-cn/device-dev/api/audio__types_8h.md b/zh-cn/device-dev/api/audio__types_8h.md index c86fc2815f..ab903553ed 100644 --- a/zh-cn/device-dev/api/audio__types_8h.md +++ b/zh-cn/device-dev/api/audio__types_8h.md @@ -42,22 +42,22 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [AudioPortDirection](_audio.md#audioportdirection) { [PORT_OUT](_audio.md#gga68ff7140b15790debbac4bbc62f8e9f8af54f110a0f64337d474989fbac06bc22) = 0x1u, [PORT_IN](_audio.md#gga68ff7140b15790debbac4bbc62f8e9f8a154a6db110515b7afde52d3a36d57846) = 0x2u, [PORT_OUT_IN](_audio.md#gga68ff7140b15790debbac4bbc62f8e9f8a87e14fe9da9c332ba29185b9213d7bbf) = 0x3u } | 音频端口的类型 [更多...](_audio.md#audioportdirection) | -| [AudioPortPin](_audio.md#audioportpin) {   [PIN_NONE](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ad2f867652c04c17517db7731af03bf20) = 0x0u, [PIN_OUT_SPEAKER](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ab1070439bab93e06446c21157771dd6f) = 0x1u, [PIN_OUT_HEADSET](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a271013721c8840cc2700c19b3ff8d0a6) = 0x2u, [PIN_OUT_LINEOUT](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a411e9037214c75d22c9080505cf9cae6) = 0x4u,   [PIN_OUT_HDMI](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ab4aaa2ec71ec77480f60743cd79340b9) = 0x8u, [PIN_OUT_USB](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a4fdca959c8b32bc9a30a36882bd3bdaa) = 0x10u, [PIN_OUT_USB_EXT](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a933d2d5aadef8b45038be8be69b56b27) = 0x20u, [PIN_IN_MIC](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a336001f5685d9c206b1251714553b485) = 0x8000001u,   [PIN_IN_HS_MIC](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835aaeca21ac0a7b249905d1cea5b683f574) = 0x8000002u, [PIN_IN_LINEIN](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835a5146add03ff98f06648567bb0e02a477) = 0x8000004u, [PIN_IN_USB_EXT](_audio.md#ggaa7114aeeccf3ac4f5f7e1d880bcfa835ad6b81dc30e45f9f79801bf1e8ee0caef) = 0x8000008u } | 音频适配器端口的PIN脚 [更多...](_audio.md#audioportpin) | -| [AudioCategory](_audio.md#audiocategory) { [AUDIO_IN_MEDIA](_audio.md#ggaf210d41d152890f3aaf2aaac99bd28d5a6ac6cfd90dcc34de100c1cecb3df44c3) = 0, [AUDIO_IN_COMMUNICATION](_audio.md#ggaf210d41d152890f3aaf2aaac99bd28d5a474576c773934a0df994bad4cf781b41), [AUDIO_IN_RINGTONE](_audio.md#ggaf210d41d152890f3aaf2aaac99bd28d5aa5361a2d3ed6703c130417ec243d0a69), [AUDIO_IN_CALL](_audio.md#ggaf210d41d152890f3aaf2aaac99bd28d5a7a6ef7c82e9a5eb63d004056eb13c894) } | 音频类型(category) [更多...](_audio.md#audiocategory) | -| [AudioFormat](_audio.md#audioformat) {   [AUDIO_FORMAT_PCM_8_BIT](_audio.md#gga98d5d077cca088ddf77314871474fe59a321cc2160af35aa86b8ee55f231ef1e6) = 0x1u, [AUDIO_FORMAT_PCM_16_BIT](_audio.md#gga98d5d077cca088ddf77314871474fe59ae188cf87c8f2e6218c74b3b2385068e6) = 0x2u, [AUDIO_FORMAT_PCM_24_BIT](_audio.md#gga98d5d077cca088ddf77314871474fe59a21eb864e2117df577dcd90ad81da3b14) = 0x3u, [AUDIO_FORMAT_PCM_32_BIT](_audio.md#gga98d5d077cca088ddf77314871474fe59adf7a0bf1f3dd15c9c43fac07c0c6ea26) = 0x4u,   [AUDIO_FORMAT_AAC_MAIN](_audio.md#gga98d5d077cca088ddf77314871474fe59a5a781e6f8b145066ae7fb2c310804bab) = 0x1000001u, [AUDIO_FORMAT_AAC_LC](_audio.md#gga98d5d077cca088ddf77314871474fe59a3d4bc5d534d0452635455ed8d2cade57) = 0x1000002u, [AUDIO_FORMAT_AAC_LD](_audio.md#gga98d5d077cca088ddf77314871474fe59ad4baf87ff9f4684c03483c572052b700) = 0x1000003u, [AUDIO_FORMAT_AAC_ELD](_audio.md#gga98d5d077cca088ddf77314871474fe59a4b8d42988fecf03e2bf73c4395501852) = 0x1000004u,   [AUDIO_FORMAT_AAC_HE_V1](_audio.md#gga98d5d077cca088ddf77314871474fe59abaddb86f122d3185de9407dbc673bf0e) = 0x1000005u, [AUDIO_FORMAT_AAC_HE_V2](_audio.md#gga98d5d077cca088ddf77314871474fe59ab610e0121e0b5076b3f78831e3c237fd) = 0x1000006u, [AUDIO_FORMAT_G711A](_audio.md#gga98d5d077cca088ddf77314871474fe59a625f7a608bd66462e532762af64c5393) = 0x2000001u, [AUDIO_FORMAT_G711U](_audio.md#gga98d5d077cca088ddf77314871474fe59a6284a1ee0d6034eab8836f5d6352b3da) = 0x2000002u,   [AUDIO_FORMAT_G726](_audio.md#gga98d5d077cca088ddf77314871474fe59a46432573957951a919c84b00504b46b0) = 0x2000003u } | 音频格式 [更多...](_audio.md#audioformat) | -| [AudioChannelMask](_audio.md#audiochannelmask) { [AUDIO_CHANNEL_FRONT_LEFT](_audio.md#gga137eb03027d5947ea294b32f5095b83ca0419483310bfc5abe46a0c586070ed18) = 0x1, [AUDIO_CHANNEL_FRONT_RIGHT](_audio.md#gga137eb03027d5947ea294b32f5095b83ca05525a25c5912eda05e9a8786a743a75) = 0x2, [AUDIO_CHANNEL_MONO](_audio.md#gga137eb03027d5947ea294b32f5095b83ca0479e1cd2137cbbad68efae1d2b2c9a9) = 0x1u, [AUDIO_CHANNEL_STEREO](_audio.md#gga137eb03027d5947ea294b32f5095b83ca70f2212ea5439c13f7fcba3e30b15c1a) = 0x3u } | 音频通道掩码(mask) [更多...](_audio.md#audiochannelmask) | -| [AudioSampleRatesMask](_audio.md#audiosampleratesmask) {   [AUDIO_SAMPLE_RATE_MASK_8000](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4ca046a26906a4df81bfc38c583ba3606e9) = 0x1u, [AUDIO_SAMPLE_RATE_MASK_12000](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4caf1f34aa763f2bf6d5f43178f2d335d10) = 0x2u, [AUDIO_SAMPLE_RATE_MASK_11025](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4ca5f13b000ef455b858506fc90d17e2dd7) = 0x4u, [AUDIO_SAMPLE_RATE_MASK_16000](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4ca3102248493467e00d16c2cf1971635a7) = 0x8u,   [AUDIO_SAMPLE_RATE_MASK_22050](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4cae7cfb2244a15cd133373cfa5e96ec82e) = 0x10u, [AUDIO_SAMPLE_RATE_MASK_24000](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4cacce4defc0cf23abfe52d399b4aa68fdf) = 0x20u, [AUDIO_SAMPLE_RATE_MASK_32000](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4ca5594285d8ef3897e9f29a15e0795b814) = 0x40u, [AUDIO_SAMPLE_RATE_MASK_44100](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4ca52345265822f55a62b2e038438daf37e) = 0x80u,   [AUDIO_SAMPLE_RATE_MASK_48000](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4caa52c49624fecf6d9f1d075d0d3ad0bbf) = 0x100u, [AUDIO_SAMPLE_RATE_MASK_64000](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4caf111a8b9762ec169361a106ba7efdb0f) = 0x200u, [AUDIO_SAMPLE_RATE_MASK_96000](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4caa9e4deb07b2a7c32e5a19b8c81d9fd0d) = 0x400u, [AUDIO_SAMPLE_RATE_MASK_INVALID](_audio.md#gga7053fcaa56d1dc47d2fcd83ee131fe4ca41f8d22ab95c84d0acb3d0c78679274c) = 0xFFFFFFFFu } | 音频采样频率MASK [更多...](_audio.md#audiosampleratesmask) | -| [AudioPortPassthroughMode](_audio.md#audioportpassthroughmode) { [PORT_PASSTHROUGH_LPCM](_audio.md#gga186d2d4f9a2ecacb80cd2cce2bd26f0ea48da60ec7958d35e8884e67cc32cb465) = 0x1, [PORT_PASSTHROUGH_RAW](_audio.md#gga186d2d4f9a2ecacb80cd2cce2bd26f0eaf44936c424fbadafda9e1a12829b291f) = 0x2, [PORT_PASSTHROUGH_HBR2LBR](_audio.md#gga186d2d4f9a2ecacb80cd2cce2bd26f0eada09d902428d269446b94c2b7e9eb95e) = 0x4, [PORT_PASSTHROUGH_AUTO](_audio.md#gga186d2d4f9a2ecacb80cd2cce2bd26f0ea6fd7a77031d807247e159c3deec07e11) = 0x8 } | 音频端口的数据透传模式 [更多...](_audio.md#audioportpassthroughmode) | -| [AudioSampleFormat](_audio.md#audiosampleformat) {   [AUDIO_SAMPLE_FORMAT_S8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a2d8a330d2cb71268562e1c4da0c4eabc), [AUDIO_SAMPLE_FORMAT_S8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a4eb79a5d6d99244902cfb5c65f225c80), [AUDIO_SAMPLE_FORMAT_U8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab6d04d1d87a9a243b195ab6be183600e), [AUDIO_SAMPLE_FORMAT_U8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aeffb8620959b836e01622c7dc82ebc6d),   [AUDIO_SAMPLE_FORMAT_S16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a4422a2a04509e492ef823189d454d5a3), [AUDIO_SAMPLE_FORMAT_S16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a11a1fb37c21f722383a37fc5e6075dfe), [AUDIO_SAMPLE_FORMAT_U16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757af961944b4c8e77ee56defc30e6e61eb5), [AUDIO_SAMPLE_FORMAT_U16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a08ba605e3e58479ebb7432ff5d6d0972),   [AUDIO_SAMPLE_FORMAT_S24](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a102520af7c50d1ee4951e472f5f921e4), [AUDIO_SAMPLE_FORMAT_S24P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ae245cf6bd637c1f1304b38746f8940d6), [AUDIO_SAMPLE_FORMAT_U24](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a0d5fc3d14030aad7bc17d894bf4fc5c9), [AUDIO_SAMPLE_FORMAT_U24P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a0e8b7681ec3461988cb7fdd0f3616b2e),   [AUDIO_SAMPLE_FORMAT_S32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a46819088770f843230d2b094fd8d14ba), [AUDIO_SAMPLE_FORMAT_S32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a7883f8a4bede55eb4ffaf6ecb47f6841), [AUDIO_SAMPLE_FORMAT_U32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757afae09ccb9fdae65e73e5584a4c3a6d16), [AUDIO_SAMPLE_FORMAT_U32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a915025bfdcf9491a21b2d38dec7998cc),   [AUDIO_SAMPLE_FORMAT_S64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a2e5477f7cc05dcc271b50e570dfd0452), [AUDIO_SAMPLE_FORMAT_S64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab07b4d40994980a8012a79dc4a69a794), [AUDIO_SAMPLE_FORMAT_U64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a959950ea0f2b6c0e17d752640238c23b), [AUDIO_SAMPLE_FORMAT_U64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aad2c58522f7d16111756c1731bf52044),   [AUDIO_SAMPLE_FORMAT_F32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ac3cb5729241a7f73210d97d4fe0002fe), [AUDIO_SAMPLE_FORMAT_F32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a1121b8995d1083f61b2fa0afcc45143f), [AUDIO_SAMPLE_FORMAT_F64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a72f064169d0282fa8a152aea546056c3), [AUDIO_SAMPLE_FORMAT_F64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a1f0e407cd152b27f7b0ff761d26bb300),   [AUDIO_SAMPLE_FMT_U8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aad65a5b895b3dba000167dbb6c19b9ab), [AUDIO_SAMPLE_FMT_S16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a40335eaa7ca378540941909ed02b51a0), [AUDIO_SAMPLE_FMT_S32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab98feafb8396c0190a4fb719a15ab7c5), [AUDIO_SAMPLE_FMT_FLOAT](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ac2fb27a42b3f79e51dd71ce05b42f9db),   [AUDIO_SAMPLE_FMT_DOUBLE](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757afb8b12c44b4799f59a533609b4c360b5), [AUDIO_SAMPLE_FMT_U8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a8eb00238e7aa21d69f056d9292eb64d9), [AUDIO_SAMPLE_FMT_S16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a93008db1a966fee4a91b515fedc78cec), [AUDIO_SAMPLE_FMT_S32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a6bb874f2726bb94d08914b366ae947d6),   [AUDIO_SAMPLE_FMT_FLOATP](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a8a635bbd6c5df1a8a0fadb1d9602ea74), [AUDIO_SAMPLE_FMT_DOUBLEP](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a467bd88ce7f736a433425695ed0a0dbc), [AUDIO_SAMPLE_FMT_INVALID](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a5c8f7c2c0f84e70f609f8fd4ffd2c910) } | 原始音频样本格式 [更多...](_audio.md#audiosampleformat) | -| [AudioChannelMode](_audio.md#audiochannelmode) {   [AUDIO_CHANNEL_NORMAL](_audio.md#gga78aab1fafb9657451804e42b42897123aa97ec21f6627e1dfd4854b5b470cdfba) = 0, [AUDIO_CHANNEL_BOTH_LEFT](_audio.md#gga78aab1fafb9657451804e42b42897123a47fd61e4531acb6b5cc058ac26af5d51), [AUDIO_CHANNEL_BOTH_RIGHT](_audio.md#gga78aab1fafb9657451804e42b42897123a3341b11cad1d47bda2b4a2be60dda023), [AUDIO_CHANNEL_EXCHANGE](_audio.md#gga78aab1fafb9657451804e42b42897123a3f2e41939cc24c51213d8730c32e74e9),   [AUDIO_CHANNEL_MIX](_audio.md#gga78aab1fafb9657451804e42b42897123a2c1537bccd5c2a05d1c515e58ec4481e), [AUDIO_CHANNEL_LEFT_MUTE](_audio.md#gga78aab1fafb9657451804e42b42897123a485c0423ce07fbb7f844a387ed9bb546), [AUDIO_CHANNEL_RIGHT_MUTE](_audio.md#gga78aab1fafb9657451804e42b42897123a0878cdf6f3e0d9ae9ae1f61b7f74257e), [AUDIO_CHANNEL_BOTH_MUTE](_audio.md#gga78aab1fafb9657451804e42b42897123a22540143eb96abf8176e73c19fc0d8e5) } | 音频播放的通道模式 [更多...](_audio.md#audiochannelmode) | -| [AudioDrainNotifyType](_audio.md#audiodrainnotifytype) { [AUDIO_DRAIN_NORMAL_MODE](_audio.md#gga6359642a80d38bd309683186d904306da4963b68236fd3314ffee8bc02c1b5d9f), [AUDIO_DRAIN_EARLY_MODE](_audio.md#gga6359642a80d38bd309683186d904306da6502b8f1bc5e947ef45638a2155b5dff) } | DrainBuffer函数结束类型 [更多...](_audio.md#audiodrainnotifytype) | -| [AudioCallbackType](_audio.md#audiocallbacktype) {   [AUDIO_NONBLOCK_WRITE_COMPELETED](_audio.md#ggae6a108ed6d40bf9adc9124f59501e1a8ae5f3f33b8d4de2b6ae2004e46db16b4f), [AUDIO_DRAIN_COMPELETED](_audio.md#ggae6a108ed6d40bf9adc9124f59501e1a8a88770682790de22125afbee7fd0da618), [AUDIO_FLUSH_COMPLETED](_audio.md#ggae6a108ed6d40bf9adc9124f59501e1a8a67b1cc122ca5bf96b68cb28bfbdfe9a8), [AUDIO_RENDER_FULL](_audio.md#ggae6a108ed6d40bf9adc9124f59501e1a8a569f62b68b379f66e63bd8f0f8500421),   [AUDIO_ERROR_OCCUR](_audio.md#ggae6a108ed6d40bf9adc9124f59501e1a8a5372856fbf3214e0c54c4d4d4046bfe8) } | 回调函数通知事件类型 [更多...](_audio.md#audiocallbacktype) | -| [AudioPortRole](_audio.md#audioportrole) { [AUDIO_PORT_UNASSIGNED_ROLE](_audio.md#gga9262d2f01824bf765fd79c2e78c9a62da87fb7ced5a0e447f2bbd1b7730d2eb7b) = 0, [AUDIO_PORT_SOURCE_ROLE](_audio.md#gga9262d2f01824bf765fd79c2e78c9a62da22faadd2246a6ca5995c14560a9b9332) = 1, [AUDIO_PORT_SINK_ROLE](_audio.md#gga9262d2f01824bf765fd79c2e78c9a62da6f2b666591eb7bb9106d1d998ca18ab7) = 2 } | 音频端口角色 [更多...](_audio.md#audioportrole) | -| [AudioPortType](_audio.md#audioporttype) { [AUDIO_PORT_UNASSIGNED_TYPE](_audio.md#ggaad9bcf12b3ab430a2f96a2af7505173bae8d72365ca8cd78b9245c874fbe06227) = 0, [AUDIO_PORT_DEVICE_TYPE](_audio.md#ggaad9bcf12b3ab430a2f96a2af7505173ba52c6725d10840f7524b001ff71452439) = 1, [AUDIO_PORT_MIX_TYPE](_audio.md#ggaad9bcf12b3ab430a2f96a2af7505173baee29a064c72da8740173cd9e618681c1) = 2, [AUDIO_PORT_SESSION_TYPE](_audio.md#ggaad9bcf12b3ab430a2f96a2af7505173ba1e16adb8496d8a0e28f0794334c425ec) = 3 } | 音频端口类型. [更多...](_audio.md#audioporttype) | -| [AudioSessionType](_audio.md#audiosessiontype) { [AUDIO_OUTPUT_STAGE_SESSION](_audio.md#ggab242c41d88b46812f204052ba8509ccea0b887608f198d74497a4eb44c51f9fce) = 0, [AUDIO_OUTPUT_MIX_SESSION](_audio.md#ggab242c41d88b46812f204052ba8509ccea5cd6f49112fc8a0f97fd83b0fd48b25a), [AUDIO_ALLOCATE_SESSION](_audio.md#ggab242c41d88b46812f204052ba8509ccead78430579e471af7153917fbcc5aa6b4), [AUDIO_INVALID_SESSION](_audio.md#ggab242c41d88b46812f204052ba8509ccea8721a5a0498b144056551b41030afbb7) } | 端口会话类型 [更多...](_audio.md#audiosessiontype) | +| [AudioPortDirection](_audio.md#audioportdirection) { PORT_OUT = 0x1u, PORT_IN = 0x2u, PORT_OUT_IN = 0x3u } | 音频端口的类型 [更多...](_audio.md#audioportdirection) | +| [AudioPortPin](_audio.md#audioportpin) {   PIN_NONE = 0x0u, PIN_OUT_SPEAKER = 0x1u, PIN_OUT_HEADSET = 0x2u, PIN_OUT_LINEOUT = 0x4u,   PIN_OUT_HDMI = 0x8u, PIN_OUT_USB = 0x10u, PIN_OUT_USB_EXT = 0x20u, PIN_IN_MIC = 0x8000001u,   PIN_IN_HS_MIC = 0x8000002u, PIN_IN_LINEIN = 0x8000004u, PIN_IN_USB_EXT = 0x8000008u } | 音频适配器端口的PIN脚 [更多...](_audio.md#audioportpin) | +| [AudioCategory](_audio.md#audiocategory) { AUDIO_IN_MEDIA = 0, AUDIO_IN_COMMUNICATION, AUDIO_IN_RINGTONE, AUDIO_IN_CALL } | 音频类型(category) [更多...](_audio.md#audiocategory) | +| [AudioFormat](_audio.md#audioformat) {   AUDIO_FORMAT_PCM_8_BIT = 0x1u, AUDIO_FORMAT_PCM_16_BIT = 0x2u, AUDIO_FORMAT_PCM_24_BIT = 0x3u, AUDIO_FORMAT_PCM_32_BIT = 0x4u,   AUDIO_FORMAT_AAC_MAIN = 0x1000001u, AUDIO_FORMAT_AAC_LC = 0x1000002u, AUDIO_FORMAT_AAC_LD = 0x1000003u, AUDIO_FORMAT_AAC_ELD = 0x1000004u,   AUDIO_FORMAT_AAC_HE_V1 = 0x1000005u, AUDIO_FORMAT_AAC_HE_V2 = 0x1000006u, AUDIO_FORMAT_G711A = 0x2000001u, AUDIO_FORMAT_G711U = 0x2000002u,   AUDIO_FORMAT_G726 = 0x2000003u } | 音频格式 [更多...](_audio.md#audioformat) | +| [AudioChannelMask](_audio.md#audiochannelmask) { AUDIO_CHANNEL_FRONT_LEFT = 0x1, AUDIO_CHANNEL_FRONT_RIGHT = 0x2, AUDIO_CHANNEL_MONO = 0x1u, AUDIO_CHANNEL_STEREO = 0x3u } | 音频通道掩码(mask) [更多...](_audio.md#audiochannelmask) | +| [AudioSampleRatesMask](_audio.md#audiosampleratesmask) {   AUDIO_SAMPLE_RATE_MASK_8000 = 0x1u, AUDIO_SAMPLE_RATE_MASK_12000 = 0x2u, AUDIO_SAMPLE_RATE_MASK_11025 = 0x4u, AUDIO_SAMPLE_RATE_MASK_16000 = 0x8u,   AUDIO_SAMPLE_RATE_MASK_22050 = 0x10u, AUDIO_SAMPLE_RATE_MASK_24000 = 0x20u, AUDIO_SAMPLE_RATE_MASK_32000 = 0x40u, AUDIO_SAMPLE_RATE_MASK_44100 = 0x80u,   AUDIO_SAMPLE_RATE_MASK_48000 = 0x100u, AUDIO_SAMPLE_RATE_MASK_64000 = 0x200u, AUDIO_SAMPLE_RATE_MASK_96000 = 0x400u, AUDIO_SAMPLE_RATE_MASK_INVALID = 0xFFFFFFFFu } | 音频采样频率MASK [更多...](_audio.md#audiosampleratesmask) | +| [AudioPortPassthroughMode](_audio.md#audioportpassthroughmode) { PORT_PASSTHROUGH_LPCM = 0x1, PORT_PASSTHROUGH_RAW = 0x2, PORT_PASSTHROUGH_HBR2LBR = 0x4, PORT_PASSTHROUGH_AUTO = 0x8 } | 音频端口的数据透传模式 [更多...](_audio.md#audioportpassthroughmode) | +| [AudioSampleFormat](_audio.md#audiosampleformat) {   AUDIO_SAMPLE_FORMAT_S8, AUDIO_SAMPLE_FORMAT_S8P, AUDIO_SAMPLE_FORMAT_U8, AUDIO_SAMPLE_FORMAT_U8P,   AUDIO_SAMPLE_FORMAT_S16, AUDIO_SAMPLE_FORMAT_S16P, AUDIO_SAMPLE_FORMAT_U16, AUDIO_SAMPLE_FORMAT_U16P,   AUDIO_SAMPLE_FORMAT_S24, AUDIO_SAMPLE_FORMAT_S24P, AUDIO_SAMPLE_FORMAT_U24, AUDIO_SAMPLE_FORMAT_U24P,   AUDIO_SAMPLE_FORMAT_S32, AUDIO_SAMPLE_FORMAT_S32P, AUDIO_SAMPLE_FORMAT_U32, AUDIO_SAMPLE_FORMAT_U32P,   AUDIO_SAMPLE_FORMAT_S64, AUDIO_SAMPLE_FORMAT_S64P, AUDIO_SAMPLE_FORMAT_U64, AUDIO_SAMPLE_FORMAT_U64P,   AUDIO_SAMPLE_FORMAT_F32, AUDIO_SAMPLE_FORMAT_F32P, AUDIO_SAMPLE_FORMAT_F64, AUDIO_SAMPLE_FORMAT_F64P,   AUDIO_SAMPLE_FMT_U8, AUDIO_SAMPLE_FMT_S16, AUDIO_SAMPLE_FMT_S32, AUDIO_SAMPLE_FMT_FLOAT,   AUDIO_SAMPLE_FMT_DOUBLE, AUDIO_SAMPLE_FMT_U8P, AUDIO_SAMPLE_FMT_S16P, AUDIO_SAMPLE_FMT_S32P,   AUDIO_SAMPLE_FMT_FLOATP, AUDIO_SAMPLE_FMT_DOUBLEP, AUDIO_SAMPLE_FMT_INVALID } | 原始音频样本格式 [更多...](_audio.md#audiosampleformat) | +| [AudioChannelMode](_audio.md#audiochannelmode) {   AUDIO_CHANNEL_NORMAL = 0, AUDIO_CHANNEL_BOTH_LEFT, AUDIO_CHANNEL_BOTH_RIGHT, AUDIO_CHANNEL_EXCHANGE,   AUDIO_CHANNEL_MIX, AUDIO_CHANNEL_LEFT_MUTE, AUDIO_CHANNEL_RIGHT_MUTE, AUDIO_CHANNEL_BOTH_MUTE } | 音频播放的通道模式 [更多...](_audio.md#audiochannelmode) | +| [AudioDrainNotifyType](_audio.md#audiodrainnotifytype) { AUDIO_DRAIN_NORMAL_MODE, AUDIO_DRAIN_EARLY_MODE } | DrainBuffer函数结束类型 [更多...](_audio.md#audiodrainnotifytype) | +| [AudioCallbackType](_audio.md#audiocallbacktype) {   AUDIO_NONBLOCK_WRITE_COMPELETED, AUDIO_DRAIN_COMPELETED, AUDIO_FLUSH_COMPLETED, AUDIO_RENDER_FULL,   AUDIO_ERROR_OCCUR } | 回调函数通知事件类型 [更多...](_audio.md#audiocallbacktype) | +| [AudioPortRole](_audio.md#audioportrole) { AUDIO_PORT_UNASSIGNED_ROLE = 0, AUDIO_PORT_SOURCE_ROLE = 1, AUDIO_PORT_SINK_ROLE = 2 } | 音频端口角色 [更多...](_audio.md#audioportrole) | +| [AudioPortType](_audio.md#audioporttype) { AUDIO_PORT_UNASSIGNED_TYPE = 0, AUDIO_PORT_DEVICE_TYPE = 1, AUDIO_PORT_MIX_TYPE = 2, AUDIO_PORT_SESSION_TYPE = 3 } | 音频端口类型. [更多...](_audio.md#audioporttype) | +| [AudioSessionType](_audio.md#audiosessiontype) { AUDIO_OUTPUT_STAGE_SESSION = 0, AUDIO_OUTPUT_MIX_SESSION, AUDIO_ALLOCATE_SESSION, AUDIO_INVALID_SESSION } | 端口会话类型 [更多...](_audio.md#audiosessiontype) | ## **详细描述** diff --git a/zh-cn/device-dev/api/battery.md b/zh-cn/device-dev/api/battery.md index 6fb0d45e0d..206f51976f 100644 --- a/zh-cn/device-dev/api/battery.md +++ b/zh-cn/device-dev/api/battery.md @@ -24,11 +24,11 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [BatteryHealthState](#batteryhealthstate) {   [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref722934690083931,link:zh-cn_topic_0000001295094372.xml#ggaec9b86ee31a5d8abf7c804d81b542f2fa383fc8bba89eb9195e07da10ebff6a6a](#ggaec9b86ee31a5d8abf7c804d81b542f2fa383fc8bba89eb9195e07da10ebff6a6a) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref1559010308083931,link:zh-cn_topic_0000001295094372.xml#ggaec9b86ee31a5d8abf7c804d81b542f2fa9019a1cab9aaffb56b968f846eae45c2](#ggaec9b86ee31a5d8abf7c804d81b542f2fa9019a1cab9aaffb56b968f846eae45c2), [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref255658891083931,link:zh-cn_topic_0000001295094372.xml#ggaec9b86ee31a5d8abf7c804d81b542f2fa34cb203c04d3f8b391fd0f193673d2cc](#ggaec9b86ee31a5d8abf7c804d81b542f2fa34cb203c04d3f8b391fd0f193673d2cc), [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref113880335083931,link:zh-cn_topic_0000001295094372.xml#ggaec9b86ee31a5d8abf7c804d81b542f2faeb20e3755faa28a34b37c20fce37672f](#ggaec9b86ee31a5d8abf7c804d81b542f2faeb20e3755faa28a34b37c20fce37672f),   [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref182824369083931,link:zh-cn_topic_0000001295094372.xml#ggaec9b86ee31a5d8abf7c804d81b542f2fa1ed5e419d57b9ff71ac397d1b17eb420](#ggaec9b86ee31a5d8abf7c804d81b542f2fa1ed5e419d57b9ff71ac397d1b17eb420), [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref297127956083931,link:zh-cn_topic_0000001295094372.xml#ggaec9b86ee31a5d8abf7c804d81b542f2fa05f1241d31443ffefec7ac784e141341](#ggaec9b86ee31a5d8abf7c804d81b542f2fa05f1241d31443ffefec7ac784e141341), [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref2037974216083931,link:zh-cn_topic_0000001295094372.xml#ggaec9b86ee31a5d8abf7c804d81b542f2fa9583572172c946660b255d5ac3604f9b](#ggaec9b86ee31a5d8abf7c804d81b542f2fa9583572172c946660b255d5ac3604f9b) } | 电池的健康状态。 [更多...](#batteryhealthstate) | -| [BatteryChargeState](#batterychargestate) {   [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref567636600083931,link:zh-cn_topic_0000001295094372.xml#gga35791cca3603f7855c6368fbd00b21f1afdc91bf6bc92fdcd784cb274b1a14d28](#gga35791cca3603f7855c6368fbd00b21f1afdc91bf6bc92fdcd784cb274b1a14d28) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref1386983798083931,link:zh-cn_topic_0000001295094372.xml#gga35791cca3603f7855c6368fbd00b21f1a03dc57c4f65da6b1472ae4f7ed676234](#gga35791cca3603f7855c6368fbd00b21f1a03dc57c4f65da6b1472ae4f7ed676234), [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref354436213083931,link:zh-cn_topic_0000001295094372.xml#gga35791cca3603f7855c6368fbd00b21f1a33914f4c27c801d3ba5315ca486655cc](#gga35791cca3603f7855c6368fbd00b21f1a33914f4c27c801d3ba5315ca486655cc), [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref323429256083931,link:zh-cn_topic_0000001295094372.xml#gga35791cca3603f7855c6368fbd00b21f1a70b48a2925871d0364ae6344bce944ae](#gga35791cca3603f7855c6368fbd00b21f1a70b48a2925871d0364ae6344bce944ae),   [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref914237832083931,link:zh-cn_topic_0000001295094372.xml#gga35791cca3603f7855c6368fbd00b21f1a38af1f4d697139ebaa8eb97fb5b34120](#gga35791cca3603f7855c6368fbd00b21f1a38af1f4d697139ebaa8eb97fb5b34120) } | 电池的充电状态。 [更多...](#batterychargestate) | -| [BatteryPluggedType](#batterypluggedtype) {   [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref1653299919083931,link:zh-cn_topic_0000001295094372.xml#ggab80029eabf9d0fdcc3ab4d4a4c3be6baa23f13d9ed048300c42930d844ead29c7](#ggab80029eabf9d0fdcc3ab4d4a4c3be6baa23f13d9ed048300c42930d844ead29c7) = 0, [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref1508452124083931,link:zh-cn_topic_0000001295094372.xml#ggab80029eabf9d0fdcc3ab4d4a4c3be6baaba143c5ab6146a49e3c1362d3ba38751](#ggab80029eabf9d0fdcc3ab4d4a4c3be6baaba143c5ab6146a49e3c1362d3ba38751), [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref1839332687083931,link:zh-cn_topic_0000001295094372.xml#ggab80029eabf9d0fdcc3ab4d4a4c3be6baacfe481a50e9915a049edd3debcc7de1c](#ggab80029eabf9d0fdcc3ab4d4a4c3be6baacfe481a50e9915a049edd3debcc7de1c), [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref697301032083931,link:zh-cn_topic_0000001295094372.xml#ggab80029eabf9d0fdcc3ab4d4a4c3be6baaa8b900a0327e60b02ad7d3501057be38](#ggab80029eabf9d0fdcc3ab4d4a4c3be6baaa8b900a0327e60b02ad7d3501057be38),   [ERROR:Invalid link:zh-cn_topic_0000001295094372.xml#xref1095760243083931,link:zh-cn_topic_0000001295094372.xml#ggab80029eabf9d0fdcc3ab4d4a4c3be6baac85bb1a7b26e14b55cd9bb977c3e66c0](#ggab80029eabf9d0fdcc3ab4d4a4c3be6baac85bb1a7b26e14b55cd9bb977c3e66c0) } | 电池的充电设备类型。 [更多...](#batterypluggedtype) | +| [BatteryHealthState](#batteryhealthstate) {   BATTERY_HEALTH_UNKNOWN = 0, BATTERY_HEALTH_GOOD, BATTERY_HEALTH_OVERHEAT, BATTERY_HEALTH_OVERVOLTAGE,   BATTERY_HEALTH_COLD, BATTERY_HEALTH_DEAD, BATTERY_HEALTH_RESERVED } | 电池的健康状态。 [更多...](#batteryhealthstate) | +| [BatteryChargeState](#batterychargestate) {   CHARGE_STATE_NONE = 0, CHARGE_STATE_ENABLE, CHARGE_STATE_DISABLE, CHARGE_STATE_FULL,   CHARGE_STATE_RESERVED } | 电池的充电状态。 [更多...](#batterychargestate) | +| [BatteryPluggedType](#batterypluggedtype) {   PLUGGED_TYPE_NONE = 0, PLUGGED_TYPE_AC, PLUGGED_TYPE_USB, PLUGGED_TYPE_WIRELESS,   PLUGGED_TYPE_BUTT } | 电池的充电设备类型。 [更多...](#batterypluggedtype) | ### 变量 diff --git a/zh-cn/device-dev/api/codec__common__type_8h.md b/zh-cn/device-dev/api/codec__common__type_8h.md index 3db3afe2cd..dd84e06edf 100644 --- a/zh-cn/device-dev/api/codec__common__type_8h.md +++ b/zh-cn/device-dev/api/codec__common__type_8h.md @@ -22,13 +22,13 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [CodecType](_codec.md#codectype) {   [VIDEO_DECODER](_codec.md#gga03b4b6ae5fb82af68d46aaea3d3e4d79a19c3c7765c55583a64e21938e2439261), [VIDEO_ENCODER](_codec.md#gga03b4b6ae5fb82af68d46aaea3d3e4d79ad8044bc5b7d871723be90b5b6a094992), [AUDIO_DECODER](_codec.md#gga03b4b6ae5fb82af68d46aaea3d3e4d79ae4ade329585f6c202847138e3f9cd4a4), [AUDIO_ENCODER](_codec.md#gga03b4b6ae5fb82af68d46aaea3d3e4d79a7f7f3d3880168089c1de6d1ebc3dbb54),   [INVALID_TYPE](_codec.md#gga03b4b6ae5fb82af68d46aaea3d3e4d79a7314b0d0e4638eaaeb8690b8555a6546) } | 枚举编解码的类型 [更多...](_codec.md#codectype) | -| [Profile](_codec.md#profile) {   [INVALID_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01a6d67944b4958ad33b0eeb851bbcd169f) = 0, [AAC_LC_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01ad91765d6dcad7253a924d3cb30501e44) = 0x1000, [AAC_MAIN_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01aada4d857818cd9aa1ad62cdf608dab6b), [AAC_HE_V1_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01ab4255dc0e7450af4f526b85acbabfd3e),   [AAC_HE_V2_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01a9b54f7a8c45ea6d4804133d8de4b8dd8), [AAC_LD_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01afaaacd4f6bdadac28b5cf49ae8f8470a), [AAC_ELD_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01a7c8028283d1ff60e486b3305bf8c1adc), [AVC_BASELINE_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01a5bab002f00d3d7281aedc4807123a47a) = 0x2000,   [AVC_MAIN_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01a323c1d6e02363f1717f7e6b33fd9a646), [AVC_HIGH_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01ab9406e6bf30a0c128c3639cce51fe246), [HEVC_MAIN_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01ae0d37dc2c7d39753a80f6e0ba64e5e22) = 0x3000, [HEVC_MAIN_10_PROFILE](_codec.md#gga85b10143618f300ff4f5bc6d45c72c01a811b9e02d8b0afa93e7ab8d2aa7e5de6) } | 枚举Codec规格 [更多...](_codec.md#profile) | -| [AudioSampleRate](_codec.md#audiosamplerate) {   [AUD_SAMPLE_RATE_8000](_codec.md#ggaa0280074adafe6d2581d31f71512b842a65d5a1e4d1f048a33d29c9a3b6f540bd) = 8000, [AUD_SAMPLE_RATE_12000](_codec.md#ggaa0280074adafe6d2581d31f71512b842ac8379e14b05cdac5edfcc931ac8b33a9) = 12000, [AUD_SAMPLE_RATE_11025](_codec.md#ggaa0280074adafe6d2581d31f71512b842a57b1853b1e309bf1aa5b3a35b06b0f81) = 11025, [AUD_SAMPLE_RATE_16000](_codec.md#ggaa0280074adafe6d2581d31f71512b842a43395f0fe94ae2949778468e4488c3ee) = 16000,   [AUD_SAMPLE_RATE_22050](_codec.md#ggaa0280074adafe6d2581d31f71512b842a5e8155ecfa865686a66e004e37ce1e54) = 22050, [AUD_SAMPLE_RATE_24000](_codec.md#ggaa0280074adafe6d2581d31f71512b842abd4c09d52f3da25adb108e9aa503119d) = 24000, [AUD_SAMPLE_RATE_32000](_codec.md#ggaa0280074adafe6d2581d31f71512b842a1f94827fe757ad2857d970638b6f8d66) = 32000, [AUD_SAMPLE_RATE_44100](_codec.md#ggaa0280074adafe6d2581d31f71512b842ac880553f2ee154a240d9414598e006a2) = 44100,   [AUD_SAMPLE_RATE_48000](_codec.md#ggaa0280074adafe6d2581d31f71512b842ade6dd509c28b66127c42d2634866b89c) = 48000, [AUD_SAMPLE_RATE_64000](_codec.md#ggaa0280074adafe6d2581d31f71512b842a925218c15bb8522796e623a09d99dbc3) = 64000, [AUD_SAMPLE_RATE_96000](_codec.md#ggaa0280074adafe6d2581d31f71512b842a48336a808a2ebcf5956995140e2d73dd) = 96000, [AUD_SAMPLE_RATE_INVALID](_codec.md#ggaa0280074adafe6d2581d31f71512b842a0cb82ce52fb70b359a0b2232f7f465a2) } | 枚举音频采样率 [更多...](_codec.md#audiosamplerate) | -| [CodecCapsMask](_codec.md#codeccapsmask) { [CODEC_CAP_ADAPTIVE_PLAYBACK](_codec.md#gga9e2fbfb8a5881de2f495933f90f23b3fa30c688a80d3e64a3f5c2a13da89eef3c) = 0x1, [CODEC_CAP_SECURE_PLAYBACK](_codec.md#gga9e2fbfb8a5881de2f495933f90f23b3fa33911c21f51bcd1980645cac6d0729ca) = 0x2, [CODEC_CAP_TUNNEL_PLAYBACK](_codec.md#gga9e2fbfb8a5881de2f495933f90f23b3fa423e1b0d0a7dc9e4abeeded920aafb5b) = 0x4, [CODEC_CAP_MULTI_PLANE](_codec.md#gga9e2fbfb8a5881de2f495933f90f23b3fa0da8339e6a216573d7dc3b8d4380d96d) = 0x10000 } | 枚举播放能力 [更多...](_codec.md#codeccapsmask) | -| [CodecProcessMode](_codec.md#codecprocessmode) {   [PROCESS_BLOCKING_INPUT_BUFFER](_codec.md#gga5bec468886b760c542669b1615613dc4a0324b4efc6d2095c788806bf387955fe) = 0X1, [PROCESS_BLOCKING_OUTPUT_BUFFER](_codec.md#gga5bec468886b760c542669b1615613dc4acba39cb03563db7f38634009575fdc21) = 0X2, [PROCESS_BLOCKING_CONTROL_FLOW](_codec.md#gga5bec468886b760c542669b1615613dc4a2ebd571bd15c86c289b04617e78584ec) = 0X4, [PROCESS_NONBLOCKING_INPUT_BUFFER](_codec.md#gga5bec468886b760c542669b1615613dc4a73009c59abb2943e3363ad0aeefa81c1) = 0X100,   [PROCESS_NONBLOCKING_OUTPUT_BUFFER](_codec.md#gga5bec468886b760c542669b1615613dc4ab943f6f6a762a47e663b74f42941fe9e) = 0X200, [PROCESS_NONBLOCKING_CONTROL_FLOW](_codec.md#gga5bec468886b760c542669b1615613dc4a5421710be01e8656530fb22f39e766ea) = 0X400 } | 枚举编解码处理模式 [更多...](_codec.md#codecprocessmode) | +| [CodecType](_codec.md#codectype) { VIDEO_DECODER, VIDEO_ENCODER, AUDIO_DECODER, AUDIO_ENCODER,   INVALID_TYPE } | 枚举编解码的类型 [更多...](_codec.md#codectype) | +| [Profile](_codec.md#profile) { INVALID_PROFILE = 0, AAC_LC_PROFILE = 0x1000, AAC_MAIN_PROFILE, AAC_HE_V1_PROFILE,   AAC_HE_V2_PROFILE, AAC_LD_PROFILE, AAC_ELD_PROFILE, AVC_BASELINE_PROFILE = 0x2000,   AVC_MAIN_PROFILE, AVC_HIGH_PROFILE, HEVC_MAIN_PROFILE = 0x3000, HEVC_MAIN_10_PROFILE } | 枚举Codec规格 [更多...](_codec.md#profile) | +| [AudioSampleRate](_codec.md#audiosamplerate) {   AUD_SAMPLE_RATE_8000 = 8000, AUD_SAMPLE_RATE_12000 = 12000, AUD_SAMPLE_RATE_11025 = 11025, AUD_SAMPLE_RATE_16000 = 16000,   AUD_SAMPLE_RATE_22050 = 22050, AUD_SAMPLE_RATE_24000 = 24000, AUD_SAMPLE_RATE_32000 = 32000, AUD_SAMPLE_RATE_44100 = 44100,   AUD_SAMPLE_RATE_48000 = 48000, AUD_SAMPLE_RATE_64000 = 64000, AUD_SAMPLE_RATE_96000 = 96000, AUD_SAMPLE_RATE_INVALID } | 枚举音频采样率 [更多...](_codec.md#audiosamplerate) | +| [CodecCapsMask](_codec.md#codeccapsmask) { CODEC_CAP_ADAPTIVE_PLAYBACK = 0x1, CODEC_CAP_SECURE_PLAYBACK = 0x2, CODEC_CAP_TUNNEL_PLAYBACK = 0x4, CODEC_CAP_MULTI_PLANE = 0x10000 } | 枚举播放能力 [更多...](_codec.md#codeccapsmask) | +| [CodecProcessMode](_codec.md#codecprocessmode) {   PROCESS_BLOCKING_INPUT_BUFFER = 0X1, PROCESS_BLOCKING_OUTPUT_BUFFER = 0X2, PROCESS_BLOCKING_CONTROL_FLOW = 0X4, PROCESS_NONBLOCKING_INPUT_BUFFER = 0X100,   PROCESS_NONBLOCKING_OUTPUT_BUFFER = 0X200, PROCESS_NONBLOCKING_CONTROL_FLOW = 0X400 } | 枚举编解码处理模式 [更多...](_codec.md#codecprocessmode) | ## **详细描述** diff --git a/zh-cn/device-dev/api/codec__component__type_8h.md b/zh-cn/device-dev/api/codec__component__type_8h.md index 6a717c6c29..4a71c1fa58 100644 --- a/zh-cn/device-dev/api/codec__component__type_8h.md +++ b/zh-cn/device-dev/api/codec__component__type_8h.md @@ -43,14 +43,14 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [AvCodecRole](_codec.md#avcodecrole) {   [MEDIA_ROLETYPE_IMAGE_JPEG](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5ac261edd4c0d6eed15f6317024810dee2) = 0, [MEDIA_ROLETYPE_VIDEO_AVC](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5adebef2ce1107d74e5d4f91d3452c823d), [MEDIA_ROLETYPE_VIDEO_HEVC](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5af84180255d50e9ae94cedfc35ad19056), [MEDIA_ROLETYPE_AUDIO_FIRST](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5a9e653abe452b248670825bd468f59d20) = 0x10000,   [MEDIA_ROLETYPE_AUDIO_AAC](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5ac9627d3deaca6bbf69f03c0dee1b6c05) = 0x10000, [MEDIA_ROLETYPE_AUDIO_G711A](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5a033c0faacbd270fa2c539686e6d60551), [MEDIA_ROLETYPE_AUDIO_G711U](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5ae0170e900d835de44884f483b28b10f8), [MEDIA_ROLETYPE_AUDIO_G726](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5a1bd136ced64ce1ab7b9e45fb0f5d75b6),   [MEDIA_ROLETYPE_AUDIO_PCM](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5a30e0f43909d411eb0f4c4fd8f9216dd8), [MEDIA_ROLETYPE_AUDIO_MP3](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5aec847c178f28118703297fb600907338), [MEDIA_ROLETYPE_INVALID](_codec.md#gga7c1ff03fc0cd5a8f738afae873b5d5d5aee058a8e8a635efc2ed3328440a58e45) } | 枚举音视频编解码组件类型 [更多...](_codec.md#avcodecrole) | -| [AudioSampleFormat](_codec.md#audiosampleformat) {   [AUDIO_SAMPLE_FORMAT_S8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a2d8a330d2cb71268562e1c4da0c4eabc), [AUDIO_SAMPLE_FORMAT_S8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a4eb79a5d6d99244902cfb5c65f225c80), [AUDIO_SAMPLE_FORMAT_U8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab6d04d1d87a9a243b195ab6be183600e), [AUDIO_SAMPLE_FORMAT_U8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aeffb8620959b836e01622c7dc82ebc6d),   [AUDIO_SAMPLE_FORMAT_S16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a4422a2a04509e492ef823189d454d5a3), [AUDIO_SAMPLE_FORMAT_S16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a11a1fb37c21f722383a37fc5e6075dfe), [AUDIO_SAMPLE_FORMAT_U16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757af961944b4c8e77ee56defc30e6e61eb5), [AUDIO_SAMPLE_FORMAT_U16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a08ba605e3e58479ebb7432ff5d6d0972),   [AUDIO_SAMPLE_FORMAT_S24](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a102520af7c50d1ee4951e472f5f921e4), [AUDIO_SAMPLE_FORMAT_S24P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ae245cf6bd637c1f1304b38746f8940d6), [AUDIO_SAMPLE_FORMAT_U24](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a0d5fc3d14030aad7bc17d894bf4fc5c9), [AUDIO_SAMPLE_FORMAT_U24P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a0e8b7681ec3461988cb7fdd0f3616b2e),   [AUDIO_SAMPLE_FORMAT_S32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a46819088770f843230d2b094fd8d14ba), [AUDIO_SAMPLE_FORMAT_S32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a7883f8a4bede55eb4ffaf6ecb47f6841), [AUDIO_SAMPLE_FORMAT_U32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757afae09ccb9fdae65e73e5584a4c3a6d16), [AUDIO_SAMPLE_FORMAT_U32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a915025bfdcf9491a21b2d38dec7998cc),   [AUDIO_SAMPLE_FORMAT_S64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a2e5477f7cc05dcc271b50e570dfd0452), [AUDIO_SAMPLE_FORMAT_S64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab07b4d40994980a8012a79dc4a69a794), [AUDIO_SAMPLE_FORMAT_U64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a959950ea0f2b6c0e17d752640238c23b), [AUDIO_SAMPLE_FORMAT_U64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aad2c58522f7d16111756c1731bf52044),   [AUDIO_SAMPLE_FORMAT_F32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ac3cb5729241a7f73210d97d4fe0002fe), [AUDIO_SAMPLE_FORMAT_F32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a1121b8995d1083f61b2fa0afcc45143f), [AUDIO_SAMPLE_FORMAT_F64](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a72f064169d0282fa8a152aea546056c3), [AUDIO_SAMPLE_FORMAT_F64P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a1f0e407cd152b27f7b0ff761d26bb300),   [AUDIO_SAMPLE_FMT_U8](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757aad65a5b895b3dba000167dbb6c19b9ab), [AUDIO_SAMPLE_FMT_S16](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a40335eaa7ca378540941909ed02b51a0), [AUDIO_SAMPLE_FMT_S32](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ab98feafb8396c0190a4fb719a15ab7c5), [AUDIO_SAMPLE_FMT_FLOAT](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757ac2fb27a42b3f79e51dd71ce05b42f9db),   [AUDIO_SAMPLE_FMT_DOUBLE](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757afb8b12c44b4799f59a533609b4c360b5), [AUDIO_SAMPLE_FMT_U8P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a8eb00238e7aa21d69f056d9292eb64d9), [AUDIO_SAMPLE_FMT_S16P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a93008db1a966fee4a91b515fedc78cec), [AUDIO_SAMPLE_FMT_S32P](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a6bb874f2726bb94d08914b366ae947d6),   [AUDIO_SAMPLE_FMT_FLOATP](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a8a635bbd6c5df1a8a0fadb1d9602ea74), [AUDIO_SAMPLE_FMT_DOUBLEP](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a467bd88ce7f736a433425695ed0a0dbc), [AUDIO_SAMPLE_FMT_INVALID](_codec.md#gga97cfd5633b2133e7ebe42dbb9b03e757a5c8f7c2c0f84e70f609f8fd4ffd2c910) } | 枚举音频采样格式 [更多...](_codec.md#audiosampleformat) | -| [CodecBufferType](_codec.md#codecbuffertype) {   [CODEC_BUFFER_TYPE_INVALID](_codec.md#ggaf63c168decbe7dc156ad3b4d575a0d46aba35b6e9b3ca08afcb012f723c07baee) = 0, [CODEC_BUFFER_TYPE_VIRTUAL_ADDR](_codec.md#ggaf63c168decbe7dc156ad3b4d575a0d46a4df6de0078bcf908fdb12d0ec1486899) = 0x1, [CODEC_BUFFER_TYPE_AVSHARE_MEM_FD](_codec.md#ggaf63c168decbe7dc156ad3b4d575a0d46aaba95e9bf8ffbd7fe7512bc842d70ca5) = 0x2, [CODEC_BUFFER_TYPE_HANDLE](_codec.md#ggaf63c168decbe7dc156ad3b4d575a0d46a90db1a10a238c832937c7a0e02287a79) = 0x4,   [CODEC_BUFFER_TYPE_DYNAMIC_HANDLE](_codec.md#ggaf63c168decbe7dc156ad3b4d575a0d46a931ecc36727f5eb3baba00e0d2b8771e) = 0x8 } | 定义buffer类型 [更多...](_codec.md#codecbuffertype) | -| [ShareMemTypes](_codec.md#sharememtypes) { [READ_WRITE_TYPE](_codec.md#ggae84516e039a3963772dfeebd4937cb8daa268821c7f672c1b968aeed0ad745dd0) = 0x1, [READ_ONLY_TYPE](_codec.md#ggae84516e039a3963772dfeebd4937cb8daa5af6f1eec0b9f19c72a1085cef7c0ff) = 0x2 } | 枚举共享内存类型 [更多...](_codec.md#sharememtypes) | -| [OmxIndexCodecExType](_codec.md#omxindexcodecextype) { [OMX_IndexExtBufferTypeStartUnused](_codec.md#gga0ab3a4efe29745d2b49944c4014e0c28a228f8b3c93f68da516a76db3f594625d) = OMX_IndexKhronosExtensions + 0x00a00000, [OMX_IndexParamSupportBufferType](_codec.md#gga0ab3a4efe29745d2b49944c4014e0c28aaab75f888d711f3168327535312117fa), [OMX_IndexParamUseBufferType](_codec.md#gga0ab3a4efe29745d2b49944c4014e0c28a353c3ccfb9985619526c0c7a28c9cce8), [OMX_IndexParamGetBufferHandleUsage](_codec.md#gga0ab3a4efe29745d2b49944c4014e0c28a3dea5e61dc211290d54d79d35679199d) } | 枚举Codec扩展index [更多...](_codec.md#omxindexcodecextype) | -| [OmxVideoExType](_codec.md#omxvideoextype) { [OMX_VIDEO_CodingHEVC](_codec.md#ggab1cbacdf16bc8912e69547b37022a9c1acf4ea0b624499e3a53c3b36f6217f6fe) = 11 } | 枚举Codec扩展编码类型 [更多...](_codec.md#omxvideoextype) | +| [AvCodecRole](_codec.md#avcodecrole) { MEDIA_ROLETYPE_IMAGE_JPEG = 0, MEDIA_ROLETYPE_VIDEO_AVC, MEDIA_ROLETYPE_VIDEO_HEVC, MEDIA_ROLETYPE_AUDIO_FIRST = 0x10000,   MEDIA_ROLETYPE_AUDIO_AAC = 0x10000, MEDIA_ROLETYPE_AUDIO_G711A, MEDIA_ROLETYPE_AUDIO_G711U, MEDIA_ROLETYPE_AUDIO_G726,   MEDIA_ROLETYPE_AUDIO_PCM, MEDIA_ROLETYPE_AUDIO_MP3, MEDIA_ROLETYPE_INVALID } | 枚举音视频编解码组件类型 [更多...](_codec.md#avcodecrole) | +| [AudioSampleFormat](_codec.md#audiosampleformat) { AUDIO_SAMPLE_FORMAT_S8, AUDIO_SAMPLE_FORMAT_S8P, AUDIO_SAMPLE_FORMAT_U8, AUDIO_SAMPLE_FORMAT_U8P,   AUDIO_SAMPLE_FORMAT_S16, AUDIO_SAMPLE_FORMAT_S16P, AUDIO_SAMPLE_FORMAT_U16, AUDIO_SAMPLE_FORMAT_U16P,   AUDIO_SAMPLE_FORMAT_S24, AUDIO_SAMPLE_FORMAT_S24P, AUDIO_SAMPLE_FORMAT_U24, AUDIO_SAMPLE_FORMAT_U24P,   AUDIO_SAMPLE_FORMAT_S32, AUDIO_SAMPLE_FORMAT_S32P, AUDIO_SAMPLE_FORMAT_U32, AUDIO_SAMPLE_FORMAT_U32P,   AUDIO_SAMPLE_FORMAT_S64, AUDIO_SAMPLE_FORMAT_S64P, AUDIO_SAMPLE_FORMAT_U64, AUDIO_SAMPLE_FORMAT_U64P,   AUDIO_SAMPLE_FORMAT_F32, AUDIO_SAMPLE_FORMAT_F32P, AUDIO_SAMPLE_FORMAT_F64, AUDIO_SAMPLE_FORMAT_F64P,   AUDIO_SAMPLE_FMT_U8, AUDIO_SAMPLE_FMT_S16, AUDIO_SAMPLE_FMT_S32, AUDIO_SAMPLE_FMT_FLOAT,   AUDIO_SAMPLE_FMT_DOUBLE, AUDIO_SAMPLE_FMT_U8P, AUDIO_SAMPLE_FMT_S16P, AUDIO_SAMPLE_FMT_S32P,   AUDIO_SAMPLE_FMT_FLOATP, AUDIO_SAMPLE_FMT_DOUBLEP, AUDIO_SAMPLE_FMT_INVALID } | 枚举音频采样格式 [更多...](_codec.md#audiosampleformat) | +| [CodecBufferType](_codec.md#codecbuffertype) { CODEC_BUFFER_TYPE_INVALID = 0, CODEC_BUFFER_TYPE_VIRTUAL_ADDR = 0x1, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD = 0x2, CODEC_BUFFER_TYPE_HANDLE = 0x4,   CODEC_BUFFER_TYPE_DYNAMIC_HANDLE = 0x8 } | 定义buffer类型 [更多...](_codec.md#codecbuffertype) | +| [ShareMemTypes](_codec.md#sharememtypes) { READ_WRITE_TYPE = 0x1, READ_ONLY_TYPE = 0x2 } | 枚举共享内存类型 [更多...](_codec.md#sharememtypes) | +| [OmxIndexCodecExType](_codec.md#omxindexcodecextype) { OMX_IndexExtBufferTypeStartUnused = OMX_IndexKhronosExtensions + 0x00a00000, OMX_IndexParamSupportBufferType, OMX_IndexParamUseBufferType, OMX_IndexParamGetBufferHandleUsage } | 枚举Codec扩展index [更多...](_codec.md#omxindexcodecextype) | +| [OmxVideoExType](_codec.md#omxvideoextype) { OMX_VIDEO_CodingHEVC = 11 } | 枚举Codec扩展编码类型 [更多...](_codec.md#omxvideoextype) | ## **详细描述** diff --git a/zh-cn/device-dev/api/display__type_8h.md b/zh-cn/device-dev/api/display__type_8h.md index cce9de291a..6b83f5bd4a 100644 --- a/zh-cn/device-dev/api/display__type_8h.md +++ b/zh-cn/device-dev/api/display__type_8h.md @@ -46,27 +46,27 @@ ### 枚举 - | 枚举 | 描述 | -| -------- | -------- | -| [DispErrCode](_display.md#disperrcode) {   [DISPLAY_SUCCESS](_display.md#gga12a925dadef7573cd74d63d06824f9b0a188daac95e787159d50ff9546536035b) = 0, [DISPLAY_FAILURE](_display.md#gga12a925dadef7573cd74d63d06824f9b0afdffc20c71fb142c3e7f01323a31d742) = -1, [DISPLAY_FD_ERR](_display.md#gga12a925dadef7573cd74d63d06824f9b0a5bdb0a826a652f51e6c82685ae08ede8) = -2, [DISPLAY_PARAM_ERR](_display.md#gga12a925dadef7573cd74d63d06824f9b0a330e09be303bc7056f6115830bbd2370) = -3,   [DISPLAY_NULL_PTR](_display.md#gga12a925dadef7573cd74d63d06824f9b0a82fbcdba6c699059bc04b491c92424ac) = -4, [DISPLAY_NOT_SUPPORT](_display.md#gga12a925dadef7573cd74d63d06824f9b0a950a7bc41e893450315da9e73208f8c2) = -5, [DISPLAY_NOMEM](_display.md#gga12a925dadef7573cd74d63d06824f9b0af186ab511133fa3280c54d2c44358882) = -6, [DISPLAY_SYS_BUSY](_display.md#gga12a925dadef7573cd74d63d06824f9b0ac11b678fc04745ff4d91f4398b83c427) = -7,   [DISPLAY_NOT_PERM](_display.md#gga12a925dadef7573cd74d63d06824f9b0ad133674b9f3b857a12791479aaf58cf8) = -8 } | 返回值类型定义。 [更多...](_display.md#disperrcode) | -| [LayerType](_display.md#layertype) {   [LAYER_TYPE_GRAPHIC](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4a6ef157ea82a5d4c1715b3cddcca38d6f), [LAYER_TYPE_OVERLAY](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4ac33e449941bc0e4d039b4b5bed853a78), [LAYER_TYPE_SDIEBAND](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4a0aef2c460a206fa00c742219d65be477), [LAYER_TYPE_CURSOR](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4a44b3a657e6bf4f1f5709c03a94a11019),   [LAYER_TYPE_BUTT](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4acd813c5ad9a2be97c85a97d4bdf1cb57) } | 图层类型定义。 [更多...](_display.md#layertype) | -| {[HBM_USE_CPU_READ](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a9bb139ab93fcaceac48e52bac1be53dc) = (1 << 0), [HBM_USE_CPU_WRITE](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a29217cbafbb6666fe1e8d96f3c368a4d) = (1 << 1), [HBM_USE_MEM_MMZ](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a9126b10e53b48304a5d9c351b1ace6d4) = (1 << 2), [HBM_USE_MEM_DMA](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7af7d33fd75c60375bef211629ff02d8c4) = (1 << 3),   [HBM_USE_MEM_SHARE](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a16042b501b66017d663c3f5bcd24a20f) = (1 << 4), [HBM_USE_MEM_MMZ_CACHE](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a553664654199ebde6733a830cbe0a369) = (1 << 5), [HBM_USE_MEM_FB](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a110b955655861ef11167e907be5f18fc) = (1 << 6), [HBM_USE_ASSIGN_SIZE](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a44d0fd6e88dbbe9e78c44cc8e5bddc22) = (1 << 7) } | 缓冲区定义。[更多...](_display.md#anonymous-enum) | -| [PixelFormat](_display.md#pixelformat) {   [PIXEL_FMT_CLUT8](_display.md#gga60883d4958a60b91661e97027a85072aabdea255b6e5f2920977f11d21445b34a) = 0, [PIXEL_FMT_CLUT1](_display.md#gga60883d4958a60b91661e97027a85072aa5740c66a546552c0c5a4bc06850af584), [PIXEL_FMT_CLUT4](_display.md#gga60883d4958a60b91661e97027a85072aabde13e8f357e39981973929309bb0e0e), [PIXEL_FMT_RGB_565](_display.md#gga60883d4958a60b91661e97027a85072aa5fae320872be3ffdda0d371cec048ec6),   [PIXEL_FMT_RGBA_5658](_display.md#gga60883d4958a60b91661e97027a85072aa4c16147153b63d7ba71b257111afdd62), [PIXEL_FMT_RGBX_4444](_display.md#gga60883d4958a60b91661e97027a85072aaa479ac0d983fde9b4f7f0e1a3b3e230f), [PIXEL_FMT_RGBA_4444](_display.md#gga60883d4958a60b91661e97027a85072aacbb91256e8c45a51410a9f6caae2d04c), [PIXEL_FMT_RGB_444](_display.md#gga60883d4958a60b91661e97027a85072aa7d18a83da06902c104208031ed487942),   [PIXEL_FMT_RGBX_5551](_display.md#gga60883d4958a60b91661e97027a85072aa85e5dd1a0e547c0031baffd02abb31a0), [PIXEL_FMT_RGBA_5551](_display.md#gga60883d4958a60b91661e97027a85072aadc1387526a271d8c6db7729de06474b1), [PIXEL_FMT_RGB_555](_display.md#gga60883d4958a60b91661e97027a85072aa720a429fa57133f6e27ef8c8fa1c404a), [PIXEL_FMT_RGBX_8888](_display.md#gga60883d4958a60b91661e97027a85072aa24a7181b7fb4019e7c19739bd9b65ff0),   [PIXEL_FMT_RGBA_8888](_display.md#gga60883d4958a60b91661e97027a85072aa90b462672221691ed66cacb07dd2e05f), [PIXEL_FMT_RGB_888](_display.md#gga60883d4958a60b91661e97027a85072aa7ff77397bf2cf52b4614a46264f8ce01), [PIXEL_FMT_BGR_565](_display.md#gga60883d4958a60b91661e97027a85072aaec581b908c291e2bd0155e25169f9629), [PIXEL_FMT_BGRX_4444](_display.md#gga60883d4958a60b91661e97027a85072aa6b5a7b35e00fc25146de0c9bf88b0230),   [PIXEL_FMT_BGRA_4444](_display.md#gga60883d4958a60b91661e97027a85072aa2f3d4ada099b2e8d84ec4501fbc8bed9), [PIXEL_FMT_BGRX_5551](_display.md#gga60883d4958a60b91661e97027a85072aaaf1a20dc0a597258cfe6aca806a8e0de), [PIXEL_FMT_BGRA_5551](_display.md#gga60883d4958a60b91661e97027a85072aa2319d4a75dae0b56776fa63d525e308b), [PIXEL_FMT_BGRX_8888](_display.md#gga60883d4958a60b91661e97027a85072aa1b19279f89c8cfb60e7d77ce23cd5f43),   [PIXEL_FMT_BGRA_8888](_display.md#gga60883d4958a60b91661e97027a85072aaeb31c670120a1fbc96a0e0887997fe16), [PIXEL_FMT_YUV_422_I](_display.md#gga60883d4958a60b91661e97027a85072aac73c2a84907a53ed95a329007b5c8992), [PIXEL_FMT_YCBCR_422_SP](_display.md#gga60883d4958a60b91661e97027a85072aabdf1224848278508479ce97f637dd711), [PIXEL_FMT_YCRCB_422_SP](_display.md#gga60883d4958a60b91661e97027a85072aa8bf97d66e26b3aad7c83dfa70e2bc451),   [PIXEL_FMT_YCBCR_420_SP](_display.md#gga60883d4958a60b91661e97027a85072aa0d1db50eb492f9073abdd2d662c56396), [PIXEL_FMT_YCRCB_420_SP](_display.md#gga60883d4958a60b91661e97027a85072aa1fa43c8a197d5c974a35b8bf02ab386e), [PIXEL_FMT_YCBCR_422_P](_display.md#gga60883d4958a60b91661e97027a85072aaa2fe085e63428ea76e1d975175001dc6), [PIXEL_FMT_YCRCB_422_P](_display.md#gga60883d4958a60b91661e97027a85072aab04eb6e1d940e42f3b4cc20c0a44c4ee),   [PIXEL_FMT_YCBCR_420_P](_display.md#gga60883d4958a60b91661e97027a85072aa3d80e785bed28e2b3f5c7df563500962), [PIXEL_FMT_YCRCB_420_P](_display.md#gga60883d4958a60b91661e97027a85072aa3dc5a0a5ad2f21218b446c477277210a), [PIXEL_FMT_YUYV_422_PKG](_display.md#gga60883d4958a60b91661e97027a85072aa3980def5b133584bdb2982a71f07798e), [PIXEL_FMT_UYVY_422_PKG](_display.md#gga60883d4958a60b91661e97027a85072aadfd69bd5b421aad5bdd39d5f33317197),   [PIXEL_FMT_YVYU_422_PKG](_display.md#gga60883d4958a60b91661e97027a85072aaf851031c336e8d9f57c940c5f52381f4), [PIXEL_FMT_VYUY_422_PKG](_display.md#gga60883d4958a60b91661e97027a85072aa317a761939335025379d382074a1541c), [PIXEL_FMT_VENDER_MASK](_display.md#gga60883d4958a60b91661e97027a85072aa67668ea067a31a8479aece94094bc547) = 0X7FFF0000, [PIXEL_FMT_BUTT](_display.md#gga60883d4958a60b91661e97027a85072aa07086bb3356c9c88959eee00c0982684) = 0X7FFFFFFF } | 像素格式类型定义。 [更多...](_display.md#pixelformat) | -| [TransformType](_display.md#transformtype) {   [ROTATE_NONE](_display.md#ggaa65f3b21a9a92ff022e435a7304126d2a68e349e9d45a8eba440e2a7a3ba31ec9) = 0, [ROTATE_90](_display.md#ggaa65f3b21a9a92ff022e435a7304126d2a685062467b0c1a3164556335b467c886), [ROTATE_180](_display.md#ggaa65f3b21a9a92ff022e435a7304126d2a186263164422bb8f0eb5f7b7d195a3d1), [ROTATE_270](_display.md#ggaa65f3b21a9a92ff022e435a7304126d2a554e734d2a23790b248c5ce39816c18f),   [ROTATE_BUTT](_display.md#ggaa65f3b21a9a92ff022e435a7304126d2a9b6ff871536aeef2a8e3ce4a753988ed) } | 图层变换类型定义。 [更多...](_display.md#transformtype) | -| [BlendType](_display.md#blendtype) {   [BLEND_NONE](_display.md#ggaab1839ed4aab1030dfda801a51e68817ae410edb34509ca21425fe5872bbc7e2f) = 0, [BLEND_CLEAR](_display.md#ggaab1839ed4aab1030dfda801a51e68817a6330cee419fbdafc0b25f0aa068814e5), [BLEND_SRC](_display.md#ggaab1839ed4aab1030dfda801a51e68817af01da0c255cdbf67d0774a67c2d221b5), [BLEND_SRCOVER](_display.md#ggaab1839ed4aab1030dfda801a51e68817ad4c0cd02aa4b5f4849e2b29a26481dde),   [BLEND_DSTOVER](_display.md#ggaab1839ed4aab1030dfda801a51e68817a21f03e8d04a58ed0684b39eb84bdb89f), [BLEND_SRCIN](_display.md#ggaab1839ed4aab1030dfda801a51e68817a74e681f6c9027bb2cf0bda3b72d2dd9e), [BLEND_DSTIN](_display.md#ggaab1839ed4aab1030dfda801a51e68817a19f528828d75c34e18375219f113d9bb), [BLEND_SRCOUT](_display.md#ggaab1839ed4aab1030dfda801a51e68817a404e05a118462520e878c23f89808199),   [BLEND_DSTOUT](_display.md#ggaab1839ed4aab1030dfda801a51e68817ac0dc902b4928413d367376e4c842d909), [BLEND_SRCATOP](_display.md#ggaab1839ed4aab1030dfda801a51e68817ada473c7e3bf2b1102349489416aefefc), [BLEND_DSTATOP](_display.md#ggaab1839ed4aab1030dfda801a51e68817a0129b4506a06b1a6df297bcf685f5f89), [BLEND_ADD](_display.md#ggaab1839ed4aab1030dfda801a51e68817adbdb329830e5b4d9fa2b17d5d6d7894f),   [BLEND_XOR](_display.md#ggaab1839ed4aab1030dfda801a51e68817a167c3b256e051244066d8e53cdd5529d), [BLEND_DST](_display.md#ggaab1839ed4aab1030dfda801a51e68817a4686a5f30c73982d625a05db021e9b15), [BLEND_AKS](_display.md#ggaab1839ed4aab1030dfda801a51e68817ae549aa3794365df8965a2c3853c8da99), [BLEND_AKD](_display.md#ggaab1839ed4aab1030dfda801a51e68817a3cc39f12fa8bceba626a33c2d82a8bf7),   [BLEND_BUTT](_display.md#ggaab1839ed4aab1030dfda801a51e68817ad0650812ac2aa9eee228f48ac514b44a) } | 显示内存类型定义。 [更多...](_display.md#blendtype) | -| [RopType](_display.md#roptype) {   [ROP_BLACK](_display.md#gga24265f7618fbdba53d3da4806d3097c4a6358a786ec3b81000a07b343424cee0d) = 0, [ROP_NOTMERGEPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a96c89f7b89a9048d355b4dc467224f4c), [ROP_MASKNOTPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a54d054ea6920cb88f374f70e8d41f934), [ROP_NOTCOPYPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4af4a5d5dc0f15249001cff7ef32fadef1),   [ROP_MASKPENNOT](_display.md#gga24265f7618fbdba53d3da4806d3097c4ad777eea18ba9f4e071b00aa060db00e3), [ROP_NOT](_display.md#gga24265f7618fbdba53d3da4806d3097c4afa63c8e2a6a39d50954cb6316576b4e9), [ROP_XORPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a79433776e85bb80ad0306ced0b82947c), [ROP_NOTMASKPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4ad6c4d2458a9caaa079a3e5907d636e8a),   [ROP_MASKPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a2a069e2105c5b8d4dac5d174c76eb9d4), [ROP_NOTXORPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a33c37c5ce718e876f43141dc5a028375), [ROP_NOP](_display.md#gga24265f7618fbdba53d3da4806d3097c4a2acacab882af44bba09878bd58e18695), [ROP_MERGENOTPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4afaea3c47612082914332b78ca8c331b3),   [ROP_COPYPE](_display.md#gga24265f7618fbdba53d3da4806d3097c4a91bae697f9dea25ac4d7be011958a45d), [ROP_MERGEPENNOT](_display.md#gga24265f7618fbdba53d3da4806d3097c4a3580b77320e4829da046b8739c61d6b8), [ROP_MERGEPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a8195ac0d37e0d69b2cd71dd7362d3fd3), [ROP_WHITE](_display.md#gga24265f7618fbdba53d3da4806d3097c4a533a614b27da8a81b67ada085b018618),   [ROP_BUTT](_display.md#gga24265f7618fbdba53d3da4806d3097c4aa858b07e214a7f62625e24776806c74b) } | 硬件加速支持的ROP操作类型。 [更多...](_display.md#roptype) | -| [ColorKey](_display.md#colorkey) { [CKEY_NONE](_display.md#gga4fe6fb05c7ba0048b1739d88f4d4878ea629b31de258db2ce01cb757b85bd5273) = 0, [CKEY_SRC](_display.md#gga4fe6fb05c7ba0048b1739d88f4d4878ea5e3271e73dce39d0806ff8e9cba011bc), [CKEY_DST](_display.md#gga4fe6fb05c7ba0048b1739d88f4d4878ea6921c2c202aa69293467baa6c33fae05), [CKEY_BUTT](_display.md#gga4fe6fb05c7ba0048b1739d88f4d4878ea32cedc8986de2c290bf2ec193d88cabf) } | Color key操作类型定义,即硬件加速支持的Color key操作类型。 [更多...](_display.md#colorkey) | -| [MirrorType](_display.md#mirrortype) { [MIRROR_NONE](_display.md#gga08d32376574b541d162d8534adb78fd0a5ad82fcc8af04f92571e185b61eeb309) = 0, [MIRROR_LR](_display.md#gga08d32376574b541d162d8534adb78fd0ae35099d9fd28c2974661bcce36a9ea5c), [MIRROR_TB](_display.md#gga08d32376574b541d162d8534adb78fd0afd82e59546a645fd29bc779c50bfa733), [MIRROR_BUTT](_display.md#gga08d32376574b541d162d8534adb78fd0ad9e357a2c2f7dc0e3ca5a351ec457410) } | 硬件加速支持的镜像操作类型定义 [更多...](_display.md#mirrortype) | -| [Connection](_display.md#connection) { [CON_INVALID](_display.md#ggab0845c0c8d309ee865c78b095b00e671ab5c8a92e6af2e63e769dd8f711564760) = 0, [CONNECTED](_display.md#ggab0845c0c8d309ee865c78b095b00e671a7a691a2430ec26878897b5fbc9c22a4c), [DISCONNECTED](_display.md#ggab0845c0c8d309ee865c78b095b00e671acdaad1112073e3e2ea032424c38c34e1) } | 热插拔连接类型定义 [更多...](_display.md#connection) | -| [InterfaceType](_display.md#interfacetype) {   [DISP_INTF_HDMI](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da717f9ae7960ba280c6c6b8822c6d8b66) = 0, [DISP_INTF_LCD](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da210dbbea7e5c30b693515bba570474d4), [DISP_INTF_BT1120](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da89a4e456ceffa55cb93b2c6f4792c96b), [DISP_INTF_BT656](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9daf23a0b7607d3fdc7eac791d62c5f9cd5),   [DISP_INTF_YPBPR](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da54a83297ab61376574854e804a6158e1), [DISP_INTF_RGB](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da83ef625db890ee1ddb4e874d6155405f), [DISP_INTF_CVBS](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9dabf3991ede75cb3bb454372174d63ec29), [DISP_INTF_SVIDEO](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9daad740e6f901f40965d2824415fcb9041),   [DISP_INTF_VGA](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da5db1f365e675d992f47ce797339beff5), [DISP_INTF_MIPI](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da5b9c7382dfdcc029e467c6339bf90915), [DISP_INTF_PANEL](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da4d64c32b687840c7e08e28a2892ac222), [DISP_INTF_BUTT](_display.md#p106611424171011) } | 枚举接口类型。 [更多...](_display.md#interfacetype) | -| [DispPowerStatus](_display.md#disppowerstatus) {   [POWER_STATUS_ON](_display.md#gga0f3c8af6e9d40730b0d2e0fbbf8e627da89e258c21283c662af2145bd3f9fc9a0), [POWER_STATUS_STANDBY](_display.md#gga0f3c8af6e9d40730b0d2e0fbbf8e627da604748a7de21aa992c1f72c252fc77a7), [POWER_STATUS_SUSPEND](_display.md#gga0f3c8af6e9d40730b0d2e0fbbf8e627da5605db047fd50c64fa0a13d8e558d479), [POWER_STATUS_OFF](_display.md#gga0f3c8af6e9d40730b0d2e0fbbf8e627daddd660122faa920f2adcd81e83d22c85),   [POWER_STATUS_BUTT](_display.md#gga0f3c8af6e9d40730b0d2e0fbbf8e627dad1f590a00c02d7335bfc24edbea92037) } | 枚举显示状态 [更多...](_display.md#disppowerstatus) | -| [CompositionType](_display.md#compositiontype) {   [COMPOSITION_CLIENT](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5afc7ab4757f19ed87ea6d1603478edbe8), [COMPOSITION_DEVICE](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5aa51390e0da602171f2d042a94c6b75bf), [COMPOSITION_CURSOR](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5a663feec453d4509980f3bb34f641303b), [COMPOSITION_VIDEO](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5a89ea30239d366a6968c7dff429a99aa9),   [COMPOSITION_DEVICE_CLEAR](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5a05f5ab2a5da295c0fdc7e19e9a121f3e), [COMPOSITION_CLIENT_CLEAR](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5a7c1535ef8d388f878fae7c722d69855e), [COMPOSITION_TUNNEL](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5a400576aea4b15e011ddd21748d16f9ca), [COMPOSITION_BUTT](_display.md#p488974221219) } | 枚举特殊层的组合类型。 [更多...](_display.md#compositiontype) | -| [ColorGamut](_display.md#colorgamut) {   [COLOR_GAMUT_INVALID](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a7d7d95bebc0ddb4d10da05b449bab1bf) = -1, [COLOR_GAMUT_NATIVE](_display.md#gga7e865f6dbae09a004be2949b473fd7c3af0e1dba48215d4d19bd9a3536a736cdb) = 0, [COLOR_GAMUT_SATNDARD_BT601](_display.md#gga7e865f6dbae09a004be2949b473fd7c3affa91ab208128bec9b981e7020bcbfa9) = 1, [COLOR_GAMUT_STANDARD_BT709](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a248480b6ae7ad6c5327dd7cb5cfd0a85) = 2,   [COLOR_GAMUT_DCI_P3](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a98eb540d5a93ab3ad4256907eec89c4e) = 3, [COLOR_GAMUT_SRGB](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a8327e3fc0a79c9935dd9279c10c841c5) = 4, [COLOR_GAMUT_ADOBE_RGB](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a3377a7df82b495c65f3f7ab2b1655100) = 5, [COLOR_GAMUT_DISPLAY_P3](_display.md#gga7e865f6dbae09a004be2949b473fd7c3ad79cdc9f86f3b581453c523a03a876d3) = 6,   [COLOR_GAMUT_BT2020](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a79ff774719c5b83287b298d39ee274f3) = 7, [COLOR_GAMUT_BT2100_PQ](_display.md#gga7e865f6dbae09a004be2949b473fd7c3aa8191f5fca2ad767fa56767b41f4dec5) = 8, [COLOR_GAMUT_BT2100_HLG](_display.md#gga7e865f6dbae09a004be2949b473fd7c3ad4f624c7b578dacaa732cd9556724797) = 9, [COLOR_GAMUT_DISPLAY_BT2020](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a5d07e2f0d8e570c5e16ccff05e12cb29) = 10 } | 色域类型枚举值 [更多...](_display.md#colorgamut) | -| [GamutMap](_display.md#gamutmap) { [GAMUT_MAP_CONSTANT](_display.md#gga5700b58f1bc340e309a0962101ad7fa4acdf75e246ac2f53f37ef9e11b5561535) = 0, [GAMUT_MAP_EXPANSION](_display.md#gga5700b58f1bc340e309a0962101ad7fa4af3824abcccbd8d85d28e34149e9aaa33) = 1, [GAMUT_MAP_HDR_CONSTANT](_display.md#gga5700b58f1bc340e309a0962101ad7fa4afd4e1cb10b8032108ab070925b73e270) = 2, [GAMUT_MAP_HDR_EXPANSION](_display.md#gga5700b58f1bc340e309a0962101ad7fa4ad0f9722a0efd51910ac5f2f63fd86a10) = 3 } | 枚举色域的映射类型 [更多...](_display.md#gamutmap) | -| [ColorDataSpace](_display.md#colordataspace) {   [COLOR_DATA_SPACE_UNKNOWN](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca5a0aa62f13715cbdf2b5ec1e26e76225) = 0, [GAMUT_BT601](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad778a31f4c8e3431f5240f98c70f577d) = 0x00000001, [GAMUT_BT709](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca7d346fa865c56c76f62c7f6ab92511ec) = 0x00000002, [GAMUT_DCI_P3](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccae29ccb674444c3f81f0a46361d7ce63c) = 0x00000003,   [GAMUT_SRGB](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca16c4c57e66f86b20269db0d5d6382ded) = 0x00000004, [GAMUT_ADOBE_RGB](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca0a0a0c633a41a5f30596a5168a3267ca) = 0x00000005, [GAMUT_DISPLAY_P3](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca3d4a0608dd5c682fc020bfc68a425e15) = 0x00000006, [GAMUT_BT2020](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa6dc448a5d0d16a7d2610edb29fff407) = 0x00000007,   [GAMUT_BT2100_PQ](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6b100b6876c7e77106df92b9c8cf7d2b) = 0x00000008, [GAMUT_BT2100_HLG](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca53a60a5ed93129597841bde263e9a798) = 0x00000009, [GAMUT_DISPLAY_BT2020](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa66ffaf12ec59488cccbd2170cc3d2c8) = 0x0000000a, [TRANSFORM_FUNC_UNSPECIFIED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca0fe652843eafbf7a93b645a71342dce0) = 0x00000100,   [TRANSFORM_FUNC_LINEAR](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa2e1f70b023dd5ae3a31771217d958cc) = 0x00000200, [TRANSFORM_FUNC_SRGB](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca47dd20703e8d8135aedfb687b75ef66c) = 0x00000300, [TRANSFORM_FUNC_SMPTE_170M](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab031ec808cc46bee79d2c96460615206) = 0x00000400, [TRANSFORM_FUNC_GM2_2](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca078b8dad4e1eb6720c81c841b3f417d9) = 0x00000500,   [TRANSFORM_FUNC_GM2_6](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad6abe514be2fa6c57b2aec5a5eb6fc7d) = 0x00000600, [TRANSFORM_FUNC_GM2_8](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca850b419cb0075b5bd44df5708fc9c87f) = 0x00000700, [TRANSFORM_FUNC_ST2084](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca24a6d830fca211b067260df9583a1b2b) = 0x00000800, [TRANSFORM_FUNC_HLG](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca4a6d68c7a2219cada2edf0e9d7bc46f8) = 0x00000900,   [PRECISION_UNSPECIFIED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca77342396f1154be94079d0d76fc5e829) = 0x00010000, [PRECISION_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca200541efc2ee0d21e37a7200e7a08a54) = 0x00020000, [PRESION_LIMITED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab51307e81936be84b6504a98197fb1ee) = 0x00030000, [PRESION_EXTENDED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccafd6ac339ebbdbbdd7fee540a6fad5ec2) = 0x00040000,   [BT601_SMPTE170M_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab640f36320dafb19066dfcaccc836999) = GAMUT_BT601 \| TRANSFORM_FUNC_SMPTE_170M \| PRECISION_FULL, [BT601_SMPTE170M_LIMITED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6cd475c6421764e5d71d71f1de75d638) = GAMUT_BT601 \| TRANSFORM_FUNC_SMPTE_170M \| PRESION_LIMITED, [BT709_LINEAR_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad2bc96da52c18ef9bb26320507747176) = GAMUT_BT709 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, [BT709_LINEAR_EXTENDED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca03631fd75bc6ec7280ce2c68a129e4fd) = GAMUT_BT709 \| TRANSFORM_FUNC_LINEAR \| PRESION_EXTENDED,   [BT709_SRGB_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaaffba49d9c1c335387cd8153becad65a) = GAMUT_BT709 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, [BT709_SRGB_EXTENDED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca049878481c3ed46dbd6cfea995e2f0d5) = GAMUT_BT709 \| TRANSFORM_FUNC_SRGB \| PRESION_EXTENDED, [BT709_SMPTE170M_LIMITED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca14381e6d202b6bda3c90264b05d31838) = GAMUT_BT709 \| TRANSFORM_FUNC_SMPTE_170M \| PRESION_LIMITED, [DCI_P3_LINEAR_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad03af85a7ff4c1069a97bfb603f7d694) = GAMUT_DCI_P3 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL,   [DCI_P3_GAMMA26_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca9de9b32e0e7c172c77922af8904ba3a2) = GAMUT_DCI_P3 \| TRANSFORM_FUNC_GM2_6 \| PRECISION_FULL, [DISPLAY_P3_LINEAR_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca8bcb3a4ed6039d158b9c32ba99fceaff) = GAMUT_DISPLAY_P3 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, [DCI_P3_SRGB_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca2fac97f61868100034eb40fdba9a9d3f) = GAMUT_DCI_P3 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, [ADOBE_RGB_GAMMA22_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca1f855c7b4bd5f8a9cc29f3e335a9f2f4) = GAMUT_ADOBE_RGB \| TRANSFORM_FUNC_GM2_2 \| PRECISION_FULL,   [BT2020_LINEAR_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca27315309a3b866eda00f17825ee9532d) = GAMUT_BT2020 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, [BT2020_SRGB_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa63d6a3a8bb1c6c5b383cb7010f61d72) = GAMUT_BT2020 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, [BT2020_SMPTE170M_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6de02e882e01743ce5ca07a17d481930) = GAMUT_BT2020 \| TRANSFORM_FUNC_SMPTE_170M \| PRECISION_FULL, [BT2020_ST2084_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccac2e37c91fc9bd29641cf95d74aa7862c) = GAMUT_BT2020 \| TRANSFORM_FUNC_ST2084 \| PRECISION_FULL,   [BT2020_HLG_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad5b0a069ac80df8d045265e88f9b5e71) = GAMUT_BT2020 \| TRANSFORM_FUNC_HLG \| PRECISION_FULL, [BT2020_ST2084_LIMITED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaeab2d55af8e3568130cf69fa614b3c9d) = GAMUT_BT2020 \| TRANSFORM_FUNC_ST2084 \| PRESION_LIMITED } | 枚举颜色空间的类型 [更多...](_display.md#colordataspace) | -| [HDRFormat](_display.md#hdrformat) {   [NOT_SUPPORT_HDR](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566a0799ce04a1873f60ed59c3d30dcda69a) = 0, [DOLBY_VISION](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566ac43f1175d92c85033e0a85c7a14266a7) = 1, [HDR10](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566ada5b15b3c4b4cc64593452113ac1d4dc) = 2, [HLG](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566a2c6e7224778e782cbbd478e4c11282e2) = 3,   [HDR10_PLUS](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566abc6f25afdafdebb03fd137de1917389d) = 4, [HDR_VIVID](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566a84318c5a162e5b9b822e38e675117e42) = 5 } | 枚举HDR格式 [更多...](_display.md#hdrformat) | -| [HDRMetadataKey](_display.md#hdrmetadatakey) {   [MATAKEY_RED_PRIMARY_X](_display.md#gga5d7d90acb5c568e62a02b18446f37789a92c0f5eaba344bee22c657040b606fd3) = 0, [MATAKEY_RED_PRIMARY_Y](_display.md#gga5d7d90acb5c568e62a02b18446f37789a405841a4999556bd36281870d579dc7e) = 1, [MATAKEY_GREEN_PRIMARY_X](_display.md#gga5d7d90acb5c568e62a02b18446f37789a08f31a74e8df3253c6326879818dfe1b) = 2, [MATAKEY_GREEN_PRIMARY_Y](_display.md#gga5d7d90acb5c568e62a02b18446f37789a19db3eede73e96c6a25dc4d31e5846e1) = 3,   [MATAKEY_BLUE_PRIMARY_X](_display.md#gga5d7d90acb5c568e62a02b18446f37789a23e7112a9c4aaf15bc2a529344a61939) = 4, [MATAKEY_BLUE_PRIMARY_Y](_display.md#gga5d7d90acb5c568e62a02b18446f37789a5a34485b5884d8bd86273750b9d47b0b) = 5, [MATAKEY_WHITE_PRIMARY_X](_display.md#gga5d7d90acb5c568e62a02b18446f37789ac12237b3de1eee6176c690e7f14ab339) = 6, [MATAKEY_WHITE_PRIMARY_Y](_display.md#gga5d7d90acb5c568e62a02b18446f37789a331c8b69a7d9484c9eaea70e78a34921) = 7,   [MATAKEY_MAX_LUMINANCE](_display.md#gga5d7d90acb5c568e62a02b18446f37789ac27053151e1fa76e58dc3281d843ad74) = 8, [MATAKEY_MIN_LUMINANCE](_display.md#gga5d7d90acb5c568e62a02b18446f37789a345f5cea142c7357e0b9de5ccfc86bed) = 9, [MATAKEY_MAX_CONTENT_LIGHT_LEVEL](_display.md#gga5d7d90acb5c568e62a02b18446f37789a9897f53fcb179afc9c90f8c7ca0ac254) = 10, [MATAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL](_display.md#gga5d7d90acb5c568e62a02b18446f37789a8d285ea7b6246f62b7e7a65e5a870bfe) = 11,   [MATAKEY_HDR10_PLUS](_display.md#gga5d7d90acb5c568e62a02b18446f37789a89ef9c02321a94080f185c7fea3f6d1d) = 12, [MATAKEY_HDR_VIVID](_display.md#gga5d7d90acb5c568e62a02b18446f37789ac99c4612b3aee2bfede23070fe32ac7e) = 13 } | 枚举HDR元数据关键字 [更多...](_display.md#hdrmetadatakey) | -| [PresentTimestampType](_display.md#presenttimestamptype) { [HARDWARE_DISPLAY_PTS_UNSUPPORTED](_display.md#ggabdba71665ea5ba4004ac1a9fbeb505f3ad6e47ab1a80ab94cccb5e465610ff45d) = 0, [HARDWARE_DISPLAY_PTS_DELAY](_display.md#ggabdba71665ea5ba4004ac1a9fbeb505f3a5c06391b9583b69d37c7a0518dd10f09) = 1 << 0, [HARDWARE_DISPLAY_PTS_TIMESTAMP](_display.md#ggabdba71665ea5ba4004ac1a9fbeb505f3afd872c457c9dade672aaaec5de622ff7) = 1 << 1 } | 上屏时间戳类型枚举值 [更多...](_display.md#presenttimestamptype) | + | 枚举名称 | 枚举 | 描述 | +| -------- | -------- | -------- | +| [DispErrCode](_display.md#disperrcode) { DISPLAY_SUCCESS = 0, DISPLAY_FAILURE = -1, DISPLAY_FD_ERR = -2, DISPLAY_PARAM_ERR = -3,   DISPLAY_NULL_PTR = -4, DISPLAY_NOT_SUPPORT = -5, DISPLAY_NOMEM = -6, DISPLAY_SYS_BUSY = -7,   DISPLAY_NOT_PERM = -8 } | [DispErrCode](_display.md#disperrcode) {   [DISPLAY_SUCCESS](_display.md#gga12a925dadef7573cd74d63d06824f9b0a188daac95e787159d50ff9546536035b) = 0, [DISPLAY_FAILURE](_display.md#gga12a925dadef7573cd74d63d06824f9b0afdffc20c71fb142c3e7f01323a31d742) = -1, [DISPLAY_FD_ERR](_display.md#gga12a925dadef7573cd74d63d06824f9b0a5bdb0a826a652f51e6c82685ae08ede8) = -2, [DISPLAY_PARAM_ERR](_display.md#gga12a925dadef7573cd74d63d06824f9b0a330e09be303bc7056f6115830bbd2370) = -3,   [DISPLAY_NULL_PTR](_display.md#gga12a925dadef7573cd74d63d06824f9b0a82fbcdba6c699059bc04b491c92424ac) = -4, [DISPLAY_NOT_SUPPORT](_display.md#gga12a925dadef7573cd74d63d06824f9b0a950a7bc41e893450315da9e73208f8c2) = -5, [DISPLAY_NOMEM](_display.md#gga12a925dadef7573cd74d63d06824f9b0af186ab511133fa3280c54d2c44358882) = -6, [DISPLAY_SYS_BUSY](_display.md#gga12a925dadef7573cd74d63d06824f9b0ac11b678fc04745ff4d91f4398b83c427) = -7,   [DISPLAY_NOT_PERM](_display.md#gga12a925dadef7573cd74d63d06824f9b0ad133674b9f3b857a12791479aaf58cf8) = -8 } | 返回值类型定义。 [更多...](_display.md#disperrcode) | +| [LayerType](_display.md#layertype) { LAYER_TYPE_GRAPHIC, LAYER_TYPE_OVERLAY, LAYER_TYPE_SDIEBAND, LAYER_TYPE_CURSOR,   LAYER_TYPE_BUTT } | [LayerType](_display.md#layertype) {   [LAYER_TYPE_GRAPHIC](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4a6ef157ea82a5d4c1715b3cddcca38d6f), [LAYER_TYPE_OVERLAY](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4ac33e449941bc0e4d039b4b5bed853a78), [LAYER_TYPE_SDIEBAND](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4a0aef2c460a206fa00c742219d65be477), [LAYER_TYPE_CURSOR](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4a44b3a657e6bf4f1f5709c03a94a11019),   [LAYER_TYPE_BUTT](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4acd813c5ad9a2be97c85a97d4bdf1cb57) } | 图层类型定义。 [更多...](_display.md#layertype) | +| { HBM_USE_CPU_READ = (1 << 0), HBM_USE_CPU_WRITE = (1 << 1), HBM_USE_MEM_MMZ = (1 << 2), HBM_USE_MEM_DMA = (1 << 3),   HBM_USE_MEM_SHARE = (1 << 4), HBM_USE_MEM_MMZ_CACHE = (1 << 5), HBM_USE_MEM_FB = (1 << 6), HBM_USE_ASSIGN_SIZE = (1 << 7) } | {[HBM_USE_CPU_READ](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a9bb139ab93fcaceac48e52bac1be53dc) = (1 << 0), [HBM_USE_CPU_WRITE](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a29217cbafbb6666fe1e8d96f3c368a4d) = (1 << 1), [HBM_USE_MEM_MMZ](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a9126b10e53b48304a5d9c351b1ace6d4) = (1 << 2), [HBM_USE_MEM_DMA](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7af7d33fd75c60375bef211629ff02d8c4) = (1 << 3),   [HBM_USE_MEM_SHARE](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a16042b501b66017d663c3f5bcd24a20f) = (1 << 4), [HBM_USE_MEM_MMZ_CACHE](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a553664654199ebde6733a830cbe0a369) = (1 << 5), [HBM_USE_MEM_FB](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a110b955655861ef11167e907be5f18fc) = (1 << 6), [HBM_USE_ASSIGN_SIZE](_display.md#ggadf764cbdea00d65edcd07bb9953ad2b7a44d0fd6e88dbbe9e78c44cc8e5bddc22) = (1 << 7) } | 缓冲区定义。[更多...](_display.md#anonymous-enum) | +| [PixelFormat](_display.md#pixelformat) { PIXEL_FMT_CLUT8 = 0, PIXEL_FMT_CLUT1, PIXEL_FMT_CLUT4, PIXEL_FMT_RGB_565,   PIXEL_FMT_RGBA_5658, PIXEL_FMT_RGBX_4444, PIXEL_FMT_RGBA_4444, PIXEL_FMT_RGB_444,   PIXEL_FMT_RGBX_5551, PIXEL_FMT_RGBA_5551, PIXEL_FMT_RGB_555, PIXEL_FMT_RGBX_8888,   PIXEL_FMT_RGBA_8888, PIXEL_FMT_RGB_888, PIXEL_FMT_BGR_565, PIXEL_FMT_BGRX_4444,   PIXEL_FMT_BGRA_4444, PIXEL_FMT_BGRX_5551, PIXEL_FMT_BGRA_5551, PIXEL_FMT_BGRX_8888,   PIXEL_FMT_BGRA_8888, PIXEL_FMT_YUV_422_I, PIXEL_FMT_YCBCR_422_SP, PIXEL_FMT_YCRCB_422_SP,   PIXEL_FMT_YCBCR_420_SP, PIXEL_FMT_YCRCB_420_SP, PIXEL_FMT_YCBCR_422_P, PIXEL_FMT_YCRCB_422_P,   PIXEL_FMT_YCBCR_420_P, PIXEL_FMT_YCRCB_420_P, PIXEL_FMT_YUYV_422_PKG, PIXEL_FMT_UYVY_422_PKG,   PIXEL_FMT_YVYU_422_PKG, PIXEL_FMT_VYUY_422_PKG, PIXEL_FMT_VENDER_MASK = 0X7FFF0000, PIXEL_FMT_BUTT = 0X7FFFFFFF } | [PixelFormat](_display.md#pixelformat) {   [PIXEL_FMT_CLUT8](_display.md#gga60883d4958a60b91661e97027a85072aabdea255b6e5f2920977f11d21445b34a) = 0, [PIXEL_FMT_CLUT1](_display.md#gga60883d4958a60b91661e97027a85072aa5740c66a546552c0c5a4bc06850af584), [PIXEL_FMT_CLUT4](_display.md#gga60883d4958a60b91661e97027a85072aabde13e8f357e39981973929309bb0e0e), [PIXEL_FMT_RGB_565](_display.md#gga60883d4958a60b91661e97027a85072aa5fae320872be3ffdda0d371cec048ec6),   [PIXEL_FMT_RGBA_5658](_display.md#gga60883d4958a60b91661e97027a85072aa4c16147153b63d7ba71b257111afdd62), [PIXEL_FMT_RGBX_4444](_display.md#gga60883d4958a60b91661e97027a85072aaa479ac0d983fde9b4f7f0e1a3b3e230f), [PIXEL_FMT_RGBA_4444](_display.md#gga60883d4958a60b91661e97027a85072aacbb91256e8c45a51410a9f6caae2d04c), [PIXEL_FMT_RGB_444](_display.md#gga60883d4958a60b91661e97027a85072aa7d18a83da06902c104208031ed487942),   [PIXEL_FMT_RGBX_5551](_display.md#gga60883d4958a60b91661e97027a85072aa85e5dd1a0e547c0031baffd02abb31a0), [PIXEL_FMT_RGBA_5551](_display.md#gga60883d4958a60b91661e97027a85072aadc1387526a271d8c6db7729de06474b1), [PIXEL_FMT_RGB_555](_display.md#gga60883d4958a60b91661e97027a85072aa720a429fa57133f6e27ef8c8fa1c404a), [PIXEL_FMT_RGBX_8888](_display.md#gga60883d4958a60b91661e97027a85072aa24a7181b7fb4019e7c19739bd9b65ff0),   [PIXEL_FMT_RGBA_8888](_display.md#gga60883d4958a60b91661e97027a85072aa90b462672221691ed66cacb07dd2e05f), [PIXEL_FMT_RGB_888](_display.md#gga60883d4958a60b91661e97027a85072aa7ff77397bf2cf52b4614a46264f8ce01), [PIXEL_FMT_BGR_565](_display.md#gga60883d4958a60b91661e97027a85072aaec581b908c291e2bd0155e25169f9629), [PIXEL_FMT_BGRX_4444](_display.md#gga60883d4958a60b91661e97027a85072aa6b5a7b35e00fc25146de0c9bf88b0230),   [PIXEL_FMT_BGRA_4444](_display.md#gga60883d4958a60b91661e97027a85072aa2f3d4ada099b2e8d84ec4501fbc8bed9), [PIXEL_FMT_BGRX_5551](_display.md#gga60883d4958a60b91661e97027a85072aaaf1a20dc0a597258cfe6aca806a8e0de), [PIXEL_FMT_BGRA_5551](_display.md#gga60883d4958a60b91661e97027a85072aa2319d4a75dae0b56776fa63d525e308b), [PIXEL_FMT_BGRX_8888](_display.md#gga60883d4958a60b91661e97027a85072aa1b19279f89c8cfb60e7d77ce23cd5f43),   [PIXEL_FMT_BGRA_8888](_display.md#gga60883d4958a60b91661e97027a85072aaeb31c670120a1fbc96a0e0887997fe16), [PIXEL_FMT_YUV_422_I](_display.md#gga60883d4958a60b91661e97027a85072aac73c2a84907a53ed95a329007b5c8992), [PIXEL_FMT_YCBCR_422_SP](_display.md#gga60883d4958a60b91661e97027a85072aabdf1224848278508479ce97f637dd711), [PIXEL_FMT_YCRCB_422_SP](_display.md#gga60883d4958a60b91661e97027a85072aa8bf97d66e26b3aad7c83dfa70e2bc451),   [PIXEL_FMT_YCBCR_420_SP](_display.md#gga60883d4958a60b91661e97027a85072aa0d1db50eb492f9073abdd2d662c56396), [PIXEL_FMT_YCRCB_420_SP](_display.md#gga60883d4958a60b91661e97027a85072aa1fa43c8a197d5c974a35b8bf02ab386e), [PIXEL_FMT_YCBCR_422_P](_display.md#gga60883d4958a60b91661e97027a85072aaa2fe085e63428ea76e1d975175001dc6), [PIXEL_FMT_YCRCB_422_P](_display.md#gga60883d4958a60b91661e97027a85072aab04eb6e1d940e42f3b4cc20c0a44c4ee),   [PIXEL_FMT_YCBCR_420_P](_display.md#gga60883d4958a60b91661e97027a85072aa3d80e785bed28e2b3f5c7df563500962), [PIXEL_FMT_YCRCB_420_P](_display.md#gga60883d4958a60b91661e97027a85072aa3dc5a0a5ad2f21218b446c477277210a), [PIXEL_FMT_YUYV_422_PKG](_display.md#gga60883d4958a60b91661e97027a85072aa3980def5b133584bdb2982a71f07798e), [PIXEL_FMT_UYVY_422_PKG](_display.md#gga60883d4958a60b91661e97027a85072aadfd69bd5b421aad5bdd39d5f33317197),   [PIXEL_FMT_YVYU_422_PKG](_display.md#gga60883d4958a60b91661e97027a85072aaf851031c336e8d9f57c940c5f52381f4), [PIXEL_FMT_VYUY_422_PKG](_display.md#gga60883d4958a60b91661e97027a85072aa317a761939335025379d382074a1541c), [PIXEL_FMT_VENDER_MASK](_display.md#gga60883d4958a60b91661e97027a85072aa67668ea067a31a8479aece94094bc547) = 0X7FFF0000, [PIXEL_FMT_BUTT](_display.md#gga60883d4958a60b91661e97027a85072aa07086bb3356c9c88959eee00c0982684) = 0X7FFFFFFF } | 像素格式类型定义。 [更多...](_display.md#pixelformat) | +| [TransformType](_display.md#transformtype) { ROTATE_NONE = 0, ROTATE_90, ROTATE_180, ROTATE_270,   ROTATE_BUTT } | [TransformType](_display.md#transformtype) {   [ROTATE_NONE](_display.md#ggaa65f3b21a9a92ff022e435a7304126d2a68e349e9d45a8eba440e2a7a3ba31ec9) = 0, [ROTATE_90](_display.md#ggaa65f3b21a9a92ff022e435a7304126d2a685062467b0c1a3164556335b467c886), [ROTATE_180](_display.md#ggaa65f3b21a9a92ff022e435a7304126d2a186263164422bb8f0eb5f7b7d195a3d1), [ROTATE_270](_display.md#ggaa65f3b21a9a92ff022e435a7304126d2a554e734d2a23790b248c5ce39816c18f),   [ROTATE_BUTT](_display.md#ggaa65f3b21a9a92ff022e435a7304126d2a9b6ff871536aeef2a8e3ce4a753988ed) } | 图层变换类型定义。 [更多...](_display.md#transformtype) | +| [BlendType](_display.md#blendtype) { BLEND_NONE = 0, BLEND_CLEAR, BLEND_SRC, BLEND_SRCOVER,   BLEND_DSTOVER, BLEND_SRCIN, BLEND_DSTIN, BLEND_SRCOUT,   BLEND_DSTOUT, BLEND_SRCATOP, BLEND_DSTATOP, BLEND_ADD,   BLEND_XOR, BLEND_DST, BLEND_AKS, BLEND_AKD,   BLEND_BUTT } | [BlendType](_display.md#blendtype) {   [BLEND_NONE](_display.md#ggaab1839ed4aab1030dfda801a51e68817ae410edb34509ca21425fe5872bbc7e2f) = 0, [BLEND_CLEAR](_display.md#ggaab1839ed4aab1030dfda801a51e68817a6330cee419fbdafc0b25f0aa068814e5), [BLEND_SRC](_display.md#ggaab1839ed4aab1030dfda801a51e68817af01da0c255cdbf67d0774a67c2d221b5), [BLEND_SRCOVER](_display.md#ggaab1839ed4aab1030dfda801a51e68817ad4c0cd02aa4b5f4849e2b29a26481dde),   [BLEND_DSTOVER](_display.md#ggaab1839ed4aab1030dfda801a51e68817a21f03e8d04a58ed0684b39eb84bdb89f), [BLEND_SRCIN](_display.md#ggaab1839ed4aab1030dfda801a51e68817a74e681f6c9027bb2cf0bda3b72d2dd9e), [BLEND_DSTIN](_display.md#ggaab1839ed4aab1030dfda801a51e68817a19f528828d75c34e18375219f113d9bb), [BLEND_SRCOUT](_display.md#ggaab1839ed4aab1030dfda801a51e68817a404e05a118462520e878c23f89808199),   [BLEND_DSTOUT](_display.md#ggaab1839ed4aab1030dfda801a51e68817ac0dc902b4928413d367376e4c842d909), [BLEND_SRCATOP](_display.md#ggaab1839ed4aab1030dfda801a51e68817ada473c7e3bf2b1102349489416aefefc), [BLEND_DSTATOP](_display.md#ggaab1839ed4aab1030dfda801a51e68817a0129b4506a06b1a6df297bcf685f5f89), [BLEND_ADD](_display.md#ggaab1839ed4aab1030dfda801a51e68817adbdb329830e5b4d9fa2b17d5d6d7894f),   [BLEND_XOR](_display.md#ggaab1839ed4aab1030dfda801a51e68817a167c3b256e051244066d8e53cdd5529d), [BLEND_DST](_display.md#ggaab1839ed4aab1030dfda801a51e68817a4686a5f30c73982d625a05db021e9b15), [BLEND_AKS](_display.md#ggaab1839ed4aab1030dfda801a51e68817ae549aa3794365df8965a2c3853c8da99), [BLEND_AKD](_display.md#ggaab1839ed4aab1030dfda801a51e68817a3cc39f12fa8bceba626a33c2d82a8bf7),   [BLEND_BUTT](_display.md#ggaab1839ed4aab1030dfda801a51e68817ad0650812ac2aa9eee228f48ac514b44a) } | 显示内存类型定义。 [更多...](_display.md#blendtype) | +| [RopType](_display.md#roptype) { ROP_BLACK = 0, ROP_NOTMERGEPEN, ROP_MASKNOTPEN, ROP_NOTCOPYPEN,   ROP_MASKPENNOT, ROP_NOT, ROP_XORPEN, ROP_NOTMASKPEN,   ROP_MASKPEN, ROP_NOTXORPEN, ROP_NOP, ROP_MERGENOTPEN,   ROP_COPYPE, ROP_MERGEPENNOT, ROP_MERGEPEN, ROP_WHITE,   ROP_BUTT } | [RopType](_display.md#roptype) {   [ROP_BLACK](_display.md#gga24265f7618fbdba53d3da4806d3097c4a6358a786ec3b81000a07b343424cee0d) = 0, [ROP_NOTMERGEPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a96c89f7b89a9048d355b4dc467224f4c), [ROP_MASKNOTPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a54d054ea6920cb88f374f70e8d41f934), [ROP_NOTCOPYPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4af4a5d5dc0f15249001cff7ef32fadef1),   [ROP_MASKPENNOT](_display.md#gga24265f7618fbdba53d3da4806d3097c4ad777eea18ba9f4e071b00aa060db00e3), [ROP_NOT](_display.md#gga24265f7618fbdba53d3da4806d3097c4afa63c8e2a6a39d50954cb6316576b4e9), [ROP_XORPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a79433776e85bb80ad0306ced0b82947c), [ROP_NOTMASKPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4ad6c4d2458a9caaa079a3e5907d636e8a),   [ROP_MASKPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a2a069e2105c5b8d4dac5d174c76eb9d4), [ROP_NOTXORPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a33c37c5ce718e876f43141dc5a028375), [ROP_NOP](_display.md#gga24265f7618fbdba53d3da4806d3097c4a2acacab882af44bba09878bd58e18695), [ROP_MERGENOTPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4afaea3c47612082914332b78ca8c331b3),   [ROP_COPYPE](_display.md#gga24265f7618fbdba53d3da4806d3097c4a91bae697f9dea25ac4d7be011958a45d), [ROP_MERGEPENNOT](_display.md#gga24265f7618fbdba53d3da4806d3097c4a3580b77320e4829da046b8739c61d6b8), [ROP_MERGEPEN](_display.md#gga24265f7618fbdba53d3da4806d3097c4a8195ac0d37e0d69b2cd71dd7362d3fd3), [ROP_WHITE](_display.md#gga24265f7618fbdba53d3da4806d3097c4a533a614b27da8a81b67ada085b018618),   [ROP_BUTT](_display.md#gga24265f7618fbdba53d3da4806d3097c4aa858b07e214a7f62625e24776806c74b) } | 硬件加速支持的ROP操作类型。 [更多...](_display.md#roptype) | +| [ColorKey](_display.md#colorkey) { CKEY_NONE = 0, CKEY_SRC, CKEY_DST, CKEY_BUTT } | [ColorKey](_display.md#colorkey) { [CKEY_NONE](_display.md#gga4fe6fb05c7ba0048b1739d88f4d4878ea629b31de258db2ce01cb757b85bd5273) = 0, [CKEY_SRC](_display.md#gga4fe6fb05c7ba0048b1739d88f4d4878ea5e3271e73dce39d0806ff8e9cba011bc), [CKEY_DST](_display.md#gga4fe6fb05c7ba0048b1739d88f4d4878ea6921c2c202aa69293467baa6c33fae05), [CKEY_BUTT](_display.md#gga4fe6fb05c7ba0048b1739d88f4d4878ea32cedc8986de2c290bf2ec193d88cabf) } | Color key操作类型定义,即硬件加速支持的Color key操作类型。 [更多...](_display.md#colorkey) | +| [MirrorType](_display.md#mirrortype) { MIRROR_NONE = 0, MIRROR_LR, MIRROR_TB, MIRROR_BUTT } | [MirrorType](_display.md#mirrortype) { [MIRROR_NONE](_display.md#gga08d32376574b541d162d8534adb78fd0a5ad82fcc8af04f92571e185b61eeb309) = 0, [MIRROR_LR](_display.md#gga08d32376574b541d162d8534adb78fd0ae35099d9fd28c2974661bcce36a9ea5c), [MIRROR_TB](_display.md#gga08d32376574b541d162d8534adb78fd0afd82e59546a645fd29bc779c50bfa733), [MIRROR_BUTT](_display.md#gga08d32376574b541d162d8534adb78fd0ad9e357a2c2f7dc0e3ca5a351ec457410) } | 硬件加速支持的镜像操作类型定义 [更多...](_display.md#mirrortype) | +| [Connection](_display.md#connection) { CON_INVALID = 0, CONNECTED, DISCONNECTED } | [Connection](_display.md#connection) { [CON_INVALID](_display.md#ggab0845c0c8d309ee865c78b095b00e671ab5c8a92e6af2e63e769dd8f711564760) = 0, [CONNECTED](_display.md#ggab0845c0c8d309ee865c78b095b00e671a7a691a2430ec26878897b5fbc9c22a4c), [DISCONNECTED](_display.md#ggab0845c0c8d309ee865c78b095b00e671acdaad1112073e3e2ea032424c38c34e1) } | 热插拔连接类型定义 [更多...](_display.md#connection) | +| [InterfaceType](_display.md#interfacetype) { DISP_INTF_HDMI = 0, DISP_INTF_LCD, DISP_INTF_BT1120, DISP_INTF_BT656,   DISP_INTF_YPBPR, DISP_INTF_RGB, DISP_INTF_CVBS, DISP_INTF_SVIDEO,   DISP_INTF_VGA, DISP_INTF_MIPI, DISP_INTF_PANEL, DISP_INTF_BUTT } | [InterfaceType](_display.md#interfacetype) {   [DISP_INTF_HDMI](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da717f9ae7960ba280c6c6b8822c6d8b66) = 0, [DISP_INTF_LCD](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da210dbbea7e5c30b693515bba570474d4), [DISP_INTF_BT1120](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da89a4e456ceffa55cb93b2c6f4792c96b), [DISP_INTF_BT656](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9daf23a0b7607d3fdc7eac791d62c5f9cd5),   [DISP_INTF_YPBPR](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da54a83297ab61376574854e804a6158e1), [DISP_INTF_RGB](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da83ef625db890ee1ddb4e874d6155405f), [DISP_INTF_CVBS](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9dabf3991ede75cb3bb454372174d63ec29), [DISP_INTF_SVIDEO](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9daad740e6f901f40965d2824415fcb9041),   [DISP_INTF_VGA](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da5db1f365e675d992f47ce797339beff5), [DISP_INTF_MIPI](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da5b9c7382dfdcc029e467c6339bf90915), [DISP_INTF_PANEL](_display.md#ggaf1ef2c97e255bd7f21d3b7614b283d9da4d64c32b687840c7e08e28a2892ac222), [DISP_INTF_BUTT](_display.md#p106611424171011) } | 枚举接口类型。 [更多...](_display.md#interfacetype) | +| [DispPowerStatus](_display.md#disppowerstatus) { POWER_STATUS_ON, POWER_STATUS_STANDBY, POWER_STATUS_SUSPEND, POWER_STATUS_OFF,   POWER_STATUS_BUTT } | [DispPowerStatus](_display.md#disppowerstatus) {   [POWER_STATUS_ON](_display.md#gga0f3c8af6e9d40730b0d2e0fbbf8e627da89e258c21283c662af2145bd3f9fc9a0), [POWER_STATUS_STANDBY](_display.md#gga0f3c8af6e9d40730b0d2e0fbbf8e627da604748a7de21aa992c1f72c252fc77a7), [POWER_STATUS_SUSPEND](_display.md#gga0f3c8af6e9d40730b0d2e0fbbf8e627da5605db047fd50c64fa0a13d8e558d479), [POWER_STATUS_OFF](_display.md#gga0f3c8af6e9d40730b0d2e0fbbf8e627daddd660122faa920f2adcd81e83d22c85),   [POWER_STATUS_BUTT](_display.md#gga0f3c8af6e9d40730b0d2e0fbbf8e627dad1f590a00c02d7335bfc24edbea92037) } | 枚举显示状态 [更多...](_display.md#disppowerstatus) | +| [CompositionType](_display.md#compositiontype) { COMPOSITION_CLIENT, COMPOSITION_DEVICE, COMPOSITION_CURSOR, COMPOSITION_VIDEO,   COMPOSITION_DEVICE_CLEAR, COMPOSITION_CLIENT_CLEAR, COMPOSITION_TUNNEL, COMPOSITION_BUTT } | [CompositionType](_display.md#compositiontype) {   [COMPOSITION_CLIENT](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5afc7ab4757f19ed87ea6d1603478edbe8), [COMPOSITION_DEVICE](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5aa51390e0da602171f2d042a94c6b75bf), [COMPOSITION_CURSOR](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5a663feec453d4509980f3bb34f641303b), [COMPOSITION_VIDEO](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5a89ea30239d366a6968c7dff429a99aa9),   [COMPOSITION_DEVICE_CLEAR](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5a05f5ab2a5da295c0fdc7e19e9a121f3e), [COMPOSITION_CLIENT_CLEAR](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5a7c1535ef8d388f878fae7c722d69855e), [COMPOSITION_TUNNEL](_display.md#ggae5d7b642670cf3dc6654131dfa115fe5a400576aea4b15e011ddd21748d16f9ca), [COMPOSITION_BUTT](_display.md#p488974221219) } | 枚举特殊层的组合类型。 [更多...](_display.md#compositiontype) | +| [ColorGamut](_display.md#colorgamut) { COLOR_GAMUT_INVALID = -1, COLOR_GAMUT_NATIVE = 0, COLOR_GAMUT_SATNDARD_BT601 = 1, COLOR_GAMUT_STANDARD_BT709 = 2,   COLOR_GAMUT_DCI_P3 = 3, COLOR_GAMUT_SRGB = 4, COLOR_GAMUT_ADOBE_RGB = 5, COLOR_GAMUT_DISPLAY_P3 = 6,   COLOR_GAMUT_BT2020 = 7, COLOR_GAMUT_BT2100_PQ = 8, COLOR_GAMUT_BT2100_HLG = 9, COLOR_GAMUT_DISPLAY_BT2020 = 10 } | [ColorGamut](_display.md#colorgamut) {   [COLOR_GAMUT_INVALID](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a7d7d95bebc0ddb4d10da05b449bab1bf) = -1, [COLOR_GAMUT_NATIVE](_display.md#gga7e865f6dbae09a004be2949b473fd7c3af0e1dba48215d4d19bd9a3536a736cdb) = 0, [COLOR_GAMUT_SATNDARD_BT601](_display.md#gga7e865f6dbae09a004be2949b473fd7c3affa91ab208128bec9b981e7020bcbfa9) = 1, [COLOR_GAMUT_STANDARD_BT709](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a248480b6ae7ad6c5327dd7cb5cfd0a85) = 2,   [COLOR_GAMUT_DCI_P3](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a98eb540d5a93ab3ad4256907eec89c4e) = 3, [COLOR_GAMUT_SRGB](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a8327e3fc0a79c9935dd9279c10c841c5) = 4, [COLOR_GAMUT_ADOBE_RGB](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a3377a7df82b495c65f3f7ab2b1655100) = 5, [COLOR_GAMUT_DISPLAY_P3](_display.md#gga7e865f6dbae09a004be2949b473fd7c3ad79cdc9f86f3b581453c523a03a876d3) = 6,   [COLOR_GAMUT_BT2020](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a79ff774719c5b83287b298d39ee274f3) = 7, [COLOR_GAMUT_BT2100_PQ](_display.md#gga7e865f6dbae09a004be2949b473fd7c3aa8191f5fca2ad767fa56767b41f4dec5) = 8, [COLOR_GAMUT_BT2100_HLG](_display.md#gga7e865f6dbae09a004be2949b473fd7c3ad4f624c7b578dacaa732cd9556724797) = 9, [COLOR_GAMUT_DISPLAY_BT2020](_display.md#gga7e865f6dbae09a004be2949b473fd7c3a5d07e2f0d8e570c5e16ccff05e12cb29) = 10 } | 色域类型枚举值 [更多...](_display.md#colorgamut) | +| [GamutMap](_display.md#gamutmap) { GAMUT_MAP_CONSTANT = 0, GAMUT_MAP_EXPANSION = 1, GAMUT_MAP_HDR_CONSTANT = 2, GAMUT_MAP_HDR_EXPANSION = 3 } | [GamutMap](_display.md#gamutmap) { [GAMUT_MAP_CONSTANT](_display.md#gga5700b58f1bc340e309a0962101ad7fa4acdf75e246ac2f53f37ef9e11b5561535) = 0, [GAMUT_MAP_EXPANSION](_display.md#gga5700b58f1bc340e309a0962101ad7fa4af3824abcccbd8d85d28e34149e9aaa33) = 1, [GAMUT_MAP_HDR_CONSTANT](_display.md#gga5700b58f1bc340e309a0962101ad7fa4afd4e1cb10b8032108ab070925b73e270) = 2, [GAMUT_MAP_HDR_EXPANSION](_display.md#gga5700b58f1bc340e309a0962101ad7fa4ad0f9722a0efd51910ac5f2f63fd86a10) = 3 } | 枚举色域的映射类型 [更多...](_display.md#gamutmap) | +| [ColorDataSpace](_display.md#colordataspace) {   COLOR_DATA_SPACE_UNKNOWN = 0, GAMUT_BT601 = 0x00000001, GAMUT_BT709 = 0x00000002, GAMUT_DCI_P3 = 0x00000003,   GAMUT_SRGB = 0x00000004, GAMUT_ADOBE_RGB = 0x00000005, GAMUT_DISPLAY_P3 = 0x00000006, GAMUT_BT2020 = 0x00000007,   GAMUT_BT2100_PQ = 0x00000008, GAMUT_BT2100_HLG = 0x00000009, GAMUT_DISPLAY_BT2020 = 0x0000000a, TRANSFORM_FUNC_UNSPECIFIED = 0x00000100,   TRANSFORM_FUNC_LINEAR = 0x00000200, TRANSFORM_FUNC_SRGB = 0x00000300, TRANSFORM_FUNC_SMPTE_170M = 0x00000400, TRANSFORM_FUNC_GM2_2 = 0x00000500,   TRANSFORM_FUNC_GM2_6 = 0x00000600, TRANSFORM_FUNC_GM2_8 = 0x00000700, TRANSFORM_FUNC_ST2084 = 0x00000800, TRANSFORM_FUNC_HLG = 0x00000900,   PRECISION_UNSPECIFIED = 0x00010000, PRECISION_FULL = 0x00020000, PRESION_LIMITED = 0x00030000, PRESION_EXTENDED = 0x00040000,   BT601_SMPTE170M_FULL = GAMUT_BT601 \| TRANSFORM_FUNC_SMPTE_170M \| PRECISION_FULL, BT601_SMPTE170M_LIMITED = GAMUT_BT601 \| TRANSFORM_FUNC_SMPTE_170M \| PRESION_LIMITED, BT709_LINEAR_FULL = GAMUT_BT709 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, BT709_LINEAR_EXTENDED = GAMUT_BT709 \| TRANSFORM_FUNC_LINEAR \| PRESION_EXTENDED,   BT709_SRGB_FULL = GAMUT_BT709 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, BT709_SRGB_EXTENDED = GAMUT_BT709 \| TRANSFORM_FUNC_SRGB \| PRESION_EXTENDED, BT709_SMPTE170M_LIMITED = GAMUT_BT709 \| TRANSFORM_FUNC_SMPTE_170M \| PRESION_LIMITED, DCI_P3_LINEAR_FULL = GAMUT_DCI_P3 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL,   DCI_P3_GAMMA26_FULL = GAMUT_DCI_P3 \| TRANSFORM_FUNC_GM2_6 \| PRECISION_FULL, DISPLAY_P3_LINEAR_FULL = GAMUT_DISPLAY_P3 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, DCI_P3_SRGB_FULL = GAMUT_DCI_P3 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, ADOBE_RGB_GAMMA22_FULL = GAMUT_ADOBE_RGB \| TRANSFORM_FUNC_GM2_2 \| PRECISION_FULL,   BT2020_LINEAR_FULL = GAMUT_BT2020 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, BT2020_SRGB_FULL = GAMUT_BT2020 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, BT2020_SMPTE170M_FULL = GAMUT_BT2020 \| TRANSFORM_FUNC_SMPTE_170M \| PRECISION_FULL, BT2020_ST2084_FULL = GAMUT_BT2020 \| TRANSFORM_FUNC_ST2084 \| PRECISION_FULL,   BT2020_HLG_FULL = GAMUT_BT2020 \| TRANSFORM_FUNC_HLG \| PRECISION_FULL, BT2020_ST2084_LIMITED = GAMUT_BT2020 \| TRANSFORM_FUNC_ST2084 \| PRESION_LIMITED } | [ColorDataSpace](_display.md#colordataspace) {   [COLOR_DATA_SPACE_UNKNOWN](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca5a0aa62f13715cbdf2b5ec1e26e76225) = 0, [GAMUT_BT601](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad778a31f4c8e3431f5240f98c70f577d) = 0x00000001, [GAMUT_BT709](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca7d346fa865c56c76f62c7f6ab92511ec) = 0x00000002, [GAMUT_DCI_P3](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccae29ccb674444c3f81f0a46361d7ce63c) = 0x00000003,   [GAMUT_SRGB](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca16c4c57e66f86b20269db0d5d6382ded) = 0x00000004, [GAMUT_ADOBE_RGB](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca0a0a0c633a41a5f30596a5168a3267ca) = 0x00000005, [GAMUT_DISPLAY_P3](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca3d4a0608dd5c682fc020bfc68a425e15) = 0x00000006, [GAMUT_BT2020](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa6dc448a5d0d16a7d2610edb29fff407) = 0x00000007,   [GAMUT_BT2100_PQ](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6b100b6876c7e77106df92b9c8cf7d2b) = 0x00000008, [GAMUT_BT2100_HLG](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca53a60a5ed93129597841bde263e9a798) = 0x00000009, [GAMUT_DISPLAY_BT2020](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa66ffaf12ec59488cccbd2170cc3d2c8) = 0x0000000a, [TRANSFORM_FUNC_UNSPECIFIED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca0fe652843eafbf7a93b645a71342dce0) = 0x00000100,   [TRANSFORM_FUNC_LINEAR](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa2e1f70b023dd5ae3a31771217d958cc) = 0x00000200, [TRANSFORM_FUNC_SRGB](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca47dd20703e8d8135aedfb687b75ef66c) = 0x00000300, [TRANSFORM_FUNC_SMPTE_170M](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab031ec808cc46bee79d2c96460615206) = 0x00000400, [TRANSFORM_FUNC_GM2_2](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca078b8dad4e1eb6720c81c841b3f417d9) = 0x00000500,   [TRANSFORM_FUNC_GM2_6](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad6abe514be2fa6c57b2aec5a5eb6fc7d) = 0x00000600, [TRANSFORM_FUNC_GM2_8](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca850b419cb0075b5bd44df5708fc9c87f) = 0x00000700, [TRANSFORM_FUNC_ST2084](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca24a6d830fca211b067260df9583a1b2b) = 0x00000800, [TRANSFORM_FUNC_HLG](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca4a6d68c7a2219cada2edf0e9d7bc46f8) = 0x00000900,   [PRECISION_UNSPECIFIED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca77342396f1154be94079d0d76fc5e829) = 0x00010000, [PRECISION_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca200541efc2ee0d21e37a7200e7a08a54) = 0x00020000, [PRESION_LIMITED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab51307e81936be84b6504a98197fb1ee) = 0x00030000, [PRESION_EXTENDED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccafd6ac339ebbdbbdd7fee540a6fad5ec2) = 0x00040000,   [BT601_SMPTE170M_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccab640f36320dafb19066dfcaccc836999) = GAMUT_BT601 \| TRANSFORM_FUNC_SMPTE_170M \| PRECISION_FULL, [BT601_SMPTE170M_LIMITED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6cd475c6421764e5d71d71f1de75d638) = GAMUT_BT601 \| TRANSFORM_FUNC_SMPTE_170M \| PRESION_LIMITED, [BT709_LINEAR_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad2bc96da52c18ef9bb26320507747176) = GAMUT_BT709 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, [BT709_LINEAR_EXTENDED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca03631fd75bc6ec7280ce2c68a129e4fd) = GAMUT_BT709 \| TRANSFORM_FUNC_LINEAR \| PRESION_EXTENDED,   [BT709_SRGB_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaaffba49d9c1c335387cd8153becad65a) = GAMUT_BT709 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, [BT709_SRGB_EXTENDED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca049878481c3ed46dbd6cfea995e2f0d5) = GAMUT_BT709 \| TRANSFORM_FUNC_SRGB \| PRESION_EXTENDED, [BT709_SMPTE170M_LIMITED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca14381e6d202b6bda3c90264b05d31838) = GAMUT_BT709 \| TRANSFORM_FUNC_SMPTE_170M \| PRESION_LIMITED, [DCI_P3_LINEAR_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad03af85a7ff4c1069a97bfb603f7d694) = GAMUT_DCI_P3 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL,   [DCI_P3_GAMMA26_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca9de9b32e0e7c172c77922af8904ba3a2) = GAMUT_DCI_P3 \| TRANSFORM_FUNC_GM2_6 \| PRECISION_FULL, [DISPLAY_P3_LINEAR_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca8bcb3a4ed6039d158b9c32ba99fceaff) = GAMUT_DISPLAY_P3 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, [DCI_P3_SRGB_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca2fac97f61868100034eb40fdba9a9d3f) = GAMUT_DCI_P3 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, [ADOBE_RGB_GAMMA22_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca1f855c7b4bd5f8a9cc29f3e335a9f2f4) = GAMUT_ADOBE_RGB \| TRANSFORM_FUNC_GM2_2 \| PRECISION_FULL,   [BT2020_LINEAR_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca27315309a3b866eda00f17825ee9532d) = GAMUT_BT2020 \| TRANSFORM_FUNC_LINEAR \| PRECISION_FULL, [BT2020_SRGB_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaa63d6a3a8bb1c6c5b383cb7010f61d72) = GAMUT_BT2020 \| TRANSFORM_FUNC_SRGB \| PRECISION_FULL, [BT2020_SMPTE170M_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33cca6de02e882e01743ce5ca07a17d481930) = GAMUT_BT2020 \| TRANSFORM_FUNC_SMPTE_170M \| PRECISION_FULL, [BT2020_ST2084_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccac2e37c91fc9bd29641cf95d74aa7862c) = GAMUT_BT2020 \| TRANSFORM_FUNC_ST2084 \| PRECISION_FULL,   [BT2020_HLG_FULL](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccad5b0a069ac80df8d045265e88f9b5e71) = GAMUT_BT2020 \| TRANSFORM_FUNC_HLG \| PRECISION_FULL, [BT2020_ST2084_LIMITED](_display.md#gga00fa6ca1bcfe5949dceaa3a77f8d33ccaeab2d55af8e3568130cf69fa614b3c9d) = GAMUT_BT2020 \| TRANSFORM_FUNC_ST2084 \| PRESION_LIMITED } | 枚举颜色空间的类型 [更多...](_display.md#colordataspace) | +| [HDRFormat](_display.md#hdrformat) { NOT_SUPPORT_HDR = 0, DOLBY_VISION = 1, HDR10 = 2, HLG = 3,   HDR10_PLUS = 4, HDR_VIVID = 5 } | [HDRFormat](_display.md#hdrformat) {   [NOT_SUPPORT_HDR](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566a0799ce04a1873f60ed59c3d30dcda69a) = 0, [DOLBY_VISION](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566ac43f1175d92c85033e0a85c7a14266a7) = 1, [HDR10](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566ada5b15b3c4b4cc64593452113ac1d4dc) = 2, [HLG](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566a2c6e7224778e782cbbd478e4c11282e2) = 3,   [HDR10_PLUS](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566abc6f25afdafdebb03fd137de1917389d) = 4, [HDR_VIVID](_display.md#ggabdc446aa6fa47c5dd8d1b7d87bed2566a84318c5a162e5b9b822e38e675117e42) = 5 } | 枚举HDR格式 [更多...](_display.md#hdrformat) | +| [HDRMetadataKey](_display.md#hdrmetadatakey) { MATAKEY_RED_PRIMARY_X = 0, MATAKEY_RED_PRIMARY_Y = 1, MATAKEY_GREEN_PRIMARY_X = 2, MATAKEY_GREEN_PRIMARY_Y = 3,   MATAKEY_BLUE_PRIMARY_X = 4, MATAKEY_BLUE_PRIMARY_Y = 5, MATAKEY_WHITE_PRIMARY_X = 6, MATAKEY_WHITE_PRIMARY_Y = 7,   MATAKEY_MAX_LUMINANCE = 8, MATAKEY_MIN_LUMINANCE = 9, MATAKEY_MAX_CONTENT_LIGHT_LEVEL = 10, MATAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL = 11,   MATAKEY_HDR10_PLUS = 12, MATAKEY_HDR_VIVID = 13 } | [HDRMetadataKey](_display.md#hdrmetadatakey) {   [MATAKEY_RED_PRIMARY_X](_display.md#gga5d7d90acb5c568e62a02b18446f37789a92c0f5eaba344bee22c657040b606fd3) = 0, [MATAKEY_RED_PRIMARY_Y](_display.md#gga5d7d90acb5c568e62a02b18446f37789a405841a4999556bd36281870d579dc7e) = 1, [MATAKEY_GREEN_PRIMARY_X](_display.md#gga5d7d90acb5c568e62a02b18446f37789a08f31a74e8df3253c6326879818dfe1b) = 2, [MATAKEY_GREEN_PRIMARY_Y](_display.md#gga5d7d90acb5c568e62a02b18446f37789a19db3eede73e96c6a25dc4d31e5846e1) = 3,   [MATAKEY_BLUE_PRIMARY_X](_display.md#gga5d7d90acb5c568e62a02b18446f37789a23e7112a9c4aaf15bc2a529344a61939) = 4, [MATAKEY_BLUE_PRIMARY_Y](_display.md#gga5d7d90acb5c568e62a02b18446f37789a5a34485b5884d8bd86273750b9d47b0b) = 5, [MATAKEY_WHITE_PRIMARY_X](_display.md#gga5d7d90acb5c568e62a02b18446f37789ac12237b3de1eee6176c690e7f14ab339) = 6, [MATAKEY_WHITE_PRIMARY_Y](_display.md#gga5d7d90acb5c568e62a02b18446f37789a331c8b69a7d9484c9eaea70e78a34921) = 7,   [MATAKEY_MAX_LUMINANCE](_display.md#gga5d7d90acb5c568e62a02b18446f37789ac27053151e1fa76e58dc3281d843ad74) = 8, [MATAKEY_MIN_LUMINANCE](_display.md#gga5d7d90acb5c568e62a02b18446f37789a345f5cea142c7357e0b9de5ccfc86bed) = 9, [MATAKEY_MAX_CONTENT_LIGHT_LEVEL](_display.md#gga5d7d90acb5c568e62a02b18446f37789a9897f53fcb179afc9c90f8c7ca0ac254) = 10, [MATAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL](_display.md#gga5d7d90acb5c568e62a02b18446f37789a8d285ea7b6246f62b7e7a65e5a870bfe) = 11,   [MATAKEY_HDR10_PLUS](_display.md#gga5d7d90acb5c568e62a02b18446f37789a89ef9c02321a94080f185c7fea3f6d1d) = 12, [MATAKEY_HDR_VIVID](_display.md#gga5d7d90acb5c568e62a02b18446f37789ac99c4612b3aee2bfede23070fe32ac7e) = 13 } | 枚举HDR元数据关键字 [更多...](_display.md#hdrmetadatakey) | +| [PresentTimestampType](_display.md#presenttimestamptype) { HARDWARE_DISPLAY_PTS_UNSUPPORTED = 0, HARDWARE_DISPLAY_PTS_DELAY = 1 << 0, HARDWARE_DISPLAY_PTS_TIMESTAMP = 1 << 1 } | [PresentTimestampType](_display.md#presenttimestamptype) { [HARDWARE_DISPLAY_PTS_UNSUPPORTED](_display.md#ggabdba71665ea5ba4004ac1a9fbeb505f3ad6e47ab1a80ab94cccb5e465610ff45d) = 0, [HARDWARE_DISPLAY_PTS_DELAY](_display.md#ggabdba71665ea5ba4004ac1a9fbeb505f3a5c06391b9583b69d37c7a0518dd10f09) = 1 << 0, [HARDWARE_DISPLAY_PTS_TIMESTAMP](_display.md#ggabdba71665ea5ba4004ac1a9fbeb505f3afd872c457c9dade672aaaec5de622ff7) = 1 << 1 } | 上屏时间戳类型枚举值 [更多...](_display.md#presenttimestamptype) | ## **详细描述** diff --git a/zh-cn/device-dev/api/input__type_8h.md b/zh-cn/device-dev/api/input__type_8h.md index 27bd99a605..39d177fa04 100644 --- a/zh-cn/device-dev/api/input__type_8h.md +++ b/zh-cn/device-dev/api/input__type_8h.md @@ -35,12 +35,12 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [RetStatus](_input.md#retstatus) {   [INPUT_SUCCESS](_input.md#gga85d58a5185669daa4995e332b63eba7aa4b6c3821e689826c4323c4eb759b4d3a) = 0, [INPUT_FAILURE](_input.md#gga85d58a5185669daa4995e332b63eba7aa07d986b0ee365020834af82a31dfce11) = -1, [INPUT_INVALID_PARAM](_input.md#gga85d58a5185669daa4995e332b63eba7aa5f54ab958e21a298da35c3c5c1c36d85) = -2, [INPUT_NOMEM](_input.md#gga85d58a5185669daa4995e332b63eba7aaddf6c11b0fac107e0123b83cfc4a1185) = -3,   [INPUT_NULL_PTR](_input.md#gga85d58a5185669daa4995e332b63eba7aa157cd4f4736dd1f05eb2e13dbc7123ed) = -4, [INPUT_TIMEOUT](_input.md#gga85d58a5185669daa4995e332b63eba7aabdaeb2a27983bd66ff6e24d4df255f59) = -5, [INPUT_UNSUPPORTED](_input.md#gga85d58a5185669daa4995e332b63eba7aa8978f7ee3d0ddd70f5077c21efc4a97a) = -6 } | 定义返回值类型 [更多...](_input.md#retstatus) | -| [InputDevType](_input.md#inputdevtype) {   [INDEV_TYPE_TOUCH](_input.md#ggaa8225ba155dfa1ef2c4119c832bc4dd3a621678554aac2b37ac244b80fc33da0d), [INDEV_TYPE_KEY](_input.md#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4c4c8407342021cc06a95aa13ebeaca1), [INDEV_TYPE_KEYBOARD](_input.md#ggaa8225ba155dfa1ef2c4119c832bc4dd3a3a4137efe666a3aaccf267d597879fdc), [INDEV_TYPE_MOUSE](_input.md#ggaa8225ba155dfa1ef2c4119c832bc4dd3abe68740c1d125d3d474fdadc7d31d11c),   [INDEV_TYPE_BUTTON](_input.md#ggaa8225ba155dfa1ef2c4119c832bc4dd3a2815a25dde3e56e1f8eb57f20049e8c0), [INDEV_TYPE_CROWN](_input.md#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4ef2ab6bc355e2321664709716d1d04f), [INDEV_TYPE_ENCODER](_input.md#ggaa8225ba155dfa1ef2c4119c832bc4dd3a8cd6b27ac631b9d3fa89a17ddca37291), [INDEV_TYPE_UNKNOWN](_input.md#ggaa8225ba155dfa1ef2c4119c832bc4dd3a4097247eba52062f47a1aa99414033de) } | 定义input设备类型 [更多...](_input.md#inputdevtype) | -| [PowerStatus](_input.md#powerstatus) { [INPUT_RESUME](_input.md#gga65e6bb4d942c22dba9975253b0a1d73fa5edb1acdc509659046de9cb61bd9508a), [INPUT_SUSPEND](_input.md#gga65e6bb4d942c22dba9975253b0a1d73fa2a6aab1b3d50dae2b6ba43779e185ea5), [INPUT_LOW_POWER](_input.md#gga65e6bb4d942c22dba9975253b0a1d73fa8895c64802d558830d46bcd921830e9d), [INPUT_POWER_STATUS_UNKNOWN](_input.md#gga65e6bb4d942c22dba9975253b0a1d73fa728020b31c626f749d426cbe8f0f92fe) } | 定义电源状态 [更多...](_input.md#powerstatus) | -| [CapacitanceTest](_input.md#capacitancetest) {   [BASE_TEST](_input.md#ggae96e484cfd64ea37b5b7782f57f38a21aedd31f50c79a36cc8e084d69a3fc695b), [FULL_TEST](_input.md#ggae96e484cfd64ea37b5b7782f57f38a21abfe92c879dc84b5b071899a7ec5cc41d), [MMI_TEST](_input.md#ggae96e484cfd64ea37b5b7782f57f38a21a93335d88212604ade3b0bfe7e619916f), [RUNNING_TEST](_input.md#ggae96e484cfd64ea37b5b7782f57f38a21a31afc25da895db4eaa2af6cec1d6b37c),   [TEST_TYPE_UNKNOWN](_input.md#ggae96e484cfd64ea37b5b7782f57f38a21a9d739cecefd291b39152e3815445aa20) } | 定义容值测试类型 [更多...](_input.md#capacitancetest) | +| [RetStatus](_input.md#retstatus) { INPUT_SUCCESS = 0, INPUT_FAILURE = -1, INPUT_INVALID_PARAM = -2, INPUT_NOMEM = -3,   INPUT_NULL_PTR = -4, INPUT_TIMEOUT = -5, INPUT_UNSUPPORTED = -6 } | 定义返回值类型 [更多...](_input.md#retstatus) | +| [InputDevType](_input.md#inputdevtype) { INDEV_TYPE_TOUCH, INDEV_TYPE_KEY, INDEV_TYPE_KEYBOARD, INDEV_TYPE_MOUSE,   INDEV_TYPE_BUTTON, INDEV_TYPE_CROWN, INDEV_TYPE_ENCODER, INDEV_TYPE_UNKNOWN } | 定义input设备类型 [更多...](_input.md#inputdevtype) | +| [PowerStatus](_input.md#powerstatus) { INPUT_RESUME, INPUT_SUSPEND, INPUT_LOW_POWER, INPUT_POWER_STATUS_UNKNOWN } | 定义电源状态 [更多...](_input.md#powerstatus) | +| [CapacitanceTest](_input.md#capacitancetest) { BASE_TEST, FULL_TEST, MMI_TEST, RUNNING_TEST,   TEST_TYPE_UNKNOWN } | 定义容值测试类型 [更多...](_input.md#capacitancetest) | ## **详细描述** diff --git a/zh-cn/device-dev/api/power.md b/zh-cn/device-dev/api/power.md index 2b72161fdc..b128add4a8 100644 --- a/zh-cn/device-dev/api/power.md +++ b/zh-cn/device-dev/api/power.md @@ -23,11 +23,11 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [PowerHdfCmd](#powerhdfcmd) {   [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref1240658535083931,link:zh-cn_topic_0000001348174201.xml#gga0c9f68a1cf4b1b76a8253281688a499fadb8d2fd75158645b1cd01cab62a11e48](#gga0c9f68a1cf4b1b76a8253281688a499fadb8d2fd75158645b1cd01cab62a11e48) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref575539927083931,link:zh-cn_topic_0000001348174201.xml#gga0c9f68a1cf4b1b76a8253281688a499fab1d1e95415b8a9ab070fed3200b5f1d3](#gga0c9f68a1cf4b1b76a8253281688a499fab1d1e95415b8a9ab070fed3200b5f1d3), [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref1562929411083931,link:zh-cn_topic_0000001348174201.xml#gga0c9f68a1cf4b1b76a8253281688a499fa65c754fdc432aa2a6f13c27cb97c27de](#gga0c9f68a1cf4b1b76a8253281688a499fa65c754fdc432aa2a6f13c27cb97c27de), [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref33754950083931,link:zh-cn_topic_0000001348174201.xml#gga0c9f68a1cf4b1b76a8253281688a499faa96402e649008dcafce89c7a47c6f266](#gga0c9f68a1cf4b1b76a8253281688a499faa96402e649008dcafce89c7a47c6f266),   [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref642377669083931,link:zh-cn_topic_0000001348174201.xml#gga0c9f68a1cf4b1b76a8253281688a499fa0766f8c155a9de9fc7168a498c8317da](#gga0c9f68a1cf4b1b76a8253281688a499fa0766f8c155a9de9fc7168a498c8317da), [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref1247624561083931,link:zh-cn_topic_0000001348174201.xml#gga0c9f68a1cf4b1b76a8253281688a499fa840d1fd2227dfea25fcee7217deb82ed](#gga0c9f68a1cf4b1b76a8253281688a499fa840d1fd2227dfea25fcee7217deb82ed), [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref111578637083931,link:zh-cn_topic_0000001348174201.xml#gga0c9f68a1cf4b1b76a8253281688a499fab92b7d7125239e258bd22cd1a35aba0d](#gga0c9f68a1cf4b1b76a8253281688a499fab92b7d7125239e258bd22cd1a35aba0d) } | 枚举电源命令的参数。 [更多...](#powerhdfcmd) | -| [PowerHdfCallbackCmd](#powerhdfcallbackcmd) { [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref1691232702083931,link:zh-cn_topic_0000001348174201.xml#gga4bbb7ca0dc24efe3980c39cd409b4109a6d4a3ebd4580d7303df66d5ea9ad98d1](#gga4bbb7ca0dc24efe3980c39cd409b4109a6d4a3ebd4580d7303df66d5ea9ad98d1) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref1643638329083931,link:zh-cn_topic_0000001348174201.xml#gga4bbb7ca0dc24efe3980c39cd409b4109a4d0194285647be62fe2c191cad95e72f](#gga4bbb7ca0dc24efe3980c39cd409b4109a4d0194285647be62fe2c191cad95e72f) } | 枚举电源状态回调的参数。 [更多...](#powerhdfcallbackcmd) | -| [PowerHdfState](#powerhdfstate) { [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref1420013227083931,link:zh-cn_topic_0000001348174201.xml#ggadf82dc0e2ae04729ac8fabb3e3d28ecda65e803ac3fb48fa726e326f3c63c2d83](#ggadf82dc0e2ae04729ac8fabb3e3d28ecda65e803ac3fb48fa726e326f3c63c2d83) = 0, [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref1860258815083931,link:zh-cn_topic_0000001348174201.xml#ggadf82dc0e2ae04729ac8fabb3e3d28ecda3ff8ba88da6f8947ab7c22b7825c6bb6](#ggadf82dc0e2ae04729ac8fabb3e3d28ecda3ff8ba88da6f8947ab7c22b7825c6bb6), [ERROR:Invalid link:zh-cn_topic_0000001348174201.xml#xref119525154083931,link:zh-cn_topic_0000001348174201.xml#ggadf82dc0e2ae04729ac8fabb3e3d28ecdad6137abebe4fdc59e2f0f2c84bdbe3fa](#ggadf82dc0e2ae04729ac8fabb3e3d28ecdad6137abebe4fdc59e2f0f2c84bdbe3fa) } | 枚举电源的状态。 [更多...](#powerhdfstate) | +| [PowerHdfCmd](#powerhdfcmd) {   CMD_REGISTER_CALLBCK = 0, CMD_START_SUSPEND, CMD_STOP_SUSPEND, CMD_FORCE_SUSPEND,   CMD_SUSPEND_BLOCK, CMD_SUSPEND_UNBLOCK, CMD_DUMP } | 枚举电源命令的参数。 [更多...](#powerhdfcmd) | +| [PowerHdfCallbackCmd](#powerhdfcallbackcmd) { CMD_ON_SUSPEND = 0, CMD_ON_WAKEUP } | 枚举电源状态回调的参数。 [更多...](#powerhdfcallbackcmd) | +| [PowerHdfState](#powerhdfstate) { AWAKE = 0, INACTIVE, SLEEP } | 枚举电源的状态。 [更多...](#powerhdfstate) | ### 变量 diff --git a/zh-cn/device-dev/api/sensor__type_8h.md b/zh-cn/device-dev/api/sensor__type_8h.md index a8db64b7ca..db4420ef0e 100644 --- a/zh-cn/device-dev/api/sensor__type_8h.md +++ b/zh-cn/device-dev/api/sensor__type_8h.md @@ -36,14 +36,14 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [SensorStatus](_sensor.md#sensorstatus) {   [SENSOR_SUCCESS](_sensor.md#ggaa348cf223e558076864814ee88920ceca6fe3474c6df06ef2bd1d3fb84fc57827) = 0, [SENSOR_FAILURE](_sensor.md#ggaa348cf223e558076864814ee88920cecafc02a48cdab506c10ef1c5c66600ae71) = -1, [SENSOR_NOT_SUPPORT](_sensor.md#ggaa348cf223e558076864814ee88920cecacbf62f7bd2738d9be4b81e603c4f3bd5) = -2, [SENSOR_INVALID_PARAM](_sensor.md#ggaa348cf223e558076864814ee88920ceca0728f44385b2cb32a5c01e1370e6f2d7) = -3,   [SENSOR_INVALID_SERVICE](_sensor.md#ggaa348cf223e558076864814ee88920cecaeb19761a981ab03ce5144ed0b4c7a48c) = -4, [SENSOR_NULL_PTR](_sensor.md#p431372085818) = -5 } | 定义传感器模块返回值类型。 [更多...](_sensor.md#sensorstatus) | -| [SensorTypeTag](_sensor.md#sensortypetag) {   [SENSOR_TYPE_NONE](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a3f8e3e31e6a356192f150019309925ee) = 0, [SENSOR_TYPE_ACCELEROMETER](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5abd9779b04292b5e8054485b10fccb99c) = 1, [SENSOR_TYPE_GYROSCOPE](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5adc01250dcba5642d294f74ba4d115c28) = 2, [SENSOR_TYPE_PHOTOPLETHYSMOGRAPH](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a93f36cca60373938f2410162b16b531e) = 3,   [SENSOR_TYPE_ELECTROCARDIOGRAPH](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a2d8e52264648743ae154b99eef141607) = 4, [SENSOR_TYPE_AMBIENT_LIGHT](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a717a301be1664d4cd1ea543ca0653325) = 5, [SENSOR_TYPE_MAGNETIC_FIELD](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a74438e3f4f1f8cb1e97ccebbd1096fe8) = 6, [SENSOR_TYPE_CAPACITIVE](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a3ed11be057d851a8ee1db6d946b0e69b) = 7,   [SENSOR_TYPE_BAROMETER](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5ab9ec86561c555fe323e6a45508e20ca8) = 8, [SENSOR_TYPE_TEMPERATURE](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a1931d9687ccbd0aac063417fc0d7b4f6) = 9, [SENSOR_TYPE_HALL](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a7a343ec270d2bd5b96b4748fb4300665) = 10, [SENSOR_TYPE_GESTURE](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a875d96bbe6c91eb906e47bbda4250dfe) = 11,   [SENSOR_TYPE_PROXIMITY](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a47912cab9ef79bbe4eb20538a88ce59c) = 12, [SENSOR_TYPE_HUMIDITY](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a09fbc658c0f86f34e08513ef355870f5) = 13, [SENSOR_TYPE_MEDICAL_BEGIN](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a5e792e48a4eb7b53561af8e511dba943) = 128, [SENSOR_TYPE_MEDICAL_END](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5ad53330afd8a904e115774ffc04f2e89e) = 160,   [SENSOR_TYPE_PHYSICAL_MAX](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a618cf39cdc6bac1ffe31ba2ad488ca53) = 255, [SENSOR_TYPE_ORIENTATION](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5af2ccaca19bdabe513c45c058003ed596) = 256, [SENSOR_TYPE_GRAVITY](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5ac7d364262029cc21bc865577d5288a1e) = 257, [SENSOR_TYPE_LINEAR_ACCELERATION](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a914a1f090dcc61586318fd4eb4cb1384) = 258,   [SENSOR_TYPE_ROTATION_VECTOR](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5ac407aca03c7ce72ea55e52f40477561b) = 259, [SENSOR_TYPE_AMBIENT_TEMPERATURE](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a7d9456395f361833de2ee3ef12a1af2a) = 260, [SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a492db205ab694c3954f4b46fa6a999af) = 261, [SENSOR_TYPE_GAME_ROTATION_VECTOR](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5af8302206e90774d69fb272ee50e6607b) = 262,   [SENSOR_TYPE_GYROSCOPE_UNCALIBRATED](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5ad123a39ee0525c760755a4b40e5dc638) = 263, [SENSOR_TYPE_SIGNIFICANT_MOTION](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a3a4ce3aad51d07a5475c3fb1de90ec80) = 264, [SENSOR_TYPE_PEDOMETER_DETECTION](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a443b13dc20beadc7821db8df7682cd58) = 265, [SENSOR_TYPE_PEDOMETER](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a0cef311260d7668885a937ee1ee8d5d8) = 266,   [SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a80a8adf73ab45b0eaaeb24fa3c5351f0) = 277, [SENSOR_TYPE_HEART_RATE](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a4d4febf14d8366d19661d7b1acb5ff91) = 278, [SENSOR_TYPE_DEVICE_ORIENTATION](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a23a60d20eeedd90de69b27ffa4a764ac) = 279, [SENSOR_TYPE_WEAR_DETECTION](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a0ca37fde34accc45f3065c635480a718) = 280,   [SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED](_sensor.md#ggaea6a2a57db175118e08189b73f8f3da5a730bd9013ab8fea3bbfae66f4c6a6129) = 281, [SENSOR_TYPE_MAX](_sensor.md#p876144152111) } | 定义传感器类型标识。 [更多...](_sensor.md#sensortypetag) | -| [SensorAccuracyType](_sensor.md#sensoraccuracytype) {   [SENSOR_NO_ACCURACY](_sensor.md#gga985dcd359f32f3cdfbaecb98f1f436e7a1f1bc8e9ccbc83cb0cb107a795fd85f7) = 0, [SENSOR_LOW_ACCURACY](_sensor.md#gga985dcd359f32f3cdfbaecb98f1f436e7a6c2ad64f15e8d0ba24f8b573bc0f19ed) = 1, [SENSOR_MEDIUM_ACCURACY](_sensor.md#gga985dcd359f32f3cdfbaecb98f1f436e7a9083140f63420c7b109c5ae8f009a8dd) = 2, [SENSOR_HIGH_ACCURACY](_sensor.md#gga985dcd359f32f3cdfbaecb98f1f436e7a8a8e8f15654a31f9df91bb0561f55574) = 3,   [SENSOR_MAX_ACCURACY](_sensor.md#p945419536162) } | 传感器的精度类型。 [更多...](_sensor.md#sensoraccuracytype) | -| [SensorRangeType](_sensor.md#sensorrangetype) { [SENSOR_RANGE_LEVEL1](_sensor.md#gga4b389f271110480ce20fcc0763cf6d20a8b81d07987b7a203ef04579c60c07986) = 0, [SENSOR_RANGE_LEVEL2](_sensor.md#gga4b389f271110480ce20fcc0763cf6d20a39dd36b72a88ef8bdccdddc9225e21a1) = 1, [SENSOR_RANGE_LEVEL3](_sensor.md#gga4b389f271110480ce20fcc0763cf6d20a7fee94e695411165b4e1f7b75ce5d52e) = 2, [SENSOR_RANGE_LEVEL_MAX](_sensor.md#p165901247205) } | 传感器的量程级别。 [更多...](_sensor.md#sensorrangetype) | -| [SensorModeType](_sensor.md#sensormodetype) {   [SENSOR_MODE_DEFAULT](_sensor.md#gga066f4ffeb31a1f4cb3ed357736e0afabae36be092f02cd01eb5bf1c8ae23af73d) = 0, [SENSOR_MODE_REALTIME](_sensor.md#gga066f4ffeb31a1f4cb3ed357736e0afaba5db5e8c1a702aca7ecc751532ecfa69d) = 1, [SENSOR_MODE_ON_CHANGE](_sensor.md#gga066f4ffeb31a1f4cb3ed357736e0afaba9d264027423bdee89167c3c8f4c71322) = 2, [SENSOR_MODE_ONE_SHOT](_sensor.md#gga066f4ffeb31a1f4cb3ed357736e0afabac0967e6c4ef5004fda5f26f061fec6ee) = 3,   [SENSOR_MODE_FIFO_MODE](_sensor.md#gga066f4ffeb31a1f4cb3ed357736e0afaba3f4f9b49ae7fe1fb89cd3bff398c7f0f) = 4, [SENSOR_MODE_MAX](_sensor.md#p4932820101810) } | 传感器的工作模式。 [更多...](_sensor.md#sensormodetype) | -| [SensorGroupType](_sensor.md#sensorgrouptype) { [TRADITIONAL_SENSOR_TYPE](_sensor.md#gga588325c4c22f56d09cda6e54df0d9a6ca8cc091715416b86fd2eff0a875a76c64) = 0, [MEDICAL_SENSOR_TYPE](_sensor.md#gga588325c4c22f56d09cda6e54df0d9a6cab8f846ffbc84b2a2275a88707f350a47) = 1, [SENSOR_GROUP_TYPE_MAX](_sensor.md#gga588325c4c22f56d09cda6e54df0d9a6cafdec26032d6c10626eb07a0812fe1d94) } | 枚举传感器的硬件服务组。 [更多...](_sensor.md#sensorgrouptype) | +| [SensorStatus](_sensor.md#sensorstatus) { SENSOR_SUCCESS = 0, SENSOR_FAILURE = -1, SENSOR_NOT_SUPPORT = -2, SENSOR_INVALID_PARAM = -3,   SENSOR_INVALID_SERVICE = -4, SENSOR_NULL_PTR = -5 } | 定义传感器模块返回值类型。 [更多...](_sensor.md#sensorstatus) | +| [SensorTypeTag](_sensor.md#sensortypetag) { SENSOR_TYPE_NONE = 0, SENSOR_TYPE_ACCELEROMETER = 1, SENSOR_TYPE_GYROSCOPE = 2, SENSOR_TYPE_PHOTOPLETHYSMOGRAPH = 3,   SENSOR_TYPE_ELECTROCARDIOGRAPH = 4, SENSOR_TYPE_AMBIENT_LIGHT = 5, SENSOR_TYPE_MAGNETIC_FIELD = 6, SENSOR_TYPE_CAPACITIVE = 7,   SENSOR_TYPE_BAROMETER = 8, SENSOR_TYPE_TEMPERATURE = 9, SENSOR_TYPE_HALL = 10, SENSOR_TYPE_GESTURE = 11,   SENSOR_TYPE_PROXIMITY = 12, SENSOR_TYPE_HUMIDITY = 13, SENSOR_TYPE_MEDICAL_BEGIN = 128, SENSOR_TYPE_MEDICAL_END = 160,   SENSOR_TYPE_PHYSICAL_MAX = 255, SENSOR_TYPE_ORIENTATION = 256, SENSOR_TYPE_GRAVITY = 257, SENSOR_TYPE_LINEAR_ACCELERATION = 258,   SENSOR_TYPE_ROTATION_VECTOR = 259, SENSOR_TYPE_AMBIENT_TEMPERATURE = 260, SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED = 261, SENSOR_TYPE_GAME_ROTATION_VECTOR = 262,   SENSOR_TYPE_GYROSCOPE_UNCALIBRATED = 263, SENSOR_TYPE_SIGNIFICANT_MOTION = 264, SENSOR_TYPE_PEDOMETER_DETECTION = 265, SENSOR_TYPE_PEDOMETER = 266,   SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR = 277, SENSOR_TYPE_HEART_RATE = 278, SENSOR_TYPE_DEVICE_ORIENTATION = 279, SENSOR_TYPE_WEAR_DETECTION = 280,   SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED = 281, SENSOR_TYPE_MAX } | 定义传感器类型标识。 [更多...](_sensor.md#sensortypetag) | +| [SensorAccuracyType](_sensor.md#sensoraccuracytype) { SENSOR_NO_ACCURACY = 0, SENSOR_LOW_ACCURACY = 1, SENSOR_MEDIUM_ACCURACY = 2, SENSOR_HIGH_ACCURACY = 3,   SENSOR_MAX_ACCURACY } | 传感器的精度类型。 [更多...](_sensor.md#sensoraccuracytype) | +| [SensorRangeType](_sensor.md#sensorrangetype) { SENSOR_RANGE_LEVEL1 = 0, SENSOR_RANGE_LEVEL2 = 1, SENSOR_RANGE_LEVEL3 = 2, SENSOR_RANGE_LEVEL_MAX } | 传感器的量程级别。 [更多...](_sensor.md#sensorrangetype) | +| [SensorModeType](_sensor.md#sensormodetype) { SENSOR_MODE_DEFAULT = 0, SENSOR_MODE_REALTIME = 1, SENSOR_MODE_ON_CHANGE = 2, SENSOR_MODE_ONE_SHOT = 3,   SENSOR_MODE_FIFO_MODE = 4, SENSOR_MODE_MAX } | 传感器的工作模式。 [更多...](_sensor.md#sensormodetype) | +| [SensorGroupType](_sensor.md#sensorgrouptype) { TRADITIONAL_SENSOR_TYPE = 0, MEDICAL_SENSOR_TYPE = 1, SENSOR_GROUP_TYPE_MAX } | 枚举传感器的硬件服务组。 [更多...](_sensor.md#sensorgrouptype) | ## **详细描述** diff --git a/zh-cn/device-dev/api/types_8h.md b/zh-cn/device-dev/api/types_8h.md index 18685dc8ea..195ce60dc7 100644 --- a/zh-cn/device-dev/api/types_8h.md +++ b/zh-cn/device-dev/api/types_8h.md @@ -33,19 +33,19 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [OHOS::Camera::CamRetCode](_camera.md#camretcode) : int32_t {   [OHOS::Camera::NO_ERROR](_camera.md#gga9ecee2f0e6599644dc440c9e1c553b80aac4124a539038c0eb9752f19bd41db9a) = 0, [OHOS::Camera::CAMERA_BUSY](_camera.md#gga9ecee2f0e6599644dc440c9e1c553b80a6d812337e14eb19f8afb2e70f3aad1a0) = -1, [OHOS::Camera::INSUFFICIENT_RESOURCES](_camera.md#gga9ecee2f0e6599644dc440c9e1c553b80a7250a9e68d64f0804d92f99e8cbc1e7e) = -2, [OHOS::Camera::INVALID_ARGUMENT](_camera.md#gga9ecee2f0e6599644dc440c9e1c553b80a9cfb72153a13ecf08abb34d59bec2223) = -3,   [OHOS::Camera::METHOD_NOT_SUPPORTED](_camera.md#gga9ecee2f0e6599644dc440c9e1c553b80ae66837f5eefe837cf5777083e1aaadcc) = -4, [OHOS::Camera::CAMERA_CLOSED](_camera.md#gga9ecee2f0e6599644dc440c9e1c553b80a0322e66dfb3b398ead3bd50c823415cd) = -5, [OHOS::Camera::DEVICE_ERROR](_camera.md#gga9ecee2f0e6599644dc440c9e1c553b80a2b74d8a616b4360eec8826d9810c03c0) = -6 } | HDI接口的返回值。 [更多...](_camera.md#camretcode) | -| [OHOS::Camera::ResultCallbackMode](_camera.md#resultcallbackmode) : int32_t { [OHOS::Camera::PER_FRAME](_camera.md#gga0290782009631708fe5351c54f019353a25a4a7cc14577e328d08dd1a758f784c), [OHOS::Camera::ON_CHANGED](_camera.md#gga0290782009631708fe5351c54f019353ab84abaca84197e5e75dc1210519ea37c) } | metadata的上报模式。 [更多...](_camera.md#resultcallbackmode) | -| [OHOS::Camera::OperationMode](_camera.md#operationmode) : int32_t { [OHOS::Camera::NORMAL](_camera.md#ggac397708a7aefbcf48c8a32b8af367ffda66a457d6883b55722bda11ac9a47e4dd) = 0 } | 流的使用模式。 [更多...](_camera.md#operationmode) | -| [OHOS::Camera::StreamIntent](_camera.md#streamintent) : int32_t {   [OHOS::Camera::PREVIEW](_camera.md#gga2b195a400dc0113b8185900ddc231c19a2ec888585737101c7bc133d302e4ce0a) = 0, [OHOS::Camera::VIDEO](_camera.md#gga2b195a400dc0113b8185900ddc231c19ad480442d11e56ef84ac7018df5637b6a) = 1, [OHOS::Camera::STILL_CAPTURE](_camera.md#gga2b195a400dc0113b8185900ddc231c19a5898656f053185f8a374bc35cbd4d784) = 2, [OHOS::Camera::POST_VIEW](_camera.md#gga2b195a400dc0113b8185900ddc231c19a67891a15f68cdc23c2b1bb6fdfe2d72f) = 3,   [OHOS::Camera::ANALYZE](_camera.md#gga2b195a400dc0113b8185900ddc231c19a817268e94893ff41b8a03147dfbbc94b) = 4, [OHOS::Camera::CUSTOM](_camera.md#gga2b195a400dc0113b8185900ddc231c19a4ca8b162608a384d4335d04a56ac3e72) = 5 } | 流的类型。 [更多...](_camera.md#streamintent) | -| [OHOS::Camera::EncodeType](_camera.md#encodetype) : int32_t { [OHOS::Camera::ENCODE_TYPE_NULL](_camera.md#gga57d3c5974b8119b90f6f43592bd4b1d1af72ea69717272db8b03c0d2281c2f221) = 0, [OHOS::Camera::ENCODE_TYPE_H264](_camera.md#gga57d3c5974b8119b90f6f43592bd4b1d1a6d21ce4760d97641e66c9a6a58df6105) = 1, [OHOS::Camera::ENCODE_TYPE_H265](_camera.md#gga57d3c5974b8119b90f6f43592bd4b1d1a60e25172afdb6ca5f18db408485c1cdf) = 2, [OHOS::Camera::ENCODE_TYPE_JPEG](_camera.md#gga57d3c5974b8119b90f6f43592bd4b1d1a1cf15a45d92fa0eae74c778f09d4bae7) = 3 } | 流数据的编码类型。 [更多...](_camera.md#encodetype) | -| [OHOS::Camera::StreamSupportType](_camera.md#streamsupporttype) : int32_t { [OHOS::Camera::DYNAMIC_SUPPORTED](_camera.md#gga2de5b91b51f744902c071f89d9302d56a96466427b9427c04c0a9f9a74e21b222), [OHOS::Camera::RE_CONFIGURED_REQUIRED](_camera.md#gga2de5b91b51f744902c071f89d9302d56afb9ebd5b0f7137f06e0b636247e7419e), [OHOS::Camera::NOT_SUPPORTED](_camera.md#gga2de5b91b51f744902c071f89d9302d56a5e0d17d563241a98d968bbdb5facf05e) } | 动态配置流的切换方式,使用场景参考 [IsStreamsSupported](_camera.md#isstreamssupported) 。 [更多...](_camera.md#streamsupporttype) | -| [OHOS::Camera::CameraStatus](_camera.md#camerastatus) { [OHOS::Camera::UN_AVAILABLE](_camera.md#ggac2c065c30743f0053f460a6683845dadaefabd193aca6ec50ad022c4003b079bd) = 0, [OHOS::Camera::AVAILABLE](_camera.md#ggac2c065c30743f0053f460a6683845dada41bd9156c9456c38aa47cf0b8b2486a2) = 1 } | Camera设备状态。 [更多...](_camera.md#camerastatus) | -| [OHOS::Camera::FlashlightStatus](_camera.md#flashlightstatus) : uint32_t { [OHOS::Camera::FLASHLIGHT_OFF](_camera.md#gga1a82bc94cb6ff38f7fd0dfcffab71df3a624df2112053caa6316c6ee443758d1a) = 0, [OHOS::Camera::FLASHLIGHT_ON](_camera.md#gga1a82bc94cb6ff38f7fd0dfcffab71df3a9f360d5fdf77e2f7c1c123f3ba45bc0c) = 1, [OHOS::Camera::FLASHLIGHT_UNAVAILABLE](_camera.md#gga1a82bc94cb6ff38f7fd0dfcffab71df3a7fae7a9c7a791d240f3b6f6399988e8c) = 2 } | 闪光灯状态。 [更多...](_camera.md#flashlightstatus) | -| [OHOS::Camera::CameraEvent](_camera.md#cameraevent) : uint32_t { [OHOS::Camera::CAMERA_EVENT_DEVICE_ADD](_camera.md#gga14253812c3a39d52d827589bf5e5b970a85028d1dd16bef4b3f60e9543f2c89d8) = 0, [OHOS::Camera::CAMERA_EVENT_DEVICE_RMV](_camera.md#gga14253812c3a39d52d827589bf5e5b970a715b664103cdf584fb48ed5e7c591c06) = 1 } | Camera事件。 [更多...](_camera.md#cameraevent) | -| [OHOS::Camera::ErrorType](_camera.md#errortype) : uint32_t { [OHOS::Camera::FATAL_ERROR](_camera.md#gga4d1b650185695d9df8652593a7bc522dad0dde9e602d14d5b583be24c5014f998) = 0, [OHOS::Camera::REQUEST_TIMEOUT](_camera.md#gga4d1b650185695d9df8652593a7bc522da2b8e229bcb457de66e7b2882502a4df6) = 1 } | 设备错误类型,用于设备错误回调 **OnError**。 [更多...](_camera.md#errortype) | -| [OHOS::Camera::StreamError](_camera.md#streamerror) { [OHOS::Camera::UNKNOWN_ERROR](_camera.md#gga376e6d566c73ec98e29b7dd93763aee6ae724e09ec34e66e49c86734ceffa2a26) = 0, [OHOS::Camera::BUFFER_LOST](_camera.md#gga376e6d566c73ec98e29b7dd93763aee6a9300ec08f81b121b74ec589fca815952) = 1 } | 流错误类型,用于流错误类型 **CaptureErrorInfo**。 [更多...](_camera.md#streamerror) | +| [OHOS::Camera::CamRetCode](_camera.md#camretcode) : int32_t {   OHOS::Camera::NO_ERROR = 0, OHOS::Camera::CAMERA_BUSY = -1, OHOS::Camera::INSUFFICIENT_RESOURCES = -2, OHOS::Camera::INVALID_ARGUMENT = -3,   OHOS::Camera::METHOD_NOT_SUPPORTED = -4, OHOS::Camera::CAMERA_CLOSED = -5, OHOS::Camera::DEVICE_ERROR = -6 } | HDI接口的返回值。 [更多...](_camera.md#camretcode) | +| [OHOS::Camera::ResultCallbackMode](_camera.md#resultcallbackmode) : int32_t { OHOS::Camera::PER_FRAME, OHOS::Camera::ON_CHANGED } | metadata的上报模式。 [更多...](_camera.md#resultcallbackmode) | +| [OHOS::Camera::OperationMode](_camera.md#operationmode) : int32_t { OHOS::Camera::NORMAL = 0 } | 流的使用模式。 [更多...](_camera.md#operationmode) | +| [OHOS::Camera::StreamIntent](_camera.md#streamintent) : int32_t {   OHOS::Camera::PREVIEW = 0, OHOS::Camera::VIDEO = 1, OHOS::Camera::STILL_CAPTURE = 2, OHOS::Camera::POST_VIEW = 3,   OHOS::Camera::ANALYZE = 4, OHOS::Camera::CUSTOM = 5 } | 流的类型。 [更多...](_camera.md#streamintent) | +| [OHOS::Camera::EncodeType](_camera.md#encodetype) : int32_t { OHOS::Camera::ENCODE_TYPE_NULL = 0, OHOS::Camera::ENCODE_TYPE_H264 = 1, OHOS::Camera::ENCODE_TYPE_H265 = 2, OHOS::Camera::ENCODE_TYPE_JPEG = 3 } | 流数据的编码类型。 [更多...](_camera.md#encodetype) | +| [OHOS::Camera::StreamSupportType](_camera.md#streamsupporttype) : int32_t { OHOS::Camera::DYNAMIC_SUPPORTED, OHOS::Camera::RE_CONFIGURED_REQUIRED, OHOS::Camera::NOT_SUPPORTED } | 动态配置流的切换方式,使用场景参考 [IsStreamsSupported](_camera.md#isstreamssupported) 。 [更多...](_camera.md#streamsupporttype) | +| [OHOS::Camera::CameraStatus](_camera.md#camerastatus) { OHOS::Camera::UN_AVAILABLE = 0, OHOS::Camera::AVAILABLE = 1 } | Camera设备状态。 [更多...](_camera.md#camerastatus) | +| [OHOS::Camera::FlashlightStatus](_camera.md#flashlightstatus) : uint32_t { OHOS::Camera::FLASHLIGHT_OFF = 0, OHOS::Camera::FLASHLIGHT_ON = 1, OHOS::Camera::FLASHLIGHT_UNAVAILABLE = 2 } | 闪光灯状态。 [更多...](_camera.md#flashlightstatus) | +| [OHOS::Camera::CameraEvent](_camera.md#cameraevent): uint32_t { OHOS::Camera::CAMERA_EVENT_DEVICE_ADD = 0, OHOS::Camera::CAMERA_EVENT_DEVICE_RMV = 1 } | Camera事件。 [更多...](_camera.md#cameraevent) | +| [OHOS::Camera::ErrorType](_camera.md#errortype) : uint32_t { OHOS::Camera::FATAL_ERROR = 0, OHOS::Camera::REQUEST_TIMEOUT = 1 } | 设备错误类型,用于设备错误回调 **OnError**。 [更多...](_camera.md#errortype) | +| [OHOS::Camera::StreamError](_camera.md#streamerror) { OHOS::Camera::UNKNOWN_ERROR = 0, OHOS::Camera::BUFFER_LOST = 1 } | 流错误类型,用于流错误类型 **CaptureErrorInfo**。 [更多...](_camera.md#streamerror) | ## **详细描述** diff --git a/zh-cn/device-dev/api/usbd__type_8h.md b/zh-cn/device-dev/api/usbd__type_8h.md index 050693cc79..22fd1d8f64 100644 --- a/zh-cn/device-dev/api/usbd__type_8h.md +++ b/zh-cn/device-dev/api/usbd__type_8h.md @@ -37,10 +37,10 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [UsbdBulkCbCmd](_u_s_b.md#usbdbulkcbcmd) { [CMD_USBD_BULK_CALLBACK_READ](_u_s_b.md#gga734dda3df39a921fae88ada278bf35a3a5f84dff517954bbde58a2e1a0b8e8da6), [CMD_USBD_BULK_CALLBACK_WRITE](_u_s_b.md#gga734dda3df39a921fae88ada278bf35a3ac7fc2d22d4d348c672003c308263b9fb) } | 批量回调命令字。 [更多...](_u_s_b.md#usbdbulkcbcmd) | -| [UsbdDeviceAction](_u_s_b.md#usbddeviceaction) { [ACT_DEVUP](_u_s_b.md#gga4b7620d940f58152cd17a12401120c16af3ed12ba6838a4ebb16ae0713cb2324f) = 0, [ACT_DEVDOWN](_u_s_b.md#gga4b7620d940f58152cd17a12401120c16a97801ad0ac063dbb69d698adc19159bf), [ACT_UPDEVICE](_u_s_b.md#gga4b7620d940f58152cd17a12401120c16aecf16e36110fbe276f2a11e91252de20), [ACT_DOWNDEVICE](_u_s_b.md#gga4b7620d940f58152cd17a12401120c16a45115ba5d58e4a5358acae70a9fc33d4) } | 主机端和设备端插拔事件。 [更多...](_u_s_b.md#usbddeviceaction) | +| [UsbdBulkCbCmd](_u_s_b.md#usbdbulkcbcmd) { CMD_USBD_BULK_CALLBACK_READ, CMD_USBD_BULK_CALLBACK_WRITE } | 批量回调命令字。 [更多...](_u_s_b.md#usbdbulkcbcmd) | +| [UsbdDeviceAction](_u_s_b.md#usbddeviceaction) { ACT_DEVUP = 0, ACT_DEVDOWN, ACT_UPDEVICE, ACT_DOWNDEVICE } | 主机端和设备端插拔事件。 [更多...](_u_s_b.md#usbddeviceaction) | ## **详细描述** diff --git a/zh-cn/device-dev/api/vibrator__type_8h.md b/zh-cn/device-dev/api/vibrator__type_8h.md index 279a2d778a..3236f641e9 100644 --- a/zh-cn/device-dev/api/vibrator__type_8h.md +++ b/zh-cn/device-dev/api/vibrator__type_8h.md @@ -13,11 +13,11 @@ ### 枚举 - | 枚举 | 描述 | + | 枚举名称 | 描述 | | -------- | -------- | -| [VibratorMode](_vibrator.md#vibratormode) { [VIBRATOR_MODE_ONCE](_vibrator.md#ggadbbc422555ccc89c4d9cf80f5175af2fa5da1f5dd1752e8ef6b8ade59db31f80f) = 0, [VIBRATOR_MODE_PRESET](_vibrator.md#ggadbbc422555ccc89c4d9cf80f5175af2fa34c456f3c8038b601c4a0276f639f666) = 1, [VIBRATOR_MODE_BUTT](_vibrator.md#ggadbbc422555ccc89c4d9cf80f5175af2faa548af2d7414a81a8036e77b9bcd6606) } | 枚举马达振动模式。 [更多...](_vibrator.md#vibratormode) | -| [VibratorStatus](_vibrator.md#vibratorstatus) { [VIBRATOR_SUCCESS](_vibrator.md#p181591120650) = 0, [VIBRATOR_NOT_PERIOD](_vibrator.md#p515914207520) = -1,  [VIBRATOR_NOT_INTENSITY](_vibrator.md#p015972013512)  = -2,  [VIBRATOR_NOT_FREQUENCY](_vibrator.md#p14260156580)= -3} | 枚举马达振动模式。[更多...](_vibrator.md#vibratorstatus) | -| [VibratorInfo](_vibrator.md#vibratorinfo) { [isSupportIntensity](_vibrator.md#p16982125191511), [isSupportFrequency](_vibrator.md#p79831625101517), [intensityMaxValue](_vibrator.md#p1798317259153), [intensityMinValue](_vibrator.md#p196672031811), [frequencyMaxValue](_vibrator.md#p14421742189), [frequencyMinValue](_vibrator.md#p61323771819)} | 定义马达参数。[更多...](_vibrator.md#vibratorinfo) | +| [VibratorMode](_vibrator.md#vibratormode) { VIBRATOR_MODE_ONCE = 0, VIBRATOR_MODE_PRESET = 1, VIBRATOR_MODE_BUTT } | 枚举马达振动模式。 [更多...](_vibrator.md#vibratormode) | +| [VibratorStatus](_vibrator.md#vibratorstatus) { VIBRATOR_SUCCESS = 0, VIBRATOR_NOT_PERIOD = -1,  VIBRATOR_NOT_INTENSITY  = -2,  VIBRATOR_NOT_FREQUENCY= -3} | 枚举马达振动模式。[更多...](_vibrator.md#vibratorstatus) | +| [VibratorInfo](_vibrator.md#vibratorinfo) { isSupportIntensity, isSupportFrequency, intensityMaxValue, intensityMinValue, frequencyMaxValue, frequencyMinValue} | 定义马达参数。[更多...](_vibrator.md#vibratorinfo) | ## **详细描述** diff --git a/zh-cn/device-dev/api/wifi__hal__base__feature_8h.md b/zh-cn/device-dev/api/wifi__hal__base__feature_8h.md index 54d2c8f77a..2507aeda6f 100644 --- a/zh-cn/device-dev/api/wifi__hal__base__feature_8h.md +++ b/zh-cn/device-dev/api/wifi__hal__base__feature_8h.md @@ -31,7 +31,7 @@ | 枚举 | 描述 | | -------- | -------- | -| [FeatureType](_w_l_a_n.md#featuretype) {   [PROTOCOL_80211_IFTYPE_UNSPECIFIED](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012a6b209b916aabd18f2a950a82e68b6a4c), [PROTOCOL_80211_IFTYPE_ADHOC](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012a0926a98ddc2ceec4ba58ebfc01c5fe35), [PROTOCOL_80211_IFTYPE_STATION](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012acd26f8cefbd658e9ea02feecefd054fb), [PROTOCOL_80211_IFTYPE_AP](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012a9e92654b9ab6ed6eb62868f1e0e4ea8f),   [PROTOCOL_80211_IFTYPE_AP_VLAN](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012a991ad1a3f8c43b06c4eeb9dc88acdb1e), [PROTOCOL_80211_IFTYPE_WDS](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012aa25631c32cd6c996a7c96ba4f61299e2), [PROTOCOL_80211_IFTYPE_MONITOR](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012a3ff1c1358af5a0c50b64e0ef0e96a970), [PROTOCOL_80211_IFTYPE_MESH_POINT](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012a382756b8a71015cd536cdbc113c4f483),   [PROTOCOL_80211_IFTYPE_P2P_CLIENT](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012acfd81d6e484c6f7a3b863327af112cfc), [PROTOCOL_80211_IFTYPE_P2P_GO](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012abca0ccb5cf4c14af9b6ff0bd9eeb4173), [PROTOCOL_80211_IFTYPE_P2P_DEVICE](_w_l_a_n.md#ggad2b28a6ade408676d1371ea941824012ad63ad4a5a66892e842e4d75cc82b0755), [PROTOCOL_80211_IFTYPE_NUM](_w_l_a_n.md#p3611518433) } | 枚举WLAN相关特性的类型[FeatureType](_w_l_a_n.md#featuretype)。 [更多...](_w_l_a_n.md#featuretype) | +| [FeatureType](_w_l_a_n.md#featuretype) {   PROTOCOL_80211_IFTYPE_UNSPECIFIED, PROTOCOL_80211_IFTYPE_ADHOC, PROTOCOL_80211_IFTYPE_STATION, PROTOCOL_80211_IFTYPE_AP,   PROTOCOL_80211_IFTYPE_AP_VLAN, PROTOCOL_80211_IFTYPE_WDS, PROTOCOL_80211_IFTYPE_MONITOR, PROTOCOL_80211_IFTYPE_MESH_POINT,   PROTOCOL_80211_IFTYPE_P2P_CLIENT, PROTOCOL_80211_IFTYPE_P2P_GO, PROTOCOL_80211_IFTYPE_P2P_DEVICE, PROTOCOL_80211_IFTYPE_NUM } | 枚举WLAN相关特性的类型[FeatureType](_w_l_a_n.md#featuretype)。 [更多...](_w_l_a_n.md#featuretype) | ### 函数 -- GitLab From 7baa436eb6efcfbe90c3179bbeeb81a660b52f48 Mon Sep 17 00:00:00 2001 From: longwei Date: Mon, 18 Jul 2022 09:36:47 +0800 Subject: [PATCH 057/868] deprecated uiSyntax for stage module Signed-off-by: longwei Change-Id: I0b26b0ceaec0013f38cb4b14ea4374b05a014547 --- .../quick-start/stage-structure.md | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/zh-cn/application-dev/quick-start/stage-structure.md b/zh-cn/application-dev/quick-start/stage-structure.md index f8540d4a12..e70faa4e1b 100644 --- a/zh-cn/application-dev/quick-start/stage-structure.md +++ b/zh-cn/application-dev/quick-start/stage-structure.md @@ -163,25 +163,25 @@ hap包的配置信息,该标签下的配置只对当前hap包生效。 表3 module对象内部结构 -| 属性名称 | 含义 | 数据类型 | 是否可缺省 | -| ------------------- | ------------------------------------------------------------ | ---------- | ------------------------------------- | -| name | 该标签标识当前module的名字,module打包成hap后,表示hap的名称,标签值采用字符串表示(最大长度31个字节),该名称在整个应用要唯一。 | 字符串 | 该标签不可缺省。 | -| type | 该标签表示当前hap的类型。类型有三种,分别是entry、feature和har。 | 字符串 | 该标签不可缺省。 | -| srcEntrance | 该标签表示hap所对应的入口js代码路径,标签值为字符串(最长为127字节)。 | 字符串 | 该标签可缺省。 | -| description | 该标签标识hap包的描述信息,标签值是是字符串类型或对描述内容的资源索引,以支持多语言。 | 字符串 | 该标签可缺省,缺省值为空。 | -| process | 该标签标识hap的进程名,标签值为字符串类型(最长为31个字节)。如果在hap标签下配置了process,该应用的所有ability都运行在该进程中。 | 字符串 | 可缺省,缺省为hap的名称。 | -| mainElement | 该标签标识hap的入口ability名称或者extension名称。只有配置为mainElement的ability或者extension才允许在服务中心露出。创建OpenHarmony原子化服务时,该标签不可缺省。 | 字符串 | OpenHarmony应用下,该标签可缺省。 | -| deviceTypes | 该标签标识hap可以运行在哪类设备上,标签值采用字符串数组的表示,系统预定义的设备类型见表4。
与syscap不同的是,deviceTypes是以设备类型为粒度,而syscap是以设备能力(例如蓝牙、wifi)为粒度。 | 字符串数组 | 该标签不可缺省,可以为空值。 | -| deliveryWithInstall | 该标签标识当前hap是否在用户主动安装的时候安装,true表示主动安装时安装,false表示主动安装时不安装。 | 布尔值 | 该标签不可缺省。 | -| installationFree | 表示当前HAP是否支持免安装特性。所有Hap包都需要配置不可缺省。
true :表示支持免安装特性,且符合免安装约束。
false :表示不支持免安装特性。

当entry.hap该字段配置为true时,与该entry.hap相关的所有feature.hap该字段也需要配置为true。
当entry.hap该字段配置为false时,与该entry.hap相关的各feature.hap该字段可按业务需求配置true或false。 | 布尔值 | 该标签不可缺省。 | -| virtualMachine | 该标签用于标识当前hap运行的目标虚拟机类型,供云端分发使用,如应用市场和分发中心。
该标签值为字符串。如果目标虚拟机类型为方舟虚拟机,则其值为”ark”; 如果目标虚拟机类型不是方舟虚拟机,则其值为”default”。该标签由IDE构建hap的时候自动插入。解包工具解析时,如果hap包没有该标签,设置该标签值为”default”。 | 字符串 | 该标签可缺省,缺省值为“default”。 | -| uiSyntax | syntax定义该JS Component的语法类型。
hml标识该JS Component使用hml/css/js进行开发;
ets标识该JS Component使用ets声明式语法进行开发。 | 字符串 | 该标签可缺省,默认值为hml | -| pages | 该标签是一个profile资源,用于列举JS Component中每个页面信息。pages使用参考pages示例。 | 对象 | 在有ability的场景下,该标签不可缺省。 | -| metadata | 该标签标识Hap的自定义元信息,标签值为数组类型,该标签下的配置只对当前module、或者ability、或者extensionAbility生效。metadata参考[metadata对象内部结构](#metadata对象内部结构)。 | 数组 | 该标签可缺省,缺省值为空。 | -| abilities | 描述元能力的配置信息,标签值为数组类型,该标签下的配置只对当前ability生效。abilities参考[abilities对象内部结构](#abilities对象内部结构)。 | 对象 | 该标签可缺省,缺省值为空。 | -| extensionAbilities | 描述extensionAbilities的配置信息,标签值为数组类型,该标签下的配置只对当前extensionAbility生效。extensionAbilities参考[extensionAbility对象的内部结构说明](#extensionAbility对象的内部结构说明)。 | 对象 | 该标签可缺省,缺省值为空。 | -| requestPermissions | 该标签标识应用运行时需向系统申请的权限集合,标签值为数组类型。requestPermissions参考[requestPermissions对象内部结构](#requestPermissions对象内部结构)。 | 对象 | 该标签可缺省,缺省值为空。 | -| testRunner | 此标签用于支持对测试框架的配置,参考[testRunner对象内部结构说明](#testRunner对象内部结构)说明。 | 对象 | 可缺省,缺省值为空 | +| 属性名称 | 含义 | 数据类型 | 是否可缺省 | +| -------------------- | ------------------------------------------------------------ | ---------- | ------------------------------------------------- | +| name | 该标签标识当前module的名字,module打包成hap后,表示hap的名称,标签值采用字符串表示(最大长度31个字节),该名称在整个应用要唯一。 | 字符串 | 该标签不可缺省。 | +| type | 该标签表示当前hap的类型。类型有三种,分别是entry、feature和har。 | 字符串 | 该标签不可缺省。 | +| srcEntrance | 该标签表示hap所对应的入口js代码路径,标签值为字符串(最长为127字节)。 | 字符串 | 该标签可缺省。 | +| description | 该标签标识hap包的描述信息,标签值是是字符串类型或对描述内容的资源索引,以支持多语言。 | 字符串 | 该标签可缺省,缺省值为空。 | +| process | 该标签标识hap的进程名,标签值为字符串类型(最长为31个字节)。如果在hap标签下配置了process,该应用的所有ability都运行在该进程中。 | 字符串 | 可缺省,缺省为hap的名称。 | +| mainElement | 该标签标识hap的入口ability名称或者extension名称。只有配置为mainElement的ability或者extension才允许在服务中心露出。创建OpenHarmony原子化服务时,该标签不可缺省。 | 字符串 | OpenHarmony应用下,该标签可缺省。 | +| deviceTypes | 该标签标识hap可以运行在哪类设备上,标签值采用字符串数组的表示,系统预定义的设备类型见表4。
与syscap不同的是,deviceTypes是以设备类型为粒度,而syscap是以设备能力(例如蓝牙、wifi)为粒度。 | 字符串数组 | 该标签不可缺省,可以为空值。 | +| deliveryWithInstall | 该标签标识当前hap是否在用户主动安装的时候安装,true表示主动安装时安装,false表示主动安装时不安装。 | 布尔值 | 该标签不可缺省。 | +| installationFree | 表示当前HAP是否支持免安装特性。所有Hap包都需要配置不可缺省。
true :表示支持免安装特性,且符合免安装约束。
false :表示不支持免安装特性。

当entry.hap该字段配置为true时,与该entry.hap相关的所有feature.hap该字段也需要配置为true。
当entry.hap该字段配置为false时,与该entry.hap相关的各feature.hap该字段可按业务需求配置true或false。 | 布尔值 | 该标签不可缺省。 | +| virtualMachine | 该标签用于标识当前hap运行的目标虚拟机类型,供云端分发使用,如应用市场和分发中心。
该标签值为字符串。如果目标虚拟机类型为方舟虚拟机,则其值为”ark”; 如果目标虚拟机类型不是方舟虚拟机,则其值为”default”。该标签由IDE构建hap的时候自动插入。解包工具解析时,如果hap包没有该标签,设置该标签值为”default”。 | 字符串 | 该标签可缺省,缺省值为“default”。 | +| uiSyntax(deprecated) | syntax定义该JS Component的语法类型。
hml标识该JS Component使用hml/css/js进行开发;
ets标识该JS Component使用ets声明式语法进行开发。 | 字符串 | 该标签可缺省,默认值为hml,该字段从API9开始废弃。 | +| pages | 该标签是一个profile资源,用于列举JS Component中每个页面信息。pages使用参考pages示例。 | 对象 | 在有ability的场景下,该标签不可缺省。 | +| metadata | 该标签标识Hap的自定义元信息,标签值为数组类型,该标签下的配置只对当前module、或者ability、或者extensionAbility生效。metadata参考[metadata对象内部结构](#metadata对象内部结构)。 | 数组 | 该标签可缺省,缺省值为空。 | +| abilities | 描述元能力的配置信息,标签值为数组类型,该标签下的配置只对当前ability生效。abilities参考[abilities对象内部结构](#abilities对象内部结构)。 | 对象 | 该标签可缺省,缺省值为空。 | +| extensionAbilities | 描述extensionAbilities的配置信息,标签值为数组类型,该标签下的配置只对当前extensionAbility生效。extensionAbilities参考[extensionAbility对象的内部结构说明](#extensionAbility对象的内部结构说明)。 | 对象 | 该标签可缺省,缺省值为空。 | +| requestPermissions | 该标签标识应用运行时需向系统申请的权限集合,标签值为数组类型。requestPermissions参考[requestPermissions对象内部结构](#requestPermissions对象内部结构)。 | 对象 | 该标签可缺省,缺省值为空。 | +| testRunner | 此标签用于支持对测试框架的配置,参考[testRunner对象内部结构说明](#testRunner对象内部结构)说明。 | 对象 | 可缺省,缺省值为空 | 表4 deviceTypes对象的系统预定义设备 -- GitLab From 2a1b36efdabebf85895ecb5d6ee4384618ce2639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BB=E5=8C=97=E5=86=B5=E5=BD=92?= <2692032597@qq.com> Date: Mon, 18 Jul 2022 15:12:19 +0000 Subject: [PATCH 058/868] =?UTF-8?q?update=20zh-cn/device-dev/subsystems/su?= =?UTF-8?q?bsys-build-standard-large.md.=20Signed-off-by:=20=E8=B4=BE?= =?UTF-8?q?=E4=BD=B3=E8=B1=AA=20<2692032597@qq.com>?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/device-dev/subsystems/subsys-build-standard-large.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/zh-cn/device-dev/subsystems/subsys-build-standard-large.md b/zh-cn/device-dev/subsystems/subsys-build-standard-large.md index cab3162080..8c124330eb 100644 --- a/zh-cn/device-dev/subsystems/subsys-build-standard-large.md +++ b/zh-cn/device-dev/subsystems/subsys-build-standard-large.md @@ -11,20 +11,24 @@ ### 基本概念 在了解编译构建子系统的能力前,应了解如下基本概念: - - 平台 + 开发板和内核的组合,不同平台支持的子系统和部件不同。 - 子系统 + OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 部件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或部件。子系统是一个逻辑概念,它具体由对应的部件构成。 - 部件 + 对子系统的进一步拆分,可复用的软件单元,它包含源码、配置文件、资源文件和编译脚本;能独立构建,以二进制方式集成,具备独立验证能力的二进制单元。 - gn + Generate ninja的缩写,用于产生ninja文件。 - ninja + ninja是一个专注于速度的小型构建系统。 ### 运作机制 -- GitLab From 570b3b8fa194e03393e8611299a288c9e697dcf5 Mon Sep 17 00:00:00 2001 From: king_he <6384784@qq.com> Date: Tue, 19 Jul 2022 01:04:00 +0000 Subject: [PATCH 059/868] update en/third-party-components/npm-third-party-guide.md. Signed-off-by: king_he <6384784@qq.com> --- .../npm-third-party-guide.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/en/third-party-components/npm-third-party-guide.md b/en/third-party-components/npm-third-party-guide.md index 6ba26adfac..cd042e86e3 100644 --- a/en/third-party-components/npm-third-party-guide.md +++ b/en/third-party-components/npm-third-party-guide.md @@ -1,11 +1,11 @@ # Using OpenHarmony JS/TS Third-Party Components -## OpenHarmony JS/TS Third-Party Components +## Overview -OpenHarmony JS/TS third-party components are delivered in the form of OpenHarmony npm packages. Developed based on the traditional npm components, OpenHarmony npm shared packages come with specially designed project structures and configuration files, which allow code of OpenHarmony UI pages and resources to be shared across modules or projects. The OpenHarmony npm package enables multiple modules or projects to share code related to OpenHarmony UI and resources. You can go to the [official npm website](https://docs.npmjs.com/about-npm) to learn about basic functions and mechanisms of npm. +OpenHarmony JS/TS third-party components are delivered in the form of OpenHarmony npm packages. Developed based on the traditional npm components, OpenHarmony npm shared packages come with specially designed project structures and configuration files. Such a package enables multiple modules or projects to share code related to OpenHarmony UI and resources. You can go to the [official npm website](https://docs.npmjs.com/about-npm) to learn about the basic functions and mechanisms of npm. ## Searching for OpenHarmony JS/TS Third-Party Components -1. Watch the [OpenHarmony-TPC/tpc_resource](https://gitee.com/openharmony-tpc/tpc_resource) project on the Gitee website. You can find a component based on the directory index. +1. Find the [OpenHarmony-TPC/tpc_resource](https://gitee.com/openharmony-tpc/tpc_resource) project on the Gitee website. You can find a component based on the directory index. 2. Visit the [OpenHarmony website](https://www.openharmony.cn/mainPlay/tpc) and search for required third-party components by type, category, or keyword. @@ -17,17 +17,17 @@ During application development, you can import JS/TS third-party components in t 2. Under **Terminal** project, go to the **entry** directory and run the target component's command to install the component. For details about the command, see "Download and Installation" of the third-party component on the OpenHarmony website. - The following uses the installation of the [vCard third-party component](https://growing.openharmony.cn/mainPlay/libraryMaps/vcard_595) as an example. Find the installation command in "Download and Installation" and then run the command. + The following uses the installation of the [vCard component](https://growing.openharmony.cn/mainPlay/libraryMaps/vcard_595) as an example. Find the installation command in "Download and Installation" and then run the command. ![npm-usage1.png](npm-usage1.png) ![npm-usage2.png](npm-usage2.png) -3. A **node_modules** file is automatically generated in the project folder. In this example, the downloaded third-party library is **@ohos\VCard** in the **node_modules** directory. +3. Check for the **node_modules** file, which is automatically generated in the project folder. In this example, the downloaded third-party library is **@ohos\VCard** in the **node_modules** directory. ![npm-usage3.png](npm-usage3.png) -4. The following dependency is automatically added to the **package.json** file: +4. Check for the dependency configuration, which is automatically added to the **package.json** file: ``` "dependencies": { @@ -35,10 +35,10 @@ During application development, you can import JS/TS third-party components in t } ``` -5. Import the component to the file that wants to use the component. +5. Import the component to the file that plans to use the component. ![npm-usage4.png](npm-usage4.png) -6. Now you can use the APIs. +6. Use the APIs as you want. ![npm-usage5.png](npm-usage5.png) -- GitLab From d0e16c77bbcc18289313e2c624185100d53cea13 Mon Sep 17 00:00:00 2001 From: king_he <6384784@qq.com> Date: Tue, 19 Jul 2022 01:08:58 +0000 Subject: [PATCH 060/868] update en/third-party-components/third-party-components-introduction.md. Signed-off-by: king_he <6384784@qq.com> --- .../third-party-components-introduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/third-party-components/third-party-components-introduction.md b/en/third-party-components/third-party-components-introduction.md index 6ed307016e..4416dd625b 100644 --- a/en/third-party-components/third-party-components-introduction.md +++ b/en/third-party-components/third-party-components-introduction.md @@ -1,5 +1,5 @@ # OpenHarmony Third-Party Components -OpenHarmony third-party components are verified software that work with the OpenHarmony system to facilitate your development of OpenHarmony devices or applications. Depending on the programming language they use, these components are classified as JS/TS third-party components or C/C++ third-party components. JS/TS third-party components use JavaScript or TypeScript and are usually imported as source code or OpenHarmony npm packages. They are used in application development. C/C++ third-party components use the programming language C/C++ and are usually imported as source code or OpenHarmony hpm packages. They are used as native APIs during application development or directly compiled in the OpenHarmony OS image during device development. +OpenHarmony third-party components are verified software that work with the OpenHarmony system to facilitate your development of OpenHarmony devices or applications. Depending on the programming language they use, these components are classified as JS/TS third-party components or C/C++ third-party components. JS/TS third-party components use the JavaScript or TypeScript programming language and are usually imported as source code or OpenHarmony npm packages. They are used in application development. C/C++ third-party components use the C/C++ programming language and are usually imported as source code or OpenHarmony hpm packages. They are used as native APIs during application development or directly compiled in the OpenHarmony OS image during device development. Currently, OpenHarmony provides UI, animation, image, multimedia, file, network, security, tool, and other third-party components. -- GitLab From fd9962374cf6505563918747ddb241191517932a Mon Sep 17 00:00:00 2001 From: king_he <6384784@qq.com> Date: Tue, 19 Jul 2022 01:28:41 +0000 Subject: [PATCH 061/868] update en/design/OpenHarmony-API-governance.md. Signed-off-by: king_he <6384784@qq.com> --- en/design/OpenHarmony-API-governance.md | 44 ++++++++++++------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/en/design/OpenHarmony-API-governance.md b/en/design/OpenHarmony-API-governance.md index a5784cb05d..ede0bcff97 100644 --- a/en/design/OpenHarmony-API-governance.md +++ b/en/design/OpenHarmony-API-governance.md @@ -2,7 +2,7 @@ ## Introduction -To help the OpenHarmony ecosystem develop and evolve in a healthy and orderly way, this Charter defines the governance process and lifecycle (create, change, deprecate, and delete) of OpenHarmony APIs. It also specifies basic design requirements of OpenHarmony APIs. +To help the OpenHarmony ecosystem develop and evolve in a healthy and orderly way, this Charter defines the governance process and lifecycle (creation, change, deprecation, and deletion) of OpenHarmony APIs. It also specifies basic design requirements of OpenHarmony APIs. This Charter is formulated by the API SIG and approved by the PMC for release. Any revision to this Charter will be released only after being reviewed by the API SIG and approved by the PMC. @@ -16,14 +16,14 @@ The OpenHarmony software stack contains multiple roles. Naturally, OpenHarmony A Different types of APIs have different compatibility requirements, as described in the table below. -| Type| Prepared By| Used By| Compatibility Requirement| Guarding Method| -|---|---|---|---|---| -| Public API | System and framework| All application developers| 5 API versions| X test suite (XTS)| -| Test API | Test framework| All application developers| 3 API versions| To be built| -| System API | System and framework|System application developers|Not guaranteed| To be built| -| HDI | HDF| System services| 4 API versions| XTS | -| Driver API | HDF | Driver developers| Not guaranteed| None| -| Inner API | System parts| System parts| Not guaranteed| None| + | Type | Prepared By | Used By | Compatibility Requirement | Guarding Method | + |--- |--- |--- |--- |--- | + | Public API | System and framework | All application developers | Five API versions | X test suite (XTS) | + | Test API | Test framework | All application developers | Three API versions | To be built | + | System API | System and framework |System application developers |Not guaranteed | To be built | + | HDI | HDF | System services | Four API versions | XTS | + | Driver API | HDF | Driver developers | Not guaranteed | None | + | Inner API | System parts | System parts | Not guaranteed | None | The APIs are described as follows: @@ -48,13 +48,13 @@ The content described in this Charter is irrelevant to the programming language ### Roles and Responsibilities -|**Role**|**Responsibilities in API Governance**| -| - | - | -|Contributor|Commit API code and design documents.| -|Committer|Review the code and submit a pre-review comment on an API commit.| -|Domain SIG|Comment on the commits of new API code, so the passed commits can be merged.
Submit a pre-review comment on updated API code.| -|API SIG|Comment on updated API code.| -|PMC|Release API version plans. Review amendments of this Charter, revise the terms, and publish this Charter.| + | Role | Responsibilities in API Governance | + | --- | --- | + | Contributor | Commit API code and design documents. | + | Committer | Review the code and submit a pre-review comment on an API commit. | + | Domain SIG | Comment on the commits of new API code, so the passed commits can be merged.
Submit a pre-review comment on updated API code. | + | API SIG | Comment on updated API code. | + | PMC | Release API version plans. Review amendments of this Charter, revise the terms, and publish this Charter. | ### API Review Process The API review process is as follows: @@ -66,7 +66,7 @@ The main process is as follows: 1. Initiate API review and commit code (contributor). If any APIs are added or modified, the contributor must additionally submit an API review application to specify the API requirement source, usage scenario, permission design, and privacy protection design. For details, see "API Review Application Composites" below. To avoid rework, the contributor can send an email to submit the API design document to the committer, domain SIG, and API SIG for pre-review before the formal API review application and code commit. 1. Review code (committer). After the code review is approved, the committer should submit the APIs to the domain SIG. If the API code involves multiple domains, they should be submitted to the committers of the corresponding domains. The next review step can be performed only after all committers review and approve the code. 1. Review APIs (domain SIG). The code of new APIs can be merged only after being reviewed and approved by the domain SIG. If there are changes to existing APIs, the domain SIG should submit them to the API SIG. If the new APIs involve multiple domains, they should be submitted to the SIGs of the corresponding domains. The code can be merged after being reviewed and approved by one of the domain SIGs. If the changed APIs involve multiple domains, they should be submitted to the SIGs of the corresponding domains. The next review step can be performed only after all domain SIGs approve the APIs. -1. Review API changes (owner: API SIG): The code of changed APIs can be merged only after being reviewed and approved by the API SIG. +1. Review API changes (API SIG). The code of changed APIs can be merged only after being reviewed and approved by the API SIG. 1. The review is complete. ### API Review Application Composites @@ -175,18 +175,18 @@ Design APIs from the perspective of their users rather than providers. ### Performance 1. Respond in a timely manner to avoid callers waiting. If an API call takes a long time, use an asynchronous API. -2. Pay attention to the impact of the API call timing and frequency on the RAM usage. -3. Pay attention to the impact of the API call timing and frequency on power consumption. +2. Make sure that the impact of API call timing and frequency on the RAM usage is under control. +3. Make sure that the impact of API call timing and frequency on the power consumption is under control. 4. Resources must be released in a timely manner when APIs that use resources are called. A fault tolerance mechanism must be provided for abnormal scenarios to ensure timely resource release. ### Power Consumption -1. Evaluate the impact of the API call timing and frequency on power consumption, and perform related design if there is any impact. -2. The power consumption should not deteriorate during version evolution. +1. Evaluate the impact of the API call timing and frequency on power consumption, and optimize the design if there is any impact. +2. Make sure that the power consumption does not deteriorate during version evolution. ### Reliability -1. APIs cannot crash due to external input (such as input parameters, system status, and external data), internal status, or data exceptions. It must return a specific error code or throw a predefined exception. +1. APIs shall not crash due to external input (such as input parameters, system status, and external data), internal status, or data exceptions. It must return a specific error code or throw a predefined exception. 2. It must be specified whether an API is called synchronously or asynchronously. If an API is called synchronously, specify the timeout duration or allow the caller to set the timeout duration to prevent service response failure caused by call suspension. 3. APIs must support multi-thread reentrant. 4. APIs must meet the idempotence requirement, which means that the same effect should be obtained for one or multiple API call requests with the same service meaning (except that API call depends on external resource changes). For reentrant API call, avoid introducing time-varying factors, such as system ticks, static variables, and global variables without mutual exclusion protection. For repeated call of the same client, **contextID**, **clientToken**, and **sequenceNo** can be used as input parameters. -- GitLab From 842bd563ee8d202790f516f455aa41a8df42ec75 Mon Sep 17 00:00:00 2001 From: yuyaozhi Date: Fri, 15 Jul 2022 11:49:00 +0800 Subject: [PATCH 062/868] Fix master document problems of ability Signed-off-by: yuyaozhi --- .../reference/apis/js-apis-Context.md | 348 +++++++++++++-- .../reference/apis/js-apis-ability-context.md | 266 +++++++++++- .../apis/js-apis-ability-wantConstant.md | 2 + .../js-apis-application-abilityDelegator.md | 6 +- .../apis/js-apis-application-context.md | 8 +- .../reference/apis/js-apis-appmanager.md | 140 +++++- .../apis/js-apis-dataAbilityHelper.md | 12 +- .../reference/apis/js-apis-errorManager.md | 127 ++++++ .../apis/js-apis-extension-context.md | 3 + .../reference/apis/js-apis-featureAbility.md | 24 -- .../reference/apis/js-apis-formextension.md | 2 +- .../apis/js-apis-formextensioncontext.md | 78 +--- .../reference/apis/js-apis-formprovider.md | 20 +- .../reference/apis/js-apis-missionManager.md | 82 ++++ .../apis/js-apis-service-extension-ability.md | 2 +- .../apis/js-apis-service-extension-context.md | 403 ++++++++++++++---- 16 files changed, 1294 insertions(+), 229 deletions(-) create mode 100644 zh-cn/application-dev/reference/apis/js-apis-errorManager.md diff --git a/zh-cn/application-dev/reference/apis/js-apis-Context.md b/zh-cn/application-dev/reference/apis/js-apis-Context.md index f85c677974..1df895cc26 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-Context.md +++ b/zh-cn/application-dev/reference/apis/js-apis-Context.md @@ -296,6 +296,220 @@ context.getBundleName().then((data) => { }); ``` +## Context.getDisplayOrientation7+ + +getDisplayOrientation(callback: AsyncCallback\): void + +获取此能力的当前显示方向(callback形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------- | ---------------------- | ---- | ----------------------------- | +| callback | AsyncCallback\<[bundle.DisplayOrientation](js-apis-bundle.md#displayorientation)> | 是 | 表示屏幕显示方向。 | + +**示例:** + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.getDisplayOrientation() +``` + +## Context.getDisplayOrientation7+ + +getDisplayOrientation(): Promise\; + +获取此能力的当前显示方向(Promise形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**返回值:** + +| 类型 | 说明 | +| ---------------- | ------------------------- | +| Promise\<[bundle.DisplayOrientation](js-apis-bundle.md#displayorientation)> | 表示屏幕显示方向。 | + +**示例:** + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.getDisplayOrientation().then((data) => { + console.info("=======================>getDisplayOrientationCallback====================>"); + console.info("====>data====>" + JSON.stringify(data)); +}); +``` + +## Context.setDisplayOrientation7+ + +setDisplayOrientation(orientation: bundle.DisplayOrientation, callback: AsyncCallback\): void + +设置当前能力的显示方向(callback形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------- | ---------------------- | ---- | ----------------------------- | +| orientation | [bundle.DisplayOrientation](js-apis-bundle.md#displayorientation) | 是 | 指示当前能力的新方向。。 | +| callback | AsyncCallback\<[bundle.DisplayOrientation](js-apis-bundle.md#displayorientation)> | 是 | 表示屏幕显示方向。 | + +**示例:** + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +var orientation="UNSPECIFIED" +context.setDisplayOrientation(orientation, (err) => { + console.log('---------- setDisplayOrientation fail, err: -----------', err); +}); +``` + +## Context.setDisplayOrientation7+ + +setDisplayOrientation(orientation: bundle.DisplayOrientation): Promise\; + +设置当前能力的显示方向(Promise形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**返回值:** + +| 类型 | 说明 | +| ---------------- | ------------------------- | +| orientation | [bundle.DisplayOrientation](js-apis-bundle.md#displayorientation) | 是 | 指示当前能力的新方向。。 | +| Promise\<[bundle.DisplayOrientation](js-apis-bundle.md#displayorientation)> | 表示屏幕显示方向。 | + +**示例:** + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.setDisplayOrientation().then((data) => { + console.info("=======================>setDisplayOrientationCallback====================>"); + console.info("====>data====>" + JSON.stringify(data)); +}); +``` + +## Context.setShowOnLockScreen7+ + +setShowOnLockScreen(show: boolean, callback: AsyncCallback\): void + +设置每当显示锁屏时是否在锁屏顶部显示此功能,使该功能保持激活状态(callback形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------- | ---------------------- | ---- | ----------------------------- | +| show | boolean | 是 | 指定是否在锁屏顶部显示此功能。值true表示在锁屏上显示,值false表示不显示。 | +| callback | AsyncCallback\ | 是 | 返回回调结果。 | + +**示例:** + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +var show=true +context.setShowOnLockScreen(show, (err) => { + console.log('---------- setShowOnLockScreen fail, err: -----------', err); +}); +``` + +## Context.setShowOnLockScreen7+ + +setShowOnLockScreen(show: boolean): Promise\; + +设置每当显示锁屏时是否在锁屏顶部显示此功能,使该功能保持激活状态(Promise形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------- | ---------------------- | ---- | ----------------------------- | +| show | boolean | 是 | 指定是否在锁屏顶部显示此功能。值true表示在锁屏上显示,值false表示不显示。 | + +**返回值:** + +| 类型 | 说明 | +| ---------------- | ------------------------- | +| Promise\| 使用Promise形式返回结果 | + +**示例:** + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.setShowOnLockScreen().then((data) => { + console.info("=======================>setShowOnLockScreenCallback====================>"); + console.info("====>data====>" + JSON.stringify(data)); +}); +``` + +## Context.setWakeUpScreen7+ + +setWakeUpScreen(wakeUp: boolean, callback: AsyncCallback\): void + +设置恢复此功能时是否唤醒屏幕。(callback形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------- | ---------------------- | ---- | ----------------------------- | +| wakeUp | boolean | 是 | 指定是否唤醒屏幕。值true表示唤醒它,值false表示不唤醒它。 | +| callback | AsyncCallback\ | 是 | 返回回调结果。 | + +**示例:** + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +var wakeUp=true +context.setWakeUpScreen(show, (err) => { + console.log('---------- setWakeUpScreen fail, err: -----------', err); +}); +``` + +## Context.setWakeUpScreen7+ + +setWakeUpScreen(wakeUp: boolean): Promise\; + +设置恢复此功能时是否唤醒屏幕。(Promise形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------- | ---------------------- | ---- | ----------------------------- | +| wakeUp | boolean | 是 | 指定是否唤醒屏幕。值true表示唤醒它,值false表示不唤醒它。 | + +**返回值:** + +| 类型 | 说明 | +| ---------------- | ------------------------- | +| Promise\| 使用Promise形式返回结果 | + +**示例:** + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.setWakeUpScreen().then((data) => { + console.info("=======================>setWakeUpScreenCallback====================>"); + console.info("====>data====>" + JSON.stringify(data)); +}); +``` + + ## Context.getProcessInfo7+ @@ -728,7 +942,7 @@ getHapModuleInfo(callback: AsyncCallback\): void | 名称 | 类型 | 必填 | 描述 | | -------- | ---------------------- | ---- | ------------------------- | -| callback | AsyncCallback\<[HapModuleInfo](#hapmoduleinfo)> | 是 | 回调函数,可以在回调函数中处理接口返回值,返回应用的ModuleInfo对象。| +| callback | AsyncCallback\<[HapModuleInfo](js-apis-bundle-HapModuleInfo.md)> | 是 | 回调函数,可以在回调函数中处理接口返回值,返回应用的ModuleInfo对象。| **示例:** @@ -756,7 +970,7 @@ getHapModuleInfo(): Promise\ | 类型 | 说明 | | --------------- | ------------------------- | -| Promise\<[HapModuleInfo](#hapmoduleinfo)> | 返回应用的ModuleInfo对象。 | +| Promise\<[HapModuleInfo](js-apis-bundle-HapModuleInfo.md)> | 返回应用的ModuleInfo对象。 | **示例:** @@ -770,7 +984,7 @@ context.getHapModuleInfo().then((data) => { ## Context.getAppVersionInfo7+ -getAppVersionInfo(callback: AsyncCallback\): void +getAppVersionInfo(callback: AsyncCallback): void 获取应用的版本信息(callback形式)。 @@ -893,6 +1107,111 @@ import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext().getApplicationContext(); ``` +## Context.isUpdatingConfigurations7+ + +isUpdatingConfigurations(callback: AsyncCallback\): void; + +检查此能力的配置是否正在更改(callback形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------- | ---------------------- | ---- | ------------------------- | +| callback | AsyncCallback\ | 是 | 如果该能力的配置正在更改,则为true,否则为false。| + +**示例:** + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.isUpdatingConfigurations((err, data) => { + if (err) { + console.error('Operation failed. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Operation successful. Data:' + JSON.stringify(data)); +}); +``` + +## Context.isUpdatingConfigurations7+ + +isUpdatingConfigurations(): Promise\; + +检查此能力的配置是否正在更改(Promise形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**返回值:** + +| 类型 | 说明 | +| --------------- | ------------------------- | +|Promise\ | 如果该能力的配置正在更改,则为true,否则为false。 | + +**示例:** + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.isUpdatingConfigurations().then((data) => { + console.info("====>data====>" + JSON.stringify(data)); +}); +``` + +## Context.printDrawnCompleted7+ + +printDrawnCompleted(callback: AsyncCallback\): void; + +通知系统绘制此页面功能所需的时间(callback形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------- | ---------------------- | ---- | ------------------------- | +| callback | AsyncCallback\ | 是 | 表示被指定的回调方法。| + +**示例:** + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.printDrawnCompleted((err, data) => { + if (err) { + console.error('Operation failed. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Operation successful. Data:' + JSON.stringify(data)); +}); +``` + +## Context.printDrawnCompleted7+ + +printDrawnCompleted(): Promise\; + +通知系统绘制此页面功能所需的时间(Promise形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**返回值:** + +| 类型 | 说明 | +| --------------- | ------------------------- | +|Promise\ | 以Promise形式返回结果。 | + +**示例:** + +```js +import featureAbility from '@ohos.ability.featureAbility' +var context = featureAbility.getContext(); +context.printDrawnCompleted().then((data) => { + console.info("====>data====>" + JSON.stringify(data)); +}); +``` + + ## PermissionOptions7+ **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -912,29 +1231,6 @@ var context = featureAbility.getContext().getApplicationContext(); | permissions | 只读 | Array\ | 是 | 用户传入的权限。 | | authResults | 只读 | Array\ | 是 | 请求权限的结果。 | -## HapModuleInfo7+ - -Hap模块信息 - -| 名称 | 类型 | 可读 | 可写 | 说明 | -| ------ | ------ | ------ | ------ | ------ | -| name | string | 是 | 否 | 模块名称。 | -| description | string | 是 | 否 | 模块描述信息。 | -| descriptionId | number | 是 | 否 | 描述信息ID。 | -| icon | string | 是 | 否 | 模块图标。 | -| label | string | 是 | 否 | 模块标签。 | -| labelId | number | 是 | 否 | 模块标签ID。 | -| iconId | number | 是 | 否 | 模块图标ID。 | -| backgroundImg | string | 是 | 否 | 模块背景图片。 | -| supportedModes | number | 是 | 否 | 模块支持的模式。 | -| reqCapabilities | Array\ | 是 | 否 | 模块运行需要的能力。 | -| deviceTypes | Array\ | 是 | 否 | 支持运行的设备类型。 | -| abilityInfo | Array\ | 是 | 否 | Ability信息。 | -| moduleName | string | 是 | 否 | 模块名。 | -| mainAbilityName | string | 是 | 否 | 入口Ability名称。 | -| installationFree | boolean | 是 | 否 | 是否支持免安装。 | -| mainElementName | string | 是 | 否 | 入口ability信息。 | - ## AppVersionInfo7+ | 名称 | 类型 | 可读 | 可写 | 说明 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-ability-context.md b/zh-cn/application-dev/reference/apis/js-apis-ability-context.md index 8b00de96a4..160c83ee23 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-ability-context.md +++ b/zh-cn/application-dev/reference/apis/js-apis-ability-context.md @@ -306,7 +306,7 @@ startAbilityForResultWithAccount(want: Want, accountId: number, options: StartOp ``` - ## AbilityContext.startAbilityForResultWithAccount +## AbilityContext.startAbilityForResultWithAccount startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\; @@ -352,7 +352,271 @@ startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartO console.log('---------- startAbilityForResultWithAccount fail, err: -----------', err); }) ``` +## AbilityContext.startServiceExtensionAbility + +startServiceExtensionAbility(want: Want, callback: AsyncCallback\): void; + +启动一个新的ServiceExtensionAbility(callback形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 | +| callback | AsyncCallback\ | 是 | 启动Ability的回调函数。 | + +**示例:** + + ```js + var want = { + "deviceId": "", + "bundleName": "com.extreme.test", + "abilityName": "MainAbility" + }; + this.context.startServiceExtensionAbility(want, (err) => { + console.log('---------- startServiceExtensionAbility fail, err: -----------', err); + }); + ``` + +## AbilityContext.startServiceExtensionAbility + +startServiceExtensionAbility(want: Want): Promise\; + +启动一个新的ServiceExtensionAbility(Promise形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 | + +**示例:** + + ```js + var want = { + "deviceId": "", + "bundleName": "com.extreme.test", + "abilityName": "MainAbility" + }; + this.context.startServiceExtensionAbility(want) + .then((data) => { + console.log('---------- startServiceExtensionAbility success, data: -----------', data); + }) + .catch((err) => { + console.log('---------- startServiceExtensionAbility fail, err: -----------', err); + }) + ``` +## AbilityContext.startServiceExtensionAbilityWithAccount + +startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void; + +启动一个新的ServiceExtensionAbility(callback形式)。 + +**需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 | +| accountId | number | 是 | 需要启动的accountId。 | +| callback | AsyncCallback\ | 是 | 启动Ability的回调函数。 | + +**示例:** + + ```js + var want = { + "deviceId": "", + "bundleName": "com.extreme.test", + "abilityName": "MainAbility" + }; + var accountId = 100; + this.context.startServiceExtensionAbilityWithAccount(want,accountId, (err) => { + console.log('---------- startServiceExtensionAbilityWithAccount fail, err: -----------', err); + }); + ``` + +## AbilityContext.startServiceExtensionAbilityWithAccount + +startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\; + +启动一个新的ServiceExtensionAbility(Promise形式)。 + +**需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 | +| accountId | number | 是 | 需要启动的accountId。 | + +**示例:** + + ```js + var want = { + "deviceId": "", + "bundleName": "com.extreme.test", + "abilityName": "MainAbility" + }; + var accountId = 100; + this.context.startServiceExtensionAbilityWithAccount(want,accountId) + .then((data) => { + console.log('---------- startServiceExtensionAbilityWithAccount success, data: -----------', data); + }) + .catch((err) => { + console.log('---------- startServiceExtensionAbilityWithAccount fail, err: -----------', err); + }) + ``` +## AbilityContext.stopServiceExtensionAbility +stopServiceExtensionAbility(want: Want, callback: AsyncCallback\): void; + +停止同一应用程序内的服务(callback形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 | +| callback | AsyncCallback\ | 是 | 启动Ability的回调函数。 | + +**示例:** + + ```js + var want = { + "deviceId": "", + "bundleName": "com.extreme.test", + "abilityName": "MainAbility" + }; + this.context.stopServiceExtensionAbility(want, (err) => { + console.log('---------- stopServiceExtensionAbility fail, err: -----------', err); + }); + ``` + +## AbilityContext.stopServiceExtensionAbility + +stopServiceExtensionAbility(want: Want): Promise\; + +停止同一应用程序内的服务(Promise形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 | + +**示例:** + + ```js + var want = { + "deviceId": "", + "bundleName": "com.extreme.test", + "abilityName": "MainAbility" + }; + this.context.stopServiceExtensionAbility(want) + .then((data) => { + console.log('---------- stopServiceExtensionAbility success, data: -----------', data); + }) + .catch((err) => { + console.log('---------- stopServiceExtensionAbility fail, err: -----------', err); + }) + ``` + +## AbilityContext.stopServiceExtensionAbilityWithAccount + +stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void; + +使用帐户停止同一应用程序内的服务(callback形式)。 + +**需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 | +| accountId | number | 是 | 需要启动的accountId。 | +| callback | AsyncCallback\ | 是 | 启动Ability的回调函数。 | + +**示例:** + + ```js + var want = { + "deviceId": "", + "bundleName": "com.extreme.test", + "abilityName": "MainAbility" + }; + var accountId = 100; + this.context.stopServiceExtensionAbilityWithAccount(want,accountId, (err) => { + console.log('---------- stopServiceExtensionAbilityWithAccount fail, err: -----------', err); + }); + ``` + +## AbilityContext.stopServiceExtensionAbilityWithAccount + +stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\; + +使用帐户停止同一应用程序内的服务(Promise形式)。 + +**需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 | +| accountId | number | 是 | 需要启动的accountId。 | + +**示例:** + + ```js + var want = { + "deviceId": "", + "bundleName": "com.extreme.test", + "abilityName": "MainAbility" + }; + var accountId = 100; + this.context.stopServiceExtensionAbilityWithAccount(want,accountId) + .then((data) => { + console.log('---------- stopServiceExtensionAbilityWithAccount success, data: -----------', data); + }) + .catch((err) => { + console.log('---------- stopServiceExtensionAbilityWithAccount fail, err: -----------', err); + }) + ``` ## AbilityContext.terminateSelf diff --git a/zh-cn/application-dev/reference/apis/js-apis-ability-wantConstant.md b/zh-cn/application-dev/reference/apis/js-apis-ability-wantConstant.md index 12d235ff4d..13b1ed18b8 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-ability-wantConstant.md +++ b/zh-cn/application-dev/reference/apis/js-apis-ability-wantConstant.md @@ -46,6 +46,8 @@ want操作的常数。 | ACTION_FILE_SELECT7+ | ohos.action.fileSelect | 指示选择文件的操作。 | | PARAMS_STREAM7+ | ability.params.stream | 指示与连接发送数据一起使用时,包含与意图相关联的数据流的URI。 | | ACTION_APP_ACCOUNT_OAUTH 8+ | ohos.account.appAccount.action.oauth | 指示提供oauth服务的操作。 | +| ACTION_MARKER_DOWNLOAD 9+ | ohos.want.action.marketDownload | 表示从应用程序市场下载应用程序的的操作。 | + ## wantConstant.Entity diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-abilityDelegator.md b/zh-cn/application-dev/reference/apis/js-apis-application-abilityDelegator.md index fada27b850..e16c93cc90 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-application-abilityDelegator.md +++ b/zh-cn/application-dev/reference/apis/js-apis-application-abilityDelegator.md @@ -628,7 +628,7 @@ abilityDelegator.getCurrentTopAbility((err : any, data : any) => { -### printSync +### printSync9+ printSync(msg: string): void @@ -654,7 +654,7 @@ abilityDelegator.printSync(msg); -### print +### print9+ print(msg: string, callback: AsyncCallback\): void @@ -683,7 +683,7 @@ abilityDelegator.print(msg, (err : any) => { -### print +### print9+ print(msg: string): Promise\ diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-context.md b/zh-cn/application-dev/reference/apis/js-apis-application-context.md index 14d20ed469..bcb6005cd2 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-application-context.md +++ b/zh-cn/application-dev/reference/apis/js-apis-application-context.md @@ -27,7 +27,7 @@ import AbilityContext from '@ohos.application.Ability' **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core - | 名称 | 参数类型 | 可读 | 可写 | 说明 | +| 名称 | 参数类型 | 可读 | 可写 | 说明 | | -------- | -------- | -------- | -------- | -------- | | resourceManager | resmgr.ResourceManager; | 是 | 否 | ResourceManager对象。 | | applicationInfo | ApplicationInfo | 是 | 否 | 当前应用信息。 | @@ -47,8 +47,12 @@ createBundleContext(bundleName: string): Context; 创建指定应用上下文。 +**需要权限**:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED + **系统能力**:SystemCapability.Ability.AbilityRuntime.Core +**系统API**: 此接口为系统接口,三方应用不支持调用。 + **参数:** | 参数名 | 类型 | 必填 | 说明 | @@ -117,6 +121,8 @@ createModuleContext(bundleName: string, moduleName: string): Context; **系统能力**:SystemCapability.Ability.AbilityRuntime.Core +**系统API**: 此接口为系统接口,三方应用不支持调用。 + **参数:** | 参数名 | 类型 | 必填 | 说明 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-appmanager.md b/zh-cn/application-dev/reference/apis/js-apis-appmanager.md index 84c6d3ed3a..c7459c049b 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-appmanager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-appmanager.md @@ -348,7 +348,7 @@ getForegroundApplications(callback: AsyncCallback\>): void; ## appManager.getForegroundApplications8+ -getProcessRunningInfos(): Promise\>; +getForegroundApplications(): Promise\>; 获取前台进程的应用程序。 @@ -588,6 +588,144 @@ clearUpApplicationData(bundleName: string): Promise\; ``` +## ApplicationStateObserver.onForegroundApplicationChanged8+ + +onForegroundApplicationChanged(appStateData: AppStateData): void; + +将在前台或后台应用程序更改时调用。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**:该接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| appStateData | [AppStateData](#appstatedata) | 否 | 状态更改的应用程序信息。 | + +**示例:** + +```js +import ApplicationStateObserver from '@ohos.application.ApplicationStateObserver' +const foregroundApplicationInfo = ApplicationStateObserver.onForegroundApplicationChanged(); +console.log('-------- foregroundApplicationInfo: ---------', foregroundApplicationInfo); +``` + +## ApplicationStateObserver.onAbilityStateChanged8+ + +onAbilityStateChanged(abilityStateData: AbilityStateData): void; + +将在能力状态更改时调用。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**:该接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| abilityStateData | [AbilityStateData](#abilitystatedata) | 否 | 状态更改的能力信息。 | + +**示例:** + +```js +import ApplicationStateObserver from '@ohos.application.ApplicationStateObserver' +const abilityStateChangedInfo = ApplicationStateObserver.onAbilityStateChanged(); +console.log('-------- abilityStateChangedInfo: ---------', abilityStateChangedInfo); +``` + +## ApplicationStateObserver.onProcessCreated8+ + +onProcessCreated(processData: ProcessData): void; + +将在创建进程时调用。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**:该接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| processData | [ProcessData](#processdata) | 否 | 进程信息。 | + +**示例:** + +```js +import ApplicationStateObserver from '@ohos.application.ApplicationStateObserver' +const processCreatedInfo = ApplicationStateObserver.onProcessCreated(); +console.log('-------- processCreatedInfo: ---------', processCreatedInfo); +``` + +## ApplicationStateObserver.onProcessDied8+ + +onProcessDied(processData: ProcessData): void; + +将在进程终止时调用。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**:该接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| processData | ProcessData | 否 | 进程信息。 | + +**示例:** + +```js +import ApplicationStateObserver from '@ohos.application.ApplicationStateObserver' +const processDiedInfo = ApplicationStateObserver.onProcessDied(); +console.log('-------- processDiedInfo: ---------', processDiedInfo); +``` + +## AppStateData + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core + +**系统API**:该接口为系统接口,三方应用不支持调用。 + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------- | -------- | -------------------- | ---- | ------------------------------------------------------------ | +| bundleName8+ | 只读 | string | 否 | 包名。 | +| uid8+ | 只读 | number | 否 | 用户ID。 | +| state8+ | 只读 | number | 否 | 进程信息。 | + +## AbilityStateData + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core + +**系统API**:该接口为系统接口,三方应用不支持调用。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ----------------------- | ---------| ---- | ---- | ------------------------- | +| pid8+ | number | 是 | 否 | 进程ID。 | +| bundleName8+ | string | 是 | 否 | 应用包名。 | +| abilityName8+ | string | 是 | 否 | Ability名称。 | +| uid8+ | number | 是 | 否 | 用户ID。 | +| state8+ | number | 是 | 否 | 应用程序信息。 | +| moduleName9+ | string | 是 | 否 | Ability所属的HAP包的名称。 | +| abilityType8+ | string | 是 | 否 | 能力类型、页面或服务等。 | + +## ProcessData + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core + +**系统API**:该接口为系统接口,三方应用不支持调用。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ----------------------- | ---------| ---- | ---- | ------------------------- | +| pid8+ | number | 是 | 否 | 进程ID。 | +| bundleName8+ | string | 是 | 否 | 应用包名。 | +| uid8+ | number | 是 | 否 | 用户ID。 | + + + ## ProcessRunningInfo **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core diff --git a/zh-cn/application-dev/reference/apis/js-apis-dataAbilityHelper.md b/zh-cn/application-dev/reference/apis/js-apis-dataAbilityHelper.md index 3810f7281a..16d5108ce9 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-dataAbilityHelper.md +++ b/zh-cn/application-dev/reference/apis/js-apis-dataAbilityHelper.md @@ -662,7 +662,7 @@ DAHelper.delete( ## DataAbilityHelper.delete -delete(uri: string, predicates: dataAbility.DataAbilityPredicates): Promise\ +delete(uri: string, predicates?: dataAbility.DataAbilityPredicates): Promise\; 从数据库中删除一个或多个数据记录(Promise形式)。 @@ -741,7 +741,7 @@ DAHelper.update( ## DataAbilityHelper.update -update(uri: string, valuesBucket: rdb.ValuesBucket, predicates: dataAbility.DataAbilityPredicates): Promise\ +update(uri: string, valuesBucket: rdb.ValuesBucket, predicates?: dataAbility.DataAbilityPredicates): Promise\; 更新数据库中的数据记录(Promise形式)。 @@ -825,7 +825,7 @@ DAHelper.query( ## DataAbilityHelper.query -query(uri: string, columns: Array\, predicates: dataAbility.DataAbilityPredicates): Promise\ +query(uri: string, columns?: Array, predicates?: dataAbility.DataAbilityPredicates): Promise\; 查询数据库中的数据(Promise形式)。 @@ -934,6 +934,10 @@ dataAbilityHelper.call("dataability:///com.example.jsapidemo.UserDataAbility", " ``` ## PacMap +[key: string]: number | string | boolean | Array\ | null; + +**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel + | 名称 | 参数类型 | 必填 | 说明 | | ------ | ------ | ------ | ------ | -| [key: string] | number \| string \| boolean \| Array\ \| null | 是 | 数据存储在键值对中。 | \ No newline at end of file +| [key: string] | number \| string \| boolean \| Array\ \| null | Yes| 数据存储在键值对中。| \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/js-apis-errorManager.md b/zh-cn/application-dev/reference/apis/js-apis-errorManager.md new file mode 100644 index 0000000000..e7c10cedb7 --- /dev/null +++ b/zh-cn/application-dev/reference/apis/js-apis-errorManager.md @@ -0,0 +1,127 @@ +# ErrorManager + +ErrorManager模块提供对错误观察器的注册和注销的能力。 + +> **说明:** +> +> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 + +## 导入模块 +``` +import errorManager from '@ohos.application.errorManager' +``` + +## ErrorManager.registerErrorObserver + +registerErrorObserver(observer: ErrorObserver): number; + +注册错误观测器。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| observer | [ErrorObserver](#errorobserver) | 否 | 返回观察者的数字代码。 | + +**示例:** + +```js +var observer = "12345"; +errorManager.registerErrorObserver(observer) +.then((data) => { + console.log('----------- registerErrorObserver success ----------', data); +}) +.catch((err) => { + console.log('----------- registerErrorObserver fail ----------', err); +}) + +``` + +## ErrorManager.unregisterErrorObserver + +unregisterErrorObserver(observerId: number, callback: AsyncCallback\): void; + +注销错误观测器。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| observerId | number | 否 | 返回观察者的数字代码。 | +| callback | AsyncCallback\ | 否 | 表示指定的回调方法。 | + +**示例:** + +```js +var observerId = 100; + +function unregisterErrorObserver(err) { + if (err) { + console.log('------------ unregisterErrorObserverCallback ------------', err); + } +} +errorManager.unregisterErrorObserver(observerId, unregisterErrorObserverCallback); + +``` + +## ErrorManager.unregisterErrorObserver + +unregisterErrorObserver(observerId: number): Promise\; + +注销错误观测器。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| observerId | number | 否 | 返回观察者的数字代码。 | + +**返回值:** + +| 类型 | 说明 | +| -------- | -------- | +| Promise\ | 返回执行结果。 | + +**示例:** + +```js +var observerId = 100; +errorManager.unregisterErrorObserver(observerId) +.then((data) => { + console.log('----------- unregisterErrorObserver success ----------', data); +}) +.catch((err) => { + console.log('----------- unregisterErrorObserver fail ----------', err); +}) + +``` + +## ErrorObserver + +onUnhandledException(errMsg: string): void; + +将在js运行时引发用户未捕获的异常时调用。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| errMsg | string | 否 | 有关异常的消息和错误堆栈跟踪。 | + +**示例:** + +```js +var errMsg = "12345"; +errorManager.onUnhandledException(errMsg, (error) => { + console.log("error.code = " + error.code) +}) + +``` \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/js-apis-extension-context.md b/zh-cn/application-dev/reference/apis/js-apis-extension-context.md index 9add67e43a..4be9d179fc 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-extension-context.md +++ b/zh-cn/application-dev/reference/apis/js-apis-extension-context.md @@ -17,3 +17,6 @@ ExtensionContext模块提供扩展的上下文的能力,包括允许访问特 | -------- | -------- | -------- | -------- | -------- | | currentHapModuleInfo | HapModuleInfo | 是 | 否 | 当前Hap包的信息。 | | config | Configuration | 是 | 否 | 模块的配置信息。 | +| extensionAbilityInfo | [ExtensionAbilityInfo](js-apis-bundle-ExtensionAbilityInfo.md) | 是 | 否 | 服务扩展信息。 | + + diff --git a/zh-cn/application-dev/reference/apis/js-apis-featureAbility.md b/zh-cn/application-dev/reference/apis/js-apis-featureAbility.md index a20771dcda..5d131e1dfc 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-featureAbility.md +++ b/zh-cn/application-dev/reference/apis/js-apis-featureAbility.md @@ -327,8 +327,6 @@ featureAbility.terminateSelfWithResult( }); ``` - - ## featureAbility.hasWindowFocus7+ hasWindowFocus(callback: AsyncCallback\): void @@ -350,8 +348,6 @@ import featureAbility from '@ohos.ability.featureAbility'; featureAbility.hasWindowFocus() ``` - - ## featureAbility.hasWindowFocus7+ hasWindowFocus(): Promise\ @@ -375,8 +371,6 @@ featureAbility.hasWindowFocus().then((data) => { }); ``` - - ## featureAbility.getWant getWant(callback: AsyncCallback\): void @@ -398,8 +392,6 @@ import featureAbility from '@ohos.ability.featureAbility'; featureAbility.getWant() ``` - - ## featureAbility.getWant getWant(): Promise\ @@ -445,8 +437,6 @@ var context = featureAbility.getContext() context.getBundleName() ``` - - ## featureAbility.terminateSelf7+ terminateSelf(callback: AsyncCallback\): void @@ -468,8 +458,6 @@ import featureAbility from '@ohos.ability.featureAbility'; featureAbility.terminateSelf() ``` - - ## featureAbility.terminateSelf7+ terminateSelf(): Promise\ @@ -508,18 +496,6 @@ connectAbility(request: Want, options:ConnectOptions): number | request | [Want](js-apis-application-Want.md) | 是 | 表示被连接的ServiceAbility。 | | options | [ConnectOptions](#connectoptions) | 是 | 被指定的回调方法。 | -## Want - -want类型说明 - -**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityBase - -| 名称 | 读写属性 | 类型 | 必填 | 描述 | -| ----------- | ---- | ------ | ---- | ---------------------------------------- | -| deviceId | 只读 | string | 否 | 表示被连接的ServiceAbility的设备id,缺省表示连接本地的ServiceAbility。 | -| bundleName | 只读 | string | 是 | 表示被连接的ServiceAbility的包名。 | -| abilityName | 只读 | string | 是 | 表示被连接的ServiceAbility的类名。 | - ## ConnectOptions ConnectOptions类型说明 diff --git a/zh-cn/application-dev/reference/apis/js-apis-formextension.md b/zh-cn/application-dev/reference/apis/js-apis-formextension.md index f014698cb8..4c0c8a8554 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-formextension.md +++ b/zh-cn/application-dev/reference/apis/js-apis-formextension.md @@ -225,7 +225,7 @@ onConfigurationUpdated(config: Configuration): void; } ``` - ## FormExtension.onAcquireFormState +## FormExtension.onAcquireFormState onAcquireFormState?(want: Want): formInfo.FormState; diff --git a/zh-cn/application-dev/reference/apis/js-apis-formextensioncontext.md b/zh-cn/application-dev/reference/apis/js-apis-formextensioncontext.md index 841b484a23..ac582577cd 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-formextensioncontext.md +++ b/zh-cn/application-dev/reference/apis/js-apis-formextensioncontext.md @@ -13,80 +13,6 @@ FormExtensionContext模块提供FormExtension具有的接口和能力。 FormExtensionContext模块是FormExtension的上下文环境,继承自ExtensionContext。 -## FormExtensionContext.updateForm - -updateForm(formId: string, formBindingData: formBindingData.FormBindingData, callback: AsyncCallback\): void - -主动更新卡片。 - -**系统能力**:SystemCapability.Ability.Form - -**参数:** - - | 参数名 | 类型 | 必填 | 说明 | - | --------------- | ------------------------------------------------------------ | ---- | -------------------------------------- | - | formId | string | 是 | 请求更新的卡片ID。 | - | formBindingData | [formBindingData.FormBindingData](js-apis-formbindingdata.md#formbindingdata) | 是 | 卡片新的数据。 | - | callback | AsyncCallback\ | 是 | 回调函数,返回接口调用是否成功的结果。 | - -**示例:** - - ```js - import formBindingData from '@ohos.application.formBindingData' - import FormExtension from '@ohos.application.FormExtension' - export default class MyFormExtension extends FormExtension { - onUpdate(formId) { - console.log('FormExtension onUpdate, formId:' + formId); - let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"}); - this.context.updateForm(formId, obj2, (data)=>{ - console.log('FormExtension context updateForm, data:' + data); - }); - } - } - - - ``` - -## FormExtensionContext.updateForm - -updateForm(formId: string, formBindingData: formBindingData.FormBindingData): Promise\ - -更新卡片。 - -**系统能力**:SystemCapability.Ability.Form - -**参数:** - - | 参数名 | 类型 | 必填 | 说明 | - | --------------- | ------------------------------------------------------------ | ---- | ------------------ | - | formId | string | 是 | 请求更新的卡片ID。 | - | formBindingData | [formBindingData.FormBindingData](js-apis-formbindingdata.md#formbindingdata) | 是 | 卡片新的数据。 | - -**返回值:** - - | 类型 | 说明 | - | -------------- | --------------------------------- | - | Promise\ | 返回一个Promise,包含接口的结果。 | - -**示例:** - - ```js - import formBindingData from '@ohos.application.formBindingData' - import FormExtension from '@ohos.application.FormExtension' - export default class MyFormExtension extends FormExtension { - onUpdate(formId) { - console.log('FormExtension onUpdate, formId:' + formId); - let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"}); - this.context.updateForm(formId, obj2) - .then((data)=>{ - console.log('FormExtension context updateForm, data:' + data); - }).catch((error) => { - console.error('Operation updateForm failed. Cause: ' + error);}); - } - } - - ``` - ## FormExtensionContext.startAbility startAbility(want: Want, callback: AsyncCallback<void>): void @@ -95,6 +21,8 @@ startAbility(want: Want, callback: AsyncCallback<void>): void **系统能力**:SystemCapability.Ability.Form +**系统API**: 此接口为系统接口,三方应用不支持调用。 + **参数:** | 参数名 | 类型 | 必填 | 说明 | @@ -126,6 +54,8 @@ startAbility(want: Want): Promise<void> **系统能力**:SystemCapability.Ability.Form +**系统API**: 此接口为系统接口,三方应用不支持调用。 + **参数:** | 参数名 | 类型 | 必填 | 说明 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-formprovider.md b/zh-cn/application-dev/reference/apis/js-apis-formprovider.md index 9e7e8e0c5a..3d81a06446 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-formprovider.md +++ b/zh-cn/application-dev/reference/apis/js-apis-formprovider.md @@ -238,13 +238,13 @@ formProvider.getFormsInfo(filter).then((data) => { ## requestPublishForm9+ -requestPublishForm(want: Want, formBindingData: formBindingData.FormBindingData, callback: AsyncCallback<string>): <void>; +requestPublishForm(want: Want, formBindingData: formBindingData.FormBindingData, callback: AsyncCallback\): void; 请求发布一张卡片到使用方。 -**系统能力:** +**系统能力:** SystemCapability.Ability.Form -SystemCapability.Ability.Form +**系统API**: 此接口为系统接口,三方应用不支持调用。 **参数:** @@ -278,13 +278,13 @@ SystemCapability.Ability.Form ## requestPublishForm9+ -requestPublishForm(want: Want, callback: AsyncCallback<string>): <void>; +requestPublishForm(want: Want, callback: AsyncCallback<string>): void; 请求发布一张卡片到使用方。 -**系统能力:** +**系统能力:** SystemCapability.Ability.Form -SystemCapability.Ability.Form +**系统API**: 此接口为系统接口,三方应用不支持调用。 **参数:** @@ -319,9 +319,9 @@ requestPublishForm(want: Want, formBindingData?: formBindingData.FormBindingData 请求发布一张卡片到使用方。 -**系统能力:** +**系统能力:** SystemCapability.Ability.Form -SystemCapability.Ability.Form +**系统API**: 此接口为系统接口,三方应用不支持调用。 **参数:** @@ -362,6 +362,8 @@ isRequestPublishFormSupported(callback: AsyncCallback<boolean>): void; **系统能力:** SystemCapability.Ability.Form +**系统API**: 此接口为系统接口,三方应用不支持调用。 + **参数:** | 参数名 | 类型 | 必填 | 说明 | @@ -404,6 +406,8 @@ isRequestPublishFormSupported(): Promise<boolean>; **系统能力:** SystemCapability.Ability.Form +**系统API**: 此接口为系统接口,三方应用不支持调用。 + **返回值:** | 类型 | 说明 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-missionManager.md b/zh-cn/application-dev/reference/apis/js-apis-missionManager.md index af0eb8d91a..0a4ded95e1 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-missionManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-missionManager.md @@ -362,6 +362,88 @@ getMissionSnapShot(deviceId: string, missionId: number): Promise<MissionSnaps }); ``` +## missionManager.getLowResolutionMissionSnapShot + +getLowResolutionMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback\): void; + +使用给定的任务ID获取任务低分辨率快照。 + +**需要权限**:ohos.permission.MANAGE_MISSIONS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | deviceId | string | 是 | 设备ID,本机默认为空字符串。 | + | missionId | number | 是 | 任务ID。 | + | callback | AsyncCallback<[MissionSnapshot](js-apis-application-MissionSnapshot.md)> | 是 | 执行结果回调函数,返回任务快照信息。 | + +**示例:** + + ```js + import missionManager from '@ohos.application.missionManager' + + missionManager.getMissionInfos("", 10, (error, missions) => { + console.log("getMissionInfos is called, error.code = " + error.code); + console.log("size = " + missions.length); + console.log("missions = " + JSON.stringify(missions)); + var id = missions[0].missionId; + + missionManager.getLowResolutionMissionSnapShot("", id, (error, snapshot) => { + console.log("getLowResolutionMissionSnapShot is called, error.code = " + error.code); + console.log("bundleName = " + snapshot.ability.bundleName); + }) + }) + ``` + + +## missionManager.getLowResolutionMissionSnapShot + +getLowResolutionMissionSnapShot(deviceId: string, missionId: number): Promise\; + +使用给定的任务ID获取任务低分辨率快照。 + +**需要权限**:ohos.permission.MANAGE_MISSIONS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | deviceId | string | 是 | 设备ID,本机默认为空字符串。 | + | missionId | number | 是 | 任务ID。 | + +**返回值:** + + | 类型 | 说明 | + | -------- | -------- | + | Promise<[MissionSnapshot](js-apis-application-MissionSnapshot.md)> | 任务快照信息。 | + +**示例:** + + ```js + import missionManager from '@ohos.application.missionManager' + + var allMissions; + missionManager.getMissionInfos("",10).then(function(res){ + allMissions=res; + }).catch(function(err){console.log(err);}); + console.log("size = " + allMissions.length); + console.log("missions = " + JSON.stringify(allMissions)); + var id = allMissions[0].missionId; + + var snapshot = missionManager.getLowResolutionMissionSnapShot("", id).catch(function (err){ + console.log(err); + }); + ``` + ## missionManager.lockMission diff --git a/zh-cn/application-dev/reference/apis/js-apis-service-extension-ability.md b/zh-cn/application-dev/reference/apis/js-apis-service-extension-ability.md index 1a99c38a34..f3a72caed5 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-service-extension-ability.md +++ b/zh-cn/application-dev/reference/apis/js-apis-service-extension-ability.md @@ -230,7 +230,7 @@ dump(params: Array\): Array\; 转储客户端信息时调用。 -**系统能力**:SystemCapability.Ability.AbilityRuntime.Core +**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore **系统API**: 此接口为系统接口,三方应用不支持调用。 diff --git a/zh-cn/application-dev/reference/apis/js-apis-service-extension-context.md b/zh-cn/application-dev/reference/apis/js-apis-service-extension-context.md index b92fbe05c2..a7df410fcb 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-service-extension-context.md +++ b/zh-cn/application-dev/reference/apis/js-apis-service-extension-context.md @@ -1,8 +1,8 @@ # ServiceExtensionContext -ServiceExtensionContext模块是ServiceExtension的上下文环境,继承自ExtensionContext。 +ServiceExtensionContext模块是ServiceExtensionAbility的上下文环境,继承自ExtensionContext。 -ServiceExtensionContext模块提供ServiceExtension具有的能力和接口,包括启动、停止、绑定、解绑Ability。 +ServiceExtensionContext模块提供ServiceExtensionAbility具有的能力和接口,包括启动、停止、绑定、解绑Ability。 > **说明:** > @@ -11,15 +11,16 @@ ServiceExtensionContext模块提供ServiceExtension具有的能力和接口, ## 使用说明 -ServiceExtensionContext模块是ServiceExtension的上下文环境,继承自ExtensionContext。 +在使用ServiceExtensionContext的功能前,需要通过ServiceExtensionAbility子类实例获取。 -## 属性 - -**系统能力**:SystemCapability.Ability.AbilityRuntime.Core - -| 名称 | 参数类型 | 可读 | 可写 | 说明 | -| -------- | -------- | -------- | -------- | -------- | -| extensionAbilityInfo | [ExtensionAbilityInfo](js-apis-bundle-ExtensionAbilityInfo.md) | 是 | 否 | 服务扩展信息。 | +```js + import ServiceExtensionAbility from '@ohos.application.ServiceExtensionAbility'; + class MainAbility extends ServiceExtensionAbility { + onCreate() { + let context = this.context; + } + } +``` ## startAbility @@ -41,18 +42,12 @@ startAbility(want: Want, callback: AsyncCallback<void>): void; **示例:** ```js - import ExtensionContext from '@ohos.application.ServiceExtensionAbility'; - class MainAbility extends ExtensionContext { - onWindowStageCreate(windowStage) { - let want = { - "bundleName": "com.example.myapp", - "abilityName": "MyAbility"}; - this.context.startAbility(want, (err) => { - console.log('startAbility result:' + JSON.stringify(err)); - }); - } - } - + let want = { + "bundleName": "com.example.myapp", + "abilityName": "MyAbility"}; + this.context.startAbility(want, (err) => { + console.log('startAbility result:' + JSON.stringify(err)); + }); ``` ## startAbility @@ -81,20 +76,16 @@ startAbility(want: Want, options?: StartOptions): Promise\; **示例:** ```js - import ExtensionContext from '@ohos.application.ServiceExtensionAbility'; - class MainAbility extends ExtensionContext { - onWindowStageCreate(windowStage) { - let want = { - "bundleName": "com.example.myapp", - "abilityName": "MyAbility" - }; - this.context.startAbility(want).then((data) => { - console.log('success:' + JSON.stringify(data)); - }).catch((error) => { - console.log('failed:' + JSON.stringify(error)); - }); - } - } + let want = { + "bundleName": "com.example.myapp", + "abilityName": "MyAbility" + }; + this.context.startAbility(want).then((data) => { + console.log('success:' + JSON.stringify(data)); + }).catch((error) => { + console.log('failed:' + JSON.stringify(error)); + }); + ``` ## startAbility @@ -127,13 +118,13 @@ startAbility(want: Want, options: StartOptions, callback: AsyncCallback<void& windowMode: 0, }; this.context.startAbility(want, options, (error) => { - console.log("error.code = " + error.code) + console.log("error.code = " + error.code) }) ``` ## ServiceExtensionContext.startAbilityWithAccount -startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void; +startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void; 根据account启动Ability(callback形式)。 @@ -203,7 +194,7 @@ startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, ca ## ServiceExtensionContext.startAbilityWithAccount -startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\; +startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\; 根据account启动Ability(Promise形式)。 @@ -240,6 +231,273 @@ startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): }) ``` +## ServiceExtensionContext.startServiceExtensionAbility + +startServiceExtensionAbility(want: Want, callback: AsyncCallback\): void; + +启动一个新的ServiceExtensionAbility(callback形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 | +| callback | AsyncCallback\ | 是 | 启动Ability的回调函数。 | + +**示例:** + + ```js + var want = { + "deviceId": "", + "bundleName": "com.extreme.test", + "abilityName": "MainAbility" + }; + this.context.startServiceExtensionAbility(want, (err) => { + console.log('---------- startServiceExtensionAbility fail, err: -----------', err); + }); + ``` + +## ServiceExtensionContext.startServiceExtensionAbility + +startServiceExtensionAbility(want: Want): Promise\; + +启动一个新的ServiceExtensionAbility(Promise形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 | + +**示例:** + + ```js + var want = { + "deviceId": "", + "bundleName": "com.extreme.test", + "abilityName": "MainAbility" + }; + this.context.startServiceExtensionAbility(want) + .then((data) => { + console.log('---------- startServiceExtensionAbility success, data: -----------', data); + }) + .catch((err) => { + console.log('---------- startServiceExtensionAbility fail, err: -----------', err); + }) + ``` + +## ServiceExtensionContext.startServiceExtensionAbilityWithAccount + +startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void; + +启动一个新的ServiceExtensionAbility(callback形式)。 + +**需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 | +| accountId | number | 是 | 需要启动的accountId。 | +| callback | AsyncCallback\ | 是 | 启动Ability的回调函数。 | + +**示例:** + + ```js + var want = { + "deviceId": "", + "bundleName": "com.extreme.test", + "abilityName": "MainAbility" + }; + var accountId = 100; + this.context.startServiceExtensionAbilityWithAccount(want,accountId, (err) => { + console.log('---------- startServiceExtensionAbilityWithAccount fail, err: -----------', err); + }); + ``` + +## ServiceExtensionContext.startServiceExtensionAbilityWithAccount + +startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\; + +启动一个新的ServiceExtensionAbility(Promise形式)。 + +**需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 | +| accountId | number | 是 | 需要启动的accountId。 | + +**示例:** + + ```js + var want = { + "deviceId": "", + "bundleName": "com.extreme.test", + "abilityName": "MainAbility" + }; + var accountId = 100; + this.context.startServiceExtensionAbilityWithAccount(want,accountId) + .then((data) => { + console.log('---------- startServiceExtensionAbilityWithAccount success, data: -----------', data); + }) + .catch((err) => { + console.log('---------- startServiceExtensionAbilityWithAccount fail, err: -----------', err); + }) + ``` + +## ServiceExtensionContext.stopServiceExtensionAbility + +stopServiceExtensionAbility(want: Want, callback: AsyncCallback\): void; + +停止同一应用程序内的服务(callback形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 | +| callback | AsyncCallback\ | 是 | 启动Ability的回调函数。 | + +**示例:** + + ```js + var want = { + "deviceId": "", + "bundleName": "com.extreme.test", + "abilityName": "MainAbility" + }; + this.context.stopServiceExtensionAbility(want, (err) => { + console.log('---------- stopServiceExtensionAbility fail, err: -----------', err); + }); + ``` + +## ServiceExtensionContext.stopServiceExtensionAbility + +stopServiceExtensionAbility(want: Want): Promise\; + +停止同一应用程序内的服务(Promise形式)。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 | + +**示例:** + + ```js + var want = { + "deviceId": "", + "bundleName": "com.extreme.test", + "abilityName": "MainAbility" + }; + this.context.stopServiceExtensionAbility(want) + .then((data) => { + console.log('---------- stopServiceExtensionAbility success, data: -----------', data); + }) + .catch((err) => { + console.log('---------- stopServiceExtensionAbility fail, err: -----------', err); + }) + ``` + +## ServiceExtensionContext.stopServiceExtensionAbilityWithAccount + +stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void; + +使用帐户停止同一应用程序内的服务(callback形式)。 + +**需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 | +| accountId | number | 是 | 需要启动的accountId。 | +| callback | AsyncCallback\ | 是 | 启动Ability的回调函数。 | + +**示例:** + + ```js + var want = { + "deviceId": "", + "bundleName": "com.extreme.test", + "abilityName": "MainAbility" + }; + var accountId = 100; + this.context.stopServiceExtensionAbilityWithAccount(want,accountId, (err) => { + console.log('---------- stopServiceExtensionAbilityWithAccount fail, err: -----------', err); + }); + ``` + +## ServiceExtensionContext.stopServiceExtensionAbilityWithAccount + +stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\; + +使用帐户停止同一应用程序内的服务(Promise形式)。 + +**需要权限**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-Want.md) | 是 | 启动Ability的want信息。 | +| accountId | number | 是 | 需要启动的accountId。 | + +**示例:** + + ```js + var want = { + "deviceId": "", + "bundleName": "com.extreme.test", + "abilityName": "MainAbility" + }; + var accountId = 100; + this.context.stopServiceExtensionAbilityWithAccount(want,accountId) + .then((data) => { + console.log('---------- stopServiceExtensionAbilityWithAccount success, data: -----------', data); + }) + .catch((err) => { + console.log('---------- stopServiceExtensionAbilityWithAccount fail, err: -----------', err); + }) + ``` ## ServiceExtensionContext.terminateSelf @@ -260,19 +518,11 @@ terminateSelf(callback: AsyncCallback<void>): void; **示例:** ```js - import ExtensionContext from '@ohos.application.ServiceExtensionAbility'; - class MainAbility extends ExtensionContext { - onWindowStageCreate(windowStage) { - this.context.terminateSelf((err) => { - console.log('terminateSelf result:' + JSON.stringify(err)); - }); - } - } - - + this.context.terminateSelf((err) => { + console.log('terminateSelf result:' + JSON.stringify(err)); + }); ``` - ## ServiceExtensionContext.terminateSelf terminateSelf(): Promise<void>; @@ -292,17 +542,11 @@ terminateSelf(): Promise<void>; **示例:** ```js - import ExtensionContext from '@ohos.application.ServiceExtensionAbility'; - class MainAbility extends ExtensionContext { - onWindowStageCreate(windowStage) { - this.context.terminateSelf().then((data) => { - console.log('success:' + JSON.stringify(data)); - }).catch((error) => { - console.log('failed:' + JSON.stringify(error)); - }); - } -} - + this.context.terminateSelf().then((data) => { + console.log('success:' + JSON.stringify(data)); + }).catch((error) => { + console.log('failed:' + JSON.stringify(error)); + }); ``` ## ServiceExtensionContext.connectAbility @@ -332,13 +576,13 @@ connectAbility(want: Want, options: ConnectOptions): number; ```js let want = { - "bundleName": "com.example.myapp", - "abilityName": "MyAbility" + "bundleName": "com.example.myapp", + "abilityName": "MyAbility" }; let options = { - onConnect: function(elementName, proxy) {}, - onDisConnect: function(elementName) {}, - onFailed: function(code) {} + onConnect(elementName, remote) { console.log('----------- onConnect -----------') }, + onDisconnect(elementName) { console.log('----------- onDisconnect -----------') }, + onFailed(code) { console.log('----------- onFailed -----------') } } let connection = this.context.connectAbility(want,options); ``` @@ -405,17 +649,11 @@ disconnectAbility(connection: number, callback:AsyncCallback<void>): void; **示例:** ```js - import ExtensionContext from '@ohos.application.ServiceExtensionAbility'; - class MainAbility extends ExtensionContext { - onWindowStageCreate(windowStage) { - let connection=1 - this.context.disconnectAbility(connection, (err) => { + let connection=1 + this.context.disconnectAbility(connection, (err) => { // connection为connectAbility中的返回值 console.log('terminateSelf result:' + JSON.stringify(err)); - }); - } - } - + }); ``` ## ServiceExtensionContext.disconnectAbility @@ -443,16 +681,11 @@ disconnectAbility(connection: number): Promise<void>; **示例:** ```js - import ExtensionContext from '@ohos.application.ServiceExtensionAbility'; - class MainAbility extends ExtensionContext { - onWindowStageCreate(windowStage) { - let connection=1 - this.context.disconnectAbility(connection).then((data) => { // connection为connectAbility中的返回值 + let connection=1 + this.context.disconnectAbility(connection).then((data) => { + // connection为connectAbility中的返回值 console.log('success:' + JSON.stringify(data)); - }).catch((error) => { + }).catch((error) => { console.log('failed:' + JSON.stringify(error)); - }); - } - } - + }); ``` \ No newline at end of file -- GitLab From 785c7813d49d26f2c28d6a684af3f24d2c97e79c Mon Sep 17 00:00:00 2001 From: king_he <6384784@qq.com> Date: Tue, 19 Jul 2022 01:41:52 +0000 Subject: [PATCH 063/868] update en/design/OpenHarmony-part-design.md. Signed-off-by: king_he <6384784@qq.com> --- en/design/OpenHarmony-part-design.md | 30 +++++++++++++++------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/en/design/OpenHarmony-part-design.md b/en/design/OpenHarmony-part-design.md index 75487ee884..e5d73b5ea6 100644 --- a/en/design/OpenHarmony-part-design.md +++ b/en/design/OpenHarmony-part-design.md @@ -4,7 +4,7 @@ For easy software design and management, OpenHarmony decouples software from physical components, parts, and modules. A **component** can be independently deployed and reused at the binary level. A **part** can be independently developed, built, and tested. A **module** can be reused at the code level. -OpenHarmony abstracts system capabilities as parts, so you can customize OSs for different devices by assembling and configuring these parts. +OpenHarmony abstracts system capabilities as parts, so you can assemble and configure these parts to customize an OS for different devices. ## Part Definition @@ -12,7 +12,7 @@ A part is the basic unit of system capabilities. Divided based on source code, e ## Part Division -Follow the following rules for part classification: +Observe the following rules for part classification: - A part must have an independent code directory for compiling libraries or executable files. @@ -50,7 +50,7 @@ Comply with the following rules and recommendations during parts design and deve #### **Part Name** -The name must reflect the key function of a part and must be globally unique in the system. The name can contain a maximum of 63 characters and must be in the unix\_like style, where only lowercase letters separated by underscores (\_) are used. +The name must reflect the key function of a part and must be globally unique in the system. It can contain a maximum of 63 characters and must be in the unix\_like style, where only lowercase letters separated by underscores (\_) are used. #### **Repository Name** @@ -96,21 +96,23 @@ The addition, deletion, and modification of parts must be reviewed by the archit Table 1 Part attribute review form -| Part Attribute| Description| +| Part Attribute | Description | | ------------ | ------------------------------------------------------------ | -| Part name| The name must reflect the key function of a part and must be globally unique in the system. The name can contain a maximum of 63 characters and must be in the unix\_like style, where only lowercase letters separated by underscores (\_) are used.| -| Subsystem| Subsystem to which the part belongs.| -| Function description| Brief description of the functions of the part in one or two sentences.| -| Configurable features| Features that can be configured externally.| -| Applicable systems| Mini system, small system, standard system, or their combinations.| -| Source code directory| Root directory of the source code of the part.| -| ROM | ROM baseline value of the part.| -| RAM | RAM baseline value of the part.| -| Dependencies| Parts and open source software on which the part depends.| +| Part name | The name must reflect the key function of a part and must be globally unique in the system. The name can contain a maximum of 63 characters and must be in the unix\_like style, where only lowercase letters separated by underscores (\_) are used. | +| Subsystem | Subsystem to which the part belongs. | +| Function description | Brief description of the functions of the part in one or two sentences. | +| Configurable features | Features that can be configured externally. | +| Applicable systems | Mini system, small system, standard system, or their combinations. | +| Source code directory | Root directory of the source code of the part. | +| ROM | ROM baseline value of the part. | +| RAM | RAM baseline value of the part. | +| Dependencies | Parts and open source software on which the part depends. | 2. Send an email to the architecture SIG (dev@openharmony.io) and the [related domain SIG leaders](https://gitee.com/openharmony/community/blob/master/sig/sigs_subsystem_list.md) for review. Use "Application for Adding/Deleting/Modifying OpenHarmony Parts" as the email subject, and include the filled-in **Table 1 Part Attribute Review Form** in the email body. -> Note: For modified parts, provide a before and after comparison of the part attributes. For deleted parts, provide the plan for stopping part maintenance. Exercise caution when deleting or modifying parts and evaluate the impact on existing versions. +> Note: +> +> For modified parts, provide a before and after comparison of the part attributes. For deleted parts, provide the plan for stopping part maintenance. Exercise caution when deleting or modifying parts and evaluate the impact on existing versions. 3. After the review is passed, create a part repository and modify the manifest according to [SIG Management Regulations](https://gitee.com/openharmony/community/blob/master/sig/README-EN.md). After the SIG is incubated, incorporate it into the main code library of OpenHarmony. -- GitLab From c651b85a0b7d6fa56eaee684cb4687d7ab1dafef Mon Sep 17 00:00:00 2001 From: zhouyanxu Date: Mon, 11 Jul 2022 15:18:12 +0800 Subject: [PATCH 064/868] updata driver-peripherals-vibrator-des.md Signed-off-by: zhouyanxu --- .../driver/driver-peripherals-vibrator-des.md | 285 +++++++++++++++--- 1 file changed, 235 insertions(+), 50 deletions(-) diff --git a/zh-cn/device-dev/driver/driver-peripherals-vibrator-des.md b/zh-cn/device-dev/driver/driver-peripherals-vibrator-des.md index a00c2accba..2681f15713 100755 --- a/zh-cn/device-dev/driver/driver-peripherals-vibrator-des.md +++ b/zh-cn/device-dev/driver/driver-peripherals-vibrator-des.md @@ -57,9 +57,11 @@ | 接口名 | 功能描述 | | -------------------------------------- | ------------------------------------------------ | -| int32_t StartOnce(uint32_t duration) | 按照指定持续时间触发振动马达,duration为振动持续时长。 | -| int32_t Start(const char *effectType) | 按照指定预置效果启动马达,effectType表示预置的预置效果。 | -| int32_t Stop(enum VibratorMode mode) | 按照指定的振动模式停止马达振动。 | +| int32_t StartOnce(uint32_t duration) | 按照指定持续时间触发振动马达,duration为振动持续时长。 | +| int32_t Start(const char *effectType) | 按照指定预置效果启动马达,effectType表示预置的预置效果。 | +| int32_t Stop(enum VibratorMode mode) | 按照指定的振动模式停止马达振动。 | +| int32_t EnableVibratorModulation(uint32_t duration, int32_t intensity, int32_t frequency) | 按照指定振幅、频率、持续时间触发振动马达。duration为振动持续时长,intensity为振动强度,frequency为振动频率。 | +| int32_t GetVibratorInfo(struct VibratorInfo **vibratorInfo); | 获取马达信息,包括是否支持振幅和频率的设置及振幅和频率的设置范围 。 | ### 开发步骤 @@ -90,13 +92,13 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 int32_t cmd, struct HdfSBuf *data, struct HdfSBuf *reply) { int32_t loop; - + for (loop = 0; loop < sizeof(g_vibratorCmdHandle) / sizeof(g_vibratorCmdHandle[0]); ++loop) { if ((cmd == g_vibratorCmdHandle[loop].cmd) && (g_vibratorCmdHandle[loop].func != NULL)) { return g_vibratorCmdHandle[loop].func(data, reply); } } - + return HDF_SUCCESS; } @@ -105,34 +107,34 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 { struct VibratorDriverData *drvData = NULL; CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(device, HDF_FAILURE); - + drvData = (struct VibratorDriverData *)OsalMemCalloc(sizeof(*drvData)); CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(drvData, HDF_ERR_MALLOC_FAIL); - + drvData->ioService.Dispatch = DispatchVibrator; drvData->device = device; device->service = &drvData->ioService; g_vibratorDrvData = drvData; - + return HDF_SUCCESS; } - + /* 马达驱动初始化入口函数*/ int32_t InitVibratorDriver(struct HdfDeviceObject *device) { struct VibratorDriverData *drvData = NULL; - + drvData->mode = VIBRATOR_MODE_BUTT; drvData->state = VIBRATOR_STATE_IDLE; ...... if (CreateVibratorHaptic(device) != HDF_SUCCESS) { - HDF_LOGE("%s: init workQueue fail!", __func__); + HDF_LOGE("%s: init workQueue failed!", __func__); return HDF_FAILURE; } - + return HDF_SUCCESS; } - + /* 释放马达驱动初始化时分配的资源 */ void ReleaseVibratorDriver(struct HdfDeviceObject *device) { @@ -168,7 +170,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 - 创建马达效果模型。 - ```hcs + ```c /* 创建马达效果模型,分配资源,解析马达效果HCS配置 */ int32_t CreateVibratorHaptic(struct HdfDeviceObject *device) { @@ -181,7 +183,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 hapticData->supportHaptic = false; if (OsalMutexInit(&hapticData->mutex) != HDF_SUCCESS) { - HDF_LOGE("%s: fail to init mutex", __func__); + HDF_LOGE("%s: failed to init mutex", __func__); goto EXIT; } @@ -189,7 +191,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 /* 解析马达效果HCS配置 */ if (ParserVibratorHapticConfig(device->property) != HDF_SUCCESS) { - HDF_LOGE("%s: parser haptic config fail!", __func__); + HDF_LOGE("%s: parser haptic config failed!", __func__); goto EXIT; } @@ -235,7 +237,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 马达硬件服务调用StartOnce接口动态配置持续振动时间;调用StartEffect接口启动静态配置的振动效果,为驱动开发者提供抽象的配置接口能力。 ```c - /* 按照指定持续时间触发振动马达,duration为振动持续时长 */ + /* 按照指定持续时间触发振动马达,duration为振动持续时长。 */ static int32_t StartOnce(struct HdfSBuf *data, struct HdfSBuf *reply) { uint32_t duration; @@ -250,14 +252,14 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 /* 根据振动效果的模式创建定时器 */ ret = StartHaptic(&config); if (ret != HDF_SUCCESS) { - HDF_LOGE("%s: start haptic fail!", __func__); + HDF_LOGE("%s: start haptic failed!", __func__); return ret; } return HDF_SUCCESS; } - /* 按照预置效果启动马达,effectType表示预置的预置效果 */ + /* 按照预置效果启动马达,effectType表示预置的预置效果。 */ static int32_t StartEffect(struct HdfSBuf *data, struct HdfSBuf *reply) { int32_t ret; @@ -272,7 +274,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 ret = StartHaptic(&config); if (ret != HDF_SUCCESS) { - HDF_LOGE("%s: start haptic fail!", __func__); + HDF_LOGE("%s: start haptic failed!", __func__); return ret; } @@ -287,10 +289,10 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 struct VibratorDriverData *drvData = GetVibratorDrvData(); (void)reply; ...... - /* 停止马达效果振动,销毁马达定时器 */ + /* 停止马达效果振动,销毁马达定时器。 */ ret = StopHaptic(); if (ret != HDF_SUCCESS) { - HDF_LOGE("%s: stop haptic fail!", __func__); + HDF_LOGE("%s: stop haptic failed!", __func__); return ret; } @@ -300,6 +302,58 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 return HDF_SUCCESS; } + + /* 按照指定振幅、频率、持续时间触发振动马达。duration为振动持续时长,intensity为振动强度,frequency为振动频率。 */ + static int32_t EnableModulationParameter(struct HdfSBuf *data, struct HdfSBuf *reply) + { + (void)reply; + struct VibratorEffectCfg config; + struct VibratorDriverData *drvData; + uint32_t duration; + int32_t intensity; + int32_t frequency; + int32_t ret; + ..... + (void)OsalMutexLock(&drvData->mutex); + drvData->mode = VIBRATOR_MODE_ONCE; + (void)OsalMutexUnlock(&drvData->mutex); + /* 设置振幅和频率 */ + ret = drvData->ops.SetParameter(intensity, frequency); + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s: set parameter failed", __func__); + return HDF_FAILURE; + } + + config.cfgMode = VIBRATOR_MODE_ONCE; + config.duration = duration; + config.effect = NULL; + + ret = StartHaptic(&config); + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s: start haptic failed", __func__); + return HDF_FAILURE; + } + + return HDF_SUCCESS; + } + + /* 获取马达信息,包括是否支持振幅和频率的设置及振幅和频率的设置范围。 */ + static int32_t GetVibratorInfo(struct HdfSBuf *data, struct HdfSBuf *reply) + { + (void)data; + struct VibratorDriverData *drvData; + + drvData = GetVibratorDrvData(); + CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(drvData, HDF_ERR_INVALID_PARAM); + CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(reply, HDF_ERR_INVALID_PARAM); + + if (!HdfSbufWriteBuffer(reply, &drvData->vibratorInfo, sizeof(drvData->vibratorInfo))) { + HDF_LOGE("%s: write sbuf failed", __func__); + return HDF_FAILURE; + } + + return HDF_SUCCESS; + } ``` 4. 马达驱动模型提供给开发者马达驱动差异化接口,开发者实现差异化接口。 @@ -319,50 +373,181 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 drvData->ops.Start = ops->Start; drvData->ops.StartEffect = ops->StartEffect; drvData->ops.Stop = ops->Stop; + drvData->ops.SetParameter = ops->SetParameter; + (void)OsalMutexUnlock(&drvData->mutex); + + return HDF_SUCCESS; + } + + /* 注册马达信息接口 */ + int32_t RegisterVibratorInfo(struct VibratorInfo *vibratorInfo) + { + struct VibratorDriverData *drvData = GetVibratorDrvData(); + + CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(vibratorInfo, HDF_FAILURE); + CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(drvData, HDF_FAILURE); + + (void)OsalMutexLock(&drvData->mutex); + if (memcpy_s(&drvData->vibratorInfo, sizeof(drvData->vibratorInfo), vibratorInfo, sizeof(*vibratorInfo)) != EOK) { + HDF_LOGE("%s: Memcpy vibrator config failed", __func__); + return HDF_FAILURE; + } (void)OsalMutexUnlock(&drvData->mutex); return HDF_SUCCESS; } ``` + + - 马达驱动模型提供给开发者马达驱动差异化接口,具体实现如下: ```c - /* 按照指定持续时间触发线性马达的振动 */ - static int32_t StartLinearVibrator() + /* 按照指定的振动模式停止马达的振动 */ + static int32_t StopModulationParameter() { - int32_t ret; - struct VibratorLinearDriverData *drvData = GetLinearVibratorData(); - CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(drvData, HDF_FAILURE); - ...... - ret = GpioWrite(drvData->gpioNum, GPIO_VAL_LOW); - if (ret != HDF_SUCCESS) { - HDF_LOGE("%s: pull gpio%d to %d level failed", __func__, drvData->gpioNum, GPIO_VAL_LOW); - return ret; + uint8_t value[DRV2605L_VALUE_BUTT]; + struct Drv2605lDriverData *drvData = NULL; + drvData = GetDrv2605lDrvData(); + + CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(drvData, HDF_FAILURE); + CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(drvData->drv2605lCfgData, HDF_FAILURE); + + value[DRV2605L_ADDR_INDEX] = (uint8_t)DRV2605_REG_MODE; + value[DRV2605L_VALUE_INDEX] = (uint8_t)DRV2605_MODE_STANDBY; + if (WriteDrv2605l(&drvData->drv2605lCfgData->vibratorBus.i2cCfg, value, sizeof(value)) != HDF_SUCCESS) { + HDF_LOGE("%s: i2c addr [%0X] write failed", __func__, value[DRV2605L_ADDR_INDEX]); + return HDF_FAILURE; + } + + value[DRV2605L_ADDR_INDEX] = (uint8_t)DRV2605_REG_RTPIN; + value[DRV2605L_VALUE_INDEX] = (uint8_t)&drvData->drv2605lCfgData->vibratorAttr.defaultIntensity; + if (WriteDrv2605l(&drvData->drv2605lCfgData->vibratorBus.i2cCfg, value, sizeof(value)) != HDF_SUCCESS) { + HDF_LOGE("%s: i2c addr [%0X] write failed", __func__, value[DRV2605L_ADDR_INDEX]); + } + + value[DRV2605L_ADDR_INDEX] = (uint8_t)DRV2605_REG_LRARESON; + value[DRV2605L_VALUE_INDEX] = (uint8_t)&drvData->drv2605lCfgData->vibratorAttr.defaultFrequency; + if (WriteDrv2605l(&drvData->drv2605lCfgData->vibratorBus.i2cCfg, value, sizeof(value)) != HDF_SUCCESS) { + HDF_LOGE("%s: i2c addr [%0X] write failed", __func__, value[DRV2605L_ADDR_INDEX]); } - return HDF_SUCCESS; - } - /* 按照预置振动效果触发线性马达的振动 */ - static int32_t StartEffectLinearVibrator(uint32_t effectType) - { - (void)effectType; - HDF_LOGE("%s: vibrator set build-in effect no support!", __func__); return HDF_SUCCESS; } - /* 按照指定的振动模式停止线性马达的振动 */ - static int32_t StopLinearVibrator() + /* 设置马达振幅和频率 */ + static void SetModulationParameter(int32_t intensity, int32_t frequency) { - int32_t ret; - struct VibratorLinearDriverData *drvData = GetLinearVibratorData(); + uint8_t value[DRV2605L_VALUE_BUTT]; + struct Drv2605lDriverData *drvData = NULL; + drvData = GetDrv2605lDrvData(); + CHECK_VIBRATOR_NULL_PTR_RETURN_VALUE(drvData, HDF_FAILURE); - ...... - ret = GpioWrite(drvData->gpioNum, GPIO_VAL_HIGH); - if (ret != HDF_SUCCESS) { - HDF_LOGE("%s: pull gpio%d to %d level failed", __func__, drvData->gpioNum, GPIO_VAL_HIGH); - return ret; + + if (intensity != 0) { + value[DRV2605L_ADDR_INDEX] = (uint8_t)DRV2605_REG_RTPIN; + value[DRV2605L_VALUE_INDEX] = (uint8_t)INTENSITY_MAPPING_VALUE(intensity); + if (WriteDrv2605l(&drvData->drv2605lCfgData->vibratorBus.i2cCfg, value, sizeof(value)) != HDF_SUCCESS) { + HDF_LOGE("%s: i2c addr [%0X] write failed", __func__, value[DRV2605L_ADDR_INDEX]); + return; + } + } else { + HDF_LOGD("%s: the setting of intensity 0 is not supported and \ + will be set as the system default intensity", __func__); + } + + if (frequency != 0) { + value[DRV2605L_ADDR_INDEX] = (uint8_t)DRV2605_REG_LRARESON; + value[DRV2605L_VALUE_INDEX] = (uint8_t)FREQUENCY_MAPPING_VALUE(frequency); + if (WriteDrv2605l(&drvData->drv2605lCfgData->vibratorBus.i2cCfg, value, sizeof(value)) != HDF_SUCCESS) { + HDF_LOGE("%s: i2c addr [%0X] write failed", __func__, value[DRV2605L_ADDR_INDEX]); + return; + } + } else { + HDF_LOGD("%s: the setting of frequency 0 is not supported and \ + will be set as the system default frequency", __func__); } - return HDF_SUCCESS; } - ``` \ No newline at end of file + ``` + +### 调测验证 + +驱动开发完成后,在传感器单元测试里面开发自测试用例,验证驱动基本功能。测试环境采用开发者自测试平台。 + +``` +/* 用例执行前,初始化马达接口实例。 */ +void HdfVibratorTest::SetUpTestCase() +{ + g_vibratorDev = NewVibratorInterfaceInstance(); +} +/* 用例资源释放 */ +void HdfVibratorTest::TearDownTestCase() +{ + if(g_vibratorDev != nullptr){ + FreeVibratorInterfaceInstance(); + g_vibratorDev = nullptr; + } +} + +/* 测试单次振动 */ +HWTEST_F(HdfVibratorTest, PerformOneShotVibratorDuration_001, TestSize.Level1) +{ + ASSERT_NE(nullptr, g_vibratorDev); + + int32_t startRet = g_vibratorDev->StartOnce(g_duration); + EXPECT_EQ(startRet, HDF_SUCCESS); + + OsalMSleep(g_sleepTime1); + + int32_t endRet = g_vibratorDev->Stop(VIBRATOR_MODE_ONCE); + EXPECT_EQ(endRet, HDF_SUCCESS); +} +/* 测试预置效果振动 */ +HWTEST_F(HdfVibratorTest, ExecuteVibratorEffect_002, TestSize.Level1) +{ + ASSERT_NE(nullptr, g_vibratorDev); + + int32_t startRet = g_vibratorDev->Start(g_builtIn); + EXPECT_EQ(startRet, HDF_SUCCESS); + + OsalMSleep(g_sleepTime1); + + int32_t endRet = g_vibratorDev->Stop(VIBRATOR_MODE_PRESET); + EXPECT_EQ(endRet, HDF_SUCCESS); +} +/* 获取马达信息,包括是否支持振幅和频率的设置及振幅和频率的设置范围。 */ +HWTEST_F(HdfVibratorTest, GetVibratorInfo_001, TestSize.Level1) +{ + ASSERT_NE(nullptr, g_vibratorDev); + + int32_t startRet = g_vibratorDev->GetVibratorInfo(&g_vibratorInfo); + EXPECT_EQ(startRet, HDF_SUCCESS); + EXPECT_NE(g_vibratorInfo, nullptr); + + printf("intensity = %d, intensityMaxValue = %d, intensityMinValue = %d\n\t", + g_vibratorInfo->isSupportIntensity, g_vibratorInfo->intensityMaxValue, g_vibratorInfo->intensityMinValue); + printf("frequency = %d, frequencyMaxValue = %d, frequencyMinValue = %d\n\t", + g_vibratorInfo->isSupportFrequency, g_vibratorInfo->frequencyMaxValue, g_vibratorInfo->frequencyMinValue); +} +/* 按照指定振幅、频率、持续时间触发振动马达。duration为振动持续时长,intensity为振动强度,frequency为振动频率。 */ +HWTEST_F(HdfVibratorTest, EnableVibratorModulation_001, TestSize.Level1) +{ + int32_t startRet; + ASSERT_NE(nullptr, g_vibratorDev); + EXPECT_GT(g_duration, 0); + + if ((g_vibratorInfo->isSupportIntensity == 1) || (g_vibratorInfo->isSupportFrequency == 1)) { + EXPECT_GE(g_intensity1, g_vibratorInfo->intensityMinValue); + EXPECT_LE(g_intensity1, g_vibratorInfo->intensityMaxValue); + EXPECT_GE(g_frequency1, g_vibratorInfo->frequencyMinValue); + EXPECT_LE(g_frequency1, g_vibratorInfo->frequencyMaxValue); + + startRet = g_vibratorDev->EnableVibratorModulation(g_duration, g_intensity1, g_frequency1); + EXPECT_EQ(startRet, HDF_SUCCESS); + OsalMSleep(g_sleepTime1); + startRet = g_vibratorDev->Stop(VIBRATOR_MODE_ONCE); + EXPECT_EQ(startRet, HDF_SUCCESS); + } +} +``` + -- GitLab From ddb14615a6b2976279218afbbde2c3c1787cb9a4 Mon Sep 17 00:00:00 2001 From: guodongqi Date: Tue, 19 Jul 2022 09:47:57 +0800 Subject: [PATCH 065/868] fix: modify conflict description Signed-off-by: guodongqi --- zh-cn/design/hdi-design-specifications.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/design/hdi-design-specifications.md b/zh-cn/design/hdi-design-specifications.md index a6f410f136..cf0db1e1c0 100644 --- a/zh-cn/design/hdi-design-specifications.md +++ b/zh-cn/design/hdi-design-specifications.md @@ -60,7 +60,7 @@ interface IVibrator { 当对原有接口进行不破坏向后兼容的修改时,如在最后追加新增接口、新增枚举定义、修改变量名称等,只需要增加`minor`版本号,新的包名为`ohos.hdi.vibrator.v1_1`。如: ```cpp -package ohos.hdi.vibrator.v1_0; +package ohos.hdi.vibrator.v1_1; interface IVibrator { ... SetModulationParameter([in] unsigned int vibrationPeriod, [in] int intensity, [in] int freq); @@ -71,7 +71,7 @@ interface IVibrator { 如果对原有接口进行更名、修改变量列表等不向后兼容修改时,需要增加`major`版本号,新的包名为`ohos.hdi.vibrator.v2_0`。如: ```cpp -package ohos.hdi.vibrator.v1_0; +package ohos.hdi.vibrator.v2_0; interface IVibrator { ... SetModulationParameter([in] unsigned int vibrationPeriod, [in] int intensity, [in] int frequency, [int] time); -- GitLab From c9af97878228e9af8ec085ca5c5c4efc406af895 Mon Sep 17 00:00:00 2001 From: shawn_he Date: Tue, 19 Jul 2022 09:53:39 +0800 Subject: [PATCH 066/868] update doc Signed-off-by: shawn_he --- en/application-dev/reference/apis/js-apis-inputdevice.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/application-dev/reference/apis/js-apis-inputdevice.md b/en/application-dev/reference/apis/js-apis-inputdevice.md index c1ec2c787a..178313a1ff 100644 --- a/en/application-dev/reference/apis/js-apis-inputdevice.md +++ b/en/application-dev/reference/apis/js-apis-inputdevice.md @@ -287,7 +287,7 @@ Defines the information about an input device. | Name | Type | Description | | -------- | ------------------------- | --------------------------------- | -| type | [ChangeType](#changetype) | Device change type, which indicates whether an input device is inserted or removed. | +| type | [ChangedType](#changedtype) | Device change type, which indicates whether an input device is inserted or removed. | | deviceId | number | Unique ID of the input device. If the same physical device is repeatedly inserted and removed, its ID changes.| ## InputDeviceData -- GitLab From b6cef6e2b4bb3439fa93d9667a5a2128cd2cbdac Mon Sep 17 00:00:00 2001 From: xu-rui-w Date: Tue, 19 Jul 2022 10:03:51 +0800 Subject: [PATCH 067/868] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=8F=8F=E8=BF=B0?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xu-rui-w --- .../reference/apis/js-apis-image.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-image.md b/zh-cn/application-dev/reference/apis/js-apis-image.md index 724880739e..b1e9c2eef4 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-image.md +++ b/zh-cn/application-dev/reference/apis/js-apis-image.md @@ -2134,16 +2134,16 @@ PixelMap的初始化选项。 **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core -| 名称 | 默认值 | 说明 | -| ------------------------ | ----------------------- | ------------------------ | -| BITS_PER_SAMPLE7+ | "BitsPerSample" | 每个像素比特数。 | -| ORIENTATION7+ | "Orientation" | 图片方向。 | -| IMAGE_LENGTH7+ | "ImageLength" | 图片长度。 | -| IMAGE_WIDTH7+ | "ImageWidth" | 图片宽度。 | -| GPS_LATITUDE7+ | "GPSLatitude" | 图片纬度。 | -| GPS_LONGITUDE7+ | "GPSLongitude" | 图片经度。 | -| GPS_LATITUDE_REF7+ | "GPSLatitudeRef" | 纬度引用,例如N或S。 | -| GPS_LONGITUDE_REF7+ | "GPSLongitudeRef" | 经度引用,例如W或E。 | +| 名称 | 默认值 | 说明 | +| ----------------- | ----------------------- | ------------------------ | +| BITS_PER_SAMPLE | "BitsPerSample" | 每个像素比特数。 | +| ORIENTATION | "Orientation" | 图片方向。 | +| IMAGE_LENGTH | "ImageLength" | 图片长度。 | +| IMAGE_WIDTH | "ImageWidth" | 图片宽度。 | +| GPS_LATITUDE | "GPSLatitude" | 图片纬度。 | +| GPS_LONGITUDE | "GPSLongitude" | 图片经度。 | +| GPS_LATITUDE_REF | "GPSLatitudeRef" | 纬度引用,例如N或S。 | +| GPS_LONGITUDE_REF | "GPSLongitudeRef" | 经度引用,例如W或E。 | ## ImageFormat9+ -- GitLab From 0c45630474dc279e1a131e7a2d7cdb72cf39f7eb Mon Sep 17 00:00:00 2001 From: xu-rui-w Date: Tue, 19 Jul 2022 10:05:24 +0800 Subject: [PATCH 068/868] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=8F=8F=E8=BF=B0?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xu-rui-w --- zh-cn/application-dev/reference/apis/js-apis-image.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-image.md b/zh-cn/application-dev/reference/apis/js-apis-image.md index b1e9c2eef4..5416b34376 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-image.md +++ b/zh-cn/application-dev/reference/apis/js-apis-image.md @@ -2034,11 +2034,11 @@ img.release().then(() =>{ **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core -| 名称 | 默认值 | 描述 | -| ---------------- | ------ | ----------------- | -| UNKNOWN7+ | 0 | 未知格式。 | -| RGB_5657+ | 2 | 格式为RGB_565 | -| RGBA_88887+ | 3 | 格式为RGBA_8888。 | +| 名称 | 默认值 | 描述 | +| --------- | ------ | ----------------- | +| UNKNOWN | 0 | 未知格式。 | +| RGB_565 | 2 | 格式为RGB_565 | +| RGBA_8888 | 3 | 格式为RGBA_8888。 | ## AlphaType9+ -- GitLab From 3a4dd55a4b5986be86d2bbd67d5daf3863cfd2d5 Mon Sep 17 00:00:00 2001 From: m00472246 Date: Tue, 19 Jul 2022 09:57:23 +0800 Subject: [PATCH 069/868] =?UTF-8?q?api=E6=96=87=E6=A1=A3=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8D=95=E4=BD=8D=E8=AF=B4=E6=98=8E=20Signed?= =?UTF-8?q?-off-by:=20m00472246=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: m00472246 Change-Id: I30c632920d6239bb1e067ba733f273ff61d7f984 Signed-off-by: m00472246 --- .../reference/apis/js-apis-media.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index 50438f8ed6..79cdcff7f4 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -275,8 +275,8 @@ Codec MIME类型枚举。 | ----------- | ------------------------- | ---- | ---- | ------------------------------------------------------------ | | src | string | 是 | 是 | 音频媒体URI,支持当前主流的音频格式(mp4、aac、mp3、ogg、wav)。
**支持路径示例**:
1、fd类型播放:fd://xx
![](figures/zh-cn_image_url.png)
2、http网络播放: http://xx
3、https网络播放: https://xx
**注意事项**:
使用媒体素材需要获取读权限,否则无法正常播放。 | | loop | boolean | 是 | 是 | 音频循环播放属性,设置为'true'表示循环播放。 | -| currentTime | number | 是 | 否 | 音频的当前播放位置。 | -| duration | number | 是 | 否 | 音频时长。 | +| currentTime | number | 是 | 否 | 音频的当前播放位置,单位为毫秒(ms)。 | +| duration | number | 是 | 否 | 音频时长,单位为毫秒(ms)。 | | state | [AudioState](#audiostate) | 是 | 否 | 音频播放的状态。 | ### play @@ -617,7 +617,7 @@ audioPlayer.seek(30000); //seek到30000ms的位置 on(type: 'error', callback: ErrorCallback): void -开始订阅音频播放错误事件。 +开始订阅音频播放错误事件,当上报error错误事件后,用户需处理error事件,退出播放操作。 **系统能力:** SystemCapability.Multimedia.Media.AudioPlayer @@ -667,11 +667,11 @@ audioPlayer.setVolume(3); //设置volume为无效值,触发'error'事件 | ------------------------ | ---------------------------------- | ---- | ---- | ------------------------------------------------------------ | | url8+ | string | 是 | 是 | 视频媒体URL,支持当前主流的视频格式(mp4、mpeg-ts、webm、mkv)。
**支持路径示例**:
1. fd类型播放:fd://xx
![](figures/zh-cn_image_url.png)
2、http网络播放: http://xx
3、https网络播放: https://xx
3、hls网络播放路径:http://xx或者https://xx
**注意事项**:
使用媒体素材需要获取读权限,否则无法正常播放。 | | loop8+ | boolean | 是 | 是 | 视频循环播放属性,设置为'true'表示循环播放。 | -| currentTime8+ | number | 是 | 否 | 视频的当前播放位置。 | -| duration8+ | number | 是 | 否 | 视频时长,返回-1表示直播模式。 | +| currentTime8+ | number | 是 | 否 | 视频的当前播放位置,单位为毫秒(ms)。 | +| duration8+ | number | 是 | 否 | 视频时长,单位为毫秒(ms),返回-1表示直播模式。 | | state8+ | [VideoPlayState](#videoplaystate8) | 是 | 否 | 视频播放的状态。 | -| width8+ | number | 是 | 否 | 视频宽。 | -| height8+ | number | 是 | 否 | 视频高。 | +| width8+ | number | 是 | 否 | 视频宽,单位为像素(px)。 | +| height8+ | number | 是 | 否 | 视频高,单位为像素(px)。 | ### setDisplaySurface8+ @@ -1486,7 +1486,7 @@ videoPlayer.on('videoSizeChanged', (width, height) => { on(type: 'error', callback: ErrorCallback): void -开始监听视频播放错误事件。 +开始监听视频播放错误事件,当上报error错误事件后,用户需处理error事件,退出播放操作。 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer @@ -1814,7 +1814,7 @@ audioRecorder.prepare(audioRecorderConfig) on(type: 'error', callback: ErrorCallback): void -开始订阅音频录制错误事件。 +开始订阅音频录制错误事件,当上报error错误事件后,用户需处理error事件,退出录制操作。 **系统能力:** SystemCapability.Multimedia.Media.AudioRecorder @@ -2434,7 +2434,7 @@ videoRecorder.reset().then(() => { on(type: 'error', callback: ErrorCallback): void -开始订阅视频录制错误事件。 +开始订阅视频录制错误事件,当上报error错误事件后,用户需处理error事件,退出录制操作。 **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -- GitLab From 2591da9c8e221c9b2a4e249e651ca650534b1d11 Mon Sep 17 00:00:00 2001 From: xu-rui-w Date: Tue, 19 Jul 2022 10:31:16 +0800 Subject: [PATCH 070/868] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=8F=8F=E8=BF=B0?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xu-rui-w --- zh-cn/application-dev/reference/apis/js-apis-image.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-image.md b/zh-cn/application-dev/reference/apis/js-apis-image.md index 5416b34376..fb19c79366 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-image.md +++ b/zh-cn/application-dev/reference/apis/js-apis-image.md @@ -2037,7 +2037,7 @@ img.release().then(() =>{ | 名称 | 默认值 | 描述 | | --------- | ------ | ----------------- | | UNKNOWN | 0 | 未知格式。 | -| RGB_565 | 2 | 格式为RGB_565 | +| RGB_565 | 2 | 格式为RGB_565。 | | RGBA_8888 | 3 | 格式为RGBA_8888。 | ## AlphaType9+ -- GitLab From 260c3a10d14df1d7bf4c5c5a8a6ed6f761a81358 Mon Sep 17 00:00:00 2001 From: wuyongning Date: Mon, 18 Jul 2022 21:27:43 +0800 Subject: [PATCH 071/868] 1.guildelines add beginTrancaction,commit,rollback 2.add native API docs 3.fix error Signed-off-by: wuyongning --- .../database/database-relational-guidelines.md | 10 ++++++++++ .../reference/apis/js-apis-data-rdb.md | 8 +++++--- .../subsys-data-relational-database-guide.md | 12 ++++++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/zh-cn/application-dev/database/database-relational-guidelines.md b/zh-cn/application-dev/database/database-relational-guidelines.md index 8a46eeaf4e..3c6a88d859 100644 --- a/zh-cn/application-dev/database/database-relational-guidelines.md +++ b/zh-cn/application-dev/database/database-relational-guidelines.md @@ -210,6 +210,16 @@ | RdbStore |restore(srcName:string, callback: AsyncCallback<void>):void| 从指定的数据库备份文件恢复数据库,结果以callback形式返回。
- srcName:指定数据库的备份文件名。
- callback:指定callback回调函数。 | | RdbStore |restore(srcName:string): Promise<void>| 从指定的数据库备份文件恢复数据库,结果以promise形式返回。
- srcName:指定数据库的备份文件名。 | +**事务** + +**表15** 事务 + +| 类名 | 接口名 | 描述 | +| -------- | -------- | -------- | +| RdbStore |beginTransaction():void| 在开始执行SQL语句之前,开始事务。 | +| RdbStore |commit():void| 提交已执行的SQL语句。 | +| RdbStore |rollBack():void| 回滚已经执行的SQL语句。 | + ## 开发步骤 1. 创建数据库。 diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md b/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md index d66146a265..ed678b96b9 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md +++ b/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md @@ -1347,7 +1347,7 @@ query(predicates: RdbPredicates, columns?: Array<string>):Promise<Resul ### query9+ -query(predicates: dataSharePredicates.DataSharePredicates, columns: Array<string>, callback: AsyncCallback<ResultSet>):void +query(table: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array<string>, callback: AsyncCallback<ResultSet>):void 根据指定条件查询数据库中的数据,结果以callback形式返回。 @@ -1356,6 +1356,7 @@ query(predicates: dataSharePredicates.DataSharePredicates, columns: Array<str **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | +| table | string | 是 | 指定的目标表名。 | | predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的查询条件。 | | columns | Array<string> | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 | | callback | AsyncCallback<[ResultSet](js-apis-data-resultset.md)> | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 | @@ -1377,7 +1378,7 @@ rdbStore.query("EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], ### query9+ -query(predicates: dataSharePredicates.DataSharePredicates, columns?: Array<string>):Promise<ResultSet> +query(table: string, predicates: dataSharePredicates.DataSharePredicates, columns?: Array<string>):Promise<ResultSet> 根据指定条件查询数据库中的数据,结果以Promise形式返回。 @@ -1386,6 +1387,7 @@ query(predicates: dataSharePredicates.DataSharePredicates, columns?: Array<st **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | +| table | string | 是 | 指定的目标表名。 | | predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的查询条件。 | | columns | Array<string> | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 | @@ -1584,7 +1586,7 @@ rdbStore.commit() ### rollBack8+ -rollBack():void; +rollBack():void 回滚已经执行的SQL语句。 diff --git a/zh-cn/device-dev/subsystems/subsys-data-relational-database-guide.md b/zh-cn/device-dev/subsystems/subsys-data-relational-database-guide.md index 69b20eac0f..18d44eedce 100644 --- a/zh-cn/device-dev/subsystems/subsys-data-relational-database-guide.md +++ b/zh-cn/device-dev/subsystems/subsys-data-relational-database-guide.md @@ -179,6 +179,18 @@ | ---- | ---- | ---- | | RdbStore | int Restore(const std::string backupPath, const std::vector<uint8_t> &newKey) | 恢复数据库文件。
  • backupPath:指定的备份文件名。
  • newKey:数据库的加密密钥。注意:当前只支持非加密数据库的恢复。
| +### 事务 + + 事务(Transaction)是一个对数据库执行工作单元。通过返回值判断事务是否成功,成功时返回0,失败时则返回相应的错误码。 + + 表16 事务API + + | 类名 | 接口名 | 描述 | + | ---- | ---- | ---- | + | RdbStore | int BeginTransaction() | 开启一个事务。 | + | RdbStore | int Commit() | 保存更改。 | + | RdbStore | int RollBack() | 回滚所做的更改。 | + ## 约束与限制 无。 -- GitLab From 3f4371b97b1f4f5a5fcab6818a015f3887a81b60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Tue, 19 Jul 2022 02:56:40 +0000 Subject: [PATCH 072/868] =?UTF-8?q?update=20zh-cn/application-dev/referenc?= =?UTF-8?q?e/apis/js-apis-distributed-data.md=EF=BC=9A=E4=B8=80=E8=87=B4?= =?UTF-8?q?=E6=80=A7=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9=EF=BC=8C=E9=9C=80?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E7=BF=BB=E8=AF=91=20Signed-off-by:=20ge-yafa?= =?UTF-8?q?ng=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/apis/js-apis-distributed-data.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md b/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md index f043079681..7583b6d81d 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md +++ b/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md @@ -182,7 +182,7 @@ export default class MyAbilityStage extends AbilityStage { | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ------ | ------ | -| context | Context | 是 | 应用的上下文。
FA模型的应用Context定义见[Context](js-apis-Context.md)。
Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。| +| context9+ | Context | 是 | 应用的上下文。
FA模型的应用Context定义见[Context](js-apis-Context.md)。
Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。| | userInfo | [UserInfo](#userinfo) | 是 | 调用方的用户信息。 | | bundleName | string | 是 | 调用方的包名。 | @@ -2301,7 +2301,7 @@ try { ### delete9+ -delete(predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback<void>): void +delete(predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback<void>) 从数据库中删除符合predicates条件的键值对,并通过callback方式返回,此方法为异步方法。 @@ -2381,7 +2381,7 @@ try { ### on('dataChange') -on(event: 'dataChange', type: SubscribeType, observer: Callback<ChangeNotification>): void +on(event: 'dataChange', type: SubscribeType, listener: Callback<ChangeNotification>): void 订阅指定类型的数据变更通知。 @@ -2393,7 +2393,7 @@ on(event: 'dataChange', type: SubscribeType, observer: Callback<ChangeNotific | ----- | ------ | ---- | ----------------------- | | event |string | 是 |订阅的事件名,固定为'dataChange',表示数据变更事件。 | | type |[SubscribeType](#subscribetype) | 是 |表示订阅的类型。 | -| observer |Callback<[ChangeNotification](#changenotification)> | 是 |回调函数。 | +| listener |Callback<[ChangeNotification](#changenotification)> | 是 |回调函数。 | **示例:** @@ -2431,7 +2431,7 @@ kvStore.on('syncComplete', function (data) { ### off('dataChange')8+ -off(event:'dataChange', observer?: Callback<ChangeNotification>): void +off(event:'dataChange', listener?: Callback<ChangeNotification>): void 取消订阅数据变更通知。 @@ -2442,7 +2442,7 @@ off(event:'dataChange', observer?: Callback<ChangeNotification>): void | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | | event |string | 是 |取消订阅的事件名,固定为'dataChange',表示数据变更事件。 | -| observer |Callback<[ChangeNotification](#changenotification)> |否 |回调函数。 | +| listener |Callback<[ChangeNotification](#changenotification)> |否 |回调函数。 | **示例:** -- GitLab From 7bad8e96bb699262be7516cf2be2ae979fb277a6 Mon Sep 17 00:00:00 2001 From: shawn_he Date: Tue, 19 Jul 2022 10:59:36 +0800 Subject: [PATCH 073/868] update doc Signed-off-by: shawn_he --- .../reference/apis/js-apis-i18n.md | 144 +++++++++++++++++- 1 file changed, 138 insertions(+), 6 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-i18n.md b/en/application-dev/reference/apis/js-apis-i18n.md index 5c45f18dc0..24339fc434 100644 --- a/en/application-dev/reference/apis/js-apis-i18n.md +++ b/en/application-dev/reference/apis/js-apis-i18n.md @@ -117,12 +117,12 @@ setSystemLanguage(language: string): boolean Sets the system language. +This is a system API. + **Permission required**: ohos.permission.UPDATE_CONFIGURATION **System capability**: SystemCapability.Global.I18n -**System API**: This is a system API and cannot be called by third-party applications. - **Parameters** | Name | Type | Description | | -------- | ------ | ----- | @@ -211,12 +211,12 @@ setSystemRegion(region: string): boolean Sets the system region. +This is a system API. + **Permission required**: ohos.permission.UPDATE_CONFIGURATION **System capability**: SystemCapability.Global.I18n -**System API**: This is a system API and cannot be called by third-party applications. - **Parameters** | Name | Type | Description | | ------ | ------ | ----- | @@ -258,12 +258,12 @@ setSystemLocale(locale: string): boolean Sets the system locale. +This is a system API. + **Permission required**: ohos.permission.UPDATE_CONFIGURATION **System capability**: SystemCapability.Global.I18n -**System API**: This is a system API and cannot be called by third-party applications. - **Parameters** | Name | Type | Description | | ------ | ------ | --------------- | @@ -1548,3 +1548,135 @@ Obtains the offset between the time zone represented by a **TimeZone** object an var timezone = i18n.getTimeZone(); timezone.getOffset(1234567890); ``` + +### getAvailableIDs9+ + +static getAvailableIDs(): Array<string> + +Obtains the list of time zone IDs supported by the system. + +**System capability**: SystemCapability.Global.I18n + +**Return value** +| Type | Description | +| ------ | ----------------------- | +| Array<string> | List of time zone IDs supported by the system.| + +**Example** + ``` + var ids = i18n.TimeZone.getAvailableIDs(); + ``` + + +### getAvailableZoneCityIDs9+ + +static getAvailableZoneCityIDs(): Array<string> + +Obtains the list of time zone city IDs supported by the system. + +**System capability**: SystemCapability.Global.I18n + +**Return value** +| Type | Description | +| ------ | ----------------------- | +| Array<string> | List of time zone city IDs supported by the system.| + +**Example** + ``` + var cityIDs = i18n.TimeZone.getAvailableZoneCityIDs(); + ``` + + +### getCityDisplayName9+ + +static getCityDisplayName(cityID: string, locale: string): string + +Obtains the localized display of a time zone city in the specified locale. + +**System capability**: SystemCapability.Global.I18n + +**Parameters** +| Name | Type | Mandatory | Description | +| ------ | ------ | ---- | ----- | +| cityID | string | Yes | Time zone city ID.| +| locale | string | Yes | Locale ID.| + +**Return value** +| Type | Description | +| ------ | ----------------------- | +| string | Localized display of the time zone city in the specified locale.| + +**Example** + ``` + var displayName = i18n.TimeZone.getCityDisplayName("Shanghai", "zh-CN"); + ``` + + +### getTimezoneFromCity9+ + +static getTimezoneFromCity(cityID: string): TimeZone + +Obtains the **TimeZone** object corresponding to the specified time zone city ID. + +**System capability**: SystemCapability.Global.I18n + +**Parameters** +| Name | Type | Mandatory | Description | +| ------ | ------ | ---- | ----- | +| cityID | string | Yes | Time zone city ID.| + +**Return value** +| Type | Description | +| ------ | ----------------------- | +| TimeZone | **TimeZone** object corresponding to the specified time zone city ID.| + +**Example** + ``` + var timezone = i18n.TimeZone.getTimezoneFromCity("Shanghai"); + ``` + + +## i18n.setUsingLocalDigit9+ + +setUsingLocalDigit(flag: boolean): boolean + +Sets whether to turn on the local digit switch. +This is a system API. + +**Permission required**: ohos.permission.UPDATE_CONFIGURATION + +**System capability**: SystemCapability.Global.I18n + +**Parameters** +| Name | Type | Mandatory | Description | +| ------ | ------ | ---- | ----- | +| flag | boolean | Yes | Whether to turn on the local digit switch. The value **true** means to turn on the local digit switch, and the value **false** indicates the opposite.| + +**Return value** +| Type | Description | +| -------- | ------------ | +| boolean | Result indicating whether the local digit switch is successfully set. The value **true** indicates that the local digit switch is successfully set, and the value **false** indicates the opposite.| + +**Example** + ``` + var status = i18n.setUsingLocalDigit(true); + ``` + + +## i18n.getUsingLocalDigit9+ + +getUsingLocalDigit(): boolean + +Checks whether the local digit switch is turned on. + +**System capability**: SystemCapability.Global.I18n + +**Return value** +| Type | Description | +| -------- | ------------ | +| boolean | Result indicating whether the local digit switch is turned on. The value **true** indicates that the local digit switch is turned on, and the value **false** indicates the opposite.| + +**Example** + ``` + var status = i18n.getUsingLocalDigit(); + ``` -- GitLab From e61d87edd9bb1dd9a03d4780c2ac8253e597dd66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Tue, 19 Jul 2022 03:02:54 +0000 Subject: [PATCH 074/868] =?UTF-8?q?update=20zh-cn/application-dev/referenc?= =?UTF-8?q?e/apis/js-apis-data-distributedobject.md=EF=BC=9A=E4=B8=80?= =?UTF-8?q?=E8=87=B4=E6=80=A7=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9=EF=BC=8C?= =?UTF-8?q?=E9=9C=80=E5=90=8C=E6=AD=A5=E7=BF=BB=E8=AF=91=20Signed-off-by:?= =?UTF-8?q?=20@ge-yafang=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/apis/js-apis-data-distributedobject.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-distributedobject.md b/zh-cn/application-dev/reference/apis/js-apis-data-distributedobject.md index 99bd4b7ea2..c58b2ad122 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-data-distributedobject.md +++ b/zh-cn/application-dev/reference/apis/js-apis-data-distributedobject.md @@ -307,7 +307,7 @@ g_object.save("local").then((result)=>{ ### revokeSave9+ -revokeSave(callback: AsyncCallback<SaveSuccessResponse>): void +revokeSave(callback: AsyncCallback<RevokeSaveSuccessResponse>): void 撤回保存的分布式数据对象。使用callback方式作为异步方法。 @@ -334,7 +334,7 @@ g_object.revokeSave((result, data) =>{ ### revokeSave9+ -revokeSave(): Promise<SaveSuccessResponse> +revokeSave(): Promise<RevokeSaveSuccessResponse> 撤回保存的分布式数据对象。使用Promise方式作为异步方法。 -- GitLab From b22a3d17ed3c69d246b19b0ff67b48c1f8e5c9fb Mon Sep 17 00:00:00 2001 From: xuyong Date: Tue, 19 Jul 2022 12:00:35 +0800 Subject: [PATCH 075/868] Standardlize the documentation about hisysevent js api intefaces. Signed-off-by: xuyong --- zh-cn/application-dev/reference/apis/js-apis-hisysevent.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-hisysevent.md b/zh-cn/application-dev/reference/apis/js-apis-hisysevent.md index 6cc5ea38e9..c811da3849 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-hisysevent.md +++ b/zh-cn/application-dev/reference/apis/js-apis-hisysevent.md @@ -4,7 +4,7 @@ > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 -> - 本模块的接口为系统接口,三方应用不支持调用。 +> - 本模块的接口为系统接口。 ## 导入模块 -- GitLab From a396982041fe9e01def07f2284ab9f24b168a0d3 Mon Sep 17 00:00:00 2001 From: arvinzzz Date: Sat, 16 Jul 2022 20:55:55 +0800 Subject: [PATCH 076/868] =?UTF-8?q?refactor:=20sysroot=E9=83=A8=E4=BB=B6?= =?UTF-8?q?=E5=8C=96=20close:=20#I5HF8S?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: arvinzzz Change-Id: I85e5d77620a1cc1895662a8b4aa131598387acaa --- en/device-dev/kernel/kernel-small-start-user.md | 4 ++-- en/device-dev/porting/porting-thirdparty-cmake.md | 2 +- en/device-dev/porting/porting-thirdparty-makefile.md | 4 ++-- zh-cn/device-dev/porting/porting-thirdparty-cmake.md | 2 +- zh-cn/device-dev/porting/porting-thirdparty-makefile.md | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/en/device-dev/kernel/kernel-small-start-user.md b/en/device-dev/kernel/kernel-small-start-user.md index f2526dda1e..fb34ba4194 100644 --- a/en/device-dev/kernel/kernel-small-start-user.md +++ b/en/device-dev/kernel/kernel-small-start-user.md @@ -48,14 +48,14 @@ Common compilation modes of user-mode programs include: Example: ``` - clang --target=arm-liteos --sysroot=prebuilts/lite/sysroot -o helloworld helloworld.c + clang --target=arm-liteos --sysroot=sysroot -o helloworld helloworld.c ``` Before running the **clang** command, install the LLVM compiler. For details, see [Installing LLVM](../quick-start/quickstart-lite-steps-hi3861-setting.md). **--target=arm-liteos**: specifies the compilation platform, which is arm-liteos. - **--sysroot=$\{YOUR\_ROOT\_PATH\}/prebuilts/lite/sysroot**: specifies the directory in which you can search for the header file and the dependent standard libraries. + **--sysroot=$\{YOUR\_ROOT\_OUT\_PATH\}/sysroot**: specifies the directory in which you can search for the header file and the dependent standard libraries. A user-mode program can be started in either of the following ways: diff --git a/en/device-dev/porting/porting-thirdparty-cmake.md b/en/device-dev/porting/porting-thirdparty-cmake.md index 7956e702ae..3ae6e23ff8 100755 --- a/en/device-dev/porting/porting-thirdparty-cmake.md +++ b/en/device-dev/porting/porting-thirdparty-cmake.md @@ -348,7 +348,7 @@ The following steps show how to configure and modify the toolchains for cross-co #toolchain: follow up-layer, depend on $ohos_build_compiler if (ohos_build_compiler == "clang") { - CMAKE_TOOLCHAIN_FLAG = "-DOHOS_SYSROOT_PATH=${ohos_root_path}prebuilts/lite/sysroot/" + CMAKE_TOOLCHAIN_FLAG = "-DOHOS_SYSROOT_PATH=${root_out_dir}sysroot/" } else { CMAKE_TOOLCHAIN_FLAG = "" } diff --git a/en/device-dev/porting/porting-thirdparty-makefile.md b/en/device-dev/porting/porting-thirdparty-makefile.md index 68136beef3..6c64a5ce97 100644 --- a/en/device-dev/porting/porting-thirdparty-makefile.md +++ b/en/device-dev/porting/porting-thirdparty-makefile.md @@ -262,9 +262,9 @@ if (ohos_build_thirdparty_migrated_from_fuchisa == true) { TEST_ENABLE = "YES" if (TEST_ENABLE == "YES") { - MAKE_COMMAND = "make test OHOS_SYSROOT_PATH=${ohos_root_path}prebuilts/lite/sysroot/" + MAKE_COMMAND = "make test OHOS_SYSROOT_PATH=${root_out_dir}sysroot/" } else { - MAKE_COMMAND = "make OHOS_SYSROOT_PATH=${ohos_root_path}prebuilts/lite/sysroot/" + MAKE_COMMAND = "make OHOS_SYSROOT_PATH=${root_out_dir}sysroot/" } ``` diff --git a/zh-cn/device-dev/porting/porting-thirdparty-cmake.md b/zh-cn/device-dev/porting/porting-thirdparty-cmake.md index 043e797410..94b137955e 100644 --- a/zh-cn/device-dev/porting/porting-thirdparty-cmake.md +++ b/zh-cn/device-dev/porting/porting-thirdparty-cmake.md @@ -219,7 +219,7 @@ CMake方式可通过指定工具链进行交叉编译,修改并编译该库, #toolchain:follow up-layer,depend on $ohos_build_compiler if (ohos_build_compiler == "clang") { - CMAKE_TOOLCHAIN_FLAG = "-DOHOS_SYSROOT_PATH=${ohos_root_path}prebuilts/lite/sysroot/" + CMAKE_TOOLCHAIN_FLAG = "-DOHOS_SYSROOT_PATH=${root_out_dir}sysroot" } else { CMAKE_TOOLCHAIN_FLAG = "" } diff --git a/zh-cn/device-dev/porting/porting-thirdparty-makefile.md b/zh-cn/device-dev/porting/porting-thirdparty-makefile.md index 5d01193f8c..1a068c62af 100644 --- a/zh-cn/device-dev/porting/porting-thirdparty-makefile.md +++ b/zh-cn/device-dev/porting/porting-thirdparty-makefile.md @@ -173,9 +173,9 @@ if (ohos_build_thirdparty_migrated_from_fuchisa == true) { TEST_ENABLE = "YES" if (TEST_ENABLE == "YES") { - MAKE_COMMAND = "make test OHOS_SYSROOT_PATH=${ohos_root_path}prebuilts/lite/sysroot/" + MAKE_COMMAND = "make test OHOS_SYSROOT_PATH=${root_out_dir}sysroot/" } else { - MAKE_COMMAND = "make OHOS_SYSROOT_PATH=${ohos_root_path}prebuilts/lite/sysroot/" + MAKE_COMMAND = "make OHOS_SYSROOT_PATH=${root_out_dir}sysroot/" } ``` -- GitLab From 9d0911d5370be8ba60d01862e29630cbe3bdb3d3 Mon Sep 17 00:00:00 2001 From: junyi233 Date: Mon, 18 Jul 2022 15:48:34 +0800 Subject: [PATCH 077/868] =?UTF-8?q?=E4=B8=BB=E5=B9=B2=E6=89=AB=E6=8F=8F?= =?UTF-8?q?=E7=BC=BA=E9=99=B7=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: junyi233 --- .../apis/js-apis-Bundle-InnerBundleManager.md | 307 ++++++++++ .../apis/js-apis-Bundle-distributedBundle.md | 138 +++++ .../reference/apis/js-apis-Bundle.md | 531 +++++++++++++++++- .../apis/js-apis-bundle-AbilityInfo.md | 2 +- .../apis/js-apis-bundle-BundleInstaller.md | 105 ++++ .../apis/js-apis-bundle-ElementName.md | 6 +- .../js-apis-bundle-LauncherAbilityInfo.md | 23 + .../apis/js-apis-bundle-PermissionDef.md | 21 + .../apis/js-apis-bundle-ShortcutInfo.md | 46 ++ .../apis/js-apis-bundle-defaultAppManager.md | 18 +- .../apis/js-apis-bundle-remoteAbilityInfo.md | 20 + .../reference/apis/js-apis-dispatchInfo.md | 20 + 12 files changed, 1200 insertions(+), 37 deletions(-) create mode 100644 zh-cn/application-dev/reference/apis/js-apis-Bundle-InnerBundleManager.md create mode 100644 zh-cn/application-dev/reference/apis/js-apis-Bundle-distributedBundle.md create mode 100644 zh-cn/application-dev/reference/apis/js-apis-bundle-BundleInstaller.md create mode 100644 zh-cn/application-dev/reference/apis/js-apis-bundle-LauncherAbilityInfo.md create mode 100644 zh-cn/application-dev/reference/apis/js-apis-bundle-PermissionDef.md create mode 100644 zh-cn/application-dev/reference/apis/js-apis-bundle-ShortcutInfo.md create mode 100644 zh-cn/application-dev/reference/apis/js-apis-bundle-remoteAbilityInfo.md create mode 100644 zh-cn/application-dev/reference/apis/js-apis-dispatchInfo.md diff --git a/zh-cn/application-dev/reference/apis/js-apis-Bundle-InnerBundleManager.md b/zh-cn/application-dev/reference/apis/js-apis-Bundle-InnerBundleManager.md new file mode 100644 index 0000000000..dd960f8294 --- /dev/null +++ b/zh-cn/application-dev/reference/apis/js-apis-Bundle-InnerBundleManager.md @@ -0,0 +1,307 @@ +# innerBundleManager模块(JS端SDK接口) + +本模块提供内部包的管理 + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> 本模块首批接口从API version 8 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 + +## 导入模块 + +``` +import innerBundleManager from '@ohos.bundle.innerBundleManager'; +``` + +## 系统能力 + +SystemCapability.BundleManager.BundleFramework + +## 权限列表 + +| 权限 | 权限等级 | 描述 | +| ------------------------------------------ | ------------ | ---------------------------- | +| ohos.permission.GET_BUNDLE_INFO_PRIVILEGED | system_basic | 可查询所有应用信息 | +| ohos.permission.LISTEN_BUNDLE_CHANGE | system_grant | 允许该应用获取应用变化消息。 | + +权限等级参考[权限等级说明](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/accesstoken-overview.md#%E6%9D%83%E9%99%90%E7%AD%89%E7%BA%A7%E8%AF%B4%E6%98%8E) + +## innerBundleManager.getLauncherAbilityInfos + +getLauncherAbilityInfos(bundleName: string, userId: number, callback: AsyncCallback<Array<LauncherAbilityInfo>>) : void; + +以异步方法根据给定的包名获取LauncherAbilityInfos,使用callback形式返回结果。 + +**需要权限:** + +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ---------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------- | +| bundleName | string | 是 | 要查询的应用程序包名称。 | +| userId | number | 是 | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 | +| callback | AsyncCallback> | 是 | 程序启动作为入参的回调函数,返回程序信息。 | + + + +## innerBundleManager.getLauncherAbilityInfos + +getLauncherAbilityInfos(bundleName: string, userId: number) : Promise<Array<LauncherAbilityInfo>> + +以异步方法根据给定的包名获取LauncherAbilityInfos,使用Promise形式返回结果。 + +**需要权限:** + +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ---------- | ------ | ---- | ----------------------------------------------------- | +| bundleName | string | 是 | 要查询的应用程序包名称。 | +| userId | number | 是 | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------------------ | ------------------------- | +| Promise\<[LauncherAbilityInfo](js-apis-bundle-LauncherAbilityInfo.md)> | Promise形式返回程序信息。 | + +## innerBundleManager.on + +on(type:"BundleStatusChange", bundleStatusCallback : BundleStatusCallback, callback: AsyncCallback<string>) : void; + +注册Callback。 + +**需要权限:** + +ohos.permission.LISTEN_BUNDLE_CHANGE + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------------------- | --------------------- | ---- | ---------------------------------------------------- | +| type | "BundleStatusChange" | 是 | 指示应执行命令。 | +| bundleStatusCallback | BundleStatusCallback | 是 | 指示要注册的回调。 | +| callback | AsyncCallback | 是 | 程序启动作为入参的回调函数,返回正确结果或错误信息。 | + +## innerBundleManager.on + +on(type:"BundleStatusChange", bundleStatusCallback : BundleStatusCallback): Promise<string> + +注册Callback。 + +**需要权限:** + +ohos.permission.LISTEN_BUNDLE_CHANGE + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------------------- | -------------------- | ---- | ------------------ | +| type | "BundleStatusChange" | 是 | 指示应执行命令。 | +| bundleStatusCallback | BundleStatusCallback | 是 | 指示要注册的回调。 | + +**返回值:** + +| 类型 | 说明 | +| --------------- | ----------------------------------- | +| Promise | Promise形式返回正确结果或错误信息。 | + +## innerBundleManager.off + +off(type:"BundleStatusChange", callback: AsyncCallback<string>) : void; + +取消注册Callback。 + +**需要权限:** + +ohos.permission.LISTEN_BUNDLE_CHANGE + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------- | --------------------- | ---- | ---------------------------------------------------- | +| type | "BundleStatusChange" | 是 | 指示应执行命令。 | +| callback | AsyncCallback | 是 | 程序启动作为入参的回调函数,返回正确结果或错误信息。 | + +## innerBundleManager.off + +off(type:"BundleStatusChange"): Promise<string> + +取消注册Callback。 + +**需要权限:** + +ohos.permission.LISTEN_BUNDLE_CHANGE + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ---- | -------------------- | ---- | ---------------- | +| type | "BundleStatusChange" | 是 | 指示应执行命令。 | + +**返回值:** + +| 类型 | 说明 | +| --------------- | ----------------------------------- | +| Promise | Promise形式返回正确结果或错误信息。 | + +## innerBundleManager.getAllLauncherAbilityInfos + +getAllLauncherAbilityInfos(userId: number, callback: AsyncCallback<Array<LauncherAbilityInfo>>) : void; + +以异步方法根据给定的包名获取所有的LauncherAbilityInfos,使用callback形式返回结果。 + +**需要权限:** + +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------- | +| userId | number | 是 | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 | +| callback | AsyncCallback> | 是 | 程序启动作为入参的回调函数,返回程序信息。 | + +## innerBundleManager.getAllLauncherAbilityInfos + +getAllLauncherAbilityInfos(userId: number) : Promise<Array<LauncherAbilityInfo>> + +以异步方法根据给定的包名获取LauncherAbilityInfos,使用Promise形式返回结果。 + +**需要权限:** + +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ------ | ------ | ---- | ----------------------------------------------------- | +| userId | number | 是 | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------------------ | ------------------------- | +| Promise\<[LauncherAbilityInfo](js-apis-bundle-LauncherAbilityInfo.md)> | Promise形式返回程序信息。 | + +## innerBundleManager.getShortcutInfos + +getShortcutInfos(bundleName :string, callback: AsyncCallback<Array<ShortcutInfo>>) : void; + +以异步方法根据给定的包名获取快捷方式信息,使用callback形式返回结果。 + +**需要权限:** + +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ---------- | ------------------------------------------------------------ | ---- | ---------------------------------------------- | +| bundleName | string | 是 | 要查询的应用程序包名称。 | +| callback | AsyncCallback> | 是 | 程序启动作为入参的回调函数,返回快捷方式信息。 | + +## innerBundleManager.getShortcutInfos + +getShortcutInfos(bundleName : string) : Promise<Array<ShortcutInfo>> + +以异步方法根据给定的包名获取快捷方式信息,使用Promise形式返回结果。 + +**需要权限:** + +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ---------- | ------ | ---- | ------------------------ | +| bundleName | string | 是 | 要查询的应用程序包名称。 | + +**返回值:** + +| 类型 | 说明 | +| -------------------------------------------------------- | ----------------------------- | +| Promise\<[ShortcutInfo](js-apis-bundle-ShortcutInfo.md)> | Promise形式返回快捷方式信息。 | + diff --git a/zh-cn/application-dev/reference/apis/js-apis-Bundle-distributedBundle.md b/zh-cn/application-dev/reference/apis/js-apis-Bundle-distributedBundle.md new file mode 100644 index 0000000000..c61db4e1ce --- /dev/null +++ b/zh-cn/application-dev/reference/apis/js-apis-Bundle-distributedBundle.md @@ -0,0 +1,138 @@ +# distributedBundle模块(JS端SDK接口) + +本模块提供内部包的管理 + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> 本模块首批接口从API version 8 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 + +## 导入模块 + +``` +import distributedBundle from '@ohos.distributedBundle'; +``` + +## 系统能力 + +SystemCapability.BundleManager.DistributedBundleFramework + +## 权限列表 + +| 权限 | 权限等级 | 描述 | +| ------------------------------------------ | ------------ | ------------------ | +| ohos.permission.GET_BUNDLE_INFO_PRIVILEGED | system_basic | 可查询所有应用信息 | + +权限等级参考[权限等级说明](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/accesstoken-overview.md#%E6%9D%83%E9%99%90%E7%AD%89%E7%BA%A7%E8%AF%B4%E6%98%8E) + +## distributedBundle.getRemoteAbilityInfo + +getRemoteAbilityInfo(elementName: ElementName, callback: AsyncCallback<RemoteAbilityInfo>): void; + +以异步方法根据给定的包名获取有关远程设备AbilityInfo信息,使用callback形式返回结果。 + +**需要权限:** + +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED + +**系统能力:** + +SystemCapability.BundleManager.DistributedBundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ----------- | ------------------------------------------------------------ | ---- | -------------------------------------------------- | +| elementName | [ElementName](js-apis-bundle-ElementName.md) | 是 | 获得的ElementName信息。 | +| callback | AsyncCallback<[RemoteAbilityInfo](js-apis-bundle-remoteAbilityInfo.md)> | 是 | 程序启动作为入参的回调函数,返回远程基本能力信息。 | + + + +## distributedBundle.getRemoteAbilityInfo + +getRemoteAbilityInfo(elementName: ElementName): Promise<RemoteAbilityInfo> + +以异步方法根据给定的包名获取有关远程设备AbilityInfo信息,使用Promise形式返回结果。 + +**需要权限:** + +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED + +**系统能力:** + +SystemCapability.BundleManager.DistributedBundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ----------- | -------------------------------------------- | ---- | ----------------------- | +| elementName | [ElementName](js-apis-bundle-ElementName.md) | 是 | 获得的ElementName信息。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------------------ | --------------------------------- | +| Promise\<[RemoteAbilityInfo]((js-apis-bundle-remoteAbilityInfo.md))> | Promise形式返回远程基本能力信息。 | + +## distributedBundle.getRemoteAbilityInfos + +getRemoteAbilityInfos(elementNames: Array<ElementName>, callback: AsyncCallback<Array<RemoteAbilityInfo>>): void; + +以异步方法根据给定的包名获取有关远程设备AbilityInfos信息,使用callback形式返回结果。 + +**需要权限:** + +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED + +**系统能力:** + +SystemCapability.BundleManager.DistributedBundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ------------ | ------------------------------------------------------------ | ---- | -------------------------------------------------- | +| elementNames | Array<[ElementName](js-apis-bundle-ElementName.md)> | 是 | ElementName信息,最大数组长度为10 | +| callback | AsyncCallback< Array<[RemoteAbilityInfo](js-apis-bundle-remoteAbilityInfo.md)>> | 是 | 程序启动作为入参的回调函数,返回远程基本能力信息。 | + + + +## distributedBundle.getRemoteAbilityInfos + +getRemoteAbilityInfos(elementNames: Array<ElementName>): Promise<Array<RemoteAbilityInfo>> + +以异步方法根据给定的包名获取有关远程设备AbilityInfo信息,使用Promise形式返回结果。 + +**需要权限:** + +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED + +**系统能力:** + +SystemCapability.BundleManager.DistributedBundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ------------ | --------------------------------------------------- | ---- | ----------------------- | +| elementNames | Array<[ElementName](js-apis-bundle-ElementName.md)> | 是 | 获得的ElementName信息。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------------------ | --------------------------------- | +| Promise\> | Promise形式返回远程基本能力信息。 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-Bundle.md b/zh-cn/application-dev/reference/apis/js-apis-Bundle.md index e05c5ac192..6a9af2f8eb 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-Bundle.md +++ b/zh-cn/application-dev/reference/apis/js-apis-Bundle.md @@ -115,7 +115,7 @@ getApplicationInfo(bundleName: string, bundleFlags: number, callback: AsyncCallb **需要权限:** -ohos.permission.GET_BUNDLE_INFO_PRIVILEGED,ohos.permission.GET_BUNDLE_INFO +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO **系统能力:** @@ -342,7 +342,7 @@ getBundleInfo(bundleName: string, bundleFlags: number, options: BundleOptions, c **需要权限:** -ohos.permission.GET_BUNDLE_INFO_PRIVILEGED,ohos.permission.GET_BUNDLE_INFO +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO **系统能力:** @@ -374,6 +374,466 @@ bundle.getBundleInfo(bundleName, bundleFlags, options, (err, data) => { }) ``` +## bundle.getBundleInstaller + +getBundleInstaller(): Promise<BundleInstaller>; + +获取用于安装包的接口 + +**需要权限:** + +ohos.permission.INSTALL_BUNDLE + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------------------ | -------------------------------------------- | +| Promise<[BundleInstaller](js-apis-bundle-BundleInstaller.md)> | 返回值为Promise对象,Promise中包含安装信息。 | + +## bundle.getBundleInstaller + +getBundleInstaller(callback: AsyncCallback<BundleInstaller>): void; + +获取用于安装包的接口 + +**需要权限:** + +ohos.permission.INSTALL_BUNDLE + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------- | ------------------------------------------------------------ | ---- | ---------------- | +| callback | AsyncCallback<[BundleInstaller](js-apis-bundle-BundleInstaller.md)> | 是 | 安装应用程序包。 | + +## bundle.cleanBundleCacheFiles8+ + +cleanBundleCacheFiles(bundleName: string, callback: AsyncCallback<void>): void; + +清除指定应用程序的缓存数据 + +**需要权限:** + +ohos.permission.REMOVE_CACHE_FILES + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ---------- | ------------------- | ---- | ------------------------------------- | +| bundleName | string | 是 | 指示要清除其缓存数据的应用程序包名称. | +| callback | AsyncCallback | 是 | 为返回操作结果而调用的回调。 | + +## bundle.cleanBundleCacheFiles8+ + +cleanBundleCacheFiles(bundleName: string): Promise<void> + +清除指定应用程序的缓存数据 + +**需要权限:** + +ohos.permission.REMOVE_CACHE_FILES + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ---------- | ------ | ---- | ------------------------------------- | +| bundleName | string | 是 | 指示要清除其缓存数据的应用程序包名称. | + +**返回值:** + +| 类型 | 说明 | +| ------------- | ------------------------------------ | +| Promise | 返回值为Promise对象,Promise中为空。 | + +## bundle.setApplicationEnabled8+ + +setApplicationEnabled(bundleName: string, isEnable: boolean, callback: AsyncCallback<void>): void; + +设置是否启用指定的应用程序 + +**需要权限:** + +ohos.permission.CHANGE_ABILITY_ENABLED_STATE + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ---------- | ------------------- | ---- | ----------------------------------------------- | +| bundleName | string | 是 | 应用程序包名称。 | +| isEnable | boolean | 是 | 指定是否启用应用程序。true表示启用,false禁用。 | +| callback | AsyncCallback | 是 | 为返回操作结果而调用的回调。 | + +## bundle.setApplicationEnabled8+ + +setApplicationEnabled(bundleName: string, isEnable: boolean): Promise<void> + +设置是否启用指定的应用程序 + +**需要权限:** + +ohos.permission.CHANGE_ABILITY_ENABLED_STATE + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ---------- | ------- | ---- | ----------------------------------------------- | +| bundleName | string | 是 | 应用程序包名称。 | +| isEnable | boolean | 是 | 指定是否启用应用程序。true表示启用,false禁用。 | + +**返回值:** + +| 类型 | 说明 | +| ------------- | ------------------------------------ | +| Promise | 返回值为Promise对象,Promise中为空。 | + +## bundle.setAbilityEnabled8+ + +setApplicationEnabled(bundleName: string, isEnable: boolean, callback: AsyncCallback<void>): void; + +设置是否启用指定的功能 + +**需要权限:** + +ohos.permission.CHANGE_ABILITY_ENABLED_STATE + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------- | -------------------------------------------- | ---- | ----------------------------------------------- | +| info | [AbilityInfo](js-apis-bundle-AbilityInfo.md) | 是 | Ability信息。 | +| isEnable | boolean | 是 | 指定是否启用应用程序。true表示启用,false禁用。 | +| callback | AsyncCallback | 是 | 为返回操作结果而调用的回调。 | + +## bundle.setAbilityEnabled8+ + +setAbilityEnabled(info: AbilityInfo, isEnable: boolean): Promise<void> + +设置是否启用指定的功能 + +**需要权限:** + +ohos.permission.CHANGE_ABILITY_ENABLED_STATE + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------- | -------------------------------------------- | ---- | ----------------------------------------------- | +| info | [AbilityInfo](js-apis-bundle-AbilityInfo.md) | 是 | Ability信息。 | +| isEnable | boolean | 是 | 指定是否启用应用程序。true表示启用,false禁用。 | + +**返回值:** + +| 类型 | 说明 | +| ------------- | ------------------------------------ | +| Promise | 返回值为Promise对象,Promise中为空。 | + +## bundle.getPermissionDef8+ + +getPermissionDef(permissionName: string, callback: AsyncCallback<PermissionDef>): void; + +按权限名称获取权限的详细信息 + +**需要权限:** + +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------ | +| permissionName | string | 是 | 指定权限的名称。 | +| callback | AsyncCallback<[PermissionDef](js-apis-bundle-PermissionDef)> | 是 | 程序启动作为入参的回调函数,返回定义的权限信息。 | + +## bundle.getPermissionDef8+ + +getPermissionDef(permissionName: string): Promise<PermissionDef> + +按权限名称获取权限的详细信息 + +**需要权限:** + +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------------- | ------ | ---- | ---------------- | +| permissionName | string | 是 | 指定权限的名称。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------------ | ------------------------------------------------------ | +| Promise<[PermissionDef](js-apis-bundle-PermissionDef)> | 返回值为Promise对象,Promise中包含定义的权限信息对象。 | + +## bundle.setModuleUpgradeFlag9+ + +setModuleUpgradeFlag(bundleName: string, moduleName: string, upgradeFlag: UpgradeFlag, callback: AsyncCallback<void>):void; + +设置模块是否需要升级 + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ----------- | --------------------------- | ---- | ---------------------------- | +| bundleName | string | 是 | 应用程序包名称。 | +| moduleName | string | 是 | 应用程序模块名称。 | +| upgradeFlag | [UpgradeFlag](#upgradeflag) | 是 | 仅供内部系统使用标志位 | +| callback | AsyncCallback | 是 | 为返回操作结果而调用的回调。 | + +## bundle.setModuleUpgradeFlag9+ + +setModuleUpgradeFlag(bundleName: string, moduleName: string, upgradeFlag: UpgradeFlag): Promise<void> + +设置模块是否需要升级 + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ----------- | --------------------------- | ---- | ---------------------- | +| bundleName | string | 是 | 应用程序包名称。 | +| moduleName | string | 是 | 应用程序模块名称。 | +| upgradeFlag | [UpgradeFlag](#upgradeflag) | 是 | 仅供内部系统使用标志位 | + +**返回值:** + +| 类型 | 说明 | +| ------------- | ------------------------------------ | +| Promise | 返回值为Promise对象,Promise中为空。 | + +## bundle.isModuleRemovable9+ + +isModuleRemovable(bundleName: string, moduleName: string, callback: AsyncCallback<boolean>): void; + +检查指定模块是否被移除 + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ---------- | ---------------------- | ---- | --------------------------------------------- | +| bundleName | string | 是 | 应用程序包名称。 | +| moduleName | string | 是 | 应用程序模块名称。 | +| callback | AsyncCallback | 是 | 程序启动作为入参的回调函数,返回boolean信息。 | + +## bundle.isModuleRemovable9+ + +isModuleRemovable(bundleName: string, moduleName: string): Promise<boolean> + +检查指定模块是否被移除 + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ---------- | ------ | ---- | ------------------ | +| bundleName | string | 是 | 应用程序包名称。 | +| moduleName | string | 是 | 应用程序模块名称。 | + +**返回值:** + +| 类型 | 说明 | +| ---------------- | ---------------------------- | +| Promise | Promise形式返回boolean信息。 | + +## bundle.getBundlePackInfo9+ + +getBundlePackInfo(bundleName: string, bundlePackFlag : pack.BundlePackFlag, callback: AsyncCallback<pack.BundlePackInfo>): void; + +基于bundleName和bundleFlags获取bundlePackInfo + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------------- | ---------------------------------- | ---- | ---------------------------------------------------- | +| bundleName | string | 是 | 应用程序包名称。 | +| bundlePackFlag | pack.BundlePackFlag | 是 | 指示要查询的应用包标志 | +| callback | AsyncCallback | 是 | 程序启动作为入参的回调函数,返回BundlePackInfo信息。 | + +## bundle.getBundlePackInfo9+ + +getBundlePackInfo(bundleName: string, bundlePackFlag : pack.BundlePackFlag): Promise<pack.BundlePackInfo>; + +基于bundleName和bundleFlags获取bundlePackInfo + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------------- | ------------------- | ---- | ---------------------- | +| bundleName | string | 是 | 应用程序包名称。 | +| bundlePackFlag | pack.BundlePackFlag | 是 | 指示要查询的应用包标志 | + +**返回值:** + +| 类型 | 说明 | +| ---------------------------- | ----------------------------------- | +| Promise | Promise形式返回BundlePackInfo信息。 | + +## bundle.getDispatcherVersion9+ + +getDispatcherVersion(callback: AsyncCallback<DispatchInfo>): void; + +获取有关dispatcher版本的信息 + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| -------- | ------------------------------------------------------ | ---- | ------------------------------------------------------------ | +| callback | AsyncCallback<[DispatchInfo](js-apis-dispatchInfo.md)> | 是 | 程序启动作为入参的回调函数,返回[DispatchInfo](js-apis-dispatchInfo.md)信息。 | + +## bundle.getDispatcherVersion9+ + +getDispatcherVersion(): Promise<DispatchInfo>; + +获取有关dispatcher版本的信息 + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**系统API:** + +此接口为系统接口,三方应用不支持调用 + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------ | ------------------------------------------------------------ | +| Promise<[DispatchInfo](js-apis-dispatchInfo.md)> | Promise形式返回[DispatchInfo](js-apis-dispatchInfo.md)信息。 | ## bundle.getAllApplicationInfo @@ -639,7 +1099,7 @@ getAbilityInfo(bundleName: string, moduleName: string, abilityName: string): Pro **需要权限:** -ohos.permission.GET_BUNDLE_INFO_PRIVILEGED,ohos.permission.GET_BUNDLE_INFO +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO **系统能力:** @@ -681,7 +1141,7 @@ getAbilityInfo(bundleName: string, moduleName: string, abilityName: string, call **需要权限:** -ohos.permission.GET_BUNDLE_INFO_PRIVILEGED,ohos.permission.GET_BUNDLE_INFO +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO **系统能力:** @@ -794,7 +1254,7 @@ getAbilityLabel(bundleName: string, moduleName: string, abilityName: string): Pr **需要权限:** -ohos.permission.GET_BUNDLE_INFO_PRIVILEGED,ohos.permission.GET_BUNDLE_INFO +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO **系统能力:** @@ -836,7 +1296,7 @@ getAbilityLabel(bundleName: string, moduleName: string, abilityName: string, cal **需要权限:** -ohos.permission.GET_BUNDLE_INFO_PRIVILEGED,ohos.permission.GET_BUNDLE_INFO +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO **系统能力:** @@ -1347,7 +1807,7 @@ getAbilityIcon(bundleName: string, moduleName: string, abilityName: string): Pro **需要权限:** -ohos.permission.GET_BUNDLE_INFO_PRIVILEGED, ohos.permission.GET_BUNDLE_INFO +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO **系统能力:** @@ -1388,7 +1848,7 @@ getAbilityIcon(bundleName: string, moduleName: string, abilityName: string, call **需要权限:** -ohos.permission.GET_BUNDLE_INFO_PRIVILEGED, ohos.permission.GET_BUNDLE_INFO +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO **系统能力:** @@ -1518,7 +1978,7 @@ queryExtensionAbilityInfos(want: Want, extensionType: number, extensionFlags: nu **需要权限:** -ohos.permission.GET_BUNDLE_INFO_PRIVILEGED, ohos.permission.GET_BUNDLE_INFO +ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO **系统能力:** @@ -1693,6 +2153,8 @@ setDisposedStatus(bundleName: string, status: number, callback: AsyncCallback\; **系统能力:** SystemCapability.BundleManager.BundleFramework +**系统API:** 此接口为系统接口,三方应用不支持调用 + **参数:** | 名称 | 类型 | 必填 | 描述 | @@ -1751,13 +2215,15 @@ bundle.setDisposedStatus(bundleName, status).then(data=>{ ## bundle.getDisposedStatus9+ -getDisposedStatus(bundleName: string,, callback: AsyncCallback\): void; +getDisposedStatus(bundleName: string, callback: AsyncCallback\): void; 以异步方法根据给定的bundleName来获取对应应用的处置状态,使用callback形式返回结果。 **需要权限:** ohos.permission.MANAGE_DISPOSED_APP_STATUS **系统能力:** SystemCapability.BundleManager.BundleFramework +**系统API:** 此接口为系统接口,三方应用不支持调用 + **参数:** | 名称 | 类型 | 必填 | 描述 | @@ -1778,7 +2244,7 @@ bundle.getDisposedStatus(bundleName, caller) ## bundle.getDisposedStatus9+ -getDisposedStatus(bundleName: string, status: number): Promise\; +getDisposedStatus(bundleName: string): Promise\; 以异步方法根据给定的bundleName来获取对应应用的处置状态,使用Promise形式返回结果。 @@ -1786,6 +2252,8 @@ getDisposedStatus(bundleName: string, status: number): Promise\; **系统能力:** SystemCapability.BundleManager.BundleFramework +**系统API:** 此接口为系统接口,三方应用不支持调用 + **参数:** | 名称 | 类型 | 必填 | 描述 | @@ -1896,15 +2364,15 @@ Ability类型 | LANDSCAPE | 无 | 屏幕方向--横屏 | | PORTRAIT | 无 | 屏幕方向--竖屏 | | FOLLOW_RECENT | 无 | 屏幕方向--紧跟上一个组件 | -| LANDSCAPE_INVERTED |无 | 屏幕方向--反向横屏 | -| PORTRAIT_INVERTED |无 | 屏幕方向--反向竖屏 | -| AUTO_ROTATION |无 | 屏幕方向--随传感器旋转 | -| AUTO_ROTATION_LANDSCAPE |无 | 屏幕方向--传感器横屏旋转,包括了横屏和反向横屏 | -| AUTO_ROTATION_PORTRAIT |无 | 屏幕方向--传感器竖屏旋转,包括了竖屏和反向竖屏 | -| AUTO_ROTATION_RESTRICTED |无 | 屏幕方向--传感器开关打开,方向可随传感器旋转 | -| AUTO_ROTATION_LANDSCAPE_RESTRICTED |无 | 屏幕方向--传感器开关打开,方向可随传感器旋转为横屏, 包括了横屏和反向横屏 | -| AUTO_ROTATION_PORTRAIT_RESTRICTED |无 | 屏幕方向--传感器开关打开,方向随可传感器旋转为竖屏, 包括了横屏和反向横屏 | -| LOCKED |无 | 屏幕方向--传感器开关关闭,方向锁定 | +| LANDSCAPE_INVERTED9+ |无 | 屏幕方向--反向横屏 | +| PORTRAIT_INVERTED9+ |无 | 屏幕方向--反向竖屏 | +| AUTO_ROTATION9+ |无 | 屏幕方向--随传感器旋转 | +| AUTO_ROTATION_LANDSCAPE9+ |无 | 屏幕方向--传感器横屏旋转,包括了横屏和反向横屏 | +| AUTO_ROTATION_PORTRAIT9+ |无 | 屏幕方向--传感器竖屏旋转,包括了竖屏和反向竖屏 | +| AUTO_ROTATION_RESTRICTED9+ |无 | 屏幕方向--传感器开关打开,方向可随传感器旋转 | +| AUTO_ROTATION_LANDSCAPE_RESTRICTED9+ |无 | 屏幕方向--传感器开关打开,方向可随传感器旋转为横屏, 包括了横屏和反向横屏 | +| AUTO_ROTATION_PORTRAIT_RESTRICTED9+ |无 | 屏幕方向--传感器开关打开,方向随可传感器旋转为竖屏, 包括了横屏和反向横屏 | +| LOCKED9+ |无 | 屏幕方向--传感器开关关闭,方向锁定 | ## LaunchMode 启动模式 @@ -1944,7 +2412,8 @@ ExtensionAbility的类型 | FILE_SHARE9+ | 6 | ExtensionAbility的类型包括文件共享 | | STATIC_SUBSCRIBER9+ | 7 | ExtensionAbility的类型包括订阅者 | | WALLPAPER9+ | 8 | ExtensionAbility的类型包括墙纸 | -| BACKUP9+ | 9 | ExtensionAbility的类型包括数据备份恢复 | +| BACKUP9+ | 9 | ExtensionAbility的类型包括数据备份恢复 | +| WINDOW9+ | 10 | ExtensionAbility的类型包括窗口类型扩展信息 | | ENTERPRISE_ADMIN9+ | 11 | ExtensionAbility的类型包括企业管理员 | | UNSPECIFIED9+ | 20 | ExtensionAbility未指定类型 | @@ -1993,6 +2462,20 @@ ExtensionAbility的类型 | 名称 | 类型 | 说明 | | ------------------ | ---- | ---- | -| FULLSCREEN | 无 | 全屏模式 | -| SPLIT | 无 | 分屏模式 | -| FLOATING | 无 | 悬浮模式 | +| FULL_SCREEN9+ | 0 | 全屏模式 | +| SPLIT9+ | 1 | 分屏模式 | +| FLOATING9+ | 2 | 悬浮模式 | + +## UpgradeFlag + +此项仅供内部系统使用 + +**系统API:**此接口为系统接口,三方应用不支持调用 + +**系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework + +| 名称 | 值 | 说明 | +| ----------------------------- | ---- | ---------------- | +| NOT_UPGRADE9+ | 0 | 模块无需升级 | +| SINGLE_UPGRADE9+ | 1 | 单个模块需要升级 | +| RELATION_UPGRADE9+ | 2 | 关系模块需要升级 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-AbilityInfo.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-AbilityInfo.md index 44e8685a7a..6b8c52e7e9 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-bundle-AbilityInfo.md +++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-AbilityInfo.md @@ -9,7 +9,7 @@ Ability信息 - +## AbilityInfo **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-BundleInstaller.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-BundleInstaller.md new file mode 100644 index 0000000000..003becc599 --- /dev/null +++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-BundleInstaller.md @@ -0,0 +1,105 @@ +# BundleInstaller + + + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> 本模块首批接口从API version 7 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 + + + +在设备上安装、升级和删除捆绑包 + + + +## 系统能力 + +SystemCapability.BundleManager.BundleFramework + +## BundleInstaller.install + +install(bundleFilePaths: Array<string>, param: InstallParam, callback: AsyncCallback<InstallStatus>): void; + +以异步方法在HAP中安装应用程序,使用callback形式返回结果。 + +**需要权限:** + +ohos.permission.INSTALL_BUNDLE + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| --------------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------ | +| bundleFilePaths | Array<string> | 是 | 指示存储应用程序包的路径。路径应该是当前应用程序的数据目录的相对路径。 | +| param | [InstallParam](#installparam) | 是 | 指定安装所需的其他参数。 | +| callback | AsyncCallback<[InstallStatus](#installstatus)> | 是 | 程序启动作为入参的回调函数,返回安装状态信息。 | + +## BundleInstaller.uninstall + +uninstall(bundleName: string, param: InstallParam, callback: AsyncCallback<InstallStatus>): void; + +以异步方法卸载应用程序,使用callback形式返回结果。 + +**需要权限:** + +ohos.permission.INSTALL_BUNDLE + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ---------- | ---------------------------------------------------- | ---- | ---------------------------------------------- | +| bundleName | string | 是 | 包名 | +| param | [InstallParam](#installparam) | 是 | 指定安装所需的其他参数。 | +| callback | AsyncCallback<[InstallStatus](#installstatus)> | 是 | 程序启动作为入参的回调函数,返回安装状态信息。 | + +## BundleInstaller.recover + +recover(bundleName: string, param: InstallParam, callback: AsyncCallback<InstallStatus>): void; + +以异步方法恢复一个应用程序,使用callback形式返回结果。 + +**需要权限:** + +ohos.permission.INSTALL_BUNDLE + +**系统能力:** + +SystemCapability.BundleManager.BundleFramework + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ---------- | ---------------------------------------------------- | ---- | ---------------------------------------------- | +| bundleName | string | 是 | 包名 | +| param | [InstallParam](#installparam) | 是 | 指定安装所需的其他参数。 | +| callback | AsyncCallback<[InstallStatus](#installstatus)> | 是 | 程序启动作为入参的回调函数,返回安装状态信息。 | + +## InstallParam + +应用程序安装卸载信息 + + **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework + +| 名称 | 类型 | 说明 | +| ----------- | ------- | ------------------ | +| userId | number | 指示用户id | +| installFlag | number | 指示安装标志 | +| isKeepData | boolean | 指示参数是否有数据 | + +## InstallStatus + +应用程序安装状态 + + **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------ | +| status | bundle.[InstallErrorCode](js-apis-Bundle.md#installerrorcode) | 是 | 否 | 表示安装或卸载错误状态码 | +| statusMessage | string | 是 | 否 | 表示安装或卸载的字符串结果信息 | \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-ElementName.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-ElementName.md index 33b58e0721..c7fc3de209 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-bundle-ElementName.md +++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-ElementName.md @@ -2,17 +2,17 @@ -**说明:** +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > 本模块首批接口从API version 7 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 - - ElementName信息 ## ElementName **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework + + | 名称 | 类型 | 可读 | 可写 | 说明 | | ----------------------- | ---------| ---- | ---- | ------------------------- | | deviceId | string | 是 | 是 | 设备id | diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-LauncherAbilityInfo.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-LauncherAbilityInfo.md new file mode 100644 index 0000000000..c2ca416a6b --- /dev/null +++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-LauncherAbilityInfo.md @@ -0,0 +1,23 @@ +# LauncherAbilityInfo + + + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> 本模块首批接口从API version 8 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 + + + +LauncherAbilityInfo信息 + +## LauncherAbilityInfo + + **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| --------------- | ---------------------------------------------------- | ---- | ---- | ------------------------------------ | +| applicationInfo | [ApplicationInfo](js-apis-bundle-ApplicationInfo.md) | 是 | 否 | launcher ability的应用程序的配置信息 | +| elementName | [ElementName](js-apis-bundle-ElementName.md) | 是 | 否 | launcher ability的ElementName信息 | +| labelId | number | 是 | 否 | launcher ability的标签ID | +| iconId | number | 是 | 否 | launcher ability的图标ID | +| userId | number | 是 | 否 | launcher ability的用户ID | +| installTime | number | 是 | 否 | launcher ability的安装时间 | \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-PermissionDef.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-PermissionDef.md new file mode 100644 index 0000000000..62cc922bff --- /dev/null +++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-PermissionDef.md @@ -0,0 +1,21 @@ +# PermissionDef + + + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> 本模块首批接口从API version 8 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 + + + +配置文件中定义的权限详细信息 + +## **PermissionDef** + + **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| -------------- | ------ | ---- | ---- | -------------- | +| permissionName | string | 是 | 否 | 用户权限名称 | +| grantMode | number | 是 | 否 | 权限的授予模式 | +| labelId | number | 是 | 否 | 权限的标签ID | +| descriptionId | number | 是 | 否 | 描述权限的ID | \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-ShortcutInfo.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-ShortcutInfo.md new file mode 100644 index 0000000000..71a3d1077b --- /dev/null +++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-ShortcutInfo.md @@ -0,0 +1,46 @@ +# ShortcutInfo + + + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> 本模块首批接口从API version 7 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 + + + +配置文件中定义的权限详细信息 + + + +## ShortcutWant + +获取有关快捷方式将启动的功能和目标的信息 + + **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------------------- | ------ | ---- | ---- | -------------------- | +| targetBundle | string | 是 | 否 | 快捷方式的目标捆绑包 | +| targetModule9+ | string | 是 | 否 | 快捷方式的目标模块 | +| targetClass | string | 是 | 否 | 快捷方式所需的目标类 | + +## ShortcutInfo + +获取有关快捷方式将启动的功能和目标的信息 + + **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ----------------------- | ------------------------------------------ | ---- | ---- | ---------------------------- | +| id | string | 是 | 否 | 快捷方式所属应用程序的Id | +| bundleName | string | 是 | 否 | 包含快捷方式的包名称 | +| hostAbility | string | 是 | 否 | 快捷方式的本地Ability信息 | +| icon | string | 是 | 否 | 快捷方式的图标 | +| iconId8+ | number | 是 | 否 | 快捷方式的图标Id | +| label | string | 是 | 否 | 快捷方式的标签 | +| labelId8+ | number | 是 | 否 | 快捷方式的标签Id | +| disableMessage | string | 是 | 否 | 快捷方式的禁用消息 | +| wants | Array<[ShortcutWant](#shortcutwant)> | 是 | 否 | 快捷方式所需要的信息 | +| isStatic | boolean | 是 | 否 | 快捷方式是否为静态 | +| isHomeShortcut | boolean | 是 | 否 | 快捷方式是否为主页面快捷方式 | +| isEnabled | boolean | 是 | 否 | 是否启用快捷方式 | +| moduleName9+ | string | 是 | 否 | 快捷方式的模块名 | \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-defaultAppManager.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-defaultAppManager.md index 5ca653cf01..02d307aeb9 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-bundle-defaultAppManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-defaultAppManager.md @@ -95,7 +95,7 @@ getDefaultApplication(type: string, userId?: number): Promise\ **系统能力:** SystemCapability.BundleManager.BundleFramework -**System API:** 此接口为系统接口 +**系统API:** 此接口为系统接口,三方应用不支持调用 **参数:** @@ -140,7 +140,7 @@ getDefaultApplication(type: string, userId: number, callback: AsyncCallback\) : void **系统能力:** SystemCapability.BundleManager.BundleFramework -**System API:** 此接口为系统接口 +**系统API:** 此接口为系统接口,三方应用不支持调用 **参数:** @@ -219,7 +219,7 @@ setDefaultApplication(type: string, elementName: ElementName, userId?: number): **系统能力:** SystemCapability.BundleManager.BundleFramework -**System API:** 此接口为系统接口 +**系统API:** 此接口为系统接口,三方应用不支持调用 **参数:** @@ -267,7 +267,7 @@ setDefaultApplication(type: string, elementName: ElementName, userId: number, ca **系统能力:** SystemCapability.BundleManager.BundleFramework -**System API:** 此接口为系统接口 +**系统API:** 此接口为系统接口,三方应用不支持调用 **参数:** @@ -316,7 +316,7 @@ setDefaultApplication(type: string, elementName: ElementName, callback: AsyncCal **系统能力:** SystemCapability.BundleManager.BundleFramework -**System API:** 此接口为系统接口 +**系统API:** 此接口为系统接口,三方应用不支持调用 **参数:** @@ -364,7 +364,7 @@ resetDefaultApplication(type: string, userId?: number): Promise\ **系统能力:** SystemCapability.BundleManager.BundleFramework -**System API:** 此接口为系统接口 +**系统API:** 此接口为系统接口,三方应用不支持调用 **参数:** @@ -403,7 +403,7 @@ resetDefaultApplication(type: string, userId: number, callback: AsyncCallback\) : void; **系统能力:** SystemCapability.BundleManager.BundleFramework -**System API:** 此接口为系统接口 +**系统API:** 此接口为系统接口,三方应用不支持调用 **参数:** diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-remoteAbilityInfo.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-remoteAbilityInfo.md new file mode 100644 index 0000000000..37601a3c83 --- /dev/null +++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-remoteAbilityInfo.md @@ -0,0 +1,20 @@ +# RemoteAbilityInfo + + + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> 本模块首批接口从API version 8 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 + + + +包含基本远程能力信息 + +## RemoteAbilityInfo + + **系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ----------- | -------------------------------------------- | ---- | ---- | ----------------------- | +| elementName | [ElementName](js-apis-bundle-ElementName.md) | 是 | 否 | 指明的ability信息 | +| label | string | 是 | 否 | 指明ability的标签信息 | +| icon | string | 是 | 否 | 指明的ability的图标信息 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-dispatchInfo.md b/zh-cn/application-dev/reference/apis/js-apis-dispatchInfo.md new file mode 100644 index 0000000000..2ea328f845 --- /dev/null +++ b/zh-cn/application-dev/reference/apis/js-apis-dispatchInfo.md @@ -0,0 +1,20 @@ +# DispatchInfo + + + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 + + + +调度信息类 + +## DispatchInfo + +**系统能力**: 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ----------- | ------ | ---- | ---- | ------------------------ | +| verison | string | 是 | 否 | 包含dispatchInfo版本信息 | +| dispatchAPI | string | 是 | 否 | 包含免安装接口版本号 | + -- GitLab From 9c62c6773004bc46798a212a8eccd3bb56fc3ae7 Mon Sep 17 00:00:00 2001 From: xiongjun_gitee Date: Tue, 19 Jul 2022 14:20:55 +0800 Subject: [PATCH 078/868] update ts-basic-components-web.md Signed-off-by: xiongjun_gitee --- .../arkui-ts/ts-basic-components-web.md | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md index 25395c310c..c937a41347 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md @@ -75,6 +75,7 @@ | onShowFileSelector(callback: (event?: { result: [FileSelectorResult](#fileselectorresult对象说明), fileSelector: [FileSelectorParam](#fileselectorparam对象说明) }) => void) |

调用此函数以处理具有“文件”输入类型的HTML表单,以响应用户按下的“选择文件”按钮
- result:用于通知Web组件文件选择的结果。
- fileSelector:文件选择器的相关信息。

| | onUrlLoadIntercept(callback: (event?: { data:string \| [WebResourceRequest](#webresourcerequest对象说明) }) => boolean) |

当Web组件加载url之前触发该回调,用于是否阻止此次访问。callback返回true表示阻止此次加载,否则允许此次加载。
- data:url的相关信息。

| | onInterceptRequest9+(callback: (event?: { request: [WebResourceRequest](#webresourcerequest对象说明)}) => [WebResourceResponse](#webresourceresponse对象说明)) |

当Web组件加载url之前触发该回调,用于拦截url并返回响应数据。callback返回响应数据为空表示按原来方式加载,否则加载响应数据。
- request:url请求的相关信息。

| +| onHttpAuthRequest9+(callback: (event?: { handler: [HttpAuthHandler](#httpAuthHandler对象说明), host: string, realm: string}) => boolean) |

通知收到http auth认证请求。callback返回false表示此次认证失败,否则成功。
- handler:通知Web组件用户操作行为。
- host:HTTP身份验证凭据应用的主机。
- realm:HTTP身份验证凭据应用的领域。

| ## ConsoleMessage对象说明 @@ -200,6 +201,16 @@ onRenderExited接口返回的渲染进程退出的具体原因。 | FileOpenFolderMode | 打开上传文件夹模式。 | | FileSaveMode | 文件保存模式。 | +## HttpAuthHandler对象说明 + +Web组件返回的http auth认证请求确认或取消和使用缓冲密码认证功能对象。 + +| 接口名称 | 功能描述 | +| -------------------------------------------------| ------------------------------------------------------ | +| cancel(): void |

通知Web组件用户取消HTTP认证操作。

| +| confirm(userName: string, pwd: string): boolean |

通知Web组件用户使用userName和pwd进行HTTP认证操作。

| +| isHttpAuthInfoSaved(): boolean |

通知Web组件用户使用服务器缓存的账号密码认证,若没有缓存返回false。

| + ## WebController 通过WebController可以控制Web组件各种行为。一个WebController对象只能控制一个Web组件,且必须在Web组件和WebController绑定后,才能调用WebController上的方法。 @@ -411,6 +422,59 @@ saveCookieSync(): boolean | 参数类型 | 说明 | | -------- | ---------------------------------- | | boolean | 同步内存cookie到磁盘操作是否成功。 | + +## WebDataBase9+ +web组件数据库管理对象。 + +### existHttpAuthCredentials9+ + +static existHttpAuthCredentials(): boolean + +判断是否存在任何已保存的HTTP身份验证凭据,该方法为同步方法。存在返回true,否则返回false。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | ----------------------------------- | + | boolean | 是否存在任何已保存的HTTP身份验证凭据。存在返回true,不存在返回false | + +### deleteHttpAuthCredentials9+ + +static deleteHttpAuthCredentials(): void + +清除所有已保存的HTTP身份验证凭据,该方法为同步方法。 + +### getHttpAuthCredentials9+ + +static getHttpAuthCredentials(host: string, realm: string): Array\ + +检索给定主机和领域的HTTP身份验证凭据,该方法为同步方法。检索成功返回一个包含用户名和密码的组数,检索不成功返回空数组。 + +- 参数说明 + + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | -------------------------- | + | host | string | 是 | - | HTTP身份验证凭据应用的主机。 | + | realm | string | 是 | - | HTTP身份验证凭据应用的领域。 | +- 返回值 + | 参数类型 | 说明 | + | ---------------- | --------------------------------------------- | + | Array\ | 包含用户名和密码的组数,检索失败返回空数组。 | + +### saveHttpAuthCredentials9+ + +static saveHttpAuthCredentials(host: string, realm: string, username: string, password: string): void + +保存给定主机和领域的HTTP身份验证凭据,该方法为同步方法。 + +- 参数说明 + + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | -------- | -------- | ---- | ------ | -------------------------- | + | host | string | 是 | - | HTTP身份验证凭据应用的主机。 | + | realm | string | 是 | - | HTTP身份验证凭据应用的领域。 | + | username | string | 是 | - | 用户名。 | + | password | string | 是 | - | 密码。 | + ## 示例 ```ts -- GitLab From aa5717c699f46a46c4dd0be9f8331ea4cd7d028f Mon Sep 17 00:00:00 2001 From: jiangyuan0000 Date: Tue, 19 Jul 2022 14:32:47 +0800 Subject: [PATCH 079/868] =?UTF-8?q?=E8=A1=A5=E5=85=85=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jiangyuan0000 --- .../reference/apis/js-apis-hidebug.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-hidebug.md b/zh-cn/application-dev/reference/apis/js-apis-hidebug.md index 58da6c591b..26a7adcbaf 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-hidebug.md +++ b/zh-cn/application-dev/reference/apis/js-apis-hidebug.md @@ -26,7 +26,7 @@ getNativeHeapSize(): bigint | 类型 | 说明 | | ------ | --------------------------- | -| bigint | 返回native heap内存总大小。 | +| bigint | 返回native heap内存总大小,单位为kB。 | **示例:** @@ -49,7 +49,7 @@ getNativeHeapAllocatedSize(): bigint **返回值:** | 类型 | 说明 | | ------ | --------------------------------- | -| bigint | 返回native heap内存的已分配内存。 | +| bigint | 返回native heap内存的已分配内存,单位为kB。 | **示例:** @@ -72,7 +72,7 @@ getNativeHeapFreeSize(): bigint **返回值:** | 类型 | 说明 | | ------ | ------------------------------- | -| bigint | 返回native heap内存的空闲内存。 | +| bigint | 返回native heap内存的空闲内存,单位为kB。 | **示例:** @@ -93,7 +93,7 @@ getPss(): bigint **返回值:** | 类型 | 说明 | | ------ | ------------------------- | -| bigint | 返回应用进程PSS内存大小。 | +| bigint | 返回应用进程PSS内存大小,单位为kB。 | **示例:** @@ -114,7 +114,7 @@ getSharedDirty(): bigint **返回值:** | 类型 | 说明 | | ------ | -------------------------- | -| bigint | 返回进程的共享脏内存大小。 | +| bigint | 返回进程的共享脏内存大小,单位为kB。 | **示例:** @@ -134,7 +134,7 @@ getPrivateDirty(): bigint **返回值:** | 类型 | 说明 | | ------ | -------------------------- | -| bigint | 返回进程的私有脏内存大小。 | +| bigint | 返回进程的私有脏内存大小,单位为kB。 | **示例:** -- GitLab From 697391466e15175e3aff447dccde979af30ddc05 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Tue, 19 Jul 2022 15:17:10 +0800 Subject: [PATCH 080/868] update docs Signed-off-by: Annie_wang --- .../reference/apis/js-apis-wifi.md | 489 ++++++++++-------- 1 file changed, 275 insertions(+), 214 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-wifi.md b/en/application-dev/reference/apis/js-apis-wifi.md index 875607d4fd..602a3b7e2a 100644 --- a/en/application-dev/reference/apis/js-apis-wifi.md +++ b/en/application-dev/reference/apis/js-apis-wifi.md @@ -21,9 +21,9 @@ Checks whether the WLAN is activated. **System capability**: SystemCapability.Communication.WiFi.STA **Return value** - | **Type**| **Description**| - | -------- | -------- | - | boolean | Returns **true** if the WLAN is activated; returns **false** otherwise.| +| **Type**| **Description**| +| -------- | -------- | +| boolean | Returns **true** if the WLAN is activated; returns **false** otherwise.| ## wifi.scan @@ -37,41 +37,41 @@ Starts a scan for WLAN. **System capability**: SystemCapability.Communication.WiFi.STA **Return value** - | **Type**| **Description**| - | -------- | -------- | - | boolean | Returns **true** if the scan is successful; returns **false** otherwise.| +| **Type**| **Description**| +| -------- | -------- | +| boolean | Returns **true** if the scan is successful; returns **false** otherwise.| ## wifi.getScanInfos getScanInfos(): Promise<Array<WifiScanInfo>> -Obtains the scan result. This method uses a promise to return the result. +Obtains the scan result. This API uses a promise to return the result. -**Required permissions**: ohos.permission.GET_WIFI_INFO, ohos.permission.GET_WIFI_PEERS_MAC, or ohos.permission.LOCATION +**Required permissions**: at least one of ohos.permission.GET_WIFI_INFO, ohos.permission.GET_WIFI_PEERS_MAC, and ohos.permission.LOCATION **System capability**: SystemCapability.Communication.WiFi.STA **Return value** - | **Type**| **Description**| - | -------- | -------- | - | Promise< Array<[WifiScanInfo](#wifiscaninfo)> > | Promise used to return the scan result, which is a list of hotspots detected.| +| **Type**| **Description**| +| -------- | -------- | +| Promise< Array<[WifiScanInfo](#wifiscaninfo)> > | Promise used to return the hotspots detected.| ## wifi.getScanInfos getScanInfos(callback: AsyncCallback<Array<WifiScanInfo>>): void -Obtains the scan result. This method uses an asynchronous callback to return the result. +Obtains the scan result. This API uses an asynchronous callback to return the result. **Required permissions**: at least one of ohos.permission.GET_WIFI_INFO, ohos.permission.GET_WIFI_PEERS_MAC, and ohos.permission.LOCATION **System capability**: SystemCapability.Communication.WiFi.STA **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | callback | AsyncCallback< Array<[WifiScanInfo](#wifiscaninfo)>> | Yes| Callback invoked to return the result, which is a list of hotspots detected.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| callback | AsyncCallback< Array<[WifiScanInfo](#wifiscaninfo)>> | Yes| Callback invoked to return the hotspots detected.| **Example** ```js @@ -126,10 +126,12 @@ Represents WLAN hotspot information. | bssid | string | Read only| Basic service set identifier (BSSID) of the hotspot.| | capabilities | string | Read only| Hotspot capabilities.| | securityType | [WifiSecurityType](#WifiSecurityType) | Read only| WLAN security type.| -| rssi | number | Read only| Signal strength of the hotspot, in dBm.| +| rssi | number | Read only| Received signal strength indicator (RSSI) of the hotspot, in dBm.| | band | number | Read only| Frequency band of the WLAN access point (AP).| | frequency | number | Read only| Frequency of the WLAN AP.| | channelWidth | number | Read only| Bandwidth of the WLAN AP.| +| centerFrequency0 | number | Read only| Center frequency.| +| centerFrequency1 | number | Read only| Center frequency.| | timestamp | number | Read only| Timestamp.| @@ -150,7 +152,7 @@ Enumerates the WLAN security types. addUntrustedConfig(config: WifiDeviceConfig): Promise<boolean> -Adds untrusted WLAN configuration. This method uses a promise to return the result. +Adds untrusted WLAN configuration. This API uses a promise to return the result. **Required permissions**: ohos.permission.SET_WIFI_INFO @@ -159,14 +161,14 @@ Adds untrusted WLAN configuration. This method uses a promise to return the resu SystemCapability.Communication.WiFi.STA **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | config | [WifiDeviceConfig](#WifiDeviceConfig) | Yes| WLAN configuration to add.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| config | [WifiDeviceConfig](#WifiDeviceConfig) | Yes| WLAN configuration to add.| **Return value** - | **Type**| **Description**| - | -------- | -------- | - | Promise<boolean> | Promise used to return the operation result. The value **true** indicates that the operation is successful; **false** indicates the opposite.| +| **Type**| **Description**| +| -------- | -------- | +| Promise<boolean> | Promise used to return the operation result. The value **true** indicates that the operation is successful; **false** indicates the opposite.| ## WifiDeviceConfig @@ -174,120 +176,120 @@ Represents the WLAN configuration. | **Name**| **Type**| **Readable/Writable**| **Description**| | -------- | -------- | -------- | -------- | -| ssid | string | Read only| Hotspot SSID, in UTF-8 format.| +| ssid | string | Read only| Hotspot service set identifier (SSID), in UTF-8 format.| | bssid | string | Read only| BSSID of the hotspot.| | preSharedKey | string | Read only| Private key of the hotspot.| | isHiddenSsid | boolean | Read only| Whether to hide the network.| -| securityType | [WifiSecurityType](#WifiSecurityType) | Read only| Security type| +| securityType | [WifiSecurityType](#WifiSecurityType) | Read only| Security type.| ## wifi.addUntrustedConfig7+ addUntrustedConfig(config: WifiDeviceConfig, callback: AsyncCallback<boolean>): void -Adds untrusted WLAN configuration. This method uses an asynchronous callback to return the result. +Adds untrusted WLAN configuration. This API uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.SET_WIFI_INFO **System capability**: SystemCapability.Communication.WiFi.STA **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | config | [WifiDeviceConfig](#WifiDeviceConfig) | Yes| WLAN configuration to add.| - | callback | AsyncCallback<boolean> | Yes| Promise used to return the operation result. The value **true** indicates that the operation is successful; **false** indicates the opposite.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| config | [WifiDeviceConfig](#WifiDeviceConfig) | Yes| WLAN configuration to add.| +| callback | AsyncCallback<boolean> | Yes| Callback used to return the operation result. The value **true** indicates that the operation is successful; **false** indicates the opposite.| ## wifi.removeUntrustedConfig7+ removeUntrustedConfig(config: WifiDeviceConfig): Promise<boolean> -Removes untrusted WLAN configuration. This method uses a promise to return the result. +Removes untrusted WLAN configuration. This API uses a promise to return the result. **Required permissions**: ohos.permission.SET_WIFI_INFO **System capability**: SystemCapability.Communication.WiFi.STA **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | config | [WifiDeviceConfig](#WifiDeviceConfig) | Yes| WLAN configuration to remove.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| config | [WifiDeviceConfig](#WifiDeviceConfig) | Yes| WLAN configuration to remove. | **Return value** - | **Type**| **Description**| - | -------- | -------- | - | Promise<boolean> | Promise used to return the operation result. The value **true** indicates that the operation is successful; **false** indicates the opposite.| +| **Type**| **Description**| +| -------- | -------- | +| Promise<boolean> | Promise used to return the operation result. The value **true** indicates that the operation is successful; **false** indicates the opposite.| ## wifi.removeUntrustedConfig7+ removeUntrustedConfig(config: WifiDeviceConfig, callback: AsyncCallback<boolean>): void -Removes untrusted WLAN configuration. This method uses an asynchronous callback to return the result. +Removes untrusted WLAN configuration. This API uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.SET_WIFI_INFO **System capability**: SystemCapability.Communication.WiFi.STA **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | config | [WifiDeviceConfig](#WifiDeviceConfig) | Yes| WLAN configuration to remove.| - | callback | AsyncCallback<boolean> | Yes| Promise used to return the operation result. The value **true** indicates that the operation is successful; **false** indicates the opposite.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| config | [WifiDeviceConfig](#WifiDeviceConfig) | Yes| WLAN configuration to remove. | +| callback | AsyncCallback<boolean> | Yes| Callback used to return the operation result. The value **true** indicates that the operation is successful; **false** indicates the opposite.| ## wifi.getSignalLevel getSignalLevel(rssi: number, band: number): number -Obtains the WLAN signal strength. +Obtains the WLAN signal level. **Required permissions**: ohos.permission.GET_WIFI_INFO **System capability**: SystemCapability.Communication.WiFi.STA **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | rssi | number | Yes| Signal strength of the hotspot, in dBm.| - | band | number | Yes| Frequency band of the WLAN AP.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| rssi | number | Yes| RSSI of the hotspot, in dBm. | +| band | number | Yes| Frequency band of the WLAN AP.| **Return value** - | **Type**| **Description**| - | -------- | -------- | - | number | Signal strength obtained. The value range is [0, 4].| +| **Type**| **Description**| +| -------- | -------- | +| number | Signal level obtained. The value range is [0, 4].| ## wifi.getLinkedInfo getLinkedInfo(): Promise<WifiLinkedInfo> -Obtains WLAN connection information. This method uses a promise to return the result. +Obtains WLAN connection information. This API uses a promise to return the result. **Required permissions**: ohos.permission.GET_WIFI_INFO **System capability**: SystemCapability.Communication.WiFi.STA **Return value** - | Type| Description| - | -------- | -------- | - | Promise<[WifiLinkedInfo](#WifiLinkedInfo)> | Promise used to return the WLAN connection information obtained.| +| Type| Description| +| -------- | -------- | +| Promise<[WifiLinkedInfo](#WifiLinkedInfo)> | Promise used to return the WLAN connection information obtained.| ## wifi.getLinkedInfo getLinkedInfo(callback: AsyncCallback<WifiLinkedInfo>): void -Obtains WLAN connection information. This method uses a callback to return the result. +Obtains WLAN connection information. This API uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.GET_WIFI_INFO **System capability**: SystemCapability.Communication.WiFi.STA **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | callback | AsyncCallback<[WifiLinkedInfo](#WifiLinkedInfo)> | Yes| Callback invoked to return the WLAN connection information obtained.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| callback | AsyncCallback<[WifiLinkedInfo](#WifiLinkedInfo)> | Yes| Callback invoked to return the WLAN connection information obtained.| **Example** ```js @@ -317,11 +319,11 @@ Represents the WLAN connection information. | -------- | -------- | -------- | -------- | | ssid | string | Read only| Hotspot SSID, in UTF-8 format.| | bssid | string | Read only| BSSID of the hotspot.| -| rssi | number | Read only| Signal strength of the hotspot, in dBm.| +| rssi | number | Read only| RSSI of the hotspot, in dBm. | | band | number | Read only| Frequency band of the WLAN AP.| | linkSpeed | number | Read only| Speed of the WLAN AP.| | frequency | number | Read only| Frequency of the WLAN AP.| -| isHidden | boolean | Read only| Whether the WLAN AP is hidden.| +| isHidden | boolean | Read only| Whether to hide the WLAN AP.| | isRestricted | boolean | Read only| Whether to restrict data volume at the WLAN AP.| | macAddress | string | Read only| MAC address of the device.| | ipAddress | number | Read only| IP address of the device that sets up the WLAN connection.| @@ -355,9 +357,9 @@ Checks whether the WLAN is connected. **System capability**: SystemCapability.Communication.WiFi.STA **Return value** - | **Type**| **Description**| - | -------- | -------- | - | boolean | Returns **true** if the WLAN is connected; returns **false** otherwise.| +| **Type**| **Description**| +| -------- | -------- | +| boolean | Returns **true** if the WLAN is connected; returns **false** otherwise.| ## wifi.isFeatureSupported7+ @@ -372,14 +374,14 @@ Checks whether the device supports the specified WLAN feature. **Parameters** - | **Name**| **Type**| Mandatory| **Description**| - | -------- | -------- | -------- | -------- | - | featureId | number | Yes| Feature ID.| +| **Name**| **Type**| Mandatory| **Description**| +| -------- | -------- | -------- | -------- | +| featureId | number | Yes| Feature ID.| **Return value** - | **Type**| **Description**| - | -------- | -------- | - | boolean | Returns **true** if the feature is supported; returns **false** otherwise.| +| **Type**| **Description**| +| -------- | -------- | +| boolean | Returns **true** if the feature is supported; returns **false** otherwise.| **Feature IDs** @@ -408,9 +410,9 @@ Obtains IP information. **System capability**: SystemCapability.Communication.WiFi.STA **Return value** - | **Type**| **Description**| - | -------- | -------- | - | [IpInfo](#IpInfo) | IP information obtained.| +| **Type**| **Description**| +| -------- | -------- | +| [IpInfo](#IpInfo) | IP information obtained.| ## IpInfo7+ @@ -439,41 +441,41 @@ Obtains the country code. **System capability**: SystemCapability.Communication.WiFi.Core **Return value** - | **Type**| **Description**| - | -------- | -------- | - | string | Country code obtained.| +| **Type**| **Description**| +| -------- | -------- | +| string | Country code obtained.| ## wifi.getP2pLinkedInfo8+ getP2pLinkedInfo(): Promise<WifiP2pLinkedInfo> -Obtains peer-to-peer (P2P) connection information. This method uses a promise to return the result. +Obtains peer-to-peer (P2P) connection information. This API uses a promise to return the result. **Required permissions**: ohos.permission.GET_WIFI_INFO **System capability**: SystemCapability.Communication.WiFi.P2P **Return value** - | Type| Description| - | -------- | -------- | - | Promise<[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)> | Promise used to return the P2P connection information obtained.| +| Type| Description| +| -------- | -------- | +| Promise<[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)> | Promise used to return the P2P connection information obtained.| ## wifi.getP2pLinkedInfo8+ getP2pLinkedInfo(callback: AsyncCallback<WifiP2pLinkedInfo>): void -Obtains P2P connection information. This method uses a callback to return the result. +Obtains P2P connection information. This API uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.GET_WIFI_INFO **System capability**: SystemCapability.Communication.WiFi.P2P **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | callback | AsyncCallback<[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)> | Yes| Callback used to return the P2P connection information obtained.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| callback | AsyncCallback<[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)> | Yes| Callback used to return the P2P connection information obtained.| ## WifiP2pLinkedInfo8+ @@ -483,8 +485,8 @@ Represents the WLAN connection information. | Name| Type| Readable/Writable| Description| | -------- | -------- | -------- | -------- | | connectState | [P2pConnectState](#P2pConnectState) | Read only| P2P connection state.| -| isGroupOwner | boolean | Read only| Whether it is a group.| -| groupOwnerAddr | string | Read only| MAC address of the group.| +| isGroupOwner | boolean | Read only| Whether it is a group owner.| +| groupOwnerAddr | string | Read only| MAC address of the group owner.| ## P2pConnectState8+ @@ -501,33 +503,62 @@ Enumerates the P2P connection states. getCurrentGroup(): Promise<WifiP2pGroupInfo> -Obtains the current P2P group information. This method uses a promise to return the result. +Obtains the current P2P group information. This API uses a promise to return the result. **Required permissions**: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION **System capability**: SystemCapability.Communication.WiFi.P2P **Return value** - | Type| Description| - | -------- | -------- | - | Promise<[WifiP2pGroupInfo](#WifiP2pGroupInfo)> | Promise used to return the P2P group information obtained.| +| Type| Description| +| -------- | -------- | +| Promise<[WifiP2pGroupInfo](#WifiP2pGroupInfo)> | Promise used to return the P2P group information obtained.| ## wifi.getCurrentGroup8+ getCurrentGroup(callback: AsyncCallback<WifiP2pGroupInfo>): void -Obtains the P2P group information. This method uses an asynchronous callback to return the result. +Obtains the P2P group information. This API uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION **System capability**: SystemCapability.Communication.WiFi.P2P **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | callback | AsyncCallback<[WifiP2pGroupInfo](#WifiP2pGroupInfo)> | Yes| Callback used to return the P2P group information obtained.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| callback | AsyncCallback<[WifiP2pGroupInfo](#WifiP2pGroupInfo)> | Yes| Callback used to return the P2P group information obtained.| + +## wifi.getP2pGroups9+ + +getP2pGroups(): Promise<Array<WifiP2pGroupInfo> + +Obtains information about all P2P groups. This API uses a promise to return the result. + +**Required permissions**: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION + +**System capability**: SystemCapability.Communication.WiFi.P2P + +**Return value** +| Type| Description| +| -------- | -------- | +| Promise< Array<[WifiP2pGroupInfo](#WifiP2pGroupInfo)> > | Information about all created P2P groups obtained.| + +## wifi.getP2pGroups9+ + +getP2pGroups(callback: AsyncCallback<Array<WifiP2pGroupInfo>): void + +Obtains information about all P2P groups. This API uses an asynchronous callback to return the result. + +**Required permissions**: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION + +**System capability**: SystemCapability.Communication.WiFi.P2P +**Parameters** +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| callback | AsyncCallback< Array<[WifiP2pGroupInfo](#WifiP2pGroupInfo)>> | Yes| Callback invoked to return the P2P group information obtained.| ## WifiP2pGroupInfo8+ @@ -574,33 +605,63 @@ Enumerates the device states. getP2pPeerDevices(): Promise<WifiP2pDevice[]> -Obtains the list of peer devices in a P2P connection. This method uses a promise to return the result. +Obtains the list of peer devices in a P2P connection. This API uses a promise to return the result. **Required permissions**: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION **System capability**: SystemCapability.Communication.WiFi.P2P **Return value** - | Type| Description| - | -------- | -------- | - | Promise<[WifiP2pDevice[]](#WifiP2pDevice)> | Promise used to return the peer device list obtained.| +| Type| Description| +| -------- | -------- | +| Promise<[WifiP2pDevice[]](#WifiP2pDevice)> | Promise used to return the peer device list obtained.| ## wifi.getP2pPeerDevices8+ getP2pPeerDevices(callback: AsyncCallback<WifiP2pDevice[]>): void -Obtains the list of peer devices in a P2P connection. This method uses an asynchronous callback to return the result. +Obtains the list of peer devices in a P2P connection. This API uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION **System capability**: SystemCapability.Communication.WiFi.P2P **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | callback | AsyncCallback<[WifiP2pDevice[]](#WifiP2pDevice)> | Yes| Callback used to return the peer device list obtained.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| callback | AsyncCallback<[WifiP2pDevice[]](#WifiP2pDevice)> | Yes| Callback used to return the peer device list obtained.| + +## wifi.getP2pLocalDevice9+ + +getP2pLocalDevice(): Promise<WifiP2pDevice> + +Obtains local device information. This API uses a promise to return the result. + +**Required permissions**: ohos.permission.GET_WIFI_INFO and ohos.permission.GET_WIFI_CONFIG + +**System capability**: SystemCapability.Communication.WiFi.P2P + +**Return value** +| Type| Description| +| -------- | -------- | +| Promise<[WifiP2pDevice](#WifiP2pDevice)> | Promise used to return the local device information obtained.| + + +## wifi.getP2pLocalDevice8+ + +getP2pLocalDevice(callback: AsyncCallback<WifiP2pDevice>): void + +Obtains local device information. This API uses an asynchronous callback to return the result. + +**Required permissions**: ohos.permission.GET_WIFI_INFO and ohos.permission.GET_WIFI_CONFIG + +**System capability**: SystemCapability.Communication.WiFi.P2P +**Parameters** +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| callback | AsyncCallback<[WifiP2pDevice](#WifiP2pDevice)> | Yes| Callback invoked to returnthe local device information obtained.| ## wifi.createGroup8+ @@ -614,14 +675,14 @@ Creates a P2P group. **Parameters** - | **Name**| **Type**| Mandatory| **Description**| - | -------- | -------- | -------- | -------- | - | config | [WifiP2PConfig](#WifiP2PConfig) | Yes| Group configuration.| +| **Name**| **Type**| Mandatory| **Description**| +| -------- | -------- | -------- | -------- | +| config | [WifiP2PConfig](#WifiP2PConfig) | Yes| Group configuration.| **Return value** - | Type| Description| - | -------- | -------- | - | boolean | Returns **true** if the operation is successful; returns **false** otherwise.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| ## WifiP2PConfig8+ @@ -650,16 +711,16 @@ Enumerates the P2P group bandwidths. removeGroup(): boolean; -Removes a P2P group. +Removes this P2P group. **Required permissions**: ohos.permission.GET_WIFI_INFO **System capability**: SystemCapability.Communication.WiFi.P2P **Return value** - | Type| Description| - | -------- | -------- | - | boolean | Returns **true** if the operation is successful; returns **false** otherwise.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| ## wifi.p2pConnect8+ @@ -674,14 +735,14 @@ Sets up a P2P connection. **Parameters** - | **Name**| **Type**| Mandatory| **Description**| - | -------- | -------- | -------- | -------- | - | config | [WifiP2PConfig](#WifiP2PConfig) | Yes| Connection configuration.| +| **Name**| **Type**| Mandatory| **Description**| +| -------- | -------- | -------- | -------- | +| config | [WifiP2PConfig](#WifiP2PConfig) | Yes| Connection configuration.| **Return value** - | Type| Description| - | -------- | -------- | - | boolean | Returns **true** if the operation is successful; returns **false** otherwise.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| **Example** @@ -762,9 +823,9 @@ Cancels this P2P connection. **System capability**: SystemCapability.Communication.WiFi.P2P **Return value** - | Type| Description| - | -------- | -------- | - | boolean | Returns **true** if the operation is successful; returns **false** otherwise.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| ## wifi.startDiscoverDevices8+ @@ -778,9 +839,9 @@ Starts to discover devices. **System capability**: SystemCapability.Communication.WiFi.P2P **Return value** - | Type| Description| - | -------- | -------- | - | boolean | Returns **true** if the operation is successful; returns **false** otherwise.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| ## wifi.stopDiscoverDevices8+ @@ -794,9 +855,9 @@ Stops discovering devices. **System capability**: SystemCapability.Communication.WiFi.P2P **Return value** - | Type| Description| - | -------- | -------- | - | boolean | Returns **true** if the operation is successful; returns **false** otherwise.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| ## wifi.on('wifiStateChange')7+ @@ -810,10 +871,10 @@ Registers the WLAN state change events. **System capability**: SystemCapability.Communication.WiFi.STA **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **wifiStateChange**.| - | callback | Callback<number> | Yes| Callback invoked to return the WLAN state.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **wifiStateChange**.| +| callback | Callback<number> | Yes| Callback invoked to return the WLAN state.| **WLAN states** @@ -836,10 +897,10 @@ Unregisters the WLAN state change events. **System capability**: SystemCapability.Communication.WiFi.STA **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **wifiStateChange**.| - | callback | Callback<number> | No| Callback used to return the WLAN state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **wifiStateChange**.| +| callback | Callback<number> | No| Callback used to return the WLAN state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| **Example** ```js @@ -850,10 +911,10 @@ Unregisters the WLAN state change events. console.info("Receive power state change event: " + result); } - // Register event + // Register an event. wifi.on(WIFI_POWER_STATE, recvPowerNotifyFunc); - // Unregister event + // Unregister an event. wifi.off(WIFI_POWER_STATE, recvPowerNotifyFunc); ``` @@ -869,10 +930,10 @@ Registers the WLAN connection state change events. **System capability**: SystemCapability.Communication.WiFi.STA **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **wifiConnectionChange**.| - | callback | Callback<number> | Yes| Callback invoked to return the WLAN connection state.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **wifiConnectionChange**.| +| callback | Callback<number> | Yes| Callback invoked to return the WLAN connection state.| **WLAN connection states** @@ -893,10 +954,10 @@ Unregisters the WLAN connection state change events. **System capability**: SystemCapability.Communication.WiFi.STA **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **wifiConnectionChange**.| - | callback | Callback<number> | No| Callback used to return the WLAN connection state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **wifiConnectionChange**.| +| callback | Callback<number> | No| Callback used to return the WLAN connection state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| ## wifi.on('wifiScanStateChange')7+ @@ -910,10 +971,10 @@ Registers the WLAN scan state change events. **System capability**: SystemCapability.Communication.WiFi.STA **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **wifiScanStateChange**.| - | callback | Callback<number> | Yes| Callback invoked to return the WLAN scan state.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **wifiScanStateChange**.| +| callback | Callback<number> | Yes| Callback invoked to return the WLAN scan state.| **WLAN scan states** @@ -952,10 +1013,10 @@ Registers the RSSI change events. **System capability**: SystemCapability.Communication.WiFi.STA **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **wifiRssiChange**.| - | callback | Callback<number> | Yes| Callback invoked to return the RSSI, in dBm.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **wifiRssiChange**.| +| callback | Callback<number> | Yes| Callback invoked to return the RSSI, in dBm.| ## wifi.off('wifiRssiChange')7+ @@ -969,10 +1030,10 @@ Unregisters the RSSI change events. **System capability**: SystemCapability.Communication.WiFi.STA **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **wifiRssiChange**.| - | callback | Callback<number> | No| Callback used to return the RSSI, in dBm. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **wifiRssiChange**.| +| callback | Callback<number> | No| Callback used to return the RSSI, in dBm. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| ## wifi.on('hotspotStateChange')7+ @@ -986,10 +1047,10 @@ Registers the hotspot state change events. **System capability**: SystemCapability.Communication.WiFi.AP.Core **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **hotspotStateChange**.| - | callback | Callback<number> | Yes| Callback invoked to return the hotspot state.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **hotspotStateChange**.| +| callback | Callback<number> | Yes| Callback invoked to return the hotspot state.| **Hotspot states** @@ -1012,10 +1073,10 @@ Unregisters the hotspot state change events. **System capability**: SystemCapability.Communication.WiFi.AP.Core **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **hotspotStateChange**.| - | callback | Callback<number> | No| Callback used to return the hotspot state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **hotspotStateChange**.| +| callback | Callback<number> | No| Callback used to return the hotspot state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| ## wifi.on('p2pStateChange')8+ @@ -1029,10 +1090,10 @@ Registers the P2P state change events. **System capability**: SystemCapability.Communication.WiFi.P2P **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **p2pStateChange**.| - | callback | Callback<number> | Yes| Callback invoked to return the P2P state.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **p2pStateChange**.| +| callback | Callback<number> | Yes| Callback invoked to return the P2P state.| **P2P states** @@ -1055,10 +1116,10 @@ Unregisters the P2P state change events. **System capability**: SystemCapability.Communication.WiFi.P2P **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **p2pStateChange**.| - | callback | Callback<number> | No| Callback used to return the P2P state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **p2pStateChange**.| +| callback | Callback<number> | No| Callback used to return the P2P state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| ## wifi.on('p2pConnectionChange')8+ @@ -1072,10 +1133,10 @@ Registers the P2P connection state change events. **System capability**: SystemCapability.Communication.WiFi.P2P **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **p2pConnectionChange**.| - | callback | Callback<[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)> | Yes| Callback invoked to return the P2P connection state.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **p2pConnectionChange**.| +| callback | Callback<[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)> | Yes| Callback invoked to return the P2P connection state.| ## wifi.off('p2pConnectionChange')8+ @@ -1089,10 +1150,10 @@ Unregisters the P2P connection state change events. **System capability**: SystemCapability.Communication.WiFi.P2P **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **p2pConnectionChange**.| - | callback | Callback<[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)> | No| Callback used to return the P2P connection state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **p2pConnectionChange**.| +| callback | Callback<[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)> | No| Callback used to return the P2P connection state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| ## wifi.on('p2pDeviceChange')8+ @@ -1106,10 +1167,10 @@ Registers the P2P device state change events. **System capability**: SystemCapability.Communication.WiFi.P2P **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **p2pDeviceChange**.| - | callback | Callback<[WifiP2pDevice](#WifiP2pDevice)> | Yes| Callback invoked to return the P2P device state.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **p2pDeviceChange**.| +| callback | Callback<[WifiP2pDevice](#WifiP2pDevice)> | Yes| Callback invoked to return the P2P device state.| ## wifi.off('p2pDeviceChange')8+ @@ -1123,10 +1184,10 @@ Unregisters the P2P device state change events. **System capability**: SystemCapability.Communication.WiFi.P2P **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **p2pDeviceChange**.| - | callback | Callback<[WifiP2pDevice](#WifiP2pDevice)> | No| Callback used to return the P2P device state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **p2pDeviceChange**.| +| callback | Callback<[WifiP2pDevice](#WifiP2pDevice)> | No| Callback used to return the P2P device state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| ## wifi.on('p2pPeerDeviceChange')8+ @@ -1140,10 +1201,10 @@ Registers the P2P peer device state change events. **System capability**: SystemCapability.Communication.WiFi.P2P **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **p2pPeerDeviceChange**.| - | callback | Callback<[WifiP2pDevice[]](#WifiP2pDevice)> | Yes| Callback invoked to return the P2P peer device state.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **p2pPeerDeviceChange**.| +| callback | Callback<[WifiP2pDevice[]](#WifiP2pDevice)> | Yes| Callback invoked to return the P2P peer device state.| ## wifi.off('p2pPeerDeviceChange')8+ @@ -1157,10 +1218,10 @@ Unregisters the P2P peer device state change events. **System capability**: SystemCapability.Communication.WiFi.P2P **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **p2pPeerDeviceChange**.| - | callback | Callback<[WifiP2pDevice[]](#WifiP2pDevice)> | No| Callback used to return the P2P peer device state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **p2pPeerDeviceChange**.| +| callback | Callback<[WifiP2pDevice[]](#WifiP2pDevice)> | No| Callback used to return the P2P peer device state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| ## wifi.on('p2pPersistentGroupChange')8+ @@ -1174,10 +1235,10 @@ Registers the P2P persistent group state change events. **System capability**: SystemCapability.Communication.WiFi.P2P **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **p2pPersistentGroupChange**.| - | callback | Callback<void> | Yes| Callback invoked to return the P2P persistent group state.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **p2pPersistentGroupChange**.| +| callback | Callback<void> | Yes| Callback invoked to return the P2P persistent group state.| ## wifi.off('p2pPersistentGroupChange')8+ @@ -1191,27 +1252,27 @@ Unregisters the P2P persistent group state change events. **System capability**: SystemCapability.Communication.WiFi.P2P **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **p2pPersistentGroupChange**.| - | callback | Callback<void> | No| Callback used to return the P2P persistent group state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **p2pPersistentGroupChange**.| +| callback | Callback<void> | No| Callback used to return the P2P persistent group state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| ## wifi.on('p2pDiscoveryChange')8+ on(type: "p2pDiscoveryChange", callback: Callback<number>): void -Registers the P2P discovered device state change events. +Registers the P2P device discovery state change events. **Required permissions**: ohos.permission.GET_WIFI_INFO **System capability**: SystemCapability.Communication.WiFi.P2P **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **p2pDiscoveryChange**.| - | callback | Callback<number> | Yes| Callback invoked to return the state of the P2P discovered device.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **p2pDiscoveryChange**.| +| callback | Callback<number> | Yes| Callback invoked to return the P2P device discovery state.| **P2P discovered device states** @@ -1225,14 +1286,14 @@ Registers the P2P discovered device state change events. off(type: "p2pDiscoveryChange", callback?: Callback<number>): void -Unregisters the P2P discovered device state change events. +Unregisters the P2P device discovery state change events. **Required permissions**: ohos.permission.GET_WIFI_INFO **System capability**: SystemCapability.Communication.WiFi.P2P **Parameters** - | **Name**| **Type**| **Mandatory**| **Description**| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is **p2pDiscoveryChange**.| - | callback | Callback<number> | No| Callback used to return the state of the P2P discovered device. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| +| **Name**| **Type**| **Mandatory**| **Description**| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is **p2pDiscoveryChange**.| +| callback | Callback<number> | No| Callback used to return the P2P device discovery state. If this parameter is not specified, all callbacks associated with the specified event will be unregistered.| -- GitLab From 1f9eb5395f53333126786ccd8a42143b6c3a0a0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=A3=AE?= <851518232@qq.com> Date: Tue, 19 Jul 2022 15:33:50 +0800 Subject: [PATCH 081/868] =?UTF-8?q?'=E4=BF=AE=E6=94=B9redeme=E6=8F=90?= =?UTF-8?q?=E9=AB=98=E5=8F=AF=E8=AF=BB=E6=80=A7=E5=BC=A0=E6=A3=AE851518232?= =?UTF-8?q?@qq.com'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 张森 <851518232@qq.com> --- ...41\345\255\220\347\263\273\347\273\237.md" | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git "a/zh-cn/readme/\344\275\215\347\275\256\346\234\215\345\212\241\345\255\220\347\263\273\347\273\237.md" "b/zh-cn/readme/\344\275\215\347\275\256\346\234\215\345\212\241\345\255\220\347\263\273\347\273\237.md" index 58fdeb7e52..00e20ee4c1 100644 --- "a/zh-cn/readme/\344\275\215\347\275\256\346\234\215\345\212\241\345\255\220\347\263\273\347\273\237.md" +++ "b/zh-cn/readme/\344\275\215\347\275\256\346\234\215\345\212\241\345\255\220\347\263\273\347\273\237.md" @@ -15,9 +15,9 @@ 当用户处于这些丰富的使用场景中时,系统的位置能力可以提供实时准确的位置数据。对于开发者,设计基于位置体验的服务,也可以使应用的使用体验更贴近每个用户。 -当应用在实现基于设备位置的功能时,如:驾车导航,记录运动轨迹等,可以调用该模块的API接口,完成位置信息的获取 +当应用在实现基于设备位置的功能时,如:驾车导航,记录运动轨迹等,可以调用该模块的API接口,完成位置信息的获取。 -基本概念 +**基本概念** 位置能力用于确定用户设备在哪里,系统使用位置坐标标示设备的位置,并用多种定位技术提供服务,如GNSS定位、基站定位、WLAN/蓝牙定位(基站定位、WLAN/蓝牙定位后续统称“网络定位技术”)。通过这些定位技术,无论用户设备在室内或是户外,都可以准确地确定设备位置。 @@ -127,7 +127,7 @@ 开发者可以在应用config.json文件中声明所需要的权限,示例代码如下: - + ``` { "module": { @@ -148,7 +148,7 @@ 配置字段详细说明见。 2. 导入geolocation模块,所有与基础定位能力相关的功能API,都是通过该模块提供的。 - + ``` import geolocation from '@ohos.geolocation'; ``` @@ -159,7 +159,7 @@ 为了面向开发者提供贴近其使用场景的API使用方式,系统定义了几种常见的位置能力使用场景,并针对使用场景做了适当的优化处理,应用可以直接匹配使用,简化开发复杂度。系统当前支持场景如下表所示。 - + ``` export enum LocationRequestScenario { UNSET = 0x300, @@ -171,7 +171,7 @@ } ``` - + **表2** 定位场景类型说明 | 场景名称 | 常量定义 | 说明 | @@ -183,7 +183,7 @@ | 无功耗场景 | NO_POWER | 无功耗场景,适用于不需要主动启动定位业务。系统在响应其他应用启动定位业务并上报位置结果时,会同时向请求此场景的应用程序上报定位结果,当前的应用程序不产生定位功耗。
此场景默认以最小1秒间隔上报定位结果,并且应用需要申请ohos.permission.LOCATION权限,同时获得用户授权。 | 以导航场景为例,实例化方式如下: - + ``` var requestInfo = {'scenario': 0x301, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0}; ``` @@ -192,7 +192,7 @@ 如果定义的现有场景类型不能满足所需的开发场景,系统提供了基本的定位优先级策略类型。 - + ``` export enum LocationRequestPriority { UNSET = 0x200, @@ -202,7 +202,7 @@ } ``` - + **表3** 定位优先级策略类型说明: | 策略类型 | 常量定义 | 说明 | @@ -212,7 +212,7 @@ | 低功耗定位优先策略 | LOW_POWER | 低功耗定位优先策略主要使用基站定位和WLAN、蓝牙定位技术,也可以同时提供室内和户外场景下的位置服务,因为其依赖周边基站、可见WLAN、蓝牙设备的分布情况,定位结果的精度波动范围较大,如果对定位结果精度要求不高,或者使用场景多在有基站、可见WLAN、蓝牙设备高密度分布的情况下,推荐使用,可以有效节省设备功耗。
应用至少申请ohos.permission.LOCATION权限,同时获得用户授权。 | 以定位精度优先策略为例,实例化方式如下: - + ``` var requestInfo = {'priority': 0x201, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0}; ``` @@ -227,19 +227,19 @@ ``` 5. 启动定位。 - + ``` geolocation.on('locationChange', requestInfo, locationChange); ``` 6. (可选)结束定位。 - + ``` geolocation.off('locationChange', locationChange); ``` 如果应用使用场景不需要实时的设备位置,可以获取系统缓存的最近一次历史定位结果。 - + ``` geolocation.getLastLocation((data) => { console.log('getLastLocation: data: ' + JSON.stringify(data)); @@ -256,14 +256,14 @@ > GeoConvert需要访问后端服务,请确保设备联网,以进行信息获取。 1. 导入geolocation模块,所有与(逆)地理编码转化能力相关的功能API,都是通过该模块提供的。 - + ``` import geolocation from '@ohos.geolocation'; ``` 2. 获取转化结果。 - 调用getAddressesFromLocation,坐标转化地理位置信息。 - + ``` var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1}; geolocation.getAddressesFromLocation(reverseGeocodeRequest, (data) => { @@ -273,7 +273,7 @@ 参考接口API说明,应用可以获得与此坐标匹配的GeoAddress列表,应用可以根据实际使用需求,读取相应的参数数据。 - 调用getAddressesFromLocationName位置描述转化坐标。 - + ``` var geocodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1}; geolocation.getAddressesFromLocationName(geocodeRequest, (data) => { -- GitLab From dead3153fc6bd113aecd1694542bd196fb236228 Mon Sep 17 00:00:00 2001 From: xuzhihao Date: Tue, 19 Jul 2022 16:08:00 +0800 Subject: [PATCH 082/868] Fix issue of Notification docs Signed-off-by: xuzhihao --- .../reference/apis/js-apis-commonEvent.md | 2 + .../reference/apis/js-apis-notification.md | 162 +++++++++++++++++- 2 files changed, 162 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-commonEvent.md b/zh-cn/application-dev/reference/apis/js-apis-commonEvent.md index 496ec17ba4..c3d678537b 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-commonEvent.md +++ b/zh-cn/application-dev/reference/apis/js-apis-commonEvent.md @@ -169,6 +169,8 @@ CommonEvent模块支持的事件类型。名称指的是系统公共事件宏; | COMMON_EVENT_FOUNDATION_READY | usual.event.data.FOUNDATION_READY | ohos.permission.RECEIVER_STARTUP_COMPLETED | 表示foundation已准备好的公共事件的动作。 | | COMMON_EVENT_AIRPLANE_MODE_CHANGED | usual.event.AIRPLANE_MODE | 无 | 表示设备飞行模式已更改的公共事件的动作。 | | COMMON_EVENT_SPLIT_SCREEN8+ | usual.event.SPLIT_SCREEN | ohos.permission.RECEIVER_SPLIT_SCREEN | 表示分屏的公共事件的动作。 | +| COMMON_EVENT_SLOT_CHANGE9+ | usual.event.SLOT_CHANGE | ohos.permission.NOTIFICATION_CONTROLLER | 表示通知通道更新的动作。 | +| COMMON_EVENT_SPN_INFO_CHANGED 9+ | usual.event.SPN_INFO_CHANGED | 无 | 表示spn显示信息已更新的公共事件的动作。 | ## CommonEvent.publish diff --git a/zh-cn/application-dev/reference/apis/js-apis-notification.md b/zh-cn/application-dev/reference/apis/js-apis-notification.md index 8d95c5db9e..c400b1af67 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-notification.md +++ b/zh-cn/application-dev/reference/apis/js-apis-notification.md @@ -2571,7 +2571,7 @@ Notification.enableDistributedByBundle(bundle, enable, enableDistributedByBundle ## Notification.enableDistributedByBundle8+ -bundleenableDistributedByBundle(bundle: BundleOption, enable: boolean): Promise\ +enableDistributedByBundle(bundle: BundleOption, enable: boolean): Promise\ 根据应用的包设置应用程序是否支持分布式通知(Promise形式)。 @@ -2905,6 +2905,8 @@ enableNotificationSlot(bundle: BundleOption, type: SlotType, enable: boolean, ca **系统API**:此接口为系统接口,三方应用不支持调用。 +**需要权限**:ohos.permission.NOTIFICATION_CONTROLLER + **参数:** | 参数名 | 类型 | 必填 | 说明 | @@ -2931,7 +2933,7 @@ Notification.enableNotificationSlot( ## Notification.enableNotificationSlot 9+ -enableNotificationSlot(bundle: BundleOption, type: SlotType, enable: boolean): Promise +enableNotificationSlot(bundle: BundleOption, type: SlotType, enable: boolean): Promise\ 设定指定类型的渠道使能状态(Promise形式)。 @@ -2939,6 +2941,8 @@ enableNotificationSlot(bundle: BundleOption, type: SlotType, enable: boolean): P **系统API**:此接口为系统接口,三方应用不支持调用。 +**需要权限**:ohos.permission.NOTIFICATION_CONTROLLER + **参数:** | 参数名 | 类型 | 必填 | 说明 | @@ -2969,6 +2973,8 @@ isNotificationSlotEnabled(bundle: BundleOption, type: SlotType, callback: AsyncC **系统API**:此接口为系统接口,三方应用不支持调用。 +**需要权限**:ohos.permission.NOTIFICATION_CONTROLLER + **参数:** | 参数名 | 类型 | 必填 | 说明 | @@ -3001,6 +3007,8 @@ isNotificationSlotEnabled(bundle: BundleOption, type: SlotType): Promise\ | 以Promise形式返回指定类型的渠道使能状态。 | + **示例:** ```js @@ -3020,6 +3034,148 @@ Notification.isNotificationSlotEnabled( }); ``` + +## Notification.setSyncNotificationEnabledForUninstallApp9+ + +setSyncNotificationEnabledForUninstallApp(userId: number, enable: boolean, callback: AsyncCallback\): void + +设置是否将通知同步到未安装应用程序的设备(callback形式)。 + +**系统能力**:SystemCapability.Notification.Notification + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +**需要权限**:ohos.permission.NOTIFICATION_CONTROLLER + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ----------------------------- | ---- | -------------- | +| userId | number | 是 | 用户Id。 | +| enable | boolean | 是 | 是否将通知同步到未安装应用程序的设备。true:是。false:否。 | +| callback | AsyncCallback\ | 是 | 设置是否将通知同步到未安装应用程序的设备的回调函数。 | + +**示例:** + +```js +let userId = 100; +let enable = true; + +function setSyncNotificationEnabledForUninstallAppCallback(err) { + console.log('setSyncNotificationEnabledForUninstallAppCallback'); +} + +Notification.setSyncNotificationEnabledForUninstallApp(userId, enable, setSyncNotificationEnabledForUninstallAppCallback); +``` + + +## Notification.setSyncNotificationEnabledForUninstallApp9+ + +setSyncNotificationEnabledForUninstallApp(userId: number, enable: boolean): Promise\ + +设置是否将通知同步到未安装应用程序的设备(Promise形式)。 + +**系统能力**:SystemCapability.Notification.Notification + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +**需要权限**:ohos.permission.NOTIFICATION_CONTROLLER + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ----------------------------- | ---- | -------------- | +| userId | number | 是 | 用户Id。 | +| enable | boolean | 是 | 是否将通知同步到未安装应用程序的设备。true:是。false:否。 | + +**示例:** + +```js +let userId = 100; +let enable = true; + +Notification.setSyncNotificationEnabledForUninstallApp(userId, enable) + .then((data) => { + console.log('setSyncNotificationEnabledForUninstallApp, data:', data); + }) + .catch((err) => { + console.log('setSyncNotificationEnabledForUninstallApp, err:', err); + }); +``` + + +## Notification.getSyncNotificationEnabledForUninstallApp9+ + +getSyncNotificationEnabledForUninstallApp(userId: number, callback: AsyncCallback\): void + +获取是否同步通知到未安装应用程序的设备的结果(callback形式)。 + +**系统能力**:SystemCapability.Notification.Notification + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +**需要权限**:ohos.permission.NOTIFICATION_CONTROLLER + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ----------------------------- | ---- | -------------- | +| userId | number | 是 | 用户Id。 | +| callback | AsyncCallback\ | 是 | 获取是否同步通知到未安装应用程序的设备的结果的回调函数。true:是。false:否。 | + +**示例:** + +```js +let userId = 100; + +function getSyncNotificationEnabledForUninstallAppCallback(err, data) { + console.log('getSyncNotificationEnabledForUninstallAppCallback, data: ', data); +} + +Notification.getSyncNotificationEnabledForUninstallApp(userId, getSyncNotificationEnabledForUninstallAppCallback); +``` + + +## Notification.getSyncNotificationEnabledForUninstallApp9+ + +getSyncNotificationEnabledForUninstallApp(userId: number): Promise\ + +获取是否同步通知到未安装应用程序的设备的结果(Promise形式)。 + +**系统能力**:SystemCapability.Notification.Notification + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +**需要权限**:ohos.permission.NOTIFICATION_CONTROLLER + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ----------------------------- | ---- | -------------- | +| userId | number | 是 | 用户Id。 | + +**返回值:** + +| 类型 | 说明 | +| ----------------------------------------------------------- | ------------------------------------------------------------ | +| Promise\ | 以Promise形式返回获取是否同步通知到未安装应用程序的设备的结果。true:是。false:否。 | + +**示例:** + +```js +let userId = 100; + +Notification.getSyncNotificationEnabledForUninstallApp(userId) + .then((data) => { + console.log('getSyncNotificationEnabledForUninstallApp, data: ', data); + }) + .catch((err) => { + console.log('getSyncNotificationEnabledForUninstallApp, err: ', err); + }); +``` + + + ## NotificationSubscriber **系统API**:此接口为系统接口,三方应用不支持调用。 @@ -3582,6 +3738,8 @@ Notification.subscribe(subscriber, subscribeCallback); | distributedOption8+ | 是 | 是 | [DistributedOptions](#distributedoptions8) | 否 | 分布式通知的选项。 | | deviceId8+ | 是 | 否 | string | 否 | 通知源的deviceId。
**系统API**: 此接口为系统接口,三方应用不支持调用。 | | notificationFlags8+ | 是 | 否 | [NotificationFlags](#notificationflags8) | 否 | 获取NotificationFlags。 | +| removalWantAgent9+ | 是 | 是 | WantAgent | 否 | 当移除通知时,通知将被重定向到的WantAgent实例。 | +| badgeNumber9+ | 是 | 是 | number | 否 | 应用程序图标上显示的通知数。 | ## DistributedOptions8+ -- GitLab From 0d110d4105eb27a4de3c186c754656db6402bc46 Mon Sep 17 00:00:00 2001 From: raoxian Date: Tue, 19 Jul 2022 16:13:09 +0800 Subject: [PATCH 083/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9fileio=20dir=20create?= =?UTF-8?q?Watcher?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: raoxian --- zh-cn/application-dev/reference/apis/js-apis-fileio.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-fileio.md b/zh-cn/application-dev/reference/apis/js-apis-fileio.md index ebdc231577..3321def4ee 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-fileio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-fileio.md @@ -2720,7 +2720,7 @@ stop(): Promise<void> ```js let filename = path +"/test.txt"; - let watcher = await fileio.createWatcher(filename, 1, function(number){ + let watcher = fileio.createWatcher(filename, 1, function(number){ console.info("Monitoring times: "+number); }); watcher.stop().then(function(){ @@ -2747,7 +2747,7 @@ stop(callback: AsyncCallback<void>): void ```js let filename = path +"/test.txt"; - let watcher = await fileio.createWatcher(filename, 1, function(number){ + let watcher = fileio.createWatcher(filename, 1, function(number){ console.info("Monitoring times: "+number); }); watcher.stop(function(){ @@ -3125,7 +3125,6 @@ read(): Promise<Dirent> **示例:** ```js - let dir = fileio.opendirSync(path); dir.read().then(function (dirent){ console.log("read succeed:"+JSON.stringify(dirent)); }).catch(function(err){ @@ -3151,7 +3150,6 @@ read(callback: AsyncCallback<Dirent>): void **示例:** ```js - let dir = fileio.opendirSync(path); dir.read(function (err, dirent) { if (dirent) { // do something @@ -3178,7 +3176,6 @@ readSync(): Dirent **示例:** ```js - let dir = fileio.opendirSync(path); let dirent = dir.readSync(); ``` @@ -3194,7 +3191,6 @@ close(): Promise<void> **示例:** ```js - let dir = fileio.opendirSync(path); dir.close().then(function(err){ console.info("close dir successfully"); }); @@ -3212,7 +3208,6 @@ close(callback: AsyncCallback<void>): void **示例:** ```js - let dir = fileio.opendirSync(path); dir.close(function(err){ console.info("close dir successfully"); }); @@ -3230,7 +3225,6 @@ closeSync(): void **示例:** ```js - let dir = fileio.opendirSync(path); dir.closeSync(); ``` -- GitLab From 8bb856a63fc45372566823c3fe3c3cd116a26aaf Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Tue, 19 Jul 2022 16:18:12 +0800 Subject: [PATCH 084/868] update docs Signed-off-by: Annie_wang --- .../reference/apis/js-apis-document.md | 54 ++--- .../reference/apis/js-apis-fileio.md | 201 ++++++------------ .../reference/apis/js-apis-securityLabel.md | 7 +- .../apis/js-apis-storage-statistics.md | 8 +- 4 files changed, 99 insertions(+), 171 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-document.md b/en/application-dev/reference/apis/js-apis-document.md index 458685119e..3fbdc4f46c 100644 --- a/en/application-dev/reference/apis/js-apis-document.md +++ b/en/application-dev/reference/apis/js-apis-document.md @@ -14,21 +14,21 @@ import document from '@ohos.document'; choose(types? : string[]): Promise<string> -Chooses a file of the specified type using the file manager. This API uses a promise to return the result. +Chooses files of the specified types using the file manager. This API uses a promise to return the result. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** - | Name| Type | Mandatory| Description | - | ------ | ------ | ---- | ---------------------------- | - | types | string[] | No | Type of the file to choose.| +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | ---------------------------- | +| types | string[] | No | Types of the files to choose. | **Return value** - | Type | Description | - | --------------------- | -------------- | - | Promise<string> | Promise used to return the result. An error code is returned.| +| Type | Description | +| --------------------- | -------------- | +| Promise<string> | Promise used to return the result. An error code is returned.| **Example** @@ -46,9 +46,9 @@ Chooses a file using the file manager. This API uses an asynchronous callback to **Parameters** - | Name | Type | Mandatory| Description | - | -------- | --------------------------- | ---- | ---------------------------- | - | callback | AsyncCallback<string> | Yes | Callback used to return the result. An error code is returned.| +| Name | Type | Mandatory| Description | +| -------- | --------------------------- | ---- | ---------------------------- | +| callback | AsyncCallback<string> | Yes | Callback used to return the result. An error code is returned.| **Example** @@ -62,16 +62,16 @@ Chooses a file using the file manager. This API uses an asynchronous callback to choose(types:string[], callback:AsyncCallback<string>): void -Chooses a file using the file manager. This API uses an asynchronous callback to return the result. +Chooses files using the file manager. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.FileManagement.UserFileService **Parameters** - | Name | Type | Mandatory| Description | - | -------- | --------------------------- | ---- | ---------------------------- | - | types | string[] | No | Type of the file to choose.| - | callback | AsyncCallback<string> | Yes | Callback used to return the result. An error code is returned.| +| Name | Type | Mandatory| Description | +| -------- | --------------------------- | ---- | ---------------------------- | +| types | string[] | No | Types of the files to choose.| +| callback | AsyncCallback<string> | Yes | Callback used to return the result. An error code is returned.| **Example** @@ -93,16 +93,16 @@ Opens a file. This API uses a promise to return the result. **Parameters** - | Name| Type | Mandatory| Description | - | ---- | ------ | ---- | ---------------------------- | - | uri | string | Yes | URI of the file to open.| - | type | string | Yes | Type of the file to open.| +| Name| Type | Mandatory| Description | +| ---- | ------ | ---- | ---------------------------- | +| uri | string | Yes | URI of the file to open.| +| type | string | Yes | Type of the file to open.| **Return value** - | Type | Description | - | --------------------- | ------------ | - | Promise<void> | Promise used to return the result. An error code is returned.| +| Type | Description | +| --------------------- | ------------ | +| Promise<void> | Promise used to return the result. An error code is returned.| **Example** @@ -122,11 +122,11 @@ Opens a file. This API uses an asynchronous callback to return the result. **Parameters** - | Name | Type | Mandatory| Description | - | -------- | --------------------------- | ---- | ---------------------------- | - | uri | string | Yes | URI of the file to open.| - | type | string | Yes | Type of the file to open.| - | callback | AsyncCallback<void> | Yes | Callback used to return the result. An error code is returned. | +| Name | Type | Mandatory| Description | +| -------- | --------------------------- | ---- | ---------------------------- | +| uri | string | Yes | URI of the file to open.| +| type | string | Yes | Type of the file to open.| +| callback | AsyncCallback<void> | Yes | Callback used to return the result. An error code is returned. | **Example** diff --git a/en/application-dev/reference/apis/js-apis-fileio.md b/en/application-dev/reference/apis/js-apis-fileio.md index 133276e077..6e97078534 100644 --- a/en/application-dev/reference/apis/js-apis-fileio.md +++ b/en/application-dev/reference/apis/js-apis-fileio.md @@ -16,6 +16,7 @@ import fileio from '@ohos.fileio'; ## Guidelines Before using the APIs provided by this module to perform operations on files or directories, obtain the path of the application sandbox as follows: + ```js import featureAbility from '@ohos.ability.featureAbility'; let context = featureAbility.getContext(); @@ -353,58 +354,11 @@ Synchronously closes a file. **Example** ```js + let fd = fileio.openSync(path); fileio.closeSync(fd); ``` -## fileio.close7+ - -close(): Promise<void> - -Closes the stream. This API uses a promise to return the result. - -**System capability**: SystemCapability.FileManagement.File.FileIO - -**Return value** - - | Type | Description | - | ------------------- | ---------------------------- | - | Promise<void> | Promise that returns no value.| - -**Example** - - ```js - fileio.close().then(function(){ - console.info("File stream closed"); - }).catch(function(err){ - console.info("Failed to close the file stream. Error:"+ err); - }); - ``` - - -## fileio.close7+ - -close(callback: AsyncCallback<void>): void - -Closes the stream. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.FileManagement.File.FileIO - -**Parameters** - - | Name | Type | Mandatory | Description | - | -------- | ------------------------- | ---- | ------------- | - | callback | AsyncCallback<void> | Yes | Callback invoked when the stream is closed asynchronously.| - -**Example** - - ```js - fileio.close(function(err){ - // Do something. - }); - ``` - - ## fileio.copyFile copyFile(src:string | number, dest:string | number, mode?:number):Promise<void> @@ -430,6 +384,8 @@ Copies a file. This API uses a promise to return the result. **Example** ```js + let src = path; + let dest = src + 'tgt'; fileio.copyFile(src, dest).then(function(){ console.info("File copied"); }).catch(function(err){ @@ -458,6 +414,8 @@ Copies a file. This API uses an asynchronous callback to return the result. **Example** ```js + let src = path; + let dest = src + 'tgt'; fileio.copyFile(src, dest, function (err) { // Do something. }); @@ -483,6 +441,8 @@ Synchronously copies a file. **Example** ```js + let src = path; + let dest = src + 'tgt'; fileio.copyFileSync(src, dest); ``` @@ -957,7 +917,7 @@ Writes data into a file. This API uses a promise to return the result. ```js let fd = fileio.openSync(path, 0o100 | 0o2, 0o666); fileio.write(fd, "hello, world").then(function(number){ - console.info("Data written to file and size is:"+ number); + console.info("Data written to the file. Size is:"+ number); }).catch(function(err){ console.info("Failed to write data to the file. Error:"+ err); }); @@ -992,7 +952,7 @@ Writes data into a file. This API uses an asynchronous callback to return the re let fd = fileio.openSync(path, 0o100 | 0o2, 0o666); fileio.write(fd, "hello, world", function (err, bytesWritten) { if (bytesWritten) { - console.info("Data written to file and size is:"+ bytesWritten); + console.info("Data written to the file. Size is:"+ bytesWritten); } }); ``` @@ -1059,7 +1019,7 @@ Calculates the hash value of a file. This API uses a promise to return the resul ```js fileio.hash(path, "sha256").then(function(str){ console.info("Calculated file hash:"+ str); - }).catch(function(error){ + }).catch(function(err){ console.info("Failed to calculate the file hash. Error:"+ err); }); ``` @@ -1116,7 +1076,7 @@ Changes file permissions. This API uses a promise to return the result. **Example** ```js - fileio.chmod(path, mode).then(function() { + fileio.chmod(path, 0o700).then(function() { console.info("File permissions changed"); }).catch(function(err){ console.info("Failed to change file permissions. Error:"+ err); @@ -1143,7 +1103,7 @@ Changes file permissions. This API uses an asynchronous callback to return the r **Example** ```js - fileio.chmod(path, mode, function (err) { + fileio.chmod(path, 0o700, function (err) { // Do something. }); ``` @@ -1167,7 +1127,7 @@ Synchronously changes file permissions. **Example** ```js - fileio.chmodSync(path, mode); + fileio.chmodSync(path, 0o700); ``` @@ -1194,10 +1154,11 @@ Obtains file information based on the file descriptor. This API uses a promise t **Example** ```js + let fd = fileio.openSync(path); fileio.fstat(fd).then(function(stat){ - console.info("File information obtained:"+ JSON.stringify(stat)); + console.info("Obtained file info:"+ JSON.stringify(stat)); }).catch(function(err){ - console.info("Failed to obtain file information. Error:"+ err); + console.info("Failed to obtain file info. Error:"+ err); }); ``` @@ -1307,7 +1268,9 @@ Truncates a file based on the file descriptor. This API uses an asynchronous cal **Example** ```js - fileio.ftruncate(fd, len, function(err){ + let fd = fileio.openSync(path); + let len = 5; + fileio.ftruncate(fd, 5, function(err){ // Do something. }); ``` @@ -1331,6 +1294,8 @@ Synchronously truncates a file based on the file descriptor. **Example** ```js + let fd = fileio.openSync(path); + let len = 5; fileio.ftruncateSync(fd, len); ``` @@ -1347,7 +1312,7 @@ Truncates a file based on the file path. This API uses a promise to return the r | Name| Type | Mandatory| Description | | ------ | ------ | ---- | -------------------------------- | -| path | string | Yes | Application sandbox path of the file to truncate. | +| path | string | Yes | Application sandbox path of the file to truncate.| | len | number | No | File length, in bytes, after truncation.| **Return value** @@ -1359,6 +1324,7 @@ Truncates a file based on the file path. This API uses a promise to return the r **Example** ```js + let len = 5; fileio.truncate(path, len).then(function(){ console.info("File truncated"); }).catch(function(err){ @@ -1386,6 +1352,7 @@ Truncates a file based on the file path. This API uses an asynchronous callback **Example** ```js + let len = 5; fileio.truncate(path, len, function(err){ // Do something. }); @@ -1410,6 +1377,7 @@ Synchronously truncates a file based on the file path. **Example** ```js + let len = 5; fileio.truncateSync(path, len); ``` @@ -1443,9 +1411,9 @@ Reads the text content of a file. This API uses a promise to return the result. ```js fileio.readText(path).then(function(str) { - console.info("Read file text:"+ str); + console.info("Read text:"+ str); }).catch(function(err){ - console.info("Failed to read text. Error:"+ err); + console.info("Failed to read the text. Error:"+ err); }); ``` @@ -1467,13 +1435,13 @@ Reads the text content of a file. This API uses an asynchronous callback to retu | Name | Type | Mandatory| Description | | -------- | --------------------------- | ---- | ------------------------------------------------------------ | | filePath | string | Yes | Application sandbox path of the file to read. | -| options | Object | No | The options are as follows:
- **position** (number): position of the data to read in the file. By default, data is read from the current position.
- **length** (number): length of the data to read. The default value is the buffer length minus the offset.
-  **encoding**: format of the string to be encoded. The default value is  **utf-8**, which is the only value supported.| +| options | Object | Yes | The options are as follows:
- **position** (number): position of the data to read in the file. By default, data is read from the current position.
- **length** (number): length of the data to read. The default value is the buffer length minus the offset.
-  **encoding**: format of the string to be encoded. The default value is  **utf-8**, which is the only value supported.| | callback | AsyncCallback<string> | Yes | Callback used to return the content read. | **Example** ```js - fileio.readText(path, function(err, str){ + fileio.readText(path, { position: 1, encoding: 'UTF-8' }, function(err, str){ // Do something. }); ``` @@ -1537,7 +1505,7 @@ Obtains link information. This API uses a promise to return the result. fileio.lstat(path).then(function(stat){ console.info("Got link info:"+ JSON.stringify(stat)); }).catch(function(err){ - console.info("Failed to obtain the link status. Error:"+ err); + console.info("Failed to obtain link info. Error:"+ err); }); ``` @@ -1593,76 +1561,6 @@ Synchronously obtains the link information. ``` -## fileio.read7+ - -read(buffer: ArrayBuffer, options?: { - position?: number; - offset?: number; - length?: number; -}): Promise<ReadOut> - -Reads data from a file. This API uses a promise to return the result. - -**System capability**: SystemCapability.FileManagement.File.FileIO - -**Parameters** - - | Name | Type | Mandatory| Description | - | ------- | ----------- | ---- | ------------------------------------------------------------ | - | buffer | ArrayBuffer | Yes | Buffer used to store the file data read. | - | options | Object | No | The options are as follows:
- **offset** (number): position to store the data read in the buffer in reference to the start address of the buffer. The default value is **0**.
- **length** (number): length of the data to read. The default value is the buffer length minus the offset.
Constraints: offset + length <= Buffer size| - -**Return value** - - | Type | Description | - | ---------------------------------- | ------ | - | Promise<[ReadOut](#readout)> | Promise used to return the data read.| - -**Example** - - ```js - fileio.read(new ArrayBuffer(4096)).then(function(readout){ - console.info("Read file data"); - console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer))); - }).catch(function(err){ - console.info("Failed to read file data. Error:"+ err); - }); - ``` - - -## fileio.read7+ - -read(buffer: ArrayBuffer, options: { - position?: number; - offset?: number; - length?: number; -}, callback: AsyncCallback<ReadOut>): void - -Reads data from a file. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.FileManagement.File.FileIO - -**Parameters** - - | Name | Type | Mandatory | Description | - | -------- | ---------------------------------------- | ---- | ---------------------------------------- | - | buffer | ArrayBuffer | Yes | Buffer used to store the file data read. | - | options | Object | No | The options are as follows:
- **offset** (number): position to store the data read in the buffer in reference to the start address of the buffer. The default value is **0**.
- **length** (number): length of the data to read. The default value is the buffer length minus the offset.
Constraints: offset + length <= Buffer size| - | callback | AsyncCallback<[ReadOut](#readout)> | Yes | Callback invoked when the data is read asynchronously from the file. | - -**Example** - - ```js - let buf = new ArrayBuffer(4096); - fileio.read(buf, function (err, readOut) { - if (readOut) { - console.info("Read file data"); - console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer))); - } - }); - ``` - - ## fileio.rename7+ rename(oldPath: string, newPath: string): Promise<void> @@ -1687,6 +1585,8 @@ Renames a file. This API uses a promise to return the result. **Example** ```js + let oldPath = path; + let newPath = oldPath + '123'; fileio.rename(oldPath, newPath).then(function() { console.info("File renamed"); }).catch(function(err){ @@ -1714,6 +1614,8 @@ Renames a file. This API uses an asynchronous callback to return the result. **Example** ```js + let oldPath = path; + let newPath = oldPath + '123'; fileio.rename(oldPath, newPath, function(err){ }); ``` @@ -1737,6 +1639,8 @@ Synchronously renames a file. **Example** ```js + let oldPath = path; + let newPath = oldPath + '123'; fileio.renameSync(oldPath, newPath); ``` @@ -1764,6 +1668,7 @@ Flushes data of a file to disk. This API uses a promise to return the result. **Example** ```js + let fd = fileio.openSync(path); fileio.fsync(fd).then(function(){ console.info("Data flushed"); }).catch(function(err){ @@ -1790,6 +1695,7 @@ Flushes data of a file to disk. This API uses an asynchronous callback to return **Example** ```js + let fd = fileio.openSync(path); fileio.fsync(fd, function(err){ // Do something. }); @@ -1813,6 +1719,7 @@ Flushes data of a file to disk in synchronous mode. **Example** ```js + let fd = fileio.openSync(path); fileio.fsyncSync(fd); ``` @@ -1840,6 +1747,7 @@ Flushes data of a file to disk. This API uses a promise to return the result. ** **Example** ```js + let fd = fileio.openSync(path); fileio.fdatasync(fd).then(function(err) { console.info("Data flushed"); }).catch(function(err){ @@ -1866,6 +1774,7 @@ Flushes data of a file to disk. This API uses an asynchronous callback to return **Example** ```js + let fd = fileio.openSync(path); fileio.fdatasync (fd, function (err) { // Do something. }); @@ -1889,6 +1798,7 @@ Synchronizes data in a file in synchronous mode. **Example** ```js + let fd = fileio.openSync(path); let stat = fileio.fdatasyncSync(fd); ``` @@ -1917,6 +1827,8 @@ Creates a symbolic link based on the file path. This API uses a promise to retur **Example** ```js + let target = path; + let srcPath = target + 'aaa'; fileio.symlink(target, srcPath).then(function() { console.info("Symbolic link created"); }).catch(function(err){ @@ -1944,6 +1856,8 @@ Creates a symbolic link based on the file path. This API uses an asynchronous ca **Example** ```js + let target = path; + let srcPath = target + 'aaa'; fileio.symlink(target, srcPath, function (err) { // Do something. }); @@ -1968,6 +1882,8 @@ Synchronously creates a symbolic link based on a specified path. **Example** ```js + let target = path; + let srcPath = target + 'aaa'; fileio.symlinkSync(target, srcPath); ``` @@ -2083,7 +1999,7 @@ Creates a temporary directory. This API uses a promise to return the result. fileio.mkdtemp(path + "XXXX").then(function(path){ console.info("Temporary directory created:"+ path); }).catch(function(err){ - console.info("Failed to create a temporary directory. Error:"+ err); + console.info("Failed to create the temporary directory. Error:"+ err); }); ``` @@ -2163,6 +2079,8 @@ Changes file permissions based on the file descriptor. This API uses a promise t **Example** ```js + let fd = fileio.openSync(path); + let mode = 0o700; fileio.fchmod(fd, mode).then(function() { console.info("File permissions changed"); }).catch(function(err){ @@ -2190,6 +2108,8 @@ Changes file permissions based on the file descriptor. This API uses an asynchro **Example** ```js + let fd = fileio.openSync(path); + let mode = 0o700; fileio.fchmod(fd, mode, function (err) { // Do something. }); @@ -2214,6 +2134,8 @@ Synchronously changes the file permissions based on the file descriptor. **Example** ```js + let fd = fileio.openSync(path); + let mode = 0o700; fileio.fchmodSync(fd, mode); ``` @@ -2416,6 +2338,7 @@ Changes the file owner based on the file descriptor. This API uses a promise to **Example** ```js + let fd = fileio.openSync(path); let stat = fileio.statSync(path); fileio.fchown(fd, stat.uid, stat.gid).then(function() { console.info("File owner changed"); @@ -2445,6 +2368,7 @@ Changes the file owner based on the file descriptor. This API uses an asynchrono **Example** ```js + let fd = fileio.openSync(path); let stat = fileio.statSync(path); fileio.fchown(fd, stat.uid, stat.gid, function (err){ // Do something. @@ -2471,6 +2395,7 @@ Synchronously changes the file owner based on the file descriptor. **Example** ```js + let fd = fileio.openSync(path); let stat = fileio.statSync(path); fileio.fchownSync(fd, stat.uid, stat.gid); ``` @@ -2854,7 +2779,7 @@ Closes the stream. This API uses a promise to return the result. ```js let ss= fileio.createStreamSync(path, "r+"); ss.close().then(function(){ - console.info("Stream closed"); + console.info("File stream closed"); }).catch(function(err){ console.info("Failed to close the file stream. Error:"+ err); }); @@ -3102,7 +3027,7 @@ Reads data from the stream. This API uses a promise to return the result. ```js let ss = fileio.createStreamSync(path, "r+"); - ss.read(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5}).then(function (readout){ + ss.read(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5}).then(function (readOut){ console.info("Read data successfully"); console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer))); }).catch(function(err){ @@ -3179,7 +3104,7 @@ Synchronously reads data from the stream. ## Dir -Manages directories. Before calling a method of the **Dir** class, use the [opendir()](#fileioopendir) method synchronously or asynchronously to create a **Dir** instance. +Manages directories. Before calling a method of the **Dir** class, use the **opendir()** method synchronously or asynchronously to create a **Dir** instance. ### read @@ -3449,7 +3374,7 @@ Checks whether a directory entry is a socket. **Example** ```js - let dir = fileio.opendirSync(dpath); + let dir = fileio.opendirSync(path); let isSocket = dir.readSync().isSocket(); ``` diff --git a/en/application-dev/reference/apis/js-apis-securityLabel.md b/en/application-dev/reference/apis/js-apis-securityLabel.md index a2219288f3..259c898210 100644 --- a/en/application-dev/reference/apis/js-apis-securityLabel.md +++ b/en/application-dev/reference/apis/js-apis-securityLabel.md @@ -13,12 +13,15 @@ import securityLabel from '@ohos.securityLabel'; ## Usage -Before using the APIs provided by this module to perform operations on a file or directory, obtain the path of the application sandbox. For details, see [getOrCreateLocalDir of the Context module](js-apis-Context.md). +Before using the APIs provided by this module to perform operations on a file or directory, obtain the path of the application sandbox as follows: ```js import featureAbility from '@ohos.ability.featureAbility'; let context = featureAbility.getContext(); -let path = context.getFilesDir(); +let path = ''; +context.getFilesDir().then((data) => { + path = data; +}) ``` ## securityLabel.setSecurityLabel diff --git a/en/application-dev/reference/apis/js-apis-storage-statistics.md b/en/application-dev/reference/apis/js-apis-storage-statistics.md index 093d6cb8b5..83c4aeae18 100644 --- a/en/application-dev/reference/apis/js-apis-storage-statistics.md +++ b/en/application-dev/reference/apis/js-apis-storage-statistics.md @@ -470,7 +470,7 @@ This is a system API and cannot be called by third-party applications. | Name | Type | Mandatory| Description| | ---------- | ------ | ---- | ---- | - | userId | string | No | User ID.
Value:
-  Set this parameter to the ID of the user to be queried.
-  If no value is specified, information about the current user is queried.| + | userId | number | No | User ID.
Value:
-  Set this parameter to the ID of the user to be queried.
-  If no value is specified, information about the current user is queried.| **Return value** @@ -481,7 +481,7 @@ This is a system API and cannot be called by third-party applications. **Example** ```js - let userId = ""; + let userId = 1; storageStatistics.getUserStorageStats(userId).then(function(StorageStats){ console.info("getUserStorageStats successfully:"+ JSON.stringify(StorageStats)); }).catch(function(err){ @@ -507,13 +507,13 @@ This is a system API and cannot be called by third-party applications. | Name | Type | Mandatory| Description | | ---------- | ------------------------------------ | ---- | -------------------------- | - | userId | string | No | User ID.
Value:
-  Set this parameter to the ID of the user to be queried.
-  If no value is specified, information about the current user is queried. | + | userId | number | No | User ID.
Value:
-  Set this parameter to the ID of the user to be queried.
-  If no value is specified, information about the current user is queried. | | callback | callback:AsyncCallback<[StorageStats](#StorageStats)> | Yes | Callback invoked to return the information obtained.| **Example** ```js - let userId = ""; + let userId = 1; storageStatistics.getUserStorageStats(userId, function(error, StorageStats){ // Do something. console.info("getUserStorageStats successfully:"+ JSON.stringify(StorageStats)); -- GitLab From de4fcd66c102abdedb22ebc63eb5894e44c58b52 Mon Sep 17 00:00:00 2001 From: king_he <6384784@qq.com> Date: Tue, 19 Jul 2022 09:01:45 +0000 Subject: [PATCH 085/868] update en/readme/SAMGR.md. Signed-off-by: king_he <6384784@qq.com> --- en/readme/SAMGR.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/readme/SAMGR.md b/en/readme/SAMGR.md index be89cb571d..59273729b8 100644 --- a/en/readme/SAMGR.md +++ b/en/readme/SAMGR.md @@ -1,4 +1,4 @@ -# System Ability Manager() +# System Ability Manager ## Introduction -- GitLab From 9eab3c4804b5b8e6b33eeb1d254af4d6f6a1c045 Mon Sep 17 00:00:00 2001 From: king_he <6384784@qq.com> Date: Tue, 19 Jul 2022 09:40:11 +0000 Subject: [PATCH 086/868] update en/readme/xts.md. Signed-off-by: king_he <6384784@qq.com> --- en/readme/xts.md | 357 +++++++++++------------------------------------ 1 file changed, 82 insertions(+), 275 deletions(-) diff --git a/en/readme/xts.md b/en/readme/xts.md index c4558c9d94..e7028c4841 100644 --- a/en/readme/xts.md +++ b/en/readme/xts.md @@ -4,10 +4,10 @@ The X test suite \(XTS\) subsystem contains a set of OpenHarmony compatibility test suites, including the currently supported application compatibility test suite \(ACTS\) and the device compatibility test suite \(DCTS\) that will be supported in the future. -This subsystem contains the ACTS and **tools** software package. +This subsystem contains the ACTS and **tools** software package. -- The **acts** directory stores the source code and configuration files of ACTS test cases. The ACTS helps device vendors detect the software incompatibility as early as possible and ensures that the software is compatible to OpenHarmony during the entire development process. -- The **tools** software package stores the test case development framework related to **acts**. +- The **acts** directory stores the source code and configuration files of ACTS test cases. The ACTS helps device vendors detect the software incompatibility as early as possible and ensures that the software is compatible to OpenHarmony during the entire development process. +- The **tools** software package stores the test case development framework related to **acts**. ## System Types @@ -45,195 +45,52 @@ Test cases for the mini system must be developed based on C, and those for the s ## Usage Guidelines -**Table 1** Test case levels - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Level

-

Definition

-

Scope

-

Level0

-

Smoke

-

Verifies basic functionalities of key features and basic DFX attributes with the most common input. The pass result indicates that the features are runnable.

-

Level1

-

Basic

-

Verifies basic functionalities of key features and basic DFX attributes with common input. The pass result indicates that the features are testable.

-

Level2

-

Major

-

Verifies basic functionalities of key features and basic DFX attributes with common input and errors. The pass result indicates that the features are functional and ready for beta testing.

-

Level3

-

Regular

-

Verifies functionalities of all key features, and all DFX attributes with common and uncommon input combinations or normal and abnormal preset conditions.

-

Level4

-

Rare

-

Verifies functionalities of key features under extremely abnormal presets and uncommon input combinations.

-
- -**Table 2** Test case granularities - - - - - - - - - - - - - - - - - - - - -

Test Scale

-

Test Objects

-

Test Environment

-

LargeTest

-

Service functionalities, all-scenario features, and mechanical power environment (MPE) and scenario-level DFX

-

Devices close to real devices

-

MediumTest

-

Modules, subsystem functionalities after module integration, and DFX

-

Single device that is actually used. You can perform message simulation, but do not mock functions.

-

SmallTest

-

Modules, classes, and functions

-

Local PC. Use a large number of mocks to replace dependencies with other modules.

-
- -**Table 3** Test types - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Type

-

Definition

-

Function

-

Tests the correctness of both service and platform functionalities provided by the tested object for end users or developers.

-

Performance

-

Tests the processing capability of the tested object under specific preset conditions and load models. The processing capability is measured by the service volume that can be processed in a unit time, for example, call per second, frame per second, or event processing volume per second.

-

Power

-

Tests the power consumption of the tested object in a certain period of time under specific preset conditions and load models.

-

Reliability

-

Tests the service performance of the tested object under common and uncommon input conditions, or specified service volume pressure and long-term continuous running pressure. The test covers stability, pressure handling, fault injection, and Monkey test times.

-

Security

-
  • Tests the capability of defending against security threats, including but not limited to unauthorized access, use, disclosure, damage, modification, and destruction, to ensure information confidentiality, integrity, and availability.
  • Tests the privacy protection capability to ensure that the collection, use, retention, disclosure, and disposal of users' private data comply with laws and regulations.
  • Tests the compliance with various security specifications, such as security design, security requirements, and security certification of the Ministry of Industry and Information Technology (MIIT).
-

Global

-

Tests the internationalized data and localization capabilities of the tested object, including multi-language display, various input/output habits, time formats, and regional features, such as currency, time, and culture taboos.

-

Compatibility

-
  • Tests backward compatibility of an application with its own data, the forward and backward compatibility with the system, and the compatibility with different user data, such as audio file content of the player and smart SMS messages.
  • Tests system backward compatibility with its own data and the compatibility of common applications in the ecosystem.
  • Tests software compatibility with related hardware.
-

User

-

Tests user experience of the object in real user scenarios. All conclusions and comments should come from the users, which are all subjective evaluation in this case.

-

Standard

-

Tests the compliance with industry and company-specific standards, protocols, and specifications. The standards here do not include any security standards that should be classified into the security test.

-

Safety

-

Tests the safety property of the tested object to avoid possible hazards to personal safety, health, and the object itself.

-

Resilience

-

Tests the resilience property of the tested object to ensure that it can withstand and maintain the defined running status (including downgrading) when being attacked, and recover from and adapt defense to the attacks to approach mission assurance.

-
+**Table 1** Test case levels + +| Level | Definition | Scope | +| ----- | ---------- | ----- | +| Level0 | Smoke | Verifies basic functionalities of key features and basic DFX attributes with the most common input. The pass result indicates that the features are runnable. | +| Level1 | Basic | Verifies basic functionalities of key features and basic DFX attributes with common input. The pass result indicates that the features are testable. | +| Level2 | Major | Verifies basic functionalities of key features and basic DFX attributes with common input and errors. The pass result indicates that the features are functional and ready for beta testing. | +| Level3 | Regular | Verifies functionalities of all key features, and all DFX attributes with common and uncommon input combinations or normal and abnormal preset conditions. | +| Level4 | Rare | Verifies functionalities of key features under extremely abnormal presets and uncommon input combinations. | + +**Table 2** Test case granularities + +| Test Scale | Test Objects | Test Environment | +| ---------- | ------------ | ---------------- | +| LargeTest | Service functionalities, all-scenario features, and mechanical power environment (MPE) and scenario-level DFX | Devices close to real devices. | +| MediumTest | Modules, subsystem functionalities after module integration, and DFX | Single device that is actually used. You can perform message simulation, but do not mock functions. | +| SmallTest | Modules, classes, and functions | Local PC. Use a large number of mocks to replace dependencies with other modules. | + +**Table 3** Test types + +| Type | Definition | +| ---------- | ------------ | +| Function | Tests the correctness of both service and platform functionalities provided by the tested object for end users or developers. | +| Performance | Tests the processing capability of the tested object under specific preset conditions and load models. The processing capability is measured by the service volume that can be processed in a unit time, for example, call per second, frame per second, or event processing volume per second. | +| Power | Tests the power consumption of the tested object in a certain period of time under specific preset conditions and load models. +| Reliability | Tests the service performance of the tested object under common and uncommon input conditions, or specified service volume pressure and long-term continuous running pressure. The test covers stability, pressure handling, fault injection, and Monkey test times. | +| Security | - Tests the capability of defending against security threats, including but not limited to unauthorized access, use, disclosure, damage, modification, and destruction, to ensure information confidentiality, integrity, and availability.
- Tests the privacy protection capability to ensure that the collection, use, retention, disclosure, and disposal of users' private data comply with laws and regulations.
- Tests the compliance with various security specifications, such as security design, security requirements, and security certification of the Ministry of Industry and Information Technology (MIIT). | +| Global | Tests the internationalized data and localization capabilities of the tested object, including multi-language display, various input/output habits, time formats, and regional features, such as currency, time, and culture taboos. | +| Compatibility | - Tests backward compatibility of an application with its own data, the forward and backward compatibility with the system, and the compatibility with different user data, such as audio file content of the player and smart SMS messages.
- Tests system backward compatibility with its own data and the compatibility of common applications in the ecosystem.
- Tests software compatibility with related hardware. | +| User | Tests user experience of the object in real user scenarios. All conclusions and comments should come from the users, which are all subjective evaluation in this case. | +| Standard | Tests the compliance with industry and company-specific standards, protocols, and specifications. The standards here do not include any security standards that should be classified into the security test. | +| Safety | Tests the safety property of the tested object to avoid possible hazards to personal safety, health, and the object itself. | +| Resilience | Tests the resilience property of the tested object to ensure that it can withstand and maintain the defined running status (including downgrading) when being attacked, and recover from and adapt defense to the attacks to approach mission assurance. | + ## Test Case Development Guidelines You should select the appropriate programming language and your target test framework to develop test cases. -**Table 4** Test frameworks and test case languages for different systems - - - - - - - - - - - - - - - - - - - - -

System

-

Test Framework

-

Language

-

Mini

-

HCTest

-

C

-

Small

-

HCPPTest

-

C++

-

Standard

-

HJSUnit and HCPPTest

-

JavaScript and C++

-
+**Table 4** Test frameworks and test case languages for different systems + +| System | Test Framework | Language | +| ---------- | ------------ | ---------------- | +| Mini | HCTest | C | +| Small | HCPPTest | C++ | +| Standard | HJSUnit and HCPPTest | JavaScript and C++ | ### C-based Test Case Development and Compilation \(for the Mini System\) @@ -241,7 +98,7 @@ You should select the appropriate programming language and your target test fram The HCTest framework is used to support test cases developed with the C language. HCTest is enhanced and adapted based on the open-source test framework Unity. -1. Access the **test/xts/acts** repository where the test cases will be stored. +1. Access the **test/xts/acts** repository where the test cases will be stored. ``` ├── acts @@ -253,7 +110,7 @@ The HCTest framework is used to support test cases developed with the C language │ │ └── BUILD.gn ``` -2. Write the test case in the **src** directory. +2. Write the test case in the **src** directory. 1 Import the test framework header file. @@ -261,10 +118,10 @@ The HCTest framework is used to support test cases developed with the C language #include "hctest.h" ``` - 2. Use the **LITE\_TEST\_SUIT** macro to define names of the subsystem, module, and test suite. + 2. Use the **LITE\_TEST\_SUIT** macro to define names of the subsystem, module, and test suite. ``` - /** + /** * @brief Registers a test suite named IntTestSuite. * @param test Subsystem name * @param example Module name @@ -279,7 +136,7 @@ The HCTest framework is used to support test cases developed with the C language The Setup and TearDown functions must exist, but function bodies can be empty. - 4. Use the **LITE\_TEST\_CASE** macro to write the test case. + 4. Use the **LITE\_TEST\_CASE** macro to write the test case. Three parameters are involved: test suite name, test case name, and test case properties \(including type, granularity, and level\). @@ -290,7 +147,7 @@ The HCTest framework is used to support test cases developed with the C language }; ``` - 5. Use the **RUN\_TEST\_SUITE** macro to register the test suite. + 5. Use the **RUN\_TEST\_SUITE** macro to register the test suite. ``` RUN_TEST_SUITE(IntTestSuite); @@ -298,7 +155,7 @@ The HCTest framework is used to support test cases developed with the C language 3. Create the configuration file \(**BUILD.gn**\) of the test module. - Create a **BUILD.gn** \(example\) build file in each test module directory. Specify the name of the built static library and its dependent header file and library in the build file. The format is as follows: + Create a **BUILD.gn** \(example\) build file in each test module directory. Specify the name of the built static library and its dependent header file and library in the build file. The format is as follows: ``` import("//test/xts/tools/lite/build/suite_lite.gni") @@ -312,9 +169,9 @@ The HCTest framework is used to support test cases developed with the C language } ``` -4. Add build options to the **BUILD.gn** file in the **acts** directory. +4. Add build options to the **BUILD.gn** file in the **acts** directory. - You need to add the test module to the **test/xts/acts/build\_lite/BUILD.gn** script in the **acts** directory. + You need to add the test module to the **test/xts/acts/build\_lite/BUILD.gn** script in the **acts** directory. ``` lite_component("acts") { @@ -332,7 +189,8 @@ The HCTest framework is used to support test cases developed with the C language Test suites are built along with version build. The ACTS is built together with the debug version. - >![](public_sys-resources/icon-note.gif) **NOTE:** + >![](public_sys-resources/icon-note.gif) **NOTE** + > >The ACTS build middleware is a static library, which will be linked to the image. @@ -351,15 +209,15 @@ Burn the image into the development board. View the serial port logs, whose format is as follows: -The log for each test suite starts with **Start to run test suite:** and ends with **xx Tests xx Failures xx Ignored**. +The log for each test suite starts with **Start to run test suite:** and ends with **xx Tests xx Failures xx Ignored**. ### C++-based Test Case Development and Compilation \(for Standard and Small Systems\) -**Developing test cases for small-system devices** \(For examples of the standard system, go to the **global/i18n\_standard directory**.\) +**Developing test cases for small-system devices** \(For examples of the standard system, go to the **global/i18n\_standard directory**.\) The HCPPTest framework is enhanced and adapted based on the open-source framework Googletest. -1. Access the **test/xts/acts** repository where the test cases will be stored. +1. Access the **test/xts/acts** repository where the test cases will be stored. ``` ├── acts @@ -371,11 +229,11 @@ The HCPPTest framework is enhanced and adapted based on the open-source framewor │ │ └── BUILD.gn ``` -2. Write the test case in the **src** directory. +2. Write the test case in the **src** directory. 1. Import the test framework header file. - The following statement includes **gtest.h**. + The following statement includes **gtest.h**. ``` #include "gtest/gtest.h" @@ -405,11 +263,11 @@ The HCPPTest framework is enhanced and adapted based on the open-source framewor }; ``` - 3. Use the **HWTEST** or **HWTEST\_F** macro to write the test case. + 3. Use the **HWTEST** or **HWTEST\_F** macro to write the test case. - **HWTEST**: definition of common test cases, including the test suite name, test case name, and case annotation. + **HWTEST**: definition of common test cases, including the test suite name, test case name, and case annotation. - **HWTEST\_F**: definition of SetUp and TearDown test cases, including the test suite name, test case name, and case annotation. + **HWTEST\_F**: definition of SetUp and TearDown test cases, including the test suite name, test case name, and case annotation. Three parameters are involved: test suite name, test case name, and test case properties \(including type, granularity, and level\). @@ -421,7 +279,7 @@ The HCPPTest framework is enhanced and adapted based on the open-source framewor 3. Create a configuration file \(**BUILD.gn**\) of the test module. - Create a **BUILD.gn** build file in each test module directory. Specify the name of the built static library and its dependent header file and library in the build file. Each test module is independently built into a **.bin** executable file, which can be directly pushed to the development board for testing. + Create a **BUILD.gn** build file in each test module directory. Specify the name of the built static library and its dependent header file and library in the build file. Each test module is independently built into a **.bin** executable file, which can be directly pushed to the development board for testing. Example: @@ -444,9 +302,9 @@ The HCPPTest framework is enhanced and adapted based on the open-source framewor } ``` -4. Add build options to the **BUILD.gn** file in the **acts** directory. +4. Add build options to the **BUILD.gn** file in the **acts** directory. - Add the test module to the **test/xts/acts/build\_lite/BUILD.gn** script in the **acts** directory. + Add the test module to the **test/xts/acts/build\_lite/BUILD.gn** script in the **acts** directory. ``` lite_component("acts") { @@ -465,7 +323,7 @@ The HCPPTest framework is enhanced and adapted based on the open-source framewor Test suites are built along with the version build. The ACTS is built together with the debug version. >![](public_sys-resources/icon-note.gif) **NOTE:** - >The ACTS for the small system is independently built to an executable file \(.bin\) and archived in the **suites\\acts** directory of the build result. + >The ACTS for the small system is independently built to an executable file \(.bin\) and archived in the **suites\\acts** directory of the build result. ### C++-based Test Case Execution \(for Standard and Small Systems\) @@ -479,9 +337,9 @@ Currently, test cases are shared by the NFS and mounted to the development board 1. Use a network cable or wireless network to connect the development board to your PC. 2. Configure the IP address, subnet mask, and gateway for the development board. Ensure that the development board and the PC are in the same network segment. 3. Install and register the NFS server on the PC and start the NFS service. -4. Run the **mount** command for the development board to ensure that the development board can access NFS shared files on the PC. +4. Run the **mount** command for the development board to ensure that the development board can access NFS shared files on the PC. - Format: **mount** _NFS server IP address_**:/**_NFS shared directory_ **/**_development board directory_ **nfs** + Format: **mount** _NFS server IP address_**:/**_NFS shared directory_ **/**_development board directory_ **nfs** Example: @@ -492,7 +350,7 @@ Currently, test cases are shared by the NFS and mounted to the development board **Executing test cases** -Execute **ActsDemoTest.bin** to trigger test case execution, and analyze serial port logs generated after the execution is complete. +Execute **ActsDemoTest.bin** to trigger test case execution, and analyze serial port logs generated after the execution is complete. ### JavaScript-based Test Case Development \(for the Standard System\) @@ -502,71 +360,20 @@ The HJSUnit framework is used to support automated test of OpenHarmony apps that The test cases are developed with the JavaScript language and must meet the programming specifications of the language. -**Table 5** - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Syntax

-

Description

-

Mandatory

-

beforeAll

-

Presets a test-suite-level action executed only once before all test cases are executed. You can pass the action function as the only parameter.

-

No

-

afterAll

-

Presets a test-suite-level clear action executed only once after all test cases are executed. You can pass the clear function as the only parameter.

-

No

-

beforeEach

-

Presets a test-case-level action executed before each test case is executed. The number of execution times is the same as the number of test cases defined by it. You can pass the action function as the only parameter.

-

No

-

afterEach

-

Presets a test-case-level clear action executed after each test case is executed. The number of execution times is the same as the number of test cases defined by it. You can pass the clear function as the only parameter.

-

No

-

describe

-

Defines a test suite. You can pass two parameters: test suite name and test suite function. The describe statement supports nesting. You can use beforeall, beforeEach, afterEach, and afterAll in each describe statement.

-

Yes

-

it

-

Defines a test case. You can pass three parameters: test case name, filter parameter, and test case function.

-

Usage of the filter parameter:

-

The value of the filter parameter is a 32-bit integer. Setting different bits to 1 means different configurations:

-
  • bit 0: whether the filter parameter takes effect. 1 means that the test case is used for the function test and other settings of the parameter do not take effect.
  • Bits 0-10: test case categories
  • Bits 16-18: test case scales
  • Bits 24-28: test levels
-

Test case categories: Bits 0-10 indicate FUNCTION (function test), PERFORMANCE (performance test), POWER (power consumption test), RELIABILITY (reliability test), SECURITY (security compliance test), GLOBAL (integrity test), COMPATIBILITY (compatibility test), USER (user test), STANDARD (standard test), SAFETY (security feature test), and RESILIENCE (resilience test), respectively.

-

Test case scales: Bits 16-18 indicate SMALL (small-scale test), MEDIUM (medium-scale test), and LARGE (large-scale test), respectively.

-

Test levels: Bits 24-28 indicate LEVEL0 (level-0 test), LEVEL1 (level-1 test), LEVEL2 (level-2 test), LEVEL3 (level-3 test), and LEVEL4 (level-4 test), respectively.

-

Yes

-
+**Table 5** Basic syntax + +| Syntax | Description | Mandatory | +| ------ | ----------- | --------- | +| beforeAll | Presets a test-suite-level action executed only once before all test cases are executed. You can pass the action function as the only parameter. | No | +| afterAll | Presets a test-suite-level clear action executed only once after all test cases are executed. You can pass the clear function as the only parameter. | No | +| beforeEach | Presets a test-case-level action executed before each test case is executed. The number of execution times is the same as the number of test cases defined by it. You can pass the action function as the only parameter. | No | +| afterEach | Presets a test-case-level clear action executed after each test case is executed. The number of execution times is the same as the number of test cases defined by it. You can pass the clear function as the only parameter. | No | +| describe | Defines a test suite. You can pass two parameters: test suite name and test suite function. The describe statement supports nesting. You can use beforeall, beforeEach, afterEach, and afterAll in each describe statement. | Yes | +| it | Defines a test case. You can pass three parameters: test case name, filter parameter, and test case function.
Usage of the filter parameter:
The value of the filter parameter is a 32-bit integer. Setting different bits to 1 means different configurations:
  • bit 0: whether the filter parameter takes effect. **1** means that the test case is used for the function test and other settings of the parameter do not take effect.
  • Bits 0-10: test case categories
  • Bits 16-18: test case scales
  • Bits 24-28: test levels
**Test case categories**: Bits 0-10 indicate FUNCTION (function test), PERFORMANCE (performance test), POWER (power consumption test), RELIABILITY (reliability test), SECURITY (security compliance test), GLOBAL (integrity test), COMPATIBILITY (compatibility test), USER (user test), STANDARD (standard test), SAFETY (security feature test), and RESILIENCE (resilience test), respectively.
**Test case scales**: Bits 16-18 indicate SMALL (small-scale test), MEDIUM (medium-scale test), and LARGE (large-scale test), respectively.
**Test levels**: Bits 24-28 indicate LEVEL0 (level-0 test), LEVEL1 (level-1 test), LEVEL2 (level-2 test), LEVEL3 (level-3 test), and LEVEL4 (level-4 test), respectively. | Yes | Use the standard syntax of Jasmine to write test cases. The ES6 specification is supported. -1. Store the test cases in the **entry/src/main/js/test** directory, whose structure is as follows: +1. Store the test cases in the **entry/src/main/js/test** directory, whose structure is as follows: ``` ├── BUILD.gn @@ -583,7 +390,7 @@ Use the standard syntax of Jasmine to write test cases. The ES6 specification is │ │ │ └── config.json # HAP configuration file ``` -2. Start the JS test framework and load test cases. The following is an example for **index.js**. +2. Start the JS test framework and load test cases. The following is an example for **index.js**. ``` // Start the JS test framework and load test cases. -- GitLab From 2b3453a1adb3d1e6cdd643d5a29bebc6bae6415f Mon Sep 17 00:00:00 2001 From: king_he <6384784@qq.com> Date: Tue, 19 Jul 2022 09:42:10 +0000 Subject: [PATCH 087/868] update en/readme/xts.md. Signed-off-by: king_he <6384784@qq.com> --- en/readme/xts.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/en/readme/xts.md b/en/readme/xts.md index e7028c4841..e31cc47646 100644 --- a/en/readme/xts.md +++ b/en/readme/xts.md @@ -322,7 +322,8 @@ The HCPPTest framework is enhanced and adapted based on the open-source framewor Test suites are built along with the version build. The ACTS is built together with the debug version. - >![](public_sys-resources/icon-note.gif) **NOTE:** + >![](public_sys-resources/icon-note.gif) **NOTE** + > >The ACTS for the small system is independently built to an executable file \(.bin\) and archived in the **suites\\acts** directory of the build result. -- GitLab From 740e52bca7e930de73babca40c25ccec5687e055 Mon Sep 17 00:00:00 2001 From: king_he <6384784@qq.com> Date: Tue, 19 Jul 2022 09:43:07 +0000 Subject: [PATCH 088/868] update en/readme/xts.md. Signed-off-by: king_he <6384784@qq.com> --- en/readme/xts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/readme/xts.md b/en/readme/xts.md index e31cc47646..5453c120ea 100644 --- a/en/readme/xts.md +++ b/en/readme/xts.md @@ -370,7 +370,7 @@ The test cases are developed with the JavaScript language and must meet the prog | beforeEach | Presets a test-case-level action executed before each test case is executed. The number of execution times is the same as the number of test cases defined by it. You can pass the action function as the only parameter. | No | | afterEach | Presets a test-case-level clear action executed after each test case is executed. The number of execution times is the same as the number of test cases defined by it. You can pass the clear function as the only parameter. | No | | describe | Defines a test suite. You can pass two parameters: test suite name and test suite function. The describe statement supports nesting. You can use beforeall, beforeEach, afterEach, and afterAll in each describe statement. | Yes | -| it | Defines a test case. You can pass three parameters: test case name, filter parameter, and test case function.
Usage of the filter parameter:
The value of the filter parameter is a 32-bit integer. Setting different bits to 1 means different configurations:
  • bit 0: whether the filter parameter takes effect. **1** means that the test case is used for the function test and other settings of the parameter do not take effect.
  • Bits 0-10: test case categories
  • Bits 16-18: test case scales
  • Bits 24-28: test levels
**Test case categories**: Bits 0-10 indicate FUNCTION (function test), PERFORMANCE (performance test), POWER (power consumption test), RELIABILITY (reliability test), SECURITY (security compliance test), GLOBAL (integrity test), COMPATIBILITY (compatibility test), USER (user test), STANDARD (standard test), SAFETY (security feature test), and RESILIENCE (resilience test), respectively.
**Test case scales**: Bits 16-18 indicate SMALL (small-scale test), MEDIUM (medium-scale test), and LARGE (large-scale test), respectively.
**Test levels**: Bits 24-28 indicate LEVEL0 (level-0 test), LEVEL1 (level-1 test), LEVEL2 (level-2 test), LEVEL3 (level-3 test), and LEVEL4 (level-4 test), respectively. | Yes | +| it | Defines a test case. You can pass three parameters: test case name, filter parameter, and test case function.
**Usage of the filter parameter**:
The value of the filter parameter is a 32-bit integer. Setting different bits to 1 means different configurations:
  • bit 0: whether the filter parameter takes effect. **1** means that the test case is used for the function test and other settings of the parameter do not take effect.
  • Bits 0-10: test case categories
  • Bits 16-18: test case scales
  • Bits 24-28: test levels
**Test case categories**: Bits 0-10 indicate FUNCTION (function test), PERFORMANCE (performance test), POWER (power consumption test), RELIABILITY (reliability test), SECURITY (security compliance test), GLOBAL (integrity test), COMPATIBILITY (compatibility test), USER (user test), STANDARD (standard test), SAFETY (security feature test), and RESILIENCE (resilience test), respectively.
**Test case scales**: Bits 16-18 indicate SMALL (small-scale test), MEDIUM (medium-scale test), and LARGE (large-scale test), respectively.
**Test levels**: Bits 24-28 indicate LEVEL0 (level-0 test), LEVEL1 (level-1 test), LEVEL2 (level-2 test), LEVEL3 (level-3 test), and LEVEL4 (level-4 test), respectively. | Yes | Use the standard syntax of Jasmine to write test cases. The ES6 specification is supported. -- GitLab From 67014850ef78e9ccc3bc8ac148c51c0c4fa2eaea Mon Sep 17 00:00:00 2001 From: king_he <6384784@qq.com> Date: Tue, 19 Jul 2022 09:49:53 +0000 Subject: [PATCH 089/868] update en/readme/window-manager.md. Signed-off-by: king_he <6384784@qq.com> --- en/readme/window-manager.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/en/readme/window-manager.md b/en/readme/window-manager.md index 41c0706671..94aa6b8836 100644 --- a/en/readme/window-manager.md +++ b/en/readme/window-manager.md @@ -8,6 +8,8 @@ The Window Manager subsystem provides basic capabilities of window and display m ![WindowManager-subsystem-architecture](./figures/WindowManager.png) +Components of the Window Manager subsystem are described as follows: + - **Window Manager Client** Provides window object abstraction and window management interfaces, and connects to the ability and UI framework. @@ -28,23 +30,22 @@ The Window Manager subsystem provides basic capabilities of window and display m ```text foundation/window/window_manager/ -├── dm # Stores Display Manager Client implementation code -├── dmserver # Stores Display Manager Server implementation code -├── interfaces # Stores external APIs -│ ├── innerkits # Stores native APIs -│ └── kits # Stores JS APIs and native APIs -├── resources # Stores resource files used by the framework -├── sa_profile # Stores system service configuration files -├── snapshot # Stores implementation code of the screenshot command line tool -├── utils # Stores tools -├── wm # Stores Window Manager Client implementation code -├── wmserver # Stores Window Manager Server implementation code +├── dm # Display Manager Client implementation code +├── dmserver # Display Manager Server implementation code +├── interfaces # External APIs +│ ├── innerkits # Native APIs +│ └── kits # JS APIs and native APIs +├── resources # Resource files used by the framework +├── sa_profile # System service configuration files +├── snapshot # Implementation code of the screenshot command line tool +├── utils # Utilities +├── wm # Window Manager Client implementation code +├── wmserver # Window Manager Server implementation code ``` ## Constraints -- Programming language version - - C++ 11 or later +The Programming language version must be C++ 11 or later. ## Available APIs -- GitLab From 809ca52cdd8ceeffbcb870f6c697ba43ab55f5a8 Mon Sep 17 00:00:00 2001 From: zhangxingxia Date: Tue, 19 Jul 2022 17:51:56 +0800 Subject: [PATCH 090/868] update docs Signed-off-by: zhangxingxia --- .../reference/apis/js-apis-storage-statistics.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-storage-statistics.md b/zh-cn/application-dev/reference/apis/js-apis-storage-statistics.md index d5d8993ad9..487233c54b 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-storage-statistics.md +++ b/zh-cn/application-dev/reference/apis/js-apis-storage-statistics.md @@ -266,12 +266,10 @@ getCurrentBundleStats(callback: AsyncCallback<BundleStats>): void **系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.StorageService.SpatialStatistics +### 属性 该接口为系统接口,三方应用不支持调用 - -### 属性 - | 名称 | 类型 | 说明 | | --------- | ------ | -------------- | | appSize | number | app数据大小 | @@ -525,12 +523,10 @@ getUserStorageStats(userId: number, callback:AsyncCallback<StorageStats>): **系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.StorageService.SpatialStatistics +### 属性 该接口为系统接口,三方应用不支持调用 - -### 属性 - | 名称 | 类型 | 说明 | | --------- | ------ | -------------- | | total | number | 内卡总空间大小 | -- GitLab From 74c5148916909c326f10ca5805a2e21f0264e946 Mon Sep 17 00:00:00 2001 From: king_he <6384784@qq.com> Date: Tue, 19 Jul 2022 09:56:00 +0000 Subject: [PATCH 091/868] update en/readme/user-iam.md. Signed-off-by: king_he <6384784@qq.com> --- en/readme/user-iam.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/en/readme/user-iam.md b/en/readme/user-iam.md index 52aba67d90..245334be9d 100644 --- a/en/readme/user-iam.md +++ b/en/readme/user-iam.md @@ -1,8 +1,10 @@ -# User IAM Subsystem +# User IAM ## Introduction -The user identity and access management (IAM) subsystem provides a unified framework for user credential management and user identity authentication in OpenHarmony. It allows multiple users to set their own authentication credential information and authenticates their identities based on the information set. This subsystem is widely used in security-sensitive scenarios such as screen lock. The subsystem also provides APIs for third-party developers to call the identity authentication capabilities to control user access. +The user identity and access management (IAM) subsystem provides a unified framework for user credential management and user identity authentication in OpenHarmony. It allows multiple users to set their own authentication credential information and authenticates their identities based on the information set. + +This subsystem is widely used in security-sensitive scenarios such as screen lock. It also provides APIs for developers to call the identity authentication capabilities to control user access. **Figure 1** Subsystem architecture @@ -16,7 +18,8 @@ The user IAM subsystem consists of the unified user authentication framework and Based on the unified user authentication framework, the system can be extended to support multiple authentication capabilities. Currently, the authentication executors supported by OpenHarmony are password and facial authentication. To implement a new authentication executor, you only need to implement authentication capabilities in a new part and connect the new part to the unified user authentication framework based on the interfaces defined by the authentication executor management part. -*Note: In the user IAM subsystem, an authentication executor is the minimum execution unit of a user identity authentication operation. For example, a password authentication module is responsible for password collection, password processing and comparison, and secure storage, and therefore it can be abstracted as a password authentication executor.* +> **NOTE**
+> In the user IAM subsystem, an authentication executor is the minimum execution unit of a user identity authentication operation. For example, a password authentication module is responsible for password collection, password processing and comparison, and secure storage, and therefore it can be abstracted as a password authentication executor. ## Directory Structure -- GitLab From 3861d5f452490857502bf47c963bc635422a0c5b Mon Sep 17 00:00:00 2001 From: king_he <6384784@qq.com> Date: Tue, 19 Jul 2022 10:49:54 +0000 Subject: [PATCH 092/868] update en/readme/update.md. Signed-off-by: king_he <6384784@qq.com> --- en/readme/update.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/en/readme/update.md b/en/readme/update.md index 58abb6e73e..52c384ff79 100644 --- a/en/readme/update.md +++ b/en/readme/update.md @@ -1,25 +1,25 @@ -# Update +# Update -## Introduction +## Introduction The Update subsystem helps you implement over the air \(OTA\) update of OpenHarmony devices. The update subsystem consists of the following: -1. Packaging tool +- Packaging tool The packaging tool is developed using Python and deployed on the PC to prepare update packages. It packages each update image, signs the update package, generates the update package execution script, and finally creates an update package. After the execution script is run on a OpenHarmony device, the device parses and executes the script to complete the update process. - The update package contains two files: **build\_tools.zip** and **update.bin**. + The update package contains two files: **build\_tools.zip** and **update.bin**. - **build\_tools.zip**: update assistance tools, including the executable files and scripts. - **update.bin**: TLV-encoded file, in which update contents are serialized and stored in the TLV format. The packaging tool signs the **update.bin** file and the generated update package \(**.zip** file\) independently. -2. Update service +- Update service The update service is used to search, download, and trigger updates. -3. Updater +- Updater The updater is the core module of the update subsystem. It provides the following functions: @@ -29,7 +29,7 @@ The Update subsystem helps you implement over the air \(OTA\) update of OpenHarm 4. Installs the related component packages based on the update script. 5. Performs post-processing after the update is complete, for example, deleting the update package and recording the update status. -4. Update app +- Update app The upgrade app is used to trigger search and download of update packages. @@ -53,14 +53,14 @@ Before you get started, familiarize yourself with the following concepts: ``` base/update # Update subsystem repository -├── app # Update app code +├── app # Update app code ├── packaging_tools # Packaging tool code -├── updater # Updater code +├── updater # Updater code │ ├── interfaces # External APIs -│ ├── resources # UI image resources of the update subsystem, such as animations and progress bar images -│ ├── services # Updater logic code -│ └── utils # Common code of the update subsystem, including the string processing functions and file processing functions -└── updateservice # Update service code +│ ├── resources # UI image resources of the update subsystem, such as animations and progress bar images +│ ├── services # Updater logic code +│ └── utils # Common code of the update subsystem, including the string processing functions and file processing functions +└── updateservice # Update service code ``` ## Repositories Involved -- GitLab From 57f1183dc9f8bc6e280c7c17fe688e955c77eb97 Mon Sep 17 00:00:00 2001 From: hnz Date: Tue, 19 Jul 2022 11:32:57 +0000 Subject: [PATCH 093/868] =?UTF-8?q?=E3=80=90=E6=96=87=E6=A1=A3=E4=BD=93?= =?UTF-8?q?=E9=AA=8C=E5=AE=98=E3=80=91=E4=BF=AE=E6=AD=A3decode=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E4=B8=AD=E5=8F=82=E6=95=B0=E4=BF=A1=E6=81=AF=EF=BC=88?= =?UTF-8?q?js-apis-util.md=EF=BC=89=20Signed-off-by:=20=E8=B4=BA=E5=BF=B5?= =?UTF-8?q?=E5=93=B2=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/application-dev/reference/apis/js-apis-util.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-util.md b/zh-cn/application-dev/reference/apis/js-apis-util.md index 3d100dcbe2..e5c8b0cd6d 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-util.md +++ b/zh-cn/application-dev/reference/apis/js-apis-util.md @@ -215,7 +215,7 @@ decode(input: Uint8Array, options?: { stream?: false }): string **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | -| input | Unit8Array | 是 | 符合格式需要解码的数组。 | +| input | Uint8Array | 是 | 符合格式需要解码的数组。 | | options | Object | 否 | 解码相关选项参数。 | **表2** options -- GitLab From c74f44276f8bc167a0d9626b5649769023546236 Mon Sep 17 00:00:00 2001 From: zhou-liting125 Date: Tue, 19 Jul 2022 14:48:12 +0800 Subject: [PATCH 094/868] update ts-basic-components-web.md Signed-off-by: zhou-liting125 --- .../arkui-ts/ts-basic-components-web.md | 289 ++++++++++++++++-- 1 file changed, 261 insertions(+), 28 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md index c937a41347..477a3c5ad3 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md @@ -27,8 +27,6 @@ > **说明:** > > - 不支持转场动画; -> - 不支持多实例; -> - 仅支持本地音视频播放。 ## 属性 | 名称 | 参数类型 | 默认值 | 描述 | @@ -75,7 +73,7 @@ | onShowFileSelector(callback: (event?: { result: [FileSelectorResult](#fileselectorresult对象说明), fileSelector: [FileSelectorParam](#fileselectorparam对象说明) }) => void) |

调用此函数以处理具有“文件”输入类型的HTML表单,以响应用户按下的“选择文件”按钮
- result:用于通知Web组件文件选择的结果。
- fileSelector:文件选择器的相关信息。

| | onUrlLoadIntercept(callback: (event?: { data:string \| [WebResourceRequest](#webresourcerequest对象说明) }) => boolean) |

当Web组件加载url之前触发该回调,用于是否阻止此次访问。callback返回true表示阻止此次加载,否则允许此次加载。
- data:url的相关信息。

| | onInterceptRequest9+(callback: (event?: { request: [WebResourceRequest](#webresourcerequest对象说明)}) => [WebResourceResponse](#webresourceresponse对象说明)) |

当Web组件加载url之前触发该回调,用于拦截url并返回响应数据。callback返回响应数据为空表示按原来方式加载,否则加载响应数据。
- request:url请求的相关信息。

| -| onHttpAuthRequest9+(callback: (event?: { handler: [HttpAuthHandler](#httpAuthHandler对象说明), host: string, realm: string}) => boolean) |

通知收到http auth认证请求。callback返回false表示此次认证失败,否则成功。
- handler:通知Web组件用户操作行为。
- host:HTTP身份验证凭据应用的主机。
- realm:HTTP身份验证凭据应用的领域。

| +| onHttpAuthRequest9+(callback: (event?: { handler: [HttpAuthHandler](#httpauthhandlersup9sup), host: string, realm: string}) => boolean) |

通知收到http auth认证请求。callback返回false表示此次认证失败,否则成功。
- handler:通知Web组件用户操作行为。
- host:HTTP身份验证凭据应用的主机。
- realm:HTTP身份验证凭据应用的域。

| ## ConsoleMessage对象说明 @@ -201,15 +199,58 @@ onRenderExited接口返回的渲染进程退出的具体原因。 | FileOpenFolderMode | 打开上传文件夹模式。 | | FileSaveMode | 文件保存模式。 | -## HttpAuthHandler对象说明 + ## HitTestType枚举说明 -Web组件返回的http auth认证请求确认或取消和使用缓冲密码认证功能对象。 + | 名称 | 描述 | + | ------------- | ----------------------------------------- | + | EditText | 可编辑的区域。 | + | Email | 电子邮件地址。 | + | HttpAnchor | 超链接,其src为http。 | + | HttpAnchorImg | 带有超链接的图片,其中超链接的src为http。 | + | Img | HTML::img标签。 | + | Map | 地理地址。 | + | Unknown | 未知内容。 | + +## HttpAuthHandler9+ + +Web组件返回的http auth认证请求确认或取消和使用缓存密码认证功能对象。 + +### cancel9+ + +cancel(): void + +通知Web组件用户取消HTTP认证操作。 + +### confirm9+ -| 接口名称 | 功能描述 | -| -------------------------------------------------| ------------------------------------------------------ | -| cancel(): void |

通知Web组件用户取消HTTP认证操作。

| -| confirm(userName: string, pwd: string): boolean |

通知Web组件用户使用userName和pwd进行HTTP认证操作。

| -| isHttpAuthInfoSaved(): boolean |

通知Web组件用户使用服务器缓存的账号密码认证,若没有缓存返回false。

| +confirm(userName: string, pwd: string): boolean + +使用用户名和密码进行HTTP认证操作。 + +- 参数 + + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | -------- | -------- | ---- | ------ | -------------- | + | userName | string | 是 | - | HTTP认证用户名。| + | pwd | string | 是 | - | HTTP认证密码。 | + +- 返回值 + + | 参数类型 | 说明 | + | -------- | ------------------------------- | + | boolean | 认证成功返回true,失败返回false。 | + +### isHttpAuthInfoSaved9+ + +isHttpAuthInfoSaved(): boolean + +通知Web组件用户使用服务器缓存的账号密码认证。 + +- 返回值 + + | 参数类型 | 说明 | + | -------- | ------------------------------------- | + | boolean | 存在密码认证成功返回true,其他返回false。| ## WebController @@ -275,23 +316,76 @@ forward(): void 按照历史栈,前进一个页面。一般结合accessForward一起使用。 +### backOrForward9+ + +backOrForward(step: number): void + +按照历史栈,前进或者后退指定步长的页面,当历史栈中不存在对应步长的页面时,不会进行页面跳转。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ---- | ------ | ---- | ---- | ---------------------------------------- | + | step | number | 是 |- |需要前进或后退的步长。 | + ### getHitTest getHitTest(): HitTestType 获取当前被点击区域的元素类型。 -- HitTestType枚举说明 +- 返回值 + | 参数类型 | 说明 | + | -------- | ------------------ | + | [HitTestType](#hittesttype枚举说明) | 被点击区域的元素类型。 | - | 名称 | 描述 | - | ------------- | ----------------------------------------- | - | EditText | 可编辑的区域。 | - | Email | 电子邮件地址。 | - | HttpAnchor | 超链接。其src为http。 | - | HttpAnchorImg | 带有超链接的图片,其中超链接的src为http。 | - | Img | HTML::img标签。 | - | Map | 地理地址。 | - | Unknown | 未知内容。 | +### getHitTestValue9+ +getHitTestValue(): HitTestValue + +获取当前被点击区域的元素信息。 + +- 返回值 + | 参数类型 | 说明 | + |----------|------| + | [HitTestValue](#hittestvaluesup9sup) | 点击区域的元素信息。 | + +### getWebId9+ +getWebId(): number + +获取当前Web组件的索引值,用于多个Web组件的管理。 + +- 返回值 + | 参数类型 | 说明 | + |----------|------| + | number | 当前Web组件的索引值。 | + +### getTitle9+ +getTitle(): string + +获取当前网页的标题。 +- 返回值 + | 参数类型 | 说明 | + |----------|------| + | string | 当前网页的标题。 | + +### getPageHeight9+ +getPageHeight(): number + +获取当前网页的页面高度。 +- 返回值 + | 参数类型 | 说明 | + |----------|------| + | number | 当前网页的页面高度。 | + + + +### getDefaultUserAgent9+ +getDefaultUserAgent(): string + +获取当前默认用户代理。 +- 返回值 + | 参数类型 | 说明 | + |----------|------| + | string | 默认用户代理。 | ### loadData @@ -342,6 +436,33 @@ onInactive(): void 调用此接口通知Web组件进入未激活状态。 +### zoom +zoom(factor: number): void + +调整当前网页的缩放比例。 +- 参数 + | 参数名 | 参数类型 | 必填 | 参数描述 | + |--------|----------|------|---------| + | factor | number | 是 | 基于当前网页所需调整的相对缩放比例,正值为放大,负值为缩小。 | + +### zoomIn9+ +zoomIn(): boolean + +调用此接口将当前网页进行放大,比列20%。 +- 返回值 + | 参数类型 | 说明 | + |----------|------| + | boolean | 放大操作是否成功执行。 | + +### zoomOut9+ +zoomOut(): boolean + +调用此接口将当前网页进行缩小,比列20%。 +- 返回值 + | 参数类型 | 说明 | + |----------|------| + | boolean | 缩小操作是否成功执行。 | + ### refresh refresh(): void @@ -396,6 +517,28 @@ getCookieManager(): WebCookie | 参数类型 | 说明 | | --------- | -------------------------------------------------------- | | WebCookie | web组件cookie管理对象,参考[WebCookie](#webcookie)定义。 | + +## HitTestValue9+ +提供点击区域的元素信息。 + +### getType9+ +getType(): HitTestType + +获取当前被点击区域的元素类型。 +- 返回值 + | 参数类型 | 说明 | + |----------|------| + | [HitTestType](#hittesttype枚举说明) | 当前被点击区域的元素类型。 | + +### getExtra9+ +getExtra(): string + +若被点击区域为图片或链接,则附加参数信息为其url地址。 +- 返回值 + | 参数类型 | 说明 | + |----------|------| + | string | 点击区域的附加参数信息。 | + ## WebCookie 通过WebCookie可以控制Web组件中的cookie的各种行为,其中每个应用中的所有web组件共享一个WebCookie。通过controller方法中的getCookieManager方法可以获取WebCookie对象,进行后续的cookie管理操作。 ### setCookie @@ -403,7 +546,7 @@ setCookie(url: string, value: string): boolean 设置cookie,该方法为同步方法。设置成功返回true,否则返回false。 -- 参数说明 +- 参数 | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | @@ -430,7 +573,7 @@ web组件数据库管理对象。 static existHttpAuthCredentials(): boolean -判断是否存在任何已保存的HTTP身份验证凭据,该方法为同步方法。存在返回true,否则返回false。 +判断是否存在任何已保存的HTTP身份验证凭据,该方法为同步方法。存在返回true,不存在返回false。 - 返回值 | 参数类型 | 说明 | @@ -447,14 +590,14 @@ static deleteHttpAuthCredentials(): void static getHttpAuthCredentials(host: string, realm: string): Array\ -检索给定主机和领域的HTTP身份验证凭据,该方法为同步方法。检索成功返回一个包含用户名和密码的组数,检索不成功返回空数组。 +检索给定主机和域的HTTP身份验证凭据,该方法为同步方法。检索成功返回一个包含用户名和密码的组数,检索不成功返回空数组。 -- 参数说明 +- 参数 | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | -------------------------- | | host | string | 是 | - | HTTP身份验证凭据应用的主机。 | - | realm | string | 是 | - | HTTP身份验证凭据应用的领域。 | + | realm | string | 是 | - | HTTP身份验证凭据应用的域。 | - 返回值 | 参数类型 | 说明 | | ---------------- | --------------------------------------------- | @@ -464,17 +607,107 @@ static getHttpAuthCredentials(host: string, realm: string): Array\ static saveHttpAuthCredentials(host: string, realm: string, username: string, password: string): void -保存给定主机和领域的HTTP身份验证凭据,该方法为同步方法。 +保存给定主机和域的HTTP身份验证凭据,该方法为同步方法。 -- 参数说明 +- 参数 | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | -------- | -------- | ---- | ------ | -------------------------- | | host | string | 是 | - | HTTP身份验证凭据应用的主机。 | - | realm | string | 是 | - | HTTP身份验证凭据应用的领域。 | + | realm | string | 是 | - | HTTP身份验证凭据应用的域。 | | username | string | 是 | - | 用户名。 | | password | string | 是 | - | 密码。 | +## WebStorage9+ +通过WebStorage可管理Web SQL数据库接口和HTML5 Web存储接口,每个应用中的所有Web组件共享一个WebStorage。 +### deleteAllData9+ +static deleteAllData(): void + +清除Web SQL数据库当前使用的所有存储。 +### deleteOrigin9+ +static deleteOrigin(origin : string): void + +清除指定源所使用的存储。 +- 参数 + | 参数名 | 参数类型 | 必填 | 说明 | + |---------|---------|-----|-----| + | origin | string | 是 | 指定源的字符串索引。 | + +### getOrigins9+ +static getOrigins(callback: AsyncCallback>) : void + +以回调方式异步获取当前使用Web SQL数据库的所有源的信息。 +- 参数 + | 参数名 | 参数类型 | 必填 | 说明 | + |---------|---------|-----|----| + | callback | AsyncCallback> | 是 | 以数组方式返回源的信息,信息内容参考WebStorageOrigin。| + +### getOrigins9+ +static getOrigins() : Promise> + +以Promise方式异步获取当前使用Web SQL数据库的所有源的信息。 +- 返回值 + | 类型 | 说明 | + |------|------| + | Promise> | Promise实例,用于获取当前所有源的信息,信息内容参考WebStorageOrigin。 | + +### getOriginQuota9+ +static getOriginQuota(origin : string, callback : AsyncCallback) : void + +使用callback回调异步获取指定源的Web SQL数据库的存储配额,配额以字节为单位。 +- 参数 + | 参数名 | 参数类型 | 必填 | 说明 | + |----------|-----------|------|------| + | origin | string | 是 | 指定源的字符串索引 | + | callback | AsyncCallback | 是 | 指定源的存储配额。 | + +### getOriginQuota9+ +static getOriginQuota(origin : string) : Promise + +以Promise方式异步获取指定源的Web SQL数据库的存储配额,配额以字节为单位。 +- 参数 + | 参数名 | 参数类型 | 必填 | 说明 | + |----------|---------|------|-------| + | origin | string | 是 | 指定源的字符串索引。 | + +- 返回值 + | 类型 | 说明 | + |------|------| + | Promise | Promise实例,用于获取指定源的存储配额。 | + +### getOriginUsage9+ +static getOriginUsage(origin : string, callback : AsyncCallback) : void + +以回调方式异步获取指定源的Web SQL数据库的存储量,存储量以字节为单位。 +- 参数 + | 参数名 | 参数类型 | 必填 | 说明 | + |----------|----------|------|------| + | origin | string | 是 | 指定源的字符串索引。 | + | callback | AsyncCallback | 是 | 指定源的存储量。 | + +### getOriginUsage9+ +static getOriginUsage(origin : string) : Promise + +以Promise方式异步获取指定源的Web SQL数据库的存储量,存储量以字节为单位。 +- 参数 + | 参数名 | 参数类型 | 必填 | 说明 | + |----------|----------|------|------| + | origin | string | 是 | 指定源的字符串索引。 | + +- 返回值 + | 类型 | 说明 | + |------|------| + | Promise | Promise实例,用于获取指定源的存储量。 | + +## WebStorageOrigin9+ +提供Web SQL数据库的使用信息。 +- 参数 + | 参数名 | 参数类型 | 必填 | 说明 | + |----------|----------|------|------| + | origin | string | 是 | 指定源的字符串索引。 | + | usage | number | 是 | 指定源的存储量。 | + | quota | number | 是 | 指定源的存储配额。 | + ## 示例 ```ts -- GitLab From af29233c79f46ec951f4789c04957cee8d040705 Mon Sep 17 00:00:00 2001 From: hnz Date: Tue, 19 Jul 2022 11:45:50 +0000 Subject: [PATCH 095/868] =?UTF-8?q?=E3=80=90=E6=96=87=E6=A1=A3=E4=BD=93?= =?UTF-8?q?=E9=AA=8C=E5=AE=98=E3=80=91ohos.convertxml=E4=B8=AD=E7=A4=BA?= =?UTF-8?q?=E4=BE=8B=E4=BB=A3=E7=A0=81=E6=A0=BC=E5=BC=8F=E6=95=B4=E6=94=B9?= =?UTF-8?q?=20Signed-off-by:=20=E8=B4=BA=E5=BF=B5=E5=93=B2=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application-dev/reference/apis/js-apis-convertxml.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-convertxml.md b/zh-cn/application-dev/reference/apis/js-apis-convertxml.md index b5bad4a12f..cbb605b604 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-convertxml.md +++ b/zh-cn/application-dev/reference/apis/js-apis-convertxml.md @@ -49,10 +49,10 @@ let xml = ''; let conv = new convertxml.ConvertXML(); let options = {trim : false, declarationKey:"_declaration", - instructionKey : "_instruction", attributesKey : "_attributes", - textKey : "_text", cdataKey:"_cdata", doctypeKey : "_doctype", - commentKey : "_comment", parentKey : "_parent", typeKey : "_type", - nameKey : "_name", elementsKey : "_elements"} + instructionKey : "_instruction", attributesKey : "_attributes", + textKey : "_text", cdataKey:"_cdata", doctypeKey : "_doctype", + commentKey : "_comment", parentKey : "_parent", typeKey : "_type", + nameKey : "_name", elementsKey : "_elements"} let result = JSON.stringify(conv.convert(xml, options)); console.log(result) ``` -- GitLab From dd9f628d2f57cdae83dbe494bc16e826f7ffefe7 Mon Sep 17 00:00:00 2001 From: clevercong Date: Tue, 19 Jul 2022 20:14:45 +0800 Subject: [PATCH 096/868] update sms Signed-off-by: clevercong --- zh-cn/application-dev/reference/apis/js-apis-sms.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-sms.md b/zh-cn/application-dev/reference/apis/js-apis-sms.md index 802515f797..5364e9bcd8 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-sms.md +++ b/zh-cn/application-dev/reference/apis/js-apis-sms.md @@ -418,9 +418,9 @@ splitMessage(content: string): Promise> **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------- | ------ | ---- | ------------------------------------ | -| content | string | 是 | 指示短消息内容,不能为{@code null}。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ------ | ---- | ---------------------------- | +| content | string | 是 | 指示短消息内容,不能为null。 | **返回值:** @@ -817,7 +817,7 @@ getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean, callback | --------- | ------------------------------------------------------------ | ---- | ----------------------------------------- | | slotId | number | 是 | SIM卡槽ID:
- 0:卡槽1
- 1:卡槽2 | | message | string | 是 | 消息 | -| force7bit | boolean | 是 | 强转7位 | +| force7bit | boolean | 是 | 是否使用7bit编码 | | callback | AsyncCallback<[SmsSegmentsInfo](#<smssegmentsinfo8)> | 是 | 回调函数 | **示例:** @@ -846,7 +846,7 @@ getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean): Promise | --------- | ------- | ---- | ----------------------------------------- | | slotId | number | 是 | SIM卡槽ID:
- 0:卡槽1
- 1:卡槽2 | | message | string | 是 | 消息 | -| force7bit | boolean | 是 | 强转7位 | +| force7bit | boolean | 是 | 是否使用7bit编码 | **返回值:** -- GitLab From 16f982c078c14b034cc776a1d8b4314fc2811e93 Mon Sep 17 00:00:00 2001 From: hnz Date: Tue, 19 Jul 2022 12:19:42 +0000 Subject: [PATCH 097/868] =?UTF-8?q?=E3=80=90=E6=96=87=E6=A1=A3=E4=BD=93?= =?UTF-8?q?=E9=AA=8C=E5=AE=98=E3=80=91TS=E7=94=BB=E5=B8=83=E7=BB=84?= =?UTF-8?q?=E4=BB=B6-CanvasGradient=E5=AF=B9=E8=B1=A1=EF=BC=8CaddColorStop?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=80=BC=E5=8D=81=E5=85=AD=E8=BF=9B=E5=88=B6?= =?UTF-8?q?=E9=A2=9C=E8=89=B2=E8=A1=A8=E7=A4=BA=E7=BC=BA=E5=B0=91=E2=80=98?= =?UTF-8?q?#=E2=80=99=E5=AD=97=E7=AC=A6=20Signed-off-by:=20=E8=B4=BA?= =?UTF-8?q?=E5=BF=B5=E5=93=B2=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/arkui-ts/ts-components-canvas-canvasgradient.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-canvasgradient.md b/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-canvasgradient.md index 90c23a3703..2c37265fd0 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-canvasgradient.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-canvasgradient.md @@ -17,7 +17,7 @@ addColorStop(offset: number, color: string): void | 参数 | 类型 | 必填 | 默认值 | 描述 | | -------- | -------- | -------- | -------- | -------- | | offset | number | 是 | 0 | 设置渐变点距离起点的位置占总体长度的比例,范围为0到1。 | - | color | string | 是 | 'ffffff' | 设置渐变的颜色。 | + | color | string | 是 | '#ffffff' | 设置渐变的颜色。 | - 示例 ```ts -- GitLab From 7161247520196c144d6aba9c6ae55acd6959c789 Mon Sep 17 00:00:00 2001 From: hnz Date: Tue, 19 Jul 2022 12:27:57 +0000 Subject: [PATCH 098/868] =?UTF-8?q?=E3=80=90=E6=96=87=E6=A1=A3=E4=BD=93?= =?UTF-8?q?=E9=AA=8C=E5=AE=98=E3=80=91ohos.process=E6=96=87=E4=BB=B6(js-ap?= =?UTF-8?q?is-process.md)=E4=B8=AD=E8=A1=A81-options=EF=BC=8C=E5=A4=9A?= =?UTF-8?q?=E4=BD=99=E7=A9=BA=E6=A0=BC=E6=A0=BC=E5=BC=8F=E6=95=B4=E6=94=B9?= =?UTF-8?q?=20Signed-off-by:=20=E8=B4=BA=E5=BF=B5=E5=93=B2=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/application-dev/reference/apis/js-apis-process.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-process.md b/zh-cn/application-dev/reference/apis/js-apis-process.md index 2487890762..4eb7150237 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-process.md +++ b/zh-cn/application-dev/reference/apis/js-apis-process.md @@ -409,7 +409,7 @@ runCmd(command: string, options?: { timeout : number, killSignal : number | stri | 名称 | 参数类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | timeout | number | 否 | 子进程运行的ms数,当子进程运行时间超出此时间,则父进程发送killSignal信号给子进程。timeout默认为0。 | -| killSignal | number  \| string | 否 | 子进程运行时间超出timeout时,父进程发送killSignal 信号给子进程。killSignal 默认为'SIGTERM'。 | +| killSignal | number \| string | 否 | 子进程运行时间超出timeout时,父进程发送killSignal 信号给子进程。killSignal 默认为'SIGTERM'。 | | maxBuffer | number | 否 | 子进程标准输入输出的最大缓冲区大小,当超出此大小时则终止子进程。maxBuffer默认1024\*1024。 | **返回值:** -- GitLab From 217ebb698926fd90401c7ca28bdb636f52197b6f Mon Sep 17 00:00:00 2001 From: caiminggang Date: Tue, 19 Jul 2022 20:37:28 +0800 Subject: [PATCH 099/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9systemcap=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: caiminggang --- .../apis/js-apis-enterprise-device-manager.md | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md b/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md index 970361fa37..8781cd5a63 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md @@ -22,7 +22,7 @@ enableAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType, callba ohos.permission.MANAGE_ADMIN **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **参数**: @@ -65,7 +65,7 @@ ohos.permission.MANAGE_ADMIN **系统能力:** - SystemCapability.Customation.EnterpriseDeviceManager + SystemCapability.Customization.EnterpriseDeviceManager **参数**: @@ -107,7 +107,7 @@ enableAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType, userId ohos.permission.MANAGE_ADMIN **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **参数**: @@ -153,7 +153,7 @@ disableAdmin(admin: Want, callback: AsyncCallback\): void ohos.permission.MANAGE_ADMIN **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **参数**: @@ -190,7 +190,7 @@ ohos.permission.MANAGE_ADMIN **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **参数**: @@ -226,7 +226,7 @@ disableAdmin(admin: Want, userId?: number): Promise\ ohos.permission.MANAGE_ADMIN **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **参数**: @@ -262,7 +262,7 @@ disableSuperAdmin(bundleName: String, callback: AsyncCallback\): void 以异步方法根据给定的包名将设备超级管理员应用去激活,使用Callback形式返回是否去激活成功。 **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **参数**: @@ -291,7 +291,7 @@ disableSuperAdmin(bundleName: String): Promise\ 以异步方法根据给定的包名将设备超级管理员应用去激活,使用Promise形式返回是否去激活成功。 **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **参数**: @@ -323,7 +323,7 @@ isAdminEnabled(admin: Want, callback: AsyncCallback\): void 以异步方法根据给定的包名和类名判断设备管理员应用是否被激活,使用Callback形式返回是否处于激活状态。 **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **参数**: @@ -356,7 +356,7 @@ isAdminEnabled(admin: Want, userId: number, callback: AsyncCallback\): **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **参数**: @@ -389,7 +389,7 @@ isAdminEnabled(admin: Want, userId?: number): Promise\ 以异步方法根据给定的包名和类名判断设备管理员应用是否被激活,使用Promise形式返回是否处于激活状态。 **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **参数**: @@ -425,7 +425,7 @@ isSuperAdmin(bundleName: String, callback: AsyncCallback\): void 以异步方法根据给定的包名判断设备超级管理员应用是否被激活,使用Callback形式返回是否处于激活状态。 **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **参数**: @@ -454,7 +454,7 @@ isSuperAdmin(bundleName: String): Promise\ 以异步方法根据给定的包名判断设备超级管理员应用是否被激活,使用Promise形式返回是否处于激活状态。 **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **参数**: @@ -486,7 +486,7 @@ getDeviceSettingsManager(callback: AsyncCallback<DeviceSettingsManager>): 获取DeviceSettingsManager对象,使用callback形式返回DeviceSettingsManager对象。 **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **参数:** @@ -523,7 +523,7 @@ getDeviceSettingsManager(): Promise<DeviceSettingsManager> 获取DeviceSettingsManager对象,使用Promise形式返回DeviceSettingsManager对象。 **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **返回值:** @@ -556,7 +556,7 @@ setEnterpriseInfo(admin: Want, enterpriseInfo: EnterpriseInfo, callback: AsyncCa 设置设备管理员应用的企业信息,使用callback形式返回是否设置成功。 **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **参数:** @@ -592,7 +592,7 @@ setEnterpriseInfo(admin: Want, enterpriseInfo: EnterpriseInfo): Promise<boole 设置设备管理员应用的企业信息,使用Promise形式返回是否设置成功。 **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **参数:** @@ -633,7 +633,7 @@ getEnterpriseInfo(admin: Want, callback: AsyncCallback<EnterpriseInfo>): v 获取设备管理员应用的企业信息,使用callback形式返回设备管理员应用的企业信息。 **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **参数:** @@ -666,7 +666,7 @@ getEnterpriseInfo(admin: Want): Promise<EnterpriseInfo> 获取设备管理员应用的企业信息,使用Promise形式返回设备管理员应用的企业信息。 **系统能力:** -SystemCapability.Customation.EnterpriseDeviceManager +SystemCapability.Customization.EnterpriseDeviceManager **参数:** @@ -700,7 +700,7 @@ enterpriseDeviceManager.getEnterpriseInfo(wantTemp).then((result) => { 设备管理员应用的企业信息 **系统能力:** -以下各项对应系统能力均为SystemCapability.Customation.EnterpriseDeviceManager +以下各项对应系统能力均为SystemCapability.Customization.EnterpriseDeviceManager | 名称 | 读写属性 | 类型 | 必填 | 描述 | | ----------- | ---- | ------ | ---- | ----------------- | | name | 只读 | string | 是 | 表示设备管理员应用所属企业的名称。 | @@ -711,7 +711,7 @@ enterpriseDeviceManager.getEnterpriseInfo(wantTemp).then((result) => { 设备管理员应用的管理员类型。 **系统能力:** -以下各项对应系统能力均为SystemCapability.Customation.EnterpriseDeviceManager +以下各项对应系统能力均为SystemCapability.Customization.EnterpriseDeviceManager | 名称 | 默认值 | 说明 | | ----------------- | ---- | ----- | | ADMIN_TYPE_NORMAL | 0x00 | 普通管理员 | -- GitLab From a8b132ec5aae53f4b7c8b0e2d14e5203ed7e71bb Mon Sep 17 00:00:00 2001 From: mayunteng_1 Date: Tue, 19 Jul 2022 20:47:16 +0800 Subject: [PATCH 100/868] =?UTF-8?q?=E6=96=87=E6=A1=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: mayunteng_1 Change-Id: I33606d10ab789fbf39f596b4b6721861e06e694e --- zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md b/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md index 0a34cefa86..6ec2d41663 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md +++ b/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md @@ -25,6 +25,8 @@ on(type: "key", keyOptions: KeyOptions, callback: Callback<KeyOptions>): v 此接口为系统接口。 +**系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer + **参数:** | 参数 | 类型 | 必填 | 说明 | -- GitLab From 4849e3a8db6f239091d9413b7090b69002195771 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=82=96=E5=B8=85?= Date: Tue, 19 Jul 2022 20:54:05 +0800 Subject: [PATCH 101/868] =?UTF-8?q?Signed-off-by:=20=E8=82=96=E5=B8=85=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changes to be committed: modified: zh-cn/application-dev/reference/apis/js-apis-uitest.md --- zh-cn/application-dev/reference/apis/js-apis-uitest.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-uitest.md b/zh-cn/application-dev/reference/apis/js-apis-uitest.md index efe59299e6..a56c386900 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-uitest.md +++ b/zh-cn/application-dev/reference/apis/js-apis-uitest.md @@ -1285,7 +1285,7 @@ async function demo() { ### triggerCombineKeys9+ -triggerCombineKeys(key0: number, key1: number, key2: number): Promise\ +triggerCombineKeys(key0: number, key1: number, key2?: number): Promise\ UiDriver对象通过给定的key值,找到对应组合键并点击。例如,Key值为(2072, 2019)时,UiDriver对象找到组合键并点击ctrl+c。 -- GitLab From e36a3bd0cafde9e420f9cfd7c7d927f96b41c429 Mon Sep 17 00:00:00 2001 From: libing_frank Date: Tue, 19 Jul 2022 20:59:56 +0800 Subject: [PATCH 102/868] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E6=9D=BF=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: libing_frank Change-Id: I576ab9bf71fd8cdc29e27cec736e96688c7098e0 --- zh-cn/OpenHarmony-Overview_zh.md | 2 +- zh-cn/device-dev/dev-board-on-the-master.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/OpenHarmony-Overview_zh.md b/zh-cn/OpenHarmony-Overview_zh.md index 30c90f04b5..28ab028146 100644 --- a/zh-cn/OpenHarmony-Overview_zh.md +++ b/zh-cn/OpenHarmony-Overview_zh.md @@ -355,7 +355,7 @@ OpenHarmony支持如下几种系统类型: | -------- | -------- | -------- | -------- | -------- | -------- | | 标准系统 | 润和DAYU200 | RK3568 | 主要能力:
润和HH-SCDAYU200基于Rockchip RK3568,集成双核心架构GPU以及高效能NPU;板载四核64位Cortex-A55 处理器采用22nm先进工艺,主频高达2.0GHz;支持蓝牙、Wi-Fi、音频、视频和摄像头等功能,拥有丰富的扩展接口,支持多种视频输入输出接口;配置双千兆自适应RJ45以太网口,可满足NVR、工业网关等多网口产品需求。
适配案例:
[DAYU200适配案例](device-dev/porting/porting-dayu200-on_standard-demo.md) | 影音娱乐、智慧出行、智能家居,如烟机、烤箱、跑步机等。 | 代码仓:
[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)
[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)
[vendor_hihope](https://gitee.com/openharmony/vendor_hihope)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | | 小型系统 | Hispark_Taurus | Hi3516DV300 | 主要能力:
Hi3516DV300是新一代Smart HD IP摄像机SOC,集成新一代ISP(Image Signal Processor)、H.265视频压缩编码器、高性能NNIE引擎,在低码率、高画质、智能处理和分析、低功耗等方面有较好的性能。 | 带屏智能硬件,比如带屏冰箱、车机等。 | 代码仓:
[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)
[device_board_hisilicon](https://gitee.com/openharmony/device_board_hisilicon)
[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | -| 轻量系统 | 欧智通V200ZR | BES2600 | 主要能力:
Multi-modal V200Z-R开发板是基于恒玄科技BES2600WM芯片的一款高性能、多功能、高性价比AIoT SoC开发板Multi-modal V200Z-R开发板,单模组集成四核ARM处理器(最高主频1GHz),集成双频WiFi + 双模蓝牙,支持标准的802.11 a/b/g/n/协议,支持BT/BLE 5.2协议,内建多种容量的RAM(最大42MB)和Flash(最大32MB),支持MIPI DSI及CSI,适用于各种AIoT多模态VUI + GUI交互硬件场景。
适配案例:
[V200ZR适配案例](device-dev/porting/porting-bes2600w-on-minisystem-display-demo.md) | 智能硬件、带屏类模组产品,如音箱、手表等。 | 代码仓:
[device_soc_bestechnic](https://gitee.com/openharmony/device_soc_bestechnic)
[device_board_fnlink](https://gitee.com/openharmony/device_board_fnlink)
[vendor_bestechnic](https://gitee.com/openharmony/vendor_bestechnic)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | +| 轻量系统 | Multi-modal V200Z-R | BES2600 | 主要能力:
Multi-modal V200Z-R开发板是基于恒玄科技BES2600WM芯片的一款高性能、多功能、高性价比AIoT SoC开发板Multi-modal V200Z-R开发板,单模组集成四核ARM处理器(最高主频1GHz),集成双频WiFi + 双模蓝牙,支持标准的802.11 a/b/g/n/协议,支持BT/BLE 5.2协议,内建多种容量的RAM(最大42MB)和Flash(最大32MB),支持MIPI DSI及CSI,适用于各种AIoT多模态VUI + GUI交互硬件场景。
适配案例:
[Multi-modal V200Z-R适配案例](device-dev/porting/porting-bes2600w-on-minisystem-display-demo.md) | 智能硬件、带屏类模组产品,如音箱、手表等。 | 代码仓:
[device_soc_bestechnic](https://gitee.com/openharmony/device_soc_bestechnic)
[device_board_fnlink](https://gitee.com/openharmony/device_board_fnlink)
[vendor_bestechnic](https://gitee.com/openharmony/vendor_bestechnic)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | ## 快速入门 diff --git a/zh-cn/device-dev/dev-board-on-the-master.md b/zh-cn/device-dev/dev-board-on-the-master.md index adadf6e9db..20237f39f2 100644 --- a/zh-cn/device-dev/dev-board-on-the-master.md +++ b/zh-cn/device-dev/dev-board-on-the-master.md @@ -26,7 +26,7 @@ | 开发板型号 | 芯片型号 | 主要能力及适配案例 | 典型应用场景 | 开发板代码仓及社区每日构建版本获取地址 | | ---------- | -------- | -------- | ------------ | -------------------------------------- | |小熊派BearPi-HM Nano|Hi3861|主要能力:
BearPi-HM_Nano开发板是一块专门为OpenHarmony设计的开发板,板载高度集成的2.4GHz WiFi SoC芯片Hi3861,并板载NFC电路及标准的E53接口,标准的E53接口可扩展智能加湿器、智能台灯、智能安防、智能烟感等案例。|智慧路灯、智慧物流、人体红外等连接类设备。|代码仓:
[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)
[device_board_bearpi](https://gitee.com/openharmony/device_board_bearpi)
[vendor_bearpi](https://gitee.com/openharmony/vendor_bearpi)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| -|欧智通V200ZR|BES2600|主要能力:
Multi-modal V200Z-R开发板是基于恒玄科技BES2600WM芯片的一款高性能、多功能、高性价比AIoT SoC开发板;开发板单模组集成四核ARM处理器(最高主频1GHz),集成双频WiFi + 双模蓝牙,支持标准的802.11 a/b/g/n/协议,支持BT/BLE 5.2协议,内建多种容量的RAM(最大42MB)和Flash(最大32MB),支持MIPI DSI及CSI,适用于各种AIoT多模态VUI + GUI交互硬件场景。
适配案例:
[V200ZR适配案例](porting/porting-bes2600w-on-minisystem-display-demo.md)|智能硬件、带屏类模组产品,如音箱、手表等。|代码仓:
[device_soc_bestechnic](https://gitee.com/openharmony/device_soc_bestechnic)
[device_board_fnlink](https://gitee.com/openharmony/device_board_fnlink)
[vendor_bestechnic](https://gitee.com/openharmony/vendor_bestechnic)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | +|Multi-modal V200Z-R|BES2600|主要能力:
Multi-modal V200Z-R开发板是基于恒玄科技BES2600WM芯片的一款高性能、多功能、高性价比AIoT SoC开发板;开发板单模组集成四核ARM处理器(最高主频1GHz),集成双频WiFi + 双模蓝牙,支持标准的802.11 a/b/g/n/协议,支持BT/BLE 5.2协议,内建多种容量的RAM(最大42MB)和Flash(最大32MB),支持MIPI DSI及CSI,适用于各种AIoT多模态VUI + GUI交互硬件场景。
适配案例:
[Multi-modal V200Z-R适配案例](porting/porting-bes2600w-on-minisystem-display-demo.md)|智能硬件、带屏类模组产品,如音箱、手表等。|代码仓:
[device_soc_bestechnic](https://gitee.com/openharmony/device_soc_bestechnic)
[device_board_fnlink](https://gitee.com/openharmony/device_board_fnlink)
[vendor_bestechnic](https://gitee.com/openharmony/vendor_bestechnic)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | |朗国LANGO200|ASR582X|主要能力:
LANGO200 IOT开发板,集成了高性能的WIFI-BLE双模芯片ASR5822、外部存储芯片、语音播放芯片以及模数转换等,同时支持SPI等IOT设备常用外设接口,可外扩OLED显示屏、红外遥控等。
适配案例:
[LANGO200适配案例](porting/porting-asr582x-combo-demo.md)|智能家居、连接类模组。|代码仓:
[device_soc_asrmicro](https://gitee.com/openharmony/device_soc_asrmicro)
[device_board_lango](https://gitee.com/openharmony/device_board_lango)
[vendor_asrmicro](https://gitee.com/openharmony/vendor_asrmicro)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | |汇顶GR5515-STARTER-KIT|GR5515|主要能力:
支持Bluetooth 5.1的单模低功耗蓝牙SoC,多功能按键和LED指示灯。|智能硬件,如手表、手环、价格类标签。|代码仓:
[device_soc_goodix](https://gitee.com/openharmony/device_soc_goodix)
[device_board_goodix](https://gitee.com/openharmony/device_board_goodix)
[vendor_goodix](https://gitee.com/openharmony/vendor_goodix)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds| |Niobe407|STM32F407IGT6|主要能力:
Niobe407开发板基于STM32F407芯片,该芯片集成Arm Cortex-M4 CPU,带 FPU,自适应实时加速器,频率高达 168 MHz。
适配案例:
[Niobe407适配案例](porting/porting-stm32f407-on-minisystem-eth.md)|智慧交通、工业控制等。|代码仓:
[device_soc_st](https://gitee.com/openharmony/device_soc_st)
[device_board_talkweb](https://gitee.com/openharmony/device_board_talkweb)
[vendor_talkweb](https://gitee.com/openharmony/vendor_talkweb)
社区每日构建版本获取地址:
http://ci.openharmony.cn/dailys/dailybuilds | -- GitLab From 96eb9bd6ffb95f4d8d02087e26a5d9c6fecfa516 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=82=96=E5=B8=85?= Date: Tue, 19 Jul 2022 21:07:55 +0800 Subject: [PATCH 103/868] =?UTF-8?q?Signed-off-by:=20=E8=82=96=E5=B8=85=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changes to be committed: modified: zh-cn/application-dev/reference/apis/js-apis-uitest.md --- zh-cn/application-dev/reference/apis/js-apis-uitest.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-uitest.md b/zh-cn/application-dev/reference/apis/js-apis-uitest.md index a56c386900..1d2473acf7 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-uitest.md +++ b/zh-cn/application-dev/reference/apis/js-apis-uitest.md @@ -1865,6 +1865,8 @@ async function demo() { ## WindowMode9+ +**系统能力**:SystemCapability.Test.UiTest + 窗口的窗口模式。 | 名称 | 说明 | @@ -1872,4 +1874,4 @@ async function demo() { | FULLSCREEN | 全屏模式。 | | PRIMARY | 主窗口。 | | SECONDARY | 第二窗口。 | -| FLOAT | 浮动窗口。 | +| FLOATING | 浮动窗口。 | -- GitLab From 26fe252b2643216689fa116d036e2be45cbdff17 Mon Sep 17 00:00:00 2001 From: raoxian Date: Wed, 20 Jul 2022 09:51:33 +0800 Subject: [PATCH 104/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9storage-statistics?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: raoxian --- .../reference/apis/js-apis-storage-statistics.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-storage-statistics.md b/zh-cn/application-dev/reference/apis/js-apis-storage-statistics.md index 487233c54b..11c4b540ab 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-storage-statistics.md +++ b/zh-cn/application-dev/reference/apis/js-apis-storage-statistics.md @@ -264,9 +264,10 @@ getCurrentBundleStats(callback: AsyncCallback<BundleStats>): void ## BundleStats9+ +### 属性 + **系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.StorageService.SpatialStatistics -### 属性 该接口为系统接口,三方应用不支持调用 @@ -521,9 +522,10 @@ getUserStorageStats(userId: number, callback:AsyncCallback<StorageStats>): ## StorageStats9+ +### 属性 + **系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.StorageService.SpatialStatistics -### 属性 该接口为系统接口,三方应用不支持调用 -- GitLab From 4c1ae2d5305649d8c79e58bb4b8319ba698c3952 Mon Sep 17 00:00:00 2001 From: xu-rui-w Date: Wed, 20 Jul 2022 10:10:42 +0800 Subject: [PATCH 105/868] =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=95=B4=E4=BF=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xu-rui-w --- .../reference/apis/js-apis-image.md | 136 ++++++++++++++++-- 1 file changed, 128 insertions(+), 8 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-image.md b/zh-cn/application-dev/reference/apis/js-apis-image.md index fb19c79366..43cbc6de32 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-image.md +++ b/zh-cn/application-dev/reference/apis/js-apis-image.md @@ -925,6 +925,33 @@ let path = this.context.getApplicationContext().fileDirs + "test.jpg"; const imageSourceApi = image.createImageSource(path); ``` +## image.createImageSource9+ + +createImageSource(uri: string, options: SourceOptions): ImageSource + +通过传入的uri创建图片源实例。 + +**系统能力:** SystemCapability.Multimedia.Image.ImageSource + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ------------------------------- | ---- | ----------------------------------- | +| uri | string | 是 | 图片路径,当前仅支持应用沙箱路径。 | +| options | [SourceOptions](#SourceOptions) | 是 | 图片属性,包括图片序号与默认属性值。| + +**返回值:** + +| 类型 | 说明 | +| --------------------------- | -------------------------------------------- | +| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 | + +**示例:** + +```js +、、、、、、、、、、、 +``` + ## image.createImageSource7+ createImageSource(fd: number): ImageSource @@ -948,7 +975,34 @@ createImageSource(fd: number): ImageSource **示例:** ```js -const imageSourceApi = image.createImageSource(0) +const imageSourceApi = image.createImageSource(0); +``` + +## image.createImageSource9+ + +createImageSource(fd: number, options: SourceOptions): ImageSource + +通过传入文件描述符来创建图片源实例。 + +**系统能力:** SystemCapability.Multimedia.Image.ImageSource + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ------------------------------- | ---- | ----------------------------------- | +| fd | number | 是 | 文件描述符fd。 | +| options | [SourceOptions](#SourceOptions) | 是 | 图片属性,包括图片序号与默认属性值。| + +**返回值:** + +| 类型 | 说明 | +| --------------------------- | -------------------------------------------- | +| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 | + +**示例:** + +```js +。。。。。。。。。。。。。。。。。。。。。 ``` ## image.createImageSource9+ @@ -972,9 +1026,62 @@ const buf = new ArrayBuffer(96); const imageSourceApi = image.createImageSource(buf); ``` +## image.createImageSource9+ + +createImageSource(buf: ArrayBuffer, options: SourceOptions): ImageSource + +通过缓冲区创建图片源实例。 + +**系统能力:** SystemCapability.Multimedia.Image.ImageSource + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | -------------------------------- | ---- | ------------------------------------ | +| buf | ArrayBuffer | 是 | 图像缓冲区数组。 | +| options | [SourceOptions](#SourceOptions) | 是 | 图片属性,包括图片序号与默认属性值。 | + +**返回值:** + +| 类型 | 说明 | +| --------------------------- | -------------------------------------------- | +| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 | + +**示例:** + +```js +......................... +``` + +## image.CreateIncrementalSource9+ + +CreateIncrementalSource(buf: ArrayBuffer): ImageSource + +通过缓冲区以增量的方式创建图片源实例。 + +**系统能力:** SystemCapability.Multimedia.Image.ImageSource + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ------------| ---- | ----------| +| buf | ArrayBuffer | 是 | 增量数据。| + +**返回值:** + +| 类型 | 说明 | +| --------------------------- | --------------------------------- | +| [ImageSource](#imagesource) | 返回图片源,失败时返回undefined。 | + +**示例:** + +```js +。。。。。。。。。。。。。。。。。。 +``` + ## image.CreateIncrementalSource9+ -function CreateIncrementalSource(buf: ArrayBuffer, options?: SourceOptions): ImageSource +CreateIncrementalSource(buf: ArrayBuffer, options?: SourceOptions): ImageSource 通过缓冲区以增量的方式创建图片源实例。 @@ -1211,7 +1318,7 @@ imageSourceApi.modifyImageProperty("ImageWidth", "abc") ### modifyImageProperty9+ -modifyImageProperty(key: string, value: string, callback: AsyncCallback): void +modifyImageProperty(key: string, value: string, callback: AsyncCallback\): void 通过指定的键修改图片属性的值,callback形式返回结果。 @@ -1266,7 +1373,7 @@ imageSourceIncrementalSApi.updateData(array, false, 0, 10).then(data => { ### updateData9+ -updateData(buf: ArrayBuffer, isFinished: boolean, value: number, length: number, callback: AsyncCallback): void +updateData(buf: ArrayBuffer, isFinished: boolean, value: number, length: number, callback: AsyncCallback\): void 更新增量数据,callback形式返回结果。 @@ -1423,7 +1530,7 @@ createImagePacker(): ImagePacker 创建ImagePacker实例。 -**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver +**系统能力:** SystemCapability.Multimedia.Image.ImagePacker **返回值:** @@ -2064,6 +2171,19 @@ img.release().then(() =>{ | CENTER_CROP | 1 | 缩放图像以填充目标图像区域并居中裁剪区域外的效果。 | | FIT_TARGET_SIZE | 2 | 图像适合目标尺寸的效果。 | +## SourceOptions9+ + +ImageSource的初始化选项。 + +**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------------------------ | ---------------------------------- | ---- | ---- | ------------------ | +| sourceDensity9+ | number | 是 | 是 | ImageSource的密度。| +| sourcePixelFormat8+ | [PixelMapFormat](#pixelmapformat7) | 是 | 是 | 图片像素格式。 | +| sourceSize8+ | [Size](#size) | 是 | 是 | 图像像素大小。 | + + ## InitializationOptions8+ PixelMap的初始化选项。 @@ -2112,9 +2232,9 @@ PixelMap的初始化选项。 **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.ImagePacker -| 名称 | 类型 | 可读 | 可写 | 说明 | -| ------- | ------ | ---- | ---- | -------------- | -| format | string | 是 | 是 | 目标格式。 | +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------- | ------ | ---- | ---- | --------------------------------------------------- | +| format | string | 是 | 是 | 目标格式。 | | quality | number | 是 | 是 | JPEG编码中设定输出图片质量的参数,取值范围为1-100。 | ## GetImagePropertyOptions7+ -- GitLab From 5ea7e1d2a26593b57dd7e85d4a2ea51aea3b895d Mon Sep 17 00:00:00 2001 From: luoying_ace_admin Date: Wed, 20 Jul 2022 10:50:59 +0800 Subject: [PATCH 106/868] revise docs Signed-off-by: luoying_ace_admin --- .../application-dev/reference/apis/js-apis-prompt.md | 12 ++++++------ .../application-dev/reference/apis/js-apis-router.md | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-prompt.md b/zh-cn/application-dev/reference/apis/js-apis-prompt.md index 0096061ab2..138c08d3cb 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-prompt.md +++ b/zh-cn/application-dev/reference/apis/js-apis-prompt.md @@ -46,7 +46,7 @@ showToast(options: ShowToastOptions): void | 名称 | 类型 | 必填 | 说明 | | -------- | -------------- | ---- | ---------------------------------------- | -| message | string | 是 | 显示的文本信息。 | +| message | string\| [Resource](../../ui/ts-types.md#resource类型)9+ | 是 | 显示的文本信息。 | | duration | number | 否 | 默认值1500ms,建议区间:1500ms-10000ms,若小于1500ms则取默认值。 | | bottom | <length> | 否 | 设置弹窗边框距离屏幕底部的位置。 | @@ -150,8 +150,8 @@ showDialog(options: ShowDialogOptions, callback: AsyncCallback<ShowDialogSucc | 名称 | 类型 | 必填 | 说明 | | ------- | ------ | ---- | ---------------------------------------- | -| title | string | 否 | 标题文本。 | -| message | string | 否 | 内容文本。 | +| title | string\| [Resource](../../ui/ts-types.md#resource类型)9+ | 否 | 标题文本。 | +| message | string\| [Resource](../../ui/ts-types.md#resource类型)9+ | 否 | 内容文本。 | | buttons | Array | 否 | 对话框中按钮的数组,结构为:{text:'button', color: '\#666666'},支持1-3个按钮。其中第一个为positiveButton;第二个为negativeButton;第三个为neutralButton。 | ## ShowDialogSuccessResponse @@ -260,7 +260,7 @@ showActionMenu(options: ActionMenuOptions): Promise<ActionMenuSuccessResponse | 名称 | 类型 | 必填 | 说明 | | ------- | ------ | ---- | ---------------------------------------- | -| title | string | 否 | 标题文本。 | +| title | string\| [Resource](../../ui/ts-types.md#resource类型)9+ | 否 | 标题文本。 | | buttons | Array<[Button](#button)> | 是 | 菜单中菜单项按钮的数组,结构为:{text:'button', color: '\#666666'},支持1-6个按钮。大于6个按钮时弹窗不显示。 | ## ActionMenuSuccessResponse @@ -281,6 +281,6 @@ showActionMenu(options: ActionMenuOptions): Promise<ActionMenuSuccessResponse | 名称 | 类型 | 必填 | 说明 | | ----- | ------ | ---- | ------------------------ | -| text | string | 是 | 按钮文本内容。 | -| color | string | 是 | 按钮文本颜色。 | +| text | string\| [Resource](../../ui/ts-types.md#resource类型)9+ | 是 | 按钮文本内容。 | +| color | string\| [Resource](../../ui/ts-types.md#resource类型)9+ | 是 | 按钮文本颜色。 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-router.md b/zh-cn/application-dev/reference/apis/js-apis-router.md index 51f8738c2f..b1c6a9f2d1 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-router.md +++ b/zh-cn/application-dev/reference/apis/js-apis-router.md @@ -429,7 +429,7 @@ getParams(): Object 路由跳转选项。 -**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Lite。 +**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.FULL。 | 名称 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | @@ -444,7 +444,7 @@ getParams(): Object 路由跳转模式。 -**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Lite。 +**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.FULL。 | 名称 | 描述 | | -------- | -------- | -- GitLab From ca8f442c0f6ed2070eac54f2e2d672ecdc5864a4 Mon Sep 17 00:00:00 2001 From: wusongqing Date: Wed, 20 Jul 2022 03:04:51 +0000 Subject: [PATCH 107/868] =?UTF-8?q?=E3=80=90=E6=96=87=E6=A1=A3=E4=BD=93?= =?UTF-8?q?=E9=AA=8C=E5=AE=98=E3=80=91js-apis-continuation-continuationMan?= =?UTF-8?q?ager=E6=B7=BB=E5=8A=A0promise=E8=BF=94=E5=9B=9E=E5=80=BC?= =?UTF-8?q?=E6=8F=8F=E8=BF=B0=20Signed-off-by:=20wusongqing=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s-apis-continuation-continuationManager.md | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-continuation-continuationManager.md b/zh-cn/application-dev/reference/apis/js-apis-continuation-continuationManager.md index 5153a98a31..6f493563be 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-continuation-continuationManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-continuation-continuationManager.md @@ -1,11 +1,11 @@ # continuationManager +continuationManager模块提供了流转/协同入口管理服务能力,包括连接/取消流转管理服务,注册/解注册设备连接变化监听,拉起互联面板,更新连接状态。 -> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> **说明:** +> > 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 -continuationManager模块提供了流转/协同入口管理服务能力,包括连接/取消流转管理服务,注册/解注册设备连接变化监听,拉起互联面板,更新连接状态。 - ## 导入模块 ```js @@ -86,6 +86,12 @@ register(options?: ContinuationExtraParams): Promise\; | -------- | -------- | -------- | -------- | | options | [ContinuationExtraParams](js-apis-continuation-continuationExtraParams.md) | 否 | 过滤可选择设备列表的额外参数,该参数可缺省| +**返回值:** + +| 类型 | 说明 | +| ------------------------- | ------------------ | +| Promise\ | Promise形式返回流转管理服务连接后生成的token。 | + **示例:** ```js @@ -302,6 +308,12 @@ startDeviceManager(token: number, options?: ContinuationExtraParams): Promise\ | Promise形式返回接口调用结果。 | + **示例:** ```js @@ -363,6 +375,12 @@ updateConnectStatus(token: number, deviceId: string, status: DeviceConnectState) | deviceId | string | 是 | 设备ID。 | | status | [DeviceConnectState](#deviceconnectstate) | 是 | 设备连接状态。 | +**返回值:** + +| 类型 | 说明 | +| ------------------------- | ------------------ | +| Promise\ | Promise形式返回接口调用结果。 | + **示例:** ```js @@ -417,6 +435,12 @@ unregister(token: number): Promise\; | -------- | -------- | -------- | -------- | | token | number | 是 | 注册后的token。 | +**返回值:** + +| 类型 | 说明 | +| ------------------------- | ------------------ | +| Promise\ | Promise形式返回接口调用结果。 | + **示例:** ```js -- GitLab From 3e67ea50c8c2d9528712ec4db016526babbf21de Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Wed, 20 Jul 2022 11:36:08 +0800 Subject: [PATCH 108/868] update docs Signed-off-by: Annie_wang --- .../driver/driver-platform-adc-des.md | 263 ++++++++---------- .../driver/driver-platform-dac-des.md | 106 ++++--- .../figures/ADC_physical_connection.png | Bin 4384 -> 5473 bytes .../driver/figures/using-ADC-process.png | Bin 5065 -> 6439 bytes 4 files changed, 159 insertions(+), 210 deletions(-) diff --git a/en/device-dev/driver/driver-platform-adc-des.md b/en/device-dev/driver/driver-platform-adc-des.md index f7075aa1d0..76c73fb3e9 100644 --- a/en/device-dev/driver/driver-platform-adc-des.md +++ b/en/device-dev/driver/driver-platform-adc-des.md @@ -1,64 +1,79 @@ -# ADC +# ADC -## Overview +## Overview + +### Function An analog-to-digital converter (ADC) is a device that converts analog signals into digital signals. The ADC APIs provide a set of common functions for ADC data transfer, including: -- Opening or closing an ADC device +- Opening or closing an ADC device +- Obtaining the analog-to-digital (AD) conversion result + +### Basic Concepts + +The ADC converts analog parameters into digital parameters for easy storage and computing. The technical specifications of the ADC include the following: + +- Resolution + + The number of binary bits that can be converted by an ADC. A greater number of bits indicates a higher resolution. +- Conversion error + + Difference between the actual and theoretical digital values output by an ADC. It is expressed by a multiple of the least significant bit. Generally, the maximum output error is used. +- Transition time + + Time required by an ADC to perform a complete conversion. + +### Working Principles + +In the Hardware Driver Foundation (HDF), the ADC module uses the unified service mode for API adaptation. In this mode, a service is used as the ADC manager to handle external access requests in a unified manner. The unified service mode applies when the system has multiple device objects of the same type. If the independent service mode is used in this case, more device nodes need to be configured and more memory resources will be consumed. + +The ADC module is divided into the following layers: + +- Interface layer: provides APIs for opening or closing a device and writing data. +- Core layer: provides the capabilities of binding, initializing, and releasing devices. +- Adaptation layer: implements driver-specific functions. + +In addition to the power and ground cables, the ADC requires only one cable to connect to the target device. The figure below shows the physical connection. -- Obtaining the analog-to-digital (AD) conversion result +**Figure 1** ADC physical connection - **Figure 1** ADC physical connection - - ![](figures/ADC_physical_connection.png "ADC_physical_connection") -## Available APIs +![](figures/ADC_physical_connection.png "ADC_physical_connection") + +### Constraints + +Currently, the ADC module supports only the kernels (LiteOS) of mini and small systems. + +## Usage Guidelines + +### When to Use + +An ADC is usually used to convert an analog voltage into a digital parameter, for example, it is used with a microphone to collect sound, used with an NTC resistor to measure temperature, or converts the output of analog sensors into digital parameters. + +### Available APIs + +The table below describes the APIs of the ADC module. For more details, see API Reference. **Table 1** APIs of the ADC driver - - - - - - - - - - - - - - - - - - -

Category

-

API

-

Description

-

Managing ADC devices

-

AdcOpen

-
Opens an ADC device.

-

AdcClose

-

Closes an ADC device.

-

Obtaining the conversion result

-

AdcRead

-

Reads the AD conversion result.

-
- -## Usage Guidelines - -### How to Use - -The figure below illustrates how to use the APIs. - - **Figure 2** Using ADC driver APIs - -![](figures/using-ADC-process.png "using-ADC-process.png") - -### Opening an ADC Device + +| API | Description | +| -------- | ---------------- | +| AdcOpen | Opens an ADC device. | +| AdcClose | Closes an ADC device. | +| AdcRead | Obtains the AD conversion result.| + +### How to Develop + +The figure below shows the general development process. + + **Figure 2** Process of using ADC APIs + +![](figures/using-ADC-process.png) + + +#### Opening an ADC Device. Call **AdcOpen** to open an ADC device. @@ -68,43 +83,20 @@ DevHandle AdcOpen(int16_t number); **Table 2** Description of AdcOpen - - - - - - - - - - - - - - - - - - - -

Parameter

-

Description

-

number

-

ADC device number.

-

Return Value

-

Description

-

NULL

-

Failed to open the ADC device.

-

Device handle

-

Handle of the ADC device opened.

-
- -For example, open device 1 of the two ADCs (numbered 0 and 1) in the system. + +| Parameter | Description | +| ---------- | ----------------- | +| number | ADC device number. | +| **Return Value**| **Description** | +| NULL | The operation failed. | +| Device handle | The operation is successful. The handle of the ADC device opened is returned.| + +Example: Open device 1 of the two ADCs (numbered 0 and 1) in the system. ```c DevHandle adcHandle = NULL; /* ADC device handle / -/* Open the ADC device. */ +/* Open ADC device 1. */ adcHandle = AdcOpen(1); if (adcHandle == NULL) { HDF_LOGE("AdcOpen: failed\n"); @@ -112,7 +104,7 @@ if (adcHandle == NULL) { } ``` -### Obtaining the AD Conversion Result +#### Obtaining the AD Conversion Result ```c int32_t AdcRead(DevHandle handle, uint32_t channel, uint32_t *val); @@ -120,48 +112,30 @@ int32_t AdcRead(DevHandle handle, uint32_t channel, uint32_t *val); **Table 3** Description of AdcRead - - - - - - - - - - - - - - - - - - - - - - - - - -

Parameter

-

Description

-

handle

-

ADC device handle.

-

channel

-

ADC device channel number.

-

val

-

AD conversion result.

-

Return Value

-

Description

-

0

-

The operation is successful.

-

Negative number

-

Failed to obtain the AC conversion result.

-
- -### Closing an ADC Device + +| Parameter | Description | +| ---------- | -------------- | +| handle | ADC device handle. | +| channel | ADC device channel number. | +| val | Pointer to the AD conversion result. | +| **Return Value**| **Description**| +| 0 | The operation is successful. | +| Negative value | The operation failed. | + +Example: Obtain the AD conversion result of channel 1. + +```c +uint32_t value; +int32_t ret; + +ret = AdcRead(adcHandle, 1, &value); +if (ret != 0) { + HDF_LOGE("ADC read fail!\n"); + return; +} +``` + +#### Closing an ADC Device Call **AdcClose** to close the ADC device after the ADC communication is complete. ```c @@ -169,31 +143,12 @@ void AdcClose(DevHandle handle); ``` **Table 4** Description of AdcClose - - - - - - - - - - - - - - - - -

Parameter

-

Description

-

handle

-

ADC device handle.

-

Return Value

-

Description

-

None

-

No value is returned if the ADC device is closed.

-
+ +| Parameter | Description | +| ------ | ----------- | +| handle | ADC device handle.| +| **Return Value**| **Description** | +| N/A | N/A | Example: @@ -201,9 +156,9 @@ Example: AdcClose(adcHandle); /* Close the ADC device. */ ``` -## Example +### Example -This following example shows how to use ADC APIs to manage an ADC device on a Hi3516D V300 development board. +This following example shows how to use ADC APIs to manage an ADC device on a Hi3516D V300 board. The basic hardware information is as follows: @@ -242,7 +197,7 @@ static int32_t TestCaseAdc(void) for (i = 0; i < 30; i++) { ret = AdcRead(adcHandle, ADC_CHANNEL_NUM, &readBuf[i]); if (ret != HDF_SUCCESS) { - HDF_LOGE("%s: tp ADC write reg fail!:%d", __func__, ret); + HDF_LOGE("%s: Failed to read ADC!:%d", __func__, ret); AdcClose(adcHandle); return -1; } diff --git a/en/device-dev/driver/driver-platform-dac-des.md b/en/device-dev/driver/driver-platform-dac-des.md index 45cd858317..4cffd91b86 100644 --- a/en/device-dev/driver/driver-platform-dac-des.md +++ b/en/device-dev/driver/driver-platform-dac-des.md @@ -1,6 +1,5 @@ # DAC - ## Overview ### DAC @@ -8,11 +7,9 @@ A digit-to-analog converter (DAC) is a device that converts a digital signal into an analog signal in electronics. The DAC APIs provide a set of methods for DAC data transfer, including: - - Opening or closing a DAC device - Setting the target digital-to-analog (DA) value - ### Basic Concepts The DAC module provides the output channel for the process control computer system. It connects to the executor to implement automatic control of the production process. It is also an important module in the analog-to-digital converter using feedback technologies. @@ -35,29 +32,31 @@ The DAC module provides the output channel for the process control computer syst ### Working Principles -In the Hardware Driver Foundation (HDF), the DAC module uses the unified service mode for API adaptation. In this mode, a device service is used as the DAC manager to handle access requests from the devices of the same type in a unified manner. The unified service mode applies to the scenario where there are many device objects of the same type. If the independent service mode is used, more device nodes need to be configured and memory resources will be consumed by services. The figure below shows the unified service mode. +In the Hardware Driver Foundation (HDF), the DAC module uses the unified service mode for API adaptation. In this mode, a service is used as the DAC manager to handle external access requests in a unified manner. The unified service mode applies when the system has multiple device objects of the same type. If the independent service mode is used in this case, more device nodes need to be configured and more memory resources will be consumed. The figure below shows the unified service mode. The DAC module is divided into the following layers: -- The interface layer provides APIs for opening or closing a device and writing data. -- The core layer provides the capabilities of binding, initializing, and releasing devices. -- The adaptation layer implements other functions. ->![](../public_sys-resources/icon-note.gif) **NOTE**
->The core layer can call the functions of the interface layer and uses the hook to call functions of the adaptation layer. In this way, the adaptation layer can indirectly call the functions of the interface layer, but the interface layer cannot call the functions of the adaptation layer. +- Interface layer: provides APIs for opening or closing a device and writing data. +- Core layer: provides the capabilities of binding, initializing, and releasing devices. +- Adaptation layer: implements driver-specific functions. + +>![](../public_sys-resources/icon-note.gif) **NOTE** +> +> The core layer can call the functions of the interface layer and uses a hook to call functions of the adaptation layer. In this way, the adaptation layer can indirectly call the functions of the interface layer, but the interface layer cannot call the functions of the adaptation layer. **Figure 1** Unified service mode -![](figures/unified-service-mode.png "DAC-unified-service-mode") +![](figures/unified-service-mode.png "DAC unified service mode") ### Constraints - Currently, the DAC module supports only the kernels (LiteOS) of mini and small systems. +Currently, the DAC module supports only the kernels (LiteOS) of mini and small systems. -## Development Guidelines +## Usage Guidelines ### When to Use - The DAC module converts digital signals into analog signals in the form of current, voltage, or charge. It is mainly used in audio devices. Audio players and headsets use the DAC module as the digital-to-analog conversion channels. +The DAC module converts digital signals into analog signals in the form of current, voltage, or charge. It is mainly used in audio devices. Audio players and headsets use the DAC module as the digital-to-analog conversion channels. ### Available APIs @@ -65,45 +64,44 @@ The table below describes the APIs of the DAC module. For more details, see API **Table 1** DAC driver APIs -| API | Description | -| :------------------------------------------------------------| :------------ | -| DevHandle DacOpen(uint32_t number) | Opens a DAC device. | -| void DacClose(DevHandle handle) | Closes a DAC device. | -| int32_t DacWrite(DevHandle handle, uint32_t channel, uint32_t val) | Sets a target DA value. | +| API | Description | +| ------------------------------------------------------------------ | ------------ | +| DevHandle DacOpen(uint32_t number) | Opens a DAC device. | +| void DacClose(DevHandle handle) | Closes a DAC device. | +| int32_t DacWrite(DevHandle handle, uint32_t channel, uint32_t val) | Sets a target DA value.| ### How to Develop -The figure below illustrates how to use the APIs. +The figure below shows the general development process. + +**Figure 2** Process of using DAC APIs -**Figure 2** Using DAC driver APIs -![](figures/using-DAC-process.png "using-DAC-process.png") +![](figures/using-DAC-process.png) #### Opening a DAC Device Call **DacOpen()** to open a DAC device before performing the DA conversion. -``` +```c++ DevHandle DacOpen(uint32_t number); ``` **Table 2** Description of DacOpen -| **Parameter** | Description | -| ---------- | ----------------- | -| number | DAC device number. | -| **Return Value**| **Description** | -| NULL | Failed to open the DAC device. | -| Device handle | Handle of the DAC device opened.| - - +| Parameter | Description | +| --------- | ---------------- | +| number | DAC device number. | +| **Return Value**| **Description** | +| NULL | The operation failed. | +| Device handle | The operation is successful. The handle of the DAC device opened is returned.| -Open device 1 of the two ADC devices (numbered 0 and 1) in the system. +Example: Open device 1 of the two DAC devices (numbered 0 and 1) in the system. -``` +```c++ DevHandle dacHandle = NULL; /* DAC device handle / -/* Open the DAC device. */ +/* Open DAC device 1. */ dacHandle = DacOpen(1); if (dacHandle == NULL) { HDF_LOGE("DacOpen: failed\n"); @@ -113,23 +111,22 @@ if (dacHandle == NULL) { #### Setting a Target DA Value -``` +```c++ int32_t DacWrite(DevHandle handle, uint32_t channel, uint32_t val); ``` **Table 3** Description of DacWrite - -| **Parameter** | Description | -| ---------- | -------------- | -| handle | DAC device handle. | -| channel | DAC channel number. | -| val | DA value to set. | +| Parameter | Description | +| --------- | ------------ | +| handle | DAC device handle. | +| channel | DAC channel number.| +| val | DA value to set. | | **Return Value**| **Description**| -| 0 | The operation is successful. | -| Negative value | The operation failed. | +| 0 | The operation is successful. | +| Negative value | The operation failed. | -``` +```c++ /* Write the target DA value through the DAC_CHANNEL_NUM channel. */ ret = DacWrite(dacHandle, DAC_CHANNEL_NUM, val); if (ret != HDF_SUCCESS) { @@ -142,28 +139,25 @@ int32_t DacWrite(DevHandle handle, uint32_t channel, uint32_t val); #### Closing a DAC Device After the DAC communication is complete, call **DacClose()** to close the DAC device. -``` +```c++ void DacClose(DevHandle handle); ``` **Table 4** Description of DacClose - -| **Parameter** | Description | -| ---------- | -------------- | -| handle | DAC device handle. | +| Parameter | Description | +| --------- | ------------ | +| handle | DAC device handle. | | **Return Value**| **Description**| -| void | - | - - +| void | - | Example: -``` +```c++ DacClose(dacHandle); /* Close the DAC device. */ ``` -## Development Example +## Example The procedure is as follows: @@ -173,8 +167,8 @@ The procedure is as follows: You can obtain the operation result by printing the log information based on the **val**. -``` -#include "hdmi_if.h" /* Header file for DAC APIs */ +```c++ +#include "dac_if.h" /* Header file for DAC APIs */ #include "hdf_log.h" /* Header file for log APIs */ /* Define device 0, channel 1. */ @@ -209,4 +203,4 @@ static int32_t TestCaseDac(void) return 0; } -``` \ No newline at end of file +``` diff --git a/en/device-dev/driver/figures/ADC_physical_connection.png b/en/device-dev/driver/figures/ADC_physical_connection.png index da94f3b486edb6b269ef341b12b1816f23036c32..d3cddfb92b63afc8ae1b3f8d02e4ac9c7aeb9edd 100644 GIT binary patch literal 5473 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 literal 4384 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 diff --git a/en/device-dev/driver/figures/using-ADC-process.png b/en/device-dev/driver/figures/using-ADC-process.png index 6aebca249fa9d7948eca5f0047cea6ac4074c731..691adc1e3454170d4c0f16f60739560ef2e3ea9f 100644 GIT binary patch literal 6439 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 YdY)$xKYnFIINTu82J34UY1oAQ7j-UnqyPW_ literal 5065 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 Date: Wed, 20 Jul 2022 13:59:28 +0800 Subject: [PATCH 109/868] add development-intro (EN) against 5832 and delete apis Signed-off-by: wusongqing --- .../reference/apis/Readme-EN.md | 45 +-- .../reference/apis/development-intro.md | 51 ++++ .../reference/apis/js-apis-abilityManager.md | 268 ------------------ .../apis/js-apis-application-missionInfo.md | 28 -- .../apis/js-apis-uripermissionmanager.md | 86 ------ 5 files changed, 76 insertions(+), 402 deletions(-) create mode 100644 en/application-dev/reference/apis/development-intro.md delete mode 100644 en/application-dev/reference/apis/js-apis-abilityManager.md delete mode 100644 en/application-dev/reference/apis/js-apis-application-missionInfo.md delete mode 100644 en/application-dev/reference/apis/js-apis-uripermissionmanager.md diff --git a/en/application-dev/reference/apis/Readme-EN.md b/en/application-dev/reference/apis/Readme-EN.md index 4646544abd..d5df9fa6b1 100644 --- a/en/application-dev/reference/apis/Readme-EN.md +++ b/en/application-dev/reference/apis/Readme-EN.md @@ -1,5 +1,7 @@ # APIs +- [API Reference Document Description](development-intro.md) + - Ability Framework - [@ohos.ability.dataUriUtils](js-apis-DataUriUtils.md) @@ -47,7 +49,7 @@ - application/[ServiceExtensionContext](js-apis-service-extension-context.md) - application/[shellCmdResult](js-apis-application-shellCmdResult.md) - application/[MissionInfo](js-apis-application-missionInfo.md) - + - Common Event and Notification - [@ohos.commonEvent](js-apis-commonEvent.md) @@ -55,7 +57,7 @@ - [@ohos.notification](js-apis-notification.md) - [@ohos.reminderAgent](js-apis-reminderAgent.md) - application/[EventHub](js-apis-eventhub.md) - + - Bundle Management - [@ohos.bundle](js-apis-Bundle.md) @@ -70,14 +72,14 @@ - bundle/[HapModuleInfo](js-apis-bundle-HapModuleInfo.md) - bundle/[Metadata](js-apis-bundle-Metadata.md) - bundle/[ModuleInfo](js-apis-bundle-ModuleInfo.md) - + - UI Page - [@ohos.animator](js-apis-animator.md) - [@ohos.mediaquery](js-apis-mediaquery.md) - [@ohos.prompt](js-apis-prompt.md) - [@ohos.router](js-apis-router.md) - + - Graphics - [@ohos.display ](js-apis-display.md) @@ -85,7 +87,7 @@ - [@ohos.window](js-apis-window.md) - [webgl](js-apis-webgl.md) - [webgl2](js-apis-webgl2.md) - + - Media - [@ohos.multimedia.audio](js-apis-audio.md) @@ -93,31 +95,32 @@ - [@ohos.multimedia.image](js-apis-image.md) - [@ohos.multimedia.media](js-apis-media.md) - [@ohos.multimedia.medialibrary](js-apis-medialibrary.md) - + - Resource Management + - [@ohos.i18n](js-apis-i18n.md) - [@ohos.intl](js-apis-intl.md) - [@ohos.resourceManager](js-apis-resource-manager.md) - + - Resource Scheduling - [@ohos.backgroundTaskManager](js-apis-backgroundTaskManager.md) - [@ohos.workScheduler ](js-apis-workScheduler.md) - [@ohos.WorkSchedulerExtensionAbility](js-apis-WorkSchedulerExtensionAbility.md) - + - Custom Management - [@ohos.configPolicy](js-apis-config-policy.md) - [@ohos.enterpriseDeviceManager](js-apis-enterprise-device-manager.md) - [@ohos.EnterpriseAdminExtensionAbility](js-apis-EnterpriseAdminExtensionAbility.md) - + - Security - [@ohos.abilityAccessCtrl](js-apis-abilityAccessCtrl.md) - [@ohos.security.huks ](js-apis-huks.md) - [@ohos.userIAM.userAuth ](js-apis-useriam-userauth.md) - [@system.cipher](js-apis-system-cipher.md) - + - Data Management - [@ohos.data.dataAbility ](js-apis-data-ability.md) @@ -127,7 +130,7 @@ - [@ohos.data.rdb](js-apis-data-rdb.md) - [@ohos.settings](js-apis-settings.md) - data/rdb/[resultSet](js-apis-data-resultset.md) - + - File Management - [@ohos.document](js-apis-document.md) @@ -138,7 +141,7 @@ - [@ohos.storageStatistics](js-apis-storage-statistics.md) - [@ohos.volumeManager](js-apis-volumemanager.md) - [@ohos.securityLabel](js-apis-securityLabel.md) - + - Telephony Service - [@ohos.contact](js-apis-contact.md) @@ -148,14 +151,15 @@ - [@ohos.telephony.sim](js-apis-sim.md) - [@ohos.telephony.sms](js-apis-sms.md) - [@ohos.telephony.data](js-apis-telephony-data.md) - + - Network Management + - [@ohos.net.connection](js-apis-net-connection.md) - [@ohos.net.http](js-apis-http.md) - [@ohos.request](js-apis-request.md) - [@ohos.net.socket](js-apis-socket.md) - [@ohos.net.webSocket](js-apis-webSocket.md) - + - Connectivity - [@ohos.bluetooth](js-apis-bluetooth.md) @@ -166,7 +170,7 @@ - [@ohos.rpc](js-apis-rpc.md) - [@ohos.wifi](js-apis-wifi.md) - [@ohos.wifiext](js-apis-wifiext.md) - + - Basic Features - [@ohos.accessibility](js-apis-accessibility.md) @@ -185,7 +189,7 @@ - [@ohos.systemTime](js-apis-system-time.md) - [@ohos.wallpaper](js-apis-wallpaper.md) - [Timer](js-apis-timer.md) - + - Device Management - [@ohos.batteryInfo ](js-apis-battery-info.md) @@ -210,13 +214,13 @@ - [@ohos.update](js-apis-update.md) - [@ohos.usb](js-apis-usb.md) - [@ohos.vibrator](js-apis-vibrator.md) - + - Account Management - [@ohos.account.appAccount](js-apis-appAccount.md) - [@ohos.account.distributedAccount](js-apis-distributed-account.md) - [@ohos.account.osAccount](js-apis-osAccount.md) - + - Language Base Class Library - [@ohos.convertxml](js-apis-convertxml.md) @@ -240,11 +244,12 @@ - [@ohos.util.Vector](js-apis-vector.md) - [@ohos.worker](js-apis-worker.md) - [@ohos.xml](js-apis-xml.md) - + - Test + - [@ohos.application.testRunner](js-apis-testRunner.md) - [@ohos.uitest](js-apis-uitest.md) - + - APIs No Longer Maintained - [@ohos.bytrace](js-apis-bytrace.md) diff --git a/en/application-dev/reference/apis/development-intro.md b/en/application-dev/reference/apis/development-intro.md new file mode 100644 index 0000000000..8528a10ab6 --- /dev/null +++ b/en/application-dev/reference/apis/development-intro.md @@ -0,0 +1,51 @@ +# API Reference Document Description + +API references provide the description of APIs used for application development. This topic describes common fields in the API references to help you better use the reference document. + +## Version Description + +In API references, the earliest versions of APIs and components are specified in the following ways: + +- For a new API or component, the version information is provided at the beginning of the reference document. Example: "The initial APIs of this module are supported since API version 7." +- For a new feature of an existing API or component, a superscript is added following the feature. For example, "uid8+" indicates that the **uid** attribute is supported since API version 8. + +## Ability Framework Model Description + +Ability is the minimum unit for the system to schedule applications. An application can contain one or more `Ability` instances. Ability framework models are classified into the FA model and stage model. For details, see [Ability Framework Overview](../../ability/ability-brief.md). + +- If all the APIs of a module support only one model, the following description is provided at the beginning of the reference document: "The APIs of this module can be used only in the FA model." or "The APIs of this module can be used only in the stage model." +- If certain APIs of a module support only one model, the following description is provided individually for these APIs: "This API can be used only in the FA model." or "This API can be used only in the stage model." +- If both models are supported, no special description is provided. + +## Available APIs + +Certain APIs provided by OpenHarmony are system APIs, which can be used only by original equipment manufacturers (OEMs) and cannot be used by non-system applications. + +A description regarding system APIs will be provided in the document. + +- If all the APIs of a module are system APIs, the following description is provided at the beginning of the reference document: "All the APIs of this module are system APIs." +- If a specific API of a module is a system API, the following description is provided individually for the API: "This is a system API." + +## Permission Description + +By default, applications can access limited system resources. However, in some cases, an application needs to access excess data (including personal data) and functions of the system or another application to implement extended functions. For details, see [Access Control Overview](../../security/accesstoken-overview.md). + +To call APIs to access these resources, you must apply for the corresponding permissions by following the instructions provided in [Access Control Development](../../security/accesstoken-guidelines.md). + +- If an application can call an API only after it has obtained a specific permission, the following description is provided for the API: "**Required permissions**: ohos.permission.xxxx" +- If an application can call an API without any permission, no special description is provided. + +To determine whether an application can apply for a specific permission, see [Permission List](../../security/permission-list.md). + +## System Capability Description + +System capability refers to a relatively independent feature in the operating system. Different devices provide different system capabilities, and multiple APIs implement a system capability. You can determine whether an API can be used based on system capabilities. For details, see [SysCap](../../quick-start/syscap.md). + +The following description is provided for each API in the reference document to describe the system capability of the API: "**System capability**: SystemCapability.xxx.xxx" + +## Sample Code Language Description + +OpenHarmony supports two development languages: JS and TS. + +- When a code block is labeled with `js`, the sample code can be used in the JS and eTS projects. +- When a code block is labeled with `ts`, the sample code can be used only in the eTS project. diff --git a/en/application-dev/reference/apis/js-apis-abilityManager.md b/en/application-dev/reference/apis/js-apis-abilityManager.md deleted file mode 100644 index 28c5cd31b0..0000000000 --- a/en/application-dev/reference/apis/js-apis-abilityManager.md +++ /dev/null @@ -1,268 +0,0 @@ -# AbilityManager - -The **AbilityManager** module provides APIs for obtaining, adding, and modifying ability running information and state information. - -> **NOTE** -> -> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. -> The APIs of this module are system APIs and cannot be called by third-party applications. - -# Modules to Import - -```js -import AbilityManager from '@ohos.application.abilityManager' -``` - -## AbilityState - -Enumerates the ability states. - -**System capability**: SystemCapability.Ability.AbilityRuntime.Core - -**System API**: This is a system API and cannot be called by third-party applications. - -| Name| Value| Description| -| -------- | -------- | -------- | -| INITIAL | 0 | The ability is in the initial state.| -| FOREGROUND | 9 | The ability is in the foreground state. | -| BACKGROUND | 10 | The ability is in the background state. | -| FOREGROUNDING | 11 | The ability is in the foregrounding state. | -| BACKGROUNDING | 12 | The ability is in the backgrounding state. | - -## updateConfiguration - -updateConfiguration(config: Configuration, callback: AsyncCallback\): void - -Obtains the ability running information. This API uses an asynchronous callback to return the result. - -**Permission required**: ohos.permission.UPDATE_CONFIGURATION - -**System capability**: SystemCapability.Ability.AbilityRuntime.Core - -**Parameters** - -| Name | Type | Mandatory | Description | -| --------- | ---------------------------------------- | ---- | -------------- | -| config | Configuration | Yes | New configuration.| -| callback | AsyncCallback\ | Yes | Callback used to return the result. | - -**Example** - -```js -import abilitymanager from '@ohos.application.abilityManager'; - -var config = { - language: 'chinese' -} - -abilitymanager.updateConfiguration(config, () => { - console.log('------------ updateConfiguration -----------'); -}) -``` - -## updateConfiguration - -updateConfiguration(config: Configuration): Promise\ - -Updates the configuration. This API uses a promise to return the result. - -**Permission required**: ohos.permission.UPDATE_CONFIGURATION - -**System capability**: SystemCapability.Ability.AbilityRuntime.Core - -**Parameters** - -| Name | Type | Mandatory | Description | -| --------- | ---------------------------------------- | ---- | -------------- | -| config | Configuration | Yes | New configuration.| - -**Return value** - -| Type | Description | -| ---------------------------------------- | ------- | -| Promise\ | Promise used to return the result. | - -**Example** - -```js -import abilitymanager from '@ohos.application.abilityManager'; - -var config = { - language: 'chinese' -} - -abilitymanager.updateConfiguration(config).then(() => { - console.log('updateConfiguration success'); -}).catch((err) => { - console.log('updateConfiguration fail'); -}) -``` - -## getAbilityRunningInfos - -getAbilityRunningInfos(callback: AsyncCallback\>): void - -Obtains the ability running information. This API uses an asynchronous callback to return the result. - -**Required permissions**: ohos.permission.GET_RUNNING_INFO - -**System capability**: SystemCapability.Ability.AbilityRuntime.Core - -**Parameters** - -| Name | Type | Mandatory | Description | -| --------- | ---------------------------------------- | ---- | -------------- | -| callback | AsyncCallback\> | Yes | Callback used to return the result. | - -**Example** - -```js -import abilitymanager from '@ohos.application.abilityManager'; - -abilitymanager.getAbilityRunningInfos((err,data) => { - console.log("getAbilityRunningInfos err: " + err + " data: " + JSON.stringify(data)); -}); -``` - -## getAbilityRunningInfos - -getAbilityRunningInfos(): Promise\> - -Obtains the ability running information. This API uses a promise to return the result. - -**Required permissions**: ohos.permission.GET_RUNNING_INFO - -**System capability**: SystemCapability.Ability.AbilityRuntime.Core - -**Return value** - -| Type | Description | -| ---------------------------------------- | ------- | -| Promise\> | Promise used to return the result. | - -**Example** - -```js -import abilitymanager from '@ohos.application.abilityManager'; - -abilitymanager.getAbilityRunningInfos().then((data) => { - console.log("getAbilityRunningInfos data: " + JSON.stringify(data)) -}).catch((err) => { - console.log("getAbilityRunningInfos err: " + err) -}); -``` - -## getExtensionRunningInfos9+ - -getExtensionRunningInfos(upperLimit: number, callback: AsyncCallback\>): void - -Obtains the extension running information. This API uses an asynchronous callback to return the result. - -**Required permissions**: ohos.permission.GET_RUNNING_INFO - -**System capability**: SystemCapability.Ability.AbilityRuntime.Core - -**Parameters** - -| Name | Type | Mandatory | Description | -| --------- | ---------------------------------------- | ---- | -------------- | -| upperLimit | number | Yes| Maximum number of messages that can be obtained.| -| callback | AsyncCallback\> | Yes | Callback used to return the result. | - -**Example** - -```js -import abilitymanager from '@ohos.application.abilityManager'; - -var upperLimit = 0; - -abilitymanager.getExtensionRunningInfos(upperLimit, (err,data) => { - console.log("getExtensionRunningInfos err: " + err + " data: " + JSON.stringify(data)); -}); -``` - -## getExtensionRunningInfos9+ - -getExtensionRunningInfos(upperLimit: number): Promise\> - -Obtains the extension running information. This API uses a promise to return the result. - -**Required permissions**: ohos.permission.GET_RUNNING_INFO - -**System capability**: SystemCapability.Ability.AbilityRuntime.Core - -**Parameters** - -| Name | Type | Mandatory | Description | -| --------- | ---------------------------------------- | ---- | -------------- | -| upperLimit | number | Yes| Maximum number of messages that can be obtained.| - -**Return value** - -| Type | Description | -| ---------------------------------------- | ------- | -| Promise\> | Promise used to return the result. | - -**Example** - -```js -import abilitymanager from '@ohos.application.abilityManager'; - -var upperLimit = 0; - -abilitymanager.getExtensionRunningInfos(upperLimit).then((data) => { - console.log("getAbilityRunningInfos data: " + JSON.stringify(data)); -}).catch((err) => { - console.log("getAbilityRunningInfos err: " + err); -}) -``` - -## getTopAbility9+ - -getTopAbility(callback: AsyncCallback\): void; - -Obtains the top ability, which is the ability that has the window focus. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Ability.AbilityRuntime.Core - -**Parameters** - -| Name | Type | Mandatory | Description | -| --------- | ---------------------------------------- | ---- | -------------- | -| callback | AsyncCallback\ | Yes | Callback used to return the result. | - -**Example** - -```js -import abilitymanager from '@ohos.application.abilityManager'; - -abilitymanager.getTopAbility((err,data) => { - console.log("getTopAbility err: " + err + " data: " + JSON.stringify(data)); -}); -``` - -## getTopAbility9+ - -getTopAbility(): Promise\; - -Obtains the top ability, which is the ability that has the window focus. This API uses a promise to return the result. - -**System capability**: SystemCapability.Ability.AbilityRuntime.Core - -**Return value** - -| Type | Description | -| ---------------------------------------- | ------- | -| Promise\| Promise used to return the result. | - -**Example** - -```js -import abilitymanager from '@ohos.application.abilityManager'; - -abilitymanager.getTopAbility().then((data) => { - console.log("getTopAbility data: " + JSON.stringify(data)); -}).catch((err) => { - console.log("getTopAbility err: " + err); -}) -``` diff --git a/en/application-dev/reference/apis/js-apis-application-missionInfo.md b/en/application-dev/reference/apis/js-apis-application-missionInfo.md deleted file mode 100644 index 05938521e1..0000000000 --- a/en/application-dev/reference/apis/js-apis-application-missionInfo.md +++ /dev/null @@ -1,28 +0,0 @@ -# MissionInfo - -> **NOTE** -> -> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. - -## Modules to Import - -```js -import MissionInfo from '@ohos.application.missionInfo' -``` - -## MissionInfo - -Provides the mission information. - -**System capability**: SystemCapability.Ability.AbilityBase - -| Name| Type| Readable| Writable| Description| -| -------- | -------- | -------- | -------- | -------- | -| missionId | number | Yes| Yes| Mission ID.| -| runningState | number | Yes| Yes| Running state of the mission.| -| lockedState | boolean | Yes| Yes| Locked state of the mission.| -| timestamp | string | Yes| Yes| Latest time when the mission was created or updated.| -| want | [Want](js-apis-application-Want.md) | Yes| Yes| **Want** information of the mission.| -| label | string | Yes| Yes| Label of the mission.| -| iconPath | string | Yes| Yes| Path of the mission icon.| -| continuable | boolean | Yes| Yes| Whether the mission is continuable.| diff --git a/en/application-dev/reference/apis/js-apis-uripermissionmanager.md b/en/application-dev/reference/apis/js-apis-uripermissionmanager.md deleted file mode 100644 index 6bbf0f9419..0000000000 --- a/en/application-dev/reference/apis/js-apis-uripermissionmanager.md +++ /dev/null @@ -1,86 +0,0 @@ -# uriPermissionManager - -> **NOTE** -> -> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. - - -Implements URI permission management. - - -## Modules to Import - - -``` -import UriPermissionManager from '@ohos.application.uriPermissionManager'; -``` - - -## uriPermissionManager.verifyUriPermission - -verifyUriPermission(uri: string, flag: wantConstant.Flags, accessTokenId: number, callback: AsyncCallback<number>): void - -Checks whether an application has the permission specified by **flag** for an URI. This API uses a callback to return the result. - -**System capability**: - -SystemCapability.Ability.AbilityRuntime.Core - -**Parameters** - - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | uri | string | Yes| URI of a file, for example, **fileshare:///com.samples.filesharetest.FileShare/person/10**.| - | flag | wantConstant.Flags | Yes| Read or write permission on the file specified by the URI.| - | accessTokenId | number | Yes| Unique ID of an application, which is obtained through the **BundleManager** API.| - | callback | AsyncCallback<number> | Yes| Callback used to return the check result. The value **0** means that the application has the specified permission, and **-1** means the opposite.| - -**Example** - - ```js - import WantConstant from '@ohos.ability.wantConstant'; - let accessTokenId =1 - let uri = "fileshare:///com.samples.filesharetest.FileShare/person/10" - UriPermissionManager.verifyUriPermission(uri, WantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, accessTokenId, (result) => { - console.log("result.code = " + result.code) - }) // accessTokenId is obtained through the **BundleManager** API. - ``` - - -## uriPermissionManager.verifyUriPermission - -verifyUriPermission(uri: string, flag: wantConstant.Flags, accessTokenId: number): Promise<number> - -Checks whether an application has the permission specified by **flag** for an URI. This API uses a callback to return the result. - -**System capability**: - -SystemCapability.Ability.AbilityRuntime.Core - -**Parameters** - - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | uri | string | Yes| URI of a file, for example, **fileshare:///com.samples.filesharetest.FileShare/person/10**.| - | flag | wantConstant.Flags | Yes| Read or write permission on the file specified by the URI.| - | accessTokenId | number | Yes| Unique ID of an application, which is obtained through the **BundleManager** API.| - -**Return value** - - | Type| Description| - | -------- | -------- | - | Promise<number> | Promise used to return the check result. The value **0** means that the application has the specified permission, and **-1** means the opposite.| - -**Example** - - ```js - import WantConstant from '@ohos.ability.wantConstant'; - let accessTokenId =1 - let uri = "fileshare:///com.samples.filesharetest.FileShare/person/10" - UriPermissionManager.verifyUriPermission(uri, wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, accessTokenId) - .then((data) => { - console.log('Verification succeeded.' + data) - }).catch((error) => { - console.log('Verification failed.'); - }) - ``` -- GitLab From b8390d7cb6b7d2e06020b79e23c336970e896232 Mon Sep 17 00:00:00 2001 From: sunyaozu Date: Tue, 19 Jul 2022 21:07:25 +0800 Subject: [PATCH 110/868] fix i18n interface error Signed-off-by: sunyaozu --- .../reference/apis/js-apis-i18n.md | 119 ++++++++++++++++-- 1 file changed, 109 insertions(+), 10 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-i18n.md b/zh-cn/application-dev/reference/apis/js-apis-i18n.md index 8d824eed79..4b20398037 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-i18n.md +++ b/zh-cn/application-dev/reference/apis/js-apis-i18n.md @@ -118,7 +118,8 @@ getSystemLanguage(): string setSystemLanguage(language: string): boolean -设置系统语言。
+设置系统语言。 + 该接口为系统接口。 **需要权限**:ohos.permission.UPDATE_CONFIGURATION @@ -211,7 +212,8 @@ getSystemRegion(): string setSystemRegion(region: string): boolean -设置系统区域。
+设置系统区域。 + 该接口为系统接口。 **需要权限**:ohos.permission.UPDATE_CONFIGURATION @@ -257,7 +259,8 @@ getSystemLocale(): string setSystemLocale(locale: string): boolean -设置系统Locale。
+设置系统Locale。 + 该接口为系统接口。 **需要权限**:ohos.permission.UPDATE_CONFIGURATION @@ -674,7 +677,7 @@ format(number: string): string ``` -### getLocationName8+ +### getLocationName9+ static getLocationName(number: string, locale: string): string @@ -753,6 +756,30 @@ static unitConvert(fromUnit: UnitInfo, toUnit: UnitInfo, value: number, locale: ``` +### getDateOrder9+ + +static getDateOrder(locale: string): string + +获取某一区域的日期的年、月、日排列顺序。 + +**系统能力**:SystemCapability.Global.I18n + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------- | ---- | ---------------------------------------- | +| locale | string | 是 | 格式化时使用的区域参数,如:zh-Hans-CN。 | + +**返回值:** +| 类型 | 说明 | +| ------ | ----------------------- | +| string | 返回某一区域的日期的年、月、日排列顺序 | + +**示例:** + ``` + i18n.Util.getDateOrder("zh-CN"); + ``` + + ## getInstance8+ getInstance(locale?:string): IndexUtil @@ -1486,10 +1513,10 @@ getTimeZone(zoneID?: string): TimeZone ``` -## TimeZone8+ +## TimeZone -### getID8+ +### getID getID(): string @@ -1509,7 +1536,7 @@ getID(): string ``` -### getDisplayName8+ +### getDisplayName getDisplayName(locale?: string, isDST?: boolean): string @@ -1535,7 +1562,7 @@ getDisplayName(locale?: string, isDST?: boolean): string ``` -### getRawOffset8+ +### getRawOffset getRawOffset(): number @@ -1555,7 +1582,7 @@ getRawOffset(): number ``` -### getOffset8+ +### getOffset getOffset(date?: number): number @@ -1666,7 +1693,8 @@ static getTimezoneFromCity(cityID: string): TimeZone setUsingLocalDigit(flag: boolean): boolean -设置是否打开本地数字开关。
+设置是否打开本地数字开关。 + 该接口为系统接口。 **需要权限**:ohos.permission.UPDATE_CONFIGURATION @@ -1705,4 +1733,75 @@ getUsingLocalDigit(): boolean **示例:** ``` var status = i18n.getUsingLocalDigit(); + ``` + + +## Transliterator9+ + + +### getAvailableIDs9+ + +static getAvailableIDs(): string[] + +获取音译支持的ID列表。 + +**系统能力**:SystemCapability.Global.I18n + +**返回值:** +| 类型 | 说明 | +| ------ | ------------ | +| string[] | 音译支持的ID列表。 | + +**示例:** + ``` + i18n.Transliterator.getAvailableIDs(); + ``` + + +### getInstance9+ + +static getInstance(id: string): Transliterator + +创建音译对象。 + +**系统能力**:SystemCapability.Global.I18n + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------- | ---- | -------------------- | +| id | string | 是 | 音译支持的ID。 | + +**返回值:** +| 类型 | 说明 | +| ------ | ------------- | +| [Transliterator](#transliterator9) | 音译对象。 | + +**示例:** + ``` + var transliterator = i18n.Transliterator.getInstance("Any-Latn"); + ``` + + +### transform9+ + +transform(text: string): string + +将输入字符串从源格式转换为目标格式。 + +**系统能力**:SystemCapability.Global.I18n + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------- | ---- | -------------------- | +| text | string | 是 | 输入字符串。 | + +**返回值:** +| 类型 | 说明 | +| ------ | ------------- | +| string | 转换后的字符串。 | + +**示例:** + ``` + var transliterator = i18n.Transliterator.getInstance("Any-Latn"); + transliterator.transform("中国"); ``` \ No newline at end of file -- GitLab From 72286c6bbf2721d9e6a469fbd7f993dbc9262992 Mon Sep 17 00:00:00 2001 From: wusongqing Date: Wed, 20 Jul 2022 14:23:43 +0800 Subject: [PATCH 111/868] added bundle-defaultappmanager against 5740+6087+6025 Signed-off-by: wusongqing --- .../apis/js-apis-bundle-defaultAppManager.md | 474 ++++++++++++++++++ 1 file changed, 474 insertions(+) create mode 100644 en/application-dev/reference/apis/js-apis-bundle-defaultAppManager.md diff --git a/en/application-dev/reference/apis/js-apis-bundle-defaultAppManager.md b/en/application-dev/reference/apis/js-apis-bundle-defaultAppManager.md new file mode 100644 index 0000000000..e80cf7f78b --- /dev/null +++ b/en/application-dev/reference/apis/js-apis-bundle-defaultAppManager.md @@ -0,0 +1,474 @@ +# DefaultAppManager + +The **DefaultAppManager** module provides APIs to query whether the current application is the default application of a specific type. + +> **NOTE** +> +> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. + +## Modules to Import + +``` +import defaultAppMgr from '@ohos.bundle.defaultAppManager' +``` +## defaultAppMgr.ApplicationType + +Enumerates the application types. + +**System capability**: SystemCapability.BundleManager.BundleFramework + +| Name | Type | Description | +| -------- | -------- | -------------------------------------- | +| BROWSER | string | Default browser. | +| IMAGE | string | Default image viewer. | +| AUDIO | string | Default audio player. | +| VIDEO | string | Default video player. | +| PDF | string | Default PDF reader. | +| WORD | string | Default Word viewer. | +| EXCEL | string | Default Excel viewer. | +| PPT | string | Default PowerPoint viewer. | + +## defaultAppMgr.isDefaultApplication + +isDefaultApplication(type: string): Promise\ + +Checks whether this application is the default application of a system-defined application type. This API uses a promise to return the result. + +**System capability**: SystemCapability.BundleManager.BundleFramework + +**Parameters** + +| Name | Type | Mandatory | Description | +| ----------- | ------ | ---- | --------------------------------------- | +| type | string | Yes | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype). | + +**Return value** + +| Type | Description | +| ------------------------- | ------------------ | +| Promise\ | Promise used to return the result. If the application is the default application, `true` is returned; otherwise, `false` is returned.| + +**Example** + +```js +defaultAppMgr.isDefaultApplication(defaultAppMgr.ApplicationType.BROWSER) +.then((data) => { + console.info('Operation successful. IsDefaultApplication ? ' + JSON.stringify(data)); +}).catch((error) => { + console.error('Operation failed. Cause: ' + JSON.stringify(error)); +}); +``` + +## defaultAppMgr.isDefaultApplication + +isDefaultApplication(type: string, callback: AsyncCallback\): void + +Checks whether this application is the default application of a system-defined application type. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.BundleManager.BundleFramework + +**Parameters** + +| Name | Type | Mandatory | Description | +| ----------- | ------------------------------- | ---- | --------------------------------------- | +| type | string | Yes | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype). | +| callback | AsyncCallback\ | Yes | Callback used to return the result. If the application is the default application, `true` is returned; otherwise, `false` is returned.| + +**Example** + +```js +defaultAppMgr.isDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, (err, data) => { + if (err) { + console.error('Operation failed. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Operation successful. IsDefaultApplication ? ' + JSON.stringify(data)); + }); +``` + +## defaultAppMgr.getDefaultApplication + +getDefaultApplication(type: string, userId?: number): Promise\ + +Obtains the default application based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses a promise to return the result. + +**Required permissions**: ohos.permission.GET_DEFAULT_APPLICATION + +**System capability**: SystemCapability.BundleManager.BundleFramework + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + +| Name | Type | Mandatory | Description | +| ----------- | ------ | ---- | --------------------------------------- | +| type | string | Yes | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format. | +| userId | number | No | User ID. The default value is the user ID of the caller. | + +**Return value** + +| Type | Description | +| ------------------------- | ------------------ | +| Promise\<[BundleInfo](js-apis-bundle-BundleInfo.md)> | Promise used to return the default application.| + +**Example** + +```js +defaultAppMgr.getDefaultApplication(defaultAppMgr.ApplicationType.BROWSER) +.then((data) => { + console.info('Operation successful. bundleInfo: ' + JSON.stringify(data)); +}) +.catch((error) => { + console.error('Operation failed. Cause: ' + JSON.stringify(error)); +}); + +defaultAppMgr.getDefaultApplication("image/png") +.then((data) => { + console.info('Operation successful. bundleInfo: ' + JSON.stringify(data)); +}) +.catch((error) => { + console.error('Operation failed. Cause: ' + JSON.stringify(error)); +}); +``` + +## defaultAppMgr.getDefaultApplication + +getDefaultApplication(type: string, userId: number, callback: AsyncCallback\) : void + +Obtains the default application of a user based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses an asynchronous callback to return the result. + +**Required permissions**: ohos.permission.GET_DEFAULT_APPLICATION + +**System capability**: SystemCapability.BundleManager.BundleFramework + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + +| Name | Type | Mandatory | Description | +| ----------- | ------ | ---- | --------------------------------------- | +| type | string | Yes | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format. | +| userId | number | Yes | User ID. | +| callback | AsyncCallback\<[BundleInfo](js-apis-bundle-BundleInfo.md)> | Yes | Callback used to return the default application. | + +**Example** + +```js +defaultAppMgr.getDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, 100, (err, data) => { + if (err) { + console.error('Operation failed. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Operation successful. bundleInfo:' + JSON.stringify(data)); +}); + +defaultAppMgr.getDefaultApplication("image/png", 100, (err, data) => { + if (err) { + console.error('Operation failed. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Operation successful. bundleInfo:' + JSON.stringify(data)); +}); +``` + +## defaultAppMgr.getDefaultApplication + +getDefaultApplication(type: string, callback: AsyncCallback\) : void + +Obtains the default application based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses an asynchronous callback to return the result. + +**Required permissions**: ohos.permission.GET_DEFAULT_APPLICATION + +**System capability**: SystemCapability.BundleManager.BundleFramework + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + +| Name | Type | Mandatory | Description | +| ----------- | ------ | ---- | --------------------------------------- | +| type | string | Yes | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format. | +| callback | AsyncCallback\<[BundleInfo](js-apis-bundle-BundleInfo.md)> | Yes | Callback used to return the default application. | + +**Example** + +```js +defaultAppMgr.getDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, (err, data) => { + if (err) { + console.error('Operation failed. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Operation successful. bundleInfo:' + JSON.stringify(data)); +}); + +defaultAppMgr.getDefaultApplication("image/png", (err, data) => { + if (err) { + console.error('Operation failed. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Operation successful. bundleInfo:' + JSON.stringify(data)); +}); +``` + +## defaultAppMgr.setDefaultApplication + +setDefaultApplication(type: string, elementName: ElementName, userId?: number): Promise\ + +Sets the default application based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses a promise to return the result. + +**Required permissions**: ohos.permission.SET_DEFAULT_APPLICATION + +**System capability**: SystemCapability.BundleManager.BundleFramework + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + +| Name | Type | Mandatory | Description | +| ----------- | ------ | ---- | --------------------------------------- | +| type | string | Yes | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format. | +| elementName | [ElementName](js-apis-bundle-ElementName.md) | Yes | Information about the element to be set as the default application. | +| userId | number | No | User ID. The default value is the user ID of the caller. | + +**Example** + +```js +defaultAppMgr.setDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, { + bundleName: "com.test.app", + moduleName: "module01", + abilityName: "MainAbility" +}) +.then((data) => { + console.info('Operation successful.'); +}) +.catch((error) => { + console.error('Operation failed. Cause: ' + JSON.stringify(error)); +}); + +defaultAppMgr.setDefaultApplication("image/png", { + bundleName: "com.test.app", + moduleName: "module01", + abilityName: "MainAbility" +}) +.then((data) => { + console.info('Operation successful.'); +}) +.catch((error) => { + console.error('Operation failed. Cause: ' + JSON.stringify(error)); +}); +``` + +## defaultAppMgr.setDefaultApplication + +setDefaultApplication(type: string, elementName: ElementName, userId: number, callback: AsyncCallback\) : void; + +Sets the default application for a user based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses an asynchronous callback to return the result. + +**Required permissions**: ohos.permission.SET_DEFAULT_APPLICATION + +**System capability**: SystemCapability.BundleManager.BundleFramework + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + +| Name | Type | Mandatory | Description | +| ----------- | ------ | ---- | --------------------------------------- | +| type | string | Yes | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format. | +| elementName | [ElementName](js-apis-bundle-ElementName.md) | Yes | Information about the element to be set as the default application. | +| userId | number | Yes | User ID. | +| callback | AsyncCallback\ | Yes | Callback used to return the result. | + +**Example** + +```js +defaultAppMgr.setDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, { + bundleName: "com.test.app", + moduleName: "module01", + abilityName: "MainAbility" +}, 100, (err, data) => { + if (err) { + console.error('Operation failed. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Operation successful.'); + }); + +defaultAppMgr.setDefaultApplication("image/png", { + bundleName: "com.test.app", + moduleName: "module01", + abilityName: "MainAbility" +}, 100, (err, data) => { + if (err) { + console.error('Operation failed. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Operation successful.'); + }); +``` + +## defaultAppMgr.setDefaultApplication + +setDefaultApplication(type: string, elementName: ElementName, callback: AsyncCallback\) : void; + +Sets the default application based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses an asynchronous callback to return the result. + +**Required permissions**: ohos.permission.SET_DEFAULT_APPLICATION + +**System capability**: SystemCapability.BundleManager.BundleFramework + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + +| Name | Type | Mandatory | Description | +| ----------- | ------ | ---- | --------------------------------------- | +| type | string | Yes | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format. | +| elementName | [ElementName](js-apis-bundle-ElementName.md) | Yes | Information about the element to be set as the default application. | +| callback | AsyncCallback\ | Yes | Callback used to return the result. | + +**Example** + +```js +defaultAppMgr.setDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, { + bundleName: "com.test.app", + moduleName: "module01", + abilityName: "MainAbility" +}, (err, data) => { + if (err) { + console.error('Operation failed. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Operation successful.'); + }); + +defaultAppMgr.setDefaultApplication("image/png", { + bundleName: "com.test.app", + moduleName: "module01", + abilityName: "MainAbility" +}, (err, data) => { + if (err) { + console.error('Operation failed. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Operation successful.'); + }); +``` + +## defaultAppMgr.resetDefaultApplication + +resetDefaultApplication(type: string, userId?: number): Promise\ + +Resets the default application based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses a promise to return the result. + +**Required permissions**: ohos.permission.SET_DEFAULT_APPLICATION + +**System capability**: SystemCapability.BundleManager.BundleFramework + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + +| Name | Type | Mandatory | Description | +| ----------- | ------ | ---- | --------------------------------------- | +| type | string | Yes | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format. | +| userId | number | No | User ID. The default value is the user ID of the caller. | + +**Example** + +```js +defaultAppMgr.resetDefaultApplication(defaultAppMgr.ApplicationType.BROWSER) +.then((data) => { + console.info('Operation successful.'); +}) +.catch((error) => { + console.error('Operation failed. Cause: ' + JSON.stringify(error)); +}); + +defaultAppMgr.resetDefaultApplication("image/png") +.then((data) => { + console.info('Operation successful.'); +}) +.catch((error) => { + console.error('Operation failed. Cause: ' + JSON.stringify(error)); +}); +``` + +## defaultAppMgr.resetDefaultApplication + +resetDefaultApplication(type: string, userId: number, callback: AsyncCallback\) : void; + +Resets the default application for a user based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses an asynchronous callback to return the result. + +**Required permissions**: ohos.permission.SET_DEFAULT_APPLICATION + +**System capability**: SystemCapability.BundleManager.BundleFramework + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + +| Name | Type | Mandatory | Description | +| ----------- | ------ | ---- | --------------------------------------- | +| type | string | Yes | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format. | +| userId | number | Yes | User ID. | +| callback | AsyncCallback\ | Yes | Callback used to return the result. | + +**Example** + +```js +defaultAppMgr.resetDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, 100, (err, data) => { + if (err) { + console.error('Operation failed. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Operation successful.'); +}); + +defaultAppMgr.resetDefaultApplication("image/png", 100, (err, data) => { + if (err) { + console.error('Operation failed. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Operation successful.'); +}); +``` + +## defaultAppMgr.resetDefaultApplication + +resetDefaultApplication(type: string, callback: AsyncCallback\) : void; + +Resets the default application based on a system-defined application type or a file type that complies with the media type format (either specified by **type** or **subtype**). This API uses an asynchronous callback to return the result. + +**Required permissions**: ohos.permission.SET_DEFAULT_APPLICATION + +**System capability**: SystemCapability.BundleManager.BundleFramework + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + +| Name | Type | Mandatory | Description | +| ----------- | ------ | ---- | --------------------------------------- | +| type | string | Yes | Type of the target application. It must be set to a value defined by [ApplicationType](#defaultappmgrapplicationtype) or a file type that complies with the media type format. | +| callback | AsyncCallback\ | Yes | Callback used to return the result. | + +**Example** + +```js +defaultAppMgr.resetDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, (err, data) => { + if (err) { + console.error('Operation failed. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Operation successful.'); +}); + +defaultAppMgr.resetDefaultApplication("image/png", (err, data) => { + if (err) { + console.error('Operation failed. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Operation successful.'); +}); +``` -- GitLab From fec1f64403d65e37bf878cf6cb5a33e2be673548 Mon Sep 17 00:00:00 2001 From: wusongqing Date: Wed, 20 Jul 2022 06:28:56 +0000 Subject: [PATCH 112/868] =?UTF-8?q?=E3=80=90=E6=96=87=E6=A1=A3=E4=BD=93?= =?UTF-8?q?=E9=AA=8C=E5=AE=98=E3=80=91js-apis-formInfo.md=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=A4=9A=E4=BD=99=E7=9A=84=E5=86=85=E5=AE=B9=20Signed?= =?UTF-8?q?-off-by:=20wusongqing=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/apis/js-apis-formInfo.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-formInfo.md b/zh-cn/application-dev/reference/apis/js-apis-formInfo.md index e8d857b2e2..119d7675b9 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-formInfo.md +++ b/zh-cn/application-dev/reference/apis/js-apis-formInfo.md @@ -22,8 +22,6 @@ import formInfo from '@ohos.application.formInfo'; **系统能力**:SystemCapability.Ability.Form -SystemCapability.Ability.Form - | 名称 | 读写属性 | 类型 | 描述 | | ----------- | -------- | -------------------- | ------------------------------------------------------------ | | bundleName | 只读 | string | 表示卡片所属包的包名。 | @@ -51,8 +49,6 @@ SystemCapability.Ability.Form **系统能力**:SystemCapability.Ability.Form -SystemCapability.Ability.Form - | 名称 | 值 | 说明 | | ----------- | ---- | ------------ | | JS | 1 | 卡片类型为JS。 | @@ -63,8 +59,6 @@ SystemCapability.Ability.Form **系统能力**:SystemCapability.Ability.Form -SystemCapability.Ability.Form - | 名称 | 值 | 说明 | | ----------- | ---- | ------------ | | MODE_AUTO | -1 | 自动模式。 | @@ -77,8 +71,6 @@ SystemCapability.Ability.Form **系统能力**:SystemCapability.Ability.Form -SystemCapability.Ability.Form - | 名称 | 读写属性 | 类型 | 描述 | | ----------- | -------- | -------------------- | ------------------------------------------------------------ | | formState | 只读 | [FormState](#formstate) | 表示卡片状态。 | @@ -90,8 +82,6 @@ SystemCapability.Ability.Form **系统能力**:SystemCapability.Ability.Form -SystemCapability.Ability.Form - | 名称 | 值 | 说明 | | ----------- | ---- | ------------ | | UNKNOWN | -1 | 未知状态。 | @@ -104,8 +94,6 @@ SystemCapability.Ability.Form **系统能力**:SystemCapability.Ability.Form -SystemCapability.Ability.Form - | 名称 | 值 | 说明 | | ----------- | ---- | ------------ | | IDENTITY_KEY | "ohos.extra.param.key.form_identity" | 卡片标识。
**系统API**: 此接口为系统接口,三方应用不支持调用。 | -- GitLab From 660ad814970cb632512100467278fd7ae997dfa7 Mon Sep 17 00:00:00 2001 From: jiangminyang Date: Wed, 20 Jul 2022 14:32:55 +0800 Subject: [PATCH 113/868] fixed some excemple code issue. Signed-off-by: jiangminyang --- en/application-dev/reference/apis/js-apis-camera.md | 8 ++++---- zh-cn/application-dev/reference/apis/js-apis-camera.md | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-camera.md b/en/application-dev/reference/apis/js-apis-camera.md index 43f15f6c7b..5606448e92 100644 --- a/en/application-dev/reference/apis/js-apis-camera.md +++ b/en/application-dev/reference/apis/js-apis-camera.md @@ -347,7 +347,7 @@ After **[camera.getCameraManager](#cameragetcameramanager)** is called, a camera ```js async function getCameraInfo("cameraId") { - var cameraManager = await camera.getCameraManager(); + var cameraManager = await camera.getCameraManager(context); var cameras = await cameraManager.getCameras(); var cameraObj = cameras[0]; var cameraId = cameraObj.cameraId; @@ -2359,7 +2359,7 @@ Listens for frame shutter events. This API uses an asynchronous callback to retu **Example** ```js -photoOutput.on('frameShutter', (frameShutterInfo) => { +photoOutput.on('frameShutter', (err, frameShutterInfo) => { console.log('photo capture end, captureId : ' + frameShutterInfo.captureId); console.log('Timestamp for frame : ' + frameShutterInfo.timestamp); }) @@ -2383,7 +2383,7 @@ Listens for photo capture end events. This API uses an asynchronous callback to **Example** ```js -photoOutput.on('captureEnd', (captureEndInfo) => { +photoOutput.on('captureEnd', (err, captureEndInfo) => { console.log('photo capture end, captureId : ' + captureEndInfo.captureId); console.log('frameCount : ' + captureEndInfo.frameCount); }) @@ -2407,7 +2407,7 @@ Listens for **PhotoOutput** errors. This API uses a callback to return the error **Example** ```js -photoOutput.on('error', (photoOutputError) => { +photoOutput.on('error', (err, photoOutputError) => { console.log('Photo output error code: ' + photoOutputError.code); }) ``` diff --git a/zh-cn/application-dev/reference/apis/js-apis-camera.md b/zh-cn/application-dev/reference/apis/js-apis-camera.md index e312482356..f61511d9aa 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-camera.md +++ b/zh-cn/application-dev/reference/apis/js-apis-camera.md @@ -347,7 +347,7 @@ cameraManager.on('cameraStatus', (err, cameraStatusInfo) => { ```js async function getCameraInfo("cameraId") { - var cameraManager = await camera.getCameraManager(); + var cameraManager = await camera.getCameraManager(context); var cameras = await cameraManager.getCameras(); var cameraObj = cameras[0]; var cameraId = cameraObj.cameraId; @@ -2359,7 +2359,7 @@ on(type: 'frameShutter', callback: AsyncCallback): void **示例:** ```js -photoOutput.on('frameShutter', (frameShutterInfo) => { +photoOutput.on('frameShutter', (err, frameShutterInfo) => { console.log('photo capture end, captureId : ' + frameShutterInfo.captureId); console.log('Timestamp for frame : ' + frameShutterInfo.timestamp); }) @@ -2383,7 +2383,7 @@ on(type: 'captureEnd', callback: AsyncCallback): void **示例:** ```js -photoOutput.on('captureEnd', (captureEndInfo) => { +photoOutput.on('captureEnd', (err, captureEndInfo) => { console.log('photo capture end, captureId : ' + captureEndInfo.captureId); console.log('frameCount : ' + captureEndInfo.frameCount); }) @@ -2407,7 +2407,7 @@ on(type: 'error', callback: ErrorCallback): void **示例:** ```js -photoOutput.on('error', (photoOutputError) => { +photoOutput.on('error', (err, photoOutputError) => { console.log('Photo output error code: ' + photoOutputError.code); }) ``` -- GitLab From 2ee0ec2d7e9b5d8195448db6719157033398a005 Mon Sep 17 00:00:00 2001 From: shawn_he Date: Wed, 20 Jul 2022 14:43:37 +0800 Subject: [PATCH 114/868] update docs Signed-off-by: shawn_he --- en/application-dev/device/device-location-geocoding.md | 4 ++-- en/application-dev/reference/apis/js-apis-resource-manager.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/en/application-dev/device/device-location-geocoding.md b/en/application-dev/device/device-location-geocoding.md index 30f647d98a..e0080e3e87 100644 --- a/en/application-dev/device/device-location-geocoding.md +++ b/en/application-dev/device/device-location-geocoding.md @@ -3,9 +3,9 @@ ## When to Use -Describing a location using coordinates is accurate, but neither intuitive nor user-friendly. +Describing a location using coordinates is accurate, but neither intuitive nor user-friendly. With the geocoding and reverse geocoding capabilities, you will be able to convert geographic description into specific coordinates and vice versa. -With the geocoding and reverse geocoding capabilities, you will be able to convert geographic description into specific coordinates and vice versa. The geocoding information describes a location using several attributes, including the country, administrative region, street, house number, and address, etc. +The geographic description helps users understand a location easily by providing several key attributes, for example, country, administrative region, street, house number, and address. ## Available APIs diff --git a/en/application-dev/reference/apis/js-apis-resource-manager.md b/en/application-dev/reference/apis/js-apis-resource-manager.md index 335e31cdb2..b863c6189f 100644 --- a/en/application-dev/reference/apis/js-apis-resource-manager.md +++ b/en/application-dev/reference/apis/js-apis-resource-manager.md @@ -1141,7 +1141,7 @@ Obtains the string corresponding to the specified resource name. This API return resourceManager.getStringByNameSync("test"); ``` - ### getBoolean9+ +### getBoolean9+ getBoolean(resId: number): boolean @@ -1187,7 +1187,7 @@ Obtains the Boolean result corresponding to the specified resource name. This AP resourceManager.getBooleanByName("boolean_test"); ``` - ### getNumber9+ +### getNumber9+ getNumber(resId: number): number -- GitLab From f4a7c937a4052593736493bbe391d542b334ac3a Mon Sep 17 00:00:00 2001 From: chennian Date: Wed, 20 Jul 2022 06:54:58 +0000 Subject: [PATCH 115/868] =?UTF-8?q?update=20zh-cn/application-dev/security?= =?UTF-8?q?/permission-list.md.=20ohos.permission.PERMISSION=5FUSED=5FSTAT?= =?UTF-8?q?S=20=E6=9D=83=E9=99=90=E5=AE=9A=E4=B9=89=E5=8F=98=E6=9B=B4=20Si?= =?UTF-8?q?gned-off-by:chennian?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/application-dev/security/permission-list.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/security/permission-list.md b/zh-cn/application-dev/security/permission-list.md index b8f1e30009..e4fcc0ebb4 100644 --- a/zh-cn/application-dev/security/permission-list.md +++ b/zh-cn/application-dev/security/permission-list.md @@ -97,7 +97,7 @@ | ohos.permission.EDM_MANAGE_DATETIME | normal | system_grant | FALSE | 允许设备管理员应用设置系统时间。 | | ohos.permission.NFC_TAG | normal | system_grant | FALSE | 允许应用读取Tag卡片。 | | ohos.permission.NFC_CARD_EMULATION | normal | system_grant | FALSE | 允许应用实现卡模拟功能。 | -| ohos.permission.PERMISSION_USED_STATS | system_core | system_grant | TRUE | 允许系统应用访问权限使用记录。 | +| ohos.permission.PERMISSION_USED_STATS | system_basic | system_grant | TRUE | 允许系统应用访问权限使用记录。 | | ohos.permission.NOTIFICATION_AGENT_CONTROLLER | system_core | system_grant | TRUE | 允许应用发送代理通知。 | | ohos.permission.ANSWER_CALL | system_basic | user_grant | TRUE | 允许应用接听来电。 | | ohos.permission.READ_CALENDAR | normal | user_grant | TRUE | 允许应用读取日历信息。 | -- GitLab From dc135f7e68bac49bbbe5c08768b3b4239ea9a367 Mon Sep 17 00:00:00 2001 From: zwx1138075 Date: Wed, 20 Jul 2022 14:59:30 +0800 Subject: [PATCH 116/868] =?UTF-8?q?cksy=5Fmini=E9=93=BE=E6=8E=A5=E6=89=93?= =?UTF-8?q?=E4=B8=8D=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zwx1138075 --- zh-cn/device-dev/quick-start/quickstart-build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/quick-start/quickstart-build.md b/zh-cn/device-dev/quick-start/quickstart-build.md index e1a6c4e90d..0f27c2df80 100644 --- a/zh-cn/device-dev/quick-start/quickstart-build.md +++ b/zh-cn/device-dev/quick-start/quickstart-build.md @@ -27,7 +27,7 @@ | [mini_distributed_music_player](https://gitee.com/openharmony/vendor_bestechnic/blob/master/mini_distributed_music_player/config.json) | v200zr | bes2600 | liteos_m | mini | | [niobe407](https://gitee.com/openharmony/vendor_talkweb/blob/master/niobe407/config.json) | niobe407 | stm32f4xx | liteos_m | mini | | [qemu_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_mini_system_demo/config.json) | arm_mps2_an386 | qemu | liteos_m | mini | -| [qemu_cksy_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_cksy_mini_system_demo/config.json) | SmartL_E802 | qemu | liteos_m | mini | +| [qemu_cksy_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_csky_mini_system_demo/config.json) | SmartL_E802 | qemu | liteos_m | mini | | [qemu_cm55_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_cm55_mini_system_demo/config.json) | arm_mps3_an547 | qemu | liteos_m | mini | | [qemu_xtensa_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_xtensa_mini_system_demo/config.json) | esp32 | qemu | liteos_m | mini | | [qemu_riscv_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_riscv_mini_system_demo/config.json) | ricsv32_virt | qemu | liteos_m | mini | -- GitLab From 438410812f2ebe2e71603b196c3cb66a61a232d3 Mon Sep 17 00:00:00 2001 From: zaki Date: Wed, 20 Jul 2022 15:57:01 +0800 Subject: [PATCH 117/868] change Barrierfree to BarrierFree Signed-off-by: zaki Change-Id: I877a45132d41d36d2cfad0ee2267126e3f51a0cf --- .../reference/apis/js-apis-accessibility.md | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-accessibility.md b/zh-cn/application-dev/reference/apis/js-apis-accessibility.md index 401e5ac410..51cc75843d 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-accessibility.md +++ b/zh-cn/application-dev/reference/apis/js-apis-accessibility.md @@ -15,7 +15,7 @@ import accessibility from '@ohos.accessibility'; 辅助应用状态类型。 -**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core +**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core | 名称 | 描述 | | -------- | -------- | @@ -27,7 +27,7 @@ import accessibility from '@ohos.accessibility'; 无障碍辅助应用类型。 -**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core +**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core | 名称 | 描述 | | -------- | -------- | @@ -42,7 +42,7 @@ import accessibility from '@ohos.accessibility'; 辅助应用信息。 -**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core +**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core ### 属性 @@ -61,7 +61,7 @@ import accessibility from '@ohos.accessibility'; 应用所支持的目标动作。 -**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core +**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core | 名称 | 描述 | | -------- | -------- | @@ -86,7 +86,7 @@ import accessibility from '@ohos.accessibility'; 辅助应用能力类型。 -**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core +**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core | 名称 | 描述 | | -------- | -------- | @@ -100,7 +100,7 @@ import accessibility from '@ohos.accessibility'; 字幕字体边缘类型。 -**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Hearing +**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Hearing | 名称 | 描述 | | -------- | -------- | @@ -114,7 +114,7 @@ import accessibility from '@ohos.accessibility'; 字幕字体。 -**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Hearing +**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Hearing | 名称 | 描述 | | -------- | -------- | @@ -131,7 +131,7 @@ import accessibility from '@ohos.accessibility'; 字幕风格。 -**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Hearing +**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Hearing | 名称 | 参数类型 | 可读 | 可写 | 说明 | | -------- | -------- | -------- | -------- | -------- | @@ -163,7 +163,7 @@ on(type: 'enableChange', callback: Callback<boolean>): void; 注册字幕配置启用的监听函数。 -**系统能力**:SystemCapability.Barrierfree.Accessibility.Hearing +**系统能力**:SystemCapability.BarrierFree.Accessibility.Hearing - 参数: @@ -186,7 +186,7 @@ on(type: 'styleChange', callback: Callback<CaptionsStyle>): void; 注册字幕风格变化的监听函数。 -**系统能力**:SystemCapability.Barrierfree.Accessibility.Hearing +**系统能力**:SystemCapability.BarrierFree.Accessibility.Hearing - 参数: @@ -209,7 +209,7 @@ off(type: 'enableChange', callback?: Callback<boolean>): void; 移除字幕配置启用的监听函数。 -**系统能力**:SystemCapability.Barrierfree.Accessibility.Hearing +**系统能力**:SystemCapability.BarrierFree.Accessibility.Hearing - 参数: @@ -230,7 +230,7 @@ off(type: 'styleChange', callback?: Callback<CaptionsStyle>): void; 移除字幕风格变化的监听函数。 -**系统能力**:SystemCapability.Barrierfree.Accessibility.Hearing +**系统能力**:SystemCapability.BarrierFree.Accessibility.Hearing - 参数: @@ -249,7 +249,7 @@ off(type: 'styleChange', callback?: Callback<CaptionsStyle>): void; 界面变更事件。 -**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core +**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core ### 属性 @@ -294,7 +294,7 @@ constructor(jsonObject) 无障碍事件类型。 -**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core +**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core | 名称 | 描述 | | -------- | -------- | @@ -314,7 +314,7 @@ constructor(jsonObject) 文本无障碍导航移动粒度。 -**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core +**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core | 名称 | 描述 | | -------- | -------- | @@ -328,7 +328,7 @@ constructor(jsonObject) 窗口变化类型。 -**系统能力**:以下各项对应的系统能力均为 SystemCapability.Barrierfree.Accessibility.Core +**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core | 名称 | 描述 | | -------- | -------- | @@ -344,7 +344,7 @@ getAbilityLists(abilityType: AbilityType, stateType: AbilityState): Promise<A 查询辅助应用列表。 -**系统能力**:SystemCapability.Barrierfree.Accessibility.Core +**系统能力**:SystemCapability.BarrierFree.Accessibility.Core - 参数: @@ -387,7 +387,7 @@ getAbilityLists(abilityType: AbilityType, stateType: AbilityState,callback: Asyn 查询辅助应用列表。 -**系统能力**:SystemCapability.Barrierfree.Accessibility.Core +**系统能力**:SystemCapability.BarrierFree.Accessibility.Core - 参数: @@ -426,7 +426,7 @@ getCaptionsManager(): CaptionsManager 获取无障碍字幕配置。 -**系统能力**:SystemCapability.Barrierfree.Accessibility.Hearing +**系统能力**:SystemCapability.BarrierFree.Accessibility.Hearing - 返回值: @@ -452,7 +452,7 @@ on(type: 'accessibilityStateChange' | 'touchGuideStateChange', callback: Callbac | 参数名 | 参数类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | - | type | string | 是 | 监听的事件类型。
- type 为'accessibilityStateChange'时表示监听类型为辅助功能启用状态变化监听;
**系统能力**:SystemCapability.Barrierfree.Accessibility.Core
- type 为'touchGuideStateChange'时表示监听类型为触摸浏览启用状态变化监听。
**系统能力**:SystemCapability.Barrierfree.Accessibility.Vision | + | type | string | 是 | 监听的事件类型。
- type 为'accessibilityStateChange'时表示监听类型为辅助功能启用状态变化监听;
**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
- type 为'touchGuideStateChange'时表示监听类型为触摸浏览启用状态变化监听。
**系统能力**:SystemCapability.BarrierFree.Accessibility.Vision | | callback | Callback<boolean> | 是 | 回调函数,在启用状态变化时将状态通过此函数进行通知。 | - 示例 @@ -475,7 +475,7 @@ off(type: ‘accessibilityStateChange ’ | ‘touchGuideStateChange’, callbac | 参数名 | 参数类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | - | type | string | 否 | 监听的事件类型。
- type 为'accessibilityStateChange'时表示监听类型为辅助功能启用状态变化监听;
**系统能力**:SystemCapability.Barrierfree.Accessibility.Core
- type 为'touchGuideStateChange'时表示监听类型为触摸浏览启用状态变化监听。
**系统能力**:SystemCapability.Barrierfree.Accessibility.Vision | + | type | string | 否 | 监听的事件类型。
- type 为'accessibilityStateChange'时表示监听类型为辅助功能启用状态变化监听;
**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
- type 为'touchGuideStateChange'时表示监听类型为触摸浏览启用状态变化监听。
**系统能力**:SystemCapability.BarrierFree.Accessibility.Vision | | callback | Callback<boolean> | 否 | 要取消的监听回调函数。 | - 示例 @@ -492,7 +492,7 @@ isOpenAccessibility(): Promise<boolean> 判断是否启用了辅助功能。 -**系统能力**:SystemCapability.Barrierfree.Accessibility.Core +**系统能力**:SystemCapability.BarrierFree.Accessibility.Core - 返回值: @@ -517,7 +517,7 @@ isOpenAccessibility(callback: AsyncCallback<boolean>): void 判断是否启用了辅助功能。 -**系统能力**:SystemCapability.Barrierfree.Accessibility.Core +**系统能力**:SystemCapability.BarrierFree.Accessibility.Core - 参数 @@ -543,7 +543,7 @@ isOpenTouchGuide(): Promise<boolean> 判断触摸浏览模式是否开启。 -**系统能力**:SystemCapability.Barrierfree.Accessibility.Core +**系统能力**:SystemCapability.BarrierFree.Accessibility.Core - 返回值: @@ -568,7 +568,7 @@ isOpenTouchGuide(callback: AsyncCallback<boolean>): void 判断触摸浏览模式是否开启。 -**系统能力**:SystemCapability.Barrierfree.Accessibility.Core +**系统能力**:SystemCapability.BarrierFree.Accessibility.Core - 参数 @@ -594,7 +594,7 @@ sendEvent(event: EventInfo): Promise<void> 发送无障碍事件。 -**系统能力**:SystemCapability.Barrierfree.Accessibility.Core +**系统能力**:SystemCapability.BarrierFree.Accessibility.Core - 参数: @@ -625,7 +625,7 @@ sendEvent(event: EventInfo, callback: AsyncCallback<void>): void 发送无障碍事件。 -**系统能力**:SystemCapability.Barrierfree.Accessibility.Core +**系统能力**:SystemCapability.BarrierFree.Accessibility.Core - 参数: -- GitLab From ef6a30e08ff7651a767bc9a3f5eec959a364a313 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=82=A6?= Date: Wed, 20 Jul 2022 07:59:04 +0000 Subject: [PATCH 118/868] update zh-cn/application-dev/device/device-location-info.md. Signed-off-by: sunyue --- zh-cn/application-dev/device/device-location-info.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/device/device-location-info.md b/zh-cn/application-dev/device/device-location-info.md index f5953d7740..dd33246667 100644 --- a/zh-cn/application-dev/device/device-location-info.md +++ b/zh-cn/application-dev/device/device-location-info.md @@ -84,7 +84,7 @@ } ``` - 配置字段详细说明见。 + 配置字段详细说明见[应用包结构配置文件的说明](../quick-start/stage-structure.md)。 2. 导入geolocation模块,所有与基础定位能力相关的功能API,都是通过该模块提供的。 -- GitLab From 5ffcbd37edaca2396217488879442d682d505f78 Mon Sep 17 00:00:00 2001 From: jidong Date: Tue, 19 Jul 2022 21:23:36 +0800 Subject: [PATCH 119/868] modify account docs Signed-off-by: jidong --- .../reference/apis/js-apis-appAccount.md | 53 ++++++++++--------- .../apis/js-apis-distributed-account.md | 4 +- .../reference/apis/js-apis-osAccount.md | 4 ++ 3 files changed, 33 insertions(+), 28 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-appAccount.md b/zh-cn/application-dev/reference/apis/js-apis-appAccount.md index 6104eeb9f2..da43ecfd8c 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-appAccount.md +++ b/zh-cn/application-dev/reference/apis/js-apis-appAccount.md @@ -89,7 +89,7 @@ addAccount(name: string, extraInfo: string, callback: AsyncCallback<void>) ### addAccount -addAccount(name: string, extraInfo: string): Promise<void> +addAccount(name: string, extraInfo?: string): Promise<void> 将此应用的帐号名或额外信息(能转换成string类型的其它信息)添加到帐号管理服务中,使用Promise方式异步返回结果。 @@ -100,7 +100,7 @@ addAccount(name: string, extraInfo: string): Promise<void> | 参数名 | 类型 | 必填 | 说明 | | --------- | ------ | ---- | ---------------------------------------- | | name | string | 是 | 要添加的应用帐号名称。 | -| extraInfo | string | 是 | 要添加的应用帐号的额外信息(能转换成string类型的其它信息),额外信息不能是应用帐号的敏感信息(如应用账号密码)。 | +| extraInfo | string | 否 | 要添加的应用帐号的额外信息(能转换成string类型的其它信息),额外信息不能是应用帐号的敏感信息(如应用账号密码)。 | **返回值:** @@ -1696,7 +1696,7 @@ checkAccountLabels(name: string, owner: string, labels: Array<string>, cal | name | string | 是 | 应用帐户的名称。 | | owner | string | 是 | 应用帐户的所有者。| | labels | Array<string> | 是 | 标签数组。 | -| callback | AsyncCallback<void> | 是 | 检查结果的回调。 | +| callback | AsyncCallback<boolean> | 是 | 检查结果的回调。 | **示例:** @@ -1710,7 +1710,7 @@ checkAccountLabels(name: string, owner: string, labels: Array<string>, cal ### checkAccountLabels9+ -checkAccountLabels(name: string, owner: string, labels: Array<string>): Promise<void> +checkAccountLabels(name: string, owner: string, labels: Array<string>): Promise<boolean> 检查指定帐户是否具有特定的标签集合,使用Promise方式异步返回结果。 @@ -1771,7 +1771,7 @@ selectAccountsByOptions(options: SelectAccountsOptions, callback: AsyncCallback& ### selectAccountsByOptions9+ -selectAccountsByOptions(options: SelectAccountsOptions): Promise<void> +selectAccountsByOptions(options: SelectAccountsOptions): Promise<Array<AppAccountInfo>> 根据选项选择请求方可访问的帐户列表,使用Promise方式异步返回结果。 @@ -1836,7 +1836,7 @@ verifyCredential(name: string, owner: string, callback: AuthenticatorCallback): ### verifyCredential9+ -verifyCredential(name: string, owner: string, options, callback: AuthenticatorCallback): void; +verifyCredential(name: string, owner: string, options: VerifyCredentialOptions, callback: AuthenticatorCallback): void; 验证用户凭据,使用callback回调异步返回结果。 @@ -1952,10 +1952,11 @@ setAuthenticatorProperties(owner: string, options: SetPropertiesOptions, callbac **系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.AppAccount。 -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------ | ---- | -------- | -| authType | string | 是 | 令牌的鉴权类型。 | -| token | string | 是 | 令牌的取值。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------- | ---- | ----------------- | +| authType | string | 是 | 令牌的鉴权类型。 | +| token | string | 是 | 令牌的取值。 | +| account | AppAccountInfo | 否 | 令牌所属的帐号信息。| ## AuthenticatorInfo8+ @@ -2011,21 +2012,21 @@ setAuthenticatorProperties(owner: string, options: SetPropertiesOptions, callbac **系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.AppAccount。 -| 名称 | 默认值 | 说明 | -| ----------------------------- | ---------------------- | ------------- | -| ACTION_ADD_ACCOUNT_IMPLICITLY | "addAccountImplicitly" | 表示操作,隐式添加帐号。 | -| ACTION_AUTHENTICATE | "authenticate" | 表示操作,鉴权。 | -| KEY_NAME | "name" | 表示键名,应用帐号名称。 | -| KEY_OWNER | "owner" | 表示键名,应用帐号所有者。 | -| KEY_TOKEN | "token" | 表示键名,令牌。 | -| KEY_ACTION | "action" | 表示键名,操作。 | -| KEY_AUTH_TYPE | "authType" | 表示键名,鉴权类型。 | -| KEY_SESSION_ID | "sessionId" | 表示键名,会话标识。 | -| KEY_CALLER_PID | "callerPid" | 表示键名,调用方PID。 | -| KEY_CALLER_UID | "callerUid" | 表示键名,调用方UID。 | -| KEY_CALLER_BUNDLE_NAME | "callerBundleName" | 表示键名,调用方包名。 | -| KEY_REQUIRED_LABELS | "requiredLabels" | 表示键名,必需的标签。 | -| KEY_BOOLEAN_RESULT | "booleanResult" | 表示键名,布尔返回值。 | +| 名称 | 默认值 | 说明 | +| -------------------------------- | ---------------------- | ----------------------- | +| ACTION_ADD_ACCOUNT_IMPLICITLY | "addAccountImplicitly" | 表示操作,隐式添加帐号。 | +| ACTION_AUTHENTICATE | "authenticate" | 表示操作,鉴权。 | +| KEY_NAME | "name" | 表示键名,应用帐号名称。 | +| KEY_OWNER | "owner" | 表示键名,应用帐号所有者。| +| KEY_TOKEN | "token" | 表示键名,令牌。 | +| KEY_ACTION | "action" | 表示键名,操作。 | +| KEY_AUTH_TYPE | "authType" | 表示键名,鉴权类型。 | +| KEY_SESSION_ID | "sessionId" | 表示键名,会话标识。 | +| KEY_CALLER_PID | "callerPid" | 表示键名,调用方PID。 | +| KEY_CALLER_UID | "callerUid" | 表示键名,调用方UID。 | +| KEY_CALLER_BUNDLE_NAME | "callerBundleName" | 表示键名,调用方包名。 | +| KEY_REQUIRED_LABELS9+ | "requiredLabels" | 表示键名,必需的标签。 | +| KEY_BOOLEAN_RESULT9+ | "booleanResult" | 表示键名,布尔返回值。 | ## ResultCode8+ @@ -2124,7 +2125,7 @@ onRequestRedirected: (request: Want) => void ### onRequestContinued9+ -onRequestContinued: () => void +onRequestContinued?: () => void 通知请求被继续处理。 diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributed-account.md b/zh-cn/application-dev/reference/apis/js-apis-distributed-account.md index f6e715f41a..b732f93c73 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-distributed-account.md +++ b/zh-cn/application-dev/reference/apis/js-apis-distributed-account.md @@ -43,7 +43,7 @@ queryOsAccountDistributedInfo(callback: AsyncCallback<DistributedInfo>): v **系统能力:** SystemCapability.Account.OsAccount -**需要权限:** ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.DISTRIBUTED_DATASYNC,该权限仅供系统应用使用。 +**需要权限:** ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.DISTRIBUTED_DATASYNC。 - 参数: | 参数名 | 类型 | 必填 | 说明 | @@ -68,7 +68,7 @@ queryOsAccountDistributedInfo(): Promise<DistributedInfo> **系统能力:** SystemCapability.Account.OsAccount -**需要权限:** ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.DISTRIBUTED_DATASYNC,该权限仅供系统应用使用。 +**需要权限:** ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.DISTRIBUTED_DATASYNC。 - 返回值: | 类型 | 说明 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-osAccount.md b/zh-cn/application-dev/reference/apis/js-apis-osAccount.md index 9582d405e9..dbd92d9a71 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-osAccount.md +++ b/zh-cn/application-dev/reference/apis/js-apis-osAccount.md @@ -2017,6 +2017,8 @@ queryOsAccountConstraintSourceTypes(localId: number, constraint: string): Promis 约束来源类型信息。 +此接口为系统接口。 + **系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount。 | 参数名 | 类型 | 必填 | 说明 | @@ -2028,6 +2030,8 @@ queryOsAccountConstraintSourceTypes(localId: number, constraint: string): Promis 枚举,约束来源类型。 +此接口为系统接口。 + **系统能力:** 以下各项对应的系统能力均为SystemCapability.Account.OsAccount。 | 参数 | 默认值 | 说明 | -- GitLab From 0910fe0bc09934a2145efdb104931a9d92f6b10f Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Wed, 20 Jul 2022 17:05:28 +0800 Subject: [PATCH 120/868] hdi api Signed-off-by: duangavin123 --- zh-cn/device-dev/api/_d_a_c.md | 160 ------------------ zh-cn/device-dev/api/_dac_io_msg.md | 24 --- zh-cn/device-dev/api/dac__if_8h.md | 36 ---- .../{api => reference/hdi-apis}/Readme-CN.md | 9 +- .../hdi-apis}/____attribute____.md | 4 +- .../{api => reference/hdi-apis}/_alignment.md | 0 .../hdi-apis}/_alloc_info.md | 0 .../{api => reference/hdi-apis}/_audio.md | 34 ++-- .../hdi-apis}/_audio_adapter.md | 20 +-- .../hdi-apis}/_audio_adapter_descriptor.md | 0 .../hdi-apis}/_audio_attribute.md | 0 .../hdi-apis}/_audio_capture.md | 4 +- .../hdi-apis}/_audio_control.md | 0 .../hdi-apis}/_audio_dev_ext_info.md | 0 .../hdi-apis}/_audio_device_descriptor.md | 0 .../hdi-apis}/_audio_manager.md | 2 +- .../hdi-apis}/_audio_mix_ext_info.md | 0 .../_audio_mmap_buffer_descripter.md | 0 .../hdi-apis}/_audio_port.md | 0 .../hdi-apis}/_audio_port_cap.md | 0 .../hdi-apis}/_audio_port_capability.md | 0 .../hdi-apis}/_audio_render.md | 18 +- .../hdi-apis}/_audio_route.md | 0 .../hdi-apis}/_audio_route_node.md | 0 .../hdi-apis}/_audio_sample_attributes.md | 0 .../hdi-apis}/_audio_scene.md | 0 .../hdi-apis}/_audio_scene_descriptor.md | 0 .../hdi-apis}/_audio_session_ext_info.md | 0 .../hdi-apis}/_audio_sub_port_capability.md | 0 .../hdi-apis}/_audio_time_stamp.md | 0 .../hdi-apis}/_audio_volume.md | 0 .../hdi-apis}/_auth_result_info.md | 13 ++ .../hdi-apis}/_auth_solution.md | 8 +- .../hdi-apis}/_battery_info.md | 0 .../hdi-apis}/_buffer_data.md | 0 .../{api => reference/hdi-apis}/_camera.md | 4 +- .../{api => reference/hdi-apis}/_codec.md | 84 ++++----- .../hdi-apis}/_codec_callback_type.md | 6 +- .../hdi-apis}/_codec_comp_capability.md | 0 .../hdi-apis}/_codec_component_manager.md | 0 .../hdi-apis}/_codec_component_type.md | 36 ++-- .../hdi-apis}/_comp_ver_info.md | 0 .../hdi-apis}/_credential_info.md | 31 +--- .../hdi-apis}/_device_funcs.md | 0 .../hdi-apis}/_device_info.md | 0 .../{api => reference/hdi-apis}/_display.md | 9 +- .../hdi-apis}/_display_capability.md | 0 .../hdi-apis}/_display_info.md | 0 .../hdi-apis}/_display_mode_info.md | 0 .../hdi-apis}/_enroll_param.md | 10 +- .../reference/hdi-apis/_enroll_resultinfo.md | 72 ++++++++ .../hdi-apis}/_enrolled_info.md | 0 .../hdi-apis}/_event_info.md | 0 .../hdi-apis}/_event_package.md | 0 .../hdi-apis}/_executor_info.md | 2 +- .../hdi-apis}/_executor_register_info.md | 16 +- .../hdi-apis}/_executor_send_msg.md | 19 ++- .../hdi-apis}/_face_auth_types_8idl.md | 2 +- .../_get_buffer_handle_usage_params.md | 0 .../{api => reference/hdi-apis}/_gfx_funcs.md | 0 .../{api => reference/hdi-apis}/_gfx_opt.md | 0 .../hdi-apis}/_gralloc_funcs.md | 0 .../hdi-apis}/_h_d_r_capability.md | 0 .../hdi-apis}/_h_d_r_meta_data.md | 0 .../hdi-apis}/_hdf_face_auth.md | 2 +- .../hdi-apis}/_hdf_pin_auth.md | 0 .../hdi-apis}/_hdf_thermal_callback_info.md | 0 .../hdi-apis}/_hdf_user_auth.md | 4 +- .../hdi-apis}/_i_battery_callback_8idl.md | 0 .../hdi-apis}/_i_battery_interface_8idl.md | 0 .../{api => reference/hdi-apis}/_i_circle.md | 0 .../hdi-apis}/_i_face_auth_interface_8idl.md | 0 .../hdi-apis}/_i_input_interface.md | 0 .../{api => reference/hdi-apis}/_i_line.md | 0 .../hdi-apis}/_i_pin_auth_interface_8idl.md | 0 .../hdi-apis}/_i_power_hdi_callback_8idl.md | 0 .../hdi-apis}/_i_power_interface_8idl.md | 0 .../{api => reference/hdi-apis}/_i_rect.md | 0 .../{api => reference/hdi-apis}/_i_surface.md | 0 .../hdi-apis}/_i_thermal_callback_8idl.md | 0 .../hdi-apis}/_i_thermal_interface_8idl.md | 0 .../hdi-apis}/_i_user_auth_interface_8idl.md | 0 .../{api => reference/hdi-apis}/_i_wi_fi.md | 4 +- .../hdi-apis}/_i_wi_fi_ap.md | 8 +- .../hdi-apis}/_i_wi_fi_base_feature.md | 28 +-- .../hdi-apis}/_i_wi_fi_sta.md | 4 +- .../hdi-apis}/_identify_result_info.md | 0 .../{api => reference/hdi-apis}/_input.md | 16 +- .../hdi-apis}/_input_controller.md | 0 .../hdi-apis}/_input_extra_cmd.md | 0 .../hdi-apis}/_input_manager.md | 0 .../hdi-apis}/_input_report_event_cb.md | 0 .../hdi-apis}/_input_reporter.md | 0 .../hdi-apis}/_layer_alpha.md | 0 .../hdi-apis}/_layer_buffer.md | 0 .../hdi-apis}/_layer_funcs.md | 0 .../hdi-apis}/_layer_info.md | 0 .../{api => reference/hdi-apis}/_light.md | 2 +- .../hdi-apis}/_light_effect.md | 0 .../hdi-apis}/_light_flash_effect.md | 0 .../hdi-apis}/_light_info.md | 0 .../hdi-apis}/_light_interface.md | 0 ...h_o_s_1_1_camera_1_1_capture_ended_info.md | 0 ...h_o_s_1_1_camera_1_1_capture_error_info.md | 0 .../_o_h_o_s_1_1_camera_1_1_capture_info.md | 0 ..._o_h_o_s_1_1_camera_1_1_i_camera_device.md | 0 ...1_1_camera_1_1_i_camera_device_callback.md | 0 .../_o_h_o_s_1_1_camera_1_1_i_camera_host.md | 0 ...s_1_1_camera_1_1_i_camera_host_callback.md | 0 ..._1_camera_1_1_i_offline_stream_operator.md | 0 ..._h_o_s_1_1_camera_1_1_i_stream_operator.md | 0 ...1_camera_1_1_i_stream_operator_callback.md | 0 ...o_h_o_s_1_1_camera_1_1_stream_attribute.md | 0 .../_o_h_o_s_1_1_camera_1_1_stream_info.md | 0 ...o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md | 0 ...o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md | 0 .../_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md | 0 .../_o_h_o_s_1_1_u_s_b_1_1_usb_info.md | 0 .../_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md | 0 .../_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md | 0 .../_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md | 0 .../hdi-apis}/_omx_codec_buffer.md | 0 .../hdi-apis}/_pin_auth_types_8idl.md | 0 .../hdi-apis}/_power_types_8idl.md | 2 +- .../hdi-apis}/_present_timestamp.md | 0 .../hdi-apis}/_property_object.md | 0 .../hdi-apis}/_range_value.md | 0 .../{api => reference/hdi-apis}/_rect.md | 0 .../{api => reference/hdi-apis}/_rectangle.md | 0 .../hdi-apis}/_schedule_info.md | 10 +- .../{api => reference/hdi-apis}/_sensor.md | 2 +- .../hdi-apis}/_sensor_events.md | 0 .../hdi-apis}/_sensor_information.md | 0 .../hdi-apis}/_sensor_interface.md | 0 .../{api => reference/hdi-apis}/_sta_info.md | 0 .../hdi-apis}/_support_buffer_type.md | 0 .../hdi-apis}/_template_info.md | 0 .../hdi-apis}/_thermal_types_8idl.md | 0 .../hdi-apis}/_thermal_zone_info.md | 0 .../hdi-apis}/_types_8idl.md | 2 +- .../{api => reference/hdi-apis}/_u_s_b.md | 4 +- .../hdi-apis}/_use_buffer_type.md | 0 .../hdi-apis}/_user_auth_types_8idl.md | 1 + .../reference/hdi-apis/_user_executor_info.md | 59 +++++++ .../hdi-apis}/_verify_alloc_info.md | 0 .../{api => reference/hdi-apis}/_vibrator.md | 2 +- .../hdi-apis}/_vibrator_interface.md | 0 .../hdi-apis}/_video_port_cap.md | 0 .../{api => reference/hdi-apis}/_w_l_a_n.md | 0 .../{api => reference/hdi-apis}/annotated.md | 6 +- .../hdi-apis}/audio__adapter_8h.md | 0 .../hdi-apis}/audio__attribute_8h.md | 0 .../hdi-apis}/audio__capture_8h.md | 0 .../hdi-apis}/audio__control_8h.md | 0 .../hdi-apis}/audio__manager_8h.md | 0 .../hdi-apis}/audio__render_8h.md | 0 .../hdi-apis}/audio__scene_8h.md | 0 .../hdi-apis}/audio__types_8h.md | 2 +- .../hdi-apis}/audio__volume_8h.md | 0 .../{api => reference/hdi-apis}/battery.md | 2 +- .../hdi-apis}/codec__callback__if_8h.md | 0 .../hdi-apis}/codec__common__type_8h.md | 2 +- .../hdi-apis}/codec__component__if_8h.md | 0 .../hdi-apis}/codec__component__manager_8h.md | 0 .../hdi-apis}/codec__component__type_8h.md | 2 +- .../hdi-apis}/display__device_8h.md | 0 .../hdi-apis}/display__gfx_8h.md | 0 .../hdi-apis}/display__gralloc_8h.md | 0 .../hdi-apis}/display__layer_8h.md | 0 .../hdi-apis}/display__type_8h.md | 2 +- .../hdi-apis}/face__auth_2_i_executor_8idl.md | 0 .../face__auth_2_i_executor_callback_8idl.md | 0 .../{api => reference/hdi-apis}/files.md | 2 - .../hdi-apis}/icamera__device_8h.md | 0 .../hdi-apis}/icamera__device__callback_8h.md | 0 .../hdi-apis}/icamera__host_8h.md | 0 .../hdi-apis}/icamera__host__callback_8h.md | 0 .../{api => reference/hdi-apis}/index.md | 2 - .../hdi-apis}/input__controller_8h.md | 0 .../hdi-apis}/input__manager_8h.md | 0 .../hdi-apis}/input__reporter_8h.md | 0 .../hdi-apis}/input__type_8h.md | 2 +- .../hdi-apis}/interface_i_battery_callback.md | 0 .../interface_i_battery_interface.md | 0 .../hdi-apis}/interface_i_executor.md | 0 .../interface_i_executor_callback.md | 0 .../interface_i_face_auth_interface.md | 0 .../interface_i_pin_auth_interface.md | 0 .../interface_i_power_hdi_callback.md | 0 .../hdi-apis}/interface_i_power_interface.md | 0 .../hdi-apis}/interface_i_thermal_callback.md | 0 .../interface_i_thermal_interface.md | 0 .../interface_i_user_auth_interface.md | 26 +-- .../hdi-apis}/interface_pin_i_executor.md | 2 +- .../interface_pin_i_executor_callback.md | 0 .../ioffline__stream__operator_8h.md | 0 .../hdi-apis}/istream__operator_8h.md | 0 .../istream__operator__callback_8h.md | 0 .../hdi-apis}/light_8typeh.md | 0 .../hdi-apis}/light__if_8h.md | 0 .../hdi-apis}/pin__auth_2_i_executor_8idl.md | 0 .../pin__auth_2_i_executor_callback_8idl.md | 0 .../{api => reference/hdi-apis}/power.md | 6 +- .../public_sys-resources/icon-caution.gif | Bin .../public_sys-resources/icon-danger.gif | Bin .../public_sys-resources/icon-note.gif | Bin .../public_sys-resources/icon-notice.gif | Bin .../public_sys-resources/icon-tip.gif | Bin .../public_sys-resources/icon-warning.gif | Bin .../hdi-apis}/sensor__if_8h.md | 0 .../hdi-apis}/sensor__type_8h.md | 2 +- .../{api => reference/hdi-apis}/thermal.md | 0 .../{api => reference/hdi-apis}/total.md | 0 .../{api => reference/hdi-apis}/types_8h.md | 2 +- ...n_audio_scene_descriptor_1_1_scene_desc.md | 0 .../hdi-apis}/union_port_cap.md | 0 .../hdi-apis}/usb__info_8h.md | 0 .../hdi-apis}/usbd__client_8h.md | 0 .../hdi-apis}/usbd__subscriber_8h.md | 0 .../hdi-apis}/usbd__type_8h.md | 2 +- .../hdi-apis}/vibrator__if_8h.md | 0 .../hdi-apis}/vibrator__type_8h.md | 2 +- .../hdi-apis}/wifi__hal_8h.md | 0 .../hdi-apis}/wifi__hal__ap__feature_8h.md | 0 .../hdi-apis}/wifi__hal__base__feature_8h.md | 0 .../hdi-apis}/wifi__hal__sta__feature_8h.md | 0 226 files changed, 380 insertions(+), 457 deletions(-) delete mode 100644 zh-cn/device-dev/api/_d_a_c.md delete mode 100644 zh-cn/device-dev/api/_dac_io_msg.md delete mode 100644 zh-cn/device-dev/api/dac__if_8h.md rename zh-cn/device-dev/{api => reference/hdi-apis}/Readme-CN.md (98%) rename zh-cn/device-dev/{api => reference/hdi-apis}/____attribute____.md (91%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_alignment.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_alloc_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio.md (98%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_adapter.md (81%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_adapter_descriptor.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_attribute.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_capture.md (85%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_control.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_dev_ext_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_device_descriptor.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_manager.md (96%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_mix_ext_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_mmap_buffer_descripter.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_port.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_port_cap.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_port_capability.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_render.md (80%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_route.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_route_node.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_sample_attributes.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_scene.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_scene_descriptor.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_session_ext_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_sub_port_capability.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_time_stamp.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_audio_volume.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_auth_result_info.md (86%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_auth_solution.md (75%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_battery_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_buffer_data.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_camera.md (99%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_codec.md (99%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_codec_callback_type.md (72%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_codec_comp_capability.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_codec_component_manager.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_codec_component_type.md (56%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_comp_ver_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_credential_info.md (62%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_device_funcs.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_device_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_display.md (99%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_display_capability.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_display_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_display_mode_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_enroll_param.md (64%) create mode 100644 zh-cn/device-dev/reference/hdi-apis/_enroll_resultinfo.md rename zh-cn/device-dev/{api => reference/hdi-apis}/_enrolled_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_event_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_event_package.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_executor_info.md (98%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_executor_register_info.md (68%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_executor_send_msg.md (64%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_face_auth_types_8idl.md (98%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_get_buffer_handle_usage_params.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_gfx_funcs.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_gfx_opt.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_gralloc_funcs.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_h_d_r_capability.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_h_d_r_meta_data.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_hdf_face_auth.md (99%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_hdf_pin_auth.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_hdf_thermal_callback_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_hdf_user_auth.md (97%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_battery_callback_8idl.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_battery_interface_8idl.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_circle.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_face_auth_interface_8idl.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_input_interface.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_line.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_pin_auth_interface_8idl.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_power_hdi_callback_8idl.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_power_interface_8idl.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_rect.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_surface.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_thermal_callback_8idl.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_thermal_interface_8idl.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_user_auth_interface_8idl.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_wi_fi.md (97%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_wi_fi_ap.md (79%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_wi_fi_base_feature.md (74%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_i_wi_fi_sta.md (87%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_identify_result_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_input.md (94%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_input_controller.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_input_extra_cmd.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_input_manager.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_input_report_event_cb.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_input_reporter.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_layer_alpha.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_layer_buffer.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_layer_funcs.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_layer_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_light.md (99%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_light_effect.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_light_flash_effect.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_light_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_light_interface.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_camera_1_1_capture_error_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_camera_1_1_capture_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_camera_1_1_i_camera_device.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_camera_1_1_i_camera_host.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_camera_1_1_stream_attribute.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_camera_1_1_stream_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_omx_codec_buffer.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_pin_auth_types_8idl.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_power_types_8idl.md (97%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_present_timestamp.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_property_object.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_range_value.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_rect.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_rectangle.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_schedule_info.md (88%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_sensor.md (99%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_sensor_events.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_sensor_information.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_sensor_interface.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_sta_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_support_buffer_type.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_template_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_thermal_types_8idl.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_thermal_zone_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_types_8idl.md (98%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_u_s_b.md (99%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_use_buffer_type.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_user_auth_types_8idl.md (95%) create mode 100644 zh-cn/device-dev/reference/hdi-apis/_user_executor_info.md rename zh-cn/device-dev/{api => reference/hdi-apis}/_verify_alloc_info.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_vibrator.md (99%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_vibrator_interface.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_video_port_cap.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/_w_l_a_n.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/annotated.md (98%) rename zh-cn/device-dev/{api => reference/hdi-apis}/audio__adapter_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/audio__attribute_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/audio__capture_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/audio__control_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/audio__manager_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/audio__render_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/audio__scene_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/audio__types_8h.md (99%) rename zh-cn/device-dev/{api => reference/hdi-apis}/audio__volume_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/battery.md (99%) rename zh-cn/device-dev/{api => reference/hdi-apis}/codec__callback__if_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/codec__common__type_8h.md (99%) rename zh-cn/device-dev/{api => reference/hdi-apis}/codec__component__if_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/codec__component__manager_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/codec__component__type_8h.md (99%) rename zh-cn/device-dev/{api => reference/hdi-apis}/display__device_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/display__gfx_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/display__gralloc_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/display__layer_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/display__type_8h.md (99%) rename zh-cn/device-dev/{api => reference/hdi-apis}/face__auth_2_i_executor_8idl.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/face__auth_2_i_executor_callback_8idl.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/files.md (97%) rename zh-cn/device-dev/{api => reference/hdi-apis}/icamera__device_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/icamera__device__callback_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/icamera__host_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/icamera__host__callback_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/index.md (90%) rename zh-cn/device-dev/{api => reference/hdi-apis}/input__controller_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/input__manager_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/input__reporter_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/input__type_8h.md (98%) rename zh-cn/device-dev/{api => reference/hdi-apis}/interface_i_battery_callback.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/interface_i_battery_interface.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/interface_i_executor.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/interface_i_executor_callback.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/interface_i_face_auth_interface.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/interface_i_pin_auth_interface.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/interface_i_power_hdi_callback.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/interface_i_power_interface.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/interface_i_thermal_callback.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/interface_i_thermal_interface.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/interface_i_user_auth_interface.md (88%) rename zh-cn/device-dev/{api => reference/hdi-apis}/interface_pin_i_executor.md (98%) rename zh-cn/device-dev/{api => reference/hdi-apis}/interface_pin_i_executor_callback.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/ioffline__stream__operator_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/istream__operator_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/istream__operator__callback_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/light_8typeh.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/light__if_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/pin__auth_2_i_executor_8idl.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/pin__auth_2_i_executor_callback_8idl.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/power.md (97%) rename zh-cn/device-dev/{api => reference/hdi-apis}/public_sys-resources/icon-caution.gif (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/public_sys-resources/icon-danger.gif (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/public_sys-resources/icon-note.gif (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/public_sys-resources/icon-notice.gif (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/public_sys-resources/icon-tip.gif (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/public_sys-resources/icon-warning.gif (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/sensor__if_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/sensor__type_8h.md (99%) rename zh-cn/device-dev/{api => reference/hdi-apis}/thermal.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/total.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/types_8h.md (99%) rename zh-cn/device-dev/{api => reference/hdi-apis}/union_audio_scene_descriptor_1_1_scene_desc.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/union_port_cap.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/usb__info_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/usbd__client_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/usbd__subscriber_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/usbd__type_8h.md (98%) rename zh-cn/device-dev/{api => reference/hdi-apis}/vibrator__if_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/vibrator__type_8h.md (97%) rename zh-cn/device-dev/{api => reference/hdi-apis}/wifi__hal_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/wifi__hal__ap__feature_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/wifi__hal__base__feature_8h.md (100%) rename zh-cn/device-dev/{api => reference/hdi-apis}/wifi__hal__sta__feature_8h.md (100%) diff --git a/zh-cn/device-dev/api/_d_a_c.md b/zh-cn/device-dev/api/_d_a_c.md deleted file mode 100644 index 9449f873e5..0000000000 --- a/zh-cn/device-dev/api/_d_a_c.md +++ /dev/null @@ -1,160 +0,0 @@ -# DAC - - -## **汇总** - - -### 文件 - - | 文件 | 描述 | -| -------- | -------- | -| [dac_if.h](dac__if_8h.md) | 声明标准DAC接口函数。 | - - -### 类 - - | 类 | 描述 | -| -------- | -------- | -| [DacIoMsg](_dac_io_msg.md) | DAC设备信息传输结构体 [更多...](_dac_io_msg.md) | - - -### 函数 - - | 函数 | 描述 | -| -------- | -------- | -| [DacOpen](#dacopen) (uint32_t number) | 获取DAC控制器的句柄。 [更多...](#dacopen) | -| [DacClose](#dacclose) (DevHandle handle) | 释放DAC控制器的句柄。 [更多...](#dacclose) | -| [DacWrite](#dacwrite) (DevHandle handle, uint32_t channel, uint32_t val) | 启动DAC设备进行传输,将目标值写入指定的DAC通道。 [更多...](#dacwrite) | - - -### 变量 - - | 变量 名称 | 描述 | -| -------- | -------- | -| [DacIoMsg::number](#number) | DAC设备号 | -| [DacIoMsg::channel](#channel) | DAC设备通道号 | - - -## **详细描述** - -提供数模转换器 (DAC) 接口。 - -该模块允许驱动程序在DAC控制器上执行操作以访问DAC通道上的设备,包括创建和销毁DAC控制器句柄和写入数据。 - -**Since:** - -3.1 - - -## **函数说明** - - -### DacClose() - - -``` -void DacClose (DevHandle handle) -``` - -**描述:** - -释放DAC控制器的句柄。 - -如果不再需要访问DAC控制器,则应调用该函数关闭其句柄,以释放未使用的内存资源。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| handle | 表示指向DAC控制器的设备句柄的指针。 | - -**Since:** - -3.1 - - -### DacOpen() - - -``` -DevHandle DacOpen (uint32_t number) -``` - -**描述:** - -获取DAC控制器的句柄。 - -您必须在访问DAC设备之前调用此函数。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| number | 表示DAC控制器ID。 | - -**返回:** - -DAC控制器的DevHandle指针 表示操作成功。 - -NULL 表示操作失败。 - -**Since:** - -3.1 - - -### DacWrite() - - -``` -int32_t DacWrite (DevHandle handle, uint32_t channel, uint32_t val ) -``` - -**描述:** - -启动DAC设备进行传输,将目标值写入指定的DAC通道。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| handle | 表示通过DacOpen获取的DAC控制器设备句柄的指针。 | -| channel | 表示DAC传输消息所通过的通道。 | -| val | 表示设定的目标值。 | - -**返回:** - -0 表示操作成功。 - -负值 表示操作失败。 - -**Since:** - -3.1 - - -## **变量说明** - - -### channel - - -``` -uint32_t DacIoMsg::channel -``` - -**描述:** - -DAC设备通道号 - - -### number - - -``` -uint32_t DacIoMsg::number -``` - -**描述:** - -DAC设备号 diff --git a/zh-cn/device-dev/api/_dac_io_msg.md b/zh-cn/device-dev/api/_dac_io_msg.md deleted file mode 100644 index b506f7dfb8..0000000000 --- a/zh-cn/device-dev/api/_dac_io_msg.md +++ /dev/null @@ -1,24 +0,0 @@ -# DacIoMsg - - -## **概述** - -**所属模块:** - -[DAC](_d_a_c.md) - - -## **汇总** - - -### Public 属性 - - | Public 属性 | 描述 | -| -------- | -------- | -| [number](_d_a_c.md#number) | DAC设备号 | -| [channel](_d_a_c.md#channel) | DAC设备通道号 | - - -## **详细描述** - -DAC设备信息传输结构体。 diff --git a/zh-cn/device-dev/api/dac__if_8h.md b/zh-cn/device-dev/api/dac__if_8h.md deleted file mode 100644 index 32012972b8..0000000000 --- a/zh-cn/device-dev/api/dac__if_8h.md +++ /dev/null @@ -1,36 +0,0 @@ -# dac_if.h - - -## **概述** - -**所属模块:** - -[DAC](_d_a_c.md) - - -## **汇总** - - -### 类 - - | 类 | 描述 | -| -------- | -------- | -| [DacIoMsg](_dac_io_msg.md) | DAC设备信息传输结构体 [更多...](_dac_io_msg.md) | - - -### 函数 - - | 函数 | 描述 | -| -------- | -------- | -| [DacOpen](_d_a_c.md#dacopen) (uint32_t number) | 获取DAC控制器的句柄。 [更多...](_d_a_c.md#dacopen) | -| [DacClose](_d_a_c.md#dacclose) (DevHandle handle) | 释放DAC控制器的句柄。 [更多...](_d_a_c.md#dacclose) | -| [DacWrite](_d_a_c.md#dacwrite) (DevHandle handle, uint32_t channel, uint32_t val) | 启动DAC设备进行传输,将目标值写入指定的DAC通道。 [更多...](_d_a_c.md#dacwrite) | - - -## **详细描述** - -声明标准DAC接口函数。 - -**Since:** - -3.1 diff --git a/zh-cn/device-dev/api/Readme-CN.md b/zh-cn/device-dev/reference/hdi-apis/Readme-CN.md similarity index 98% rename from zh-cn/device-dev/api/Readme-CN.md rename to zh-cn/device-dev/reference/hdi-apis/Readme-CN.md index 741ee1efc4..c3a79510ce 100644 --- a/zh-cn/device-dev/api/Readme-CN.md +++ b/zh-cn/device-dev/reference/hdi-apis/Readme-CN.md @@ -1,12 +1,11 @@ -# Native API参数参考 +# HDI 接口参考 -- NativeAPI参考 +- 模块 - [Audio](_audio.md) - [Battery](battery.md) - [Camera](_camera.md) - [Codec](_codec.md) - [Display](_display.md) - - [DAC](_d_a_c.md) - [HdfFaceAuth](_hdf_face_auth.md) - [Input](_input.md) - [Light](_light.md) @@ -34,7 +33,6 @@ - [codec_component_if.h](codec__component__if_8h.md) - [codec_component_manager.h](codec__component__manager_8h.md) - [codec_component_type.h](codec__component__type_8h.md) - - [dac_if.h](dac__if_8h.md) - [display_device.h](display__device_8h.md) - [display_gfx.h](display__gfx_8h.md) - [display_gralloc.h](display__gralloc_8h.md) @@ -123,7 +121,6 @@ - [CodecComponentType](_codec_component_type.md) - [CompVerInfo](_comp_ver_info.md) - [CredentialInfo](_credential_info.md) - - [DacIoMsg](_dac_io_msg.md) - [DeviceFuncs](_device_funcs.md) - [DeviceInfo](_device_info.md) - [DisplayCapability](_display_capability.md) @@ -131,9 +128,11 @@ - [DisplayModeInfo](_display_mode_info.md) - [EnrolledInfo](_enrolled_info.md) - [EnrollParam](_enroll_param.md) + - [EnrollResultInfo](_enroll_resultinfo.md) - [EventInfo](_event_info.md) - [EventPackage](_event_package.md) - [ExecutorInfo](_executor_info.md) + - [ExecutorInfo](_user_executor_info.md) - [ExecutorRegisterInfo](_executor_register_info.md) - [ExecutorSendMsg](_executor_send_msg.md) - [GetBufferHandleUsageParams](_get_buffer_handle_usage_params.md) diff --git a/zh-cn/device-dev/api/____attribute____.md b/zh-cn/device-dev/reference/hdi-apis/____attribute____.md similarity index 91% rename from zh-cn/device-dev/api/____attribute____.md rename to zh-cn/device-dev/reference/hdi-apis/____attribute____.md index c783085e55..c271b05bee 100644 --- a/zh-cn/device-dev/api/____attribute____.md +++ b/zh-cn/device-dev/reference/hdi-apis/____attribute____.md @@ -29,6 +29,6 @@ ## **详细描述** -扩展数据句柄结构体定义 +扩展数据句柄结构体定义。 -YUV描述信息结构体定义 +YUV描述信息结构体定义。 diff --git a/zh-cn/device-dev/api/_alignment.md b/zh-cn/device-dev/reference/hdi-apis/_alignment.md similarity index 100% rename from zh-cn/device-dev/api/_alignment.md rename to zh-cn/device-dev/reference/hdi-apis/_alignment.md diff --git a/zh-cn/device-dev/api/_alloc_info.md b/zh-cn/device-dev/reference/hdi-apis/_alloc_info.md similarity index 100% rename from zh-cn/device-dev/api/_alloc_info.md rename to zh-cn/device-dev/reference/hdi-apis/_alloc_info.md diff --git a/zh-cn/device-dev/api/_audio.md b/zh-cn/device-dev/reference/hdi-apis/_audio.md similarity index 98% rename from zh-cn/device-dev/api/_audio.md rename to zh-cn/device-dev/reference/hdi-apis/_audio.md index a12fe314af..554eb44177 100644 --- a/zh-cn/device-dev/api/_audio.md +++ b/zh-cn/device-dev/reference/hdi-apis/_audio.md @@ -58,7 +58,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [AudioPortDirection](#audioportdirection) { PORT_OUT = 0x1u, PORT_IN = 0x2u, PORT_OUT_IN = 0x3u } | 音频端口的类型 [更多...](#audioportdirection) | | [AudioPortPin](#audioportpin) {   PIN_NONE = 0x0u, PIN_OUT_SPEAKER = 0x1u, PIN_OUT_HEADSET = 0x2u, PIN_OUT_LINEOUT = 0x4u,   PIN_OUT_HDMI = 0x8u, PIN_OUT_USB = 0x10u, PIN_OUT_USB_EXT = 0x20u, PIN_IN_MIC = 0x8000001u,   PIN_IN_HS_MIC = 0x8000002u, PIN_IN_LINEIN = 0x8000004u, PIN_IN_USB_EXT = 0x8000008u } | 音频适配器端口的PIN脚 [更多...](#audioportpin) | @@ -85,7 +85,7 @@ ### 变量 - | 变量 名称 | 描述 | + | 变量 | 描述 | | -------- | -------- | | [AudioPort::dir](#dir) | 音频端口的类型。 | | [AudioPort::portId](#portid-14) | 音频端口的ID。 | @@ -180,7 +180,7 @@ typedef int32_t(* RenderCallback) (enum AudioCallbackType, void *reserved, void **描述:** -回调函数指针 +回调函数指针。 **参数:** @@ -211,7 +211,7 @@ enum AudioCallbackType **描述:** -回调函数通知事件类型 +回调函数通知事件类型。 | 枚举值 | 描述 | | -------- | -------- | @@ -231,7 +231,7 @@ enum AudioCategory **描述:** -音频类型(category) +音频类型(category)。 | 枚举值 | 描述 | | -------- | -------- | @@ -250,9 +250,9 @@ enum AudioChannelMask **描述:** -音频通道掩码(mask) +音频通道掩码(mask)。 -定义音频声道的位置 +定义音频声道的位置。 | 枚举值 | 描述 | | -------- | -------- | @@ -271,7 +271,7 @@ enum AudioChannelMode **描述:** -音频播放的通道模式 +音频播放的通道模式。 > ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:** > 下面的模式是针对双通道立体声的音频播放而设置,其他不支持。 @@ -297,7 +297,7 @@ enum AudioDrainNotifyType **描述:** -DrainBuffer函数结束类型 +DrainBuffer函数结束类型。 | 枚举值 | 描述 | | -------- | -------- | @@ -314,7 +314,7 @@ enum AudioFormat **描述:** -音频格式 +音频格式。 | 枚举值 | 描述 | | -------- | -------- | @@ -342,7 +342,7 @@ enum AudioPortDirection **描述:** -音频端口的类型 +音频端口的类型。 | 枚举值 | 描述 | | -------- | -------- | @@ -360,7 +360,7 @@ enum AudioPortPassthroughMode **描述:** -音频端口的数据透传模式 +音频端口的数据透传模式。 | 枚举值 | 描述 | | -------- | -------- | @@ -379,7 +379,7 @@ enum AudioPortPin **描述:** -音频适配器端口的PIN脚 +音频适配器端口的PIN脚。 | 枚举值 | 描述 | | -------- | -------- | @@ -405,7 +405,7 @@ enum AudioPortRole **描述:** -音频端口角色 +音频端口角色。 | 枚举值 | 描述 | | -------- | -------- | @@ -442,7 +442,7 @@ enum AudioSampleFormat **描述:** -原始音频样本格式 +原始音频样本格式。 | 枚举值 | 描述 | | -------- | -------- | @@ -492,7 +492,7 @@ enum AudioSampleRatesMask **描述:** -音频采样频率MASK +音频采样频率MASK。 | 枚举值 | 描述 | | -------- | -------- | @@ -519,7 +519,7 @@ enum AudioSessionType **描述:** -端口会话类型 +端口会话类型。 | 枚举值 | 描述 | | -------- | -------- | diff --git a/zh-cn/device-dev/api/_audio_adapter.md b/zh-cn/device-dev/reference/hdi-apis/_audio_adapter.md similarity index 81% rename from zh-cn/device-dev/api/_audio_adapter.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_adapter.md index 93cfd84b00..d594bd12b6 100644 --- a/zh-cn/device-dev/api/_audio_adapter.md +++ b/zh-cn/device-dev/reference/hdi-apis/_audio_adapter.md @@ -15,16 +15,16 @@ | Public 属性 | 描述 | | -------- | -------- | -| ( [InitAllPorts](#initallports) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref241992660083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter) | 初始化一个音频适配器所有的端口驱动 [更多...](#initallports) | -| ( [CreateRender](#createrender) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref1249519733083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, const struct [AudioDeviceDescriptor](_audio_device_descriptor.md) \*desc, const struct [AudioSampleAttributes](_audio_sample_attributes.md) \*attrs, struct [AudioRender](_audio_render.md) \*\*render) | 创建一个音频播放(render)接口的对象 [更多...](#createrender) | -| ( [DestroyRender](#destroyrender) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref194522153083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, struct [AudioRender](_audio_render.md) \*render) | 销毁一个音频播放(render)接口的对象 [更多...](#destroyrender) | -| ( [CreateCapture](#createcapture) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref933286157083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, const struct [AudioDeviceDescriptor](_audio_device_descriptor.md) \*desc, const struct [AudioSampleAttributes](_audio_sample_attributes.md) \*attrs, struct [AudioCapture](_audio_capture.md) \*\*capture) | 创建一个音频录音(capture)接口的对象 [更多...](#createcapture) | -| ( [DestroyCapture](#destroycapture) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref145884804083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, struct [AudioCapture](_audio_capture.md) \*capture) | 销毁一个音频录音(capture)接口的对象 [更多...](#destroycapture) | -| ( [GetPortCapability](#getportcapability) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref974312331083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, struct [AudioPort](_audio_port.md) \*port, struct [AudioPortCapability](_audio_port_capability.md) \*capability) | 获取一个音频适配器的端口驱动的能力集 [更多...](#getportcapability) | -| ( [SetPassthroughMode](#setpassthroughmode) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref1432990851083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, struct [AudioPort](_audio_port.md) \*port, enum [AudioPortPassthroughMode](_audio.md#audioportpassthroughmode) mode) | 设置音频端口驱动的数据透传模式 [更多...](#setpassthroughmode) | -| ( [GetPassthroughMode](#getpassthroughmode) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref883432727083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, struct [AudioPort](_audio_port.md) \*port, enum [AudioPortPassthroughMode](_audio.md#audioportpassthroughmode) \*mode) | 获取音频端口驱动的数据透传模式 [更多...](#getpassthroughmode) | -| ( [UpdateAudioRoute](#updateaudioroute) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref362795572083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, const struct [AudioRoute](_audio_route.md) \*route, int32_t \*routeHandle) | 更新一个或多个发送端和接受端之间的路由 [更多...](#updateaudioroute) | -| ( [ReleaseAudioRoute](#releaseaudioroute) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295254292.xml#xref410918381083931,link:zh-cn_topic_0000001295254292.xml](zh-cn_topic_0000001295254292.xml) \*adapter, int32_t routeHandle) | 释放一个音频路由. [更多...](#releaseaudioroute) | +| ( [InitAllPorts](#initallports) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357342201.xml#xref241992660083931,link:zh-cn_topic_0000001357342201.xml](zh-cn_topic_0000001357342201.xml) \*adapter) | 初始化一个音频适配器所有的端口驱动 [更多...](#initallports) | +| ( [CreateRender](#createrender) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357342201.xml#xref1249519733083931,link:zh-cn_topic_0000001357342201.xml](zh-cn_topic_0000001357342201.xml) \*adapter, const struct [AudioDeviceDescriptor](_audio_device_descriptor.md) \*desc, const struct [AudioSampleAttributes](_audio_sample_attributes.md) \*attrs, struct [AudioRender](_audio_render.md) \*\*render) | 创建一个音频播放(render)接口的对象 [更多...](#createrender) | +| ( [DestroyRender](#destroyrender) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357342201.xml#xref194522153083931,link:zh-cn_topic_0000001357342201.xml](zh-cn_topic_0000001357342201.xml) \*adapter, struct [AudioRender](_audio_render.md) \*render) | 销毁一个音频播放(render)接口的对象 [更多...](#destroyrender) | +| ( [CreateCapture](#createcapture) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357342201.xml#xref933286157083931,link:zh-cn_topic_0000001357342201.xml](zh-cn_topic_0000001357342201.xml) \*adapter, const struct [AudioDeviceDescriptor](_audio_device_descriptor.md) \*desc, const struct [AudioSampleAttributes](_audio_sample_attributes.md) \*attrs, struct [AudioCapture](_audio_capture.md) \*\*capture) | 创建一个音频录音(capture)接口的对象 [更多...](#createcapture) | +| ( [DestroyCapture](#destroycapture) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357342201.xml#xref145884804083931,link:zh-cn_topic_0000001357342201.xml](zh-cn_topic_0000001357342201.xml) \*adapter, struct [AudioCapture](_audio_capture.md) \*capture) | 销毁一个音频录音(capture)接口的对象 [更多...](#destroycapture) | +| ( [GetPortCapability](#getportcapability) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357342201.xml#xref974312331083931,link:zh-cn_topic_0000001357342201.xml](zh-cn_topic_0000001357342201.xml) \*adapter, struct [AudioPort](_audio_port.md) \*port, struct [AudioPortCapability](_audio_port_capability.md) \*capability) | 获取一个音频适配器的端口驱动的能力集 [更多...](#getportcapability) | +| ( [SetPassthroughMode](#setpassthroughmode) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357342201.xml#xref1432990851083931,link:zh-cn_topic_0000001357342201.xml](zh-cn_topic_0000001357342201.xml) \*adapter, struct [AudioPort](_audio_port.md) \*port, enum [AudioPortPassthroughMode](_audio.md#audioportpassthroughmode) mode) | 设置音频端口驱动的数据透传模式 [更多...](#setpassthroughmode) | +| ( [GetPassthroughMode](#getpassthroughmode) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357342201.xml#xref883432727083931,link:zh-cn_topic_0000001357342201.xml](zh-cn_topic_0000001357342201.xml) \*adapter, struct [AudioPort](_audio_port.md) \*port, enum [AudioPortPassthroughMode](_audio.md#audioportpassthroughmode) \*mode) | 获取音频端口驱动的数据透传模式 [更多...](#getpassthroughmode) | +| ( [UpdateAudioRoute](#updateaudioroute) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357342201.xml#xref362795572083931,link:zh-cn_topic_0000001357342201.xml](zh-cn_topic_0000001357342201.xml) \*adapter, const struct [AudioRoute](_audio_route.md) \*route, int32_t \*routeHandle) | 更新一个或多个发送端和接受端之间的路由 [更多...](#updateaudioroute) | +| ( [ReleaseAudioRoute](#releaseaudioroute) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357342201.xml#xref410918381083931,link:zh-cn_topic_0000001357342201.xml](zh-cn_topic_0000001357342201.xml) \*adapter, int32_t routeHandle) | 释放一个音频路由. [更多...](#releaseaudioroute) | ## **详细描述** diff --git a/zh-cn/device-dev/api/_audio_adapter_descriptor.md b/zh-cn/device-dev/reference/hdi-apis/_audio_adapter_descriptor.md similarity index 100% rename from zh-cn/device-dev/api/_audio_adapter_descriptor.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_adapter_descriptor.md diff --git a/zh-cn/device-dev/api/_audio_attribute.md b/zh-cn/device-dev/reference/hdi-apis/_audio_attribute.md similarity index 100% rename from zh-cn/device-dev/api/_audio_attribute.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_attribute.md diff --git a/zh-cn/device-dev/api/_audio_capture.md b/zh-cn/device-dev/reference/hdi-apis/_audio_capture.md similarity index 85% rename from zh-cn/device-dev/api/_audio_capture.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_capture.md index 3616e2f1a7..964aa55055 100644 --- a/zh-cn/device-dev/api/_audio_capture.md +++ b/zh-cn/device-dev/reference/hdi-apis/_audio_capture.md @@ -19,8 +19,8 @@ | attr | 音频属性能力接口,详情参考[AudioAttribute](_audio_attribute.md) | | scene | 音频场景能力接口,详情参考[AudioScene](_audio_scene.md) | | volume | 音频音量能力接口,详情参考[AudioVolume](_audio_volume.md) | -| ( [CaptureFrame](#captureframe) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348293893.xml#xref1398623145083931,link:zh-cn_topic_0000001348293893.xml](zh-cn_topic_0000001348293893.xml) \*capture, void \*frame, uint64_t requestBytes, uint64_t \*replyBytes) | 从音频驱动中录制(capture)一帧输入数据(录音,音频上行数据) [更多...](#captureframe) | -| ( [GetCapturePosition](#getcaptureposition) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348293893.xml#xref599411735083931,link:zh-cn_topic_0000001348293893.xml](zh-cn_topic_0000001348293893.xml) \*capture, uint64_t \*frames, struct [AudioTimeStamp](_audio_time_stamp.md) \*time) | 获取音频输入帧数的上一次计数 [更多...](#getcaptureposition) | +| ( [CaptureFrame](#captureframe) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357621449.xml#xref1398623145083931,link:zh-cn_topic_0000001357621449.xml](zh-cn_topic_0000001357621449.xml) \*capture, void \*frame, uint64_t requestBytes, uint64_t \*replyBytes) | 从音频驱动中录制(capture)一帧输入数据(录音,音频上行数据) [更多...](#captureframe) | +| ( [GetCapturePosition](#getcaptureposition) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357621449.xml#xref599411735083931,link:zh-cn_topic_0000001357621449.xml](zh-cn_topic_0000001357621449.xml) \*capture, uint64_t \*frames, struct [AudioTimeStamp](_audio_time_stamp.md) \*time) | 获取音频输入帧数的上一次计数 [更多...](#getcaptureposition) | ## **详细描述** diff --git a/zh-cn/device-dev/api/_audio_control.md b/zh-cn/device-dev/reference/hdi-apis/_audio_control.md similarity index 100% rename from zh-cn/device-dev/api/_audio_control.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_control.md diff --git a/zh-cn/device-dev/api/_audio_dev_ext_info.md b/zh-cn/device-dev/reference/hdi-apis/_audio_dev_ext_info.md similarity index 100% rename from zh-cn/device-dev/api/_audio_dev_ext_info.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_dev_ext_info.md diff --git a/zh-cn/device-dev/api/_audio_device_descriptor.md b/zh-cn/device-dev/reference/hdi-apis/_audio_device_descriptor.md similarity index 100% rename from zh-cn/device-dev/api/_audio_device_descriptor.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_device_descriptor.md diff --git a/zh-cn/device-dev/api/_audio_manager.md b/zh-cn/device-dev/reference/hdi-apis/_audio_manager.md similarity index 96% rename from zh-cn/device-dev/api/_audio_manager.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_manager.md index 5bba4066ef..02645aae91 100644 --- a/zh-cn/device-dev/api/_audio_manager.md +++ b/zh-cn/device-dev/reference/hdi-apis/_audio_manager.md @@ -18,7 +18,7 @@ | ( [GetAllAdapters](#getalladapters) )(struct AudioAdapterManager \*manager, struct [AudioAdapterDescriptor](_audio_adapter_descriptor.md) \*\*descs, int \*size) | 获取音频驱动中支持的所有适配器的列表 [更多...](#getalladapters) | | ( [LoadAdapter](#loadadapter) )(struct AudioAdapterManager \*manager, const struct [AudioAdapterDescriptor](_audio_adapter_descriptor.md) \*desc, struct [AudioAdapter](_audio_adapter.md) \*\*adapter) | 加载一个音频适配器(声卡)的驱动 [更多...](#loadadapter) | | ( [UnloadAdapter](#unloadadapter) )(struct AudioAdapterManager \*manager, struct [AudioAdapter](_audio_adapter.md) \*adapter) | 卸载音频适配器(声卡)的驱动 [更多...](#unloadadapter) | -| ( [ReleaseAudioManagerObject](#releaseaudiomanagerobject) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413505.xml#xref1843940824083931,link:zh-cn_topic_0000001348413505.xml](zh-cn_topic_0000001348413505.xml) \*object) | 释放音频管理接口对象 [更多...](#releaseaudiomanagerobject) | +| ( [ReleaseAudioManagerObject](#releaseaudiomanagerobject) )(struct [ERROR:Invalid link:zh-cn_topic_0000001304382264.xml#xref1843940824083931,link:zh-cn_topic_0000001304382264.xml](zh-cn_topic_0000001304382264.xml) \*object) | 释放音频管理接口对象 [更多...](#releaseaudiomanagerobject) | ## **详细描述** diff --git a/zh-cn/device-dev/api/_audio_mix_ext_info.md b/zh-cn/device-dev/reference/hdi-apis/_audio_mix_ext_info.md similarity index 100% rename from zh-cn/device-dev/api/_audio_mix_ext_info.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_mix_ext_info.md diff --git a/zh-cn/device-dev/api/_audio_mmap_buffer_descripter.md b/zh-cn/device-dev/reference/hdi-apis/_audio_mmap_buffer_descripter.md similarity index 100% rename from zh-cn/device-dev/api/_audio_mmap_buffer_descripter.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_mmap_buffer_descripter.md diff --git a/zh-cn/device-dev/api/_audio_port.md b/zh-cn/device-dev/reference/hdi-apis/_audio_port.md similarity index 100% rename from zh-cn/device-dev/api/_audio_port.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_port.md diff --git a/zh-cn/device-dev/api/_audio_port_cap.md b/zh-cn/device-dev/reference/hdi-apis/_audio_port_cap.md similarity index 100% rename from zh-cn/device-dev/api/_audio_port_cap.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_port_cap.md diff --git a/zh-cn/device-dev/api/_audio_port_capability.md b/zh-cn/device-dev/reference/hdi-apis/_audio_port_capability.md similarity index 100% rename from zh-cn/device-dev/api/_audio_port_capability.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_port_capability.md diff --git a/zh-cn/device-dev/api/_audio_render.md b/zh-cn/device-dev/reference/hdi-apis/_audio_render.md similarity index 80% rename from zh-cn/device-dev/api/_audio_render.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_render.md index 274cc0fc3b..5233db5b6e 100644 --- a/zh-cn/device-dev/api/_audio_render.md +++ b/zh-cn/device-dev/reference/hdi-apis/_audio_render.md @@ -19,15 +19,15 @@ | attr | 音频属性能力接口,详情参考[AudioAttribute](_audio_attribute.md) | | scene | 音频场景能力接口,详情参考[AudioScene](_audio_scene.md) | | volume | 音频音量能力接口,详情参考[AudioVolume](_audio_volume.md) | -| ( [GetLatency](#getlatency) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref1137711430083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, uint32_t \*ms) | 获取音频硬件驱动估计的延迟时间 [更多...](#getlatency) | -| ( [RenderFrame](#renderframe) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref1032115116083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, const void \*frame, uint64_t requestBytes, uint64_t \*replyBytes) | 往音频驱动中播放(render)一帧输出数据(放音,音频下行数据) [更多...](#renderframe) | -| ( [GetRenderPosition](#getrenderposition) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref1361225145083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, uint64_t \*frames, struct [AudioTimeStamp](_audio_time_stamp.md) \*time) | 获取音频输出帧数的上一次计数 [更多...](#getrenderposition) | -| ( [SetRenderSpeed](#setrenderspeed) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref298100406083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, float speed) | 设置一个音频的播放速度 [更多...](#setrenderspeed) | -| ( [GetRenderSpeed](#getrenderspeed) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref1265100196083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, float \*speed) | 获取一个音频当前的播放速度 [更多...](#getrenderspeed) | -| ( [SetChannelMode](#setchannelmode) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref1614877322083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, enum [AudioChannelMode](_audio.md#audiochannelmode) mode) | 设置音频播放的通道模式 [更多...](#setchannelmode) | -| ( [GetChannelMode](#getchannelmode) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref1553230681083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, enum [AudioChannelMode](_audio.md#audiochannelmode) \*mode) | 获取音频播放当前的通道模式 [更多...](#getchannelmode) | -| ( [RegCallback](#regcallback) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref16984183083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, [RenderCallback](_audio.md#rendercallback) callback, void \*cookie) | 注册音频回调函数,用于放音过程中缓冲区数据写、DrainBuffer完成通知 [更多...](#regcallback) | -| ( [DrainBuffer](#drainbuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348413529.xml#xref1454572723083931,link:zh-cn_topic_0000001348413529.xml](zh-cn_topic_0000001348413529.xml) \*render, enum [AudioDrainNotifyType](_audio.md#audiodrainnotifytype) \*type) | 排空缓冲区中的数据 [更多...](#drainbuffer) | +| ( [GetLatency](#getlatency) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357381989.xml#xref1137711430083931,link:zh-cn_topic_0000001357381989.xml](zh-cn_topic_0000001357381989.xml) \*render, uint32_t \*ms) | 获取音频硬件驱动估计的延迟时间 [更多...](#getlatency) | +| ( [RenderFrame](#renderframe) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357381989.xml#xref1032115116083931,link:zh-cn_topic_0000001357381989.xml](zh-cn_topic_0000001357381989.xml) \*render, const void \*frame, uint64_t requestBytes, uint64_t \*replyBytes) | 往音频驱动中播放(render)一帧输出数据(放音,音频下行数据) [更多...](#renderframe) | +| ( [GetRenderPosition](#getrenderposition) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357381989.xml#xref1361225145083931,link:zh-cn_topic_0000001357381989.xml](zh-cn_topic_0000001357381989.xml) \*render, uint64_t \*frames, struct [AudioTimeStamp](_audio_time_stamp.md) \*time) | 获取音频输出帧数的上一次计数 [更多...](#getrenderposition) | +| ( [SetRenderSpeed](#setrenderspeed) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357381989.xml#xref298100406083931,link:zh-cn_topic_0000001357381989.xml](zh-cn_topic_0000001357381989.xml) \*render, float speed) | 设置一个音频的播放速度 [更多...](#setrenderspeed) | +| ( [GetRenderSpeed](#getrenderspeed) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357381989.xml#xref1265100196083931,link:zh-cn_topic_0000001357381989.xml](zh-cn_topic_0000001357381989.xml) \*render, float \*speed) | 获取一个音频当前的播放速度 [更多...](#getrenderspeed) | +| ( [SetChannelMode](#setchannelmode) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357381989.xml#xref1614877322083931,link:zh-cn_topic_0000001357381989.xml](zh-cn_topic_0000001357381989.xml) \*render, enum [AudioChannelMode](_audio.md#audiochannelmode) mode) | 设置音频播放的通道模式 [更多...](#setchannelmode) | +| ( [GetChannelMode](#getchannelmode) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357381989.xml#xref1553230681083931,link:zh-cn_topic_0000001357381989.xml](zh-cn_topic_0000001357381989.xml) \*render, enum [AudioChannelMode](_audio.md#audiochannelmode) \*mode) | 获取音频播放当前的通道模式 [更多...](#getchannelmode) | +| ( [RegCallback](#regcallback) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357381989.xml#xref16984183083931,link:zh-cn_topic_0000001357381989.xml](zh-cn_topic_0000001357381989.xml) \*render, [RenderCallback](_audio.md#rendercallback) callback, void \*cookie) | 注册音频回调函数,用于放音过程中缓冲区数据写、DrainBuffer完成通知 [更多...](#regcallback) | +| ( [DrainBuffer](#drainbuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357381989.xml#xref1454572723083931,link:zh-cn_topic_0000001357381989.xml](zh-cn_topic_0000001357381989.xml) \*render, enum [AudioDrainNotifyType](_audio.md#audiodrainnotifytype) \*type) | 排空缓冲区中的数据 [更多...](#drainbuffer) | ## **详细描述** diff --git a/zh-cn/device-dev/api/_audio_route.md b/zh-cn/device-dev/reference/hdi-apis/_audio_route.md similarity index 100% rename from zh-cn/device-dev/api/_audio_route.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_route.md diff --git a/zh-cn/device-dev/api/_audio_route_node.md b/zh-cn/device-dev/reference/hdi-apis/_audio_route_node.md similarity index 100% rename from zh-cn/device-dev/api/_audio_route_node.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_route_node.md diff --git a/zh-cn/device-dev/api/_audio_sample_attributes.md b/zh-cn/device-dev/reference/hdi-apis/_audio_sample_attributes.md similarity index 100% rename from zh-cn/device-dev/api/_audio_sample_attributes.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_sample_attributes.md diff --git a/zh-cn/device-dev/api/_audio_scene.md b/zh-cn/device-dev/reference/hdi-apis/_audio_scene.md similarity index 100% rename from zh-cn/device-dev/api/_audio_scene.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_scene.md diff --git a/zh-cn/device-dev/api/_audio_scene_descriptor.md b/zh-cn/device-dev/reference/hdi-apis/_audio_scene_descriptor.md similarity index 100% rename from zh-cn/device-dev/api/_audio_scene_descriptor.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_scene_descriptor.md diff --git a/zh-cn/device-dev/api/_audio_session_ext_info.md b/zh-cn/device-dev/reference/hdi-apis/_audio_session_ext_info.md similarity index 100% rename from zh-cn/device-dev/api/_audio_session_ext_info.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_session_ext_info.md diff --git a/zh-cn/device-dev/api/_audio_sub_port_capability.md b/zh-cn/device-dev/reference/hdi-apis/_audio_sub_port_capability.md similarity index 100% rename from zh-cn/device-dev/api/_audio_sub_port_capability.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_sub_port_capability.md diff --git a/zh-cn/device-dev/api/_audio_time_stamp.md b/zh-cn/device-dev/reference/hdi-apis/_audio_time_stamp.md similarity index 100% rename from zh-cn/device-dev/api/_audio_time_stamp.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_time_stamp.md diff --git a/zh-cn/device-dev/api/_audio_volume.md b/zh-cn/device-dev/reference/hdi-apis/_audio_volume.md similarity index 100% rename from zh-cn/device-dev/api/_audio_volume.md rename to zh-cn/device-dev/reference/hdi-apis/_audio_volume.md diff --git a/zh-cn/device-dev/api/_auth_result_info.md b/zh-cn/device-dev/reference/hdi-apis/_auth_result_info.md similarity index 86% rename from zh-cn/device-dev/api/_auth_result_info.md rename to zh-cn/device-dev/reference/hdi-apis/_auth_result_info.md index e524bce35d..3f269e41ce 100644 --- a/zh-cn/device-dev/api/_auth_result_info.md +++ b/zh-cn/device-dev/reference/hdi-apis/_auth_result_info.md @@ -20,6 +20,7 @@ | [remainTimes](#remaintimes) | 认证方式距离被冻结的可处理认证请求次数。 | | [msgs](#msgs) | 执行器发送的消息。 | | [token](#token) | 用户身份认证令牌。 | +| rootSecret | 保护文件加密密钥的密钥。 | ## **详细描述** @@ -96,3 +97,15 @@ unsigned char [] AuthResultInfo::token **描述:** 用户身份认证令牌。 + + +### rootSecret + + +``` +unsigned char [] AuthResultInfo::rootSecret +``` + +**描述:** + +保护文件加密密钥的密钥。 diff --git a/zh-cn/device-dev/api/_auth_solution.md b/zh-cn/device-dev/reference/hdi-apis/_auth_solution.md similarity index 75% rename from zh-cn/device-dev/api/_auth_solution.md rename to zh-cn/device-dev/reference/hdi-apis/_auth_solution.md index 2dd325dbaa..8a43490939 100644 --- a/zh-cn/device-dev/api/_auth_solution.md +++ b/zh-cn/device-dev/reference/hdi-apis/_auth_solution.md @@ -18,7 +18,7 @@ | [userId](#userid) | 用户ID。 | | [authTrustLevel](#authtrustlevel) | 认证结果可信等级。 | | [authType](#authtype) | 用户认证凭据类型AuthType}。 | -| [executorId](#executorid) | 既定用户认证凭据类型的执行器ID。 | +| [executorSensorHint](#executorsensorhint) | 既定用户认证凭据类型的执行器传感器提示,用于找到对应认证方式的传感器。 | | [challenge](#challenge) | 挑战值,用于签发认证令牌。 | @@ -74,16 +74,16 @@ unsigned char [] AuthSolution::challenge 挑战值,用于签发认证令牌。 -### executorId +### executorSensorHint ``` -unsigned int AuthSolution::executorId +unsigned int AuthSolution::executorSensorHint ``` **描述:** -既定用户认证凭据类型的执行器ID。 +既定用户认证凭据类型的执行器传感器提示,用于找到对应认证方式的传感器。 ### userId diff --git a/zh-cn/device-dev/api/_battery_info.md b/zh-cn/device-dev/reference/hdi-apis/_battery_info.md similarity index 100% rename from zh-cn/device-dev/api/_battery_info.md rename to zh-cn/device-dev/reference/hdi-apis/_battery_info.md diff --git a/zh-cn/device-dev/api/_buffer_data.md b/zh-cn/device-dev/reference/hdi-apis/_buffer_data.md similarity index 100% rename from zh-cn/device-dev/api/_buffer_data.md rename to zh-cn/device-dev/reference/hdi-apis/_buffer_data.md diff --git a/zh-cn/device-dev/api/_camera.md b/zh-cn/device-dev/reference/hdi-apis/_camera.md similarity index 99% rename from zh-cn/device-dev/api/_camera.md rename to zh-cn/device-dev/reference/hdi-apis/_camera.md index 702bea524b..563a33e3bf 100644 --- a/zh-cn/device-dev/api/_camera.md +++ b/zh-cn/device-dev/reference/hdi-apis/_camera.md @@ -47,7 +47,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [OHOS::Camera::CamRetCode](#camretcode) : int32_t {   OHOS::Camera::NO_ERROR = 0, OHOS::Camera::CAMERA_BUSY = -1, OHOS::Camera::INSUFFICIENT_RESOURCES = -2, OHOS::Camera::INVALID_ARGUMENT = -3,   OHOS::Camera::METHOD_NOT_SUPPORTED = -4, OHOS::Camera::CAMERA_CLOSED = -5, OHOS::Camera::DEVICE_ERROR = -6 } | HDI接口的返回值。 [更多...](#camretcode) | | [OHOS::Camera::ResultCallbackMode](#resultcallbackmode) : int32_t { OHOS::Camera::PER_FRAME, OHOS::Camera::ON_CHANGED } | metadata的上报模式。 [更多...](#resultcallbackmode) | @@ -112,7 +112,7 @@ ### 变量 - | 变量 名称 | 描述 | + | 变量 | 描述 | | -------- | -------- | | [OHOS::Camera::StreamInfo::streamId_](#streamid-14) | 流的ID,用于在设备内唯一标识一条流。 | | [OHOS::Camera::StreamInfo::width_](#width-12) | 图像宽度。 | diff --git a/zh-cn/device-dev/api/_codec.md b/zh-cn/device-dev/reference/hdi-apis/_codec.md similarity index 99% rename from zh-cn/device-dev/api/_codec.md rename to zh-cn/device-dev/reference/hdi-apis/_codec.md index 7b98306854..f3eea39775 100644 --- a/zh-cn/device-dev/api/_codec.md +++ b/zh-cn/device-dev/reference/hdi-apis/_codec.md @@ -53,7 +53,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [CodecType](#codectype) { VIDEO_DECODER, VIDEO_ENCODER, AUDIO_DECODER, AUDIO_ENCODER,   INVALID_TYPE } | 枚举编解码的类型。 [更多...](#codectype) | | [Profile](#profile) { INVALID_PROFILE = 0, AAC_LC_PROFILE = 0x1000, AAC_MAIN_PROFILE, AAC_HE_V1_PROFILE,   AAC_HE_V2_PROFILE, AAC_LD_PROFILE, AAC_ELD_PROFILE, AVC_BASELINE_PROFILE = 0x2000,   AVC_MAIN_PROFILE, AVC_HIGH_PROFILE, HEVC_MAIN_PROFILE = 0x3000, HEVC_MAIN_10_PROFILE } | 枚举Codec规格。 [更多...](#profile) | @@ -82,7 +82,7 @@ ### 变量 - | 变量 名称 | 描述 | + | 变量 | 描述 | | -------- | -------- | | [CodecCallbackType::remote](#remote) | 指向HdfRemoteService的指针。 [更多...](#remote) | | ( [CodecCallbackType::EventHandler](#eventhandler) )(struct [CodecCallbackType](_codec_callback_type.md) \*self, enum OMX_EVENTTYPE event, struct [EventInfo](_event_info.md) \*info) | 事件上报。 [更多...](#eventhandler) | @@ -128,7 +128,7 @@ Codec模块涉及自定义类型、音视频编解码组件初始化、参数设 ### AudioSampleFormat - + ``` enum AudioSampleFormat ``` @@ -141,7 +141,7 @@ enum AudioSampleFormat - 对于packed的采样格式,只使用第一个data,每个声道的数据是交错存储的。 - | 枚举值 | 描述 | +| 枚举值 | 描述 | | -------- | -------- | | AUDIO_SAMPLE_FORMAT_S8 | 8bit位宽有符号交织样本。 | | AUDIO_SAMPLE_FORMAT_S8P | 8bit位宽有符号非交织样本。 | @@ -182,7 +182,7 @@ enum AudioSampleFormat ### AudioSampleRate - + ``` enum AudioSampleRate ``` @@ -209,7 +209,7 @@ enum AudioSampleRate ### AvCodecRole - + ``` enum AvCodecRole ``` @@ -235,7 +235,7 @@ enum AvCodecRole ### CodecBufferType - + ``` enum CodecBufferType ``` @@ -255,7 +255,7 @@ enum CodecBufferType ### CodecCapsMask - + ``` enum CodecCapsMask ``` @@ -274,7 +274,7 @@ enum CodecCapsMask ### CodecProcessMode - + ``` enum CodecProcessMode ``` @@ -295,7 +295,7 @@ enum CodecProcessMode ### CodecType - + ``` enum CodecType ``` @@ -315,7 +315,7 @@ enum CodecType ### OmxIndexCodecExType - + ``` enum OmxIndexCodecExType ``` @@ -334,7 +334,7 @@ enum OmxIndexCodecExType ### OmxVideoExType - + ``` enum OmxVideoExType ``` @@ -350,7 +350,7 @@ enum OmxVideoExType ### Profile - + ``` enum Profile ``` @@ -377,7 +377,7 @@ enum Profile ### ShareMemTypes - + ``` enum ShareMemTypes ``` @@ -397,7 +397,7 @@ enum ShareMemTypes ### CodecCallbackTypeGet() - + ``` struct CodecCallbackType* CodecCallbackTypeGet (struct HdfRemoteService * remote) ``` @@ -423,7 +423,7 @@ struct CodecCallbackType* CodecCallbackTypeGet (struct HdfRemoteService * remote ### CodecCallbackTypeRelease() - + ``` void CodecCallbackTypeRelease (struct CodecCallbackType * instance) ``` @@ -445,7 +445,7 @@ void CodecCallbackTypeRelease (struct CodecCallbackType * instance) ### CodecComponentManagerRelease() - + ``` void CodecComponentManagerRelease (void ) ``` @@ -461,7 +461,7 @@ void CodecComponentManagerRelease (void ) ### CodecComponentTypeGet() - + ``` struct CodecComponentType* CodecComponentTypeGet (struct HdfRemoteService * remote) ``` @@ -487,7 +487,7 @@ struct CodecComponentType* CodecComponentTypeGet (struct HdfRemoteService * remo ### CodecComponentTypeRelease() - + ``` void CodecComponentTypeRelease (struct CodecComponentType * instance) ``` @@ -509,7 +509,7 @@ void CodecComponentTypeRelease (struct CodecComponentType * instance) ### GetCodecComponentManager() - + ``` struct CodecComponentManager* GetCodecComponentManager (void ) ``` @@ -532,7 +532,7 @@ struct CodecComponentManager* GetCodecComponentManager (void ) ### AllocateBuffer - + ``` int32_t(* CodecComponentType::AllocateBuffer) (struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer) ``` @@ -574,7 +574,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,申请buffer失败。 ### ComponentDeInit - + ``` int32_t(* CodecComponentType::ComponentDeInit) (struct CodecComponentType *self) ``` @@ -608,7 +608,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,去初始化失败。 ### ComponentRoleEnum - + ``` int32_t(* CodecComponentType::ComponentRoleEnum) (struct CodecComponentType *self, uint8_t *role, uint32_t roleLen, uint32_t index) ``` @@ -645,7 +645,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取角色失败。 ### ComponentTunnelRequest - + ``` int32_t(* CodecComponentType::ComponentTunnelRequest) (struct CodecComponentType *self, uint32_t port, int32_t tunneledComp, uint32_t tunneledPort, struct OMX_TUNNELSETUPTYPE *tunnelSetup) ``` @@ -683,7 +683,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,设置失败。 ### EmptyBufferDone - + ``` int32_t(* CodecCallbackType::EmptyBufferDone) (struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, const struct OmxCodecBuffer *buffer) ``` @@ -720,7 +720,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,上报失败。 ### EmptyThisBuffer - + ``` int32_t(* CodecComponentType::EmptyThisBuffer) (struct CodecComponentType *self, const struct OmxCodecBuffer *buffer) ``` @@ -755,7 +755,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,输入buffer失败。 ### EventHandler - + ``` int32_t(* CodecCallbackType::EventHandler) (struct CodecCallbackType *self, enum OMX_EVENTTYPE event, struct EventInfo *info) ``` @@ -803,7 +803,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,事件上报失败。 ### FillBufferDone - + ``` int32_t(* CodecCallbackType::FillBufferDone) (struct CodecCallbackType *self, int8_t *appData, uint32_t appDataLen, struct OmxCodecBuffer *buffer) ``` @@ -840,7 +840,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,上报失败。 ### FillThisBuffer - + ``` int32_t(* CodecComponentType::FillThisBuffer) (struct CodecComponentType *self, const struct OmxCodecBuffer *buffer) ``` @@ -875,7 +875,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,填充buffer失败。 ### FreeBuffer - + ``` int32_t(* CodecComponentType::FreeBuffer) (struct CodecComponentType *self, uint32_t portIndex, const struct OmxCodecBuffer *buffer) ``` @@ -917,7 +917,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,释放buffer失败。 ### GetComponentVersion - + ``` int32_t(* CodecComponentType::GetComponentVersion) (struct CodecComponentType *self, struct CompVerInfo *verInfo) ``` @@ -952,7 +952,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取版本号失败。 ### GetConfig - + ``` int32_t(* CodecComponentType::GetConfig) (struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen) ``` @@ -989,7 +989,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取配置失败。 ### GetExtensionIndex - + ``` int32_t(* CodecComponentType::GetExtensionIndex) (struct CodecComponentType *self, const char *paramName, uint32_t *indexType) ``` @@ -1025,7 +1025,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取扩展索引失败。 ### GetParameter - + ``` int32_t(* CodecComponentType::GetParameter) (struct CodecComponentType *self, uint32_t paramIndex, int8_t *paramStruct, uint32_t paramStructLen) ``` @@ -1062,7 +1062,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取参数失败。 ### GetState - + ``` int32_t(* CodecComponentType::GetState) (struct CodecComponentType *self, enum OMX_STATETYPE *state) ``` @@ -1097,7 +1097,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,获取状态失败。 ### remote - + ``` struct HdfRemoteService* CodecCallbackType::remote ``` @@ -1113,7 +1113,7 @@ struct HdfRemoteService* CodecCallbackType::remote ### SendCommand - + ``` int32_t(* CodecComponentType::SendCommand) (struct CodecComponentType *self, enum OMX_COMMANDTYPE cmd, uint32_t param, int8_t *cmdData, uint32_t cmdDataLen) ``` @@ -1151,7 +1151,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,发送命令失败。 ### SetCallbacks - + ``` int32_t(* CodecComponentType::SetCallbacks) (struct CodecComponentType *self, struct CodecCallbackType *callback, int8_t *appData, uint32_t appDataLen) ``` @@ -1188,7 +1188,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,设置回调失败。 ### SetConfig - + ``` int32_t(* CodecComponentType::SetConfig) (struct CodecComponentType *self, uint32_t index, int8_t *cfgStruct, uint32_t cfgStructLen) ``` @@ -1225,7 +1225,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,设置失败。 ### SetParameter - + ``` int32_t(* CodecComponentType::SetParameter) (struct CodecComponentType *self, uint32_t index, int8_t *paramStruct, uint32_t paramStructLen) ``` @@ -1262,7 +1262,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,设置参数失败。 ### UseBuffer - + ``` int32_t(* CodecComponentType::UseBuffer) (struct CodecComponentType *self, uint32_t portIndex, struct OmxCodecBuffer *buffer) ``` @@ -1304,7 +1304,7 @@ HDF_ERR_MALLOC_FAIL 表示申请内存失败,指定失败。 ### UseEglImage - + ``` int32_t(* CodecComponentType::UseEglImage) (struct CodecComponentType *self, struct OmxCodecBuffer *buffer, uint32_t portIndex, int8_t *eglImage, uint32_t eglImageLen) ``` diff --git a/zh-cn/device-dev/api/_codec_callback_type.md b/zh-cn/device-dev/reference/hdi-apis/_codec_callback_type.md similarity index 72% rename from zh-cn/device-dev/api/_codec_callback_type.md rename to zh-cn/device-dev/reference/hdi-apis/_codec_callback_type.md index 491c500c29..1734e7654a 100644 --- a/zh-cn/device-dev/api/_codec_callback_type.md +++ b/zh-cn/device-dev/reference/hdi-apis/_codec_callback_type.md @@ -16,9 +16,9 @@ | Public 属性 | 描述 | | -------- | -------- | | [remote](_codec.md#remote) | 指向HdfRemoteService的指针。 [更多...](_codec.md#remote) | -| ( [EventHandler](_codec.md#eventhandler) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295094404.xml#xref452479393083931,link:zh-cn_topic_0000001295094404.xml](zh-cn_topic_0000001295094404.xml) \*self, enum OMX_EVENTTYPE event, struct [EventInfo](_event_info.md) \*info) | 事件上报。 [更多...](_codec.md#eventhandler) | -| ( [EmptyBufferDone](_codec.md#emptybufferdone) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295094404.xml#xref1077915705083931,link:zh-cn_topic_0000001295094404.xml](zh-cn_topic_0000001295094404.xml) \*self, int8_t \*appData, uint32_t appDataLen, const struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 上报输入buffer编码或者解码处理完毕。 [更多...](_codec.md#emptybufferdone) | -| ( [FillBufferDone](_codec.md#fillbufferdone) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295094404.xml#xref1123615867083931,link:zh-cn_topic_0000001295094404.xml](zh-cn_topic_0000001295094404.xml) \*self, int8_t \*appData, uint32_t appDataLen, struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 上报输出buffer填充完毕。 [更多...](_codec.md#fillbufferdone) | +| ( [EventHandler](_codec.md#eventhandler) )(struct [ERROR:Invalid link:zh-cn_topic_0000001304382300.xml#xref452479393083931,link:zh-cn_topic_0000001304382300.xml](zh-cn_topic_0000001304382300.xml) \*self, enum OMX_EVENTTYPE event, struct [EventInfo](_event_info.md) \*info) | 事件上报。 [更多...](_codec.md#eventhandler) | +| ( [EmptyBufferDone](_codec.md#emptybufferdone) )(struct [ERROR:Invalid link:zh-cn_topic_0000001304382300.xml#xref1077915705083931,link:zh-cn_topic_0000001304382300.xml](zh-cn_topic_0000001304382300.xml) \*self, int8_t \*appData, uint32_t appDataLen, const struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 上报输入buffer编码或者解码处理完毕。 [更多...](_codec.md#emptybufferdone) | +| ( [FillBufferDone](_codec.md#fillbufferdone) )(struct [ERROR:Invalid link:zh-cn_topic_0000001304382300.xml#xref1123615867083931,link:zh-cn_topic_0000001304382300.xml](zh-cn_topic_0000001304382300.xml) \*self, int8_t \*appData, uint32_t appDataLen, struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 上报输出buffer填充完毕。 [更多...](_codec.md#fillbufferdone) | ## **详细描述** diff --git a/zh-cn/device-dev/api/_codec_comp_capability.md b/zh-cn/device-dev/reference/hdi-apis/_codec_comp_capability.md similarity index 100% rename from zh-cn/device-dev/api/_codec_comp_capability.md rename to zh-cn/device-dev/reference/hdi-apis/_codec_comp_capability.md diff --git a/zh-cn/device-dev/api/_codec_component_manager.md b/zh-cn/device-dev/reference/hdi-apis/_codec_component_manager.md similarity index 100% rename from zh-cn/device-dev/api/_codec_component_manager.md rename to zh-cn/device-dev/reference/hdi-apis/_codec_component_manager.md diff --git a/zh-cn/device-dev/api/_codec_component_type.md b/zh-cn/device-dev/reference/hdi-apis/_codec_component_type.md similarity index 56% rename from zh-cn/device-dev/api/_codec_component_type.md rename to zh-cn/device-dev/reference/hdi-apis/_codec_component_type.md index 5799b29326..9487954829 100644 --- a/zh-cn/device-dev/api/_codec_component_type.md +++ b/zh-cn/device-dev/reference/hdi-apis/_codec_component_type.md @@ -15,24 +15,24 @@ | Public 属性 | 描述 | | -------- | -------- | -| ( [GetComponentVersion](_codec.md#getcomponentversion) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1521256091083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, struct [CompVerInfo](_comp_ver_info.md) \*verInfo) | 获取Codec组件版本号。 [更多...](_codec.md#getcomponentversion) | -| ( [SendCommand](_codec.md#sendcommand) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref2020788308083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, enum OMX_COMMANDTYPE cmd, uint32_t param, int8_t \*cmdData, uint32_t cmdDataLen) | 发送命令给组件。 [更多...](_codec.md#sendcommand) | -| ( [GetParameter](_codec.md#getparameter) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref2071182762083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint32_t paramIndex, int8_t \*paramStruct, uint32_t paramStructLen) | 获取组件参数设置。 [更多...](_codec.md#getparameter) | -| ( [SetParameter](_codec.md#setparameter) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1874982936083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint32_t index, int8_t \*paramStruct, uint32_t paramStructLen) | 设置组件需要的参数。 [更多...](_codec.md#setparameter) | -| ( [GetConfig](_codec.md#getconfig) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref921941812083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint32_t index, int8_t \*cfgStruct, uint32_t cfgStructLen) | 获取组件的配置结构。 [更多...](_codec.md#getconfig) | -| ( [SetConfig](_codec.md#setconfig) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1073566491083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint32_t index, int8_t \*cfgStruct, uint32_t cfgStructLen) | 设置组件的配置。 [更多...](_codec.md#setconfig) | -| ( [GetExtensionIndex](_codec.md#getextensionindex) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref68113596083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, const char \*paramName, uint32_t \*indexType) | 根据字符串获取组件的扩展索引。 [更多...](_codec.md#getextensionindex) | -| ( [GetState](_codec.md#getstate) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1226754841083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, enum OMX_STATETYPE \*state) | 获取组件的当前状态。 [更多...](_codec.md#getstate) | -| ( [ComponentTunnelRequest](_codec.md#componenttunnelrequest) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1739461855083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint32_t port, int32_t tunneledComp, uint32_t tunneledPort, struct OMX_TUNNELSETUPTYPE \*tunnelSetup) | 设置组件采用Tunnel方式通信。 [更多...](_codec.md#componenttunnelrequest) | -| ( [UseBuffer](_codec.md#usebuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref2135329427083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint32_t portIndex, struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 指定组件端口的buffer。 [更多...](_codec.md#usebuffer) | -| ( [AllocateBuffer](_codec.md#allocatebuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref857621490083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint32_t portIndex, struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 向组件申请端口buffer。 [更多...](_codec.md#allocatebuffer) | -| ( [FreeBuffer](_codec.md#freebuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1026220701083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint32_t portIndex, const struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 释放buffer。 [更多...](_codec.md#freebuffer) | -| ( [EmptyThisBuffer](_codec.md#emptythisbuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1735359869083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, const struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 编解码输入待处理buffer。 [更多...](_codec.md#emptythisbuffer) | -| ( [FillThisBuffer](_codec.md#fillthisbuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1574208746083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, const struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 编解码输出填充buffer。 [更多...](_codec.md#fillthisbuffer) | -| ( [SetCallbacks](_codec.md#setcallbacks) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1922857471083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, struct [CodecCallbackType](_codec_callback_type.md) \*callback, int8_t \*appData, uint32_t appDataLen) | 设置Codec组件的回调函数。 [更多...](_codec.md#setcallbacks) | -| ( [ComponentDeInit](_codec.md#componentdeinit) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1721252790083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self) | 组件去初始化。 [更多...](_codec.md#componentdeinit) | -| ( [UseEglImage](_codec.md#useeglimage) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref872648430083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer, uint32_t portIndex, int8_t \*eglImage, uint32_t eglImageLen) | 使用已在EGL中申请的空间。 [更多...](_codec.md#useeglimage) | -| ( [ComponentRoleEnum](_codec.md#componentroleenum) )(struct [ERROR:Invalid link:zh-cn_topic_0000001295573848.xml#xref1661834974083931,link:zh-cn_topic_0000001295573848.xml](zh-cn_topic_0000001295573848.xml) \*self, uint8_t \*role, uint32_t roleLen, uint32_t index) | 获取组件角色。 [更多...](_codec.md#componentroleenum) | +| ( [GetComponentVersion](_codec.md#getcomponentversion) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref1521256091083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self, struct [CompVerInfo](_comp_ver_info.md) \*verInfo) | 获取Codec组件版本号。 [更多...](_codec.md#getcomponentversion) | +| ( [SendCommand](_codec.md#sendcommand) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref2020788308083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self, enum OMX_COMMANDTYPE cmd, uint32_t param, int8_t \*cmdData, uint32_t cmdDataLen) | 发送命令给组件。 [更多...](_codec.md#sendcommand) | +| ( [GetParameter](_codec.md#getparameter) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref2071182762083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self, uint32_t paramIndex, int8_t \*paramStruct, uint32_t paramStructLen) | 获取组件参数设置。 [更多...](_codec.md#getparameter) | +| ( [SetParameter](_codec.md#setparameter) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref1874982936083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self, uint32_t index, int8_t \*paramStruct, uint32_t paramStructLen) | 设置组件需要的参数。 [更多...](_codec.md#setparameter) | +| ( [GetConfig](_codec.md#getconfig) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref921941812083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self, uint32_t index, int8_t \*cfgStruct, uint32_t cfgStructLen) | 获取组件的配置结构。 [更多...](_codec.md#getconfig) | +| ( [SetConfig](_codec.md#setconfig) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref1073566491083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self, uint32_t index, int8_t \*cfgStruct, uint32_t cfgStructLen) | 设置组件的配置。 [更多...](_codec.md#setconfig) | +| ( [GetExtensionIndex](_codec.md#getextensionindex) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref68113596083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self, const char \*paramName, uint32_t \*indexType) | 根据字符串获取组件的扩展索引。 [更多...](_codec.md#getextensionindex) | +| ( [GetState](_codec.md#getstate) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref1226754841083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self, enum OMX_STATETYPE \*state) | 获取组件的当前状态。 [更多...](_codec.md#getstate) | +| ( [ComponentTunnelRequest](_codec.md#componenttunnelrequest) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref1739461855083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self, uint32_t port, int32_t tunneledComp, uint32_t tunneledPort, struct OMX_TUNNELSETUPTYPE \*tunnelSetup) | 设置组件采用Tunnel方式通信。 [更多...](_codec.md#componenttunnelrequest) | +| ( [UseBuffer](_codec.md#usebuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref2135329427083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self, uint32_t portIndex, struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 指定组件端口的buffer。 [更多...](_codec.md#usebuffer) | +| ( [AllocateBuffer](_codec.md#allocatebuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref857621490083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self, uint32_t portIndex, struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 向组件申请端口buffer。 [更多...](_codec.md#allocatebuffer) | +| ( [FreeBuffer](_codec.md#freebuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref1026220701083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self, uint32_t portIndex, const struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 释放buffer。 [更多...](_codec.md#freebuffer) | +| ( [EmptyThisBuffer](_codec.md#emptythisbuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref1735359869083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self, const struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 编解码输入待处理buffer。 [更多...](_codec.md#emptythisbuffer) | +| ( [FillThisBuffer](_codec.md#fillthisbuffer) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref1574208746083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self, const struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer) | 编解码输出填充buffer。 [更多...](_codec.md#fillthisbuffer) | +| ( [SetCallbacks](_codec.md#setcallbacks) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref1922857471083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self, struct [CodecCallbackType](_codec_callback_type.md) \*callback, int8_t \*appData, uint32_t appDataLen) | 设置Codec组件的回调函数。 [更多...](_codec.md#setcallbacks) | +| ( [ComponentDeInit](_codec.md#componentdeinit) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref1721252790083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self) | 组件去初始化。 [更多...](_codec.md#componentdeinit) | +| ( [UseEglImage](_codec.md#useeglimage) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref872648430083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self, struct [OmxCodecBuffer](_omx_codec_buffer.md) \*buffer, uint32_t portIndex, int8_t \*eglImage, uint32_t eglImageLen) | 使用已在EGL中申请的空间。 [更多...](_codec.md#useeglimage) | +| ( [ComponentRoleEnum](_codec.md#componentroleenum) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357501829.xml#xref1661834974083931,link:zh-cn_topic_0000001357501829.xml](zh-cn_topic_0000001357501829.xml) \*self, uint8_t \*role, uint32_t roleLen, uint32_t index) | 获取组件角色。 [更多...](_codec.md#componentroleenum) | ## **详细描述** diff --git a/zh-cn/device-dev/api/_comp_ver_info.md b/zh-cn/device-dev/reference/hdi-apis/_comp_ver_info.md similarity index 100% rename from zh-cn/device-dev/api/_comp_ver_info.md rename to zh-cn/device-dev/reference/hdi-apis/_comp_ver_info.md diff --git a/zh-cn/device-dev/api/_credential_info.md b/zh-cn/device-dev/reference/hdi-apis/_credential_info.md similarity index 62% rename from zh-cn/device-dev/api/_credential_info.md rename to zh-cn/device-dev/reference/hdi-apis/_credential_info.md index 44106f40d3..c51b0e7909 100644 --- a/zh-cn/device-dev/api/_credential_info.md +++ b/zh-cn/device-dev/reference/hdi-apis/_credential_info.md @@ -18,10 +18,9 @@ | [credentialId](#credentialid) | 认证凭据ID。 | | [index](#index) | 用户认证框架的执行器索引。 | | [templateId](#templateid) | 认证凭据模版ID。 | -| [authType](#authtype) | 用户认证凭据类型AuthType}。 | -| [executorType](#executortype) | 执行器类型。 | -| [executorId](#executorid) | 既定用户认证凭据类型的执行器ID。 | -| [extraInfo](#extrainfo) | 其他相关信息,用于支持信息扩展。 | +| [authType](#authtype) | 用户认证凭据类型AuthType。 | +| [executorMatcher](#executormatcher) | 执行器匹配器。 | +| [executorSensorHint](#executorsensorhint) | 既定用户认证凭据类型的执行器传感器提示,用于找到对应认证方式的传感器。 | ## **详细描述** @@ -64,40 +63,28 @@ unsigned long CredentialInfo::credentialId 认证凭据ID。 -### executorId +### executorSensorHint ``` -unsigned int CredentialInfo::executorId +unsigned int CredentialInfo::executorSensorHint ``` **描述:** -既定用户认证凭据类型的执行器ID。 +既定用户认证凭据类型的执行器传感器提示,用于找到对应认证方式的传感器。 -### executorType +### executorMatcher ``` -unsigned int CredentialInfo::executorType +unsigned int CredentialInfo::executorMatcher ``` **描述:** -执行器类型。 - - -### extraInfo - - -``` -unsigned char [] CredentialInfo::extraInfo -``` - -**描述:** - -其他相关信息,用于支持信息扩展。 +执行器匹配器。 ### index diff --git a/zh-cn/device-dev/api/_device_funcs.md b/zh-cn/device-dev/reference/hdi-apis/_device_funcs.md similarity index 100% rename from zh-cn/device-dev/api/_device_funcs.md rename to zh-cn/device-dev/reference/hdi-apis/_device_funcs.md diff --git a/zh-cn/device-dev/api/_device_info.md b/zh-cn/device-dev/reference/hdi-apis/_device_info.md similarity index 100% rename from zh-cn/device-dev/api/_device_info.md rename to zh-cn/device-dev/reference/hdi-apis/_device_info.md diff --git a/zh-cn/device-dev/api/_display.md b/zh-cn/device-dev/reference/hdi-apis/_display.md similarity index 99% rename from zh-cn/device-dev/api/_display.md rename to zh-cn/device-dev/reference/hdi-apis/_display.md index 45e1ff9854..a062997aa1 100644 --- a/zh-cn/device-dev/api/_display.md +++ b/zh-cn/device-dev/reference/hdi-apis/_display.md @@ -63,7 +63,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [DispErrCode](#disperrcode) { DISPLAY_SUCCESS = 0, DISPLAY_FAILURE = -1, DISPLAY_FD_ERR = -2, DISPLAY_PARAM_ERR = -3,   DISPLAY_NULL_PTR = -4, DISPLAY_NOT_SUPPORT = -5, DISPLAY_NOMEM = -6, DISPLAY_SYS_BUSY = -7,   DISPLAY_NOT_PERM = -8 } | 返回值类型定义。 [更多...](#disperrcode) | | [LayerType](#layertype) { LAYER_TYPE_GRAPHIC, LAYER_TYPE_OVERLAY, LAYER_TYPE_SDIEBAND, LAYER_TYPE_CURSOR,   LAYER_TYPE_BUTT } | 图层类型定义。 [更多...](#layertype) | @@ -102,7 +102,7 @@ ### 变量 - | 变量 名称 | 描述 | + | 变量 | 描述 | | -------- | -------- | | ( [DeviceFuncs::RegHotPlugCallback](#reghotplugcallback) )([HotPlugCallback](#hotplugcallback) callback, void \*data) | 注册热插拔事件回调。 [更多...](#reghotplugcallback) | | ( [DeviceFuncs::RegDisplayVBlankCallback](#regdisplayvblankcallback) )(uint32_t devId, [VBlankCallback](#vblankcallback) callback, void \*data) | 注册VBlank事件回调。 [更多...](#regdisplayvblankcallback) | @@ -279,12 +279,11 @@ typedef void(* HotPlugCallback) (uint32_t devId, bool connected, void *data) 当有热插拔事件发生时,会回调该接口,需要通过RegHotPlugCallback注册该回调接口。 -\@paramdevId 输入参数,显示设备ID,此ID由HDI实现层生成,并通过当前回调接口传递给图形服务使用,用以标记当前连接的显示设备。 - **参数:** | 名称 | 描述 | | -------- | -------- | +| devId | 输入参数,显示设备ID,此ID由HDI实现层生成,并通过当前回调接口传递给图形服务使用,用以标记当前连接的显示设备。 | | connected | 输入参数,指明设备的连接状态,ture代表连接,false代表断开。 | | data | 输出参数,图形服务携带的私有数据,该参数携带的是RegHotPlugCallback接口注册时传递的私有数据地址,详情参考 RegHotPlugCallback 接口注册时传递的地址。 | @@ -1374,7 +1373,7 @@ int32_t(* DeviceFuncs::CreateVirtualDisplay) (uint32_t width, uint32_t height, i | -------- | -------- | | width | 输入参数,指定显示设备的像素宽度。 | | height | 输入参数,指定显示设备的像素高度。 | -| format | 输出参数,指定显示设备的像素格式。 详情参考[ERROR:Invalid link:zh-cn_topic_0000001295414172.xml#xref738382043153217,link:zh-cn_topic_0000001347985105.xml#ga60883d4958a60b91661e97027a85072a](zh-cn_topic_0000001347985105.xml#ga60883d4958a60b91661e97027a85072a),接口实现层可以根据硬件需求,修改format并返回给图形服务。 | +| format | 输出参数,指定显示设备的像素格式。 详情参考[ERROR:Invalid link:zh-cn_topic_0000001357381993.xml#xref738382043153217,link:zh-cn_topic_0000001347985105.xml#ga60883d4958a60b91661e97027a85072a](zh-cn_topic_0000001347985105.xml#ga60883d4958a60b91661e97027a85072a),接口实现层可以根据硬件需求,修改format并返回给图形服务。 | | devId | 输出参数,用于接口层返回创建的设备ID。 | **返回:** diff --git a/zh-cn/device-dev/api/_display_capability.md b/zh-cn/device-dev/reference/hdi-apis/_display_capability.md similarity index 100% rename from zh-cn/device-dev/api/_display_capability.md rename to zh-cn/device-dev/reference/hdi-apis/_display_capability.md diff --git a/zh-cn/device-dev/api/_display_info.md b/zh-cn/device-dev/reference/hdi-apis/_display_info.md similarity index 100% rename from zh-cn/device-dev/api/_display_info.md rename to zh-cn/device-dev/reference/hdi-apis/_display_info.md diff --git a/zh-cn/device-dev/api/_display_mode_info.md b/zh-cn/device-dev/reference/hdi-apis/_display_mode_info.md similarity index 100% rename from zh-cn/device-dev/api/_display_mode_info.md rename to zh-cn/device-dev/reference/hdi-apis/_display_mode_info.md diff --git a/zh-cn/device-dev/api/_enroll_param.md b/zh-cn/device-dev/reference/hdi-apis/_enroll_param.md similarity index 64% rename from zh-cn/device-dev/api/_enroll_param.md rename to zh-cn/device-dev/reference/hdi-apis/_enroll_param.md index 62e7e41698..cc322e8336 100644 --- a/zh-cn/device-dev/api/_enroll_param.md +++ b/zh-cn/device-dev/reference/hdi-apis/_enroll_param.md @@ -17,12 +17,12 @@ | -------- | -------- | | [authType](#authtype) | 用户认证凭据类型。 | | [executorType](#executortype) | 执行器类型。 | -| [executorId](#executorid) | 既定用户认证凭据类型的执行器ID。 | +| [executorId](#executorsensorhint) | 既定用户认证凭据类型的执行器传感器提示,用于找到对应认证方式的传感器。 | ## **详细描述** -注册认证凭据参数。 +录入结果信息。 **Since:** @@ -48,16 +48,16 @@ enum AuthType EnrollParam::authType 用户认证凭据类型。 -### executorId +### executorSensorHint ``` -unsigned int EnrollParam::executorId +unsigned int EnrollParam::executorSensorHint ``` **描述:** -既定用户认证凭据类型的执行器ID。 +既定用户认证凭据类型的执行器传感器提示,用于找到对应认证方式的传感器。 ### executorType diff --git a/zh-cn/device-dev/reference/hdi-apis/_enroll_resultinfo.md b/zh-cn/device-dev/reference/hdi-apis/_enroll_resultinfo.md new file mode 100644 index 0000000000..a1213411c3 --- /dev/null +++ b/zh-cn/device-dev/reference/hdi-apis/_enroll_resultinfo.md @@ -0,0 +1,72 @@ +# EnrollResultInfo + + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [credentialId](#credentialid) | 认证凭据ID。 | +| [oldInfo](#oldinfo) | 旧凭据信息。 | +| [rootSecret](#rootsecret) | 保护文件加密密钥的密钥。 | + + +## **详细描述** + +注册认证凭据参数。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### credentialId + + +``` +unsigned long EnrollResultInfo::credentialId +``` + +**描述:** + +认证凭据ID。 + + +### oldInfo + + +``` +struct CredentialInfo EnrollParam::oldInfo +``` + +**描述:** + +旧凭据信息{\@link CredentialInfo}。 + + +### rootSecret + + +``` +unsigned char[] EnrollParam::rootSecret +``` + +**描述:** + +保护文件加密密钥的密钥。 diff --git a/zh-cn/device-dev/api/_enrolled_info.md b/zh-cn/device-dev/reference/hdi-apis/_enrolled_info.md similarity index 100% rename from zh-cn/device-dev/api/_enrolled_info.md rename to zh-cn/device-dev/reference/hdi-apis/_enrolled_info.md diff --git a/zh-cn/device-dev/api/_event_info.md b/zh-cn/device-dev/reference/hdi-apis/_event_info.md similarity index 100% rename from zh-cn/device-dev/api/_event_info.md rename to zh-cn/device-dev/reference/hdi-apis/_event_info.md diff --git a/zh-cn/device-dev/api/_event_package.md b/zh-cn/device-dev/reference/hdi-apis/_event_package.md similarity index 100% rename from zh-cn/device-dev/api/_event_package.md rename to zh-cn/device-dev/reference/hdi-apis/_event_package.md diff --git a/zh-cn/device-dev/api/_executor_info.md b/zh-cn/device-dev/reference/hdi-apis/_executor_info.md similarity index 98% rename from zh-cn/device-dev/api/_executor_info.md rename to zh-cn/device-dev/reference/hdi-apis/_executor_info.md index ebf70e726e..b769eeab63 100644 --- a/zh-cn/device-dev/api/_executor_info.md +++ b/zh-cn/device-dev/reference/hdi-apis/_executor_info.md @@ -5,7 +5,7 @@ **所属模块:** -[HdfFaceAuth](_hdf_face_auth.md) | [HdfPinAuth](_hdf_pin_auth.md) | [HdfUserAuth](_hdf_user_auth.md) +[HdfFaceAuth](_hdf_face_auth.md) | [HdfPinAuth](_hdf_pin_auth.md) ## **汇总** diff --git a/zh-cn/device-dev/api/_executor_register_info.md b/zh-cn/device-dev/reference/hdi-apis/_executor_register_info.md similarity index 68% rename from zh-cn/device-dev/api/_executor_register_info.md rename to zh-cn/device-dev/reference/hdi-apis/_executor_register_info.md index c236a726ce..85ba520901 100644 --- a/zh-cn/device-dev/api/_executor_register_info.md +++ b/zh-cn/device-dev/reference/hdi-apis/_executor_register_info.md @@ -17,8 +17,8 @@ | -------- | -------- | | [authType](#authtype) | 用户认证凭据类型。 | | [executorRole](#executorrole) | 执行器角色ExecutorRole。 | -| [executorId](#executorid) | 既定用户认证凭据类型的执行器ID。 | -| [executorType](#executortype) | 执行器类型,根据执行器支持的认证能力进行分类。 | +| [executorSensorHint](#executorsensorhint) | 既定用户认证凭据类型的执行器ID。 | +| [executorMatcher](#executormatcher) | 执行器类型,根据执行器支持的认证能力进行分类。 | | [esl](#esl) | 执行器安全等级ExecutorSecureLevel。 | | [publicKey](#publickey) | 执行器公钥,用于校验该执行器私钥签名的信息。 | @@ -63,16 +63,16 @@ enum ExecutorSecureLevel ExecutorRegisterInfo::esl 执行器安全等级ExecutorSecureLevel。 -### executorId +### executorSensorHint ``` -unsigned int ExecutorRegisterInfo::executorId +unsigned int ExecutorRegisterInfo::executorSensorHint ``` **描述:** -既定用户认证凭据类型的执行器ID。 +既定用户认证凭据类型的执行器传感器提示,用于找到对应认证方式的传感器。 ### executorRole @@ -87,16 +87,16 @@ enum ExecutorRole ExecutorRegisterInfo::executorRole 执行器角色ExecutorRole。 -### executorType +### executorMatcher ``` -unsigned int ExecutorRegisterInfo::executorType +unsigned int ExecutorRegisterInfo::executorMatcher ``` **描述:** -执行器类型,根据执行器支持的认证能力进行分类。 +执行器匹配器,根据执行器支持的认证能力进行分类。 ### publicKey diff --git a/zh-cn/device-dev/api/_executor_send_msg.md b/zh-cn/device-dev/reference/hdi-apis/_executor_send_msg.md similarity index 64% rename from zh-cn/device-dev/api/_executor_send_msg.md rename to zh-cn/device-dev/reference/hdi-apis/_executor_send_msg.md index c9ce8546ee..90ed9fcc89 100644 --- a/zh-cn/device-dev/api/_executor_send_msg.md +++ b/zh-cn/device-dev/reference/hdi-apis/_executor_send_msg.md @@ -15,7 +15,8 @@ | Public 属性 | 描述 | | -------- | -------- | -| [index](#index) | 用户认证框架的执行器索引。 | +| [executorIndex](#executorindex) | 用户认证框架的执行器索引。 | +| [commandId](#commandid) | 消息命令ID。 | | [msg](#msg) | 执行器发送的消息。 | @@ -33,11 +34,11 @@ ## **类成员变量说明** -### index +### executorIndex ``` -unsigned int ExecutorSendMsg::index +unsigned long ExecutorSendMsg::executorIndex ``` **描述:** @@ -45,6 +46,18 @@ unsigned int ExecutorSendMsg::index 用户认证框架的执行器索引。 +### commandId + + +``` +unsigned int ExecutorSendMsg::commandId +``` + +**描述:** + +消息命令ID。 + + ### msg diff --git a/zh-cn/device-dev/api/_face_auth_types_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_face_auth_types_8idl.md similarity index 98% rename from zh-cn/device-dev/api/_face_auth_types_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/_face_auth_types_8idl.md index 2355173ac2..b9c9e4ad78 100644 --- a/zh-cn/device-dev/api/_face_auth_types_8idl.md +++ b/zh-cn/device-dev/reference/hdi-apis/_face_auth_types_8idl.md @@ -21,7 +21,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [AuthType](_hdf_face_auth.md#authtype) : int { PIN = 1, FACE = 2, FINGERPRINT = 4 } | 枚举用户认证凭据类型。 [更多...](_hdf_face_auth.md#authtype) | | [ExecutorRole](_hdf_face_auth.md#executorrole) : int { COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 } | 枚举执行器角色。 [更多...](_hdf_face_auth.md#executorrole) | diff --git a/zh-cn/device-dev/api/_get_buffer_handle_usage_params.md b/zh-cn/device-dev/reference/hdi-apis/_get_buffer_handle_usage_params.md similarity index 100% rename from zh-cn/device-dev/api/_get_buffer_handle_usage_params.md rename to zh-cn/device-dev/reference/hdi-apis/_get_buffer_handle_usage_params.md diff --git a/zh-cn/device-dev/api/_gfx_funcs.md b/zh-cn/device-dev/reference/hdi-apis/_gfx_funcs.md similarity index 100% rename from zh-cn/device-dev/api/_gfx_funcs.md rename to zh-cn/device-dev/reference/hdi-apis/_gfx_funcs.md diff --git a/zh-cn/device-dev/api/_gfx_opt.md b/zh-cn/device-dev/reference/hdi-apis/_gfx_opt.md similarity index 100% rename from zh-cn/device-dev/api/_gfx_opt.md rename to zh-cn/device-dev/reference/hdi-apis/_gfx_opt.md diff --git a/zh-cn/device-dev/api/_gralloc_funcs.md b/zh-cn/device-dev/reference/hdi-apis/_gralloc_funcs.md similarity index 100% rename from zh-cn/device-dev/api/_gralloc_funcs.md rename to zh-cn/device-dev/reference/hdi-apis/_gralloc_funcs.md diff --git a/zh-cn/device-dev/api/_h_d_r_capability.md b/zh-cn/device-dev/reference/hdi-apis/_h_d_r_capability.md similarity index 100% rename from zh-cn/device-dev/api/_h_d_r_capability.md rename to zh-cn/device-dev/reference/hdi-apis/_h_d_r_capability.md diff --git a/zh-cn/device-dev/api/_h_d_r_meta_data.md b/zh-cn/device-dev/reference/hdi-apis/_h_d_r_meta_data.md similarity index 100% rename from zh-cn/device-dev/api/_h_d_r_meta_data.md rename to zh-cn/device-dev/reference/hdi-apis/_h_d_r_meta_data.md diff --git a/zh-cn/device-dev/api/_hdf_face_auth.md b/zh-cn/device-dev/reference/hdi-apis/_hdf_face_auth.md similarity index 99% rename from zh-cn/device-dev/api/_hdf_face_auth.md rename to zh-cn/device-dev/reference/hdi-apis/_hdf_face_auth.md index 0a1a83330c..742e19ca1c 100644 --- a/zh-cn/device-dev/api/_hdf_face_auth.md +++ b/zh-cn/device-dev/reference/hdi-apis/_hdf_face_auth.md @@ -27,7 +27,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [AuthType](#authtype) : int { PIN = 1, FACE = 2, FINGERPRINT = 4 } | 枚举用户认证凭据类型。 [更多...](#authtype) | | [ExecutorRole](#executorrole) : int { COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 } | 枚举执行器角色。 [更多...](#executorrole) | diff --git a/zh-cn/device-dev/api/_hdf_pin_auth.md b/zh-cn/device-dev/reference/hdi-apis/_hdf_pin_auth.md similarity index 100% rename from zh-cn/device-dev/api/_hdf_pin_auth.md rename to zh-cn/device-dev/reference/hdi-apis/_hdf_pin_auth.md diff --git a/zh-cn/device-dev/api/_hdf_thermal_callback_info.md b/zh-cn/device-dev/reference/hdi-apis/_hdf_thermal_callback_info.md similarity index 100% rename from zh-cn/device-dev/api/_hdf_thermal_callback_info.md rename to zh-cn/device-dev/reference/hdi-apis/_hdf_thermal_callback_info.md diff --git a/zh-cn/device-dev/api/_hdf_user_auth.md b/zh-cn/device-dev/reference/hdi-apis/_hdf_user_auth.md similarity index 97% rename from zh-cn/device-dev/api/_hdf_user_auth.md rename to zh-cn/device-dev/reference/hdi-apis/_hdf_user_auth.md index 824822acf7..7b93380140 100644 --- a/zh-cn/device-dev/api/_hdf_user_auth.md +++ b/zh-cn/device-dev/reference/hdi-apis/_hdf_user_auth.md @@ -18,7 +18,7 @@ | -------- | -------- | | [IUserAuthInterface](interface_i_user_auth_interface.md) | 声明用户认证驱动的API接口。 [更多...](interface_i_user_auth_interface.md) | | [ExecutorRegisterInfo](_executor_register_info.md) | 执行器注册信息。 [更多...](_executor_register_info.md) | -| [ExecutorInfo](_executor_info.md) | 执行器信息。 [更多...](_executor_info.md) | +| [ExecutorInfo](_user_executor_info.md) | 执行器信息。 [更多...](_user_executor_info.md) | | [ScheduleInfo](_schedule_info.md) | 调度信息。 [更多...](_schedule_info.md) | | [AuthSolution](_auth_solution.md) | 认证方案。 [更多...](_auth_solution.md) | | [ExecutorSendMsg](_executor_send_msg.md) | 执行器发送的消息。 [更多...](_executor_send_msg.md) | @@ -40,7 +40,7 @@ ### 变量 - | 变量 名称 | 描述 | + | 变量 | 描述 | | -------- | -------- | | package ohos.hdi.user_auth.v1_0 | 用户认证接口的包路径 | diff --git a/zh-cn/device-dev/api/_i_battery_callback_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_battery_callback_8idl.md similarity index 100% rename from zh-cn/device-dev/api/_i_battery_callback_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/_i_battery_callback_8idl.md diff --git a/zh-cn/device-dev/api/_i_battery_interface_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_battery_interface_8idl.md similarity index 100% rename from zh-cn/device-dev/api/_i_battery_interface_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/_i_battery_interface_8idl.md diff --git a/zh-cn/device-dev/api/_i_circle.md b/zh-cn/device-dev/reference/hdi-apis/_i_circle.md similarity index 100% rename from zh-cn/device-dev/api/_i_circle.md rename to zh-cn/device-dev/reference/hdi-apis/_i_circle.md diff --git a/zh-cn/device-dev/api/_i_face_auth_interface_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_face_auth_interface_8idl.md similarity index 100% rename from zh-cn/device-dev/api/_i_face_auth_interface_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/_i_face_auth_interface_8idl.md diff --git a/zh-cn/device-dev/api/_i_input_interface.md b/zh-cn/device-dev/reference/hdi-apis/_i_input_interface.md similarity index 100% rename from zh-cn/device-dev/api/_i_input_interface.md rename to zh-cn/device-dev/reference/hdi-apis/_i_input_interface.md diff --git a/zh-cn/device-dev/api/_i_line.md b/zh-cn/device-dev/reference/hdi-apis/_i_line.md similarity index 100% rename from zh-cn/device-dev/api/_i_line.md rename to zh-cn/device-dev/reference/hdi-apis/_i_line.md diff --git a/zh-cn/device-dev/api/_i_pin_auth_interface_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_pin_auth_interface_8idl.md similarity index 100% rename from zh-cn/device-dev/api/_i_pin_auth_interface_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/_i_pin_auth_interface_8idl.md diff --git a/zh-cn/device-dev/api/_i_power_hdi_callback_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_power_hdi_callback_8idl.md similarity index 100% rename from zh-cn/device-dev/api/_i_power_hdi_callback_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/_i_power_hdi_callback_8idl.md diff --git a/zh-cn/device-dev/api/_i_power_interface_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_power_interface_8idl.md similarity index 100% rename from zh-cn/device-dev/api/_i_power_interface_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/_i_power_interface_8idl.md diff --git a/zh-cn/device-dev/api/_i_rect.md b/zh-cn/device-dev/reference/hdi-apis/_i_rect.md similarity index 100% rename from zh-cn/device-dev/api/_i_rect.md rename to zh-cn/device-dev/reference/hdi-apis/_i_rect.md diff --git a/zh-cn/device-dev/api/_i_surface.md b/zh-cn/device-dev/reference/hdi-apis/_i_surface.md similarity index 100% rename from zh-cn/device-dev/api/_i_surface.md rename to zh-cn/device-dev/reference/hdi-apis/_i_surface.md diff --git a/zh-cn/device-dev/api/_i_thermal_callback_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_thermal_callback_8idl.md similarity index 100% rename from zh-cn/device-dev/api/_i_thermal_callback_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/_i_thermal_callback_8idl.md diff --git a/zh-cn/device-dev/api/_i_thermal_interface_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_thermal_interface_8idl.md similarity index 100% rename from zh-cn/device-dev/api/_i_thermal_interface_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/_i_thermal_interface_8idl.md diff --git a/zh-cn/device-dev/api/_i_user_auth_interface_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_i_user_auth_interface_8idl.md similarity index 100% rename from zh-cn/device-dev/api/_i_user_auth_interface_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/_i_user_auth_interface_8idl.md diff --git a/zh-cn/device-dev/api/_i_wi_fi.md b/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi.md similarity index 97% rename from zh-cn/device-dev/api/_i_wi_fi.md rename to zh-cn/device-dev/reference/hdi-apis/_i_wi_fi.md index ebbd3612dd..dc342d18d0 100644 --- a/zh-cn/device-dev/api/_i_wi_fi.md +++ b/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi.md @@ -15,8 +15,8 @@ | Public 属性 | 描述 | | -------- | -------- | -| ( [start](#start) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348293957.xml#xref459063066083932,link:zh-cn_topic_0000001348293957.xml](zh-cn_topic_0000001348293957.xml) \*iwifi) | 创建HAL和驱动之间的通道及获取驱动网卡信息,该函数调用在创建IWiFi实体后进行。 [更多...](#start) | -| ( [stop](#stop) )(struct [ERROR:Invalid link:zh-cn_topic_0000001348293957.xml#xref1577893620083932,link:zh-cn_topic_0000001348293957.xml](zh-cn_topic_0000001348293957.xml) \*iwifi) | 销毁HAL和驱动之间的通道,该函数调用在销毁IWiFi实体前进行。 [更多...](#stop) | +| ( [start](#start) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357382009.xml#xref459063066083932,link:zh-cn_topic_0000001357382009.xml](zh-cn_topic_0000001357382009.xml) \*iwifi) | 创建HAL和驱动之间的通道及获取驱动网卡信息,该函数调用在创建IWiFi实体后进行。 [更多...](#start) | +| ( [stop](#stop) )(struct [ERROR:Invalid link:zh-cn_topic_0000001357382009.xml#xref1577893620083932,link:zh-cn_topic_0000001357382009.xml](zh-cn_topic_0000001357382009.xml) \*iwifi) | 销毁HAL和驱动之间的通道,该函数调用在销毁IWiFi实体前进行。 [更多...](#stop) | | ( [getSupportFeature](#getsupportfeature) )(uint8_t \*supType, uint32_t size) | 获取该设备支持的WLAN特性(不考虑当前的使用状态)。 [更多...](#getsupportfeature) | | ( [getSupportCombo](#getsupportcombo) )(uint64_t \*combo, uint32_t size) | 获取多网卡共存情况。 [更多...](#getsupportcombo) | | ( [createFeature](#createfeature) )(int32_t type, struct [IWiFiBaseFeature](_i_wi_fi_base_feature.md) \*\*ifeature) | 根据输入类型创建对应的特性[IWiFiBaseFeature](_i_wi_fi_base_feature.md)。 [更多...](#createfeature) | diff --git a/zh-cn/device-dev/api/_i_wi_fi_ap.md b/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_ap.md similarity index 79% rename from zh-cn/device-dev/api/_i_wi_fi_ap.md rename to zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_ap.md index 0c02c1ccb3..3c1cb098d3 100644 --- a/zh-cn/device-dev/api/_i_wi_fi_ap.md +++ b/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_ap.md @@ -16,8 +16,8 @@ | Public 属性 | 描述 | | -------- | -------- | | [baseFeature](#basefeature) | 基本特性。 | -| ( [getAsscociatedStas](#getasscociatedstas) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001348174149.xml#xref1123713694083932,link:zh-cn_topic_0000001348174149.xml](zh-cn_topic_0000001348174149.xml) \*apFeature, struct [StaInfo](_sta_info.md) \*staInfo, uint32_t count, uint32_t \*num) | 获取连接上的所有STA的信息(目前只包含MAC地址)。 [更多...](#getasscociatedstas) | -| ( [setCountryCode](#setcountrycode) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001348174149.xml#xref2129805954083932,link:zh-cn_topic_0000001348174149.xml](zh-cn_topic_0000001348174149.xml) \*apFeature, const char \*code, uint32_t len) | 设置国家码(表示AP射频所在的国家,规定了AP射频特性,包括AP的发送功率、支持的信道等。其目的是为了使AP的射频特性符合不同国家或区域的法律法规要求)。 [更多...](#setcountrycode) | +| ( [getAsscociatedStas](#getasscociatedstas) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001304062480.xml#xref1123713694083932,link:zh-cn_topic_0000001304062480.xml](zh-cn_topic_0000001304062480.xml) \*apFeature, struct [StaInfo](_sta_info.md) \*staInfo, uint32_t count, uint32_t \*num) | 获取连接上的所有STA的信息(目前只包含MAC地址)。 [更多...](#getasscociatedstas) | +| ( [setCountryCode](#setcountrycode) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001304062480.xml#xref2129805954083932,link:zh-cn_topic_0000001304062480.xml](zh-cn_topic_0000001304062480.xml) \*apFeature, const char \*code, uint32_t len) | 设置国家码(表示AP射频所在的国家,规定了AP射频特性,包括AP的发送功率、支持的信道等。其目的是为了使AP的射频特性符合不同国家或区域的法律法规要求)。 [更多...](#setcountrycode) | ## **详细描述** @@ -63,7 +63,7 @@ int32_t(* IWiFiAp::getAsscociatedStas) (const struct IWiFiAp *apFeature, struct | 名称 | 描述 | | -------- | -------- | -| apFeature | 输入参数,AP特性[ERROR:Invalid link:zh-cn_topic_0000001348174149.xml#xref901054971083932,link:zh-cn_topic_0000001348174149.xml](zh-cn_topic_0000001348174149.xml)。 | +| apFeature | 输入参数,AP特性[ERROR:Invalid link:zh-cn_topic_0000001304062480.xml#xref901054971083932,link:zh-cn_topic_0000001304062480.xml](zh-cn_topic_0000001304062480.xml)。 | | staInfo | 输出参数,保存与AP连接的STA的基本信息。 | | count | 输入参数,staInfo结构体数组的元素个数。 | | num | 输出参数,实际连接的STA的个数。 | @@ -90,7 +90,7 @@ int32_t(* IWiFiAp::setCountryCode) (const struct IWiFiAp *apFeature, const char | 名称 | 描述 | | -------- | -------- | -| apFeature | 输入参数,AP特性[ERROR:Invalid link:zh-cn_topic_0000001348174149.xml#xref1659529054083932,link:zh-cn_topic_0000001348174149.xml](zh-cn_topic_0000001348174149.xml)。 | +| apFeature | 输入参数,AP特性[ERROR:Invalid link:zh-cn_topic_0000001304062480.xml#xref1659529054083932,link:zh-cn_topic_0000001304062480.xml](zh-cn_topic_0000001304062480.xml)。 | | code | 输入参数,设置的国家码。 | | len | 输入参数,国家码长度。 | diff --git a/zh-cn/device-dev/api/_i_wi_fi_base_feature.md b/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_base_feature.md similarity index 74% rename from zh-cn/device-dev/api/_i_wi_fi_base_feature.md rename to zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_base_feature.md index 6664dab742..62b1e1935f 100644 --- a/zh-cn/device-dev/api/_i_wi_fi_base_feature.md +++ b/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_base_feature.md @@ -17,13 +17,13 @@ | -------- | -------- | | [ifName](#ifname) [[IFNAME_MAX_LEN](_w_l_a_n.md#ga63637ece87095ff8d153f650434ecf97)] | 网卡名称。 | | **type** | 特性的类型,参考[FeatureType](_w_l_a_n.md#featuretype)。 | -| ( [getNetworkIfaceName](#getnetworkifacename) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1160037662083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml) \*baseFeature) | 根据基本特性获取网卡名称。 [更多...](#getnetworkifacename) | -| ( [getFeatureType](#getfeaturetype) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref2042681197083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml) \*baseFeature) | 获取基本特性的类型[FeatureType](_w_l_a_n.md#featuretype)。 [更多...](#getfeaturetype) | -| ( [setMacAddress](#setmacaddress) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1120460385083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml) \*baseFeature, unsigned char \*mac, uint8_t len) | 根据传入参数设置对应网卡的MAC地址。 [更多...](#setmacaddress) | -| ( [getDeviceMacAddress](#getdevicemacaddress) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref330712474083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml) \*baseFeature, unsigned char \*mac, uint8_t len) | 获取设备的MAC地址。 [更多...](#getdevicemacaddress) | -| ( [getValidFreqsWithBand](#getvalidfreqswithband) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1369279207083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml) \*baseFeature, int32_t band, int32_t \*freqs, uint32_t count, uint32_t \*num) | 获取指定频段(2.4G或者5G)下支持的频率。 [更多...](#getvalidfreqswithband) | -| ( [setTxPower](#settxpower) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1878860227083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml) \*baseFeature, int32_t power) | 设置发射功率。 [更多...](#settxpower) | -| ( [getChipId](#getchipid) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref407053875083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml) \*baseFeature, uint8_t \*chipId) | 获得当前驱动的芯片ID。 [更多...](#getchipid) | +| ( [getNetworkIfaceName](#getnetworkifacename) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001357621445.xml#xref1160037662083932,link:zh-cn_topic_0000001357621445.xml](zh-cn_topic_0000001357621445.xml) \*baseFeature) | 根据基本特性获取网卡名称。 [更多...](#getnetworkifacename) | +| ( [getFeatureType](#getfeaturetype) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001357621445.xml#xref2042681197083932,link:zh-cn_topic_0000001357621445.xml](zh-cn_topic_0000001357621445.xml) \*baseFeature) | 获取基本特性的类型[FeatureType](_w_l_a_n.md#featuretype)。 [更多...](#getfeaturetype) | +| ( [setMacAddress](#setmacaddress) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001357621445.xml#xref1120460385083932,link:zh-cn_topic_0000001357621445.xml](zh-cn_topic_0000001357621445.xml) \*baseFeature, unsigned char \*mac, uint8_t len) | 根据传入参数设置对应网卡的MAC地址。 [更多...](#setmacaddress) | +| ( [getDeviceMacAddress](#getdevicemacaddress) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001357621445.xml#xref330712474083932,link:zh-cn_topic_0000001357621445.xml](zh-cn_topic_0000001357621445.xml) \*baseFeature, unsigned char \*mac, uint8_t len) | 获取设备的MAC地址。 [更多...](#getdevicemacaddress) | +| ( [getValidFreqsWithBand](#getvalidfreqswithband) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001357621445.xml#xref1369279207083932,link:zh-cn_topic_0000001357621445.xml](zh-cn_topic_0000001357621445.xml) \*baseFeature, int32_t band, int32_t \*freqs, uint32_t count, uint32_t \*num) | 获取指定频段(2.4G或者5G)下支持的频率。 [更多...](#getvalidfreqswithband) | +| ( [setTxPower](#settxpower) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001357621445.xml#xref1878860227083932,link:zh-cn_topic_0000001357621445.xml](zh-cn_topic_0000001357621445.xml) \*baseFeature, int32_t power) | 设置发射功率。 [更多...](#settxpower) | +| ( [getChipId](#getchipid) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001357621445.xml#xref407053875083932,link:zh-cn_topic_0000001357621445.xml](zh-cn_topic_0000001357621445.xml) \*baseFeature, uint8_t \*chipId) | 获得当前驱动的芯片ID。 [更多...](#getchipid) | | ( [getIfNamesByChipId](#getifnamesbychipid) )(const uint8_t chipId, char \*\*ifNames, uint32_t \*num) | 通过芯片ID获得当前芯片所有的网卡名称。 [更多...](#getifnamesbychipid) | @@ -58,7 +58,7 @@ int32_t(* IWiFiBaseFeature::getChipId) (const struct IWiFiBaseFeature *baseFeatu | 名称 | 描述 | | -------- | -------- | -| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref473855951083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml)。 | +| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001357621445.xml#xref473855951083932,link:zh-cn_topic_0000001357621445.xml](zh-cn_topic_0000001357621445.xml)。 | | chipId | 输出参数,获得的芯片ID。 | **返回:** @@ -83,7 +83,7 @@ int32_t(* IWiFiBaseFeature::getDeviceMacAddress) (const struct IWiFiBaseFeature | 名称 | 描述 | | -------- | -------- | -| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1226402066083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml)。 | +| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001357621445.xml#xref1226402066083932,link:zh-cn_topic_0000001357621445.xml](zh-cn_topic_0000001357621445.xml)。 | | mac | 输出参数,获得的MAC地址。 | | len | 输入参数,获得的MAC地址长度。 | @@ -109,7 +109,7 @@ int32_t(*IWiFiBaseFeature::getFeatureType) (const struct IWiFiBaseFeature *baseF | 名称 | 描述 | | -------- | -------- | -| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1934582661083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml)。 | +| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001357621445.xml#xref1934582661083932,link:zh-cn_topic_0000001357621445.xml](zh-cn_topic_0000001357621445.xml)。 | **返回:** @@ -159,7 +159,7 @@ const char*(* IWiFiBaseFeature::getNetworkIfaceName) (const struct IWiFiBaseFeat | 名称 | 描述 | | -------- | -------- | -| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1207169342083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml)。 | +| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001357621445.xml#xref1207169342083932,link:zh-cn_topic_0000001357621445.xml](zh-cn_topic_0000001357621445.xml)。 | **返回:** @@ -183,7 +183,7 @@ int32_t(* IWiFiBaseFeature::getValidFreqsWithBand) (const struct IWiFiBaseFeatur | 名称 | 描述 | | -------- | -------- | -| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1345697859083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml)。 | +| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001357621445.xml#xref1345697859083932,link:zh-cn_topic_0000001357621445.xml](zh-cn_topic_0000001357621445.xml)。 | | band | 输入参数,指定的一个频段。 | | freqs | 输出参数,保存支持的频率。 | | count | 输入参数,频率数组的元素个数。 | @@ -223,7 +223,7 @@ int32_t(* IWiFiBaseFeature::setMacAddress) (const struct IWiFiBaseFeature *baseF | 名称 | 描述 | | -------- | -------- | -| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref1858718007083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml)。 | +| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001357621445.xml#xref1858718007083932,link:zh-cn_topic_0000001357621445.xml](zh-cn_topic_0000001357621445.xml)。 | | mac | 输入参数,设置的MAC地址。 | | len | 输入参数,设置的MAC地址长度。 | @@ -249,7 +249,7 @@ int32_t(* IWiFiBaseFeature::setTxPower) (const struct IWiFiBaseFeature *baseFeat | 名称 | 描述 | | -------- | -------- | -| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001295414160.xml#xref793467134083932,link:zh-cn_topic_0000001295414160.xml](zh-cn_topic_0000001295414160.xml)。 | +| baseFeature | 输入参数,基本特性[ERROR:Invalid link:zh-cn_topic_0000001357621445.xml#xref793467134083932,link:zh-cn_topic_0000001357621445.xml](zh-cn_topic_0000001357621445.xml)。 | | power | 输入参数,设置的发射功率。 | **返回:** diff --git a/zh-cn/device-dev/api/_i_wi_fi_sta.md b/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_sta.md similarity index 87% rename from zh-cn/device-dev/api/_i_wi_fi_sta.md rename to zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_sta.md index 70ba26cbdd..7a4b3ffe73 100644 --- a/zh-cn/device-dev/api/_i_wi_fi_sta.md +++ b/zh-cn/device-dev/reference/hdi-apis/_i_wi_fi_sta.md @@ -16,7 +16,7 @@ | Public 属性 | 描述 | | -------- | -------- | | [baseFeature](#basefeature) | 基本特性。 | -| ( [setScanningMacAddress](#setscanningmacaddress) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001295414208.xml#xref1079443811083932,link:zh-cn_topic_0000001295414208.xml](zh-cn_topic_0000001295414208.xml) \*staFeature, unsigned char \*scanMac, uint8_t len) | 设置扫描单个MAC地址。 [更多...](#setscanningmacaddress) | +| ( [setScanningMacAddress](#setscanningmacaddress) )(const struct [ERROR:Invalid link:zh-cn_topic_0000001304541952.xml#xref1079443811083932,link:zh-cn_topic_0000001304541952.xml](zh-cn_topic_0000001304541952.xml) \*staFeature, unsigned char \*scanMac, uint8_t len) | 设置扫描单个MAC地址。 [更多...](#setscanningmacaddress) | | ( [startScan](#startscan) )(const char \*ifName, WifiScan \*scan) | 启动扫描。 [更多...](#startscan) | @@ -63,7 +63,7 @@ int32_t(* IWiFiSta::setScanningMacAddress) (const struct IWiFiSta *staFeature, u | 名称 | 描述 | | -------- | -------- | -| staFeature | 输入参数,STA特性[ERROR:Invalid link:zh-cn_topic_0000001295414208.xml#xref557822862083932,link:zh-cn_topic_0000001295414208.xml](zh-cn_topic_0000001295414208.xml)。 | +| staFeature | 输入参数,STA特性[ERROR:Invalid link:zh-cn_topic_0000001304541952.xml#xref557822862083932,link:zh-cn_topic_0000001304541952.xml](zh-cn_topic_0000001304541952.xml)。 | | scanMac | 输入参数,设置STA扫描的MAC地址。 | | len | 输入参数,MAC地址的长度。 | diff --git a/zh-cn/device-dev/api/_identify_result_info.md b/zh-cn/device-dev/reference/hdi-apis/_identify_result_info.md similarity index 100% rename from zh-cn/device-dev/api/_identify_result_info.md rename to zh-cn/device-dev/reference/hdi-apis/_identify_result_info.md diff --git a/zh-cn/device-dev/api/_input.md b/zh-cn/device-dev/reference/hdi-apis/_input.md similarity index 94% rename from zh-cn/device-dev/api/_input.md rename to zh-cn/device-dev/reference/hdi-apis/_input.md index beaec0f597..4d1ff3164d 100644 --- a/zh-cn/device-dev/api/_input.md +++ b/zh-cn/device-dev/reference/hdi-apis/_input.md @@ -42,7 +42,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [RetStatus](#retstatus) { INPUT_SUCCESS = 0, INPUT_FAILURE = -1, INPUT_INVALID_PARAM = -2, INPUT_NOMEM = -3,   INPUT_NULL_PTR = -4, INPUT_TIMEOUT = -5, INPUT_UNSUPPORTED = -6 } | 定义返回值类型 [更多...](#retstatus) | | [InputDevType](#inputdevtype) { INDEV_TYPE_TOUCH, INDEV_TYPE_KEY, INDEV_TYPE_KEYBOARD, INDEV_TYPE_MOUSE,   INDEV_TYPE_BUTTON, INDEV_TYPE_CROWN, INDEV_TYPE_ENCODER, INDEV_TYPE_UNKNOWN } | 定义input设备类型 [更多...](#inputdevtype) | @@ -84,7 +84,7 @@ enum CapacitanceTest **描述:** -定义容值测试类型 +定义容值测试类型。 | 枚举值 | 描述 | | -------- | -------- | @@ -104,7 +104,7 @@ enum InputDevType **描述:** -定义input设备类型 +定义Input设备类型。 | 枚举值 | 描述 | | -------- | -------- | @@ -127,7 +127,7 @@ enum PowerStatus **描述:** -定义电源状态 +定义电源状态。 | 枚举值 | 描述 | | -------- | -------- | @@ -146,7 +146,7 @@ enum RetStatus **描述:** -定义返回值类型 +定义返回值类型。 | 枚举值 | 描述 | | -------- | -------- | @@ -171,7 +171,7 @@ int32_t GetInputInterface (IInputInterface **interface) **描述:** -input服务通过调用此接口获取操作input设备的所有接口。 +Input服务通过调用此接口获取操作input设备的所有接口。 **参数:** @@ -181,9 +181,9 @@ input服务通过调用此接口获取操作input设备的所有接口。 **返回:** -Returns INPUT_SUCCESS 表示执行成功。 +INPUT_SUCCESS 表示执行成功。 -Returns 其他值表示执行失败,具体错误码查看**RetSatus**。 +其他值表示执行失败,具体错误码查看**RetSatus**。 **Since:** diff --git a/zh-cn/device-dev/api/_input_controller.md b/zh-cn/device-dev/reference/hdi-apis/_input_controller.md similarity index 100% rename from zh-cn/device-dev/api/_input_controller.md rename to zh-cn/device-dev/reference/hdi-apis/_input_controller.md diff --git a/zh-cn/device-dev/api/_input_extra_cmd.md b/zh-cn/device-dev/reference/hdi-apis/_input_extra_cmd.md similarity index 100% rename from zh-cn/device-dev/api/_input_extra_cmd.md rename to zh-cn/device-dev/reference/hdi-apis/_input_extra_cmd.md diff --git a/zh-cn/device-dev/api/_input_manager.md b/zh-cn/device-dev/reference/hdi-apis/_input_manager.md similarity index 100% rename from zh-cn/device-dev/api/_input_manager.md rename to zh-cn/device-dev/reference/hdi-apis/_input_manager.md diff --git a/zh-cn/device-dev/api/_input_report_event_cb.md b/zh-cn/device-dev/reference/hdi-apis/_input_report_event_cb.md similarity index 100% rename from zh-cn/device-dev/api/_input_report_event_cb.md rename to zh-cn/device-dev/reference/hdi-apis/_input_report_event_cb.md diff --git a/zh-cn/device-dev/api/_input_reporter.md b/zh-cn/device-dev/reference/hdi-apis/_input_reporter.md similarity index 100% rename from zh-cn/device-dev/api/_input_reporter.md rename to zh-cn/device-dev/reference/hdi-apis/_input_reporter.md diff --git a/zh-cn/device-dev/api/_layer_alpha.md b/zh-cn/device-dev/reference/hdi-apis/_layer_alpha.md similarity index 100% rename from zh-cn/device-dev/api/_layer_alpha.md rename to zh-cn/device-dev/reference/hdi-apis/_layer_alpha.md diff --git a/zh-cn/device-dev/api/_layer_buffer.md b/zh-cn/device-dev/reference/hdi-apis/_layer_buffer.md similarity index 100% rename from zh-cn/device-dev/api/_layer_buffer.md rename to zh-cn/device-dev/reference/hdi-apis/_layer_buffer.md diff --git a/zh-cn/device-dev/api/_layer_funcs.md b/zh-cn/device-dev/reference/hdi-apis/_layer_funcs.md similarity index 100% rename from zh-cn/device-dev/api/_layer_funcs.md rename to zh-cn/device-dev/reference/hdi-apis/_layer_funcs.md diff --git a/zh-cn/device-dev/api/_layer_info.md b/zh-cn/device-dev/reference/hdi-apis/_layer_info.md similarity index 100% rename from zh-cn/device-dev/api/_layer_info.md rename to zh-cn/device-dev/reference/hdi-apis/_layer_info.md diff --git a/zh-cn/device-dev/api/_light.md b/zh-cn/device-dev/reference/hdi-apis/_light.md similarity index 99% rename from zh-cn/device-dev/api/_light.md rename to zh-cn/device-dev/reference/hdi-apis/_light.md index b7bde9508a..62e49861d2 100644 --- a/zh-cn/device-dev/api/_light.md +++ b/zh-cn/device-dev/reference/hdi-apis/_light.md @@ -24,7 +24,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [LightStatus](#lightstatus) { LIGHT_SUCCESS = 0, LIGHT_NOT_SUPPORT = -1, LIGHT_NOT_FLASH = -2, LIGHT_NOT_BRIGHTNESS = -3 } | 枚举灯模块的状态值。 [更多...](#lightstatus) | | [LightId](#lightid) { LIGHT_ID_NONE = 0, LIGHT_ID_BATTERY = 1, LIGHT_ID_NOTIFICATIONS = 2, LIGHT_ID_ATTENTION = 3,   LIGHT_ID_BUTT = 4 } | 枚举灯类型 [更多...](#lightid) | diff --git a/zh-cn/device-dev/api/_light_effect.md b/zh-cn/device-dev/reference/hdi-apis/_light_effect.md similarity index 100% rename from zh-cn/device-dev/api/_light_effect.md rename to zh-cn/device-dev/reference/hdi-apis/_light_effect.md diff --git a/zh-cn/device-dev/api/_light_flash_effect.md b/zh-cn/device-dev/reference/hdi-apis/_light_flash_effect.md similarity index 100% rename from zh-cn/device-dev/api/_light_flash_effect.md rename to zh-cn/device-dev/reference/hdi-apis/_light_flash_effect.md diff --git a/zh-cn/device-dev/api/_light_info.md b/zh-cn/device-dev/reference/hdi-apis/_light_info.md similarity index 100% rename from zh-cn/device-dev/api/_light_info.md rename to zh-cn/device-dev/reference/hdi-apis/_light_info.md diff --git a/zh-cn/device-dev/api/_light_interface.md b/zh-cn/device-dev/reference/hdi-apis/_light_interface.md similarity index 100% rename from zh-cn/device-dev/api/_light_interface.md rename to zh-cn/device-dev/reference/hdi-apis/_light_interface.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_ended_info.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_error_info.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_error_info.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_error_info.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_error_info.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_info.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_info.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_capture_info.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_capture_info.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_device.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_device.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_device.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_device.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_device_callback.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_host.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_host.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_host.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_host.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_camera_host_callback.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_offline_stream_operator.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_stream_operator.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_i_stream_operator_callback.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_stream_attribute.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_stream_attribute.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_stream_attribute.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_stream_attribute.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_stream_info.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_stream_info.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_camera_1_1_stream_info.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_camera_1_1_stream_info.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_u_s_b_device_info.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_ctrl_transfer.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_dev.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_info.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usb_pipe.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usbd_client.md diff --git a/zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md b/zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md similarity index 100% rename from zh-cn/device-dev/api/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md rename to zh-cn/device-dev/reference/hdi-apis/_o_h_o_s_1_1_u_s_b_1_1_usbd_subscriber.md diff --git a/zh-cn/device-dev/api/_omx_codec_buffer.md b/zh-cn/device-dev/reference/hdi-apis/_omx_codec_buffer.md similarity index 100% rename from zh-cn/device-dev/api/_omx_codec_buffer.md rename to zh-cn/device-dev/reference/hdi-apis/_omx_codec_buffer.md diff --git a/zh-cn/device-dev/api/_pin_auth_types_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_pin_auth_types_8idl.md similarity index 100% rename from zh-cn/device-dev/api/_pin_auth_types_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/_pin_auth_types_8idl.md diff --git a/zh-cn/device-dev/api/_power_types_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_power_types_8idl.md similarity index 97% rename from zh-cn/device-dev/api/_power_types_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/_power_types_8idl.md index acbb4832b6..179b60a2a0 100644 --- a/zh-cn/device-dev/api/_power_types_8idl.md +++ b/zh-cn/device-dev/reference/hdi-apis/_power_types_8idl.md @@ -13,7 +13,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [PowerHdfCmd](power.md#powerhdfcmd) {   CMD_REGISTER_CALLBCK = 0, CMD_START_SUSPEND, CMD_STOP_SUSPEND, CMD_FORCE_SUSPEND,   CMD_SUSPEND_BLOCK, CMD_SUSPEND_UNBLOCK, CMD_DUMP } | 枚举电源命令的参数。 [更多...](power.md#powerhdfcmd) | | [PowerHdfCallbackCmd](power.md#powerhdfcallbackcmd) { CMD_ON_SUSPEND = 0, CMD_ON_WAKEUP } | 枚举电源状态回调的参数。 [更多...](power.md#powerhdfcallbackcmd) | diff --git a/zh-cn/device-dev/api/_present_timestamp.md b/zh-cn/device-dev/reference/hdi-apis/_present_timestamp.md similarity index 100% rename from zh-cn/device-dev/api/_present_timestamp.md rename to zh-cn/device-dev/reference/hdi-apis/_present_timestamp.md diff --git a/zh-cn/device-dev/api/_property_object.md b/zh-cn/device-dev/reference/hdi-apis/_property_object.md similarity index 100% rename from zh-cn/device-dev/api/_property_object.md rename to zh-cn/device-dev/reference/hdi-apis/_property_object.md diff --git a/zh-cn/device-dev/api/_range_value.md b/zh-cn/device-dev/reference/hdi-apis/_range_value.md similarity index 100% rename from zh-cn/device-dev/api/_range_value.md rename to zh-cn/device-dev/reference/hdi-apis/_range_value.md diff --git a/zh-cn/device-dev/api/_rect.md b/zh-cn/device-dev/reference/hdi-apis/_rect.md similarity index 100% rename from zh-cn/device-dev/api/_rect.md rename to zh-cn/device-dev/reference/hdi-apis/_rect.md diff --git a/zh-cn/device-dev/api/_rectangle.md b/zh-cn/device-dev/reference/hdi-apis/_rectangle.md similarity index 100% rename from zh-cn/device-dev/api/_rectangle.md rename to zh-cn/device-dev/reference/hdi-apis/_rectangle.md diff --git a/zh-cn/device-dev/api/_schedule_info.md b/zh-cn/device-dev/reference/hdi-apis/_schedule_info.md similarity index 88% rename from zh-cn/device-dev/api/_schedule_info.md rename to zh-cn/device-dev/reference/hdi-apis/_schedule_info.md index a0cfa6a751..4fcebffea4 100644 --- a/zh-cn/device-dev/api/_schedule_info.md +++ b/zh-cn/device-dev/reference/hdi-apis/_schedule_info.md @@ -18,7 +18,7 @@ | [scheduleId](#scheduleid) | 调度ID,用于标识一次操作请求的执行器调度过程。 | | [templateIds](#templateids) | 模版ID列表。 | | [authType](#authtype) | 用户认证凭据类型。 | -| [executorType](#executortype) | 执行器类型。 | +| [executorMatcher](#executormatcher) | 执行器匹配器。 | | [scheduleMode](#schedulemode) | 调度模式,支持注册、认证和识别模式。 | | [executors](#executors) | 执行器信息列表。 | @@ -63,16 +63,16 @@ struct ExecutorInfo [] ScheduleInfo::executors 执行器信息列表。 -### executorType +### executorMatcher ``` -unsigned int ScheduleInfo::executorType +unsigned int ScheduleInfo::executorMatcher ``` **描述:** -执行器类型。 +执行器匹配器。 ### scheduleId @@ -108,4 +108,4 @@ unsigned long [] ScheduleInfo::templateIds **描述:** -模版id列表。 +模版ID列表。 diff --git a/zh-cn/device-dev/api/_sensor.md b/zh-cn/device-dev/reference/hdi-apis/_sensor.md similarity index 99% rename from zh-cn/device-dev/api/_sensor.md rename to zh-cn/device-dev/reference/hdi-apis/_sensor.md index 5a461c5bd0..2cdb5edfed 100644 --- a/zh-cn/device-dev/api/_sensor.md +++ b/zh-cn/device-dev/reference/hdi-apis/_sensor.md @@ -38,7 +38,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [SensorStatus](#sensorstatus) { SENSOR_SUCCESS = 0, SENSOR_FAILURE = -1, SENSOR_NOT_SUPPORT = -2, SENSOR_INVALID_PARAM = -3,   SENSOR_INVALID_SERVICE = -4, SENSOR_NULL_PTR = -5 } | 定义传感器模块返回值类型。 [更多...](#sensorstatus) | | [SensorTypeTag](#sensortypetag) { SENSOR_TYPE_NONE = 0, SENSOR_TYPE_ACCELEROMETER = 1, SENSOR_TYPE_GYROSCOPE = 2, SENSOR_TYPE_PHOTOPLETHYSMOGRAPH = 3,   SENSOR_TYPE_ELECTROCARDIOGRAPH = 4, SENSOR_TYPE_AMBIENT_LIGHT = 5, SENSOR_TYPE_MAGNETIC_FIELD = 6, SENSOR_TYPE_CAPACITIVE = 7,   SENSOR_TYPE_BAROMETER = 8, SENSOR_TYPE_TEMPERATURE = 9, SENSOR_TYPE_HALL = 10, SENSOR_TYPE_GESTURE = 11,   SENSOR_TYPE_PROXIMITY = 12, SENSOR_TYPE_HUMIDITY = 13, SENSOR_TYPE_MEDICAL_BEGIN = 128, SENSOR_TYPE_MEDICAL_END = 160,   SENSOR_TYPE_PHYSICAL_MAX = 255, SENSOR_TYPE_ORIENTATION = 256, SENSOR_TYPE_GRAVITY = 257, SENSOR_TYPE_LINEAR_ACCELERATION = 258,   SENSOR_TYPE_ROTATION_VECTOR = 259, SENSOR_TYPE_AMBIENT_TEMPERATURE = 260, SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED = 261, SENSOR_TYPE_GAME_ROTATION_VECTOR = 262,   SENSOR_TYPE_GYROSCOPE_UNCALIBRATED = 263, SENSOR_TYPE_SIGNIFICANT_MOTION = 264, SENSOR_TYPE_PEDOMETER_DETECTION = 265, SENSOR_TYPE_PEDOMETER = 266,   SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR = 277, SENSOR_TYPE_HEART_RATE = 278, SENSOR_TYPE_DEVICE_ORIENTATION = 279, SENSOR_TYPE_WEAR_DETECTION = 280,   SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED = 281, SENSOR_TYPE_MAX } | 定义传感器类型标识。 [更多...](#sensortypetag) | diff --git a/zh-cn/device-dev/api/_sensor_events.md b/zh-cn/device-dev/reference/hdi-apis/_sensor_events.md similarity index 100% rename from zh-cn/device-dev/api/_sensor_events.md rename to zh-cn/device-dev/reference/hdi-apis/_sensor_events.md diff --git a/zh-cn/device-dev/api/_sensor_information.md b/zh-cn/device-dev/reference/hdi-apis/_sensor_information.md similarity index 100% rename from zh-cn/device-dev/api/_sensor_information.md rename to zh-cn/device-dev/reference/hdi-apis/_sensor_information.md diff --git a/zh-cn/device-dev/api/_sensor_interface.md b/zh-cn/device-dev/reference/hdi-apis/_sensor_interface.md similarity index 100% rename from zh-cn/device-dev/api/_sensor_interface.md rename to zh-cn/device-dev/reference/hdi-apis/_sensor_interface.md diff --git a/zh-cn/device-dev/api/_sta_info.md b/zh-cn/device-dev/reference/hdi-apis/_sta_info.md similarity index 100% rename from zh-cn/device-dev/api/_sta_info.md rename to zh-cn/device-dev/reference/hdi-apis/_sta_info.md diff --git a/zh-cn/device-dev/api/_support_buffer_type.md b/zh-cn/device-dev/reference/hdi-apis/_support_buffer_type.md similarity index 100% rename from zh-cn/device-dev/api/_support_buffer_type.md rename to zh-cn/device-dev/reference/hdi-apis/_support_buffer_type.md diff --git a/zh-cn/device-dev/api/_template_info.md b/zh-cn/device-dev/reference/hdi-apis/_template_info.md similarity index 100% rename from zh-cn/device-dev/api/_template_info.md rename to zh-cn/device-dev/reference/hdi-apis/_template_info.md diff --git a/zh-cn/device-dev/api/_thermal_types_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_thermal_types_8idl.md similarity index 100% rename from zh-cn/device-dev/api/_thermal_types_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/_thermal_types_8idl.md diff --git a/zh-cn/device-dev/api/_thermal_zone_info.md b/zh-cn/device-dev/reference/hdi-apis/_thermal_zone_info.md similarity index 100% rename from zh-cn/device-dev/api/_thermal_zone_info.md rename to zh-cn/device-dev/reference/hdi-apis/_thermal_zone_info.md diff --git a/zh-cn/device-dev/api/_types_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_types_8idl.md similarity index 98% rename from zh-cn/device-dev/api/_types_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/_types_8idl.md index 5e3f58d342..b924caff85 100644 --- a/zh-cn/device-dev/api/_types_8idl.md +++ b/zh-cn/device-dev/reference/hdi-apis/_types_8idl.md @@ -20,7 +20,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [BatteryHealthState](battery.md#batteryhealthstate) {   BATTERY_HEALTH_UNKNOWN = 0, BATTERY_HEALTH_GOOD, BATTERY_HEALTH_OVERHEAT, BATTERY_HEALTH_OVERVOLTAGE,   BATTERY_HEALTH_COLD, BATTERY_HEALTH_DEAD, BATTERY_HEALTH_RESERVED } | 电池的健康状态。 [更多...](battery.md#batteryhealthstate) | | [BatteryChargeState](battery.md#batterychargestate) {   CHARGE_STATE_NONE = 0, CHARGE_STATE_ENABLE, CHARGE_STATE_DISABLE, CHARGE_STATE_FULL,   CHARGE_STATE_RESERVED } | 电池的充电状态。 [更多...](battery.md#batterychargestate) | diff --git a/zh-cn/device-dev/api/_u_s_b.md b/zh-cn/device-dev/reference/hdi-apis/_u_s_b.md similarity index 99% rename from zh-cn/device-dev/api/_u_s_b.md rename to zh-cn/device-dev/reference/hdi-apis/_u_s_b.md index 1a57ce9427..451ef796db 100644 --- a/zh-cn/device-dev/api/_u_s_b.md +++ b/zh-cn/device-dev/reference/hdi-apis/_u_s_b.md @@ -43,7 +43,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [UsbdBulkCbCmd](#usbdbulkcbcmd) { CMD_USBD_BULK_CALLBACK_READ, CMD_USBD_BULK_CALLBACK_WRITE } | 批量回调命令字。 [更多...](#usbdbulkcbcmd) | | [UsbdDeviceAction](#usbddeviceaction) { ACT_DEVUP = 0, ACT_DEVDOWN, ACT_UPDEVICE, ACT_DOWNDEVICE } | 主机端和设备端插拔事件。 [更多...](#usbddeviceaction) | @@ -100,7 +100,7 @@ ### 变量 - | 变量 名称 | 描述 | + | 变量 | 描述 | | -------- | -------- | | [OHOS::USB::USBDeviceInfo::status](#status) | USB设备状态 | | [OHOS::USB::USBDeviceInfo::busNum](#busnum-12) | USB总线编号 | diff --git a/zh-cn/device-dev/api/_use_buffer_type.md b/zh-cn/device-dev/reference/hdi-apis/_use_buffer_type.md similarity index 100% rename from zh-cn/device-dev/api/_use_buffer_type.md rename to zh-cn/device-dev/reference/hdi-apis/_use_buffer_type.md diff --git a/zh-cn/device-dev/api/_user_auth_types_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_user_auth_types_8idl.md similarity index 95% rename from zh-cn/device-dev/api/_user_auth_types_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/_user_auth_types_8idl.md index bd34488b2f..a017cbea7b 100644 --- a/zh-cn/device-dev/api/_user_auth_types_8idl.md +++ b/zh-cn/device-dev/reference/hdi-apis/_user_auth_types_8idl.md @@ -25,6 +25,7 @@ | [EnrollParam](_enroll_param.md) | 注册认证凭据参数。 [更多...](_enroll_param.md) | | [CredentialInfo](_credential_info.md) | 认证凭据信息。 [更多...](_credential_info.md) | | [EnrolledInfo](_enrolled_info.md) | 注册信息。 [更多...](_enrolled_info.md) | +| [EnrollResultInfo](_enroll_resultinfo.md) | 录入结果信息。[更多...](_enroll_resultinfo.md) | ### 枚举 diff --git a/zh-cn/device-dev/reference/hdi-apis/_user_executor_info.md b/zh-cn/device-dev/reference/hdi-apis/_user_executor_info.md new file mode 100644 index 0000000000..126685bf07 --- /dev/null +++ b/zh-cn/device-dev/reference/hdi-apis/_user_executor_info.md @@ -0,0 +1,59 @@ +# ExecutorInfo + + +## **概述** + +**所属模块:** + +[HdfUserAuth](_hdf_user_auth.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| executorIndex | 用户认证框架的执行器索引。 | +| info | 执行器注册信息。 | + + +## **详细描述** + +执行器信息。 + +**Since:** + +3.2 + +**Version:** + +1.0 + + +## **类成员变量说明** + + +### executorIndex + + +``` +unsigned long ExecutorInfo::executorIndex +``` + +**描述:** + +用户认证框架的执行器索引。 + + +### info + + +``` +struct ExecutorRegisterInfo ExecutorInfo::info +``` + +**描述:** + +执行器注册信息[ExecutorRegisterInfo](_executor_register_info.md)。 diff --git a/zh-cn/device-dev/api/_verify_alloc_info.md b/zh-cn/device-dev/reference/hdi-apis/_verify_alloc_info.md similarity index 100% rename from zh-cn/device-dev/api/_verify_alloc_info.md rename to zh-cn/device-dev/reference/hdi-apis/_verify_alloc_info.md diff --git a/zh-cn/device-dev/api/_vibrator.md b/zh-cn/device-dev/reference/hdi-apis/_vibrator.md similarity index 99% rename from zh-cn/device-dev/api/_vibrator.md rename to zh-cn/device-dev/reference/hdi-apis/_vibrator.md index f3919cb51d..b3d4c3a0a2 100644 --- a/zh-cn/device-dev/api/_vibrator.md +++ b/zh-cn/device-dev/reference/hdi-apis/_vibrator.md @@ -21,7 +21,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [VibratorMode](#vibratormode) { VIBRATOR_MODE_ONCE = 0, VIBRATOR_MODE_PRESET = 1, VIBRATOR_MODE_BUTT } | 枚举马达振动模式。 [更多...](#vibratormode) | | [VibratorStatus](#vibratorstatus) { VIBRATOR_SUCCESS = 0, VIBRATOR_NOT_PERIOD = -1,  VIBRATOR_NOT_INTENSITY  = -2,  VIBRATOR_NOT_FREQUENCY= -3} | 枚举马达振动模式。[更多...](#vibratorstatus) | diff --git a/zh-cn/device-dev/api/_vibrator_interface.md b/zh-cn/device-dev/reference/hdi-apis/_vibrator_interface.md similarity index 100% rename from zh-cn/device-dev/api/_vibrator_interface.md rename to zh-cn/device-dev/reference/hdi-apis/_vibrator_interface.md diff --git a/zh-cn/device-dev/api/_video_port_cap.md b/zh-cn/device-dev/reference/hdi-apis/_video_port_cap.md similarity index 100% rename from zh-cn/device-dev/api/_video_port_cap.md rename to zh-cn/device-dev/reference/hdi-apis/_video_port_cap.md diff --git a/zh-cn/device-dev/api/_w_l_a_n.md b/zh-cn/device-dev/reference/hdi-apis/_w_l_a_n.md similarity index 100% rename from zh-cn/device-dev/api/_w_l_a_n.md rename to zh-cn/device-dev/reference/hdi-apis/_w_l_a_n.md diff --git a/zh-cn/device-dev/api/annotated.md b/zh-cn/device-dev/reference/hdi-apis/annotated.md similarity index 98% rename from zh-cn/device-dev/api/annotated.md rename to zh-cn/device-dev/reference/hdi-apis/annotated.md index 3e43418f4c..86ba79c685 100644 --- a/zh-cn/device-dev/api/annotated.md +++ b/zh-cn/device-dev/reference/hdi-apis/annotated.md @@ -76,8 +76,6 @@ - **[CredentialInfo](_credential_info.md)** -- **[DacIoMsg](_dac_io_msg.md)** - - **[DeviceFuncs](_device_funcs.md)** - **[DeviceInfo](_device_info.md)** @@ -92,12 +90,16 @@ - **[EnrollParam](_enroll_param.md)** +- **[EnrollResultInfo](_enroll_resultinfo.md)** + - **[EventInfo](_event_info.md)** - **[EventPackage](_event_package.md)** - **[ExecutorInfo](_executor_info.md)** +- **[ExecutorInfo](_user_executor_info.md)** + - **[ExecutorRegisterInfo](_executor_register_info.md)** - **[ExecutorSendMsg](_executor_send_msg.md)** diff --git a/zh-cn/device-dev/api/audio__adapter_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__adapter_8h.md similarity index 100% rename from zh-cn/device-dev/api/audio__adapter_8h.md rename to zh-cn/device-dev/reference/hdi-apis/audio__adapter_8h.md diff --git a/zh-cn/device-dev/api/audio__attribute_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__attribute_8h.md similarity index 100% rename from zh-cn/device-dev/api/audio__attribute_8h.md rename to zh-cn/device-dev/reference/hdi-apis/audio__attribute_8h.md diff --git a/zh-cn/device-dev/api/audio__capture_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__capture_8h.md similarity index 100% rename from zh-cn/device-dev/api/audio__capture_8h.md rename to zh-cn/device-dev/reference/hdi-apis/audio__capture_8h.md diff --git a/zh-cn/device-dev/api/audio__control_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__control_8h.md similarity index 100% rename from zh-cn/device-dev/api/audio__control_8h.md rename to zh-cn/device-dev/reference/hdi-apis/audio__control_8h.md diff --git a/zh-cn/device-dev/api/audio__manager_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__manager_8h.md similarity index 100% rename from zh-cn/device-dev/api/audio__manager_8h.md rename to zh-cn/device-dev/reference/hdi-apis/audio__manager_8h.md diff --git a/zh-cn/device-dev/api/audio__render_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__render_8h.md similarity index 100% rename from zh-cn/device-dev/api/audio__render_8h.md rename to zh-cn/device-dev/reference/hdi-apis/audio__render_8h.md diff --git a/zh-cn/device-dev/api/audio__scene_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__scene_8h.md similarity index 100% rename from zh-cn/device-dev/api/audio__scene_8h.md rename to zh-cn/device-dev/reference/hdi-apis/audio__scene_8h.md diff --git a/zh-cn/device-dev/api/audio__types_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__types_8h.md similarity index 99% rename from zh-cn/device-dev/api/audio__types_8h.md rename to zh-cn/device-dev/reference/hdi-apis/audio__types_8h.md index ab903553ed..5d038c1abc 100644 --- a/zh-cn/device-dev/api/audio__types_8h.md +++ b/zh-cn/device-dev/reference/hdi-apis/audio__types_8h.md @@ -42,7 +42,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [AudioPortDirection](_audio.md#audioportdirection) { PORT_OUT = 0x1u, PORT_IN = 0x2u, PORT_OUT_IN = 0x3u } | 音频端口的类型 [更多...](_audio.md#audioportdirection) | | [AudioPortPin](_audio.md#audioportpin) {   PIN_NONE = 0x0u, PIN_OUT_SPEAKER = 0x1u, PIN_OUT_HEADSET = 0x2u, PIN_OUT_LINEOUT = 0x4u,   PIN_OUT_HDMI = 0x8u, PIN_OUT_USB = 0x10u, PIN_OUT_USB_EXT = 0x20u, PIN_IN_MIC = 0x8000001u,   PIN_IN_HS_MIC = 0x8000002u, PIN_IN_LINEIN = 0x8000004u, PIN_IN_USB_EXT = 0x8000008u } | 音频适配器端口的PIN脚 [更多...](_audio.md#audioportpin) | diff --git a/zh-cn/device-dev/api/audio__volume_8h.md b/zh-cn/device-dev/reference/hdi-apis/audio__volume_8h.md similarity index 100% rename from zh-cn/device-dev/api/audio__volume_8h.md rename to zh-cn/device-dev/reference/hdi-apis/audio__volume_8h.md diff --git a/zh-cn/device-dev/api/battery.md b/zh-cn/device-dev/reference/hdi-apis/battery.md similarity index 99% rename from zh-cn/device-dev/api/battery.md rename to zh-cn/device-dev/reference/hdi-apis/battery.md index 206f51976f..1a16568662 100644 --- a/zh-cn/device-dev/api/battery.md +++ b/zh-cn/device-dev/reference/hdi-apis/battery.md @@ -24,7 +24,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [BatteryHealthState](#batteryhealthstate) {   BATTERY_HEALTH_UNKNOWN = 0, BATTERY_HEALTH_GOOD, BATTERY_HEALTH_OVERHEAT, BATTERY_HEALTH_OVERVOLTAGE,   BATTERY_HEALTH_COLD, BATTERY_HEALTH_DEAD, BATTERY_HEALTH_RESERVED } | 电池的健康状态。 [更多...](#batteryhealthstate) | | [BatteryChargeState](#batterychargestate) {   CHARGE_STATE_NONE = 0, CHARGE_STATE_ENABLE, CHARGE_STATE_DISABLE, CHARGE_STATE_FULL,   CHARGE_STATE_RESERVED } | 电池的充电状态。 [更多...](#batterychargestate) | diff --git a/zh-cn/device-dev/api/codec__callback__if_8h.md b/zh-cn/device-dev/reference/hdi-apis/codec__callback__if_8h.md similarity index 100% rename from zh-cn/device-dev/api/codec__callback__if_8h.md rename to zh-cn/device-dev/reference/hdi-apis/codec__callback__if_8h.md diff --git a/zh-cn/device-dev/api/codec__common__type_8h.md b/zh-cn/device-dev/reference/hdi-apis/codec__common__type_8h.md similarity index 99% rename from zh-cn/device-dev/api/codec__common__type_8h.md rename to zh-cn/device-dev/reference/hdi-apis/codec__common__type_8h.md index dd84e06edf..7f573637c2 100644 --- a/zh-cn/device-dev/api/codec__common__type_8h.md +++ b/zh-cn/device-dev/reference/hdi-apis/codec__common__type_8h.md @@ -22,7 +22,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [CodecType](_codec.md#codectype) { VIDEO_DECODER, VIDEO_ENCODER, AUDIO_DECODER, AUDIO_ENCODER,   INVALID_TYPE } | 枚举编解码的类型 [更多...](_codec.md#codectype) | | [Profile](_codec.md#profile) { INVALID_PROFILE = 0, AAC_LC_PROFILE = 0x1000, AAC_MAIN_PROFILE, AAC_HE_V1_PROFILE,   AAC_HE_V2_PROFILE, AAC_LD_PROFILE, AAC_ELD_PROFILE, AVC_BASELINE_PROFILE = 0x2000,   AVC_MAIN_PROFILE, AVC_HIGH_PROFILE, HEVC_MAIN_PROFILE = 0x3000, HEVC_MAIN_10_PROFILE } | 枚举Codec规格 [更多...](_codec.md#profile) | diff --git a/zh-cn/device-dev/api/codec__component__if_8h.md b/zh-cn/device-dev/reference/hdi-apis/codec__component__if_8h.md similarity index 100% rename from zh-cn/device-dev/api/codec__component__if_8h.md rename to zh-cn/device-dev/reference/hdi-apis/codec__component__if_8h.md diff --git a/zh-cn/device-dev/api/codec__component__manager_8h.md b/zh-cn/device-dev/reference/hdi-apis/codec__component__manager_8h.md similarity index 100% rename from zh-cn/device-dev/api/codec__component__manager_8h.md rename to zh-cn/device-dev/reference/hdi-apis/codec__component__manager_8h.md diff --git a/zh-cn/device-dev/api/codec__component__type_8h.md b/zh-cn/device-dev/reference/hdi-apis/codec__component__type_8h.md similarity index 99% rename from zh-cn/device-dev/api/codec__component__type_8h.md rename to zh-cn/device-dev/reference/hdi-apis/codec__component__type_8h.md index 4a71c1fa58..c83e715ec1 100644 --- a/zh-cn/device-dev/api/codec__component__type_8h.md +++ b/zh-cn/device-dev/reference/hdi-apis/codec__component__type_8h.md @@ -43,7 +43,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [AvCodecRole](_codec.md#avcodecrole) { MEDIA_ROLETYPE_IMAGE_JPEG = 0, MEDIA_ROLETYPE_VIDEO_AVC, MEDIA_ROLETYPE_VIDEO_HEVC, MEDIA_ROLETYPE_AUDIO_FIRST = 0x10000,   MEDIA_ROLETYPE_AUDIO_AAC = 0x10000, MEDIA_ROLETYPE_AUDIO_G711A, MEDIA_ROLETYPE_AUDIO_G711U, MEDIA_ROLETYPE_AUDIO_G726,   MEDIA_ROLETYPE_AUDIO_PCM, MEDIA_ROLETYPE_AUDIO_MP3, MEDIA_ROLETYPE_INVALID } | 枚举音视频编解码组件类型 [更多...](_codec.md#avcodecrole) | | [AudioSampleFormat](_codec.md#audiosampleformat) { AUDIO_SAMPLE_FORMAT_S8, AUDIO_SAMPLE_FORMAT_S8P, AUDIO_SAMPLE_FORMAT_U8, AUDIO_SAMPLE_FORMAT_U8P,   AUDIO_SAMPLE_FORMAT_S16, AUDIO_SAMPLE_FORMAT_S16P, AUDIO_SAMPLE_FORMAT_U16, AUDIO_SAMPLE_FORMAT_U16P,   AUDIO_SAMPLE_FORMAT_S24, AUDIO_SAMPLE_FORMAT_S24P, AUDIO_SAMPLE_FORMAT_U24, AUDIO_SAMPLE_FORMAT_U24P,   AUDIO_SAMPLE_FORMAT_S32, AUDIO_SAMPLE_FORMAT_S32P, AUDIO_SAMPLE_FORMAT_U32, AUDIO_SAMPLE_FORMAT_U32P,   AUDIO_SAMPLE_FORMAT_S64, AUDIO_SAMPLE_FORMAT_S64P, AUDIO_SAMPLE_FORMAT_U64, AUDIO_SAMPLE_FORMAT_U64P,   AUDIO_SAMPLE_FORMAT_F32, AUDIO_SAMPLE_FORMAT_F32P, AUDIO_SAMPLE_FORMAT_F64, AUDIO_SAMPLE_FORMAT_F64P,   AUDIO_SAMPLE_FMT_U8, AUDIO_SAMPLE_FMT_S16, AUDIO_SAMPLE_FMT_S32, AUDIO_SAMPLE_FMT_FLOAT,   AUDIO_SAMPLE_FMT_DOUBLE, AUDIO_SAMPLE_FMT_U8P, AUDIO_SAMPLE_FMT_S16P, AUDIO_SAMPLE_FMT_S32P,   AUDIO_SAMPLE_FMT_FLOATP, AUDIO_SAMPLE_FMT_DOUBLEP, AUDIO_SAMPLE_FMT_INVALID } | 枚举音频采样格式 [更多...](_codec.md#audiosampleformat) | diff --git a/zh-cn/device-dev/api/display__device_8h.md b/zh-cn/device-dev/reference/hdi-apis/display__device_8h.md similarity index 100% rename from zh-cn/device-dev/api/display__device_8h.md rename to zh-cn/device-dev/reference/hdi-apis/display__device_8h.md diff --git a/zh-cn/device-dev/api/display__gfx_8h.md b/zh-cn/device-dev/reference/hdi-apis/display__gfx_8h.md similarity index 100% rename from zh-cn/device-dev/api/display__gfx_8h.md rename to zh-cn/device-dev/reference/hdi-apis/display__gfx_8h.md diff --git a/zh-cn/device-dev/api/display__gralloc_8h.md b/zh-cn/device-dev/reference/hdi-apis/display__gralloc_8h.md similarity index 100% rename from zh-cn/device-dev/api/display__gralloc_8h.md rename to zh-cn/device-dev/reference/hdi-apis/display__gralloc_8h.md diff --git a/zh-cn/device-dev/api/display__layer_8h.md b/zh-cn/device-dev/reference/hdi-apis/display__layer_8h.md similarity index 100% rename from zh-cn/device-dev/api/display__layer_8h.md rename to zh-cn/device-dev/reference/hdi-apis/display__layer_8h.md diff --git a/zh-cn/device-dev/api/display__type_8h.md b/zh-cn/device-dev/reference/hdi-apis/display__type_8h.md similarity index 99% rename from zh-cn/device-dev/api/display__type_8h.md rename to zh-cn/device-dev/reference/hdi-apis/display__type_8h.md index 6b83f5bd4a..8329743362 100644 --- a/zh-cn/device-dev/api/display__type_8h.md +++ b/zh-cn/device-dev/reference/hdi-apis/display__type_8h.md @@ -46,7 +46,7 @@ ### 枚举 - | 枚举名称 | 枚举 | 描述 | + | 枚举 | 枚举 | 描述 | | -------- | -------- | -------- | | [DispErrCode](_display.md#disperrcode) { DISPLAY_SUCCESS = 0, DISPLAY_FAILURE = -1, DISPLAY_FD_ERR = -2, DISPLAY_PARAM_ERR = -3,   DISPLAY_NULL_PTR = -4, DISPLAY_NOT_SUPPORT = -5, DISPLAY_NOMEM = -6, DISPLAY_SYS_BUSY = -7,   DISPLAY_NOT_PERM = -8 } | [DispErrCode](_display.md#disperrcode) {   [DISPLAY_SUCCESS](_display.md#gga12a925dadef7573cd74d63d06824f9b0a188daac95e787159d50ff9546536035b) = 0, [DISPLAY_FAILURE](_display.md#gga12a925dadef7573cd74d63d06824f9b0afdffc20c71fb142c3e7f01323a31d742) = -1, [DISPLAY_FD_ERR](_display.md#gga12a925dadef7573cd74d63d06824f9b0a5bdb0a826a652f51e6c82685ae08ede8) = -2, [DISPLAY_PARAM_ERR](_display.md#gga12a925dadef7573cd74d63d06824f9b0a330e09be303bc7056f6115830bbd2370) = -3,   [DISPLAY_NULL_PTR](_display.md#gga12a925dadef7573cd74d63d06824f9b0a82fbcdba6c699059bc04b491c92424ac) = -4, [DISPLAY_NOT_SUPPORT](_display.md#gga12a925dadef7573cd74d63d06824f9b0a950a7bc41e893450315da9e73208f8c2) = -5, [DISPLAY_NOMEM](_display.md#gga12a925dadef7573cd74d63d06824f9b0af186ab511133fa3280c54d2c44358882) = -6, [DISPLAY_SYS_BUSY](_display.md#gga12a925dadef7573cd74d63d06824f9b0ac11b678fc04745ff4d91f4398b83c427) = -7,   [DISPLAY_NOT_PERM](_display.md#gga12a925dadef7573cd74d63d06824f9b0ad133674b9f3b857a12791479aaf58cf8) = -8 } | 返回值类型定义。 [更多...](_display.md#disperrcode) | | [LayerType](_display.md#layertype) { LAYER_TYPE_GRAPHIC, LAYER_TYPE_OVERLAY, LAYER_TYPE_SDIEBAND, LAYER_TYPE_CURSOR,   LAYER_TYPE_BUTT } | [LayerType](_display.md#layertype) {   [LAYER_TYPE_GRAPHIC](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4a6ef157ea82a5d4c1715b3cddcca38d6f), [LAYER_TYPE_OVERLAY](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4ac33e449941bc0e4d039b4b5bed853a78), [LAYER_TYPE_SDIEBAND](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4a0aef2c460a206fa00c742219d65be477), [LAYER_TYPE_CURSOR](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4a44b3a657e6bf4f1f5709c03a94a11019),   [LAYER_TYPE_BUTT](_display.md#gga56943a0946e5f15e5e58054b8e7a04a4acd813c5ad9a2be97c85a97d4bdf1cb57) } | 图层类型定义。 [更多...](_display.md#layertype) | diff --git a/zh-cn/device-dev/api/face__auth_2_i_executor_8idl.md b/zh-cn/device-dev/reference/hdi-apis/face__auth_2_i_executor_8idl.md similarity index 100% rename from zh-cn/device-dev/api/face__auth_2_i_executor_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/face__auth_2_i_executor_8idl.md diff --git a/zh-cn/device-dev/api/face__auth_2_i_executor_callback_8idl.md b/zh-cn/device-dev/reference/hdi-apis/face__auth_2_i_executor_callback_8idl.md similarity index 100% rename from zh-cn/device-dev/api/face__auth_2_i_executor_callback_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/face__auth_2_i_executor_callback_8idl.md diff --git a/zh-cn/device-dev/api/files.md b/zh-cn/device-dev/reference/hdi-apis/files.md similarity index 97% rename from zh-cn/device-dev/api/files.md rename to zh-cn/device-dev/reference/hdi-apis/files.md index 8b8d5edfb0..e44e53e466 100644 --- a/zh-cn/device-dev/api/files.md +++ b/zh-cn/device-dev/reference/hdi-apis/files.md @@ -30,8 +30,6 @@ - **[codec_component_type.h](codec__component__type_8h.md)** -- **[dac_if.h](dac__if_8h.md)** - - **[display_device.h](display__device_8h.md)** - **[display_gfx.h](display__gfx_8h.md)** diff --git a/zh-cn/device-dev/api/icamera__device_8h.md b/zh-cn/device-dev/reference/hdi-apis/icamera__device_8h.md similarity index 100% rename from zh-cn/device-dev/api/icamera__device_8h.md rename to zh-cn/device-dev/reference/hdi-apis/icamera__device_8h.md diff --git a/zh-cn/device-dev/api/icamera__device__callback_8h.md b/zh-cn/device-dev/reference/hdi-apis/icamera__device__callback_8h.md similarity index 100% rename from zh-cn/device-dev/api/icamera__device__callback_8h.md rename to zh-cn/device-dev/reference/hdi-apis/icamera__device__callback_8h.md diff --git a/zh-cn/device-dev/api/icamera__host_8h.md b/zh-cn/device-dev/reference/hdi-apis/icamera__host_8h.md similarity index 100% rename from zh-cn/device-dev/api/icamera__host_8h.md rename to zh-cn/device-dev/reference/hdi-apis/icamera__host_8h.md diff --git a/zh-cn/device-dev/api/icamera__host__callback_8h.md b/zh-cn/device-dev/reference/hdi-apis/icamera__host__callback_8h.md similarity index 100% rename from zh-cn/device-dev/api/icamera__host__callback_8h.md rename to zh-cn/device-dev/reference/hdi-apis/icamera__host__callback_8h.md diff --git a/zh-cn/device-dev/api/index.md b/zh-cn/device-dev/reference/hdi-apis/index.md similarity index 90% rename from zh-cn/device-dev/api/index.md rename to zh-cn/device-dev/reference/hdi-apis/index.md index 4d91539b54..27d1c39014 100644 --- a/zh-cn/device-dev/api/index.md +++ b/zh-cn/device-dev/reference/hdi-apis/index.md @@ -12,8 +12,6 @@ - **[Display](_display.md)** -- **[DAC](_d_a_c.md)** - - **[HdfFaceAuth](_hdf_face_auth.md)** - **[Input](_input.md)** diff --git a/zh-cn/device-dev/api/input__controller_8h.md b/zh-cn/device-dev/reference/hdi-apis/input__controller_8h.md similarity index 100% rename from zh-cn/device-dev/api/input__controller_8h.md rename to zh-cn/device-dev/reference/hdi-apis/input__controller_8h.md diff --git a/zh-cn/device-dev/api/input__manager_8h.md b/zh-cn/device-dev/reference/hdi-apis/input__manager_8h.md similarity index 100% rename from zh-cn/device-dev/api/input__manager_8h.md rename to zh-cn/device-dev/reference/hdi-apis/input__manager_8h.md diff --git a/zh-cn/device-dev/api/input__reporter_8h.md b/zh-cn/device-dev/reference/hdi-apis/input__reporter_8h.md similarity index 100% rename from zh-cn/device-dev/api/input__reporter_8h.md rename to zh-cn/device-dev/reference/hdi-apis/input__reporter_8h.md diff --git a/zh-cn/device-dev/api/input__type_8h.md b/zh-cn/device-dev/reference/hdi-apis/input__type_8h.md similarity index 98% rename from zh-cn/device-dev/api/input__type_8h.md rename to zh-cn/device-dev/reference/hdi-apis/input__type_8h.md index 39d177fa04..97b78edcd5 100644 --- a/zh-cn/device-dev/api/input__type_8h.md +++ b/zh-cn/device-dev/reference/hdi-apis/input__type_8h.md @@ -35,7 +35,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [RetStatus](_input.md#retstatus) { INPUT_SUCCESS = 0, INPUT_FAILURE = -1, INPUT_INVALID_PARAM = -2, INPUT_NOMEM = -3,   INPUT_NULL_PTR = -4, INPUT_TIMEOUT = -5, INPUT_UNSUPPORTED = -6 } | 定义返回值类型 [更多...](_input.md#retstatus) | | [InputDevType](_input.md#inputdevtype) { INDEV_TYPE_TOUCH, INDEV_TYPE_KEY, INDEV_TYPE_KEYBOARD, INDEV_TYPE_MOUSE,   INDEV_TYPE_BUTTON, INDEV_TYPE_CROWN, INDEV_TYPE_ENCODER, INDEV_TYPE_UNKNOWN } | 定义input设备类型 [更多...](_input.md#inputdevtype) | diff --git a/zh-cn/device-dev/api/interface_i_battery_callback.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_battery_callback.md similarity index 100% rename from zh-cn/device-dev/api/interface_i_battery_callback.md rename to zh-cn/device-dev/reference/hdi-apis/interface_i_battery_callback.md diff --git a/zh-cn/device-dev/api/interface_i_battery_interface.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_battery_interface.md similarity index 100% rename from zh-cn/device-dev/api/interface_i_battery_interface.md rename to zh-cn/device-dev/reference/hdi-apis/interface_i_battery_interface.md diff --git a/zh-cn/device-dev/api/interface_i_executor.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_executor.md similarity index 100% rename from zh-cn/device-dev/api/interface_i_executor.md rename to zh-cn/device-dev/reference/hdi-apis/interface_i_executor.md diff --git a/zh-cn/device-dev/api/interface_i_executor_callback.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_executor_callback.md similarity index 100% rename from zh-cn/device-dev/api/interface_i_executor_callback.md rename to zh-cn/device-dev/reference/hdi-apis/interface_i_executor_callback.md diff --git a/zh-cn/device-dev/api/interface_i_face_auth_interface.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_face_auth_interface.md similarity index 100% rename from zh-cn/device-dev/api/interface_i_face_auth_interface.md rename to zh-cn/device-dev/reference/hdi-apis/interface_i_face_auth_interface.md diff --git a/zh-cn/device-dev/api/interface_i_pin_auth_interface.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_pin_auth_interface.md similarity index 100% rename from zh-cn/device-dev/api/interface_i_pin_auth_interface.md rename to zh-cn/device-dev/reference/hdi-apis/interface_i_pin_auth_interface.md diff --git a/zh-cn/device-dev/api/interface_i_power_hdi_callback.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_power_hdi_callback.md similarity index 100% rename from zh-cn/device-dev/api/interface_i_power_hdi_callback.md rename to zh-cn/device-dev/reference/hdi-apis/interface_i_power_hdi_callback.md diff --git a/zh-cn/device-dev/api/interface_i_power_interface.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_power_interface.md similarity index 100% rename from zh-cn/device-dev/api/interface_i_power_interface.md rename to zh-cn/device-dev/reference/hdi-apis/interface_i_power_interface.md diff --git a/zh-cn/device-dev/api/interface_i_thermal_callback.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_thermal_callback.md similarity index 100% rename from zh-cn/device-dev/api/interface_i_thermal_callback.md rename to zh-cn/device-dev/reference/hdi-apis/interface_i_thermal_callback.md diff --git a/zh-cn/device-dev/api/interface_i_thermal_interface.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_thermal_interface.md similarity index 100% rename from zh-cn/device-dev/api/interface_i_thermal_interface.md rename to zh-cn/device-dev/reference/hdi-apis/interface_i_thermal_interface.md diff --git a/zh-cn/device-dev/api/interface_i_user_auth_interface.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_user_auth_interface.md similarity index 88% rename from zh-cn/device-dev/api/interface_i_user_auth_interface.md rename to zh-cn/device-dev/reference/hdi-apis/interface_i_user_auth_interface.md index 102c715056..ab757df991 100644 --- a/zh-cn/device-dev/api/interface_i_user_auth_interface.md +++ b/zh-cn/device-dev/reference/hdi-apis/interface_i_user_auth_interface.md @@ -25,16 +25,16 @@ | [CancelEnrollment](#cancelenrollment) ([in] int userId) | 取消注册请求。 [更多...](#cancelenrollment) | | [DeleteCredential](#deletecredential) ([in] int userId, [in] unsigned long credentialId, [in] unsigned char[] authToken, [out] struct [CredentialInfo](_credential_info.md) info) | 删除用户凭据信息。 [更多...](#deletecredential) | | [GetCredential](#getcredential) ([in] int userId, [in] enum [AuthType](_hdf_face_auth.md#authtype) authType, [out] struct [CredentialInfo](_credential_info.md)[] infos) | 查询用户凭据信息。 [更多...](#getcredential) | -| [GetSecureInfo](#getsecureinfo) ([in] int userId, [out] unsigned long secureUid, [out] struct [EnrolledInfo](_enrolled_info.md)[] infos) | 查询用户安全信息。 [更多...](#getsecureinfo) | +| [GetUserInfo](#getuserinfo) ([in] int userId, [out] unsigned long secureUid, [out] enum PinSubType pinSubType, [out] struct [EnrolledInfo](_enrolled_info.md)[] infos) | 查询用户认证相关信息。 [更多...](#getuserinfo) | | [DeleteUser](#deleteuser) ([in] int userId, [in] unsigned char[] authToken, [out] struct [CredentialInfo](_credential_info.md)[] deletedInfos) | 删除用户口令认证凭据,在用户IAM系统内删除该用户,该请求由用户触发。 [更多...](#deleteuser) | | [EnforceDeleteUser](#enforcedeleteuser) ([in] int userId, [out] struct [CredentialInfo](_credential_info.md)[] deletedInfos) | 强制删除用户,该请求由系统内管理用户的模块触发。 [更多...](#enforcedeleteuser) | | [BeginAuthentication](#beginauthentication) ([in] unsigned long contextId, [in] struct [AuthSolution](_auth_solution.md) param, [out] struct [ScheduleInfo](_schedule_info.md)[] scheduleInfos) | 开始认证用户,并生成认证方案。 [更多...](#beginauthentication) | | [UpdateAuthenticationResult](#updateauthenticationresult) ([in] unsigned long contextId, [in] unsigned char[] scheduleResult, [out] struct [AuthResultInfo](_auth_result_info.md) info) | 更新认证结果,评估认证方案的认证结果。 [更多...](#updateauthenticationresult) | | [CancelAuthentication](#cancelauthentication) ([in] unsigned long contextId) | 取消用户认证请求。 [更多...](#cancelauthentication) | -| [BeginIdentification](#beginidentification) ([in] unsigned long contextId, [in] enum [AuthType](_hdf_face_auth.md#authtype) authType, [in] byte[] challenge, [in] unsigned int executorId, [out] struct [ScheduleInfo](_schedule_info.md) scheduleInfo) | 开始用户身份识别,并生成识别方案。 [更多...](#beginidentification) | -| [UpdateIdentificationResult](#updateidentificationresult) ([in] unsigned long contextId, [in] unsigned char[] scheduleResult, [out] struct [IdentifyResultInfo](_identify_result_info.md) info) | 更新用户身份识别结果,生成身份识别方案的结果 [更多...](#updateidentificationresult) | +| [BeginIdentification](#beginidentification) ([in] unsigned long contextId, [in] enum [AuthType](_hdf_face_auth.md#authtype) authType, [in] unsigned char[] challenge, [in] unsigned int executorSensorHint, [out] struct [ScheduleInfo](_schedule_info.md) scheduleInfo) | 开始用户身份识别,并生成识别方案。 [更多...](#beginidentification) | +| [UpdateIdentificationResult](#updateidentificationresult) ([in] unsigned long contextId, [in] unsigned char[] scheduleResult, [out] struct [IdentifyResultInfo](_identify_result_info.md) info) | 更新用户身份识别结果,生成身份识别方案的结果。 [更多...](#updateidentificationresult) | | [CancelIdentification](#cancelidentification) ([in] unsigned long contextId) | 取消用户身份识别请求。 [更多...](#cancelidentification) | -| [GetAuthTrustLevel](#getauthtrustlevel) ([in] int userId, [in] enum [AuthType](_hdf_face_auth.md#authtype) authType, [out] unsigned int authTrustLevel) | 获取当前认证类型的认证结果可信等级。 [更多...](#getauthtrustlevel) | +| [GetAuthTrustLevel](#getauthtrustlevel) ([in] GetUserInfoint userId, [in] enum [AuthType](_hdf_face_auth.md#authtype) authType, [out] unsigned int authTrustLevel) | 获取当前认证类型的认证结果可信等级。 [更多...](#getauthtrustlevel) | | [GetValidSolution](#getvalidsolution) ([in] int userId, [in] enum [AuthType](_hdf_face_auth.md#authtype)[] authTypes, [in] unsigned int authTrustLevel, [out] enum [AuthType](_hdf_face_auth.md#authtype)[] validTypes) | 获取指定认证结果可信等级下有效的认证方式。 [更多...](#getvalidsolution) | @@ -138,7 +138,7 @@ IUserAuthInterface::BeginEnrollment ([in] int userId, [in] unsigned char[] authT ``` -IUserAuthInterface::BeginIdentification ([in] unsigned long contextId, [in] enum AuthType authType, [in] byte[] challenge, [in] unsigned int executorId, [out] struct ScheduleInfo scheduleInfo ) +IUserAuthInterface::BeginIdentification([in] unsigned long contextId, [in] enum AuthType authType, [in] unsigned char[] challenge, [in] unsigned int executorSensorHint, [out] struct ScheduleInfo scheduleInfo) ``` **描述:** @@ -151,6 +151,8 @@ IUserAuthInterface::BeginIdentification ([in] unsigned long contextId, [in] enum | -------- | -------- | | contextId | 上下文索引。 | | authType | 用户身份识别类型AuthType}。 | +| challenge | 随机挑战值,用于生成用户身份识别令牌,防止重放。 | +| executorSensorHint | 执行器传感器提示,用于找到对应认证方式的传感器。 | | scheduleInfo | 调度信息[ScheduleInfo](_schedule_info.md)。 | **返回:** @@ -410,16 +412,16 @@ IUserAuthInterface::GetCredential ([in] int userId, [in] enum AuthType authType, 非0 表示操作失败。 -### GetSecureInfo() +### GetUserInfo() ``` -IUserAuthInterface::GetSecureInfo ([in] int userId, [out] unsigned long secureUid, [out] struct EnrolledInfo[] infos ) +IUserAuthInterface::GetUserInfo([in] int userId, [out] unsigned long secureUid, [out] enum PinSubType pinSubType, [out] struct EnrolledInfo[] infos) ``` **描述:** -查询用户安全信息。 +查询用户认证相关信息。 **参数:** @@ -427,6 +429,7 @@ IUserAuthInterface::GetSecureInfo ([in] int userId, [out] unsigned long secureUi | -------- | -------- | | userId | 用户ID。 | | secureUid | 安全用户ID。 | +| pinSubType | 口令认证子类型 {\@link PinSubType}。 | | infos | 注册信息[EnrolledInfo](_enrolled_info.md)。 | **返回:** @@ -536,7 +539,7 @@ IUserAuthInterface::UpdateAuthenticationResult ([in] unsigned long contextId, [i ``` -IUserAuthInterface::UpdateEnrollmentResult ([in] int userId, [in] unsigned char[] scheduleResult, [out] unsigned long credentialId, [out] struct CredentialInfo oldInfo ) +IUserAuthInterface::UpdateEnrollmentResult([in] int userId, [in] unsigned char[] scheduleResult, [out] struct EnrollResultInfo info) ``` **描述:** @@ -549,8 +552,7 @@ IUserAuthInterface::UpdateEnrollmentResult ([in] int userId, [in] unsigned char[ | -------- | -------- | | userId | 用户ID。 | | scheduleResult | 执行器签发的注册结果。 | -| credentialId | 凭据ID。 | -| oldInfo | 已经删除的凭据信息[CredentialInfo](_credential_info.md)。 | +| oldInfo | 录入结果信息[EnrollResultInfo](_enroll_resultinfo.md)。 | **返回:** @@ -568,7 +570,7 @@ IUserAuthInterface::UpdateIdentificationResult ([in] unsigned long contextId, [i **描述:** -更新用户身份识别结果,生成身份识别方案的结果 +更新用户身份识别结果,生成身份识别方案的结果。 **参数:** diff --git a/zh-cn/device-dev/api/interface_pin_i_executor.md b/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md similarity index 98% rename from zh-cn/device-dev/api/interface_pin_i_executor.md rename to zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md index 87b29e6ea7..84471c4498 100644 --- a/zh-cn/device-dev/api/interface_pin_i_executor.md +++ b/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md @@ -21,7 +21,7 @@ | [OnRegisterFinish](#onregisterfinish) ([in] unsigned long[] templateIdList, [in] unsigned char[] frameworkPublicKey, [in] unsigned char[] extraInfo) | 完成执行器注册,对口令模版信息进行对账,用于删除无效的口令模板及相关信息。 [更多...](#onregisterfinish) | | [OnSetData](interface_i_executor.md#onsetdata) ([in] unsigned long scheduleId, [in] unsigned long authSubType, [in] unsigned char[] data) | 设置口令数据,口令认证驱动处理注册或认证口令请求时,如果口令数据由口令认证服务获取,需要通过该接口将口令数据传给口令认证驱动。 [更多...](interface_i_executor.md#onsetdata) | | [Enroll](#enroll) ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_i_executor_callback.md) callbackObj) | 注册口令。 [更多...](#enroll) | -| [Authenticate](#authenticate) ([in] unsigned long scheduleId, [in] unsigned long templateId, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_i_executor_callback.md) callbackObj) | 认证口令。 [ERROR:Invalid link:zh-cn_topic_0000001301263928.xml#xref15713627408,link:zh-cn_topic_0000001301263928.xml](zh-cn_topic_0000001301263928.xml) | +| [Authenticate](#authenticate) ([in] unsigned long scheduleId, [in] unsigned long templateId, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_i_executor_callback.md) callbackObj) | 认证口令。 [ERROR:Invalid link:zh-cn_topic_0000001304382272.xml#xref15713627408,link:zh-cn_topic_0000001304382272.xml](zh-cn_topic_0000001304382272.xml) | | [Delete](#delete) ([in] unsigned long templateId) | 删除口令。 [更多...](#delete) | | [SendCommand](#sendcommand) ([in] int commandId, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_i_executor_callback.md) callbackObj) | 发送口令认证功能相关操作命令。 [更多...](#sendcommand) | diff --git a/zh-cn/device-dev/api/interface_pin_i_executor_callback.md b/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor_callback.md similarity index 100% rename from zh-cn/device-dev/api/interface_pin_i_executor_callback.md rename to zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor_callback.md diff --git a/zh-cn/device-dev/api/ioffline__stream__operator_8h.md b/zh-cn/device-dev/reference/hdi-apis/ioffline__stream__operator_8h.md similarity index 100% rename from zh-cn/device-dev/api/ioffline__stream__operator_8h.md rename to zh-cn/device-dev/reference/hdi-apis/ioffline__stream__operator_8h.md diff --git a/zh-cn/device-dev/api/istream__operator_8h.md b/zh-cn/device-dev/reference/hdi-apis/istream__operator_8h.md similarity index 100% rename from zh-cn/device-dev/api/istream__operator_8h.md rename to zh-cn/device-dev/reference/hdi-apis/istream__operator_8h.md diff --git a/zh-cn/device-dev/api/istream__operator__callback_8h.md b/zh-cn/device-dev/reference/hdi-apis/istream__operator__callback_8h.md similarity index 100% rename from zh-cn/device-dev/api/istream__operator__callback_8h.md rename to zh-cn/device-dev/reference/hdi-apis/istream__operator__callback_8h.md diff --git a/zh-cn/device-dev/api/light_8typeh.md b/zh-cn/device-dev/reference/hdi-apis/light_8typeh.md similarity index 100% rename from zh-cn/device-dev/api/light_8typeh.md rename to zh-cn/device-dev/reference/hdi-apis/light_8typeh.md diff --git a/zh-cn/device-dev/api/light__if_8h.md b/zh-cn/device-dev/reference/hdi-apis/light__if_8h.md similarity index 100% rename from zh-cn/device-dev/api/light__if_8h.md rename to zh-cn/device-dev/reference/hdi-apis/light__if_8h.md diff --git a/zh-cn/device-dev/api/pin__auth_2_i_executor_8idl.md b/zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_8idl.md similarity index 100% rename from zh-cn/device-dev/api/pin__auth_2_i_executor_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_8idl.md diff --git a/zh-cn/device-dev/api/pin__auth_2_i_executor_callback_8idl.md b/zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_callback_8idl.md similarity index 100% rename from zh-cn/device-dev/api/pin__auth_2_i_executor_callback_8idl.md rename to zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_callback_8idl.md diff --git a/zh-cn/device-dev/api/power.md b/zh-cn/device-dev/reference/hdi-apis/power.md similarity index 97% rename from zh-cn/device-dev/api/power.md rename to zh-cn/device-dev/reference/hdi-apis/power.md index b128add4a8..2ce105c12d 100644 --- a/zh-cn/device-dev/api/power.md +++ b/zh-cn/device-dev/reference/hdi-apis/power.md @@ -23,7 +23,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [PowerHdfCmd](#powerhdfcmd) {   CMD_REGISTER_CALLBCK = 0, CMD_START_SUSPEND, CMD_STOP_SUSPEND, CMD_FORCE_SUSPEND,   CMD_SUSPEND_BLOCK, CMD_SUSPEND_UNBLOCK, CMD_DUMP } | 枚举电源命令的参数。 [更多...](#powerhdfcmd) | | [PowerHdfCallbackCmd](#powerhdfcallbackcmd) { CMD_ON_SUSPEND = 0, CMD_ON_WAKEUP } | 枚举电源状态回调的参数。 [更多...](#powerhdfcallbackcmd) | @@ -32,9 +32,9 @@ ### 变量 - | 变量 名称 | 描述 | + | 变量 | 描述 | | -------- | -------- | -| package ohos.hdi.power.v1_0 | 电源管理接口的包路径 | +| package ohos.hdi.power.v1_0 | 电源管理接口的包路径。 | ## **详细描述** diff --git a/zh-cn/device-dev/api/public_sys-resources/icon-caution.gif b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-caution.gif similarity index 100% rename from zh-cn/device-dev/api/public_sys-resources/icon-caution.gif rename to zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-caution.gif diff --git a/zh-cn/device-dev/api/public_sys-resources/icon-danger.gif b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-danger.gif similarity index 100% rename from zh-cn/device-dev/api/public_sys-resources/icon-danger.gif rename to zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-danger.gif diff --git a/zh-cn/device-dev/api/public_sys-resources/icon-note.gif b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-note.gif similarity index 100% rename from zh-cn/device-dev/api/public_sys-resources/icon-note.gif rename to zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-note.gif diff --git a/zh-cn/device-dev/api/public_sys-resources/icon-notice.gif b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-notice.gif similarity index 100% rename from zh-cn/device-dev/api/public_sys-resources/icon-notice.gif rename to zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-notice.gif diff --git a/zh-cn/device-dev/api/public_sys-resources/icon-tip.gif b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-tip.gif similarity index 100% rename from zh-cn/device-dev/api/public_sys-resources/icon-tip.gif rename to zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-tip.gif diff --git a/zh-cn/device-dev/api/public_sys-resources/icon-warning.gif b/zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-warning.gif similarity index 100% rename from zh-cn/device-dev/api/public_sys-resources/icon-warning.gif rename to zh-cn/device-dev/reference/hdi-apis/public_sys-resources/icon-warning.gif diff --git a/zh-cn/device-dev/api/sensor__if_8h.md b/zh-cn/device-dev/reference/hdi-apis/sensor__if_8h.md similarity index 100% rename from zh-cn/device-dev/api/sensor__if_8h.md rename to zh-cn/device-dev/reference/hdi-apis/sensor__if_8h.md diff --git a/zh-cn/device-dev/api/sensor__type_8h.md b/zh-cn/device-dev/reference/hdi-apis/sensor__type_8h.md similarity index 99% rename from zh-cn/device-dev/api/sensor__type_8h.md rename to zh-cn/device-dev/reference/hdi-apis/sensor__type_8h.md index db4420ef0e..35adb8935d 100644 --- a/zh-cn/device-dev/api/sensor__type_8h.md +++ b/zh-cn/device-dev/reference/hdi-apis/sensor__type_8h.md @@ -36,7 +36,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [SensorStatus](_sensor.md#sensorstatus) { SENSOR_SUCCESS = 0, SENSOR_FAILURE = -1, SENSOR_NOT_SUPPORT = -2, SENSOR_INVALID_PARAM = -3,   SENSOR_INVALID_SERVICE = -4, SENSOR_NULL_PTR = -5 } | 定义传感器模块返回值类型。 [更多...](_sensor.md#sensorstatus) | | [SensorTypeTag](_sensor.md#sensortypetag) { SENSOR_TYPE_NONE = 0, SENSOR_TYPE_ACCELEROMETER = 1, SENSOR_TYPE_GYROSCOPE = 2, SENSOR_TYPE_PHOTOPLETHYSMOGRAPH = 3,   SENSOR_TYPE_ELECTROCARDIOGRAPH = 4, SENSOR_TYPE_AMBIENT_LIGHT = 5, SENSOR_TYPE_MAGNETIC_FIELD = 6, SENSOR_TYPE_CAPACITIVE = 7,   SENSOR_TYPE_BAROMETER = 8, SENSOR_TYPE_TEMPERATURE = 9, SENSOR_TYPE_HALL = 10, SENSOR_TYPE_GESTURE = 11,   SENSOR_TYPE_PROXIMITY = 12, SENSOR_TYPE_HUMIDITY = 13, SENSOR_TYPE_MEDICAL_BEGIN = 128, SENSOR_TYPE_MEDICAL_END = 160,   SENSOR_TYPE_PHYSICAL_MAX = 255, SENSOR_TYPE_ORIENTATION = 256, SENSOR_TYPE_GRAVITY = 257, SENSOR_TYPE_LINEAR_ACCELERATION = 258,   SENSOR_TYPE_ROTATION_VECTOR = 259, SENSOR_TYPE_AMBIENT_TEMPERATURE = 260, SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED = 261, SENSOR_TYPE_GAME_ROTATION_VECTOR = 262,   SENSOR_TYPE_GYROSCOPE_UNCALIBRATED = 263, SENSOR_TYPE_SIGNIFICANT_MOTION = 264, SENSOR_TYPE_PEDOMETER_DETECTION = 265, SENSOR_TYPE_PEDOMETER = 266,   SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR = 277, SENSOR_TYPE_HEART_RATE = 278, SENSOR_TYPE_DEVICE_ORIENTATION = 279, SENSOR_TYPE_WEAR_DETECTION = 280,   SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED = 281, SENSOR_TYPE_MAX } | 定义传感器类型标识。 [更多...](_sensor.md#sensortypetag) | diff --git a/zh-cn/device-dev/api/thermal.md b/zh-cn/device-dev/reference/hdi-apis/thermal.md similarity index 100% rename from zh-cn/device-dev/api/thermal.md rename to zh-cn/device-dev/reference/hdi-apis/thermal.md diff --git a/zh-cn/device-dev/api/total.md b/zh-cn/device-dev/reference/hdi-apis/total.md similarity index 100% rename from zh-cn/device-dev/api/total.md rename to zh-cn/device-dev/reference/hdi-apis/total.md diff --git a/zh-cn/device-dev/api/types_8h.md b/zh-cn/device-dev/reference/hdi-apis/types_8h.md similarity index 99% rename from zh-cn/device-dev/api/types_8h.md rename to zh-cn/device-dev/reference/hdi-apis/types_8h.md index 195ce60dc7..d464901d79 100644 --- a/zh-cn/device-dev/api/types_8h.md +++ b/zh-cn/device-dev/reference/hdi-apis/types_8h.md @@ -33,7 +33,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [OHOS::Camera::CamRetCode](_camera.md#camretcode) : int32_t {   OHOS::Camera::NO_ERROR = 0, OHOS::Camera::CAMERA_BUSY = -1, OHOS::Camera::INSUFFICIENT_RESOURCES = -2, OHOS::Camera::INVALID_ARGUMENT = -3,   OHOS::Camera::METHOD_NOT_SUPPORTED = -4, OHOS::Camera::CAMERA_CLOSED = -5, OHOS::Camera::DEVICE_ERROR = -6 } | HDI接口的返回值。 [更多...](_camera.md#camretcode) | | [OHOS::Camera::ResultCallbackMode](_camera.md#resultcallbackmode) : int32_t { OHOS::Camera::PER_FRAME, OHOS::Camera::ON_CHANGED } | metadata的上报模式。 [更多...](_camera.md#resultcallbackmode) | diff --git a/zh-cn/device-dev/api/union_audio_scene_descriptor_1_1_scene_desc.md b/zh-cn/device-dev/reference/hdi-apis/union_audio_scene_descriptor_1_1_scene_desc.md similarity index 100% rename from zh-cn/device-dev/api/union_audio_scene_descriptor_1_1_scene_desc.md rename to zh-cn/device-dev/reference/hdi-apis/union_audio_scene_descriptor_1_1_scene_desc.md diff --git a/zh-cn/device-dev/api/union_port_cap.md b/zh-cn/device-dev/reference/hdi-apis/union_port_cap.md similarity index 100% rename from zh-cn/device-dev/api/union_port_cap.md rename to zh-cn/device-dev/reference/hdi-apis/union_port_cap.md diff --git a/zh-cn/device-dev/api/usb__info_8h.md b/zh-cn/device-dev/reference/hdi-apis/usb__info_8h.md similarity index 100% rename from zh-cn/device-dev/api/usb__info_8h.md rename to zh-cn/device-dev/reference/hdi-apis/usb__info_8h.md diff --git a/zh-cn/device-dev/api/usbd__client_8h.md b/zh-cn/device-dev/reference/hdi-apis/usbd__client_8h.md similarity index 100% rename from zh-cn/device-dev/api/usbd__client_8h.md rename to zh-cn/device-dev/reference/hdi-apis/usbd__client_8h.md diff --git a/zh-cn/device-dev/api/usbd__subscriber_8h.md b/zh-cn/device-dev/reference/hdi-apis/usbd__subscriber_8h.md similarity index 100% rename from zh-cn/device-dev/api/usbd__subscriber_8h.md rename to zh-cn/device-dev/reference/hdi-apis/usbd__subscriber_8h.md diff --git a/zh-cn/device-dev/api/usbd__type_8h.md b/zh-cn/device-dev/reference/hdi-apis/usbd__type_8h.md similarity index 98% rename from zh-cn/device-dev/api/usbd__type_8h.md rename to zh-cn/device-dev/reference/hdi-apis/usbd__type_8h.md index 22fd1d8f64..f92f98f0c8 100644 --- a/zh-cn/device-dev/api/usbd__type_8h.md +++ b/zh-cn/device-dev/reference/hdi-apis/usbd__type_8h.md @@ -37,7 +37,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [UsbdBulkCbCmd](_u_s_b.md#usbdbulkcbcmd) { CMD_USBD_BULK_CALLBACK_READ, CMD_USBD_BULK_CALLBACK_WRITE } | 批量回调命令字。 [更多...](_u_s_b.md#usbdbulkcbcmd) | | [UsbdDeviceAction](_u_s_b.md#usbddeviceaction) { ACT_DEVUP = 0, ACT_DEVDOWN, ACT_UPDEVICE, ACT_DOWNDEVICE } | 主机端和设备端插拔事件。 [更多...](_u_s_b.md#usbddeviceaction) | diff --git a/zh-cn/device-dev/api/vibrator__if_8h.md b/zh-cn/device-dev/reference/hdi-apis/vibrator__if_8h.md similarity index 100% rename from zh-cn/device-dev/api/vibrator__if_8h.md rename to zh-cn/device-dev/reference/hdi-apis/vibrator__if_8h.md diff --git a/zh-cn/device-dev/api/vibrator__type_8h.md b/zh-cn/device-dev/reference/hdi-apis/vibrator__type_8h.md similarity index 97% rename from zh-cn/device-dev/api/vibrator__type_8h.md rename to zh-cn/device-dev/reference/hdi-apis/vibrator__type_8h.md index 3236f641e9..1abb949a8c 100644 --- a/zh-cn/device-dev/api/vibrator__type_8h.md +++ b/zh-cn/device-dev/reference/hdi-apis/vibrator__type_8h.md @@ -13,7 +13,7 @@ ### 枚举 - | 枚举名称 | 描述 | + | 枚举 | 描述 | | -------- | -------- | | [VibratorMode](_vibrator.md#vibratormode) { VIBRATOR_MODE_ONCE = 0, VIBRATOR_MODE_PRESET = 1, VIBRATOR_MODE_BUTT } | 枚举马达振动模式。 [更多...](_vibrator.md#vibratormode) | | [VibratorStatus](_vibrator.md#vibratorstatus) { VIBRATOR_SUCCESS = 0, VIBRATOR_NOT_PERIOD = -1,  VIBRATOR_NOT_INTENSITY  = -2,  VIBRATOR_NOT_FREQUENCY= -3} | 枚举马达振动模式。[更多...](_vibrator.md#vibratorstatus) | diff --git a/zh-cn/device-dev/api/wifi__hal_8h.md b/zh-cn/device-dev/reference/hdi-apis/wifi__hal_8h.md similarity index 100% rename from zh-cn/device-dev/api/wifi__hal_8h.md rename to zh-cn/device-dev/reference/hdi-apis/wifi__hal_8h.md diff --git a/zh-cn/device-dev/api/wifi__hal__ap__feature_8h.md b/zh-cn/device-dev/reference/hdi-apis/wifi__hal__ap__feature_8h.md similarity index 100% rename from zh-cn/device-dev/api/wifi__hal__ap__feature_8h.md rename to zh-cn/device-dev/reference/hdi-apis/wifi__hal__ap__feature_8h.md diff --git a/zh-cn/device-dev/api/wifi__hal__base__feature_8h.md b/zh-cn/device-dev/reference/hdi-apis/wifi__hal__base__feature_8h.md similarity index 100% rename from zh-cn/device-dev/api/wifi__hal__base__feature_8h.md rename to zh-cn/device-dev/reference/hdi-apis/wifi__hal__base__feature_8h.md diff --git a/zh-cn/device-dev/api/wifi__hal__sta__feature_8h.md b/zh-cn/device-dev/reference/hdi-apis/wifi__hal__sta__feature_8h.md similarity index 100% rename from zh-cn/device-dev/api/wifi__hal__sta__feature_8h.md rename to zh-cn/device-dev/reference/hdi-apis/wifi__hal__sta__feature_8h.md -- GitLab From d28c097c39463064d8c6ca71516e80ddcb3984d9 Mon Sep 17 00:00:00 2001 From: zwx1138075 Date: Wed, 20 Jul 2022 17:15:37 +0800 Subject: [PATCH 121/868] =?UTF-8?q?riscv32=5Fmini=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E6=89=93=E4=B8=8D=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zwx1138075 --- zh-cn/device-dev/quick-start/quickstart-build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/quick-start/quickstart-build.md b/zh-cn/device-dev/quick-start/quickstart-build.md index 0f27c2df80..4e2363163c 100644 --- a/zh-cn/device-dev/quick-start/quickstart-build.md +++ b/zh-cn/device-dev/quick-start/quickstart-build.md @@ -30,7 +30,7 @@ | [qemu_cksy_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_csky_mini_system_demo/config.json) | SmartL_E802 | qemu | liteos_m | mini | | [qemu_cm55_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_cm55_mini_system_demo/config.json) | arm_mps3_an547 | qemu | liteos_m | mini | | [qemu_xtensa_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_xtensa_mini_system_demo/config.json) | esp32 | qemu | liteos_m | mini | -| [qemu_riscv_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_riscv_mini_system_demo/config.json) | ricsv32_virt | qemu | liteos_m | mini | +| [qemu_riscv_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_riscv32_mini_system_demo/config.json) | ricsv32_virt | qemu | liteos_m | mini | | [qemu_ca7_mini_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_ca7_mini_system_demo/config.json) | arm_virt | qemu | liteos_a | small | | [qemu_small_system_demo](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_small_system_demo/config.json) | arm_virt | qemu | liteos_a | small | | [qemu_arm_linux_min](https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_arm_linux_min/config.json) | qemu-arm-linux | qemu | linux | standard | -- GitLab From 44ea6c0abe5f2467dd090aba703030e3fdebdd9d Mon Sep 17 00:00:00 2001 From: bird_j Date: Wed, 20 Jul 2022 10:04:09 +0000 Subject: [PATCH 122/868] Signed-off-by: bird_j --- zh-cn/application-dev/reference/apis/js-apis-media.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index 2e7665ee51..3765bba33f 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -105,6 +105,7 @@ media.createVideoPlayer().then((video) => { createAudioRecorder(): AudioRecorder 创建音频录制的实例来控制音频的录制。 +一台设备只允许创建一个录制实例。 **系统能力:** SystemCapability.Multimedia.Media.AudioRecorder @@ -125,6 +126,7 @@ let audioRecorder = media.createAudioRecorder(); createVideoRecorder(callback: AsyncCallback\<[VideoRecorder](#videorecorder9)>): void 异步方式创建视频录制实例。通过注册回调函数获取返回值。 +一台设备只允许创建一个录制实例。 **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder @@ -154,6 +156,7 @@ media.createVideoRecorder((error, video) => { createVideoRecorder(): Promise<[VideoRecorder](#videorecorder9)> 异步方式创建视频录制实例。通过Promise获取返回值。 +一台设备只允许创建一个录制实例。 **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -- GitLab From febd7e8ba5b41ae67661e85383316768b89e0281 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E6=B5=B7?= Date: Wed, 20 Jul 2022 10:47:23 +0000 Subject: [PATCH 123/868] =?UTF-8?q?Signed-off-by:=20=E6=B1=9F=E6=B5=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/apis/js-apis-update.md | 63 +++++++++---------- 1 file changed, 31 insertions(+), 32 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-update.md b/zh-cn/application-dev/reference/apis/js-apis-update.md index 4e7e6257e6..e17db77148 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-update.md +++ b/zh-cn/application-dev/reference/apis/js-apis-update.md @@ -297,6 +297,8 @@ getTaskInfo(): Promise\ **系统能力**:SystemCapability.Update.UpdateService +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + **返回值:** | 类型 | 说明 | @@ -754,7 +756,7 @@ updater.getUpgradePolicy().then(policy => { ### setUpgradePolicy -setUpgradePolicy(policy: UpgradePolicy, callback: AsyncCallback\): void +setUpgradePolicy(policy: UpgradePolicy, callback: AsyncCallback\): void 设置升级策略。使用callback异步回调。 @@ -767,7 +769,7 @@ setUpgradePolicy(policy: UpgradePolicy, callback: AsyncCallback\): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ---------------------------------------- | ---- | ---------- | | policy | [UpgradePolicy](#upgradepolicy) | 是 | 升级策略 | -| callback | AsyncCallback\ | 是 | 回调函数,返回设置结果对象 | +| callback | AsyncCallback\ | 是 | 回调函数,返回设置结果对象 | **示例:** @@ -777,14 +779,14 @@ let policy = { autoUpgradeStrategy: false, autoUpgradePeriods: [ { start: 120, end: 240 } ] // 自动升级时间段,用分钟表示 } -updater.setUpgradePolicy(policy, (err, value) => { - console.log(`setUpgradePolicy result: ${value}`); +updater.setUpgradePolicy(policy, (err) => { + console.log(`setUpgradePolicy result: ${err}`); }); ``` ### setUpgradePolicy -setUpgradePolicy(policy: UpgradePolicy): Promise\ +setUpgradePolicy(policy: UpgradePolicy): Promise\ 设置升级策略。使用Promise异步回调。 @@ -802,7 +804,7 @@ setUpgradePolicy(policy: UpgradePolicy): Promise\ | 类型 | 说明 | | ---------------- | --------------- | -| Promise\ | Promise对象,返回设置结果对象。 | +| Promise\ | Promise对象,返回设置结果对象。 | **示例:** @@ -812,8 +814,8 @@ let policy = { autoUpgradeStrategy: false, autoUpgradePeriods: [ { start: 120, end: 240 } ] // 自动升级时间段,用分钟表示 } -updater.setUpgradePolicy(policy).then(result => { - console.log(`setUpgradePolicy ${result}`); +updater.setUpgradePolicy(policy).then(() => { + console.log(`setUpgradePolicy success`); }).catch(err => { console.log(`setUpgradePolicy promise error ${JSON.stringify(err)}`); }); @@ -851,6 +853,8 @@ terminateUpgrade(): Promise\ **系统能力**:SystemCapability.Update.UpdateService +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + **返回值:** | 类型 | 说明 | @@ -890,11 +894,9 @@ var eventClassifyInfo = { extraInfo: "" } -function onTaskUpdate(eventInfo): void { - console.log(`on eventInfo id `, eventInfo.eventId); -} - -updater.on(eventClassifyInfo, onTaskUpdate); +updater.on(eventClassifyInfo, (eventInfo) => { + console.log("updater on " + JSON.stringify(eventInfo)); +}); ``` ### off @@ -919,11 +921,9 @@ var eventClassifyInfo = { extraInfo: "" } -function onTaskUpdate(eventInfo): void { - console.log(`on eventInfo id `, eventInfo.eventId); -} - -updater.off(eventClassifyInfo, onTaskUpdate); +updater.off(eventClassifyInfo, (eventInfo) => { + console.log("updater off " + JSON.stringify(eventInfo)); +}); ``` ## Restorer @@ -982,7 +982,7 @@ restorer.factoryReset().then(() => { ### verifyUpgradePackage -verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string, callback: AsyncCallback\): void +verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string, callback: AsyncCallback\): void 校验升级包。使用callback异步回调。 @@ -996,7 +996,7 @@ verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string, callback: Asyn | -------- | ---------------------------------------- | ---- | --------- | | upgradeFile | [UpgradeFile](#upgradefile) | 是 | 升级文件 | | certsFile | string | 是 | 证书文件路径 | -| callback | AsyncCallback\ | 是 | 回调函数,返回升级包校验结果对象 | +| callback | AsyncCallback\ | 是 | 回调函数,返回升级包校验结果对象 | **示例:** @@ -1006,14 +1006,14 @@ var upgradeFile = { filePath: "path" // 本地升级包路径 } -localUpdater.verifyUpgradePackage(upgradeFile, "cerstFilePath", (err, result) => { +localUpdater.verifyUpgradePackage(upgradeFile, "cerstFilePath", (err) => { console.log(`factoryReset error ${JSON.stringify(err)}`); }); ``` ### verifyUpgradePackage -verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string): Promise\ +verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string): Promise\ 校验升级包。使用Promise异步回调。 @@ -1032,7 +1032,7 @@ verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string): Promise\ | Promise对象,返回升级包校验结果对象。 | +| Promise\ | Promise对象,返回升级包校验结果对象。 | **示例:** @@ -1041,8 +1041,8 @@ var upgradeFile = { fileType: update.ComponentType.OTA, // OTA包 filePath: "path" // 本地升级包路径 } -localUpdater.verifyUpgradePackage(upgradeFile, "cerstFilePath").then(result => { - console.log(`verifyUpgradePackage result: ${result}`); +localUpdater.verifyUpgradePackage(upgradeFile, "cerstFilePath").then(() => { + console.log(`verifyUpgradePackage success`); }).catch(err => { console.log(`verifyUpgradePackage error ${JSON.stringify(err)}`); }); @@ -1368,7 +1368,7 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); | progress | number | 是 | 进度 | | installMode | number | 是 | 安装模式 | | errorMessages | Array\<[ErrorMessage](#errormessage)> | 否 | 错误信息 | -| versionComponets | Array\<[VersionComponet](#versioncomponet)> | 是 | 版本组件 | +| versionComponents | Array\<[VersionComponent](#versioncomponent)> | 是 | 版本组件 | ## ErrorMessage @@ -1405,8 +1405,7 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); ## UpgradeTaskCallback -### onTaskUpdate -onTaskUpdate(eventInfo: [EventInfo](#eventinfo)): void +### (eventInfo: [EventInfo](#eventinfo)): void 事件回调。 @@ -1434,7 +1433,7 @@ onTaskUpdate(eventInfo: [EventInfo](#eventinfo)): void | 参数名 | 默认值 | 说明 | | ------------------- | ---- | -------- | -| FIRWARE | 1 | 固件 | +| FIRMWARE | 1 | 固件 | ## ComponentType @@ -1504,8 +1503,8 @@ onTaskUpdate(eventInfo: [EventInfo](#eventinfo)): void | ------------------- | ---- | -------- | | DOWNLOAD | 1 | 下载 | | INSTALL | 2 | 安装 | -| APPLY | 4 | 生效 | | DOWNLOAD_AND_INSTALL | 3 | 下载并安装 | +| APPLY | 4 | 生效 | | INSTALL_AND_APPLY | 6 | 安装并生效 | ## UpgradeStatus @@ -1518,11 +1517,11 @@ onTaskUpdate(eventInfo: [EventInfo](#eventinfo)): void | ------------------- | ---- | -------- | | WAITING_DOWNLOAD | 20 | 待下载 | | DOWNLOADING | 21 | 下载中 | -| DOWNLOAD_PAUSE | 22 | 下载暂停 | +| DOWNLOAD_PAUSED | 22 | 下载暂停 | | DOWNLOAD_FAIL | 23 | 下载失败 | | WAITING_INSTALL | 30 | 待安装 | | UPDATING | 31 | 更新中 | -| WATING_APPLY | 40 | 待生效 | +| WAITING_APPLY | 40 | 待生效 | | APPLYING | 21 | 生效中 | | UPGRADE_SUCCESS | 50 | 升级成功 | | UPGRADE_FAIL | 51 | 升级失败 | -- GitLab From a6595a1951441f23b5e273ea814e627d8ae8fce0 Mon Sep 17 00:00:00 2001 From: caocan Date: Wed, 20 Jul 2022 19:01:53 +0800 Subject: [PATCH 124/868] =?UTF-8?q?=E7=BA=BF=E6=80=A7=E6=B8=90=E5=8F=98?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: caocan Change-Id: Ifb95115f57dbf15e06ce6e9cb6665a6706a6dd98 --- .../arkui-ts/ts-universal-attributes-gradient-color.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-gradient-color.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-gradient-color.md index c2ccb7bf9b..ed5e349520 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-gradient-color.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-gradient-color.md @@ -16,7 +16,7 @@ | 名称 | 参数类型 | 默认值 | 描述 | | -------- | -------- | -------- | -------- | -| linearGradient | {
angle?: [Angle](../../ui/ts-types.md),
direction?: GradientDirection,
colors: Array<[ColorStop](../../ui/ts-types.md)>
repeating?: boolean
} | - | 线性渐变。
angle: 线性渐变的角度。
direction: 线性渐变的方向。
colors: 为渐变的颜色描述。
repeating: 为渐变的颜色重复着色。 | +| linearGradient | {
angle?: [Angle](../../ui/ts-types.md),
direction?: GradientDirection,
colors: Array<[ColorStop](../../ui/ts-types.md)>
repeating?: boolean
} | - | 线性渐变。
angle: 线性渐变的角度。
direction: 线性渐变的方向,设置angle后不生效。
colors: 为渐变的颜色描述。
repeating: 为渐变的颜色重复着色。 | | sweepGradient | {
center: Point,
start?: angle,
end?: angle,
colors: Array<[ColorStop](../../ui/ts-types.md)>
repeating?: boolean
} | - | 角度渐变。
center:为角度渐变的中心点。
start:角度渐变的起点。
end:角度渐变的终点。
colors: 为渐变的颜色描述。
repeating: 为渐变的颜色重复着色。 | | radialGradient | {
center: Point,
radius: Length,
colors: Array<[ColorStop](../../ui/ts-types.md)>
repeating: boolean
} | - | 径向渐变。
center:径向渐变的中心点。
radius:径向渐变的半径。
colors: 为渐变的颜色描述。
repeating: 为渐变的颜色重复着色。 | @@ -52,7 +52,6 @@ struct ColorGradientExample { .height(50) .linearGradient({ angle: 90, - direction: GradientDirection.Left, colors: [[0xAEE1E1, 0.0], [0xD3E0DC, 0.3], [0xFCD1D1, 1.0]] }) Text('sweepGradient').fontSize(12).width('90%').fontColor(0xCCCCCC) -- GitLab From cf71793b13d416d037016bc11288c9e1702dfe7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Wed, 20 Jul 2022 11:11:37 +0000 Subject: [PATCH 125/868] update zh-cn/application-dev/reference/apis/js-apis-screen.md. Signed-off-by: ge-yafang --- zh-cn/application-dev/reference/apis/js-apis-screen.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-screen.md b/zh-cn/application-dev/reference/apis/js-apis-screen.md index d8725959e1..5c776f930e 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-screen.md +++ b/zh-cn/application-dev/reference/apis/js-apis-screen.md @@ -32,7 +32,7 @@ getAllScreens(callback: AsyncCallback<Array<Screen>>): void var screenClass = null; screen.getAllScreens((err, data) => { if (err.code) { - console.error('Failed to get all screens . Cuase: ' + JSON.stringify(err)); + console.error('Failed to get all screens . Cause: ' + JSON.stringify(err)); return; } console.info('Succeeded in getting all screens . Data:' + JSON.stringify(data)); -- GitLab From 257865302f91569513c602b38a3cb0b0abb7fab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Wed, 20 Jul 2022 11:19:12 +0000 Subject: [PATCH 126/868] update zh-cn/application-dev/reference/apis/js-apis-distributed-data.md. Signed-off-by: ge-yafang --- .../apis/js-apis-distributed-data.md | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md b/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md index 7583b6d81d..52d2eb3016 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md +++ b/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md @@ -844,7 +844,7 @@ let kvStore; try { let resultSet; kvStore.getResultSet('batch_test_string_key').then((result) => { - console.log('getResultSet succeeed.'); + console.log('getResultSet succeeded.'); resultSet = result; }).catch((err) => { console.log('getResultSet failed: ' + err); @@ -2522,10 +2522,10 @@ try { console.log('entries: ' + JSON.stringify(entries)); kvStore.putBatch(entries, async function (err,data) { console.log('putBatch success'); - kvStore.getEntries('batch_test_string_key', function (err,entrys) { + kvStore.getEntries('batch_test_string_key', function (err,entries) { console.log('getEntries success'); - console.log('entrys.length: ' + entrys.length); - console.log('entrys[0]: ' + JSON.stringify(entrys[0])); + console.log('entries.length: ' + entries.length); + console.log('entries[0]: ' + JSON.stringify(entries[0])); }); }); }catch(e) { @@ -2574,7 +2574,7 @@ try { console.log('entries: ' + JSON.stringify(entries)); kvStore.putBatch(entries).then(async (err) => { console.log('putBatch success'); - kvStore.getEntries('batch_test_string_key').then((entrys) => { + kvStore.getEntries('batch_test_string_key').then((entries) => { console.log('getEntries success'); console.log('PutBatch ' + JSON.stringify(entries)); }).catch((err) => { @@ -3313,10 +3313,10 @@ try { } kvStore.putBatch(entries, async function (err,data) { console.log('putBatch success'); - kvStore.getEntries('batch_test_number_key', function (err,entrys) { + kvStore.getEntries('batch_test_number_key', function (err,entries) { console.log('getEntries success'); - console.log('entrys.length: ' + entrys.length); - console.log('entrys[0]: ' + JSON.stringify(entrys[0])); + console.log('entries.length: ' + entries.length); + console.log('entries[0]: ' + JSON.stringify(entries[0])); }); }); }catch(e) { @@ -3365,12 +3365,12 @@ try { console.log('entries: ' + entries); kvStore.putBatch(entries).then(async (err) => { console.log('putBatch success'); - kvStore.getEntries('batch_test_string_key').then((entrys) => { + kvStore.getEntries('batch_test_string_key').then((entries) => { console.log('getEntries success'); - console.log('entrys.length: ' + entrys.length); - console.log('entrys[0]: ' + JSON.stringify(entrys[0])); - console.log('entrys[0].value: ' + JSON.stringify(entrys[0].value)); - console.log('entrys[0].value.value: ' + entrys[0].value.value); + console.log('entries.length: ' + entries.length); + console.log('entries[0]: ' + JSON.stringify(entries[0])); + console.log('entries[0].value: ' + JSON.stringify(entries[0].value)); + console.log('entries[0].value.value: ' + entries[0].value.value); }).catch((err) => { console.log('getEntries fail ' + JSON.stringify(err)); }); @@ -3421,10 +3421,10 @@ try { console.log('putBatch success'); const query = new distributedData.Query(); query.prefixKey("batch_test"); - kvStore.getEntries(query, function (err,entrys) { + kvStore.getEntries(query, function (err,entries) { console.log('getEntries success'); - console.log('entrys.length: ' + entrys.length); - console.log('entrys[0]: ' + JSON.stringify(entrys[0])); + console.log('entries.length: ' + entries.length); + console.log('entries[0]: ' + JSON.stringify(entries[0])); }); }); console.log('GetEntries success'); @@ -3477,7 +3477,7 @@ try { console.log('putBatch success'); const query = new distributedData.Query(); query.prefixKey("batch_test"); - kvStore.getEntries(query).then((entrys) => { + kvStore.getEntries(query).then((entries) => { console.log('getEntries success'); }).catch((err) => { console.log('getEntries fail ' + JSON.stringify(err)); @@ -4480,10 +4480,10 @@ try { console.log('entries: ' + entries); kvStore.putBatch(entries, async function (err,data) { console.log('putBatch success'); - kvStore.getEntries('localDeviceId', 'batch_test_string_key', function (err,entrys) { + kvStore.getEntries('localDeviceId', 'batch_test_string_key', function (err,entries) { console.log('getEntries success'); - console.log('entrys.length: ' + entrys.length); - console.log('entrys[0]: ' + JSON.stringify(entrys[0])); + console.log('entries.length: ' + entries.length); + console.log('entries[0]: ' + JSON.stringify(entries[0])); }); }); }catch(e) { @@ -4533,12 +4533,12 @@ try { console.log('entries: ' + entries); kvStore.putBatch(entries).then(async (err) => { console.log('putBatch success'); - kvStore.getEntries('localDeviceId', 'batch_test_string_key').then((entrys) => { + kvStore.getEntries('localDeviceId', 'batch_test_string_key').then((entries) => { console.log('getEntries success'); - console.log('entrys.length: ' + entrys.length); - console.log('entrys[0]: ' + JSON.stringify(entrys[0])); - console.log('entrys[0].value: ' + JSON.stringify(entrys[0].value)); - console.log('entrys[0].value.value: ' + entrys[0].value.value); + console.log('entries.length: ' + entries.length); + console.log('entries[0]: ' + JSON.stringify(entrieys[0])); + console.log('entries[0].value: ' + JSON.stringify(entries[0].value)); + console.log('entries[0].value.value: ' + entries[0].value.value); }).catch((err) => { console.log('getEntries fail ' + JSON.stringify(err)); }); @@ -4590,10 +4590,10 @@ try { const query = new distributedData.Query(); query.prefixKey("batch_test"); query.deviceId('localDeviceId'); - kvStore.getEntries(query, function (err,entrys) { + kvStore.getEntries(query, function (err,entries) { console.log('getEntries success'); - console.log('entrys.length: ' + entrys.length); - console.log('entrys[0]: ' + JSON.stringify(entrys[0])); + console.log('entries.length: ' + entries.length); + console.log('entries[0]: ' + JSON.stringify(entries[0])); }); }); console.log('GetEntries success'); @@ -4646,7 +4646,7 @@ try { console.log('putBatch success'); const query = new distributedData.Query(); query.prefixKey("batch_test"); - kvStore.getEntries(query).then((entrys) => { + kvStore.getEntries(query).then((entries) => { console.log('getEntries success'); }).catch((err) => { console.log('getEntries fail ' + JSON.stringify(err)); @@ -4701,10 +4701,10 @@ try { var query = new distributedData.Query(); query.deviceId('localDeviceId'); query.prefixKey("batch_test"); - kvStore.getEntries('localDeviceId', query, function (err,entrys) { + kvStore.getEntries('localDeviceId', query, function (err,entries) { console.log('getEntries success'); - console.log('entrys.length: ' + entrys.length); - console.log('entrys[0]: ' + JSON.stringify(entrys[0])); + console.log('entries.length: ' + entries.length); + console.log('entries[0]: ' + JSON.stringify(entries[0])); }) }); console.log('GetEntries success'); @@ -4759,7 +4759,7 @@ try { var query = new distributedData.Query(); query.deviceId('localDeviceId'); query.prefixKey("batch_test"); - kvStore.getEntries('localDeviceId', query).then((entrys) => { + kvStore.getEntries('localDeviceId', query).then((entries) => { console.log('getEntries success'); }).catch((err) => { console.log('getEntries fail ' + JSON.stringify(err)); -- GitLab From d2e4a365c56cbbeafedaa7f2b917cb3e48715b54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Wed, 20 Jul 2022 11:27:42 +0000 Subject: [PATCH 127/868] update en/application-dev/reference/apis/js-apis-distributed-data.md. Signed-off-by: ge-yafang --- .../apis/js-apis-distributed-data.md | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-distributed-data.md b/en/application-dev/reference/apis/js-apis-distributed-data.md index 154bba75b0..4087eddd3d 100644 --- a/en/application-dev/reference/apis/js-apis-distributed-data.md +++ b/en/application-dev/reference/apis/js-apis-distributed-data.md @@ -2453,10 +2453,10 @@ try { console.log('entries: ' + JSON.stringify(entries)); kvStore.putBatch(entries, async function (err,data) { console.log('putBatch success'); - kvStore.getEntries('batch_test_string_key', function (err,entrys) { + kvStore.getEntries('batch_test_string_key', function (err,entries) { console.log('getEntries success'); - console.log('entrys.length: ' + entrys.length); - console.log('entrys[0]: ' + JSON.stringify(entrys[0])); + console.log('entries.length: ' + entries.length); + console.log('entries[0]: ' + JSON.stringify(entries[0])); }); }); }catch(e) { @@ -2505,7 +2505,7 @@ try { console.log('entries: ' + JSON.stringify(entries)); kvStore.putBatch(entries).then(async (err) => { console.log('putBatch success'); - kvStore.getEntries('batch_test_string_key').then((entrys) => { + kvStore.getEntries('batch_test_string_key').then((entries) => { console.log('getEntries success'); console.log('PutBatch ' + JSON.stringify(entries)); }).catch((err) => { @@ -3245,10 +3245,10 @@ try { } kvStore.putBatch(entries, async function (err,data) { console.log('putBatch success'); - kvStore.getEntries('batch_test_number_key', function (err,entrys) { + kvStore.getEntries('batch_test_number_key', function (err,entries) { console.log('getEntries success'); - console.log('entrys.length: ' + entrys.length); - console.log('entrys[0]: ' + JSON.stringify(entrys[0])); + console.log('entries.length: ' + entries.length); + console.log('entries[0]: ' + JSON.stringify(entries[0])); }); }); }catch(e) { @@ -3297,12 +3297,12 @@ try { console.log('entries: ' + entries); kvStore.putBatch(entries).then(async (err) => { console.log('putBatch success'); - kvStore.getEntries('batch_test_string_key').then((entrys) => { + kvStore.getEntries('batch_test_string_key').then((entries) => { console.log('getEntries success'); - console.log('entrys.length: ' + entrys.length); - console.log('entrys[0]: ' + JSON.stringify(entrys[0])); - console.log('entrys[0].value: ' + JSON.stringify(entrys[0].value)); - console.log('entrys[0].value.value: ' + entrys[0].value.value); + console.log('entries.length: ' + entries.length); + console.log('entries[0]: ' + JSON.stringify(entries[0])); + console.log('entries[0].value: ' + JSON.stringify(entries[0].value)); + console.log('entries[0].value.value: ' + entries[0].value.value); }).catch((err) => { console.log('getEntries fail ' + JSON.stringify(err)); }); @@ -3353,10 +3353,10 @@ try { console.log('putBatch success'); const query = new distributedData.Query(); query.prefixKey("batch_test"); - kvStore.getEntries(query, function (err,entrys) { + kvStore.getEntries(query, function (err,entries) { console.log('getEntries success'); - console.log('entrys.length: ' + entrys.length); - console.log('entrys[0]: ' + JSON.stringify(entrys[0])); + console.log('entries.length: ' + entries.length); + console.log('entries[0]: ' + JSON.stringify(entries[0])); }); }); console.log('GetEntries success'); @@ -3409,7 +3409,7 @@ try { console.log('putBatch success'); const query = new distributedData.Query(); query.prefixKey("batch_test"); - kvStore.getEntries(query).then((entrys) => { + kvStore.getEntries(query).then((entries) => { console.log('getEntries success'); }).catch((err) => { console.log('getEntries fail ' + JSON.stringify(err)); @@ -4412,10 +4412,10 @@ try { console.log('entries: ' + entries); kvStore.putBatch(entries, async function (err,data) { console.log('putBatch success'); - kvStore.getEntries('localDeviceId', 'batch_test_string_key', function (err,entrys) { + kvStore.getEntries('localDeviceId', 'batch_test_string_key', function (err,entries) { console.log('getEntries success'); - console.log('entrys.length: ' + entrys.length); - console.log('entrys[0]: ' + JSON.stringify(entrys[0])); + console.log('entries.length: ' + entries.length); + console.log('entries[0]: ' + JSON.stringify(entries[0])); }); }); }catch(e) { @@ -4465,12 +4465,12 @@ try { console.log('entries: ' + entries); kvStore.putBatch(entries).then(async (err) => { console.log('putBatch success'); - kvStore.getEntries('localDeviceId', 'batch_test_string_key').then((entrys) => { + kvStore.getEntries('localDeviceId', 'batch_test_string_key').then((entries) => { console.log('getEntries success'); - console.log('entrys.length: ' + entrys.length); - console.log('entrys[0]: ' + JSON.stringify(entrys[0])); - console.log('entrys[0].value: ' + JSON.stringify(entrys[0].value)); - console.log('entrys[0].value.value: ' + entrys[0].value.value); + console.log('entries.length: ' + entries.length); + console.log('entries[0]: ' + JSON.stringify(entries[0])); + console.log('entries[0].value: ' + JSON.stringify(entries[0].value)); + console.log('entries[0].value.value: ' + entries[0].value.value); }).catch((err) => { console.log('getEntries fail ' + JSON.stringify(err)); }); @@ -4522,10 +4522,10 @@ try { const query = new distributedData.Query(); query.prefixKey("batch_test"); query.deviceId('localDeviceId'); - kvStore.getEntries(query, function (err,entrys) { + kvStore.getEntries(query, function (err,entries) { console.log('getEntries success'); - console.log('entrys.length: ' + entrys.length); - console.log('entrys[0]: ' + JSON.stringify(entrys[0])); + console.log('entries.length: ' + entries.length); + console.log('entries[0]: ' + JSON.stringify(entries[0])); }); }); console.log('GetEntries success'); @@ -4578,7 +4578,7 @@ try { console.log('putBatch success'); const query = new distributedData.Query(); query.prefixKey("batch_test"); - kvStore.getEntries(query).then((entrys) => { + kvStore.getEntries(query).then((entries) => { console.log('getEntries success'); }).catch((err) => { console.log('getEntries fail ' + JSON.stringify(err)); @@ -4633,10 +4633,10 @@ try { var query = new distributedData.Query(); query.deviceId('localDeviceId'); query.prefixKey("batch_test"); - kvStore.getEntries('localDeviceId', query, function (err,entrys) { + kvStore.getEntries('localDeviceId', query, function (err,entries) { console.log('getEntries success'); - console.log('entrys.length: ' + entrys.length); - console.log('entrys[0]: ' + JSON.stringify(entrys[0])); + console.log('entries.length: ' + entries.length); + console.log('entries[0]: ' + JSON.stringify(entries[0])); }) }); console.log('GetEntries success'); @@ -4691,7 +4691,7 @@ try { var query = new distributedData.Query(); query.deviceId('localDeviceId'); query.prefixKey("batch_test"); - kvStore.getEntries('localDeviceId', query).then((entrys) => { + kvStore.getEntries('localDeviceId', query).then((entries) => { console.log('getEntries success'); }).catch((err) => { console.log('getEntries fail ' + JSON.stringify(err)); -- GitLab From 2ec693a60ae880eb21bdd2fa99a820c413333d29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Wed, 20 Jul 2022 11:34:48 +0000 Subject: [PATCH 128/868] update en/application-dev/reference/apis/js-apis-distributed-data.md. Signed-off-by: ge-yafang --- en/application-dev/reference/apis/js-apis-distributed-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/application-dev/reference/apis/js-apis-distributed-data.md b/en/application-dev/reference/apis/js-apis-distributed-data.md index 4087eddd3d..6832fc2fd5 100644 --- a/en/application-dev/reference/apis/js-apis-distributed-data.md +++ b/en/application-dev/reference/apis/js-apis-distributed-data.md @@ -775,7 +775,7 @@ let kvStore; try { let resultSet; kvStore.getResultSet('batch_test_string_key').then((result) => { - console.log('getResultSet succeeed.'); + console.log('getResultSet succeeded.'); resultSet = result; }).catch((err) => { console.log('getResultSet failed: ' + err); -- GitLab From bc0ae87f90b9df9cf87f0b2a19672b4b59a3c511 Mon Sep 17 00:00:00 2001 From: zhangxin_T Date: Thu, 21 Jul 2022 08:21:12 +0800 Subject: [PATCH 129/868] add stage model use demo Signed-off-by: zhangxin_T --- .../apis/js-apis-backgroundTaskManager.md | 8 +- .../background-task-dev-guide.md | 194 ++++++++++++++++++ 2 files changed, 198 insertions(+), 4 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-backgroundTaskManager.md b/zh-cn/application-dev/reference/apis/js-apis-backgroundTaskManager.md index 72df09a27a..41dd8c9708 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-backgroundTaskManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-backgroundTaskManager.md @@ -145,7 +145,7 @@ startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: Want **参数**: | 参数名 | 类型 | 必填 | 说明 | | --------- | ---------------------------------- | ---- | ------------------------ | -| context | [Context](js-apis-Context.md) | 是 | 应用运行的上下文。 | +| context | Context | 是 | 应用运行的上下文。
FA模型的应用Context定义见[Context](js-apis-Context.md)。
Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 | | bgMode | [BackgroundMode](#backgroundmode8) | 是 | 向系统申请的后台模式。 | | wantAgent | [WantAgent](js-apis-wantAgent.md) | 是 | 通知参数,用于指定长时任务通知点击后跳转的界面。 | | callback | AsyncCallback<void> | 是 | callback形式返回启动长时任务的结果。 | @@ -197,7 +197,7 @@ startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: Want | 参数名 | 类型 | 必填 | 说明 | | --------- | ---------------------------------- | ---- | ----------------------- | -| context | [Context](js-apis-Context.md) | 是 | 应用运行的上下文。 | +| context | Context | 是 | 应用运行的上下文。
FA模型的应用Context定义见[Context](js-apis-Context.md)。
Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 | | bgMode | [BackgroundMode](#backgroundmode8) | 是 | 向系统申请的后台模式。 | | wantAgent | [WantAgent](js-apis-wantAgent.md) | 是 | 通知参数,用于指定长时任务通知点击跳转的界面。 | @@ -246,7 +246,7 @@ stopBackgroundRunning(context: Context, callback: AsyncCallback<void>): vo **参数**: | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------- | ---- | ---------------------- | -| context | [Context](js-apis-Context.md) | 是 | 应用运行的上下文。 | +| context | Context | 是 | 应用运行的上下文。
FA模型的应用Context定义见[Context](js-apis-Context.md)。
Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 | | callback | AsyncCallback<void> | 是 | callback形式返回启动长时任务的结果。 | **示例**: @@ -277,7 +277,7 @@ stopBackgroundRunning(context: Context): Promise<void> **参数**: | 参数名 | 类型 | 必填 | 说明 | | ------- | ----------------------------- | ---- | --------- | -| context | [Context](js-apis-Context.md) | 是 | 应用运行的上下文。 | +| context | Context | 是 | 应用运行的上下文。
FA模型的应用Context定义见[Context](js-apis-Context.md)。
Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 | **返回值** | 类型 | 说明 | diff --git a/zh-cn/application-dev/task-management/background-task-dev-guide.md b/zh-cn/application-dev/task-management/background-task-dev-guide.md index 8652b3012d..ca4bf811d6 100644 --- a/zh-cn/application-dev/task-management/background-task-dev-guide.md +++ b/zh-cn/application-dev/task-management/background-task-dev-guide.md @@ -116,6 +116,8 @@ ohos.permission.KEEP_BACKGROUND_RUNNING ### 开发步骤 +基于FA模型: + 1. 新建Api Version 8的工程后,在工程目录中右键选择“new” -> “Ability” -> “Service Ability” 快速创建Service Ability组件。并在config.json文件中配置长时任务权限、后台模式类型,其中Ability类型为“service”。 ``` @@ -182,7 +184,75 @@ ohos.permission.KEEP_BACKGROUND_RUNNING ``` +基于Stage模型: + +1. 新建Api Version 9的工程后,在工程目录中右键选择“New” -> “Ability” 快速创建Ability组件。并在module.json5文件中配置长时任务权限、后台模式类型。 + + ``` + "module": { + "abilities": [ + { + "backgroundModes": [ + "dataTransfer", + "location" + ], // 后台模式类型 + } + ], + "reqPermissions": [ + { + "name": "ohos.permission.KEEP_BACKGROUND_RUNNING" // 长时任务权限 + } + ] + } + ``` + +2. 申请长时任务 + + ```js + import backgroundTaskManager from '@ohos.backgroundTaskManager'; + import wantAgent from '@ohos.wantAgent'; + + let wantAgentInfo = { + wants: [ + { + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.MainAbility" + } + ], + operationType: wantAgent.OperationType.START_ABILITY, + requestCode: 0, + wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] + }; + + // 通过wantAgent模块的getWantAgent方法获取WantAgent对象 + wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { + backgroundTaskManager.startBackgroundRunning(this.context, + backgroundTaskManager.BackgroundMode.DATA_TRANSFER, wantAgentObj).then(() => { + console.info("Operation startBackgroundRunning succeeded"); + }).catch((err) => { + console.error("Operation startBackgroundRunning failed Cause: " + err); + }); + }); + ``` + +3. 停止长时任务 + + ```js + import backgroundTaskManager from '@ohos.backgroundTaskManager'; + + backgroundTaskManager.stopBackgroundRunning(this.context).then(() => { + console.info("Operation stopBackgroundRunning succeeded"); + }).catch((err) => { + console.error("Operation stopBackgroundRunning failed Cause: " + err); + }); + + ``` + + ### 开发实例 + +基于FA模型: + 基于FA的Service Ability使用,参考[ServiceAbility开发指导](../ability/fa-serviceability.md)。 当不需要与后台执行的长时任务交互时,可以采用startAbility()方法启动Service Ability。并在Service Ability的onStart回调方法中,调用长时任务的申请接口,声明此服务需要在后台长时运行。当任务执行完,再调用长时任务取消接口,及时释放资源。 @@ -285,6 +355,130 @@ export default { }; ``` +基于Stage模型: + +Stage模型的相关信息参考[Stage模型综述](../ability/stage-brief.md)。 +当应用需要在后台执行长时任务时,使Ability在后台被创建并运行。使用方式参考[Call调用开发指导](../ability/stage-call.md)。 + +```js +import Ability from '@ohos.application.Ability' +import backgroundTaskManager from '@ohos.backgroundTaskManager'; +import wantAgent from '@ohos.wantAgent'; + +let mContext = null; + +function startBackgroundRunning() { + let wantAgentInfo = { + // 点击通知后,将要执行的动作列表 + wants: [ + { + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.MainAbility" + } + ], + // 点击通知后,动作类型 + operationType: wantAgent.OperationType.START_ABILITY, + // 使用者自定义的一个私有值 + requestCode: 0, + // 点击通知后,动作执行属性 + wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] + }; + + // 通过wantAgent模块的getWantAgent方法获取WantAgent对象 + wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { + backgroundTaskManager.startBackgroundRunning(mContext, + backgroundTaskManager.BackgroundMode.DATA_TRANSFER, wantAgentObj).then(() => { + console.info("Operation startBackgroundRunning succeeded"); + }).catch((err) => { + console.error("Operation startBackgroundRunning failed Cause: " + err); + }); + }); +} + +function stopContinuousTask() { + backgroundTaskManager.stopBackgroundRunning(mContext).then(() => { + console.info("Operation stopBackgroundRunning succeeded"); + }).catch((err) => { + console.error("Operation stopBackgroundRunning failed Cause: " + err); + }); +} + +class MySequenceable { + num: number = 0; + str: String = ""; + + constructor(num, string) { + this.num = num; + this.str = string; + } + + marshalling(messageParcel) { + messageParcel.writeInt(this.num); + messageParcel.writeString(this.str); + return true; + } + + unmarshalling(messageParcel) { + this.num = messageParcel.readInt(); + this.str = messageParcel.readString(); + return true; + } +} + +function sendMsgCallback(data) { + console.info('BgTaskAbility funcCallBack is called ' + data) + let receivedData = new Mysequenceable(0, "") + data.readSequenceable(receivedData) + console.info(`receiveData[${receivedData.num}, ${receivedData.str}]`) + if (receivedData.str === 'start_bgtask') { + startContinuousTask() + } else if (receivedData.str === 'stop_bgtask') { + stopContinuousTask(); + } + return new Mysequenceable(10, "Callee test"); +} + +export default class BgTaskAbility extends Ability { + onCreate(want, launchParam) { + console.info("[Demo] BgTaskAbility onCreate") + this.callee.on("test", sendMsgCallback); + + try { + this.callee.on(MSG_SEND_METHOD, sendMsgCallback) + } catch (error) { + console.error(`${MSG_SEND_METHOD} register failed with error ${JSON.stringify(error)}`) + } + mContext = this.context; + } + + onDestroy() { + console.info("[Demo] BgTaskAbility onDestroy") + } + + onWindowStageCreate(windowStage) { + console.info("[Demo] BgTaskAbility onWindowStageCreate") + + windowStage.loadContent("pages/second").then((data)=> { + console.info(`load content succeed with data ${JSON.stringify(data)}`) + }).catch((error)=>{ + console.error(`load content failed with error ${JSON.stringify(error)}`) + }) + } + + onWindowStageDestroy() { + console.info("[Demo] BgTaskAbility onWindowStageDestroy") + } + + onForeground() { + console.info("[Demo] BgTaskAbility onForeground") + } + + onBackground() { + console.info("[Demo] BgTaskAbility onBackground") + } +}; +``` + ## 相关实例 基于后台任务管理,有以下相关实例可供参考: -- GitLab From cea301bf42c61f2e9dd36c29eeafffbfabe0b6c7 Mon Sep 17 00:00:00 2001 From: xu-rui-w Date: Thu, 21 Jul 2022 09:57:36 +0800 Subject: [PATCH 130/868] =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=95=B4=E4=BF=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xu-rui-w --- .../reference/apis/js-apis-image.md | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-image.md b/zh-cn/application-dev/reference/apis/js-apis-image.md index 43cbc6de32..a599623f3b 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-image.md +++ b/zh-cn/application-dev/reference/apis/js-apis-image.md @@ -949,7 +949,7 @@ createImageSource(uri: string, options: SourceOptions): ImageSource **示例:** ```js -、、、、、、、、、、、 +const imageSourceApi = image.createImageSource('/sdcard/test.jpg'); ``` ## image.createImageSource7+ @@ -1002,7 +1002,7 @@ createImageSource(fd: number, options: SourceOptions): ImageSource **示例:** ```js -。。。。。。。。。。。。。。。。。。。。。 +const imageSourceApi = image.createImageSource(fd); ``` ## image.createImageSource9+ @@ -1050,7 +1050,8 @@ createImageSource(buf: ArrayBuffer, options: SourceOptions): ImageSource **示例:** ```js -......................... +const data = new ArrayBuffer(112); +const imageSourceApi = image.createImageSource(data); ``` ## image.CreateIncrementalSource9+ @@ -1076,7 +1077,8 @@ CreateIncrementalSource(buf: ArrayBuffer): ImageSource **示例:** ```js -。。。。。。。。。。。。。。。。。。 +const buf = new ArrayBuffer(96); +const imageSourceApi = image.CreateIncrementalSource(buf); ``` ## image.CreateIncrementalSource9+ @@ -2188,15 +2190,15 @@ ImageSource的初始化选项。 PixelMap的初始化选项。 -**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Code +**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core -| 名称 | 类型 | 可读 | 可写 | 说明 | -| ---------------------- | ---------------------------------- | ---- | ---- | -------------- | -| alphaType9+ | [AlphaType](#alphatype9) | 是 | 是 | 透明度。 | -| editable | boolean | 是 | 是 | 是否可编辑。 | -| pixelFormat | [PixelMapFormat](#pixelmapformat7) | 是 | 是 | 像素格式。 | -| scaleMode9+ | [ScaleMode](#scalemode9) | 是 | 是 | 缩略值。 | -| size | [Size](#size) | 是 | 是 | 创建图片大小。 | +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------------------ | ---------------------------------- | ---- | ---- | -------------- | +| alphaType9+ | [AlphaType](#alphatype9) | 是 | 是 | 透明度。 | +| editable8+ | boolean | 是 | 是 | 是否可编辑。 | +| pixelFormat8+ | [PixelMapFormat](#pixelmapformat7) | 是 | 是 | 像素格式。 | +| scaleMode9+ | [ScaleMode](#scalemode9) | 是 | 是 | 缩略值。 | +| size8+ | [Size](#size) | 是 | 是 | 创建图片大小。 | ## DecodingOptions7+ -- GitLab From f76e5c52bb58791d3ada1dc8704215d372ed2bb8 Mon Sep 17 00:00:00 2001 From: zhangxin_T Date: Thu, 21 Jul 2022 10:35:53 +0800 Subject: [PATCH 131/868] bugfix Signed-off-by: zhangxin_T --- .../task-management/background-task-dev-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/task-management/background-task-dev-guide.md b/zh-cn/application-dev/task-management/background-task-dev-guide.md index ca4bf811d6..283ac69943 100644 --- a/zh-cn/application-dev/task-management/background-task-dev-guide.md +++ b/zh-cn/application-dev/task-management/background-task-dev-guide.md @@ -367,7 +367,7 @@ import wantAgent from '@ohos.wantAgent'; let mContext = null; -function startBackgroundRunning() { +function startContinuousTask() { let wantAgentInfo = { // 点击通知后,将要执行的动作列表 wants: [ -- GitLab From 32bf8fbfb898f947f84e04f302c5c507dc3480a8 Mon Sep 17 00:00:00 2001 From: wangkai Date: Thu, 21 Jul 2022 10:54:35 +0800 Subject: [PATCH 132/868] =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangkai --- .../reference/apis/js-apis-distributed-data.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md b/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md index 52d2eb3016..bd15244004 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md +++ b/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md @@ -4164,7 +4164,7 @@ kvStore.off('dataChange', function (data) { ### sync7+ -sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void +sync(deviceIds: string[], mode: SyncMode, DelayMs?: number): void 在手动同步方式下,触发数据库同步。关于分布式数据服务的同步方式说明,请见[分布式数据服务概述](../../database/database-mdds-overview.md)。 @@ -4176,9 +4176,9 @@ sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| deviceIdList |string[] | 是 |同一组网环境下,需要同步的设备的deviceId列表。 | +| deviceIds |string[] | 是 |同一组网环境下,需要同步的设备的deviceId列表。 | | mode |[SyncMode](#syncmode) | 是 |同步模式。 | -| allowedDelayMs |number | 否 |可选参数,允许延时时间,单位:ms(毫秒)。 | +| DelayMs |number | 否 |可选参数,允许延时时间,单位:ms(毫秒)。 | **示例:** @@ -5459,7 +5459,7 @@ try { ### sync8+ ### -sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void +sync(deviceIds: string[], mode: SyncMode, DelayMs?: number): void 在手动同步方式下,触发数据库同步。关于分布式数据服务的同步方式说明,请见[分布式数据服务概述](../../database/database-mdds-overview.md)。 @@ -5471,9 +5471,9 @@ sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| deviceIdList |string[] | 是 |需要同步DeviceKvStore数据库的设备ID列表。 | +| deviceIds |string[] | 是 |需要同步DeviceKvStore数据库的设备ID列表。 | | mode |[SyncMode](#syncmode) | 是 |同步模式。 | -| allowedDelayMs |number | 否 |可选参数,允许延时时间,单位:ms(毫秒)。 | +| DelayMs |number | 否 |可选参数,允许延时时间,单位:ms(毫秒)。 | **示例:** -- GitLab From e790994ad707b55d5989a4e5c2881326c23bf9cc Mon Sep 17 00:00:00 2001 From: Austin Date: Thu, 21 Jul 2022 03:09:37 +0000 Subject: [PATCH 133/868] update zh-cn/device-dev/kernel/kernel-mini-basic-ipc-queue.md. Signed-off-by: Austin23 --- zh-cn/device-dev/kernel/kernel-mini-basic-ipc-queue.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/kernel/kernel-mini-basic-ipc-queue.md b/zh-cn/device-dev/kernel/kernel-mini-basic-ipc-queue.md index 8ee81f8ae6..16178ecada 100644 --- a/zh-cn/device-dev/kernel/kernel-mini-basic-ipc-queue.md +++ b/zh-cn/device-dev/kernel/kernel-mini-basic-ipc-queue.md @@ -215,7 +215,7 @@ UINT32 ExampleQueue(VOID) printf("create queue failure, error: %x\n", ret); } - printf("create the queue succes.\n"); + printf("create the queue success.\n"); LOS_TaskUnlock(); return ret; } -- GitLab From 5ece1eb836954783c2bcf6cfbdd4b15a4a41bd54 Mon Sep 17 00:00:00 2001 From: Austin Date: Thu, 21 Jul 2022 03:31:26 +0000 Subject: [PATCH 134/868] update zh-cn/device-dev/kernel/kernel-small-basic-trans-user-signal.md. Signed-off-by: Austin23 --- zh-cn/device-dev/kernel/kernel-small-basic-trans-user-signal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/kernel/kernel-small-basic-trans-user-signal.md b/zh-cn/device-dev/kernel/kernel-small-basic-trans-user-signal.md index a2f3244ecb..aaa1f06153 100644 --- a/zh-cn/device-dev/kernel/kernel-small-basic-trans-user-signal.md +++ b/zh-cn/device-dev/kernel/kernel-small-basic-trans-user-signal.md @@ -44,7 +44,7 @@ > > 发送信号: > -> a. 进程接收信号存在默认行为,单不支持POSIX标准所给出的STOP及COTINUE、COREDUMP功能。 +> a. 进程接收信号存在默认行为,单不支持POSIX标准所给出的STOP及CONTINUE、COREDUMP功能。 > > b. 进程无法屏蔽SIGSTOP、SIGKILL、SIGCONT信号。 > -- GitLab From a8699da4c6219ad1cf760f52c766c09b20a84ac3 Mon Sep 17 00:00:00 2001 From: shawn_he Date: Thu, 21 Jul 2022 11:42:57 +0800 Subject: [PATCH 135/868] update doc Signed-off-by: shawn_he --- .../reference/apis/js-apis-net-connection.md | 128 ++++++++++++++++-- .../reference/apis/js-apis-observer.md | 40 +++--- .../reference/apis/js-apis-radio.md | 10 +- .../reference/apis/js-apis-sim.md | 14 +- .../reference/apis/js-apis-sms.md | 4 +- .../reference/apis/js-apis-telephony-data.md | 20 +-- 6 files changed, 159 insertions(+), 57 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-net-connection.md b/en/application-dev/reference/apis/js-apis-net-connection.md index 6e1eab82db..ec63d11121 100644 --- a/en/application-dev/reference/apis/js-apis-net-connection.md +++ b/en/application-dev/reference/apis/js-apis-net-connection.md @@ -1,5 +1,6 @@ # Network Connection Management +The network connection management module provides basic network management capabilities. You can obtain the default active data network or the list of all active data networks, enable or disable the airplane mode, and obtain network capability information. > **NOTE** > @@ -79,7 +80,7 @@ Checks whether the default data network is activated. This API uses an asynchron ```js connection.hasDefaultNet(function (error, has) { console.log(JSON.stringify(error)) - console.log(has) + console.log('has: ' + has) }) ``` @@ -101,7 +102,7 @@ Checks whether the default data network is activated. This API uses a promise to ```js connection.hasDefaultNet().then(function (has) { - console.log(has) + console.log('has: ' + has) }) ``` @@ -167,7 +168,7 @@ Obtains connection properties of the network corresponding to given network hand | Name | Type | Mandatory| Description | | --------- | ------------------------------------------------------------ | ---- | ---------------- | -| netHandle | [NetHandle](#nethandle) | Yes | Network handle.| +| netHandle | [NetHandle](#nethandle) | Yes | Handle of the data network.| | callback | AsyncCallback\<[ConnectionProperties](#connectionproperties)> | Yes | Callback used to return the result. | **Example** @@ -195,7 +196,7 @@ Obtains connection properties of the network corresponding to **netHandle**. Thi | Name | Type | Mandatory| Description | | --------- | ----------------------- | ---- | ---------------- | -| netHandle | [NetHandle](#nethandle) | Yes | Network handle.| +| netHandle | [NetHandle](#nethandle) | Yes | Handle of the data network.| **Return Value** @@ -227,7 +228,7 @@ Obtains capability information of the network corresponding to **netHandle**. Th | Name | Type | Mandatory| Description | | --------- | --------------------------------------------------- | ---- | ---------------- | -| netHandle | [NetHandle](#nethandle) | Yes | Network handle.| +| netHandle | [NetHandle](#nethandle) | Yes | Handle of the data network.| | callback | AsyncCallback\<[NetCapabilities](#netcapabilities)> | Yes | Callback used to return the result. | **Example** @@ -255,7 +256,7 @@ Obtains capability information of the network corresponding to **netHandle**. Th | Name | Type | Mandatory| Description | | --------- | ----------------------- | ---- | ---------------- | -| netHandle | [NetHandle](#nethandle) | Yes | Network handle.| +| netHandle | [NetHandle](#nethandle) | Yes | Handle of the data network.| **Return Value** @@ -446,6 +447,105 @@ connection.getAddressesByName(host).then(function (addresses) { }) ``` + +## connection.enableAirplaneMode + +enableAirplaneMode(callback: AsyncCallback\): void + +Enables the airplane mode. This API uses an asynchronous callback to return the result. + +This is a system API. + +**System capability**: SystemCapability.Communication.NetManager.Core + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ------------------------------------------------- | ---- | ------------------ | +| callback | AsyncCallback\ | Yes | Callback used to return the result. | + +**Example** + +```js +connection.enableAirplaneMode(function (error) { + console.log(JSON.stringify(error)) +}) +``` + +## connection.enableAirplaneMode + +enableAirplaneMode(): Promise\ + +Enables the airplane mode. This API uses a promise to return the result. + +This is a system API. + +**System capability**: SystemCapability.Communication.NetManager.Core + +**Return value** + +| Type | Description | +| ------------------------------------------- | ----------------------------- | +| Promise\ | Promise used to return the result.| + +**Example** + +```js +connection.enableAirplaneMode().then(function (error) { + console.log(JSON.stringify(error)) +}) +``` + + +## connection.disableAirplaneMode + +disableAirplaneMode(callback: AsyncCallback\): void + +Disables the airplane mode. This API uses an asynchronous callback to return the result. + +This is a system API. + +**System capability**: SystemCapability.Communication.NetManager.Core + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ------------------------------------------------- | ---- | ------------------ | +| callback | AsyncCallback\ | Yes | Callback used to return the result. | + +**Example** + +```js +connection.disableAirplaneMode(function (error) { + console.log(JSON.stringify(error)) +}) +``` + +## connection.disableAirplaneMode + +disableAirplaneMode(): Promise\ + +Disables the airplane mode. This API uses a promise to return the result. + +This is a system API. + +**System capability**: SystemCapability.Communication.NetManager.Core + +**Return value** + +| Type | Description | +| ------------------------------------------- | ----------------------------- | +| Promise\ | Promise used to return the result.| + +**Example** + +```js +connection.disableAirplaneMode().then(function (error) { + console.log(JSON.stringify(error)) +}) +``` + + ## connection.createNetConnection createNetConnection(netSpecifier?: NetSpecifier, timeout?: number): NetConnection @@ -476,7 +576,7 @@ let netConnection = connection.createNetConnection() // Cellular network let netConnectionCellular = connection.createNetConnection({ netCapabilities: { - bearerTypes: [NetBearType.BEARER_CELLULAR] + bearerTypes: [connection.NetBearType.BEARER_CELLULAR] } }) ``` @@ -497,7 +597,7 @@ Registers a listener for **netAvailable** events. | Name | Type | Mandatory| Description | | -------- | ---------------------------------- | ---- | ------------------------------------------------------------ | -| type | string | Yes | Event type. The value is fixed to **netAvailable**.
**netAvailable**: event indicating that the data network is available.| +| type | string | Yes | Event type. The value is fixed at **netAvailable**.
**netAvailable**: event indicating that the data network is available.| | callback | Callback\<[NetHandle](#nethandle)> | Yes | Callback used to return the result. | **Example** @@ -520,7 +620,7 @@ Registers a listener for **netCapabilitiesChange** events. | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | -| type | string | Yes | Event type. The value is fixed to **netCapabilitiesChange**.
**netCapabilitiesChange**: event indicating that he network capabilities have changed.| +| type | string | Yes | Event type. The value is fixed at **netCapabilitiesChange**.
**netCapabilitiesChange**: event indicating that network capabilities have changed.| | callback | Callback<{ netHandle: [NetHandle](#nethandle), netCap: [NetCapabilities](#netcapabilities) }> | Yes | Callback used to return the result. | **Example** @@ -543,7 +643,7 @@ Registers a listener for **netConnectionPropertiesChange** events. | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | -| type | string | Yes | Event type. The value is fixed to **netConnectionPropertiesChange**.
**netConnectionPropertiesChange**: event indicating that network connection properties have changed.| +| type | string | Yes | Event type. The value is fixed at **netConnectionPropertiesChange**.
**netConnectionPropertiesChange**: event indicating that network connection properties have changed.| | callback | Callback<{ netHandle: [NetHandle](#nethandle), connectionProperties: [ConnectionProperties](#connectionproperties) }> | Yes | Callback used to return the result. | **Example** @@ -566,7 +666,7 @@ Registers a listener for **netBlockStatusChange** events. | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | -| type | string | Yes | Event type. The value is fixed to **netBlockStatusChange**.
**netBlockStatusChange**: event indicating a change in the network blocking status.| +| type | string | Yes | Event type. The value is fixed at **netBlockStatusChange**.
**netBlockStatusChange**: event indicating a change in the network blocking status.| | callback | Callback<{ netHandle: [NetHandle](#nethandle), blocked: boolean }> | Yes | Callback used to return the result. | **Example** @@ -589,7 +689,7 @@ Registers a listener for **netLost** events. | Name | Type | Mandatory| Description | | -------- | ---------------------------------- | ---- | ------------------------------------------------------------ | -| type | string | Yes | Event type. The value is fixed to **netLost**.
netLost: event indicating that the network is interrupted or normally disconnected.| +| type | string | Yes | Event type. The value is fixed at **netLost**.
netLost: event indicating that the network is interrupted or normally disconnected.| | callback | Callback\<[NetHandle](#nethandle)> | Yes | Callback used to return the result. | **Example** @@ -613,7 +713,7 @@ Registers a listener for **netUnavailable** events. | Name | Type | Mandatory| Description | | -------- | --------------- | ---- | ------------------------------------------------------------ | -| type | string | Yes | Event type. The value is fixed to **netUnavailable**.
**netUnavailable**: event indicating that the network is unavailable.| +| type | string | Yes | Event type. The value is fixed at **netUnavailable**.
**netUnavailable**: event indicating that the network is unavailable.| | callback | Callback\ | Yes | Callback used to return the result. | **Example** @@ -908,4 +1008,4 @@ Defines the network address. | ------- | ------ | ------------------------------ | | address | string | Network address. | | family | number | Address family identifier. The value is **1** for IPv4 and **2** for IPv6. The default value is **1**.| -| port | number | Port number. The value ranges from **0** to **65535**. | \ No newline at end of file +| port | number | Port number. The value ranges from **0** to **65535**. | diff --git a/en/application-dev/reference/apis/js-apis-observer.md b/en/application-dev/reference/apis/js-apis-observer.md index b68d1dc35b..a6fcacc433 100644 --- a/en/application-dev/reference/apis/js-apis-observer.md +++ b/en/application-dev/reference/apis/js-apis-observer.md @@ -1,5 +1,7 @@ # Observer +The observer module provides event subscription management functions. You can register or unregister an observer that listens for the following events: network status change, signal status change, call status change, cellular data connection status, uplink and downlink data flow status of cellular data services, and SIM status change. + >**NOTE** > >The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. @@ -15,7 +17,7 @@ import observer from '@ohos.telephony.observer' on\(type: \'networkStateChange\', callback: Callback\): void; -Registers an observer for network status change events. This API uses an asynchronous callback to return the execution result. +Registers an observer for network status change events. This API uses an asynchronous callback to return the result. **Required permission**: ohos.permission.GET_NETWORK_INFO @@ -41,7 +43,7 @@ observer.on('networkStateChange', data =>{ on\(type: \'networkStateChange\', options: { slotId: number }, callback: Callback\): void; -Registers an observer for network status change events of the SIM card in the specified slot. This API uses an asynchronous callback to return the execution result. +Registers an observer for network status change events of the SIM card in the specified slot. This API uses an asynchronous callback to return the result. **Required permission**: ohos.permission.GET_NETWORK_INFO @@ -68,9 +70,7 @@ observer.on('networkStateChange', {slotId: 0}, data =>{ off\(type: \'networkStateChange\', callback?: Callback\): void; -Unregisters the observer for network status change events. This API uses an asynchronous callback to return the execution result. - -**Required permission**: ohos.permission.GET_NETWORK_INFO +Unregisters the observer for network status change events. This API uses an asynchronous callback to return the result. >**NOTE** > @@ -101,7 +101,7 @@ observer.off('networkStateChange'); on\(type: \'signalInfoChange\', callback: Callback\>): void; -Registers an observer for signal status change events. This API uses an asynchronous callback to return the execution result. +Registers an observer for signal status change events. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Telephony.StateRegistry @@ -125,7 +125,7 @@ observer.on('signalInfoChange', data =>{ on\(type: \'signalInfoChange\', options: { slotId: number }, callback: Callback\>): void; -Registers an observer for signal status change events of the SIM card in the specified slot. This API uses an asynchronous callback to return the execution result. +Registers an observer for signal status change events of the SIM card in the specified slot. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Telephony.StateRegistry @@ -150,7 +150,7 @@ observer.on('signalInfoChange', {slotId: 0}, data =>{ off\(type: \'signalInfoChange\', callback?: Callback\>): void; -Unregisters the observer for signal status change events. This API uses an asynchronous callback to return the execution result. +Unregisters the observer for signal status change events. This API uses an asynchronous callback to return the result. >**NOTE** > @@ -182,9 +182,7 @@ observer.off('signalInfoChange'); on(type: 'callStateChange', callback: Callback\<{ state: CallState, number: string }\>): void; -Registers an observer for call status change events. This API uses an asynchronous callback to return the execution result. - -**Required permission**: ohos.permission.READ_CALL_LOG +Registers an observer for call status change events. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Telephony.StateRegistry @@ -208,9 +206,7 @@ observer.on('callStateChange', value =>{ on(type: 'callStateChange', options: { slotId: number }, callback: Callback<{ state:CallState, number: string }>): void; -Registers an observer for call status change events. This API uses an asynchronous callback to return the execution result. - -**Required permission**: ohos.permission.READ_CALL_LOG +Registers an observer for call status change events. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Telephony.StateRegistry @@ -235,9 +231,7 @@ observer.on('callStateChange', {slotId: 0}, value =>{ off(type: 'callStateChange', callback?: Callback<{ state: CallState, number: string }>): void; -Unregisters the observer for call status change events. This API uses an asynchronous callback to return the execution result. - -**Required permission**: ohos.permission.READ_CALL_LOG +Unregisters the observer for call status change events. This API uses an asynchronous callback to return the result. >**NOTE** > @@ -269,7 +263,7 @@ observer.off('callStateChange'); on\(type: 'cellularDataConnectionStateChange', callback: Callback\<{ state: DataConnectState, network: RatType}\>\): void; -Registers an observer for connection status change events of the cellular data link. This API uses an asynchronous callback to return the result. +Registers an observer for connection status change events of the cellular data connection.This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Telephony.StateRegistry @@ -277,7 +271,7 @@ Registers an observer for connection status change events of the cellular data l | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | -| type | string | Yes | Connection status change event of the cellular data link. | +| type | string | Yes | Connection status change event of the cellular data connection. | | callback | Callback\<{ state: [DataConnectState](js-apis-telephony-data.md#dataconnectstate), network: [RatType](js-apis-radio.md#radiotechnology) }\> | Yes | Callback used to return the result. For details, see [DataConnectState](js-apis-telephony-data.md#dataconnectstate) and [RadioTechnology](js-apis-radio.md#radiotechnology).| **Example** @@ -293,7 +287,7 @@ observer.on('cellularDataConnectionStateChange', value =>{ on\(type: 'cellularDataConnectionStateChange', options: { slotId: number }, callback: Callback\<{ state: DataConnectState, network: RatType }\>\): void; -Registers an observer for connection status change events of the cellular data link over the SIM card in the specified slot. This API uses an asynchronous callback to return the result. +Registers an observer for connection status change events of the cellular data connection over the SIM card in the specified slot. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Telephony.StateRegistry @@ -301,7 +295,7 @@ Registers an observer for connection status change events of the cellular data l | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | -| type | string | Yes | Connection status change event of the cellular data link. | +| type | string | Yes | Connection status change event of the cellular data connection. | | slotId | number | Yes | Card slot ID.
- **0**: card slot 1
- **1**: card slot 2 | | callback | Callback\<{ state: [DataConnectState](js-apis-telephony-data.md#dataconnectstate), network: [RatType](js-apis-radio.md#radiotechnology) }\> | Yes | Callback used to return the result. For details, see [DataConnectState](js-apis-telephony-data.md#dataconnectstate) and [RadioTechnology](js-apis-radio.md#radiotechnology).| @@ -318,7 +312,7 @@ observer.on('cellularDataConnectionStateChange', {slotId: 0}, value =>{ off\(type: 'cellularDataConnectionStateChange', callback?: Callback\<{ state: DataConnectState, network: RatType}\>\): void; -Unregisters the observer for connection status change events of the cellular data link. This API uses an asynchronous callback to return the result. +Unregisters the observer for connection status change events of the cellular data connection.This API uses an asynchronous callback to return the result. >**NOTE** > @@ -330,7 +324,7 @@ Unregisters the observer for connection status change events of the cellular dat | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | -| type | string | Yes | Connection status change event of the cellular data link. | +| type | string | Yes | Connection status change event of the cellular data connection. | | callback | Callback\<{ state: [DataConnectState](js-apis-telephony-data.md#dataconnectstate), network: [RatType](js-apis-radio.md#radiotechnology) }\> | No | Callback used to return the result. For details, see [DataConnectState](js-apis-telephony-data.md#dataconnectstate) and [RadioTechnology](js-apis-radio.md#radiotechnology).| **Example** diff --git a/en/application-dev/reference/apis/js-apis-radio.md b/en/application-dev/reference/apis/js-apis-radio.md index b8cbdcc23c..5b371ea072 100644 --- a/en/application-dev/reference/apis/js-apis-radio.md +++ b/en/application-dev/reference/apis/js-apis-radio.md @@ -1,5 +1,7 @@ # Radio +The radio module provides basic network search management functions. You can obtain the radio access technology (RAT) used in the CS and PS domains, network status, current network selection mode, ISO country code of the registered network, ID of the slot in which the primary card is located, list of signal strengths of the registered network, carrier name, and IMEI, MEID, and unique device ID of the SIM card in the specified slot. Besides, you can check whether the current device supports 5G\(NR\) and whether the radio service is enabled on the primary SIM card. + >**NOTE** > >The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. @@ -15,7 +17,7 @@ import radio from '@ohos.telephony.radio' getRadioTech\(slotId: number, callback: AsyncCallback<\{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology\}\>\): void -Obtains the radio access technology (RAT) used by the CS and PS domains for the SIM card in the specified slot. This API uses an asynchronous callback to return the result. +Obtains the RAT used in the CS and PS domains for the SIM card in the specified slot. This API uses an asynchronous callback to return the result. **Required permission**: ohos.permission.GET_NETWORK_INFO @@ -42,7 +44,7 @@ radio.getRadioTech(slotId, (err, data) =>{ getRadioTech\(slotId: number\): Promise<\{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology\}\> -Obtains the RAT used by the CS and PS domains for the SIM card in the specified slot. This API uses a promise to return the result. +Obtains the RAT used in the CS and PS domains for the SIM card in the specified slot. This API uses a promise to return the result. **Required permission**: ohos.permission.GET_NETWORK_INFO @@ -573,7 +575,7 @@ This is a system API. | Name | Type | Mandatory| Description | | -------- | --------------------- | ---- | -------------------------------------- | | slotId | number | Yes | Card slot ID.
- **0**: card slot 1
- **1**: card slot 2| -| callback | AsyncCallback\ | Yes | Callback used to return the result. If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.| +| callback | AsyncCallback\ | Yes | Callback used to return the result. | **Example** @@ -607,7 +609,7 @@ This is a system API. | Type | Description | | --------------- | ------------------------------- | -| Promise\ | Promise that returns no value. | +| Promise\ | Promise used to return the result.| **Example** diff --git a/en/application-dev/reference/apis/js-apis-sim.md b/en/application-dev/reference/apis/js-apis-sim.md index acad2c7f02..41a4cfc71c 100644 --- a/en/application-dev/reference/apis/js-apis-sim.md +++ b/en/application-dev/reference/apis/js-apis-sim.md @@ -1,5 +1,7 @@ # SIM Management +The SIM management module provides basic SIM card management functions. You can obtain the name, number, ISO country code, home PLMN number, service provider name, SIM card status, type, installation status, activation status, and lock status of the SIM card in the specified slot. Besides, you can set the name, number, and lock status of the SIM card, activate or deactivate the SIM card, and change the PIN or unlock the PIN or PUK of the SIM card. + >**NOTE** > >The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. @@ -520,7 +522,7 @@ This is a system API. | Name | Type | Mandatory| Description | | -------- | --------------------------------------------------- | ---- | -------------------------------------- | | slotId | number | Yes | Card slot ID.
- **0**: card slot 1
- **1**: card slot 2| -| callback | AsyncCallback\<[IccAccountInfo](#IccAccountInfo7)\> | Yes | Callback used to return the result. For details, see [IccAccountInfo](#IccAccountInfo7).| +| callback | AsyncCallback\<[IccAccountInfo](#IccAccountInfo7)\> | Yes | Callback used to return the result. | **Example** @@ -672,7 +674,7 @@ This is a system API. | Type | Description | | -------------- | ------------------------------- | -| Promise\ | Promise that returns no value. | +| Promise\ | Promise used to return the result. | **Example** @@ -737,7 +739,7 @@ This is a system API. | Type | Description | | -------------- | ------------------------------- | -| Promise\ | Promise that returns no value. | +| Promise\ | Promise used to return the result. | **Example** @@ -867,7 +869,7 @@ This is a system API. | Type | Description | | -------------- | ------------------------------- | -| Promise\ | Promise that returns no value. | +| Promise\ | Promise used to return the result. | **Example** @@ -994,7 +996,7 @@ This is a system API. | Type | Description | | -------------- | ------------------------------- | -| Promise\ | Promise that returns no value. | +| Promise\ | Promise used to return the result. | **Example** @@ -1057,7 +1059,7 @@ This is a system API. | Type | Description | | -------------- | ------------------------------- | -| Promise\ | Promise that returns no value. | +| Promise\ | Promise used to return the result.| **Example** diff --git a/en/application-dev/reference/apis/js-apis-sms.md b/en/application-dev/reference/apis/js-apis-sms.md index 11fdf80679..25069b318a 100644 --- a/en/application-dev/reference/apis/js-apis-sms.md +++ b/en/application-dev/reference/apis/js-apis-sms.md @@ -1,5 +1,7 @@ # SMS +The SMS module provides basic SMS management functions. You can create and send SMS messages, and obtain and set the default SIM card for sending and receiving SMS messages. Besides, you can obtain and set the SMSC address, and check whether the current device can send and receive SMS messages. + >**NOTE** > >The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. @@ -206,7 +208,7 @@ This is a system API. | Type | Description | | -------------- | ------------------------------- | -| Promise\ | Promise that returns no value. | +| Promise\ | Promise used to return the result. | **Example** diff --git a/en/application-dev/reference/apis/js-apis-telephony-data.md b/en/application-dev/reference/apis/js-apis-telephony-data.md index 309e32bdae..4a711c1f7c 100644 --- a/en/application-dev/reference/apis/js-apis-telephony-data.md +++ b/en/application-dev/reference/apis/js-apis-telephony-data.md @@ -1,5 +1,7 @@ # Cellular Data +The cellular data module provides basic mobile data management functions. You can obtain and set the default slot of the SIM card used for mobile data, and obtain the uplink and downlink connection status of cellular data services and connection status of the packet switched (PS) domain. Besides, you can check whether cellular data services and data roaming are enabled. + >**NOTE** > >The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. @@ -78,7 +80,7 @@ This is a system API. | Name | Type | Mandatory| Description | | -------- | --------------------- | ---- | ------------------------------------------------------------ | | slotId | number | Yes | SIM card slot ID.
- **0**: card slot 1
- **1**: card slot 2
- **-1**: Clears the default configuration.| -| callback | AsyncCallback\ | Yes | Callback used to return the result. If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object. | +| callback | AsyncCallback\ | Yes | Callback used to return the result. | **Example** @@ -110,7 +112,7 @@ This is a system API. | Type | Description | | -------------- | ------------------------------- | -| Promise<\void\> | Promise that returns no value. | +| Promise<\void\> | Promise used to return the result. | **Example** @@ -174,7 +176,7 @@ promise.then((data) => { getCellularDataState(callback: AsyncCallback\): void -Obtains the connection status of the packet switched (PS) domain. This API uses an asynchronous callback to return the result. +Obtains the connection status of the PS domain. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Telephony.CellularData @@ -342,14 +344,14 @@ Defines the cellular data flow type. ## DataConnectState -Describes the connection status of a cellular data link. +Describes the connection status of a cellular data connection. **System capability**: SystemCapability.Telephony.CellularData | Name | Value | Description | | ----------------------- | ---- | -------------------------- | -| DATA_STATE_UNKNOWN | -1 | The status of the cellular data link is unknown. | -| DATA_STATE_DISCONNECTED | 0 | The cellular data link is disconnected. | -| DATA_STATE_CONNECTING | 1 | The cellular data link is being connected.| -| DATA_STATE_CONNECTED | 2 | The cellular data link is connected. | -| DATA_STATE_SUSPENDED | 3 | The cellular data link is suspended. | +| DATA_STATE_UNKNOWN | -1 | The status of the cellular data connection is unknown. | +| DATA_STATE_DISCONNECTED | 0 | The cellular data connection is disconnected. | +| DATA_STATE_CONNECTING | 1 | The cellular data connection is being established.| +| DATA_STATE_CONNECTED | 2 | The cellular data connection is established. | +| DATA_STATE_SUSPENDED | 3 | The cellular data connection is suspended. | -- GitLab From 32b48eaef242933727288bff33c8eb9c3b23f0f1 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 21 Jul 2022 03:57:22 +0000 Subject: [PATCH 136/868] update zh-cn/application-dev/reference/apis/js-apis-osAccount.md. Signed-off-by: zengyawen --- .../reference/apis/js-apis-osAccount.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-osAccount.md b/zh-cn/application-dev/reference/apis/js-apis-osAccount.md index dbd92d9a71..fded000bb0 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-osAccount.md +++ b/zh-cn/application-dev/reference/apis/js-apis-osAccount.md @@ -801,7 +801,7 @@ getOsAccountLocalIdFromDomain(domainInfo: DomainAccountInfo, callback: AsyncCall | 参数名 | 类型 | 必填 | 说明 | | ---------- | --------------------------------------- | ---- | -------------------------------------------- | -| domainInfo | [DomainAccountInfo](#domainaccountinfo) | 是 | 域帐号信息。 | +| domainInfo | [DomainAccountInfo](#domainaccountinfo8) | 是 | 域帐号信息。 | | callback | AsyncCallback<number> | 是 | 回调结果,返回的是和域帐号关联的系统帐号ID。 | **示例:** @@ -829,7 +829,7 @@ getOsAccountLocalIdFromDomain(domainInfo: DomainAccountInfo): Promise<number& | 参数名 | 类型 | 必填 | 说明 | | ---------- | --------------------------------------- | ---- | ------------ | -| domainInfo | [DomainAccountInfo](#domainaccountinfo) | 是 | 域帐号信息。 | +| domainInfo | [DomainAccountInfo](#domainaccountinfo8) | 是 | 域帐号信息。 | **返回值:** @@ -1156,7 +1156,7 @@ createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo, cal | 参数名 | 类型 | 必填 | 说明 | | :--------- | ---------------------------------------------------- | ---- | ------------------------------------------ | | type | [OsAccountType](#osaccounttype) | 是 | 创建的系统帐号的类型。 | -| domainInfo | [DomainAccountInfo](#domainaccountinfo) | 是 | 域帐号信息。 | +| domainInfo | [DomainAccountInfo](#domainaccountinfo8) | 是 | 域帐号信息。 | | callback | AsyncCallback<[OsAccountInfo](#osaccountinfo)> | 是 | 回调结果,返回的是新创建的系统帐号的信息。 | **示例:** @@ -1187,7 +1187,7 @@ createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo): Pr | 参数名 | 类型 | 必填 | 说明 | | ---------- | --------------------------------------- | ---- | ---------------------- | | type | [OsAccountType](#osaccounttype) | 是 | 创建的系统帐号的类型。 | -| domainInfo | [DomainAccountInfo](#domainaccountinfo) | 是 | 域帐号信息。 | +| domainInfo | [DomainAccountInfo](#domainaccountinfo8) | 是 | 域帐号信息。 | **返回值:** @@ -1932,7 +1932,7 @@ queryOsAccountConstraintSourceTypes(localId: number, constraint: string): Promis | isActived8+ | boolean | 是 | 系统帐号激活状态 | | isCreateCompleted8+ | boolean | 是 | 系统帐号创建是否完整 | | distributedInfo | [distributedAccount.DistributedInfo](js-apis-distributed-account.md) | 否 | 分布式帐号信息 | -| domainInfo8+ | [DomainAccountInfo](#domainaccountinfo) | 否 | 域帐号信息 | +| domainInfo8+ | [DomainAccountInfo](#domainaccountinfo8) | 否 | 域帐号信息 | ## DomainAccountInfo8+ -- GitLab From 8b630cda1f25b2dc966b0eb16a23486958fadf57 Mon Sep 17 00:00:00 2001 From: liuchao Date: Thu, 21 Jul 2022 12:03:59 +0800 Subject: [PATCH 137/868] add window animation docs Signed-off-by: liuchao Change-Id: I12e6065d6ea89c20d8ba314de0b4702f5a4f30e2 --- .../reference/apis/Readme-CN.md | 1 + .../apis/js-apis-windowAnimationManager.md | 242 ++++++++++++++++++ .../reference/arkui-ts/Readme-CN.md | 1 + .../ts-basic-components-remotewindow.md | 73 ++++++ 4 files changed, 317 insertions(+) create mode 100644 zh-cn/application-dev/reference/apis/js-apis-windowAnimationManager.md create mode 100644 zh-cn/application-dev/reference/arkui-ts/ts-basic-components-remotewindow.md diff --git a/zh-cn/application-dev/reference/apis/Readme-CN.md b/zh-cn/application-dev/reference/apis/Readme-CN.md index 9048aec6ed..2d3f4f7fe0 100755 --- a/zh-cn/application-dev/reference/apis/Readme-CN.md +++ b/zh-cn/application-dev/reference/apis/Readme-CN.md @@ -81,6 +81,7 @@ - [@ohos.uiAppearance(用户界面外观)](js-apis-uiappearance.md) - 图形图像 + - [@ohos.animation.windowAnimationManager (窗口动画管理)](js-apis-windowAnimationManager.md) - [@ohos.display (屏幕属性)](js-apis-display.md) - [@ohos.effectKit (图像效果)](js-apis-effectKit.md) - [@ohos.screen (屏幕)](js-apis-screen.md) diff --git a/zh-cn/application-dev/reference/apis/js-apis-windowAnimationManager.md b/zh-cn/application-dev/reference/apis/js-apis-windowAnimationManager.md new file mode 100644 index 0000000000..66f556ec42 --- /dev/null +++ b/zh-cn/application-dev/reference/apis/js-apis-windowAnimationManager.md @@ -0,0 +1,242 @@ +# 窗口动画管理 +窗口动画管理器,可以监听应用启动退出时应用的动画窗口,提供启动退出过程中控件动画和应用窗口联动动画能力。 + +> **说明:** +> 该组件从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 +> +> 本模块接口为系统接口。 + +## 导入模块 + +```js +import windowAnimationManager from '@ohos.animation.windowAnimationManager' +``` + +## windowAnimationManager.setController + +setController(controller: WindowAnimationController): void + +设置窗口动画控制器。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| controller | [WindowAnimationController](#windowanimationcontroller) | 是 | 窗口动画的控制器。| + +**示例:** + +```js +var controller = { + onStartAppFromLauncher(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void { + console.log('onStartAppFromLauncher', startingWindowTarget); + }, + onStartAppFromRecent(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void { + console.log('onStartAppFromRecent', startingWindowTarget); + }, + onStartAppFromOther(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void { + console.log('onStartAppFromOther', startingWindowTarget); + }, + onAppTransition(fromWindowTarget: WindowAnimationTarget, toWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void { + }, + onMinimizeWindow(minimizingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void { + }, + onCloseWindow(closingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void { + }, + onScreenUnlock(finishCallback: WindowAnimationFinishedCallback): void { + } +} + +windowAnimationManager.setController(controller) +``` + +## WindowAnimationController + +窗口动画控制器。 + +### onStartAppFromLauncher + +onStartAppFromLauncher(startingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void + +从桌面启动应用时的回调。 + +| 参数名 | 类型 | 必填 | 说明 | +| -------------------- | ------------------------------------------------------------ | ---- | ------------------ | +| startingWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | 动画目标窗口。 | +| finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是 | 动画完成后的回调。 | + +**示例:** + +```js +var controller = { + onStartAppFromLauncher(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void { + console.log('onStartAppFromLauncher', startingWindowTarget); + } +} +``` + +### onStartAppFromRecent + +onStartAppFromRecent(startingWindowTarget: WindowAnimationTarget,finishCallback:WindowAnimationFinishedCallback): void + +从最近任务列表启动应用时的回调。 + +| 参数名 | 类型 | 必填 | 说明 | +| -------------------- | ------------------------------------------------------------ | ---- | ------------------ | +| startingWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | 动画目标窗口。 | +| finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是 | 动画完成后的回调。 | + +**示例:** + +```js +var controller = { + onStartAppFromRecent(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void { + console.log('onStartAppFromRecent', startingWindowTarget); + } +} +``` + +### onStartAppFromOther + +onStartAppFromOther(startingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void + +从除了桌面和最近任务列表以外其他地方启动应用时的回调。 + +| 参数名 | 类型 | 必填 | 说明 | +| -------------------- | ------------------------------------------------------------ | ---- | ------------------ | +| startingWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | 动画目标窗口。 | +| finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是 | 动画完成后的回调。 | + +**示例:** + +```js +var controller = { + onStartAppFromOther(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void { + console.log('onStartAppFromOther', startingWindowTarget); + } +} +``` + +### onAppTransition + +onAppTransition(fromWindowTarget: WindowAnimationTarget, toWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void + +应用转场时的回调。 + +| 参数名 | 类型 | 必填 | 说明 | +| -------------------- | ------------------------------- | ---- | ---------------- | +| fromWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | 转场前的动画窗口。 | +| toWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | 转场后的动画窗口。 | +| finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是 | 动画完成后的回调。 | + +**示例:** + +```js +var controller = { + onAppTransition(fromWindowTarget: WindowAnimationTarget, toWindowTarget: WindowAnimationTarget, + finishCallback: WindowAnimationFinishedCallback): void { + console.log('onAppTransition', fromWindowTarget); + } +} +``` + +### onMinimizeWindow + +onMinimizeWindow(minimizingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void + +最小化窗口时的回调。 + +| 参数名 | 类型 | 必填 | 说明 | +| -------------------- | ------------------------------- | ---- | ---------------- | +| minimizingWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | 动画目标窗口。 | +| finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是 | 动画完成后的回调。 | + +**示例:** + +```js +var controller = { + onMinimizeWindow(minimizingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void { + console.log('onMinimizeWindow', minimizingWindowTarget); + } +} +``` + +### onCloseWindow + +onCloseWindow(closingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void + +关闭窗口时的回调。 + +| 参数名 | 类型 | 必填 | 说明 | +| -------------------- | ------------------------------- | ---- | ---------------- | +| closingWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | 动画目标窗口。 | +| finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是 | 动画完成后的回调。 | + +**示例:** + +```js +var controller = { + onCloseWindow(closingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void { + console.log('onCloseWindow', closingWindowTarget); + } +} +``` + +### onScreenUnlock + +onScreenUnlock(finishCallback: [WindowAnimationFinishedCallback](#windowanimationfinishedcallback)): void + +屏幕解锁时的回调。 + +| 参数名 | 类型 | 必填 | 说明 | +| -------------- | ------------------------------------------------------------ | ---- | ------------------ | +| finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是 | 动画完成后的回调。 | + +**示例:** + +```js +var controller = { + onScreenUnlock(finishCallback: WindowAnimationFinishedCallback): void { + console.log('onScreenUnlock'.); + } +} +``` + +## WindowAnimationFinishedCallback +动画完成后的回调。 + +### onAnimationFinish + +onAnimationFinish():void + +结束本次动画。 + +**示例:** + +```js +var controller = { + onCloseWindow(closingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void { + finishCallback.onAnimationFinish(); + } +} +``` + +## WindowAnimationTarget +动画目标窗口,用来实现动画。 + +| 参数 | 类型 | 描述 | +| ------- | ------ | ----------------------- | +| bundleName | string | 动画目标窗口所对应的包名。 | +| abilityName | string | 动画目标窗口所对应的Ability名称。 | +| windowBounds | [RRect](#rrect) | 动画目标窗口所对应的实际大小。 | + +## RRect +圆角矩形。 + +| 参数 | 类型 | 描述 | +| ------- | ------ | ----------------------- | +| left | number | 动画目标窗口左上角相对于屏幕的横坐标。 | +| top | number | 动画目标窗口左上角相对于屏幕的纵坐标。 | +| width | number | 动画目标窗口的宽度大小。 | +| height | number | 动画目标窗口的高度大小。 | +| radius | number | 动画目标窗口的圆角大小。 | \ No newline at end of file diff --git a/zh-cn/application-dev/reference/arkui-ts/Readme-CN.md b/zh-cn/application-dev/reference/arkui-ts/Readme-CN.md index cb447c2fb3..a6ccfdbbde 100644 --- a/zh-cn/application-dev/reference/arkui-ts/Readme-CN.md +++ b/zh-cn/application-dev/reference/arkui-ts/Readme-CN.md @@ -68,6 +68,7 @@ - [QRCode](ts-basic-components-qrcode.md) - [Radio](ts-basic-components-radio.md) - [Rating](ts-basic-components-rating.md) + - [RemoteWindow](ts-basic-components-remotewindow.md) - [RichText](ts-basic-components-richtext.md) - [ScrollBar](ts-basic-components-scrollbar.md) - [Search](ts-basic-components-search.md) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-remotewindow.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-remotewindow.md new file mode 100644 index 0000000000..2b20aca25b --- /dev/null +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-remotewindow.md @@ -0,0 +1,73 @@ +# RemoteWindow + +远程控制窗口组件,可以通过此组件控制应用窗口,提供启动退出过程中控件动画和应用窗口联动动画的能力。 + +> **说明:** +> +> 该组件从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 +> +> 该组件为系统接口。 + +## 子组件 + +不可以包含子组件。 + +## 接口 + +RemoteWindow(target: WindowAnimationTarget) + +通过窗口动画对象创建组件。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | -------- | -------- | -------- | -------- | -------- | + | target | [WindowAnimationTarget](#windowanimationtarget) | 是 | - | 需要控制的动画窗口的描述。 | + +## WindowAnimationTarget +目标窗口,用来远程控制实现动画。 + +| 参数 | 类型 | 描述 | +| ------- | ------ | ----------------------- | +| bundleName | string | 动画窗口所对应的进程。| +| abilityName | string | 动画窗口所对应的Ability。| +| windowBounds | [RRect](#rrect) | 动画窗口实际大小。| + +## RRect +圆角矩形。 + +| 参数 | 类型 | 描述 | +| ------- | ------ | ----------------------- | +| left | number | 动画窗口左上角相对于屏幕横坐标。| +| top | number | 动画窗口左上角相对于屏幕纵坐标。| +| width | number | 动画窗口宽度大小。| +| height | number | 动画窗口高度大小。| +| radius | number | 动画窗口圆角大小。| + +## 属性 + +支持[通用属性](ts-universal-attributes-size.md)。 + +## 事件 + +支持[通用事件](ts-universal-events-click.md)。 + +## 示例 + +```ts +// xxx.ets +@Entry +@Component +struct RemoteWindowExample { + @State target: WindowAnimationTarget = undefined // 通过windowAnimationManager获取 + + build() { + RemoteWindow(this.target) + .translate({x:100, y:200}) + .scale({x:0.5, y:0.5}) + .opacity(0.8) + .position({x:px2vp(this.target?.windowBounds.left), y:px2vp(this.target?.windowBounds.top)}) + .width(px2vp(this.target?.windowBounds.width)) + .height(px2vp(this.target?.windowBounds.height)) + } +} +``` \ No newline at end of file -- GitLab From aa8840b5e8356b4abe9bf1940e7e56fadfdc03e4 Mon Sep 17 00:00:00 2001 From: Austin Date: Thu, 21 Jul 2022 06:13:57 +0000 Subject: [PATCH 138/868] update zh-cn/device-dev/kernel/kernel-small-bundles-system.md. Signed-off-by: Austin23 --- zh-cn/device-dev/kernel/kernel-small-bundles-system.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/zh-cn/device-dev/kernel/kernel-small-bundles-system.md b/zh-cn/device-dev/kernel/kernel-small-bundles-system.md index 4b75ad0559..8037e5e81d 100644 --- a/zh-cn/device-dev/kernel/kernel-small-bundles-system.md +++ b/zh-cn/device-dev/kernel/kernel-small-bundles-system.md @@ -52,8 +52,8 @@ Syscall Handler的具体实现在kernel/liteos_a/syscall/los_syscall.c中OsArmA3 #define __NR_pthread_set_detach (__NR_OHOS_BEGIN + 0) #define __NR_pthread_join (__NR_OHOS_BEGIN + 1) #define __NR_pthread_deatch (__NR_OHOS_BEGIN + 2) - #define __NR_creat_user_thread (__NR_OHOS_BEGIN + 3) - #define __NR_processcreat (__NR_OHOS_BEGIN + 4) + #define __NR_create_user_thread (__NR_OHOS_BEGIN + 3) + #define __NR_processcreate (__NR_OHOS_BEGIN + 4) #define __NR_processtart (__NR_OHOS_BEGIN + 5) #define __NR_printf (__NR_OHOS_BEGIN + 6) #define __NR_dumpmemory (__NR_OHOS_BEGIN + 13) @@ -98,8 +98,8 @@ Syscall Handler的具体实现在kernel/liteos_a/syscall/los_syscall.c中OsArmA3 #define __NR_pthread_set_detach (__NR_OHOS_BEGIN + 0) #define __NR_pthread_join (__NR_OHOS_BEGIN + 1) #define __NR_pthread_deatch (__NR_OHOS_BEGIN + 2) - #define __NR_creat_user_thread (__NR_OHOS_BEGIN + 3) - #define __NR_processcreat (__NR_OHOS_BEGIN + 4) + #define __NR_create_user_thread (__NR_OHOS_BEGIN + 3) + #define __NR_processcreate (__NR_OHOS_BEGIN + 4) #define __NR_processtart (__NR_OHOS_BEGIN + 5) #define __NR_printf (__NR_OHOS_BEGIN + 6) #define __NR_dumpmemory (__NR_OHOS_BEGIN + 13) -- GitLab From ac3954b3a6304d82deba9134be9b4b3da08ccf3b Mon Sep 17 00:00:00 2001 From: Austin Date: Thu, 21 Jul 2022 06:15:40 +0000 Subject: [PATCH 139/868] update zh-cn/device-dev/kernel/kernel-small-debug-shell-cmd-sem.md. Signed-off-by: Austin23 --- zh-cn/device-dev/kernel/kernel-small-debug-shell-cmd-sem.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zh-cn/device-dev/kernel/kernel-small-debug-shell-cmd-sem.md b/zh-cn/device-dev/kernel/kernel-small-debug-shell-cmd-sem.md index 78725d7482..bdcf23dbcf 100644 --- a/zh-cn/device-dev/kernel/kernel-small-debug-shell-cmd-sem.md +++ b/zh-cn/device-dev/kernel/kernel-small-debug-shell-cmd-sem.md @@ -18,7 +18,7 @@ sem [_ID__ / fulldata_] | 参数 | 参数说明 | 取值范围 | | -------- | -------- | -------- | | ID | 信号量ID。 | [0, 1023]或[0x0, 0x3FF] | -| fulldata | 查询所有在用的信号量信息,打印信息包括如下:SemID, Count, Original Count, Creater TaskEntry, Last Access Time。 | N/A | +| fulldata | 查询所有在用的信号量信息,打印信息包括如下:SemID, Count, Original Count, Creator TaskEntry, Last Access Time。 | N/A | ## 使用指南 @@ -84,7 +84,7 @@ OHOS # sem ``` OHOS # sem fulldata Used Semaphore List: - SemID Count OriginalCount Creater(TaskEntry) LastAccessTime + SemID Count OriginalCount Creator(TaskEntry) LastAccessTime ------ ------ ------------- ------------------ -------------- 0xb 0x0 0x0 0x404978fc 0xa1 0xc 0x0 0x0 0x404978fc 0xa1 @@ -120,5 +120,5 @@ Used Semaphore List: | SemID | 信号量ID。 | | Count | 信号量使用数。 | | OriginalCount | 信号量原始计数。 | -| Creater | 信号量的创建线程的入口函数地址。 | +| Creator | 信号量的创建线程的入口函数地址。 | | LastAccessTime | 上次访问时间。 | -- GitLab From 3ca01834644293852bd2f7caa7e016578730e1e4 Mon Sep 17 00:00:00 2001 From: Austin Date: Thu, 21 Jul 2022 06:24:22 +0000 Subject: [PATCH 140/868] update zh-cn/device-dev/kernel/kernel-small-memory-lms.md. Signed-off-by: Austin23 --- zh-cn/device-dev/kernel/kernel-small-memory-lms.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/device-dev/kernel/kernel-small-memory-lms.md b/zh-cn/device-dev/kernel/kernel-small-memory-lms.md index 145f6c5987..f818c3bdf3 100644 --- a/zh-cn/device-dev/kernel/kernel-small-memory-lms.md +++ b/zh-cn/device-dev/kernel/kernel-small-memory-lms.md @@ -366,7 +366,7 @@ int main(int argc, char * const * argv) Heap buffer overflow error detected! Illegal READ address at: [0x1f8b3edf] Shadow memory address: [0x3d34d3ed : 6] Shadow memory value: [2] -Accessable heap addr 0 +Accessible heap addr 0 Heap red zone 2 Heap freed buffer 3 Dump info around address [0x1f8b3edf]: @@ -391,7 +391,7 @@ Backtrace() returned 5 addresses Use after free error detected! Illegal Double free address at: [0x1f8b3ee0] Shadow memory address: [0x3d34d3ee : 0] Shadow memory value: [3] -Accessable heap addr 0 +Accessible heap addr 0 Heap red zone 2 Heap freed buffer 3 Dump info around address [0x1f8b3ee0]: -- GitLab From 07b8a8a77573ff2883b6cf25f64b1e9568cf4609 Mon Sep 17 00:00:00 2001 From: Austin Date: Thu, 21 Jul 2022 06:30:39 +0000 Subject: [PATCH 141/868] update zh-cn/device-dev/porting/porting-chip-board-bundle.md. Signed-off-by: Austin23 --- zh-cn/device-dev/porting/porting-chip-board-bundle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/porting/porting-chip-board-bundle.md b/zh-cn/device-dev/porting/porting-chip-board-bundle.md index 6c40374e47..1fd6ca469b 100644 --- a/zh-cn/device-dev/porting/porting-chip-board-bundle.md +++ b/zh-cn/device-dev/porting/porting-chip-board-bundle.md @@ -10,7 +10,7 @@ 1. 拷贝include/mbedtls/config.h到ports目录下,并修改打开MBEDTLS_ENTROPY_HARDWARE_ALT开关。 2. 在ports目录下创建entropy_poll_alt.c文件include并实现entropy_poll.h中的硬件随机数接口 3. 在BUILD.gn中的mbedtls_sources中增加刚才适配的entropy_poll_alt.c的路径 - 4. 在BIULD.gn中的lite_library("mbedtls_static")中增加一行MBEDTLS_CONFIG_FILE指定新配置文件的位置 + 4. 在BUILD.gn中的lite_library("mbedtls_static")中增加一行MBEDTLS_CONFIG_FILE指定新配置文件的位置 ``` lite_library("mbedtks_static") { -- GitLab From 554cafa4c937bcfe9fd890070a9b0f3e7600f0ed Mon Sep 17 00:00:00 2001 From: lverpeng Date: Thu, 21 Jul 2022 14:32:46 +0800 Subject: [PATCH 142/868] =?UTF-8?q?=E7=A4=BA=E4=BE=8B=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E6=8E=A5=E5=8F=A3=E5=AE=8C=E6=95=B4=E6=80=A7=E6=B5=8B?= =?UTF-8?q?=E8=AF=95docs=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: lverpeng --- .../reference/apis/js-apis-bluetooth.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-bluetooth.md b/zh-cn/application-dev/reference/apis/js-apis-bluetooth.md index ce7214ccc1..b1899240d3 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-bluetooth.md +++ b/zh-cn/application-dev/reference/apis/js-apis-bluetooth.md @@ -1837,7 +1837,7 @@ panProfile.off('connectionStateChange', onReceiveEvent); ### setTethering9+ -setTethering(value: boolean): boolean +setTethering(enable: boolean): void 设置网络共享状态。 @@ -1875,8 +1875,6 @@ isTetheringOn(): boolean 此接口为系统接口。 -**需要权限**:ohos.permission.DISCOVER_BLUETOOTH - **系统能力**:SystemCapability.Communication.Bluetooth.Core。 **返回值:** @@ -2709,7 +2707,9 @@ client端获取蓝牙低功耗设备的所有服务,即服务发现。 ```js // Promise 模式 -gattClientDevice.getServices().then(result => { +let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); +device.connect(); +device.getServices().then(result => { console.info("getServices successfully:" + JSON.stringify(result)); }); ``` @@ -3536,7 +3536,7 @@ let rssi = gattClient.getRssiValue().then((data) => { | serviceSolicitationUuidMask9+ | string | 是 | 是 | 表示过滤包含该UUID服务请求掩码的设备,例如:FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF。 | | serviceData9+ | ArrayBuffer | 是 | 是 | 表示过滤包含该服务相关数据的设备,例如:[0x90,0x00,0xF1,0xF2]。 | | serviceDataMask9+ | ArrayBuffer | 是 | 是 | 表示过滤包含该服务相关数据掩码的设备,例如:[0xFF,0xFF,0xFF,0xFF]。 | -| manufacturerId9+ | number | 是 | 是 | 表示过滤包含该制造商ID的设备,例如:0x0006。 | +| manufactureId9+ | number | 是 | 是 | 表示过滤包含该制造商ID的设备,例如:0x0006。 | | manufactureData9+ | ArrayBuffer | 是 | 是 | 表示过滤包含该制造商相关数据的设备,例如:[0x1F,0x2F,0x3F]。 | | manufactureDataMask9+ | ArrayBuffer | 是 | 是 | 表示过滤包含该制造商相关数据掩码的设备,例如:[0xFF,0xFF,0xFF]。 | @@ -3828,7 +3828,7 @@ let rssi = gattClient.getRssiValue().then((data) => { ## ProfileId8+ -蓝牙profile枚举,API9新增PROFILE_HID_HOST。 +蓝牙profile枚举,API9新增PROFILE_HID_HOST,PROFILE_PAN_NETWORK。 **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -3836,4 +3836,5 @@ let rssi = gattClient.getRssiValue().then((data) => { | -------------------------------- | ------ | --------------- | | PROFILE_A2DP_SOURCE | 0x0001 | 表示A2DP profile。 | | PROFILE_HANDS_FREE_AUDIO_GATEWAY | 0x0004 | 表示HFP profile。 | -| PROFILE_HID_HOST9+ | 0x0006 | 表示HID profile。 | \ No newline at end of file +| PROFILE_HID_HOST9+ | 0x0006 | 表示HID profile。 | +| PROFILE_PAN_NETWORK9+ | 0x0007 | 表示PAN profile。 | \ No newline at end of file -- GitLab From 3dda17f3e62776c55219585f7cda7075e669e163 Mon Sep 17 00:00:00 2001 From: Austin Date: Thu, 21 Jul 2022 06:32:58 +0000 Subject: [PATCH 143/868] update zh-cn/device-dev/porting/porting-chip-prepare-process.md. Signed-off-by: Austin23 --- zh-cn/device-dev/porting/porting-chip-prepare-process.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/porting/porting-chip-prepare-process.md b/zh-cn/device-dev/porting/porting-chip-prepare-process.md index 503972d4e7..eee8899860 100644 --- a/zh-cn/device-dev/porting/porting-chip-prepare-process.md +++ b/zh-cn/device-dev/porting/porting-chip-prepare-process.md @@ -44,7 +44,7 @@ # Note: The default toolchain is "ohos-clang". It's not mandatory if you use the default toochain. board_toolchain = "gcc-arm-none-eabi" - # The toolchain path instatlled, it's not mandatory if you have added toolchian path to your ~/.bashrc. + # The toolchain path installed, it's not mandatory if you have added toolchain path to your ~/.bashrc. board_toolchain_path = rebase_path("//prebuilts/gcc/linux-x86/arm/gcc-arm-none-eabi/bin", root_build_dir) -- GitLab From c2cf6445703e0446aac2bb4573dddf24b85b828c Mon Sep 17 00:00:00 2001 From: yuyaozhi Date: Wed, 20 Jul 2022 17:05:42 +0800 Subject: [PATCH 144/868] Fix master branch document problems of ability Signed-off-by: yuyaozhi --- zh-cn/application-dev/ability/stage-call.md | 2 +- .../reference/apis/js-apis-Context.md | 2 +- .../apis/js-apis-ability-wantConstant.md | 2 +- .../js-apis-application-abilityDelegator.md | 4 +- ...is-application-abilityLifecycleCallback.md | 2 +- .../reference/apis/js-apis-configuration.md | 2 + .../apis/js-apis-dataAbilityHelper.md | 101 +++++++++++++++++- .../reference/apis/js-apis-missionManager.md | 4 +- 8 files changed, 108 insertions(+), 11 deletions(-) diff --git a/zh-cn/application-dev/ability/stage-call.md b/zh-cn/application-dev/ability/stage-call.md index 1cec47b609..e8126fa0d7 100644 --- a/zh-cn/application-dev/ability/stage-call.md +++ b/zh-cn/application-dev/ability/stage-call.md @@ -19,7 +19,7 @@ Caller及Callee功能如下:具体的API详见[接口文档](../reference/apis |接口名|描述| |:------|:------| |startAbilityByCall(want: Want): Promise\|获取指定通用组件的Caller通信接口,拉起指定通用组件并将其切换到后台。| -|on(method: string, callback: CaleeCallBack): void|通用组件Callee注册method对应的callback方法。| +|on(method: string, callback: CalleeCallBack): void|通用组件Callee注册method对应的callback方法。| |off(method: string): void|通用组件Callee去注册method的callback方法。| |call(method: string, data: rpc.Sequenceable): Promise\|向通用组件Callee发送约定序列化数据。| |callWithResult(method: string, data: rpc.Sequenceable): Promise\|向通用组件Callee发送约定序列化数据, 并将返回的约定序列化数据带回。| diff --git a/zh-cn/application-dev/reference/apis/js-apis-Context.md b/zh-cn/application-dev/reference/apis/js-apis-Context.md index 1df895cc26..e8a3685896 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-Context.md +++ b/zh-cn/application-dev/reference/apis/js-apis-Context.md @@ -984,7 +984,7 @@ context.getHapModuleInfo().then((data) => { ## Context.getAppVersionInfo7+ -getAppVersionInfo(callback: AsyncCallback): void +getAppVersionInfo(callback: AsyncCallback\): void 获取应用的版本信息(callback形式)。 diff --git a/zh-cn/application-dev/reference/apis/js-apis-ability-wantConstant.md b/zh-cn/application-dev/reference/apis/js-apis-ability-wantConstant.md index 13b1ed18b8..f337e932bc 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-ability-wantConstant.md +++ b/zh-cn/application-dev/reference/apis/js-apis-ability-wantConstant.md @@ -46,7 +46,7 @@ want操作的常数。 | ACTION_FILE_SELECT7+ | ohos.action.fileSelect | 指示选择文件的操作。 | | PARAMS_STREAM7+ | ability.params.stream | 指示与连接发送数据一起使用时,包含与意图相关联的数据流的URI。 | | ACTION_APP_ACCOUNT_OAUTH 8+ | ohos.account.appAccount.action.oauth | 指示提供oauth服务的操作。 | -| ACTION_MARKER_DOWNLOAD 9+ | ohos.want.action.marketDownload | 表示从应用程序市场下载应用程序的的操作。 | +| ACTION_MARKER_DOWNLOAD 9+ | ohos.want.action.marketDownload | 表示从应用程序市场下载应用程序的的操作。
**系统API**:该接口为系统接口,三方应用不支持调用。 | ## wantConstant.Entity diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-abilityDelegator.md b/zh-cn/application-dev/reference/apis/js-apis-application-abilityDelegator.md index e16c93cc90..b9f2671b47 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-application-abilityDelegator.md +++ b/zh-cn/application-dev/reference/apis/js-apis-application-abilityDelegator.md @@ -654,7 +654,7 @@ abilityDelegator.printSync(msg); -### print9+ +### print print(msg: string, callback: AsyncCallback\): void @@ -683,7 +683,7 @@ abilityDelegator.print(msg, (err : any) => { -### print9+ +### print print(msg: string): Promise\ diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md b/zh-cn/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md index f220273cbf..40c41150c2 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md +++ b/zh-cn/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md @@ -11,7 +11,7 @@ AbilityLifecycleCallback模块提供应用上下文ApplicationContext的生命 ## 导入模块 ```js -import AbilityLifecycleCallback from "@ohos.application.abilityLifecycleCallback"; +import AbilityLifecycleCallback from "@ohos.application.AbilityLifecycleCallback"; ``` diff --git a/zh-cn/application-dev/reference/apis/js-apis-configuration.md b/zh-cn/application-dev/reference/apis/js-apis-configuration.md index 1889e753e1..0f82948b51 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-configuration.md +++ b/zh-cn/application-dev/reference/apis/js-apis-configuration.md @@ -23,3 +23,5 @@ import Configuration from '@ohos.application.Configuration'; | direction9+ | Direction | 是 | 否 | 表示屏幕方向,取值范围:水平方向(DIRECTION_HORIZONTAL),垂直方向(DIRECTION_VERTICAL)。 | | screenDensity9+ | ScreenDensity | 是 | 否 | 表示屏幕分辨率,取值范围:SCREEN_DENSITY_SDPI(120)、SCREEN_DENSITY_MDPI(160)、SCREEN_DENSITY_LDPI(240)、SCREEN_DENSITY_XLDPI(320)、SCREEN_DENSITY_XXLDPI(480)、SCREEN_DENSITY_XXXLDPI(640)。 | | displayId9+ | number | 是 | 否 | 表示应用所在的displayId。 | +| hasPointerDevice9+ | boolean | 是 | 否 | 指示指针类型设备是否已连接。 | + diff --git a/zh-cn/application-dev/reference/apis/js-apis-dataAbilityHelper.md b/zh-cn/application-dev/reference/apis/js-apis-dataAbilityHelper.md index 16d5108ce9..be98b82dab 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-dataAbilityHelper.md +++ b/zh-cn/application-dev/reference/apis/js-apis-dataAbilityHelper.md @@ -685,7 +685,7 @@ delete(uri: string, predicates?: dataAbility.DataAbilityPredicates): Promise\, predicates?: dataAbility.DataAbilityPredicates): Promise\; +query(uri: string, columns?: Array\, predicates?: dataAbility.DataAbilityPredicates): Promise\; 查询数据库中的数据(Promise形式)。 @@ -932,6 +932,77 @@ dataAbilityHelper.call("dataability:///com.example.jsapidemo.UserDataAbility", " console.info('Operation succeeded: ' + data); }); ``` + +## DataAbilityHelper.executeBatch + +executeBatch(uri: string, operations: Array\, callback: AsyncCallback\>): void; + +查询数据库中的数据。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ---------- | --------------------------------- | ---- | ------------------------------------------------ | +| uri | string | 是 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。| +| operations | Array\<[DataAbilityOperation](#dataabilityoperation)> | 是 | 指示数据操作列表,其中可以包含对数据库的多个操作。 | +| callback | AsyncCallback\> | 是 |在数组 DataAbilityResult中返回每个操作的结果。 | + +**示例:** + +```js +import featureAbility from '@ohos.ability.featureAbility'; + +// 根据DataAbilityOperation列表选择要对数据库做的操作 +let op=new Array(); +let dataAbilityHelper = featureAbility.acquireDataAbilityHelper("dataability:///com.example.jsapidemo.UserDataAbility"); +dataAbilityHelper.executeBatch("dataability:///com.example.jsapidemo.UserDataAbility", op, (err, data) => { + if (err) { + console.error('Operation failed. Cause: ' + err); + return; + } + console.info('Operation succeeded: ' + data); +}); +``` + +## DataAbilityHelper.executeBatch + +executeBatch(uri: string, operations: Array\): Promise\>; + +查询数据库中的数据。 + +**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel + +**参数:** + +| 名称 | 类型 | 必填 | 描述 | +| ---------- | -------------------------------| ---- | ------------------------------------------------ | +| uri | string | 是 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。| +| operations | Array\<[DataAbilityOperation](#dataabilityoperation)> | 是 | 指示数据操作列表,其中可以包含对数据库的多个操作。 | + +**返回值:** + +| 类型 | 说明 | +|------ | ------- | +|Promise\> | 在数组 DataAbilityResult中返回每个操作的结果。 | + +**示例:** + +```js +import featureAbility from '@ohos.ability.featureAbility'; + +// 根据DataAbilityOperation列表选择要对数据库做的操作 +let op=new Array(); +let dataAbilityHelper = featureAbility.acquireDataAbilityHelper("dataability:///com.example.jsapidemo.UserDataAbility"); +dataAbilityHelper.executeBatch("dataability:///com.example.jsapidemo.UserDataAbility",op ).then((data) => { + console.info('Operation succeeded: ' + data); +}).catch((error) => { + console.error('Operation failed. Cause: ' + error); +}); + +``` + ## PacMap [key: string]: number | string | boolean | Array\ | null; @@ -940,4 +1011,28 @@ dataAbilityHelper.call("dataability:///com.example.jsapidemo.UserDataAbility", " | 名称 | 参数类型 | 必填 | 说明 | | ------ | ------ | ------ | ------ | -| [key: string] | number \| string \| boolean \| Array\ \| null | Yes| 数据存储在键值对中。| \ No newline at end of file +| [key: string] | number \| string \| boolean \| Array\ \| null | Yes| 数据存储在键值对中。| + +## DataAbilityOperation + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel + +| 名称 | 参数类型 | 可读 | 可写 | 必填| 说明 | +| -------- | -------- | -------- | -------- | --------| -------- | +| uri | string | 是 | 否 | 是 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。 | +| type | featureAbility.DataAbilityOperationType | 是 | 否 | 是 | 指示操作类型。 | +| valuesBucket? | rdb.ValuesBucket | 是 | 否 | 否 | 指示要设置的数据值。 | +| valueBackReferences? | rdb.ValuesBucket | 是 | 否 | 否 | 指示包含一组键值对的valuesBucket对象。 | +| predicates? | dataAbility.DataAbilityPredicates | 是 | 否 | 否 | 指示要设置的筛选条件。如果此参数为空,则所有数据记录。 | +| predicatesBackReferences? | Map\ | 是 | 否 | 否 | 指示用作谓词中筛选条件的反向引用。 | +| interrupted? | boolean | 是 | 否 | 否 | 指定是否可以中断批处理操作。 | +| expectedCount? | number | 是 | 否 | 否 | 指示要更新或删除的预期行数。 | + +## DataAbilityResult + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel + +| 名称 | 参数类型 | 可读 | 可写 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | -------- | -------- | +| uri? | string | 是 | 否 | 否 | 指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"。 | +| count? | number | 是 | 否 | 否 | 指示受操作影响的行数。 | \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/js-apis-missionManager.md b/zh-cn/application-dev/reference/apis/js-apis-missionManager.md index 0a4ded95e1..bb2deac5e5 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-missionManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-missionManager.md @@ -362,7 +362,7 @@ getMissionSnapShot(deviceId: string, missionId: number): Promise<MissionSnaps }); ``` -## missionManager.getLowResolutionMissionSnapShot +## missionManager.getLowResolutionMissionSnapShot9+ getLowResolutionMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback\): void; @@ -401,7 +401,7 @@ getLowResolutionMissionSnapShot(deviceId: string, missionId: number, callback: A ``` -## missionManager.getLowResolutionMissionSnapShot +## missionManager.getLowResolutionMissionSnapShot9+ getLowResolutionMissionSnapShot(deviceId: string, missionId: number): Promise\; -- GitLab From 672f4cd7af6bbdd1f2e9defdc268b8e796682781 Mon Sep 17 00:00:00 2001 From: Austin Date: Thu, 21 Jul 2022 06:34:50 +0000 Subject: [PATCH 145/868] update zh-cn/device-dev/porting/porting-smallchip-prepare-building.md. Signed-off-by: Austin23 --- zh-cn/device-dev/porting/porting-smallchip-prepare-building.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/porting/porting-smallchip-prepare-building.md b/zh-cn/device-dev/porting/porting-smallchip-prepare-building.md index 9fe8e43aff..1a5c410423 100644 --- a/zh-cn/device-dev/porting/porting-smallchip-prepare-building.md +++ b/zh-cn/device-dev/porting/porting-smallchip-prepare-building.md @@ -86,7 +86,7 @@ sudo apt-get install gcc-arm-linux-gnueabi # Note: The default toolchain is "ohos-clang". It's not mandatory if you use the default toochain. board_toolchain = "mips-linux-gnu-gcc" - # The toolchain path instatlled, it's not mandatory if you have added toolchian path to your ~/.bashrc. + # The toolchain path installed, it's not mandatory if you have added toolchain path to your ~/.bashrc. board_toolchain_path = rebase_path("//prebuilts/gcc/linux-x86/arm/arm-linux-ohoseabi-gcc/bin", root_build_dir) -- GitLab From a5b6bdf4c83e92b48d21f759861502b98f132e2f Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 21 Jul 2022 06:40:04 +0000 Subject: [PATCH 146/868] update zh-cn/application-dev/Readme-CN.md. Signed-off-by: zengyawen --- zh-cn/application-dev/Readme-CN.md | 1 + 1 file changed, 1 insertion(+) diff --git a/zh-cn/application-dev/Readme-CN.md b/zh-cn/application-dev/Readme-CN.md index f6edc6cc86..b509593dfe 100644 --- a/zh-cn/application-dev/Readme-CN.md +++ b/zh-cn/application-dev/Readme-CN.md @@ -34,6 +34,7 @@ - [设备使用信息统计](device-usage-statistics/Readme-CN.md) - [DFX](dfx/Readme-CN.md) - [国际化](internationalization/Readme-CN.md) + - [一次开发,多端部署](key-features/multi-device-app-dev/Readme-CN.md) - [IDL工具规格及使用说明书](IDL/idl-guidelines.md) - [Native API的相关指导](napi/Readme-CN.md) - 工具 -- GitLab From 4e155192a5b3f0b3f6dc686e2a4a40200220485e Mon Sep 17 00:00:00 2001 From: junyi233 Date: Thu, 21 Jul 2022 14:41:39 +0800 Subject: [PATCH 147/868] =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=8D=A1=E7=89=87=E6=9B=B4=E5=A4=9A=E5=B0=BA=E5=AF=B8=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E5=A2=9E=E5=8A=A0extensiontype=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: junyi233 --- zh-cn/application-dev/quick-start/package-structure.md | 2 +- zh-cn/application-dev/quick-start/stage-structure.md | 4 ++-- zh-cn/application-dev/reference/apis/js-apis-Bundle.md | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/zh-cn/application-dev/quick-start/package-structure.md b/zh-cn/application-dev/quick-start/package-structure.md index 2f4e477c43..6345a071e3 100644 --- a/zh-cn/application-dev/quick-start/package-structure.md +++ b/zh-cn/application-dev/quick-start/package-structure.md @@ -591,7 +591,7 @@ shortcuts示例: | isDefault | 表示该卡片是否为默认卡片,每个Ability有且只有一个默认卡片。
true:默认卡片。
false:非默认卡片。 | 布尔值 | 不可缺省 | | type | 表示卡片的类型。取值范围如下:
JS:JS卡片。 | 字符串 | 不可缺省 | | colorMode | 表示卡片的主题样式,取值范围如下:
auto:自适应。
dark:深色主题。
light:浅色主题。 | 字符串 | 可缺省,缺省值为“auto”。 | -| supportDimensions | 表示卡片支持的外观规格,取值范围:
1 * 2:表示1行2列的二宫格。
2 * 2:表示2行2列的四宫格。
2 * 4:表示2行4列的八宫格。
4 * 4:表示4行4列的十六宫格。 | 字符串数组 | 不可缺省 | +| supportDimensions | 表示卡片支持的外观规格,取值范围:
1 * 2:表示1行2列的二宫格。
2 * 1:表示2行1列的二宫格。
2 * 2:表示2行2列的四宫格。
2 * 4:表示2行4列的八宫格。
4 * 4:表示4行4列的十六宫格。 | 字符串数组 | 不可缺省 | | defaultDimension | 表示卡片的默认外观规格,取值必须在该卡片supportDimensions配置的列表中。 | 字符串 | 不可缺省 | | updateEnabled | 表示卡片是否支持周期性刷新,取值范围:
true:表示支持周期性刷新,可以在定时刷新(updateDuration)和定点刷新(scheduledUpdateTime)两种方式任选其一,优先选择定时刷新。
false:表示不支持周期性刷新。 | 布尔类型 | 不可缺省 | | scheduledUpdateTime | 表示卡片的定点刷新的时刻,采用24小时制,精确到分钟。 | 字符串 | 可缺省,缺省值为“0:0”。 | diff --git a/zh-cn/application-dev/quick-start/stage-structure.md b/zh-cn/application-dev/quick-start/stage-structure.md index e70faa4e1b..fa20a6d5d3 100644 --- a/zh-cn/application-dev/quick-start/stage-structure.md +++ b/zh-cn/application-dev/quick-start/stage-structure.md @@ -439,7 +439,7 @@ skills示例 | description | 该标签标识extensionAbility的描述,标签值是是字符串类型或对描述内容的资源索引,以支持多语言。 | 字符串 | 该标签可缺省,缺省值为空。 | | icon | 该标签标识extensionAbility图标,标签值为资源文件的索引。如果extensionAbility被配置为MainElement,该标签必须配置。 | 字符串 | 该标签可缺省,缺省值为空。 | | label | 该标签标识extensionAbility对用户显示的名称,标签值配置为该名称的资源索引以支持多语言。
如果extensionAbility被配置为MainElement,该标签必须配置,且应用内唯一。 | 字符串 | 该标签不可缺省。 | -| type | 该标签标识extensionAbility的类型,取值为form、workScheduler、inputMethod、service、accessibility、dataShare、fileShare、staticSubscriber、wallpaper、backup、window其中之一。 | 字符串 | 该标签不可缺省。 | +| type | 该标签标识extensionAbility的类型,取值为form、workScheduler、inputMethod、service、accessibility、dataShare、fileShare、staticSubscriber、wallpaper、backup、window、enterpriseAdmin、thumbnail、preview其中之一。 | 字符串 | 该标签不可缺省。 | | permissions | 该标签标识被其它应用的ability调用时需要申请的权限的集合,字符串数组类型,每个数组元素为一个权限名称,通常采用反向域名方式表示(最大255字节),可以是系统预定义的权限,也可以是该应用自定义的权限。如果是后者,需与defPermissions标签中定义的某个权限的name标签值一致。 | 字符串数组 | 该标签可缺省,缺省值为空。 | | uri | 该标签标识ability提供的数据uri,为字符数组类型(最大长度255),用反向域名的格式表示。该标签在type为dataShare类型的extensionAbility时,不可缺省。 | 字符串 | 该标签可缺省,缺省值为空。 | | skills | 该标签标识ability能够接收的意图的特征集,为数组格式。
配置规则 : entry包可以配置多个具有入口能力的skills标签(配置了action.system.home和entity.system.home)的ability,其中第一个配置了skills标签的ability中的label和icon作为OpenHarmony服务或应用的label和icon。
OpenHarmony服务的Feature包不能配置具有入口能力的skills标签。
OpenHarmony应用的Feature包可以配置具有入口能力的skills标签。
skills内部结构参考[skills对象内部结构](#skills对象内部结构)。 | 数组 | 该标签可缺省,缺省值为空。 | @@ -528,7 +528,7 @@ forms标签表示卡片的配置,form卡片是可以嵌入桌面上并接收 | window | 该标签标识JS卡片的自适应能力。window结构参考表12。 | 对象 | 可缺省,缺省为空。 | | isDefault | 表示该卡片是否为默认卡片,每个Ability有且只有一个默认卡片。 true :默认卡片。 false :非默认卡片。 | 布尔值 | 否 | | colorMode | 表示卡片的主题样式,取值范围如下 : auto :自适应。 dark :深色主题。 light :浅色主题。 | 字符串 | 可缺省,缺省值为“auto”。 | -| supportDimensions | 表示卡片支持的外观规格,取值范围 : 1 * 2 :表示1行2列的二宫格。 2 * 2 :表示2行2列的四宫格。 2 * 4 :表示2行4列的八宫格。 4 * 4 :表示4行4列的十六宫格。 | 字符串数组 | 否 | +| supportDimensions | 表示卡片支持的外观规格,取值范围 : 1 * 2 :表示1行2列的二宫格。 2 * 1 :表示2行1列的二宫格。 2 * 2 :表示2行2列的四宫格。 2 * 4 :表示2行4列的八宫格。 4 * 4 :表示4行4列的十六宫格。 | 字符串数组 | 否 | | defaultDimension | 表示卡片的默认外观规格,取值必须在该卡片supportDimensions配置的列表中。 | 字符串 | 否 | | updateDuration | 该标签标识卡片定时刷新的更新频率,单位为30分钟,取值为30的倍数值。卡片的最高频率为每30分钟刷新一次,和定点刷新二选一,二者都配置的情况下,定时优先。 | 数值 | 可缺省,缺省为空。 | | metadata | 该标签表示卡片的自定义信息。metadata内部结构参考表5。 | 对象 | 可缺省,缺省为空。 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-Bundle.md b/zh-cn/application-dev/reference/apis/js-apis-Bundle.md index f1f15c88f8..6e0963c0ff 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-Bundle.md +++ b/zh-cn/application-dev/reference/apis/js-apis-Bundle.md @@ -2414,7 +2414,9 @@ ExtensionAbility的类型 | BACKUP9+ | 9 | ExtensionAbility的类型包括数据备份恢复 | | WINDOW9+ | 10 | ExtensionAbility的类型包括窗口类型扩展信息 | | ENTERPRISE_ADMIN9+ | 11 | ExtensionAbility的类型包括企业管理员 | -| UNSPECIFIED9+ | 20 | ExtensionAbility未指定类型 | +| THUMBNAIL9+ | 13 | ExtensionAbility的类型包括缩略图 | +| PREVIEW9+ | 14 | ExtensionAbility的类型包括预览 | +| UNSPECIFIED9+ | 255 | ExtensionAbility未指定类型 | ## ExtensionFlag9+ -- GitLab From 2a8427c259fe72d61bf00ac46e8182ca34d44f12 Mon Sep 17 00:00:00 2001 From: Austin Date: Thu, 21 Jul 2022 06:52:24 +0000 Subject: [PATCH 148/868] update zh-cn/device-dev/subsystems/subsys-build-mini-lite.md. Signed-off-by: Austin23 --- zh-cn/device-dev/subsystems/subsys-build-mini-lite.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/subsystems/subsys-build-mini-lite.md b/zh-cn/device-dev/subsystems/subsys-build-mini-lite.md index 0c18f32304..a8cda2618b 100644 --- a/zh-cn/device-dev/subsystems/subsys-build-mini-lite.md +++ b/zh-cn/device-dev/subsystems/subsys-build-mini-lite.md @@ -629,7 +629,7 @@ optional arguments: # Note: The default toolchain is "ohos-clang". It's not mandatory if you use the default toochain. board_toolchain = "gcc-arm-none-eabi" - # The toolchain path instatlled, it's not mandatory if you have added toolchian path to your ~/.bashrc. + # The toolchain path installed, it's not mandatory if you have added toolchain path to your ~/.bashrc. board_toolchain_path = rebase_path("//prebuilts/gcc/linux-x86/arm/gcc-arm-none-eabi/bin", root_build_dir) -- GitLab From 1592a2be2585d643875027f2dbe030ed285658d3 Mon Sep 17 00:00:00 2001 From: Austin Date: Thu, 21 Jul 2022 06:55:49 +0000 Subject: [PATCH 149/868] update zh-cn/device-dev/subsystems/subsys-testguide-test.md. Signed-off-by: Austin23 --- zh-cn/device-dev/subsystems/subsys-testguide-test.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/device-dev/subsystems/subsys-testguide-test.md b/zh-cn/device-dev/subsystems/subsys-testguide-test.md index 7b10a0a981..a11367525b 100644 --- a/zh-cn/device-dev/subsystems/subsys-testguide-test.md +++ b/zh-cn/device-dev/subsystems/subsys-testguide-test.md @@ -758,7 +758,7 @@ subsystem # 子系统 当选择完产品形态,可参考如下指令执行测试用例。 ``` - run -t UT -ts CalculatorSubTest -tc interger_sub_00l + run -t UT -ts CalculatorSubTest -tc integer_sub_00l ``` 执行命令参数说明: ``` @@ -798,7 +798,7 @@ subsystem # 子系统 测试框架在执行用例时会根据指令找到所需用例,自动实现用例编译,执行过程,完成自动化测试。 ``` - run -t UT -ts CalculatorSubTest -tc interger_sub_00l + run -t UT -ts CalculatorSubTest -tc integer_sub_00l ``` 执行命令参数说明: ``` -- GitLab From 9853a29404c043a4dd433450c2282e7dc5f742cc Mon Sep 17 00:00:00 2001 From: tianyu Date: Tue, 19 Jul 2022 09:43:01 +0800 Subject: [PATCH 150/868] border explain Signed-off-by: tianyu --- .../arkui-js/js-components-svg-text.md | 2 +- .../figures/zh-cn_image_0000001219982705.gif | Bin 46164 -> 31893 bytes .../ts-universal-attributes-border.md | 123 ++++++++++++------ .../ui/ts-custom-component-initialization.md | 61 +++++---- 4 files changed, 122 insertions(+), 64 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-js/js-components-svg-text.md b/zh-cn/application-dev/reference/arkui-js/js-components-svg-text.md index 3e98506602..4df75ebf65 100644 --- a/zh-cn/application-dev/reference/arkui-js/js-components-svg-text.md +++ b/zh-cn/application-dev/reference/arkui-js/js-components-svg-text.md @@ -94,10 +94,10 @@
+ text attribute x|opacity|rotate - text attribute x|opacity|rotate
diff --git a/zh-cn/application-dev/reference/arkui-ts/figures/zh-cn_image_0000001219982705.gif b/zh-cn/application-dev/reference/arkui-ts/figures/zh-cn_image_0000001219982705.gif index e5566aaf94677c85c889362eedefc2ce484ed9d5..794e6fea1ccbe37ea7bac2dc93b57333fa412ead 100644 GIT binary patch literal 31893 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 z�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%0D#O7>=n3FVA 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 diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border.md index f7fc976acc..cb8e3ac303 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border.md @@ -2,9 +2,9 @@ > **说明:** > -> 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 +> 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 > -> 从API Version 9开始,父节点的border显示在子节点内容之上。 +> 从API Version 9开始,父节点的border显示在子节点内容之上。 设置组件边框样式。 @@ -18,43 +18,75 @@ ## 属性 -| 名称 | 参数类型 | 默认值 | 描述 | -| -------- | -------- | -------- | -------- | -| border | BorderOptions | - | 统一边框样式设置接口。 | -| borderStyle | BorderStyle |  BorderStyle.Solid | 设置元素的边框样式。 | -| borderWidth | Length | 0 | 设置元素的边框宽度。 | -| borderColor | Color | - | 设置元素的边框颜色。 | -| borderRadius | Length | 0 | 设置元素的边框圆角半径。 | +| 名称 | 参数类型 | 默认值 | 描述 | +| ------------ | ------------- | ----------------------- | ------------------------ | +| border | BorderOptions | - | 统一边框样式设置接口。 | +| borderStyle | BorderStyle |  BorderStyle.Solid | 设置元素的边框样式。 | +| borderWidth | Length | 0 | 设置元素的边框宽度。 | +| borderColor | Color | - | 设置元素的边框颜色。 | +| borderRadius | Length | 0 | 设置元素的边框圆角半径。 | - BorderOptions属性说明 - | 参数名称 | 参数类型 | 默认值 | 必填 | 参数描述 | - | -------- | -------- | -------- | -------- | -------- | - | width | [Length](../../ui/ts-types.md#长度类型) | 0 | 否 | 边框宽度。 | - | color | [ResourceColor](../../ui/ts-types.md) | 'Black' | 否 | 边框颜色。 | - | radius | [Length](../../ui/ts-types.md#长度类型)\| EdgeRadiuses9+ | 0 | 否 | 边框角度。 | - | style | BorderStyle | BorderStyle.Solid | 否 | 边框样式。 | + | 参数名称 | 参数类型 | 默认值 | 必填 | 参数描述 | + | -------- | ------------------------------------------------------------ | ----------------- | ---- | ---------- | + | width | [Length](../../ui/ts-types.md#长度类型)\|EdgeWidth9+ | 0 | 否 | 边框宽度。 | + | color | [ResourceColor](../../ui/ts-types.md)\|EdgeColor9+ | 'Black' | 否 | 边框颜色。 | + | radius | [Length](../../ui/ts-types.md#长度类型)\| EdgeRadiuses9+ | 0 | 否 | 边框角度。 | + | style | BorderStyle\|EdgeStyle9+ | BorderStyle.Solid | 否 | 边框样式。 | + + +- EdgeWidth9+对象说明 + + 引入该对象时,至少传入一个参数。 + + | 名称 | 参数类型 | 必填 | 默认值 | 描述 | + | ------ | -------- | ---- | ------ | -------------- | + | left | length | 否 | 0 | 左侧边框宽度。 | + | right | length | 否 | 0 | 右侧边框宽度。 | + | top | length | 否 | 0 | 上侧边框宽度。 | + | bottom | length | 否 | 0 | 下侧边框宽度。 | + +- EdgeColor9+对象说明 + + 引入该对象时,至少传入一个参数。 + + | 名称 | 参数类型 | 必填 | 默认值 | 描述 | + | ------ | ------------------------------------- | ---- | ------- | -------------- | + | left | [ResourceColor](../../ui/ts-types.md) | 否 | 'Black' | 左侧边框颜色。 | + | right | [ResourceColor](../../ui/ts-types.md) | 否 | 'Black' | 右侧边框颜色。 | + | top | [ResourceColor](../../ui/ts-types.md) | 否 | 'Black' | 上侧边框颜色。 | + | bottom | [ResourceColor](../../ui/ts-types.md) | 否 | 'Black' | 下侧边框颜色。 | - EdgeRadiuses9+对象说明 - + 引用该对象时,至少传入一个参数。 - + | 名称 | 参数类型 | 必填 | 默认值 | 描述 | | ----------- | -------- | ---- | ------ | ---------------- | | topLeft | length | 否 | 0 | 左上角圆角半径。 | | topRight | length | 否 | 0 | 右上角圆角半径。 | | bottomLeft | length | 否 | 0 | 左下角圆角半径。 | | bottomRight | length | 否 | 0 | 右下角圆角半径。 | - - - + +- EdgeStyle9+对象说明 + + 引入该对象时,至少传入一个参数。 + + | 名称 | 参数类型 | 必填 | 默认值 | 描述 | + | ------ | ----------- | ---- | ----------------- | -------------- | + | left | BorderStyle | 否 | BorderStyle.Solid | 左侧边框样式。 | + | right | BorderStyle | 否 | BorderStyle.Solid | 右侧边框样式。 | + | top | BorderStyle | 否 | BorderStyle.Solid | 上侧边框样式。 | + | bottom | BorderStyle | 否 | BorderStyle.Solid | 下侧边框样式。 | + - BorderStyle枚举说明 - - | 名称 | 描述 | - | -------- | -------- | + + | 名称 | 描述 | + | ------ | ----------------------------------------------- | | Dotted | 显示为一系列圆点,圆点半径为borderWidth的一半。 | - | Dashed | 显示为一系列短的方形虚线。 | - | Solid | 显示为一条实线。 | + | Dashed | 显示为一系列短的方形虚线。 | + | Solid | 显示为一条实线。 | ## 示例 @@ -65,22 +97,35 @@ @Component struct BorderExample { build() { - Flex({ justifyContent: FlexAlign.SpaceAround, alignItems: ItemAlign.Center }) { - // 线段 - Text('dashed') + Column() { + Flex({ justifyContent: FlexAlign.SpaceAround, alignItems: ItemAlign.Center }) { + // 线段 + Text('dashed') .borderStyle(BorderStyle.Dashed).borderWidth(5).borderColor(0xAFEEEE).borderRadius(10) - .width(120).height(120).textAlign(TextAlign.Center).fontSize(16) - Text('dashed') - .borderStyle(BorderStyle.Dashed).borderWidth(5).borderColor(0xAFEEEE) - .borderRadius({ topLeft: 10, topRight: 20, bottomLeft: 30, bottomRight: 60 }) - .width(120).height(120).textAlign(TextAlign.Center).fontSize(16) - // 点线 - Text('dotted') - .border({ width: 5, color: 0x317AF7, radius: 10, style: BorderStyle.Dotted }) - .width(120).height(120).textAlign(TextAlign.Center).fontSize(16) - }.width('100%').height(150) + .width(120).height(120).textAlign(TextAlign.Center).fontSize(16) + // 点线 + Text('dotted') + .border({ width: 5, color: 0x317AF7, radius: 10, style: BorderStyle.Dotted }) + .width(120).height(120).textAlign(TextAlign.Center).fontSize(16) + }.width('100%').height(150) + Text('.border') + .fontSize(50) + .width(300) + .height(300) + .border({ + width: { left: '5lpx', right: '10lpx', top: '20lpx', bottom: '30lpx' }, + color: { left: '#e3bbbb', right: Color.Blue, top: Color.Red, bottom: Color.Green }, + radius: { topLeft: 10, topRight: 20, bottomLeft: 40, bottomRight: 80 }, + style: { + left: BorderStyle.Dotted, + right: BorderStyle.Dotted, + top: BorderStyle.Solid, + bottom: BorderStyle.Dashed + } + }).textAlign(TextAlign.Center) + } } } ``` -![zh-cn_image_0000001219982705](figures/zh-cn_image_0000001219982705.gif) +![zh-cn_image_0000001219982705](figures/zh-cn_image_0000001219982705.gif) \ No newline at end of file diff --git a/zh-cn/application-dev/ui/ts-custom-component-initialization.md b/zh-cn/application-dev/ui/ts-custom-component-initialization.md index 0e407eb84d..8c7b27d39f 100644 --- a/zh-cn/application-dev/ui/ts-custom-component-initialization.md +++ b/zh-cn/application-dev/ui/ts-custom-component-initialization.md @@ -70,42 +70,55 @@ ## 示例 ``` +class ClassA { + public a:number + constructor(a: number) { + this.a = a + } +} @Entry @Component struct Parent { - @State parentState: ClassA = new ClassA() - build() { - Row() { - CompA({aState: new ClassA, aLink: $parentState}) // valid - CompA({aLink: $parentState}) // valid - CompA() // invalid, @Link aLink remains uninitialized - CompA({aLink: new ClassA}) // invalid, @Link aLink must be a reference ($) to either @State or @Link variable - } + @State parentState: ClassA = new ClassA(1) + + build() { + Column() { + Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) { + CompA({ astate: new ClassA(2), aLink: $parentState }) + } + Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) { + CompA({ aLink: $parentState }) + } + Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) { + CompA({ astate: new ClassA(3), aLink: $parentState }) + } } + } } @Component struct CompA { - @State aState: boolean = false // must initialize locally - @Link aLink: ClassA // must not initialize locally - - build() { - Row() { - CompB({bLink: $aLink, // valid init a @Link with reference of another @Link, - bProp: this.aState}) // valid init a @Prop with value of a @State - CompB({aLink: $aState, // invalid: type mismatch expected ref to ClassA, provided reference to boolean - bProp: false}) // valid init a @Prop by constants value - } + @State aState: any = false + @Link aLink: ClassA + + build() { + Column() { + CompB({ bLink: $aLink, bProp: this.aState }) + CompB({ bLink: $aState, bProp: false }) } + } } @Component struct CompB { - @Link bLink: ClassA = new ClassA() // invalid, must not initialize locally - @Prop bProp: boolean = false // invalid must not initialize locally - - build() { - ... - } + @Link bLink: ClassA + @Prop bProp: bpplean + + build() { + Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) { + Text(JSON.stringify(this.bLink.a)).fontSize(30) + Text(JSON.stringify(this.bProp)).fontSize(30).fontColor(Color.Red) + }.margin(10) + } } ``` -- GitLab From cac08ebe32ab4f91c59a87323038bb2c6ed7aaf6 Mon Sep 17 00:00:00 2001 From: wu Date: Thu, 21 Jul 2022 00:02:44 -0700 Subject: [PATCH 151/868] modify incorrect words of usb Signed-off-by: wu --- zh-cn/application-dev/reference/apis/js-apis-usb.md | 8 ++++---- zh-cn/device-dev/driver/driver-peripherals-usb-des.md | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-usb.md b/zh-cn/application-dev/reference/apis/js-apis-usb.md index 6f3b930ad6..2b7e9a2521 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-usb.md +++ b/zh-cn/application-dev/reference/apis/js-apis-usb.md @@ -130,8 +130,8 @@ hasRight(deviceName: string): boolean **示例:** ```js - let divicesName="1-1"; - let bool = usb.hasRight(divicesName); + let devicesName="1-1"; + let bool = usb.hasRight(devicesName); console.log(bool); ``` @@ -156,8 +156,8 @@ requestRight(deviceName: string): Promise<boolean> **示例:** ```js - let divicesName="1-1"; - usb.requestRight(divicesName).then((ret) => { + let devicesName="1-1"; + usb.requestRight(devicesName).then((ret) => { console.log(`requestRight = ${JSON.stringify(ret)}`); }); ``` diff --git a/zh-cn/device-dev/driver/driver-peripherals-usb-des.md b/zh-cn/device-dev/driver/driver-peripherals-usb-des.md index cfe37f3408..5292ee054b 100644 --- a/zh-cn/device-dev/driver/driver-peripherals-usb-des.md +++ b/zh-cn/device-dev/driver/driver-peripherals-usb-des.md @@ -468,7 +468,7 @@ static int AcmAllocNotifyRequest(struct AcmDevice *acm) return HDF_SUCCESS; error: - AcmFreeNotifyReqeust(acm); + AcmFreeNotifyRequest(acm); return ret; } @@ -592,7 +592,7 @@ static void AcmFreeRequests(struct AcmDevice *acm) g_syncRequest = NULL; } AcmFreeReadRequests(acm); - AcmFreeNotifyReqeust(acm); + AcmFreeNotifyRequest(acm); AcmFreeWriteRequests(acm); AcmWriteBufFree(acm); } @@ -631,7 +631,7 @@ static int32_t AcmAllocRequests(struct AcmDevice *acm) return HDF_SUCCESS; error_alloc_read_req: - AcmFreeNotifyReqeust(acm); + AcmFreeNotifyRequest(acm); error_alloc_int_req: AcmFreeWriteRequests(acm); error_alloc_write_req: @@ -1112,7 +1112,7 @@ err_submit_req: err_start_io: UsbFreeReadRequests(acm); err_alloc_read_reqs: - UsbFreeNotifyReqeust(acm); + UsbFreeNotifyRequest(acm); err_alloc_notify_req: UsbFreeWriteRequests(acm); err_alloc_write_reqs: @@ -1144,7 +1144,7 @@ static void UsbSerialRelease(struct AcmDevice *acm) g_syncRequest = NULL; } UsbFreeReadRequests(acm); - UsbFreeNotifyReqeust(acm); + UsbFreeNotifyRequest(acm); UsbFreeWriteRequests(acm); AcmWriteBufFree(acm); (void)UsbRawCloseDevice(acm->devHandle); -- GitLab From 42e3301eaf40c567724b9a8642f219dde29f2d49 Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 21 Jul 2022 07:41:00 +0000 Subject: [PATCH 152/868] update zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-image-effect.md. Signed-off-by: LiAn --- .../arkui-ts/ts-universal-attributes-image-effect.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-image-effect.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-image-effect.md index e7e0a8eaef..9168b2896a 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-image-effect.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-image-effect.md @@ -3,6 +3,7 @@ 例如背景模糊、内容模糊和灰度效果等。 > **说明:** +> > 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 @@ -18,13 +19,13 @@ | -------- | -------- | -------- | -------- | | blur | number | - | 为当前组件添加内容模糊效果,入参为模糊半径,模糊半径越大越模糊,为0时不模糊。 | | backdropBlur | number | - | 为当前组件添加背景模糊效果,入参为模糊半径,模糊半径越大越模糊,为0时不模糊。 | -| shadow | {
radius: number,
color?: Color,
offsetX?: number,
offsetY?: number
} | - | 为当前组件添加阴影效果,入参为模糊半径(必填)、阴影的颜色(可选,默认为灰色)、X轴的偏移量(可选,默认为0),Y轴的偏移量(可选,默认为0),偏移量单位为px。 | +| shadow | {
radius: number,
color?: Color \| string \| [Resource](../../ui/ts-types.md#resource类型),
offsetX?: number,
offsetY?: number
} | - | 为当前组件添加阴影效果,入参为模糊半径(必填)、阴影的颜色(可选,默认为灰色)、X轴的偏移量(可选,默认为0),Y轴的偏移量(可选,默认为0),偏移量单位为px。 | | grayscale | number | 0.0 | 为当前组件添加灰度效果。值定义为灰度转换的比例,入参1.0则完全转为灰度图像,入参则0.0图像无变化,入参在0.0和1.0之间时,效果呈线性变化。(百分比) | | brightness | number | 1.0 | 为当前组件添加高光效果,入参为高光比例,值为1时没有效果,小于1时亮度变暗,0为全黑;大于1时亮度增加,数值越大亮度越大。 | | saturate | number | 1.0 | 为当前组件添加饱和度效果,饱和度为颜色中的含色成分和消色成分(灰)的比例,入参为1时,显示原图像,大于1时含色成分越大,饱和度越大;小于1时消色成分越大,饱和度越小。(百分比) | | contrast | number | 1.0 | 为当前组件添加对比度效果,入参为对比度的值,值为1时,显示原图;大于1时,值越大对比度越高,图像越清晰醒目;小于1时,值越小对比度越低;当对比度为0时,图像变为全灰。(百分比) | | invert | number | 0 | 反转输入的图像。入参为图像反转的比例。值为1时完全反转。值为0则图像无变化。(百分比) | -| colorBlend 8+ | Color | - | 为当前组件添加颜色叠加效果,入参为叠加的颜色。 | +| colorBlend 8+ | Color \| string \| [Resource](../../ui/ts-types.md#resource类型)| | - | 为当前组件添加颜色叠加效果,入参为叠加的颜色。 | | sepia | number | 0 | 将图像转换为深褐色。入参为图像反转的比例。值为1则完全是深褐色的,值为0图像无变化。 (百分比) | | hueRotate | number \| string | '0deg' | 为当前组件添加色相旋转效果,入参为旋转的角度值,0deg时图像无变化。入参没有最大值,超过360deg时相当于又绕一圈,即,370deg和10deg的色相旋转效果相同。 | -- GitLab From 3f8b55d766959e284ab57631355958b04fa27fb8 Mon Sep 17 00:00:00 2001 From: hnz Date: Thu, 21 Jul 2022 07:43:57 +0000 Subject: [PATCH 153/868] =?UTF-8?q?TS=E7=94=BB=E5=B8=83=E7=BB=84=E4=BB=B6(?= =?UTF-8?q?ts-canvasrenderingcontext2d.md)=E4=B8=ADRenderingContextSetting?= =?UTF-8?q?s=E5=8F=82=E6=95=B0=E7=B1=BB=E5=9E=8B=E6=9B=B4=E6=AD=A3=20Signe?= =?UTF-8?q?d-off-by:=20=E8=B4=BA=E5=BF=B5=E5=93=B2=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/arkui-ts/ts-canvasrenderingcontext2d.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md b/zh-cn/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md index 602a4899e4..a6e99ab755 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md @@ -19,14 +19,14 @@ CanvasRenderingContext2D(setting: RenderingContextSetting) ### RenderingContextSettings -RenderingContextSettings(antialias?: bool) +RenderingContextSettings(antialias?: boolean) 用来配置CanvasRenderingContext2D对象的参数,包括是否开启抗锯齿。 - 参数 | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | --------- | ---- | ---- | ----- | ---------------- | - | antialias | bool | 否 | false | 表明canvas是否开启抗锯齿。 | + | antialias | boolean | 否 | false | 表明canvas是否开启抗锯齿。 | ## 属性 -- GitLab From b6fc57d8db67ee84d31b986c559e5373431f3df7 Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 21 Jul 2022 07:50:51 +0000 Subject: [PATCH 154/868] update zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border.md. Signed-off-by: LiAn --- .../reference/arkui-ts/ts-universal-attributes-border.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border.md index cb8e3ac303..57e660947e 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-border.md @@ -23,7 +23,7 @@ | border | BorderOptions | - | 统一边框样式设置接口。 | | borderStyle | BorderStyle |  BorderStyle.Solid | 设置元素的边框样式。 | | borderWidth | Length | 0 | 设置元素的边框宽度。 | -| borderColor | Color | - | 设置元素的边框颜色。 | +| borderColor | [ResourceColor](../../ui/ts-types.md) | - | 设置元素的边框颜色。 | | borderRadius | Length | 0 | 设置元素的边框圆角半径。 | - BorderOptions属性说明 -- GitLab From a14bdcf3c4439d778d854e0d5c7836c7894e2222 Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 21 Jul 2022 08:00:13 +0000 Subject: [PATCH 155/868] update zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-gradient-color.md. Signed-off-by: LiAn --- .../arkui-ts/ts-universal-attributes-gradient-color.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-gradient-color.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-gradient-color.md index c2ccb7bf9b..84b2405d6f 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-gradient-color.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-gradient-color.md @@ -3,6 +3,7 @@ 设置组件的颜色渐变效果。 > **说明:** +> > 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 @@ -17,7 +18,7 @@ | 名称 | 参数类型 | 默认值 | 描述 | | -------- | -------- | -------- | -------- | | linearGradient | {
angle?: [Angle](../../ui/ts-types.md),
direction?: GradientDirection,
colors: Array<[ColorStop](../../ui/ts-types.md)>
repeating?: boolean
} | - | 线性渐变。
angle: 线性渐变的角度。
direction: 线性渐变的方向。
colors: 为渐变的颜色描述。
repeating: 为渐变的颜色重复着色。 | -| sweepGradient | {
center: Point,
start?: angle,
end?: angle,
colors: Array<[ColorStop](../../ui/ts-types.md)>
repeating?: boolean
} | - | 角度渐变。
center:为角度渐变的中心点。
start:角度渐变的起点。
end:角度渐变的终点。
colors: 为渐变的颜色描述。
repeating: 为渐变的颜色重复着色。 | +| sweepGradient | {
center: Point,
start?: angle,
end?: angle,
rotation?: Length,
colors: Array<[ColorStop](../../ui/ts-types.md)>
repeating?: boolean
} | - | 角度渐变。
center:为角度渐变的中心点。
start:角度渐变的起点。
end:角度渐变的终点。
rotation:角度旋转。
colors: 为渐变的颜色描述。
repeating: 为渐变的颜色重复着色。 | | radialGradient | {
center: Point,
radius: Length,
colors: Array<[ColorStop](../../ui/ts-types.md)>
repeating: boolean
} | - | 径向渐变。
center:径向渐变的中心点。
radius:径向渐变的半径。
colors: 为渐变的颜色描述。
repeating: 为渐变的颜色重复着色。 | -- GitLab From c580fa83c7d733d5792756c123aa40962fe407c0 Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 21 Jul 2022 08:06:19 +0000 Subject: [PATCH 156/868] update zh-cn/application-dev/ui/ts-syntactic-sugar.md. Signed-off-by: LiAn --- zh-cn/application-dev/ui/ts-syntactic-sugar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/ui/ts-syntactic-sugar.md b/zh-cn/application-dev/ui/ts-syntactic-sugar.md index bc36b2e26a..944b880383 100644 --- a/zh-cn/application-dev/ui/ts-syntactic-sugar.md +++ b/zh-cn/application-dev/ui/ts-syntactic-sugar.md @@ -44,7 +44,7 @@ struct MyComponent { | @Component | struct | 结构体在装饰后具有基于组件的能力,需要实现build方法来更新UI。 | | @Entry | struct | 组件被装饰后作为页面的入口,页面加载时将被渲染显示。 | | @Preview | struct | 用@Preview装饰的自定义组件可以在DevEco Studio的预览器上进行预览,加载页面时,将创建并呈现@Preview装饰的自定义组件。 | -| @Builder | 方法 | 在@Builder装饰的方法用通过声明式UI描述,可以在一个自定义组件内快速生成多个布局内容。 | +| @Builder | 方法 | 在@Builder装饰的方法里,可以用声明式UI描述快速生成布局内容。 | | @Extend | 方法 | @Extend装饰器将新的属性函数添加到内置组件上,通过@Extend装饰器可以快速定义并复用组件的自定义样式。 | | @CustomDialog | struct | @CustomDialog装饰器用于装饰自定义弹窗。 | | @State | 基本数据类型,类,数组 | 修饰的状态数据被修改时会触发组件的build方法进行UI界面更新。 | -- GitLab From 3eca036214340d91c2b740d17a54a177f46169ac Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 21 Jul 2022 08:07:02 +0000 Subject: [PATCH 157/868] update zh-cn/application-dev/ui/ts-custom-component-initialization.md. Signed-off-by: LiAn --- zh-cn/application-dev/ui/ts-custom-component-initialization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/ui/ts-custom-component-initialization.md b/zh-cn/application-dev/ui/ts-custom-component-initialization.md index 8c7b27d39f..965671a1e2 100644 --- a/zh-cn/application-dev/ui/ts-custom-component-initialization.md +++ b/zh-cn/application-dev/ui/ts-custom-component-initialization.md @@ -10,7 +10,7 @@ - 在构造组件时通过构造参数初始化,例如: ``` - MyComponent(counter: $myCounter) + MyComponent({counter: $myCounter}) ``` -- GitLab From c416e92560709eabdc764ea01ff473faec6c9803 Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 21 Jul 2022 08:18:34 +0000 Subject: [PATCH 158/868] update zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-text-style.md. Signed-off-by: LiAn --- .../arkui-ts/ts-universal-attributes-text-style.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-text-style.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-text-style.md index f78f9b1416..940dcc2f82 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-text-style.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-text-style.md @@ -1,6 +1,7 @@ # 文本样式设置 > **说明:** +> > 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 @@ -17,11 +18,11 @@ | 名称 | 参数类型 | 默认值 | 描述 | | -------- | -------- | -------- | -------- | -| fontColor | Color | - | 设置文本颜色。 | -| fontSize | Length | - | 设置文本尺寸,Length为number类型时,使用fp单位。 | +| fontColor | [ResourceColor](../../ui/ts-types.md) | - | 设置文本颜色。 | +| fontSize | Length \| [Resource](../../ui/ts-types.md#resource类型) | - | 设置文本尺寸,Length为number类型时,使用fp单位。 | | fontStyle | FontStyle | FontStyle.Normal | 设置文本的字体样式。 | -| fontWeight | number \| FontWeight | FontWeight.FontWeightNormal | 设置文本的字体粗细,number类型取值[100, 900],取值间隔为100,默认为400,取值越大,字体越粗。
提供常用枚举值,参考:FontWeight枚举说明。 | -| fontFamily | string | - | 设置文本的字体列表。使用多个字体,使用','进行分割,优先级按顺序生效。例如:'Arial, sans-serif'。 | +| fontWeight | number \| FontWeight \| string | FontWeight.FontWeightNormal | 设置文本的字体粗细,number类型取值[100, 900],取值间隔为100,默认为400,取值越大,字体越粗。
提供常用枚举值,参考:FontWeight枚举说明。 | +| fontFamily | string \| [Resource](../../ui/ts-types.md#resource类型) | - | 设置文本的字体列表。使用多个字体,使用','进行分割,优先级按顺序生效。例如:'Arial, sans-serif'。 | - FontStyle枚举说明 -- GitLab From b9b3d0d62dae191417dcd14540471ddb892030bd Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 21 Jul 2022 08:22:43 +0000 Subject: [PATCH 159/868] update zh-cn/application-dev/reference/arkui-ts/ts-universal-events-click.md. Signed-off-by: LiAn --- .../reference/arkui-ts/ts-universal-events-click.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-events-click.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-events-click.md index ae2bda63aa..87355fc2a9 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-events-click.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-events-click.md @@ -3,16 +3,9 @@ 点击事件指组件被点击时触发的事件。 > **说明:** +> > 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 -## 支持设备 - -| 手机 | 平板 | 智慧屏 | 智能穿戴 | -| ---- | ---- | ------ | -------- | -| 支持 | 支持 | 不支持 | 不支持 | - - - ## 权限列表 无 -- GitLab From d60a9cd81a0407f63f668192f6a9e9fb29b65920 Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 21 Jul 2022 08:30:04 +0000 Subject: [PATCH 160/868] update zh-cn/application-dev/ui/ts-syntactic-sugar.md. Signed-off-by: LiAn --- zh-cn/application-dev/ui/ts-syntactic-sugar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/ui/ts-syntactic-sugar.md b/zh-cn/application-dev/ui/ts-syntactic-sugar.md index 944b880383..92b9df0a89 100644 --- a/zh-cn/application-dev/ui/ts-syntactic-sugar.md +++ b/zh-cn/application-dev/ui/ts-syntactic-sugar.md @@ -44,7 +44,7 @@ struct MyComponent { | @Component | struct | 结构体在装饰后具有基于组件的能力,需要实现build方法来更新UI。 | | @Entry | struct | 组件被装饰后作为页面的入口,页面加载时将被渲染显示。 | | @Preview | struct | 用@Preview装饰的自定义组件可以在DevEco Studio的预览器上进行预览,加载页面时,将创建并呈现@Preview装饰的自定义组件。 | -| @Builder | 方法 | 在@Builder装饰的方法里,可以用声明式UI描述快速生成布局内容。 | +| @Builder | 方法 | 在@Builder装饰的方法里,通过声明式UI描述,可以在一个自定义组件内快速生成多个布局内容。 | | @Extend | 方法 | @Extend装饰器将新的属性函数添加到内置组件上,通过@Extend装饰器可以快速定义并复用组件的自定义样式。 | | @CustomDialog | struct | @CustomDialog装饰器用于装饰自定义弹窗。 | | @State | 基本数据类型,类,数组 | 修饰的状态数据被修改时会触发组件的build方法进行UI界面更新。 | -- GitLab From c10e2bd1dbd10abc7eba7ab96fe94f36436e2077 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Thu, 21 Jul 2022 08:35:21 +0000 Subject: [PATCH 161/868] =?UTF-8?q?update=20zh-cn/contribute/template/guid?= =?UTF-8?q?e-template.md=EF=BC=9A=E6=97=A0=E9=9C=80=E7=BF=BB=E8=AF=91=20Si?= =?UTF-8?q?gned-off-by:=20@ge-yafang=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/contribute/template/guide-template.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/zh-cn/contribute/template/guide-template.md b/zh-cn/contribute/template/guide-template.md index 9e6581f02f..4423840723 100644 --- a/zh-cn/contribute/template/guide-template.md +++ b/zh-cn/contribute/template/guide-template.md @@ -380,9 +380,8 @@ _描述开发过程遇到的各类问题以及解决方案,以提高开发效 - _如果无常见问题,删除此章节。_ -- _如果有常见问题,建议单独章节,后续具备扩展性。_ +- _各任务场景通用的常见问题,建议以单独章节呈现;单个任务场景相关的常见问题,放在对应任务场景的章节下即可。_ -- _如果有常见问题,问题少于1屏且未来扩充可能性不大,可放在“开发指导”。_ ### 1.XX问题(简单问题) -- GitLab From 5ab15dd56a5fe9da27422c854893bee22c973129 Mon Sep 17 00:00:00 2001 From: luoying_ace Date: Thu, 21 Jul 2022 09:38:01 +0000 Subject: [PATCH 162/868] update zh-cn/application-dev/reference/apis/js-apis-router.md. Signed-off-by: luoying_ace_admin --- .../reference/apis/js-apis-router.md | 509 ++++++++---------- 1 file changed, 229 insertions(+), 280 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-router.md b/zh-cn/application-dev/reference/apis/js-apis-router.md index 51f8738c2f..1dc12db497 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-router.md +++ b/zh-cn/application-dev/reference/apis/js-apis-router.md @@ -2,9 +2,10 @@ 本模块提供通过不同的url访问不同的页面,包括跳转到应用内的指定页面、用应用内的某个页面替换当前页面、返回上一页面或指定的页面等。 -> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明** +> **说明** > > - 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> > - 页面路由需要在页面渲染完成之后才能调用,在onInit和onReady生命周期中页面还处于渲染阶段,禁止调用页面路由方法。 ## 导入模块 @@ -13,59 +14,60 @@ import router from '@ohos.router' ``` -## 权限列表 - -无 - ## router.push -push(options: RouterOptions, mode?: RouterMode): void +push(options: RouterOptions): void 跳转到应用内的指定页面。 **系统能力:** SystemCapability.ArkUI.ArkUI.Full **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | -------- | -------- | -| options | [RouterOptions](#routeroptions) | 是 | 跳转页面描述信息。 | -| mode9+ | [RouterMode](#routermode9) | 否 | 跳转页面使用的模式。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ------------------------------- | ---- | ------------------ | +| options | [RouterOptions](#routeroptions) | 是 | 跳转页面描述信息。 | **示例:** ```js - // 在当前页面中 - export default { - pushPage() { - router.push({ - url: 'pages/routerpage2/routerpage2', - params: { - data1: 'message', - data2: { - data3: [123, 456, 789] - }, - }, - }); - } - } +router.push({ + url: 'pages/routerpage2', + params: { + data1: 'message', + data2: { + data3: [123, 456, 789] + }, + }, +}); ``` +## router.push9+ + +push(options: RouterOptions, mode: RouterMode): void + +跳转到应用内的指定页面。 + +**系统能力:** SystemCapability.ArkUI.ArkUI.Full + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| ----------------- | ------------------------------- | ---- | -------------------- | +| options | [RouterOptions](#routeroptions) | 是 | 跳转页面描述信息。 | +| mode9+ | [RouterMode](#routermode9) | 是 | 跳转页面使用的模式。 | + + +**示例:** ```js - // 在routerpage2页面中 - export default { - data: { - data1: 'default', - data2: { - data3: [1, 2, 3] - } +router.push({ + url: 'pages/routerpage2/routerpage2', + params: { + data1: 'message', + data2: { + data3: [123, 456, 789] }, - onInit() { - console.info('showData1:' + this.data1); - console.info('showData3:' + this.data2.data3); - } - } + }, +},router.RouterMode.Standard); ``` - ## router.replace replace(options: RouterOptions, mode?: RouterMode): void @@ -75,37 +77,44 @@ replace(options: RouterOptions, mode?: RouterMode): void **系统能力:** SystemCapability.ArkUI.ArkUI.Full **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | -------- | -------- | -| options | [RouterOptions](#routeroptions) | 是 | 替换页面描述信息。 | -| mode9+ | [RouterMode](#routermode9) | 否 | 跳转页面使用的模式。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ------------------------------- | ---- | ------------------ | +| options | [RouterOptions](#routeroptions) | 是 | 替换页面描述信息。 | **示例:** ```js - // 在当前页面中 - export default { - replacePage() { - router.replace({ - url: 'pages/detail/detail', - params: { - data1: 'message', - }, - }, router.RouterMode.Standard); - } - } +router.replace({ + url: 'pages/detail', + params: { + data1: 'message', + }, +}); ``` + ## router.replace9+ + +replace(options: RouterOptions, mode: RouterMode): void + +用应用内的某个页面替换当前页面,并销毁被替换的页面。 + +**系统能力:** SystemCapability.ArkUI.ArkUI.Full + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| ----------------- | ------------------------------- | ---- | -------------------- | +| options | [RouterOptions](#routeroptions) | 是 | 替换页面描述信息。 | +| mode9+ | [RouterMode](#routermode9) | 是 | 跳转页面使用的模式。 | + +**示例:** + ```js - // 在detail页面中 - export default { - data: { - data1: 'default' - }, - onInit() { - console.info('showData1:' + this.data1) - } - } +router.replace({ + url: 'pages/detail/detail', + params: { + data1: 'message', + }, +}, router.RouterMode.Standard); ``` ## router.back @@ -117,58 +126,14 @@ back(options?: RouterOptions ): void **系统能力:** SystemCapability.ArkUI.ArkUI.Full **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | -------- | -------- | -| options | [RouterOptions](#routeroptions) | 是 | 返回页面描述信息,其中参数url指路由跳转时会返回到指定url的界面,如果页面栈上没有url页面,则不响应该情况。如果url未设置,则返回上一页。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ------------------------------- | ---- | ------------------------------------------------------------ | +| options | [RouterOptions](#routeroptions) | 否 | 返回页面描述信息,其中参数url指路由跳转时会返回到指定url的界面,如果页面栈上没有url页面,则不响应该情况。如果url未设置,则返回上一页。 | **示例:** - ```js - // index页面 - export default { - indexPushPage() { - router.push({ - url: 'pages/detail/detail', - }); - } - } - ``` - - ```js - // detail页面 - export default { - detailPushPage() { - router.push({ - url: 'pages/mall/mall', - }); - } - } - ``` ```js - // mall页面通过back,将返回detail页面 - export default { - mallBackPage() { - router.back(); - } - } - ``` - - ```js - // detail页面通过back,将返回index页面 - export default { - defaultBack() { - router.back(); - } - } - ``` - - ```js - // 通过back,返回到detail页面 - export default { - backToDetail() { - router.back({uri:'pages/detail/detail'}); - } - } +router.back({uri:'pages/detail'}); ``` ## router.clear @@ -180,12 +145,9 @@ clear(): void **系统能力:** SystemCapability.ArkUI.ArkUI.Full **示例:** + ```js - export default { - clearPage() { - router.clear(); - } - }js +router.clear(); ``` ## router.getLength @@ -197,18 +159,14 @@ getLength(): string **系统能力:** SystemCapability.ArkUI.ArkUI.Full **返回值:** -| 类型 | 说明 | -| -------- | -------- | +| 类型 | 说明 | +| ------ | ---------------------------------- | | string | 页面数量,页面栈支持最大数值是32。 | **示例:** ```js - export default { - getLength() { - var size = router.getLength(); - console.log('pages stack size = ' + size); - } - } +var size = router.getLength(); +console.log('pages stack size = ' + size); ``` ## router.getState @@ -224,28 +182,26 @@ getState(): RouterState | 类型 | 说明 | | --------------------------- | -------------- | | [RouterState](#routerstate) | 页面状态信息。 | +**示例:** + +```js +var page = router.getState(); +console.log('current index = ' + page.index); +console.log('current name = ' + page.name); +console.log('current path = ' + page.path); +``` + ## RouterState -页面状态信息。 -**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full。 +页面状态信息。 -| 名称 | 类型 | 说明 | -| -------- | -------- | -------- | -| index | number | 表示当前页面在页面栈中的索引。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 从栈底到栈顶,index从1开始递增。 | -| name | string | 表示当前页面的名称,即对应文件名。 | -| path | string | 表示当前页面的路径。 | +**系统能力:** SystemCapability.ArkUI.ArkUI.Full。 -**示例:** - ```js - export default { - getState() { - var page = router.getState(); - console.log('current index = ' + page.index); - console.log('current name = ' + page.name); - console.log('current path = ' + page.path); - } - } - ``` +| 名称 | 类型 | 说明 | +| ----- | ------ | ------------------------------------------------------------ | +| index | number | 表示当前页面在页面栈中的索引。从栈底到栈顶,index从1开始递增。 | +| name | string | 表示当前页面的名称,即对应文件名。 | +| path | string | 表示当前页面的路径。 | ## router.enableAlertBeforeBackPage @@ -256,26 +212,16 @@ enableAlertBeforeBackPage(options: EnableAlertOptions): void **系统能力:** SystemCapability.ArkUI.ArkUI.Full **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | -------- | -------- | -| options | [EnableAlertOptions](#enablealertoptions) | 是 | 文本弹窗信息描述。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ----------------------------------------- | ---- | ------------------ | +| options | [EnableAlertOptions](#enablealertoptions) | 是 | 文本弹窗信息描述。 | **示例:** - ```js - export default { - enableAlertBeforeBackPage() { - router.enableAlertBeforeBackPage({ - message: 'Message Info', - success: function() { - console.log('success'); - }, - fail: function() { - console.log('fail'); - }, - }); - } - } + ```js + router.enableAlertBeforeBackPage({ + message: 'Message Info' + }); ``` ## EnableAlertOptions @@ -283,9 +229,9 @@ enableAlertBeforeBackPage(options: EnableAlertOptions): void **系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full。 -| 名称 | 类型 | 必填 | 说明 | -| -------- | -------- | -------- | -------- | -| message | string | 是 | 询问对话框内容。 | +| 名称 | 类型 | 必填 | 说明 | +| ------- | ------ | ---- | ---------------- | +| message | string | 是 | 询问对话框内容。 | ## router.disableAlertBeforeBackPage @@ -297,11 +243,7 @@ disableAlertBeforeBackPage(): void **示例:** ```js - export default { - disableAlertBeforeBackPage() { - router.disableAlertBeforeBackPage(); - } - } +router.disableAlertBeforeBackPage(); ``` ## router.getParams @@ -320,133 +262,140 @@ getParams(): Object **示例:** -- 类Web范示例 - ```js - // 在当前页面中 - export default { - pushPage() { - router.push({ - url: 'pages/detail/detail', - params: { - data1: 'message', - }, - }); - } - } - ``` - ```js - // 在detail页面中 - export default { - onInit() { - console.info('showData1:' + router.getParams().data1); - } - } - ``` - -- 声明式示例 - - ```ts - //通过router.push跳转至目标页携带params参数 - import router from '@ohos.router' - - @Entry - @Component - struct Index { - async routePage() { - let options = { - url: 'pages/second', - params: { - text: '这是第一页的值', - data: { - array: [12, 45, 78] - }, - } - } - try { - await router.push(options) - } catch (err) { - console.info(` fail callback, code: ${err.code}, msg: ${err.msg}`) - } - } - - build() { - Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { - Text('这是第一页') - .fontSize(50) - .fontWeight(FontWeight.Bold) - Button() { - Text('next page') - .fontSize(25) - .fontWeight(FontWeight.Bold) - }.type(ButtonType.Capsule) - .margin({ top: 20 }) - .backgroundColor('#ccc') - .onClick(() => { - this.routePage() - }) - } - .width('100%') - .height('100%') - } - } - ``` - - ```ts - //在second页面中接收传递过来的参数 - import router from '@ohos.router' - - @Entry - @Component - struct Second { - private content: string = "这是第二页" - @State text: string = router.getParams()['text'] - @State data: any = router.getParams()['data'] - @State secondData : string = '' - - build() { - Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { - Text(`${this.content}`) - .fontSize(50) - .fontWeight(FontWeight.Bold) - Text(this.text) - .fontSize(30) - .onClick(()=>{ - this.secondData = (this.data.array[1]).toString() - }) - .margin({top:20}) - Text('第一页传来的数值' + ' ' + this.secondData) - .fontSize(20) - .margin({top:20}) - .backgroundColor('red') - } - .width('100%') - .height('100%') - } - } - ``` +``` +router.getParams(); +``` ## RouterOptions 路由跳转选项。 -**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Lite。 +**系统能力:** SystemCapability.ArkUI.ArkUI.FULL。 -| 名称 | 类型 | 必填 | 说明 | -| -------- | -------- | -------- | -------- | -| url | string | 是 | 表示目标页面的uri,可以用以下两种格式:
- 页面绝对路径,由配置文件中pages列表提供,例如:
  - pages/index/index
  - pages/detail/detail
- 特殊值,如果uri的值是"/",则跳转到首页。 | -| params | Object | 否 | 跳转时要同时传递到目标页面的数据,跳转到目标页面后,参数可以在页面中直接使用,如this.data1(data1为跳转时params参数中的key值)。如果目标页面中已有该字段,则其值会被传入的字段值覆盖。 | +| 名称 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------------------------------------------------------------ | +| url | string | 是 | 表示目标页面的uri,可以用以下两种格式:
- 页面绝对路径,由配置文件中pages列表提供,例如:
  - pages/index/index
  - pages/detail/detail
- 特殊值,如果uri的值是"/",则跳转到首页。 | +| params | Object | 否 | 跳转时要同时传递到目标页面的数据,跳转到目标页面后,参数可以在页面中直接使用,如this.data1(data1为跳转时params参数中的key值)。如果目标页面中已有该字段,则其值会被传入的字段值覆盖。 | - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > **说明:** > 页面路由栈支持的最大Page数量为32。 ## RouterMode9+ 路由跳转模式。 -**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Lite。 +**系统能力:** SystemCapability.ArkUI.ArkUI.FULL。 + +| 名称 | 描述 | +| -------- | ------------------------------------------------------------ | +| Standard | 标准模式。 | +| Single | 单实例模式。
如果目标页面的url在页面栈中已经存在同url页面,离栈顶最近的页面会被移动到栈顶,移动后的页面为新建页。
如目标页面的url在页面栈中不存在同url页面,按标准模式跳转。 | + +## 完整示例 + +### 基于JS扩展的类Web开发范式 + +```js +// 在当前页面中 +export default { + pushPage() { + router.push({ + url: 'pages/detail/detail', + params: { + data1: 'message', + }, + }); + } +} +``` +```js +// 在detail页面中 +export default { + onInit() { + console.info('showData1:' + router.getParams().data1); + } +} +``` + +### 基于TS扩展的声明式开发范式 -| 名称 | 描述 | -| -------- | -------- | -| Standard | 标准模式。 | -| Single | 单实例模式。
如果目标页面的url在页面栈中已经存在同url页面,离栈顶最近的页面会被移动到栈顶,移动后的页面为新建页。
如目标页面的url在页面栈中不存在同url页面,按标准模式跳转。 | +```ts +//通过router.push跳转至目标页携带params参数 +import router from '@ohos.router' + +@Entry +@Component +struct Index { + async routePage() { + let options = { + url: 'pages/second', + params: { + text: '这是第一页的值', + data: { + array: [12, 45, 78] + }, + } + } + try { + await router.push(options) + } catch (err) { + console.info(` fail callback, code: ${err.code}, msg: ${err.msg}`) + } + } + + build() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Text('这是第一页') + .fontSize(50) + .fontWeight(FontWeight.Bold) + Button() { + Text('next page') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ top: 20 }) + .backgroundColor('#ccc') + .onClick(() => { + this.routePage() + }) + } + .width('100%') + .height('100%') + } +} +``` + +```ts +//在second页面中接收传递过来的参数 +import router from '@ohos.router' + +@Entry +@Component +struct Second { + private content: string = "这是第二页" + @State text: string = router.getParams()['text'] + @State data: any = router.getParams()['data'] + @State secondData : string = '' + + build() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Text(`${this.content}`) + .fontSize(50) + .fontWeight(FontWeight.Bold) + Text(this.text) + .fontSize(30) + .onClick(()=>{ + this.secondData = (this.data.array[1]).toString() + }) + .margin({top:20}) + Text('第一页传来的数值' + ' ' + this.secondData) + .fontSize(20) + .margin({top:20}) + .backgroundColor('red') + } + .width('100%') + .height('100%') + } +} +``` \ No newline at end of file -- GitLab From 9dc2e484717615db701e59182dde5fb1a9c52f93 Mon Sep 17 00:00:00 2001 From: xu-rui-w Date: Thu, 21 Jul 2022 18:19:56 +0800 Subject: [PATCH 163/868] =?UTF-8?q?=E6=96=87=E6=A1=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xu-rui-w --- .../reference/apis/js-apis-image.md | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-image.md b/zh-cn/application-dev/reference/apis/js-apis-image.md index a599623f3b..18d4c577a4 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-image.md +++ b/zh-cn/application-dev/reference/apis/js-apis-image.md @@ -82,9 +82,9 @@ image.createPixelMap(color, opts, (error, pixelmap) => { **系统能力:** SystemCapability.Multimedia.Image.Core -| 名称 | 类型 | 可读 | 可写 | 说明 | -| ----------------------- | ------- | ---- | ---- | -------------------------- | -| isEditable7+ | boolean | 是 | 否 | 设定是否图像像素可被编辑。 | +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ---------- | ------- | ---- | ---- | -------------------------- | +| isEditable | boolean | 是 | 否 | 设定是否图像像素可被编辑。 | ### readPixelsToBuffer7+ @@ -103,7 +103,7 @@ readPixelsToBuffer(dst: ArrayBuffer): Promise\ **返回值:** | 类型 | 说明 | -| :------------- | :---------------------------------------------- | +| -------------- | ----------------------------------------------- | | Promise\ | Promise实例,用于获取结果,失败时返回错误信息。 | **示例:** @@ -279,7 +279,7 @@ writePixels(area: PositionArea, callback: AsyncCallback\): void | 参数名 | 类型 | 必填 | 说明 | | --------- | ------------------------------ | ---- | ------------------------------ | | area | [PositionArea](#positionarea7) | 是 | 区域,根据区域写入。 | -| callback: | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。 | +| callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。 | **示例:** @@ -1218,8 +1218,8 @@ getImageProperty(key:string, options?: GetImagePropertyOptions): Promise\ | Promise实例,用于异步获取图片属性值,如获取失败则返回属性默认值。 | **示例:** @@ -1268,11 +1268,11 @@ getImageProperty(key:string, options: GetImagePropertyOptions, callback: AsyncCa **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------ | -| key | string | 是 | 图片属性名。 | -| options | [GetImagePropertyOptions](#getimagepropertyoptions7) | 是 | 图片属性,包括图片序号与默认属性值。 | -| callback | AsyncCallback\ | 是 | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------- | +| key | string | 是 | 图片属性名。 | +| options | [GetImagePropertyOptions](#getimagepropertyoptions7) | 是 | 图片属性,包括图片序号与默认属性值。 | +| callback | AsyncCallback\ | 是 | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。| **示例:** @@ -1600,8 +1600,8 @@ packing(source: ImageSource, option: PackingOption): Promise\ **返回值:** | 类型 | 说明 | -| :--------------------------- | :-------------------------------------------- | -| Promise\ | Promise实例,用于异步获取压缩或打包后的数据。 | +| ---------------------------- | --------------------------------------------- | +| Promise\ | Promise实例,用于异步获取压缩或打包后的数据。 | **示例:** @@ -1661,9 +1661,9 @@ packing(source: PixelMap, option: PackingOption): Promise\ **返回值:** -| 类型 | 说明 | -| :--------------------------- | :-------------------------------------------- | -| Promise\ | Promise实例,用于异步获取压缩或打包后的数据。 | +| 类型 | 说明 | +| --------------------- | -------------------------------------------- | +| Promise\ | Promise实例,用于异步获取压缩或打包后的数据。| **示例:** @@ -1710,9 +1710,9 @@ release(): Promise\ **返回值:** -| 类型 | 说明 | -| :------------- | :------------------------------------------------------ | -| Promise\ | Promise实例,用于异步获取释放结果,失败时返回错误信息。 | +| 类型 | 说明 | +| -------------- | ------------------------------------------------------ | +| Promise\ | Promise实例,用于异步获取释放结果,失败时返回错误信息。| **示例:** @@ -1763,11 +1763,11 @@ var receiver = image.createImageReceiver(8192, 8, 4, 8); **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.ImageReceiver -| 名称 | 类型 | 可读 | 可写 | 说明 | -| --------------------- | ---------------------------- | ---- | ---- | ------------------ | -| size9+ | [Size](#size) | 是 | 否 | 图片大小。 | -| capacity9+ | number | 是 | 否 | 同时访问的图像数。 | -| format9+ | [ImageFormat](#imageformat9) | 是 | 否 | 图像格式。 | +| 名称 | 类型 | 可读 | 可写 | 说明 | +| -------- | ---------------------------- | ---- | ---- | ------------------ | +| size | [Size](#size) | 是 | 否 | 图片大小。 | +| capacity | number | 是 | 否 | 同时访问的图像数。 | +| format | [ImageFormat](#imageformat9) | 是 | 否 | 图像格式。 | ### getReceivingSurfaceId9+ @@ -1992,11 +1992,11 @@ receiver.release().then(() => { **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core -| 名称 | 类型 | 可读 | 可写 | 说明 | -| --------------------- | ------------------ | ---- | ---- | -------------------------------------------------- | -| clipRect9+ | [Region](#region7) | 是 | 是 | 要裁剪的图像区域。 | -| size9+ | [Size](#size) | 是 | 否 | 图像大小。 | -| format9+ | number | 是 | 否 | 图像格式,参考[PixelMapFormat](#pixelmapformat7)。 | +| 名称 | 类型 | 可读 | 可写 | 说明 | +| -------- | ------------------ | ---- | ---- | -------------------------------------------------- | +| clipRect | [Region](#region7) | 是 | 是 | 要裁剪的图像区域。 | +| size> | [Size](#size) | 是 | 否 | 图像大小。 | +| format | number | 是 | 否 | 图像格式,参考[PixelMapFormat](#pixelmapformat7)。 | ### getComponent9+ @@ -2179,11 +2179,11 @@ ImageSource的初始化选项。 **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core -| 名称 | 类型 | 可读 | 可写 | 说明 | -| ------------------------------ | ---------------------------------- | ---- | ---- | ------------------ | -| sourceDensity9+ | number | 是 | 是 | ImageSource的密度。| -| sourcePixelFormat8+ | [PixelMapFormat](#pixelmapformat7) | 是 | 是 | 图片像素格式。 | -| sourceSize8+ | [Size](#size) | 是 | 是 | 图像像素大小。 | +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ----------------- | ---------------------------------- | ---- | ---- | ------------------ | +| sourceDensity | number | 是 | 是 | ImageSource的密度。| +| sourcePixelFormat | [PixelMapFormat](#pixelmapformat7) | 是 | 是 | 图片像素格式。 | +| sourceSize | [Size](#size) | 是 | 是 | 图像像素大小。 | ## InitializationOptions8+ @@ -2195,10 +2195,10 @@ PixelMap的初始化选项。 | 名称 | 类型 | 可读 | 可写 | 说明 | | ------------------------ | ---------------------------------- | ---- | ---- | -------------- | | alphaType9+ | [AlphaType](#alphatype9) | 是 | 是 | 透明度。 | -| editable8+ | boolean | 是 | 是 | 是否可编辑。 | -| pixelFormat8+ | [PixelMapFormat](#pixelmapformat7) | 是 | 是 | 像素格式。 | +| editable | boolean | 是 | 是 | 是否可编辑。 | +| pixelFormat | [PixelMapFormat](#pixelmapformat7) | 是 | 是 | 像素格式。 | | scaleMode9+ | [ScaleMode](#scalemode9) | 是 | 是 | 缩略值。 | -| size8+ | [Size](#size) | 是 | 是 | 创建图片大小。 | +| size | [Size](#size) | 是 | 是 | 创建图片大小。 | ## DecodingOptions7+ -- GitLab From 57eb3a675c4b5e2ac38b08b868ea6716bf90396a Mon Sep 17 00:00:00 2001 From: zhangxin_T Date: Thu, 21 Jul 2022 18:55:43 +0800 Subject: [PATCH 164/868] bugfix Signed-off-by: zhangxin_T --- .../task-management/background-task-dev-guide.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/zh-cn/application-dev/task-management/background-task-dev-guide.md b/zh-cn/application-dev/task-management/background-task-dev-guide.md index 283ac69943..12253f396d 100644 --- a/zh-cn/application-dev/task-management/background-task-dev-guide.md +++ b/zh-cn/application-dev/task-management/background-task-dev-guide.md @@ -140,7 +140,7 @@ ohos.permission.KEEP_BACKGROUND_RUNNING } ``` -2. 申请长时任务 +2. 申请长时任务。 ```js import backgroundTaskManager from '@ohos.backgroundTaskManager'; @@ -170,7 +170,7 @@ ohos.permission.KEEP_BACKGROUND_RUNNING }); ``` -3. 停止长时任务 +3. 停止长时任务。 ```js import backgroundTaskManager from '@ohos.backgroundTaskManager'; @@ -206,9 +206,9 @@ ohos.permission.KEEP_BACKGROUND_RUNNING } ``` -2. 申请长时任务 +2. 申请长时任务。 - ```js + ```ts import backgroundTaskManager from '@ohos.backgroundTaskManager'; import wantAgent from '@ohos.wantAgent'; @@ -235,9 +235,9 @@ ohos.permission.KEEP_BACKGROUND_RUNNING }); ``` -3. 停止长时任务 +3. 停止长时任务。 - ```js + ```ts import backgroundTaskManager from '@ohos.backgroundTaskManager'; backgroundTaskManager.stopBackgroundRunning(this.context).then(() => { @@ -358,9 +358,9 @@ export default { 基于Stage模型: Stage模型的相关信息参考[Stage模型综述](../ability/stage-brief.md)。 -当应用需要在后台执行长时任务时,使Ability在后台被创建并运行。使用方式参考[Call调用开发指导](../ability/stage-call.md)。 +当应用需要在后台执行长时任务时,可以通过Call的方式在后台创建并运行Ability。使用方式参考[Call调用开发指导](../ability/stage-call.md)。 -```js +```ts import Ability from '@ohos.application.Ability' import backgroundTaskManager from '@ohos.backgroundTaskManager'; import wantAgent from '@ohos.wantAgent'; -- GitLab From d9905afe0f416b7e3bb1a42fab823ca081480df2 Mon Sep 17 00:00:00 2001 From: ge-yafang Date: Thu, 21 Jul 2022 18:55:46 +0800 Subject: [PATCH 165/868] update docs Signed-off-by: ge-yafang --- .../apis/js-apis-data-DataShareResultSet.md | 35 ++++++----- .../apis/js-apis-data-dataSharePredicates.md | 63 ++++++++++--------- .../apis/js-apis-distributed-data.md | 4 +- .../reference/apis/js-apis-screen.md | 2 +- 4 files changed, 55 insertions(+), 49 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-DataShareResultSet.md b/zh-cn/application-dev/reference/apis/js-apis-data-DataShareResultSet.md index 8f6a8e74a1..4ef30b622c 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-data-DataShareResultSet.md +++ b/zh-cn/application-dev/reference/apis/js-apis-data-DataShareResultSet.md @@ -44,7 +44,10 @@ dataShareHelper.query(uri, da, columns).then((data) => { }); ``` -## 属性 +## DataShareResultSet +提供通过查询数据库生成的结果集的相关访问方法。 + +### 属性 **系统能力:** SystemCapability.DistributedDataManager.DataShare.Core @@ -55,7 +58,7 @@ dataShareHelper.query(uri, da, columns).then((data) => { | rowCount | number | 是 | 结果集中的行数。 | | isClosed | boolean | 是 | 标识当前结果集是否关闭。 | -## goToFirstRow +### goToFirstRow goToFirstRow(): boolean @@ -76,7 +79,7 @@ let isGoTOFirstRow = resultSet.goToFirstRow(); console.info('resultSet.goToFirstRow: ' + isGoTOFirstRow); ``` -## goToLastRow +### goToLastRow goToLastRow(): boolean @@ -97,7 +100,7 @@ let isGoToLastRow = resultSet.goToLastRow(); console.info('resultSet.goToLastRow: ' + isGoToLastRow); ``` -## goToNextRow +### goToNextRow goToNextRow(): boolean @@ -118,7 +121,7 @@ let isGoToNextRow = resultSet.goToNextRow(); console.info('resultSet.goToNextRow: ' + isGoToNextRow); ``` -## goToPreviousRow +### goToPreviousRow goToPreviousRow(): boolean @@ -139,7 +142,7 @@ let isGoToPreviousRow = resultSet.goToPreviousRow(); console.info('resultSet.goToPreviousRow: ' + isGoToPreviousRow); ``` -## goTo +### goTo goTo(offset:number): boolean @@ -167,7 +170,7 @@ let isGoTo = resultSet.goTo(goToNum); console.info('resultSet.goTo: ' + isGoTo); ``` -## goToRow +### goToRow goToRow(position: number): boolean @@ -195,7 +198,7 @@ let isGoToRow = resultSet.goToRow(goToRowNum); console.info('resultSet.goToRow: ' + isGoToRow); ``` -## getBlob +### getBlob getBlob(columnIndex: number): Uint8Array @@ -224,7 +227,7 @@ let getBlob = resultSet.getBlob(columnIndex); console.info('resultSet.getBlob: ' + getBlob); ``` -## getString +### getString getString(columnIndex: number): *string* @@ -253,7 +256,7 @@ let getString = resultSet.getString(columnIndex); console.info('resultSet.getString: ' + getString); ``` -## getLong +### getLong getLong(columnIndex: number): number @@ -282,7 +285,7 @@ let getLong = resultSet.getLong(columnIndex); console.info('resultSet.getLong: ' + getLong); ``` -## getDouble +### getDouble getDouble(columnIndex: number): number @@ -311,7 +314,7 @@ let getDouble = resultSet.getDouble(columnIndex); console.info('resultSet.getDouble: ' + getDouble); ``` -## close +### close close(): void @@ -325,7 +328,7 @@ close(): void resultSet.close(); ``` -## getColumnIndex +### getColumnIndex getColumnIndex(columnName: string): number @@ -353,7 +356,7 @@ let getColumnIndex = resultSet.getColumnIndex(ColumnName) console.info('resultSet.getColumnIndex: ' + getColumnIndex); ``` -## getColumnName +### getColumnName getColumnName(columnIndex: number): *string* @@ -381,7 +384,7 @@ let getColumnName = resultSet.getColumnName(columnIndex) console.info('resultSet.getColumnName: ' + getColumnName); ``` -## getDataType +### getDataType getDataType(columnIndex: number): DataType @@ -409,7 +412,7 @@ let getDataType = resultSet.getDataType(columnIndex); console.info('resultSet.getDataType: ' + getDataType); ``` -## DataType +### DataType 数据类型枚举。 diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-dataSharePredicates.md b/zh-cn/application-dev/reference/apis/js-apis-data-dataSharePredicates.md index 7838b092ad..91fcd5fa3b 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-data-dataSharePredicates.md +++ b/zh-cn/application-dev/reference/apis/js-apis-data-dataSharePredicates.md @@ -13,7 +13,10 @@ import dataSharePredicates from '@ohos.data.dataSharePredicates'; ``` -## equalTo +## DataSharePredicates +提供用于不同实现不同查询方法的数据共享谓词。 + +### equalTo equalTo(field: string, value: ValueType): DataSharePredicates @@ -43,7 +46,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.equalTo("NAME", "Rose") ``` -## notEqualTo +### notEqualTo notEqualTo(field: string, value: ValueType): DataSharePredicates @@ -73,7 +76,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.notEqualTo("NAME", "Rose") ``` -## beginWrap +### beginWrap beginWrap(): DataSharePredicates @@ -99,7 +102,7 @@ predicates.equalTo("NAME", "lisi") .endWrap() ``` -## endWrap +### endWrap endWrap(): DataSharePredicates @@ -125,7 +128,7 @@ predicates.equalTo("NAME", "lisi") .endWrap() ``` -## or +### or or(): DataSharePredicates @@ -150,7 +153,7 @@ predicates.equalTo("NAME", "lisi") .equalTo("NAME", "Rose") ``` -## and +### and and(): DataSharePredicates @@ -175,7 +178,7 @@ predicates.equalTo("NAME", "lisi") .equalTo("SALARY", 200.5) ``` -## contains +### contains contains(field: string, value: string): DataSharePredicates @@ -203,7 +206,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.contains("NAME", "os") ``` -## beginsWith +### beginsWith beginsWith(field: string, value: string): DataSharePredicates @@ -231,7 +234,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.beginsWith("NAME", "os") ``` -## endsWith +### endsWith endsWith(field: string, value: string): DataSharePredicates @@ -259,7 +262,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.endsWith("NAME", "os") ``` -## isNull +### isNull isNull(field: string): DataSharePredicates @@ -288,7 +291,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.isNull("NAME") ``` -## isNotNull +### isNotNull isNotNull(field: string): DataSharePredicates @@ -317,7 +320,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.isNotNull("NAME") ``` -## like +### like like(field: string, value: string): DataSharePredicates @@ -347,7 +350,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.like("NAME", "%os%") ``` -## unlike +### unlike unlike(field: string, value: string): DataSharePredicates @@ -377,7 +380,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.unlike("NAME", "%os%") ``` -## glob +### glob glob(field: string, value: string): DataSharePredicates @@ -405,7 +408,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.glob("NAME", "?h*g") ``` -## between +### between between(field: string, low: ValueType, high: ValueType): DataSharePredicates @@ -434,7 +437,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.between("AGE", 10, 50) ``` -## notBetween +### notBetween notBetween(field: string, low: ValueType, high: ValueType): DataSharePredicates @@ -463,7 +466,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.notBetween("AGE", 10, 50) ``` -## greaterThan +### greaterThan greaterThan(field: string, value: ValueType): DataSharePredicates @@ -493,7 +496,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.greaterThan("AGE", 10) ``` -## lessThan +### lessThan lessThan(field: string, value: ValueType): DataSharePredicates @@ -523,7 +526,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.lessThan("AGE", 50) ``` -## greaterThanOrEqualTo +### greaterThanOrEqualTo greaterThanOrEqualTo(field: string, value: ValueType): DataSharePredicates @@ -553,7 +556,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.greaterThanOrEqualTo("AGE", 10) ``` -## lessThanOrEqualTo +### lessThanOrEqualTo lessThanOrEqualTo(field: string, value: ValueType): DataSharePredicates @@ -583,7 +586,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.lessThanOrEqualTo("AGE", 50) ``` -## orderByAsc +### orderByAsc orderByAsc(field: string): DataSharePredicates @@ -612,7 +615,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.orderByAsc("AGE") ``` -## orderByDesc +### orderByDesc orderByDesc(field: string): DataSharePredicates @@ -641,7 +644,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.orderByDesc("AGE") ``` -## distinct +### distinct distinct(): DataSharePredicates @@ -662,7 +665,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.equalTo("NAME", "Rose").distinct() ``` -## limit +### limit limit(total: number, offset: number): DataSharePredicates @@ -692,7 +695,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.equalTo("NAME", "Rose").limit(10, 3) ``` -## groupBy +### groupBy groupBy(fields: Array<string>): DataSharePredicates @@ -719,7 +722,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.groupBy(["AGE", "NAME"]) ``` -## indexedBy +### indexedBy indexedBy(field: string): DataSharePredicates @@ -746,7 +749,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.indexedBy("SALARY_INDEX") ``` -## in +### in in(field: string, value: Array<ValueType>): DataSharePredicates @@ -776,7 +779,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.in("AGE", [18, 20]) ``` -## notIn +### notIn notIn(field: string, value: Array<ValueType>): DataSharePredicates @@ -806,7 +809,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.notIn("NAME", ["Lisa", "Rose"]) ``` -## prefixKey +### prefixKey prefixKey(prefix: string): DataSharePredicates @@ -833,7 +836,7 @@ let predicates = new dataSharePredicates.DataSharePredicates() predicates.prefixKey("NAME") ``` -## inKeys +### inKeys inKeys(keys: Array<string>): DataSharePredicates diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md b/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md index bd15244004..2891df3308 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md +++ b/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md @@ -3718,7 +3718,7 @@ getResultSet(predicates: dataSharePredicates.DataSharePredicates, callback: Asyn | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | | predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是 |指示筛选条件,当此参数为null时,应定义处理逻辑。 | -| callback |AsyncCallback<[KvStoreResultSet](#kvstoreresultsetsup8sup)> | 是 |回调函数,获取与指定Predicates对象匹配的KvStoreResultSet对象。 | +| callback |AsyncCallback<[KvStoreResultSet](#kvstoreresultset8)> | 是 |回调函数,获取与指定Predicates对象匹配的KvStoreResultSet对象。 | **示例:** @@ -4202,7 +4202,7 @@ sync(deviceIds: string[], query: Query, mode: SyncMode, delayMs?: number): void | ----- | ------ | ---- | ----------------------- | | deviceIds |string[] | 是 |同一组网环境下,需要同步的设备的deviceId列表。 | | mode |[SyncMode](#syncmode) | 是 |同步模式。 | -| query |[Query](#querysup8sup) | 是 |表示数据库的查询谓词条件 | +| query |[Query](#query8) | 是 |表示数据库的查询谓词条件 | | delayMs |number | 否 |可选参数,允许延时时间,单位:ms(毫秒)。 | **示例:** diff --git a/zh-cn/application-dev/reference/apis/js-apis-screen.md b/zh-cn/application-dev/reference/apis/js-apis-screen.md index 5c776f930e..714cfacfe0 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-screen.md +++ b/zh-cn/application-dev/reference/apis/js-apis-screen.md @@ -531,7 +531,7 @@ screen.setScreenRotationLocked(isLocked, (err, data) => { | parent | number | 是 | 否 | 屏幕所属群组的id。 | | supportedModeInfo | Array<[ScreenModeInfo](#screenmodeinfo)> | 是 | 否 | 屏幕支持的模式集合。 | | activeModeIndex | number | 是 | 否 | 当前屏幕所处模式索引。 | -| orientation | [Orientation](#rientation) | 是 | 否 | 屏幕方向。 | +| orientation | [Orientation](#orientation) | 是 | 否 | 屏幕方向。 | ### setOrientation setOrientation(orientation: Orientation, callback: AsyncCallback<void>): void -- GitLab From bc37d9ef38a3fc6fedf8313700603645273e7c1b Mon Sep 17 00:00:00 2001 From: ge-yafang Date: Thu, 21 Jul 2022 18:58:57 +0800 Subject: [PATCH 166/868] update docs Signed-off-by: ge-yafang --- .../reference/apis/js-apis-data-DataShareResultSet.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-DataShareResultSet.md b/zh-cn/application-dev/reference/apis/js-apis-data-DataShareResultSet.md index 4ef30b622c..c48c588a11 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-data-DataShareResultSet.md +++ b/zh-cn/application-dev/reference/apis/js-apis-data-DataShareResultSet.md @@ -412,7 +412,7 @@ let getDataType = resultSet.getDataType(columnIndex); console.info('resultSet.getDataType: ' + getDataType); ``` -### DataType +## DataType 数据类型枚举。 -- GitLab From 34d2bb535bfd1f476cf7d32e3a4d8c721eaf5043 Mon Sep 17 00:00:00 2001 From: ge-yafang Date: Thu, 21 Jul 2022 19:02:43 +0800 Subject: [PATCH 167/868] update docs Signed-off-by: ge-yafang --- en/application-dev/reference/apis/js-apis-distributed-data.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-distributed-data.md b/en/application-dev/reference/apis/js-apis-distributed-data.md index 6832fc2fd5..ccd49d2889 100644 --- a/en/application-dev/reference/apis/js-apis-distributed-data.md +++ b/en/application-dev/reference/apis/js-apis-distributed-data.md @@ -3650,7 +3650,7 @@ Obtains a **KvStoreResultSet** object that matches the specified **Predicates** | Name | Type| Mandatory | Description | | ----- | ------ | ---- | ----------------------- | | predicates | Predicates | Yes |**Predicates** object to match. If this parameter is **null**, define the processing logic. | -| callback |AsyncCallback<[KvStoreResultSet](#kvstoreresultsetsup8sup)> | Yes |Callback invoked to return the **KvStoreResultSet** object obtained.| +| callback |AsyncCallback<[KvStoreResultSet](#kvstoreresultset8)> | Yes |Callback invoked to return the **KvStoreResultSet** object obtained.| **Example** @@ -4134,7 +4134,7 @@ Synchronizes the KV store manually. This API uses a synchronous mode. For detail | ----- | ------ | ---- | ----------------------- | | deviceIds |string[] | Yes |List of IDs of the devices in the same networking environment to be synchronized. | | mode |[SyncMode](#syncmode) | Yes |Synchronization mode. | -| query |[Query](#querysup8sup) | Yes |**Query** object to match. | +| query |[Query](#query8) | Yes |**Query** object to match. | | delayMs |number | No |Allowed synchronization delay time, in ms. | **Example** -- GitLab From 30f763fd1f63796c16fb00018c65f0ae446e2579 Mon Sep 17 00:00:00 2001 From: hnz Date: Thu, 21 Jul 2022 11:26:26 +0000 Subject: [PATCH 168/868] =?UTF-8?q?js-apis-enterprise-device-manager.md?= =?UTF-8?q?=E4=B8=AD=E6=A0=BC=E5=BC=8F=E6=95=B4=E6=94=B9=EF=BC=8C=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=A4=9A=E4=BD=99=E5=88=86=E5=8F=B7=20Signed-off-by:?= =?UTF-8?q?=20=E8=B4=BA=E5=BF=B5=E5=93=B2=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/apis/js-apis-enterprise-device-manager.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md b/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md index 8781cd5a63..21e653bcf2 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md @@ -605,7 +605,7 @@ SystemCapability.Customization.EnterpriseDeviceManager | 类型 | 说明 | | ------------------ | --------------------- | -| Promise\; | Promise方式返回是否设置企业信息成功 | +| Promise\ | Promise方式返回是否设置企业信息成功 | **示例:** -- GitLab From 2bf6cf5a70e26223cc9e930802df3d0b3d86aa4a Mon Sep 17 00:00:00 2001 From: huzeqi Date: Thu, 21 Jul 2022 10:27:32 +0800 Subject: [PATCH 169/868] add compilation error warnning Signed-off-by: huzeqi Change-Id: Ifad0d5e63bf867a152e46df795a5966e4cc6650c --- zh-cn/application-dev/napi/napi-guidelines.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/zh-cn/application-dev/napi/napi-guidelines.md b/zh-cn/application-dev/napi/napi-guidelines.md index f5702ff465..d0d092c47c 100644 --- a/zh-cn/application-dev/napi/napi-guidelines.md +++ b/zh-cn/application-dev/napi/napi-guidelines.md @@ -10,23 +10,28 @@ js侧通过`import`引入native侧包含处理js逻辑的so,如:`import hell ## 开发建议 -### 1. 注册建议 +### 注册建议 * nm_register_func对应的函数需要加上static,防止与其他so里的符号冲突。 * 模块注册的入口,即使用\_\_attribute\_\_((constructor))修饰的函数的函数名需要确保不与其他模块重复。 -### 2. so命名规则 + +### so命名规则 * 每个模块对应一个so * 如模块名为`hello`,则so的名字为`libhello.so`,`napi_module`中`nm_modname`字段应为`hello`,大小写与模块名保持一致,应用使用时写作:`import hello from 'libhello.so'` -### 3. js对象线程限制 +### js对象线程限制 ark引擎会对js对象线程使用进行保护,不正确使用会引起应用crash。 * napi接口只能在js线程使用。 * env与线程绑定,不能跨线程使用。native侧js对象只能在创建时的线程使用,即与线程所持有的env绑定。 -### 4. napi_create_async_work接口说明 +### 头文件引入限制 + +在使用napi的对象和方法时需要引用"napi/native_api.h"。否则在只引入三方库头文件时,会出现未支持**接口无法找到的编译报错**。 + +### napi_create_async_work接口说明 napi_create_async_work里有两个回调: -- GitLab From e36641f35dab590196c30e191e12249daa53267d Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Thu, 21 Jul 2022 19:45:57 +0800 Subject: [PATCH 170/868] update docs Signed-off-by: Annie_wang --- .../reference/apis/Readme-EN.md | 7 +- ...s-application-DataShareExtensionAbility.md | 376 ++++++++ .../apis/js-apis-data-DataShareResultSet.md | 424 ++++++++ .../apis/js-apis-data-ValuesBucket.md | 37 + .../reference/apis/js-apis-data-dataShare.md | 907 ++++++++++++++++++ .../apis/js-apis-data-dataSharePredicates.md | 861 +++++++++++++++++ .../reference/apis/js-apis-privacyManager.md | 24 +- 7 files changed, 2620 insertions(+), 16 deletions(-) create mode 100644 en/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md create mode 100644 en/application-dev/reference/apis/js-apis-data-DataShareResultSet.md create mode 100644 en/application-dev/reference/apis/js-apis-data-ValuesBucket.md create mode 100644 en/application-dev/reference/apis/js-apis-data-dataShare.md create mode 100644 en/application-dev/reference/apis/js-apis-data-dataSharePredicates.md diff --git a/en/application-dev/reference/apis/Readme-EN.md b/en/application-dev/reference/apis/Readme-EN.md index 4646544abd..9f818cacd2 100644 --- a/en/application-dev/reference/apis/Readme-EN.md +++ b/en/application-dev/reference/apis/Readme-EN.md @@ -13,6 +13,7 @@ - [@ohos.application.appManager](js-apis-appmanager.md) - [@ohos.application.Configuration](js-apis-configuration.md) - [@ohos.application.ConfigurationConstant](js-apis-configurationconstant.md) + - [@ohos.application.DataShareExtensionAbility](js-apis-application-DataShareExtensionAbility.md) - [@ohos.ability.featureAbility](js-apis-featureAbility.md) - [@ohos.application.formBindingData](js-apis-formbindingdata.md) - [@ohos.application.FormExtension](js-apis-formextension.md) @@ -121,11 +122,14 @@ - Data Management - [@ohos.data.dataAbility ](js-apis-data-ability.md) + - [@ohos.data.dataShare](js-apis-data-dataShare.md) + - [@ohos.data.dataSharePredicates](js-apis-data-dataSharePredicates.md) + - [@ohos.data.dataShareResultSet](js-apis-data-DataShareResultSet.md) - [@ohos.data.distributedData](js-apis-distributed-data.md) - [@ohos.data.distributedDataObject](js-apis-data-distributedobject.md) - [@ohos.data.preferences](js-apis-data-preferences.md) - [@ohos.data.rdb](js-apis-data-rdb.md) - - [@ohos.settings](js-apis-settings.md) + - [@ohos.data.ValuesBucket](js-apis-data-ValuesBucket.md) - data/rdb/[resultSet](js-apis-data-resultset.md) - File Management @@ -205,6 +209,7 @@ - [@ohos.power](js-apis-power.md) - [@ohos.runningLock](js-apis-runninglock.md) - [@ohos.sensor](js-apis-sensor.md) + - [@ohos.settings](js-apis-settings.md) - [@ohos.systemParameter](js-apis-system-parameter.md) - [@ohos.thermal](js-apis-thermal.md) - [@ohos.update](js-apis-update.md) diff --git a/en/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md b/en/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md new file mode 100644 index 0000000000..c3dd60f0e9 --- /dev/null +++ b/en/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md @@ -0,0 +1,376 @@ +# Data Share Extension Ability + +**DataShareExtensionAbility** provides extension abilities for data share services based on the ExtensionAbility framework. + +>**NOTE** +> +>The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> +>The APIs provided by this module are system APIs. +> +>The APIs of this module can be used only in the stage model. + + +## Modules to Import + +```ts +import DataShareExtensionAbility from '@ohos.application.DataShareExtensionAbility' +``` + +## onCreate + +onCreate?(want: Want, callback: AsyncCallback<void>): void + +Called to initialize service logic of the server when the DataShare client connects to the DataShareExtensionAbility server. This API can be overridden as required. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider + +**Parameters** + +| Name| Type| Mandatory| Description| +| ----- | ------ | ------ | ------ | +| want | [Want](js-apis-application-Want.md#want) | Yes | **Want** information, including the ability name and bundle name.| +| callback | AsyncCallback<void> | Yes| Callback that returns no value.| + +**Example** + +```ts +import rdb from '@ohos.data.rdb'; + +let DB_NAME = "DB00.db"; +let TBL_NAME = "TBL00"; +let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS " ++ TBL_NAME ++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)"; +let rdbStore; + +export default class DataShareExtAbility extends DataShareExtensionAbility { + onCreate(want: Want, callback: AsyncCallback) { + rdb.getRdbStore(this.context, { + name: DB_NAME + }, 1, function (err, data) { + console.log('getRdbStore done, data : ' + data); + rdbStore = data; + rdbStore.executeSql(DDL_TBL_CREATE, [], function (err) { + console.log('executeSql done, error message : ' + err); + }); + if (callback) { + callback(); + } + }); + } +}; +``` + +## getFileTypes + +getFileTypes?(uri: string, mimeTypeFilter: string, callback: AsyncCallback<Array<string>>): void + +Called by the server to obtain the Multipurpose Internet Mail Extensions (MIME) types supported by a file. This API can be overridden as required. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------------- | ---------------------------------------- | ---- | ---------------------------------- | +| uri | string | Yes | URI of the file. | +| mimeTypeFilter | string | Yes | MIME types to match. | +| callback | AsyncCallback<Array<string>> | Yes | Callback invoked to return the MIME types obtained.| + +**Example** + +```ts +export default class DataShareExtAbility extends DataShareExtensionAbility { + getFileTypes(uri: string, mimeTypeFilter: string, callback: AsyncCallback>) { + let err = {"code":0}; + let ret = new Array("type01", "type02", "type03"); + callback(err, ret); + } +}; +``` + +## openFile + +openFile?(uri: string, mode: string, callback: AsyncCallback<number>): void + +Called by the server to open a file. This method can be overridden as required. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | --------------------- | ---- | ------------------------------------------ | +| uri | string | Yes | URI of the file to open. | +| mode | string | Yes | File open mode, including read-only mode and read/write mode.| +| callback | AsyncCallback<number> | Yes | Callback invoked to return the file descriptor. | + +**Example** + +```ts +export default class DataShareExtAbility extends DataShareExtensionAbility { + openFile(uri: string, mode: string, callback: AsyncCallback) { + let err = {"code":0}; + let fd = 0; + callback(err,fd); + } +}; +``` + +## insert + +insert?(uri: string, valueBucket: ValuesBucket, callback: AsyncCallback<number>): void + +Called to insert data into the database. This API can be overridden as required. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider + +**Parameters** + +| Name| Type| Mandatory| Description| +| ----- | ------ | ------ | ------ | +| uri |string | Yes | URI of the data to insert.| +| valueBucket |[ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket) | Yes| Data to insert.| +| callback |AsyncCallback<number> | Yes| Callback invoked to return the index of the data inserted.| + +**Example** + +```ts +export default class DataShareExtAbility extends DataShareExtensionAbility { + insert(uri: string, valueBucket: ValuesBucket, callback: AsyncCallback) { + if (value == null) { + console.info('invalid valueBuckets'); + return; + } + rdbStore.insert(TBL_NAME, value, function (err, ret) { + console.info('callback ret:' + ret); + if (callback != undefined) { + callback(err, ret); + } + }); + } +}; +``` + +## update + +update?(uri: string, predicates: dataSharePredicates.DataSharePredicates, valueBucket: ValuesBucket, callback: AsyncCallback<number>): void + +Called by the server to update data in the database. This API can be overridden as required. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider + +**Parameters** + +| Name| Type| Mandatory| Description| +| ----- | ------ | ------ | ------ | +| uri | string | Yes | URI of the data to update.| +| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | Yes | Filter criteria for updating data.| +| valueBucket | [ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket) | Yes| New data.| +| callback | AsyncCallback<number> | Yes| Callback invoked to return the number of updated data records.| + +**Example** + +```ts +export default class DataShareExtAbility extends DataShareExtensionAbility { + update(uri: string, predicates: dataSharePredicates.DataSharePredicates, valueBucket: ValuesBucket, callback: AsyncCallback) { + if (predicates == null || predicates == undefined) { + return; + } + rdbStore.update(TBL_NAME, value, predicates, function (err, ret) { + if (callback != undefined) { + callback(err, ret); + } + }); + } +}; +``` + +## delete + +delete?(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback<number>): void + +Called by the server to delete data from the database. This API can be overridden as required. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider + +**Parameters** + +| Name | Type | Mandatory| Description | +| ---------- | ------------------------------------------------------------ | ---- | ---------------------------------- | +| uri | string | Yes | URI of the data to delete. | +| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | Yes | Filter criteria for deleting data. | +| callback | AsyncCallback<number> | Yes | Callback invoked to return the number of data records deleted.| + +**Example** + +```ts +export default class DataShareExtAbility extends DataShareExtensionAbility { + delete(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback) { + if (predicates == null || predicates == undefined) { + return; + } + rdbStore.delete(TBL_NAME, predicates, function (err, ret) { + if (callback != undefined) { + callback(err, ret); + } + }); + } +}; +``` + +## query + +query?(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array<string>, callback: AsyncCallback<Object>): void + +Called by the server to query data from the database. This API can be overridden as required. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider + +**Parameters** + +| Name| Type| Mandatory| Description| +| ----- | ------ | ------ | ------ | +| uri | string | Yes | URI of the data to query.| +| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | Yes | Filter criteria for querying data.| +| columns | Array<string> | Yes| Columns to query. If this parameter is empty, all columns will be queried.| +| callback | AsyncCallback<Object> | Yes| Callback invoked to return the result set.| + +**Example** + +```ts +export default class DataShareExtAbility extends DataShareExtensionAbility { + query(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array, callback: AsyncCallback) { + if (predicates == null || predicates == undefined) { + return; + } + rdbStore.query(TBL_NAME, predicates, columns, function (err, resultSet) { + if (resultSet != undefined) { + console.info('resultSet.rowCount: ' + resultSet.rowCount); + } + if (callback != undefined) { + callback(err, resultSet); + } + }); + } +}; +``` + +## getType + +getType?(uri: string, callback: AsyncCallback<string>): void + +Called by the server to obtain the MIME type corresponding to the given URI. This API can be overridden as required. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider + +**Parameters** + +| Name| Type| Mandatory| Description| +| ----- | ------ | ------ | ------ | +| uri | string | Yes | URI of the target data.| +| callback | AsyncCallback<string> | Yes| Callback invoked to return the MIME type obtained.| + +**Example** + +```ts +export default class DataShareExtAbility extends DataShareExtensionAbility { + getType(uri: string, callback: AsyncCallback) { + let err = {"code":0}; + let ret = "image"; + callback(err, ret); + } +}; +``` + +## BatchInsert + +BatchInsert?(uri: string, valueBuckets: Array<ValuesBucket>, callback: AsyncCallback<number>): void + +Called by the server to insert batch data into the database. This API can be overridden as required. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider + +**Parameters** + +| Name | Type | Mandatory| Description | +| ------------ | ------------------------------------------------------------ | ---- | -------------------------------- | +| uri | string | Yes | URI of the data to insert. | +| valueBuckets | Array<[ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket)> | Yes | Data to insert. | +| callback | AsyncCallback<number> | Yes | Callback invoked to return the number of inserted data records.| + +**Example** + +```ts +export default class DataShareExtAbility extends DataShareExtensionAbility { + batchInsert(uri: string, valueBuckets: Array, callback: AsyncCallback) { + if (valueBuckets == null || valueBuckets.length == undefined) { + console.info('invalid valueBuckets'); + return; + } + let resultNum = valueBuckets.length + valueBuckets.forEach(vb => { + rdbStore.insert(TBL_NAME, vb, function (err, ret) { + if (callback != undefined) { + callback(err, resultNum); + } + }); + }); + } +}; +``` + +## normalizeUri + +normalizeUri?(uri: string, callback: AsyncCallback<string>): void + +Called by the server to normalize the specified URI. This API can be overridden as required. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | --------------------- | ---- | ----------------------- | +| uri | string | Yes | [URI](js-apis-uri.md#uri) to normalize.| +| callback | AsyncCallback<string> | Yes | Callback used to return the result. If the operation is successful, the normalized URI is returned. Otherwise, **null** is returned.| + +**Example** + +```ts +export default class DataShareExtAbility extends DataShareExtensionAbility { + normalizeUri(uri: string, callback: AsyncCallback) { + let err = {"code":0}; + let ret = "normalize+" + uri; + callback(err, ret); + } +}; +``` + +## denormalizeUri + +denormalizeUri?(uri: string, callback: AsyncCallback<string>): void + +Called by the server to denormalize the specified URI. This method can be overridden as required. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Provider + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | --------------------- | ---- | ----------------------- | +| uri | string | Yes | [URI](js-apis-uri.md#uri) to denormalize.| +| callback | AsyncCallback<string> | Yes | Callback used to return the result. If the operation is successful, the URI obtained is returned. If the URI passed in is returned, denormalization is not required. If denormalization is not supported, **null** is returned.| + +**Example** + +```ts +export default class DataShareExtAbility extends DataShareExtensionAbility { + denormalizeUri(uri: string, callback: AsyncCallback) { + let err = {"code":0}; + let ret = "denormalize+" + uri; + callback(err, ret); + } +}; +``` diff --git a/en/application-dev/reference/apis/js-apis-data-DataShareResultSet.md b/en/application-dev/reference/apis/js-apis-data-DataShareResultSet.md new file mode 100644 index 0000000000..6adaa00f48 --- /dev/null +++ b/en/application-dev/reference/apis/js-apis-data-DataShareResultSet.md @@ -0,0 +1,424 @@ +# Data Share Result Set + +The **DataShareResultSet** module provides methods for accessing the result set obtained from the database. You can access the values in the specified rows or the value of the specified data type. + +>**NOTE** +> +>The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. + + +## Modules to Import + +```ts +import DataShareResultSet from '@ohos.data.DataShareResultSet'; +``` + +## How to Use + +You can call [query()](js-apis-data-dataShare.md#query) to obtain the **DataShareResultSet** object. + +```ts +import dataShare from '@ohos.data.dataShare'; +import dataSharePredicates from '@ohos.data.dataSharePredicates' + +let dataShareHelper; +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +await dataShare.createDataShareHelper(this.context, uri, (err, data) => { + if (err != undefined) { + console.info("createDataShareHelper fail, error message : " + err); + } else { + console.info("createDataShareHelper end, data : " + data); + dataShareHelper = data; + } +}); + +let columns = ["*"]; +let da = new dataSharePredicates.DataSharePredicates(); +let resultSet; +da.equalTo("name", "ZhangSan"); +dataShareHelper.query(uri, da, columns).then((data) => { + console.log("query end, data : " + data); + resultSet = data; +}).catch((err) => { + console.log("query fail, error message : " + err); +}); +``` + +## Attributes + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +| Name | Type | Mandatory| Description | +| ----------- | ------------- | ---- | ------------------------ | +| columnNames | Array<string> | Yes | Names of all columns in the result set. | +| columnCount | number | Yes | Number of columns in the result set. | +| rowCount | number | Yes | Number of rows in the result set. | +| isClosed | boolean | Yes | Whether the result set is closed.| + +## goToFirstRow + +goToFirstRow(): boolean + +Moves to the first row of the result set. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Return value** + +| Type | Description | +| :------ | --------------------------------------------- | +| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| + +**Example** + +```ts +let isGoTOFirstRow = resultSet.goToFirstRow(); +console.info('resultSet.goToFirstRow: ' + isGoTOFirstRow); +``` + +## goToLastRow + +goToLastRow(): boolean + +Moves to the last row of the result set. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Return value** + +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| + +**Example** + +```ts +let isGoToLastRow = resultSet.goToLastRow(); +console.info('resultSet.goToLastRow: ' + isGoToLastRow); +``` + +## goToNextRow + +goToNextRow(): boolean + +Moves to the next row in the result set. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Return value** + +| Type | Description | +| ------- | --------------------------------------------- | +| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| + +**Example** + +```ts +let isGoToNextRow = resultSet.goToNextRow(); +console.info('resultSet.goToNextRow: ' + isGoToNextRow); +``` + +## goToPreviousRow + +goToPreviousRow(): boolean + +Moves to the previous row in the result set. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Return value** + +| Type | Description | +| ------- | --------------------------------------------- | +| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| + +**Example** + +```ts +let isGoToPreviousRow = resultSet.goToPreviousRow(); +console.info('resultSet.goToPreviousRow: ' + isGoToPreviousRow); +``` + +## goTo + +goTo(offset:number): boolean + +Moves based on the specified offset. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| **Name**| **Type**| **Mandatory**| Description | +| ---------- | -------- | -------- | ------------------------------------------------------------ | +| offset | number | Yes | Offset relative to the current position. A negative value means to move backward, and a positive value means to move forward.| + +**Return value** + +| Type | Description | +| ------- | --------------------------------------------- | +| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| + +**Example** + +```ts +let goToNum = 1; +let isGoTo = resultSet.goTo(goToNum); +console.info('resultSet.goTo: ' + isGoTo); +``` + +## goToRow + +goToRow(position: number): boolean + +Moves to the specified row in the result set. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| **Name**| **Type**| **Mandatory**| Description | +| ---------- | -------- | -------- | ------------------------ | +| position | number | Yes | Destination position to move.| + +**Return value** + +| Type | Description | +| ------- | --------------------------------------------- | +| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| + +**Example** + +```ts +let goToRowNum = 2 +let isGoToRow = resultSet.goToRow(goToRowNum); +console.info('resultSet.goToRow: ' + isGoToRow); +``` + +## getBlob + +getBlob(columnIndex: number): Uint8Array + +Obtains the value in the specified column in the current row as a byte array. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| **Name** | **Type**| **Mandatory**| Description | +| ----------- | -------- | -------- | ----------------------- | +| columnIndex | number | Yes | Index of the target column, starting from 0.| + +**Return value** + +| Type | Description | +| ---------- | -------------------------------- | +| Uint8Array | Value obtained.| + +**Example** + +```ts +let columnIndex = 1 +let goToFirstRow = resultSet.goToFirstRow(); +let getBlob = resultSet.getBlob(columnIndex); +console.info('resultSet.getBlob: ' + getBlob); +``` + +## getString + +getString(columnIndex: number): *string* + +Obtains the value in the specified column in the current row as a string. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| **Name** | **Type**| **Mandatory**| Description | +| ----------- | -------- | -------- | ----------------------- | +| columnIndex | number | Yes | Index of the target column, starting from 0.| + +**Return value** + +| Type | Description | +| ------ | ---------------------------- | +| string | Value obtained.| + +**Example** + +```ts +let columnIndex = 1 +let goToFirstRow = resultSet.goToFirstRow(); +let getString = resultSet.getString(columnIndex); +console.info('resultSet.getString: ' + getString); +``` + +## getLong + +getLong(columnIndex: number): number + +Obtains the value in the specified column in the current row as a long integer. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| **Name** | **Type**| **Mandatory**| Description | +| ----------- | -------- | -------- | ----------------------- | +| columnIndex | number | Yes | Index of the target column, starting from 0.| + +**Return value** + +| Type | Description | +| ------ | -------------------------- | +| number | Value obtained.| + +**Example** + +```ts +let columnIndex = 1 +let goToFirstRow = resultSet.goToFirstRow(); +let getLong = resultSet.getLong(columnIndex); +console.info('resultSet.getLong: ' + getLong); +``` + +## getDouble + +getDouble(columnIndex: number): number + +Obtains the value in the specified column in the current row as a double-precision floating-point number. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| **Name** | **Type**| **Mandatory**| Description | +| ----------- | -------- | -------- | ----------------------- | +| columnIndex | number | Yes | Index of the target column, starting from 0.| + +**Return value** + +| Type | Description | +| ------ | ---------------------------- | +| number | Value obtained.| + +**Example** + +```ts +let columnIndex = 1 +let goToFirstRow = resultSet.goToFirstRow(); +let getDouble = resultSet.getDouble(columnIndex); +console.info('resultSet.getDouble: ' + getDouble); +``` + +## close + +close(): void + +Closes this result set. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Example** + +```ts +resultSet.close(); +``` + +## getColumnIndex + +getColumnIndex(columnName: string): number + +Obtains the column index based on the column name. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| **Name**| **Type**| **Mandatory**| Description | +| ---------- | -------- | -------- | -------------------------- | +| columnName | string | Yes | Column name.| + +**Return value** + +| Type | Description | +| ------ | ------------------ | +| number | Column index obtained.| + +**Example** + +```ts +let ColumnName = "name" +let getColumnIndex = resultSet.getColumnIndex(ColumnName) +console.info('resultSet.getColumnIndex: ' + getColumnIndex); +``` + +## getColumnName + +getColumnName(columnIndex: number): *string* + +Obtains the column name based on the column index. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| **Name** | **Type**| **Mandatory**| Description | +| ----------- | -------- | -------- | -------------------------- | +| columnIndex | number | Yes | Column index.| + +**Return value** + +| Type | Description | +| ------ | ------------------ | +| string | Column name obtained.| + +**Example** + +```ts +let columnIndex = 1 +let getColumnName = resultSet.getColumnName(columnIndex) +console.info('resultSet.getColumnName: ' + getColumnName); +``` + +## getDataType + +getDataType(columnIndex: number): DataType + +Obtains the data type based on the specified column index. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| **Name** | **Type**| **Mandatory**| Description | +| ----------- | -------- | -------- | -------------------------- | +| columnIndex | number | Yes | Column index.| + +**Return value** + +| Type | Description | +| --------------------- | ------------------ | +| [DataType](#datatype) | Data type obtained.| + +**Example** + +```ts +let columnIndex = 1; +let getDataType = resultSet.getDataType(columnIndex); +console.info('resultSet.getDataType: ' + getDataType); +``` + +## DataType + +Enumerates the data types. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +| Name | Value| Description | +| ----------- | ------ | -------------------- | +| TYPE_NULL | 0 | Null. | +| TYPE_LONG | 1 | Long integer. | +| TYPE_DOUBLE | 2 | Double-precision floating-point number.| +| TYPE_STRING | 3 | String.| +| TYPE_BLOB | 4 | Byte array.| diff --git a/en/application-dev/reference/apis/js-apis-data-ValuesBucket.md b/en/application-dev/reference/apis/js-apis-data-ValuesBucket.md new file mode 100644 index 0000000000..b066661225 --- /dev/null +++ b/en/application-dev/reference/apis/js-apis-data-ValuesBucket.md @@ -0,0 +1,37 @@ +# Value Bucket + +The **ValueBucket** holds data in key-value (KV) pairs. You can use it to insert data into a database. + +>**Note** +> +>The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. + + +## Modules to Import + +```ts +import { ValueType } from '@ohos.data.ValuesBucket'; +import { ValuesBucket } from '@ohos.data.ValuesBucket'; +``` + +## ValueType + +Enumerates the value types allowed by the database. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +| Name | Description | +| ------- | -------------------- | +| number | The value is a number. | +| string | The value is a string.| +| boolean | The value is of Boolean type.| + +## ValuesBucket + +Holds a set of KV pairs. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +| Name | Type | Mandatory| Description | +| ------------- | --------------------------------------------- | ---- | ------------------------------------------------------------ | +| [key: string] | [ValueType](#valuetype)\| Uint8Array \| null | Yes | KV pairs in a **ValuesBucket**. The key is of the string type. The value can be a number, string, Boolean value, Unit8Array, or **null**.| diff --git a/en/application-dev/reference/apis/js-apis-data-dataShare.md b/en/application-dev/reference/apis/js-apis-data-dataShare.md new file mode 100644 index 0000000000..14465e3daf --- /dev/null +++ b/en/application-dev/reference/apis/js-apis-data-dataShare.md @@ -0,0 +1,907 @@ +# Data Sharing + +The **DataShare** module allows applications to manage their own data and supports data sharing between applications on the same device. + +>**NOTE** +> +>The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. + + +## Modules to Import + +```ts +import Ability from '@ohos.application.Ability' +import dataShare from '@ohos.data.dataShare' +``` + + +## dataShare.createDataShareHelper + +createDataShareHelper(context: Context, uri: string, callback: AsyncCallback<DataShareHelper>): void + +Creates a **DataShareHelper** instance. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | -------------------------------------------------------- | ---- | ------------------------------------------------------------ | +| context | [Context](js-apis-application-context.md#context) | Yes | Context of an application. | +| uri | string | Yes | Uniform Resource Identifier (URI) of the server application to connect. | +| callback | AsyncCallback<[DataShareHelper](#datasharehelper)> | Yes | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the **DataShareHelper** instance created. Otherwise, **err** is an error object.| + +**Example** + +```ts +import dataShare from '@ohos.data.dataShare' + +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +let dataShareHelper; +dataShare.createDataShareHelper(this.context, uri, (err, data) => { + if (err != undefined) { + console.info("createDataShareHelper failed, error message : " + err); + } else { + console.info("createDataShareHelper succeed, data : " + data); + dataShareHelper = data; + } +}); +``` + +## dataShare.createDataShareHelper + +createDataShareHelper(context: Context, uri: string): Promise<DataShareHelper> + +Creates a **DataShareHelper** instance. This API uses a promise to return the result. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| ------- | ------------------------------------------------- | ---- | ------------------------------ | +| context | [Context](js-apis-application-context.md#context) | Yes | Context of an application. | +| uri | string | Yes | URI of the server application to connect.| + +**Return value** + +| Type | Description | +| -------------------------------------------------- | -------------------------------------- | +| Promise<[DataShareHelper](#datasharehelper)> | Promise used to return the **DataShareHelper** instance created.| + +**Example** + +```ts +import dataShare from '@ohos.data.dataShare' + +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +let dataShareHelper; +dataShare.createDataShareHelper(this.context, uri).then((data) => { + console.info("createDataShareHelper succeed, data : " + data); + dataShareHelper = data; +}).catch((err) => { + console.info("createDataShareHelper failed, error message : " + err); +}) +``` + +## DataShareHelper + +Provides a **DataShareHelper** instance to access or manage data on the server. Before invoking any method provided by **DataShareHelper**, you must create a **DataShareHelper** instance using [createDataShareHelper](#datasharecreatedatasharehelper). + +### openFile + +openFile(uri: string, mode: string, callback: AsyncCallback<number>): void + +Opens a file. This API uses an asynchronous callback to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | --------------------- | ---- | ---------------------------------- | +| uri | string | Yes | URI of the file to open. | +| mode | string | Yes | File open mode.
**r** means to open a file for reading; **w** means to open a file for writing (erasing any data in the file); **wa** means to open a file in append mode for writing at the end of the file; **rw** means to open a file for both reading and writing.| +| callback | AsyncCallback<number> | Yes | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the file descriptor. Otherwise, **err** is an error object.| + +**Example** + +```ts +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +dataShareHelper.openFile(uri, "rwt", (err, data) => { + if (err != undefined) { + console.info("openFile failed, error message : " + err); + }else { + console.info("openFile succeed, data : " + data); + let fd = data; + } +}); +``` + +### openFile + +openFile(uri: string, mode: string): Promise<number> + +Opens a file. This API uses a promise to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name| Type | Mandatory| Description | +| ---- | ------ | ---- | ------------------------------------------------------------ | +| uri | string | Yes | URI of the file to open. | +| mode | string | Yes | File open mode.
**r** means to open a file for reading; **w** means to open a file for writing (erasing any data in the file); **wa** means to open a file in append mode for writing at the end of the file; **rw** means to open a file for both reading and writing.| + +**Return value** + +| Type | Description | +| --------------- | ---------------- | +| Promise<number> | Promise used to return the file descriptor.| + +**Example** + +```ts +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +dataShareHelper.openFile(uri, "rwt").then((data) => { + console.info("openFile succeed, data : " + data); + let fd = data; +}).catch((err) => { + console.info("openFile failed, error message : " + err); +}) +``` + +### on('dataChange') + +on(type: 'dataChange', uri: string, callback: AsyncCallback<void>): void + +Subscribes to changes of the specified data. After an observer is registered, the subscriber will receive a notification when the change notification is triggered (the **notifyChange()** method is called). This API uses an asynchronous callback to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------ | +| type | string | Yes | Event type to subscribe to. The value is **dataChange**, which indicates data change events.| +| uri | string | Yes | URI of the data.| +| callback | AsyncCallback<void> | Yes | Called when the change notification is triggered. In this case, **err** is **undefined**. Otherwise, it is not called or **err** is an error object.| + +**Example** + +```ts +function onCallback() { + console.info("**** Observer on callback ****"); +} +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +dataShareHelper.on("dataChange", uri, onCallback); +``` + +### off('dataChange') + +off(type: 'dataChange', uri: string, callback?: AsyncCallback<void>): void + +Unsubscribes from the changes of the specified data. This API uses an asynchronous callback to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------ | +| type | string | Yes | Event type to unsubscribe from. The value is **dataChange**, which indicates data change events.| +| uri | string | Yes | URI of the data.| +| callback | AsyncCallback<void> | No | Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object.| + +**Example** + +```ts +function offCallback() { + console.info("**** Observer off callback ****"); +} +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +dataShareHelper.off("dataChange", uri, offCallback); +``` + +### insert + +insert(uri: string, value: ValuesBucket, callback: AsyncCallback<number>): void + +Inserts a single data record into the database. This API uses an asynchronous callback to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ | +| uri | string | Yes | URI of the data to insert. | +| value | [ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket) | Yes | Data to insert. If this parameter is empty, a blank row will be inserted. | +| callback | AsyncCallback<number> | Yes | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the index of the inserted data record. Otherwise, **err** is an error object.
The data index is not returned if the APIs of the database in use, for example, the key-value database (KVDB), do not support the return of indexes.| + +**Example** + +```ts +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +const valueBucket = { + "name": "rose", + "age": 22, + "salary": 200.5, +} +dataShareHelper.insert(uri, valueBucket, (err, data) => { + if (err != undefined) { + console.log("insert failed, error message : " + err); + }else{ + console.log("insert succeed, data : " + data); + } +}); +``` + +### insert + +insert(uri: string, value: ValuesBucket): Promise<number> + +Inserts a single data record into the database. This API uses a promise to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| ----- | --------------------------------------------------------- | ---- | -------------------------------------------------- | +| uri | string | Yes | URI of the data to insert. | +| value | [ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket) | Yes | Data to insert. If this parameter is empty, a blank row will be inserted.| + +**Return value** + +| Type | Description | +| ---------------- | ------------------------------------------------------------ | +| Promise<number> | Promise used to return the index of the inserted data record.
The data index is not returned if the APIs of the database (for example, KVDB) in use do not support the return of indexes.| + +**Example** + +```ts +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +const valueBucket = { + "name": "rose1", + "age": 221, + "salary": 20.5, +} +dataShareHelper.insert(uri, valueBucket).then((data) => { + console.log("insert succeed, data : " + data); +}).catch((err) => { + console.log("insert failed, error message : " + err); +}); +``` + +### delete + +delete(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback<number>): void + +Deletes one or more data records from the database. This API uses an asynchronous callback to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | +| uri | string | Yes | URI of the data to delete. | +| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | Yes | Filter criteria.
The predicate methods supported by **delete()** vary depending on the database used. For example, the KVDB supports only **inKeys**.| +| callback | AsyncCallback<number> | Yes | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the number of deleted data records. Otherwise, **err** is an error object.
The number of deleted data records is not returned if the APIs of the database (for example, KVDB) in use do not support it.| + +**Example** + +```ts +import dataSharePredicates from '@ohos.data.dataSharePredicates' + +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +let da = new dataSharePredicates.DataSharePredicates(); +da.equalTo("name", "ZhangSan"); +dataShareHelper.delete(uri, da, (err, data) => { + if (err != undefined) { + console.log("delete failed, error message : " + err); + }else{ + console.log("delete succeed, data : " + data); + } +}); +``` + +### delete + +delete(uri: string, predicates: dataSharePredicates.DataSharePredicates): Promise<number> + +Deletes one or more data records from the database. This API uses a promise to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | +| uri | string | Yes | URI of the data to delete. | +| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | Yes | Filter criteria.
The predicate methods supported by **delete()** vary depending on the database used. For example, the KVDB supports only **inKeys**.| + +**Return value** + +| Type | Description | +| ---------------- | ------------------------------------------------------------ | +| Promise<number> | Promise used to return the number of deleted data records.
The number of deleted data records is not returned if the APIs of the database (for example, KVDB) in use do not support it.| + +**Example** + +```ts +import dataSharePredicates from '@ohos.data.dataSharePredicates' + +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +let da = new dataSharePredicates.DataSharePredicates(); +da.equalTo("name", "ZhangSan"); +dataShareHelper.delete(uri, da).then((data) => { + console.log("delete succeed, data : " + data); +}).catch((err) => { + console.log("delete failed, error message : " + err); +}); +``` + +### query + +query(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array<string>, callback: AsyncCallback<DataShareResultSet>): void + +Queries data in the database. This API uses an asynchronous callback to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | +| uri | string | Yes | URI of the data to query. | +| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | Yes | Filter criteria.
The predicate methods supported by **query()** vary depending on the database used. For example, the KVDB supports only **inKeys** and **prefixKey**.| +| columns | Array<string> | Yes | Columns to query. If this parameter is empty, all columns will be queried. | +| callback | AsyncCallback<[DataShareResultSet](js-apis-data-DataShareResultSet.md#datashareresultset)> | Yes | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the result set obtained. Otherwise, **err** is an error object.| + +**Example** + +```ts +import dataSharePredicates from '@ohos.data.dataSharePredicates' + +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +let columns = ["*"]; +let da = new dataSharePredicates.DataSharePredicates(); +da.equalTo("name", "ZhangSan"); +dataShareHelper.query(uri, da, columns, (err, data) => { + if (err != undefined) { + console.log("query failed, error message : " + err); + }else{ + console.log("query succeed, rowCount : " + data.rowCount); + } +}); +``` + +### query + +query(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array<string>): Promise<DataShareResultSet> + +Queries data in the database. This API uses a promise to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | +| uri | string | Yes | URI of the data to query. | +| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | Yes | Filter criteria.
The predicate methods supported by **query()** vary depending on the database used. For example, the KVDB supports only **inKeys** and **prefixKey**.| +| columns | Array<string> | Yes | Columns to query. If this parameter is empty, all columns will be queried. | + +**Return value** + +| Type | Description | +| ------------------------------------------------------------ | --------------------------------- | +| Promise<[DataShareResultSet](js-apis-data-DataShareResultSet.md#datashareresultset)> | Promise used to return the result set obtained.| + +**Example** + +```ts +import dataSharePredicates from '@ohos.data.dataSharePredicates' + +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +let columns = ["*"]; +let da = new dataSharePredicates.DataSharePredicates(); +da.equalTo("name", "ZhangSan"); +dataShareHelper.query(uri, da, columns).then((data) => { + console.log("query succeed, rowCount : " + data.rowCount); +}).catch((err) => { + console.log("query failed, error message : " + err); +}); +``` + +### update + +update(uri: string, predicates: dataSharePredicates.DataSharePredicates, value: ValuesBucket, callback: AsyncCallback<number>): void + +Updates data in the database. This API uses an asynchronous callback to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | +| uri | string | Yes | URI of the data to update. | +| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | Yes | Filter criteria.
The predicate methods supported by **update()** vary depending on the database used. For example, only the relational database (RDB) supports predicates.| +| value | [ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket) | Yes | New data. | +| callback | AsyncCallback<number> | Yes | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the number of updated data records. Otherwise, **err** is an error object.
The number of updated data records is not returned if the APIs of the database (for example, KVDB) in use do not support it.| + +**Example** + +```ts +import dataSharePredicates from '@ohos.data.dataSharePredicates' + +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +let da = new dataSharePredicates.DataSharePredicates(); +da.equalTo("name", "ZhangSan"); +const va = { + "name": "roe1", + "age": 21, + "salary": 20.5, + +} +dataShareHelper.update(uri, da, va, (err, data) => { + if (err != undefined) { + console.log("update failed, error message : " + err); + }else{ + console.log("update succeed, data : " + data); + } +}); +``` + +### update + +update(uri: string, predicates: dataSharePredicates.DataSharePredicates, value: ValuesBucket): Promise<number> + +Updates data in the database. This API uses a promise to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | +| uri | string | Yes | URI of the data to update. | +| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | Yes | Filter criteria.
The predicate methods supported by **update()** vary depending on the database used. For example, only the RDB supports predicates.| +| value | [ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket) | Yes | New data. | + +**Return value** + +| Type | Description | +| ---------------- | ------------------------------------------------------------ | +| Promise<number> | Promise used to return the number of data records updated.
The number of updated data records is not returned if the APIs of the database (for example, KVDB) in use do not support it.| + +**Example** + +```ts +import dataSharePredicates from '@ohos.data.dataSharePredicates' + +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +let da = new dataSharePredicates.DataSharePredicates(); +da.equalTo("name", "ZhangSan"); +const va = { + "name": "roe1", + "age": 21, + "salary": 20.5, + +} +dataShareHelper.update(uri, da, va).then((data) => { + console.log("update succeed, data : " + data); +}).catch((err) => { + console.log("update failed, error message : " + err); +}); +``` + +### batchInsert + +batchInsert(uri: string, values: Array<ValuesBucket>, callback: AsyncCallback<number>): void + +Inserts batch data into the database. This API uses an asynchronous callback to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | +| uri | string | Yes | URI of the data to insert. | +| values | Array<[ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket)> | Yes | Data to insert. | +| callback | AsyncCallback<number> | Yes | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the number of data records inserted. Otherwise, **err** is an error object.
The number of inserted data records is not returned if the APIs of the database (for example, KVDB) in use do not support it.| + +**Example** + +```ts +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +let vbs = new Array({"name": "roe11", "age": 21, "salary": 20.5,}, + {"name": "roe12", "age": 21, "salary": 20.5,}, + {"name": "roe13", "age": 21, "salary": 20.5,}) +dataShareHelper.batchInsert(uri, vbs, (err, data) => { + if (err != undefined) { + console.log("batchInsert failed, error message : " + err); + }else{ + console.log("batchInsert succeed, data : " + data); + } +}); +``` + +### batchInsert + +batchInsert(uri: string, values: Array<ValuesBucket>): Promise<number> + +Inserts batch data into the database. This API uses a promise to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| ------ | ------------------------------------------------------------ | ---- | ------------------------ | +| uri | string | Yes | URI of the data to insert.| +| values | Array<[ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket)> | Yes | Data to insert. | + +**Return value** + +| Type | Description | +| ---------------- | ------------------------------------------------------------ | +| Promise<number> | Promise used to return the number of data records inserted.
The number of inserted data records is not returned if the APIs of the database (for example, KVDB) in use do not support it.| + +**Example** + +```ts +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +let vbs = new Array({"name": "roe11", "age": 21, "salary": 20.5,}, + {"name": "roe12", "age": 21, "salary": 20.5,}, + {"name": "roe13", "age": 21, "salary": 20.5,}) +dataShareHelper.batchInsert(uri, vbs).then((data) => { + console.log("batchInsert succeed, data : " + data); +}).catch((err) => { + console.log("batchInsert failed, error message : " + err); +}); +``` + +### getType + +getType(uri: string, callback: AsyncCallback<string>): void + +Obtains the Multipurpose Internet Mail Extensions (MIME) type of the specified data. This API uses an asynchronous callback to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ---------------------- | ---- | --------------------------------------------- | +| uri | string | Yes | URI of the data. | +| callback | AsyncCallback<string> | Yes | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the MIME type obtained. Otherwise, **err** is an error object.| + +**Example** + +```ts +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +dataShareHelper.getType(uri, (err, data)=>{ + if (err != undefined) { + console.log("getType failed, error message : " + err); + }else{ + console.log("getType succeed, data : " + data); + let result = data; + } +}); +``` + +### getType + +getType(uri: string): Promise<string> + +Obtains the MIME type of the specified data. This API uses a promise to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name| Type | Mandatory| Description | +| ---- | ------ | ---- | -------------------- | +| uri | string | Yes | URI of the data.| + +**Return value** + +| Type | Description | +| ---------------- | ----------------------------------- | +| Promise<string> | Promise used to return the MIME type obtained.| + +**Example** + +```ts +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +dataShareHelper.getType(uri).then((data) => { + console.log("getType succeed, data : " + data); +}).catch((err) => { + console.log("getType failed, error message : " + err); +}); +``` + +### getFileTypes + +getFileTypes(uri: string, mimeTypeFilter: string, callback: AsyncCallback<Array<string>>): void + +Obtains the supported MIME types. This API uses an asynchronous callback to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | +| uri | string | Yes | URI of the file. | +| mimeTypeFilter | string | Yes | MIME types to match. Example:
**\*/\***: obtain all supported types.
**image/\***: obtain the MIMEs with the main type of **image**.
**\*/jpg**: obtains the MIMEs with subtype of **jpg**.| +| callback | openFile(uri: string, mode: string, callback: AsyncCallback) { let err = {"code":0}; let fd = 0; callback(err,fd);}ts | Yes | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the MIME types obtained. Otherwise, **err** is an error object.| + +**Example** + +```ts +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +let mimeTypeFilter = "image/*"; +dataShareHelper.getFileTypes(uri, mimeTypeFilter, (err,data) => { + if (err != undefined) { + console.log("getFileTypes failed, error message : " + err); + }else{ + console.log("getFileTypes succeed, data : " + data); + } +}); +``` + +### getFileTypes + +getFileTypes(uri: string, mimeTypeFilter: string): Promise<Array<string>> + +Obtains the supported MIME types. This API uses a promise to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------------- | ------ | ---- | ------------------------------------------------------------ | +| uri | string | Yes | URI of the file. | +| mimeTypeFilter | string | Yes | MIME types to match. Example:
**\*/\***: obtain all supported types.
**image/\***: obtain the MIMEs with the main type of **image**.
**\*/jpg**: obtains the MIMEs with subtype of **jpg**.| + +**Return value** + +| Type | Description | +| ------------------------ | ------------------------ | +| Promise<Array<string>> | Promise used to return the MIME types obtained.| + +**Example** + +```ts +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +let mimeTypeFilter = "image/*"; +dataShareHelper.getFileTypes(uri, mimeTypeFilter).then((data) => { + console.log("getFileTypes succeed, data : " + data); +}).catch((err) => { + console.log("getFileTypes failed, error message : " + err); +}); +``` + +### normalizeUri + +normalizeUri(uri: string, callback: AsyncCallback<string>): void + +Normalizes a DataShare URI. The normalized URI can be used across devices, and the DataShare URI can be used only by the local device. This API uses an asynchronous callback to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ---------------------- | ---- | -------------------------------------------------------- | +| uri | string | Yes | [URI](js-apis-uri.md#uri) to normalize. | +| callback | AsyncCallback<string> | Yes | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the normalized URI (if **null** is returned, URI normalization is not supported). Otherwise, **err** is an error object.| + +**Example** + +```ts +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +dataShareHelper.normalizeUri(uri, (err, data) => { + if (err != undefined) { + console.log("normalizeUri failed, error message : " + err); + }else{ + console.log("normalizeUri = " + data); + } +}); +``` + +### normalizeUri + +normalizeUri(uri: string): Promise<string> + +Normalizes a DataShare URI. The normalized URI can be used across devices, and the DataShare URI can be used only by the local device. This API uses a promise to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name| Type | Mandatory| Description | +| ---- | ------ | ---- | ----------------------------------------- | +| uri | string | Yes | [URI](js-apis-uri.md#uri) to normalize.| + +**Return value** + +| Type | Description | +| ---------------- | ---------------------------------------------- | +| Promise<string> | Promise used to return the result. If URI normalization is supported, the normalized URI is returned. Otherwise, **null** is returned.| + +**Example** + +```ts +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +dataShareHelper.normalizeUri(uri).then((data) => { + console.log("normalizeUri = " + data); +}).catch((err) => { + console.log("normalizeUri failed, error message : " + err); +}); +``` + +### denormalizeUri + +denormalizeUri(uri: string, callback: AsyncCallback<string>): void + +Denormalizes a URI. This API uses an asynchronous callback to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ---------------------- | ---- | --------------------------------------------------- | +| uri | string | Yes | [URI](js-apis-uri.md#uri) to denormalize.| +| callback | AsyncCallback<string> | Yes | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the URI obtained. If the original URI is returned, denormalization is not required. If **null** is returned, denormalization is not supported. If the operation fails, **err** is an error object.| + +**Example** + +```ts +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +dataShareHelper.denormalizeUri(uri, (err, data) => { + if (err != undefined) { + console.log("denormalizeUri failed, error message : " + err); + }else{ + console.log("denormalizeUri = " + data); + } +}); +``` + +### denormalizeUri + +denormalizeUri(uri: string): Promise<string> + +Denormalizes a URI. This API uses a promise to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name| Type | Mandatory| Description | +| ---- | ------ | ---- | ------------------------------------------- | +| uri | string | Yes | [URI](js-apis-uri.md#uri) to denormalize.| + +**Return value** + +| Type | Description | +| ---------------- | ----------------------------------------- | +| Promise<string> | Promise used to return the result. If the denormalization is successful, the URI obtained is returned. If no operation is required, the original URI is returned. If denormalization is not supported, **null** is returned.| + +**Example** + +```ts +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +dataShareHelper.denormalizeUri(uri).then((data) => { + console.log("denormalizeUri = " + data); +}).catch((err) => { + console.log("denormalizeUri failed, error message : " + err); +}); +``` + +### notifyChange + +notifyChange(uri: string, callback: AsyncCallback<void>): void + +Notifies the registered observer of data changes. This API uses an asynchronous callback to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------ | +| uri | string | Yes | URI of the data.| +| callback | AsyncCallback<void> | Yes | Callback invoked to return the result. If the observer is notified of the data changes, **err** is **undefined**. Otherwise, **err** is an error object.| + +**Example** + +```ts +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +dataShareHelper.notifyChange(uri, () => { + console.log("***** notifyChange *****"); +}); +``` + +### notifyChange + +notifyChange(uri: string): Promise<void> + +Notifies the registered observer of data changes. This API uses a promise to return the result. + +This API can be used only in the stage model. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Consumer + +**Parameters** + +| Name| Type | Mandatory| Description | +| ---- | ------ | ---- | -------------------- | +| uri | string | Yes | URI of the data.| + +**Return value** + +| Type | Description | +| -------------- | --------------------- | +| Promise<void> | Promise that returns no value.| + +**Example** + +```ts +let uri = ("datashare:///com.samples.datasharetest.DataShare"); +dataShareHelper.notifyChange(uri); +``` diff --git a/en/application-dev/reference/apis/js-apis-data-dataSharePredicates.md b/en/application-dev/reference/apis/js-apis-data-dataSharePredicates.md new file mode 100644 index 0000000000..16c1c1c7b6 --- /dev/null +++ b/en/application-dev/reference/apis/js-apis-data-dataSharePredicates.md @@ -0,0 +1,861 @@ +# Data Share Predicates + +You can use **DataSharePredicates** to specify conditions for [updating](js-apis-data-dataShare.md#update), [deleting](js-apis-data-dataShare.md#delete), and [querying](js-apis-data-dataShare.md#query) data with **DataShare**. + +>**NOTE** +> +>The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. + + +## Modules to Import + +```ts +import dataSharePredicates from '@ohos.data.dataSharePredicates'; +``` + +## equalTo + +equalTo(field: string, value: ValueType): DataSharePredicates + +Sets a **DataSharePredicates** object to match the field with data type **ValueType** and value equal to the specified value. + +Currently, only the relational database (RDB) and key-value database (KVDB, schema) support this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | --------------------------------------------------- | ---- | ---------------------- | +| field | string | Yes | Column name in the database table. | +| value | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | Value to match.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.equalTo("NAME", "Rose") +``` + +## notEqualTo + +notEqualTo(field: string, value: ValueType): DataSharePredicates + +Sets a **DataSharePredicates** object to match the field with data type **ValueType** and value not equal to the specified value. + +Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | --------------------------------------------------- | ---- | ---------------------- | +| field | string | Yes | Column name in the database table. | +| value | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | Value to match.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.notEqualTo("NAME", "Rose") +``` + +## beginWrap + +beginWrap(): DataSharePredicates + +Adds a left parenthesis to this **DataSharePredicates**. Currently, only the RDB supports this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Return value** + +| Type | Description | +| ------------------------------------------- | ---------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object with a left parenthesis.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.equalTo("NAME", "lisi") + .beginWrap() + .equalTo("AGE", 18) + .or() + .equalTo("SALARY", 200.5) + .endWrap() +``` + +## endWrap + +endWrap(): DataSharePredicates + +Adds a right parenthesis to this **DataSharePredicates** object. Currently, only the RDB supports this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Return value** + +| Type | Description | +| ------------------------------------------- | ---------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object with a right parenthesis.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.equalTo("NAME", "lisi") + .beginWrap() + .equalTo("AGE", 18) + .or() + .equalTo("SALARY", 200.5) + .endWrap() +``` + +## or + +or(): DataSharePredicates + +Adds the OR condition to this **DataSharePredicates** object. + +Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Return value** + +| Type | Description | +| ------------------------------------------- | ---------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object with the OR condition.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.equalTo("NAME", "lisi") + .or() + .equalTo("NAME", "Rose") +``` + +## and + +and(): DataSharePredicates + +Adds the AND condition to this **DataSharePredicates** object. + +Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Return value** + +| Type | Description | +| ------------------------------------------- | ---------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object with the AND condition.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.equalTo("NAME", "lisi") + .and() + .equalTo("SALARY", 200.5) +``` + +## contains + +contains(field: string, value: string): DataSharePredicates + +Sets a **DataSharePredicates** object to match the string that contains the specified value. Currently, only the RDB supports this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | -------------------- | +| field | string | Yes | Column name in the database table. | +| value | string | Yes | Value contained in the string.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.contains("NAME", "os") +``` + +## beginsWith + +beginsWith(field: string, value: string): DataSharePredicates + +Sets a **DataSharePredicates** object to match a string that starts with the specified value. Currently, only the RDB supports this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | ---------------------- | +| field | string | Yes | Column name in the database table. | +| value | string | Yes | Start value of the string.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.beginsWith("NAME", "os") +``` + +## endsWith + +endsWith(field: string, value: string): DataSharePredicates + +Sets a **DataSharePredicates** object to match a string that ends with the specified value. Currently, only the RDB supports this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | ---------------------- | +| field | string | Yes | Column name in the database table. | +| value | string | Yes | End value of the string.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.endsWith("NAME", "os") +``` + +## isNull + +isNull(field: string): DataSharePredicates + +Sets a **DataSharePredicates** object to match the field whose value is null. + +Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | ------------------ | +| field | string | Yes | Column name in the database table.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.isNull("NAME") +``` + +## isNotNull + +isNotNull(field: string): DataSharePredicates + +Sets a **DataSharePredicates** object to match the field whose value is not null. + +Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | ------------------ | +| field | string | Yes | Column name in the database table.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.isNotNull("NAME") +``` + +## like + +like(field: string, value: string): DataSharePredicates + +Sets a **DataSharePredicates** object to match a string that is similar to the specified value. + +Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | ---------------------- | +| field | string | Yes | Column name in the database table. | +| value | string | Yes | Value to match.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.like("NAME", "%os%") +``` + +## unlike + +unlike(field: string, value: string): DataSharePredicates + +Sets a **DataSharePredicates** object to match a string that is not similar to the specified value. + +Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | ---------------------- | +| field | string | Yes | Column name in the database table. | +| value | string | Yes | Value to match.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.unlike("NAME", "%os%") +``` + +## glob + +glob(field: string, value: string): DataSharePredicates + +Sets a **DataSharePredicates** object to match the specified string. Currently, only the RDB supports this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | ---------------------- | +| field | string | Yes | Column name in the database table. | +| value | string | Yes | Value to match.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified string.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.glob("NAME", "?h*g") +``` + +## between + +between(field: string, low: ValueType, high: ValueType): DataSharePredicates + +Sets a **DataSharePredicates** object to match the field with data type **ValueType** and value within the specified range. Currently, only the RDB supports this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | --------------------------------------------------- | ---- | ------------------------ | +| field | string | Yes | Column name in the database table. | +| low | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | The lowest value of the range.| +| high | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | The highest value of the range.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.between("AGE", 10, 50) +``` + +## notBetween + +notBetween(field: string, low: ValueType, high: ValueType): DataSharePredicates + +Sets a **DataSharePredicates** object to match the field with data type **ValueType** and value out of the specified range. Currently, only the RDB supports this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | --------------------------------------------------- | ---- | ------------------------ | +| field | string | Yes | Column name in the database table. | +| low | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | The lowest value of the range.| +| high | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | The highest value of the range.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.notBetween("AGE", 10, 50) +``` + +## greaterThan + +greaterThan(field: string, value: ValueType): DataSharePredicates + +Sets a **DataSharePredicates** object to match the field with data type **ValueType** and value greater than the specified value. + +Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name | Type | Mandatory| Description | +| ------- | --------- | ---- | ---------------------- | +| field | string | Yes | Column name in the database table. | +| value | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | Value to match.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.greaterThan("AGE", 10) +``` + +## lessThan + +lessThan(field: string, value: ValueType): DataSharePredicates + +Sets a **DataSharePredicates** object to match the field with data type **ValueType** and value less than the specified value. + +Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | --------------------------------------------------- | ---- | ---------------------- | +| field | string | Yes | Column name in the database table. | +| value | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | Value to match.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.lessThan("AGE", 50) +``` + +## greaterThanOrEqualTo + +greaterThanOrEqualTo(field: string, value: ValueType): DataSharePredicates + +Sets a **DataSharePredicates** object to match the field with data type **ValueType** and value greater than or equal to the specified value. + +Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name | Type | Mandatory| Description | +| ------- | --------- | ---- | ---------------------- | +| field | string | Yes | Column name in the database table. | +| value | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | Value to match.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.greaterThanOrEqualTo("AGE", 10) +``` + +## lessThanOrEqualTo + +lessThanOrEqualTo(field: string, value: ValueType): DataSharePredicates + +Sets a **DataSharePredicates** object to match the field with data type **ValueType** and value less than or equal to the specified value. + +Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name | Type | Mandatory| Description | +| ------- | --------- | ---- | ---------------------- | +| field | string | Yes | Column name in the database table. | +| value | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | Value to match.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.lessThanOrEqualTo("AGE", 50) +``` + +## orderByAsc + +orderByAsc(field: string): DataSharePredicates + +Sets a **DataSharePredicates** object that sorts the values in a column in ascending order. + +Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | ------------------ | +| field | string | Yes | Column name in the database table.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.orderByAsc("AGE") +``` + +## orderByDesc + +orderByDesc(field: string): DataSharePredicates + +Sets a **DataSharePredicates** object that sorts the values in a column in descending order. + +Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | ------------------ | +| field | string | Yes | Column name in the database table.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.orderByDesc("AGE") +``` + +## distinct + +distinct(): DataSharePredicates + +Sets a **DataSharePredicates** object to filter out duplicate records. Currently, only the RDB supports this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.equalTo("NAME", "Rose").distinct() +``` + +## limit + +limit(total: number, offset: number): DataSharePredicates + +Sets a **DataSharePredicates** object to specify the number of results and the start position. + +Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ------ | ---- | -------------- | +| total | number | Yes | Number of results. | +| offset | number | Yes | Start position.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.equalTo("NAME", "Rose").limit(10, 3) +``` + +## groupBy + +groupBy(fields: Array<string>): DataSharePredicates + +Sets a **DataSharePredicates** object to group the records according to the specified parameters. Currently, only the RDB supports this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------------- | ---- | -------------------- | +| fields | Array<string> | Yes | Names of the columns to group.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.groupBy(["AGE", "NAME"]) +``` + +## indexedBy + +indexedBy(field: string): DataSharePredicates + +Sets a **DataSharePredicates** object to specify the index column. Currently, only the RDB supports this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | -------------- | +| field | string | Yes | Name of the index column.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.indexedBy("SALARY_INDEX") +``` + +## in + +in(field: string, value: Array<ValueType>): DataSharePredicates + +Sets a **DataSharePredicates** object to match the field with data type **Array** and value within the specified range. + +Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name | Type | Mandatory| Description | +| ------- | ---------------- | ---- | --------------------------------------- | +| field | string | Yes| Column name in the database table. | +| value | Array<[ValueType](js-apis-data-ValuesBucket.md#valuetype)> | Yes | Array of **ValueType**s to match.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.in("AGE", [18, 20]) +``` + +## notIn + +notIn(field: string, value: Array<ValueType>): DataSharePredicates + +Sets a **DataSharePredicates** object to match the field with data type **Array** and value out of the specified range. + +Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name | Type | Mandatory| Description | +| ------- | ---------------- | ---- | --------------------------------------- | +| field | string | Yes | Column name in the database table. | +| value | Array<[ValueType](js-apis-data-ValuesBucket.md#valuetype)> | Yes | Array of **ValueType**s to match.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.notIn("NAME", ["Lisa", "Rose"]) +``` + +## prefixKey + +prefixKey(prefix: string): DataSharePredicates + +Sets a **DataSharePredicates** object to match a field with the specified key prefix. Currently, only the KVDB supports this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | -------------- | +| prefix | string | Yes | Key prefix to match.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.prefixKey("NAME") +``` + +## inKeys + +inKeys(keys: Array<string>): DataSharePredicates + +Sets a **DataSharePredicates** object to match the fields whose keys are within the given range. Currently, only the KVDB supports this **DataSharePredicates** object. + +**System capability**: SystemCapability.DistributedDataManager.DataShare.Core + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------------- | ---- | ------------------ | +| inKeys | Array<string> | Yes | Array of the keys to match.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | -------------------------- | +| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object that matches the specified field.| + +**Example** + +```ts +let predicates = new dataSharePredicates.DataSharePredicates() +predicates.inKeys(["Lisa", "Rose"]) +``` diff --git a/en/application-dev/reference/apis/js-apis-privacyManager.md b/en/application-dev/reference/apis/js-apis-privacyManager.md index e06a5536a8..42cf66fea6 100644 --- a/en/application-dev/reference/apis/js-apis-privacyManager.md +++ b/en/application-dev/reference/apis/js-apis-privacyManager.md @@ -1,11 +1,11 @@ # Privacy Management -Provides APIs for privacy management, such as management of permission usage records. +The **PrivacyManager** module provides APIs for privacy management, such as management of permission usage records. > **NOTE** -> -> - The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. -> - The APIs of this module are system APIs and cannot be called by third-party applications. +> +> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> The APIs of this module are system APIs and cannot be called by third-party applications. ## Modules to Import @@ -19,7 +19,6 @@ import privacyManager from '@ohos.privacyManager'; addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: number, failCount: number): Promise<number> Adds a permission usage record when an application protected by the permission is called by another service or application. This API uses a promise to return the result. - The permission usage record includes the application identity of the invoker, name of the permission used, and number of successful and failed accesses to the application. **Required permissions**: ohos.permission.PERMISSION_USED_STATS (available only to system applications) @@ -41,10 +40,6 @@ The permission usage record includes the application identity of the invoker, na | :------------ | :---------------------------------- | | Promise<number> | Promise used to return the result. If **0** is returned, the record is added successfully. If **-1** is returned, the record fails to be added.| -``` - -``` - **Example** ```js @@ -59,7 +54,6 @@ privacyManager.addPermissionUsedRecord(tokenID, "ohos.permission.PERMISSION_USED addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: number, failCount: number, callback: AsyncCallback<number>): void Adds a permission usage record when an application protected by the permission is called by another service or application. This API uses an asynchronous callback to return the result. - The permission usage record includes the application identity of the invoker, name of the permission used, and number of successful and failed accesses to the application. **Required permissions**: ohos.permission.PERMISSION_USED_STATS (available only to system applications) @@ -202,7 +196,7 @@ Represents the permission usage records of all applications. ## BundleUsedRecord -Represents the application access records of an application. +Represents the permission access records of an application. **System capability**: SystemCapability.Security.AccessToken @@ -212,11 +206,11 @@ Represents the application access records of an application. | isRemote | boolean | No | Whether the token ID belongs to a remote device. The default value is **false**.| | deviceId | string | No | ID of the device hosting the target application. | | bundleName | string | No | Bundle name of the target application.| -| permissionRecords | Array<[PermissionUsedRecord](#PermissionUsedRecord)> | No | Permission usage records of the specified application obtained. | +| permissionRecords | Array<[PermissionUsedRecord](#PermissionUsedRecord)> | No | Permission usage records of the target application. | ## PermissionUsedRecord -Represents the access records of a permission. +Represents the usage records of a permission. **System capability**: SystemCapability.Security.AccessToken @@ -225,8 +219,8 @@ Represents the access records of a permission. | permissionName | string | No | Name of the permission. | | accessCount | number | No | Total number of times that the permission is accessed.| | rejectCount | number | No | Total number of times that the access to the permission is rejected.| -| lastAccessTime | number | No | Last time when the permission was accessed, in ms.| -| lastRejectTime | number | No | Last time when the access to the permission was rejected, in ms.| +| lastAccessTime | number | No | Last time when the permission was accessed, accurate to ms.| +| lastRejectTime | number | No | Last time when the access to the permission was rejected, accurate to ms.| | lastAccessDuration | number | No | Last access duration, in ms.| | accessRecords | Array<[UsedRecordDetail](#usedrecorddetail)> | No | Access records. This parameter is valid only when **flag** is **FLAG_PERMISSION_USAGE_SUMMARY**. By default, 10 records are provided. | | rejectRecords | Array<[UsedRecordDetail](#usedrecorddetail)> | No | Rejected records. This parameter is valid only when **flag** is **FLAG_PERMISSION_USAGE_SUMMARY**. By default, 10 records are provided. | -- GitLab From 7d6241120244d76b0f47a61cbf372cdb6df2f7f0 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Thu, 21 Jul 2022 20:04:15 +0800 Subject: [PATCH 171/868] update docs Signed-off-by: Annie_wang --- .../reference/apis/js-apis-appAccount.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-appAccount.md b/en/application-dev/reference/apis/js-apis-appAccount.md index 60f404c4b0..2a3dc0d9e3 100644 --- a/en/application-dev/reference/apis/js-apis-appAccount.md +++ b/en/application-dev/reference/apis/js-apis-appAccount.md @@ -21,7 +21,7 @@ Creates an **AppAccountManager** instance. **System capability**: SystemCapability.Account.AppAccount -**Return Value** +**Return value** | Type | Description | | ----------------- | ------------ | @@ -102,7 +102,7 @@ Adds an app account name and additional information (information that can be con | name | string | Yes | Name of the app account to add. | | extraInfo | string | Yes | Additional information to add. The additional information cannot contain sensitive information, such as the app account password.| -**Return Value** +**Return value** | Type | Description | | ------------------- | --------------------- | @@ -198,7 +198,7 @@ Deletes an app account from the **AppAccountManager** service. This API uses a p | ---- | ------ | ---- | ----------- | | name | string | Yes | Name of the app account to delete.| -**Return Value** +**Return value** | Type | Description | | :------------------ | :-------------------- | @@ -255,7 +255,7 @@ Disables an app account from accessing an app with the given bundle name. This A | name | string | Yes | Name of the target app account.| | bundleName | string | Yes | Bundle name of the app. | -**Return Value** +**Return value** | Type | Description | | :------------------ | :-------------------- | @@ -312,7 +312,7 @@ Enables an app account to access an app with the given bundle name. This API use | name | string | Yes | Name of the target app account. | | bundleName | string | Yes | Bundle name of the app.| -**Return Value** +**Return value** | Type | Description | | :------------------ | :-------------------- | @@ -371,7 +371,7 @@ Checks whether an app account allows app data synchronization. This API uses a p | ---- | ------ | ---- | ------- | | name | string | Yes | Name of the target app account.| -**Return Value** +**Return value** | Type | Description | | :--------------------- | :-------------------- | @@ -430,7 +430,7 @@ Sets a credential for an app account. This API uses a promise to return the resu | credentialType | string | Yes | Type of the credential to set.| | credential | string | Yes | Credential to set. | -**Return Value** +**Return value** | Type | Description | | :------------------ | :-------------------- | @@ -487,7 +487,7 @@ Sets additional information for an app account. This API uses a promise to retur | name | string | Yes | Name of the target app account. | | extraInfo | string | Yes | Additional information to set.| -**Return Value** +**Return value** | Type | Description | | :------------------ | :-------------------- | @@ -548,7 +548,7 @@ Sets whether to enable app data synchronization for an app account. This API use | name | string | Yes | Name of the target app account. | | isEnable | boolean | Yes | Whether to enable app data synchronization.| -**Return Value** +**Return value** | Type | Description | | :------------------ | :-------------------- | @@ -606,7 +606,7 @@ Sets data to be associated with an app account. This API uses a promise to retur | key | string | Yes | Key of the data to set. The private key can be customized.| | value | string | Yes | Value of the data to be set. | -**Return Value** +**Return value** | Type | Description | | :------------------ | :-------------------- | @@ -664,7 +664,7 @@ Obtains the credential of an app account. This API uses a promise to return the | name | string | Yes | Name of the target app account. | | credentialType | string | Yes | Type of the credential to obtain.| -**Return Value** +**Return value** | Type | Description | | :-------------------- | :-------------------- | @@ -720,7 +720,7 @@ Obtains additional information of an app account. This API uses a promise to ret | ---- | ------ | ---- | ------- | | name | string | Yes | Name of the target app account.| -**Return Value** +**Return value** | Type | Description | | :-------------------- | :-------------------- | @@ -778,7 +778,7 @@ Obtains data associated with an app account. This API uses a promise to return t | name | string | Yes | Name of the target app account. | | key | string | Yes | Key of the data to obtain.| -**Return Value** +**Return value** | Type | Description | | :-------------------- | :-------------------- | -- GitLab From d1389bd219afe4431acd2f803726e4c54f7e2d0b Mon Sep 17 00:00:00 2001 From: duanweiling Date: Thu, 21 Jul 2022 20:37:24 +0800 Subject: [PATCH 172/868] =?UTF-8?q?=E7=A4=BA=E4=BE=8B=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: duanweiling --- ...s-application-DataShareExtensionAbility.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md b/zh-cn/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md index f5105c22fd..886f1363ec 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md +++ b/zh-cn/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md @@ -53,7 +53,7 @@ let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS " let rdbStore; export default class DataShareExtAbility extends DataShareExtensionAbility { - onCreate(want: Want, callback: AsyncCallback) { + onCreate(want, callback) { rdb.getRdbStore(this.context, { name: DB_NAME }, 1, function (err, data) { @@ -90,7 +90,7 @@ getFileTypes?(uri: string, mimeTypeFilter: string, callback: AsyncCallback<Ar ```ts export default class DataShareExtAbility extends DataShareExtensionAbility { - getFileTypes(uri: string, mimeTypeFilter: string, callback: AsyncCallback>) { + getFileTypes(uri, mimeTypeFilter, callback) { let err = {"code":0}; let ret = new Array("type01", "type02", "type03"); callback(err, ret); @@ -118,7 +118,7 @@ openFile?(uri: string, mode: string, callback: AsyncCallback<number>): voi ```ts export default class DataShareExtAbility extends DataShareExtensionAbility { - openFile(uri: string, mode: string, callback: AsyncCallback) { + openFile(uri, mode, callback) { let err = {"code":0}; let fd = 0; callback(err,fd); @@ -146,7 +146,7 @@ insert?(uri: string, valueBucket: ValuesBucket, callback: AsyncCallback<numbe ```ts export default class DataShareExtAbility extends DataShareExtensionAbility { - insert(uri: string, valueBucket: ValuesBucket, callback: AsyncCallback) { + insert(uri, valueBucket, callback) { if (value == null) { console.info('invalid valueBuckets'); return; @@ -182,7 +182,7 @@ update?(uri: string, predicates: dataSharePredicates.DataSharePredicates, valueB ```ts export default class DataShareExtAbility extends DataShareExtensionAbility { - update(uri: string, predicates: dataSharePredicates.DataSharePredicates, valueBucket: ValuesBucket, callback: AsyncCallback) { + update(uri, predicates, valueBucket, callback) { if (predicates == null || predicates == undefined) { return; } @@ -215,7 +215,7 @@ delete?(uri: string, predicates: dataSharePredicates.DataSharePredicates, callba ```ts export default class DataShareExtAbility extends DataShareExtensionAbility { - delete(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback) { + delete(uri, predicates, callback) { if (predicates == null || predicates == undefined) { return; } @@ -249,7 +249,7 @@ query?(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns ```ts export default class DataShareExtAbility extends DataShareExtensionAbility { - query(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array, callback: AsyncCallback) { + query(uri, predicates, columns, callback) { if (predicates == null || predicates == undefined) { return; } @@ -284,7 +284,7 @@ getType?(uri: string, callback: AsyncCallback<string>): void ```ts export default class DataShareExtAbility extends DataShareExtensionAbility { - getType(uri: string, callback: AsyncCallback) { + getType(uri, callback) { let err = {"code":0}; let ret = "image"; callback(err, ret); @@ -312,7 +312,7 @@ batchInsert?(uri: string, valueBuckets: Array<ValuesBucket>, callback: Asy ```ts export default class DataShareExtAbility extends DataShareExtensionAbility { - batchInsert(uri: string, valueBuckets: Array, callback: AsyncCallback) { + batchInsert(uri, valueBuckets, callback) { if (valueBuckets == null || valueBuckets.length == undefined) { console.info('invalid valueBuckets'); return; @@ -348,7 +348,7 @@ normalizeUri?(uri: string, callback: AsyncCallback<string>): void ```ts export default class DataShareExtAbility extends DataShareExtensionAbility { - normalizeUri(uri: string, callback: AsyncCallback) { + normalizeUri(uri, callback) { let err = {"code":0}; let ret = "normalize+" + uri; callback(err, ret); @@ -375,7 +375,7 @@ denormalizeUri?(uri: string, callback: AsyncCallback<string>): void ```ts export default class DataShareExtAbility extends DataShareExtensionAbility { - denormalizeUri(uri: string, callback: AsyncCallback) { + denormalizeUri(uri, callback) { let err = {"code":0}; let ret = "denormalize+" + uri; callback(err, ret); -- GitLab From 3b3359ad2ef91a604b7453c5259a7c3aaeb9aa71 Mon Sep 17 00:00:00 2001 From: zhou-liting125 Date: Thu, 21 Jul 2022 09:47:05 +0800 Subject: [PATCH 173/868] Web documentation rectification Signed-off-by: zhou-liting125 --- .../arkui-ts/ts-basic-components-web.md | 694 ++++++++++++++---- 1 file changed, 565 insertions(+), 129 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md index 477a3c5ad3..f090a3bfa9 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md @@ -12,6 +12,64 @@ 无 +## MessageLevel枚举说明 + +| 名称 | 描述 | +| ----- | :--------- | +| Debug | 调试级别。 | +| Error | 错误级别。 | +| Info | 消息级别。 | +| Log | 日志级别。 | +| Warn | 警告级别。 | + +## RenderExitReason枚举说明 + +onRenderExited接口返回的渲染进程退出的具体原因。 + +| 名称 | 描述 | +| -------------------------- | ---------------------------- | +| ProcessAbnormalTermination | 渲染进程异常退出。 | +| ProcessWasKilled | 收到SIGKILL,或被手动终止。 | +| ProcessCrashed | 渲染进程崩溃退出,如段错误。 | +| ProcessOom | 程序内存不足。 | +| ProcessExitUnknown | 其他原因。 | + +## MixedMode枚举说明 + +| 名称 | 描述 | +| ---------- | ----------------------------------------------------------- | +| All | 允许加载HTTP和HTTPS混合内容。所有不安全的内容都可以被加载。 | +| Compatible | 混合内容兼容性模式,部分不安全的内容可能被加载。 | +| None | 不允许加载HTTP和HTTPS混合内容。 | + +## CacheMode枚举说明 +| 名称 | 描述 | +| ------- | ------------------------------------------------------------ | +| Default | 使用未过期的cache加载资源,如果cache中无该资源则从网络中获取。 | +| None | 加载资源使用cache,如果cache中无该资源则从网络中获取。 | +| Online | 加载资源不使用cache,全部从网络中获取。 | +| Only | 只从cache中加载资源。 | + +## FileSelectorMode枚举说明 +| 名称 | 描述 | +| -------------------- | -------------------- | +| FileOpenMode | 打开上传单个文件。 | +| FileOpenMultipleMode | 打开上传多个文件。 | +| FileOpenFolderMode | 打开上传文件夹模式。 | +| FileSaveMode | 文件保存模式。 | + + ## HitTestType枚举说明 + + | 名称 | 描述 | + | ------------- | ----------------------------------------- | + | EditText | 可编辑的区域。 | + | Email | 电子邮件地址。 | + | HttpAnchor | 超链接,其src为http。 | + | HttpAnchorImg | 带有超链接的图片,其中超链接的src为http。 | + | Img | HTML::img标签。 | + | Map | 地理地址。 | + | Unknown | 未知内容。 | + ## 接口 - Web\(options: { src: string, controller?: WebController }\) @@ -28,23 +86,166 @@ > > - 不支持转场动画; -## 属性 -| 名称 | 参数类型 | 默认值 | 描述 | -| ------------------ | ------------------------------------------------------------ | ----------------- | ------------------------------------------------------------ | -| domStorageAccess | boolean | false | 设置是否开启文档对象模型存储接口(DOM Storage API)权限,默认未开启。 | -| fileAccess | boolean | false | 设置是否开启通过[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)访问应用中rawfile路径的文件, 默认启用。 | -| fileFromUrlAccess | boolean | true | 设置是否允许通过网页中的JavaScript脚本访问[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)的内容,默认未启用。 | -| imageAccess | boolean | true | 设置是否允许自动加载图片资源,默认允许。 | -| javaScriptProxy | {
object: object,
name: string,
methodList: Array\,
controller: WebController
} | - | 注入JavaScript对象到window对象中,并在window对象中调用该对象的方法。所有参数不支持更新。
- object: 参与注册的对象。只能声明方法,不能声明属性 。其中方法的参数和返回类型只能为string,number,boolean。
- name: 注册对象的名称,与window中调用的对象名一致。注册后window对象可以通过此名字访问应用侧JavaScript对象。
- methodList: 参与注册的应用侧JavaScript对象的方法。
- controller: 控制器。 | -| javaScriptAccess | boolean | true | 设置是否允许执行JavaScript脚本,默认允许执行。 | -| mixedMode | [MixedMode](#mixedmode枚举说明) | MixedMode.None | 设置是否允许加载超文本传输协议(HTTP)和超文本传输安全协议(HTTPS)混合内容,默认不允许加载HTTP和HTTPS混合内容。 | -| onlineImageAccess | boolean | true | 设置是否允许从网络加载图片资源(通过HTTP和HTTPS访问的资源),默认允许访问。 | -| zoomAccess | boolean | true | 设置是否支持手势进行缩放,默认允许执行缩放。 | -| overviewModeAccess | boolean | true | 设置是否使用概览模式加载网页,默认使用该方式。 | -| databaseAccess | boolean | false | 设置是否开启数据库存储API权限,默认不开启。 | -| cacheMode | [CacheMode](#cachemode枚举说明) | CacheMode.Default | 设置缓存模式。 | -| textZoomAtio | number | 100 | 设置页面的文本缩放百分比,默认为100%。 | -| userAgent | string | - | 设置用户代理。 | +## WebAttribute + +web组件的网络属性。 + +### domStorageAccess + +domStorageAccess(domStorageAccess: boolean) + +设置是否开启文档对象模型存储接口(DOM Storage API)权限,默认未开启。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | domStorageAccess | boolean | 是 | - | 设置是否开启文档对象模型存储接口(DOM Storage API)权限。 | + +### fileAccess + +fileAccess(fileAccess: boolean) + +设置是否开启通过[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)访问应用中rawfile路径的文件, 默认启用。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | fileAccess | boolean | 是 | - | 设置是否开启通过[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)访问应用中rawfile路径的文件。 | + +### fileFromUrlAccess9+ + +fileFromUrlAccess(fileFromUrlAccess: boolean) + +设置是否允许通过网页中的JavaScript脚本访问[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)的内容,默认未启用。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | fileFromUrlAccess | boolean | 是 | - | 设置是否允许通过网页中的JavaScript脚本访问[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)的内容。 | + +### imageAccess + +imageAccess(imageAccess: boolean) + +设置是否允许自动加载图片资源,默认允许。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | imageAccess | boolean | 是 | - | 设置是否允许自动加载图片资源。 | + +### javaScriptProxy + +javaScriptProxy(javaScriptProxy: { object: object, name: string, methodList: Array\, + controller: WebController }) + +注入JavaScript对象到window对象中,并在window对象中调用该对象的方法。所有参数不支持更新。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | object | object | 是 | - | 参与注册的对象。只能声明方法,不能声明属性。 | + | name | string | 是 | - | 注册对象的名称,与window中调用的对象名一致。 | + | methodList | Array\ | 是 | - | 参与注册的应用侧JavaScript对象的方法。| + +### javaScriptAccess + +javaScriptAccess(javaScriptAccess: boolean) + +设置是否允许执行JavaScript脚本,默认允许执行。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | javaScriptAccess | boolean | 是 | - | 是否允许执行JavaScript脚本。 | + +### mixedMode + +mixedMode(mixedMode: MixedMode) + +设置是否允许加载超文本传输协议(HTTP)和超文本传输安全协议(HTTPS)混合内容,默认不允许加载HTTP和HTTPS混合内容。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | mixedMode | [MixedMode](#mixedmode枚举说明) | 是 | - | 要设置的混合内容。 | + +### onlineImageAccess + +onlineImageAccess(onlineImageAccess: boolean) + +设置是否允许从网络加载图片资源(通过HTTP和HTTPS访问的资源),默认允许访问。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | onlineImageAccess | boolean | 是 | - | 设置是否允许从网络加载图片资源。 | + +### zoomAccess + +zoomAccess(zoomAccess: boolean) + +设置是否支持手势进行缩放,默认允许执行缩放。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | zoomAccess | boolean | 是 | - | 设置是否支持手势进行缩放。 | + +### overviewModeAccess + +overviewModeAccess(overviewModeAccess: boolean) + +设置是否使用概览模式加载网页,默认使用该方式。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | overviewModeAccess | boolean | 是 | - | 设置是否使用概览模式加载网页。 | + +### databaseAccess + +databaseAccess(databaseAccess: boolean) + +设置是否开启数据库存储API权限,默认不开启。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | databaseAccess | boolean | 是 | - | 设置是否开启数据库存储API权限。 | + +### cacheMode + +cacheMode(cacheMode: CacheMode) + +设置缓存模式。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | cacheMode | [CacheMode](#cachemode枚举说明) | 是 | - | 要设置的缓存模式。 | + +### textZoomAtio + +textZoomAtio(textZoomAtio: number) + +设置页面的文本缩放百分比,默认为100%。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | textZoomAtio | number | 是 | - | 要设置的页面的文本缩放百分比。 | + +### userAgent + +userAgent(userAgent: string) + +设置用户代理。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | userAgent | string | 是 | - | 要设置的用户代理。 | > **说明:** > @@ -75,53 +276,167 @@ | onInterceptRequest9+(callback: (event?: { request: [WebResourceRequest](#webresourcerequest对象说明)}) => [WebResourceResponse](#webresourceresponse对象说明)) |

当Web组件加载url之前触发该回调,用于拦截url并返回响应数据。callback返回响应数据为空表示按原来方式加载,否则加载响应数据。
- request:url请求的相关信息。

| | onHttpAuthRequest9+(callback: (event?: { handler: [HttpAuthHandler](#httpauthhandlersup9sup), host: string, realm: string}) => boolean) |

通知收到http auth认证请求。callback返回false表示此次认证失败,否则成功。
- handler:通知Web组件用户操作行为。
- host:HTTP身份验证凭据应用的主机。
- realm:HTTP身份验证凭据应用的域。

| -## ConsoleMessage对象说明 +## ConsoleMessage -| 接口名称 | 功能描述 | -| -------------------------------------------------------- | ------------------------------ | -| getLineNumber(): number | 获取ConsoleMessage的行数。 | -| getMessage(): string | 获取ConsoleMessage的日志信息。 | -| getMessageLevel(): [MessageLevel](#messagelevel枚举说明) | 获取ConsoleMessage的信息级别。 | -| getSourceId(): string | 获取网页源文件路径和名字。 | +Web组件获取控制台信息对象。 -## MessageLevel枚举说明 +### getLineNumber -| 名称 | 描述 | -| ----- | :--------- | -| Debug | 调试级别。 | -| Error | 错误级别。 | -| Info | 消息级别。 | -| Log | 日志级别。 | -| Warn | 警告级别。 | +getLineNumber(): number + +获取ConsoleMessage的行数。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | number | 返回ConsoleMessage的行数。 | + +### getMessage + +getMessage(): string + +获取ConsoleMessage的日志信息。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | string | 返回ConsoleMessage的日志信息。 | + +### getMessageLevel + +getMessageLevel(): MessageLevel -## JsResult对象说明 +获取ConsoleMessage的信息级别。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | [MessageLevel](#messagelevel枚举说明) | 返回ConsoleMessage的信息级别。 | + +### getSourceId + +getSourceId(): string + +获取网页源文件路径和名字。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | string | 返回网页源文件路径和名字。 | + +## JsResult Web组件返回的弹窗确认或弹窗取消功能对象。 -| 接口名称 | 功能描述 | -| ------------------------------------------------------ | ------------------------------------------------ | -| handleCancel(): void |

通知Web组件用户取消弹窗操作。

| -| handleConfirm(): void |

通知Web组件用户确认弹窗操作。

| -| handlePromptConfirm9+(result: string): void |

通知Web组件用户确认弹窗操作及对话框内容。

| +### handleCancel + +handleCancel(): void -## WebResourceError对象说明 +通知Web组件用户取消弹窗操作。 -| 接口名称 | 功能描述 | -| ---------------------- | ------------------------ | -| getErrorCode(): number | 获取加载资源的错误码。 | -| getErrorInfo(): string | 获取加载资源的错误信息。 | +### handleConfirm -## WebResourceRequest对象说明 +handleConfirm(): void -| 接口名称 | 功能描述 | -| ------------------------------------------------------ | ---------------------------------------- | -| getRequestHeader(): Array\<[Header](#header对象说明)\> | 获取资源请求头信息。 | -| getRequestUrl(): string | 获取资源请求的URL信息。 | -| isMainFrame(): boolean | 判断资源请求是否为主frame。 | -| isRedirect(): boolean | 判断资源请求是否被服务端重定向。 | -| isRequestGesture(): boolean | 获取资源请求是否与手势(如点击)相关联。 | +通知Web组件用户确认弹窗操作。 -## Header对象说明 +### handlePromptConfirm9+ + +handlePromptConfirm(result: string): void + +通知Web组件用户确认弹窗操作及对话框内容。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | result | string | 是 | - | 用户输入的对话框内容。 | + +## WebResourceError + +web组件资源管理错误信息对象。 + +### getErrorCode + +getErrorCode(): number + +获取加载资源的错误码。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | number | 返回加载资源的错误码。 | + +### getErrorInfo + +getErrorInfo(): string + +获取加载资源的错误信息。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | string | 返回加载资源的错误信息。 | + +## WebResourceRequest + +web组件获取资源请求对象。 + +### getRequestHeader + +getResponseHeader() : Array\ + +获取资源请求头信息。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | Array\<[Header](#header)\> | 返回资源请求头信息。 | + +### getRequestUrl + +getRequestUrl(): string + +获取资源请求的URL信息。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | string | 返回资源请求的URL信息。 | + +### isMainFrame + +isMainFrame(): boolean + +判断资源请求是否为主frame。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | boolean | 返回资源请求是否为主frame。 | + +### isRedirect + +isRedirect(): boolean + +判断资源请求是否被服务端重定向。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | boolean | 返回资源请求是否被服务端重定向。 | + +### isRequestGesture + +isRequestGesture(): boolean + +获取资源请求是否与手势(如点击)相关联。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | boolean | 返回资源请求是否与手势(如点击)相关联。 | + +## Header Web组件返回的请求/响应头对象。 @@ -131,85 +446,204 @@ Web组件返回的请求/响应头对象。 | headerValue | string | 请求/响应头的value。 | -## WebResourceResponse对象说明 +## WebResourceResponse -| 接口名称 | 功能描述 | -| ------------------------------------------------------- | -------------------------------- | -| getReasonMessage(): string | 获取资源响应的状态码描述。 | -| getResponseCode(): number | 获取资源响应的状态码。 | -| getResponseData(): string | 获取资源响应数据。 | -| getResponseEncoding(): string | 获取资源响应的编码。 | -| getResponseHeader(): Array\<[Header](#header对象说明)\> | 获取资源响应头。 | -| getResponseMimeType(): string | 获取资源响应的媒体(MIME)类型。 | -| setResponseData9+(data: string) | 设置资源响应数据。 | -| setResponseEncoding9+(encoding: string) | 设置资源响应的编码。 | -| setResponseMimeType9+(mimeType: string) | 设置资源响应的媒体(MIME)类型。 | -| setReasonMessage9+(reason: string) | 设置资源响应的状态码描述。 | -| setResponseHeader9+(header: Array\<[Header](#header对象说明)\>) | 设置资源响应头。 | -| setResponseCode9+(code: number) | 设置资源响应的状态码。 | +web组件资源响应对象。 -## RenderExitReason枚举说明 +### getReasonMessage -onRenderExited接口返回的渲染进程退出的具体原因。 +getReasonMessage(): string -| 名称 | 描述 | -| -------------------------- | ---------------------------- | -| ProcessAbnormalTermination | 渲染进程异常退出。 | -| ProcessWasKilled | 收到SIGKILL,或被手动终止。 | -| ProcessCrashed | 渲染进程崩溃退出,如段错误。 | -| ProcessOom | 程序内存不足。 | -| ProcessExitUnknown | 其他原因。 | +获取资源响应的状态码描述。 -## MixedMode枚举说明 +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | string | 返回资源响应的状态码描述。 | -| 名称 | 描述 | -| ---------- | ----------------------------------------------------------- | -| All | 允许加载HTTP和HTTPS混合内容。所有不安全的内容都可以被加载。 | -| Compatible | 混合内容兼容性模式,部分不安全的内容可能被加载。 | -| None | 不允许加载HTTP和HTTPS混合内容。 | +### getResponseCode -## CacheMode枚举说明 -| 名称 | 描述 | -| ------- | ------------------------------------------------------------ | -| Default | 使用未过期的cache加载资源,如果cache中无该资源则从网络中获取。 | -| None | 加载资源使用cache,如果cache中无该资源则从网络中获取。 | -| Online | 加载资源不使用cache,全部从网络中获取。 | -| Only | 只从cache中加载资源。 | +getResponseCode(): number + +获取资源响应的状态码。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | number | 返回资源响应的状态码。 | + +### getResponseData + +getResponseData(): string + +获取资源响应数据。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | string | 返回资源响应数据。 | + +### getResponseEncoding + +getResponseEncoding(): string + +获取资源响应的编码。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | string | 返回资源响应的编码。 | + +### getResponseHeader + +getResponseHeader() : Array\ + +获取资源响应头。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | Array\<[Header](#header)\> | 返回资源响应头。 | + +### getResponseMimeType + +getResponseMimeType(): string + +获取资源响应的媒体(MIME)类型。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | string | 返回资源响应的媒体(MIME)类型。 | + +### setResponseData9+ + +setResponseData(data: string) + +设置资源响应数据。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | data | string | 是 | - | 要设置的资源响应数据。 | + +### setResponseEncoding9+ + +setResponseEncoding(encoding: string) + +设置资源响应的编码。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | encoding | string | 是 | - | 要设置的资源响应的编码。 | + +### setResponseMimeType9+ + +setResponseMimeType(mimeType: string) + +设置资源响应的媒体(MIME)类型。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | mimeType | string | 是 | - | 要设置的资源响应的媒体(MIME)类型。 | + +### setReasonMessage9+ + +setReasonMessage(reason: string) + +设置资源响应的状态码描述。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | reason | string | 是 | - | 要设置的资源响应的状态码描述。 | + +### setResponseHeader9+ + +setResponseHeader(header: Array\) + +设置资源响应头。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | header | Array\<[Header](#header)\> | 是 | - | 要设置的资源响应头。 | + +### setResponseCode9+ + +setResponseCode(code: number) + +设置资源响应的状态码。 + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | code | number | 是 | - | 要设置的资源响应的状态码。 | + +## FileSelectorResult9+ -## FileSelectorResult对象说明 通知Web组件的文件选择结果。 -| 接口名称 | 功能描述 | -| ---------------------------------------------- | ------------------------------------------------------------ | -| handleFileList(fileList: Array\): void | 通知Web组件进行文件选择操作。fileList: 需要进行操作的文件列表。 | +### handleFileList9+ -## FileSelectorParam对象说明 -| 接口名称 | 功能描述 | -| -------------------------------- | ------------------------ | -| getTitle(): string | 获取文件选择器标题。 | -| getMode(): FileSelectorMode | 获取文件选择器的模式。 | -| getAcceptType(): Array\ | 获取文件过滤类型。 | -| isCapture(): boolean | 获取是否调用多媒体能力。 | +handleFileList(fileList: Array\): void -## FileSelectorMode枚举说明 -| 名称 | 描述 | -| -------------------- | -------------------- | -| FileOpenMode | 打开上传单个文件。 | -| FileOpenMultipleMode | 打开上传多个文件。 | -| FileOpenFolderMode | 打开上传文件夹模式。 | -| FileSaveMode | 文件保存模式。 | +通知Web组件进行文件选择操作。 - ## HitTestType枚举说明 +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------- | + | fileList | Array\ | 是 | - | 需要进行操作的文件列表。 | - | 名称 | 描述 | - | ------------- | ----------------------------------------- | - | EditText | 可编辑的区域。 | - | Email | 电子邮件地址。 | - | HttpAnchor | 超链接,其src为http。 | - | HttpAnchorImg | 带有超链接的图片,其中超链接的src为http。 | - | Img | HTML::img标签。 | - | Map | 地理地址。 | - | Unknown | 未知内容。 | +## FileSelectorParam9+ + +web组件获取文件对象 + +### getTitle9+ + +getTitle(): string + +获取文件选择器标题。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | string | 返回文件选择器标题。 | + +### getMode9+ + +getMode(): FileSelectorMode + +获取文件选择器的模式。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | [FileSelectorMode](#FileSelectorMode枚举说明) | 返回文件选择器的模式。 | + +### getAcceptType9+ + +getAcceptType(): Array\ + +获取文件过滤类型。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | Array\ | 返回文件过滤类型。 | + +### isCapture9+ + +isCapture(): boolean + +获取是否调用多媒体能力。 + +- 返回值 + | 参数类型 | 说明 | + | -------- | -------------------- | + | boolean | 返回是否调用多媒体能力。 | ## HttpAuthHandler9+ @@ -294,13 +728,13 @@ accessStep(step: number): boolean ### backward -backward(): void +backward() 按照历史栈,后退一个页面。一般结合accessBackward一起使用。 ### deleteJavaScriptRegister -deleteJavaScriptRegister(name: string): void +deleteJavaScriptRegister(name: string) 删除通过registerJavaScriptProxy注册到window上的指定name的应用侧JavaScript对象。 @@ -312,7 +746,7 @@ deleteJavaScriptRegister(name: string): void ### forward -forward(): void +forward() 按照历史栈,前进一个页面。一般结合accessForward一起使用。 @@ -389,7 +823,7 @@ getDefaultUserAgent(): string ### loadData -loadData(options: { data: string, mimeType: string, encoding: string, baseUrl?: string, historyUrl?: string }): void +loadData(options: { data: string, mimeType: string, encoding: string, baseUrl?: string, historyUrl?: string }) baseUrl为空时,通过”data“协议加载指定的一段字符串。 @@ -409,7 +843,7 @@ baseUrl为空时,通过”data“协议加载指定的一段字符串。 ### loadUrl -loadUrl(options:{ url: string, headers?: Array\ }): void +loadUrl(options: { url: string | Resource, headers?: Array\ }) 使用指定的http头加载指定的URL。 @@ -465,13 +899,13 @@ zoomOut(): boolean ### refresh -refresh(): void +refresh() 调用此接口通知Web组件刷新网页。 ### registerJavaScriptProxy -registerJavaScriptProxy(options: { object: object, name: string, methodList: Array\ }): void +registerJavaScriptProxy(options: { object: object, name: string, methodList: Array\ }) 注入JavaScript对象到window对象中,并在window对象中调用该对象的方法。注册后,须调用refresh接口生效。 @@ -485,7 +919,7 @@ registerJavaScriptProxy(options: { object: object, name: string, methodList: Arr ### runJavaScript -runJavaScript(options: { script: string, callback?: (result: string) => void }): void +runJavaScript(options: { script: string, callback?: (result: string) => void }) 异步执行JavaScript脚本,并通过回调方式返回脚本执行的结果。runJavaScript需要在loadUrl完成后,比如onPageEnd中调用。 @@ -498,7 +932,7 @@ runJavaScript(options: { script: string, callback?: (result: string) => void }): ### stop -stop(): void +stop() 停止页面加载。 @@ -508,7 +942,7 @@ clearHistory(): void 删除所有前进后退记录。 -### getCookieManager +### getCookieManager9+ getCookieManager(): WebCookie @@ -540,8 +974,10 @@ getExtra(): string | string | 点击区域的附加参数信息。 | ## WebCookie + 通过WebCookie可以控制Web组件中的cookie的各种行为,其中每个应用中的所有web组件共享一个WebCookie。通过controller方法中的getCookieManager方法可以获取WebCookie对象,进行后续的cookie管理操作。 -### setCookie + +### setCookie9+ setCookie(url: string, value: string): boolean 设置cookie,该方法为同步方法。设置成功返回true,否则返回false。 @@ -557,7 +993,7 @@ setCookie(url: string, value: string): boolean | -------- | -------------------- | | boolean | 设置cookie是否成功。 | -### saveCookieSync +### saveCookieSync9+ saveCookieSync(): boolean 将当前存在内存中的cookie同步到磁盘中,该方法为同步方法。 -- GitLab From cd5afafa627507f010762117f2174b77dfcd8e83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Thu, 21 Jul 2022 13:05:16 +0000 Subject: [PATCH 174/868] =?UTF-8?q?update=20zh-cn/application-dev/referenc?= =?UTF-8?q?e/apis/js-apis-effectKit.md=EF=BC=9A=E7=A4=BA=E4=BE=8B=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9=EF=BC=8C=E9=9C=80?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E7=BF=BB=E8=AF=91=20Signed-off-by:=20@ge-yaf?= =?UTF-8?q?ang=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/apis/js-apis-effectKit.md | 51 +++++++++---------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-effectKit.md b/zh-cn/application-dev/reference/apis/js-apis-effectKit.md index b9524a5c74..cfa707255e 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-effectKit.md +++ b/zh-cn/application-dev/reference/apis/js-apis-effectKit.md @@ -42,10 +42,10 @@ createEffect(source: image.PixelMap): Filter ```js import image from "@ohos.multimedia.image" const color = new ArrayBuffer(96); -let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } +let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }; image.createPixelMap(color, opts) - .then((pixelmap) => { - let headFilter = effectKit.createEffect(pixelmap) + .then((pixelMap) => { + let headFilter = effectKit.createEffect(pixelMap) }) ``` @@ -74,13 +74,12 @@ createColorPicker(source: image.PixelMap): Promise\ ```js import image from "@ohos.multimedia.image" const color = new ArrayBuffer(96); -let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } -image.createPixelMap(color, opts, (pixelmap) => { +let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }; +image.createPixelMap(color, opts, (pixelMap) => { effectKit.createColorPicker(pixelMap).then(colorPicker => { console.info("color picker=" + colorPicker); - }) - .catch(ex => console.error(".error=" + ex.toString())) }) + .catch(ex => console.error(".error=" + ex.toString())) }) ``` @@ -104,15 +103,15 @@ createColorPicker(source: image.PixelMap, callback: AsyncCallback\) ```js import image from "@ohos.multimedia.image" const color = new ArrayBuffer(96); -let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } -image.createPixelMap(color, opts, (pixelmap) => { - effectKit.createColorPicker(pixelMap, (error, colorPicker) ) { +let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }; +image.createPixelMap(color, opts, (pixelMap) => { + effectKit.createColorPicker(pixelMap, (error, colorPicker) => { if(error) { console.log('Failed to create color picker.'); } else { console.log('Succeeded in creating color picker.'); } - }) + }) }) ``` @@ -152,7 +151,7 @@ getMainColor(): Promise\ ```js colorPicker.getMainColor().then(color => { console.log('Succeeded in getting main color.') - console.info("color[ARGB]=" + color.alpha "," + color.red + "," + color.green + "," + color.blue); + console.info("color[ARGB]=" + color.alpha + "," + color.red + "," + color.green + "," + color.blue); }).catch(error => { console.log('Failed to get main color.'); }) @@ -175,8 +174,8 @@ getMainColorSync(): Color **示例:** ```js -let color = colorPicker.getMainColorSync() -console.log('get main color =' + color) +let color = colorPicker.getMainColorSync(); +console.log('get main color =' + color); ``` ## Filter @@ -208,11 +207,11 @@ blur(radius: number): Filter ```js import image from "@ohos.multimedia.image" const color = new ArrayBuffer(96); -let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } +let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }; image.createPixelMap(color, opts) - .then((pixelmap) => { + .then((pixelMap) => { let radius = 5; - let headFilter = effectKit.createEffect(pixelmap) + let headFilter = effectKit.createEffect(pixelMap) if (headFilter != null) { headFilter.blur(radius) } @@ -244,11 +243,11 @@ brightness(bright: number): Filter ```js import image from "@ohos.multimedia.image" const color = new ArrayBuffer(96); -let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } +let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }; image.createPixelMap(color, opts) - .then((pixelmap) => { + .then((pixelMap) => { let bright = 0.5; - let headFilter = effectKit.createEffect(pixelmap) + let headFilter = effectKit.createEffect(pixelMap) if (headFilter != null) { headFilter.brightness(bright) } @@ -274,10 +273,10 @@ grayscale(): Filter ```js import image from "@ohos.multimedia.image" const color = new ArrayBuffer(96); -let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } +let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }; image.createPixelMap(color, opts) - .then((pixelmap) => { - let headFilter = effectKit.createEffect(pixelmap) + .then((pixelMap) => { + let headFilter = effectKit.createEffect(pixelMap) if (headFilter != null) { headFilter.grayscale() } @@ -303,9 +302,9 @@ getPixelMap(): image.PixelMap ```js import image from "@ohos.multimedia.image" const color = new ArrayBuffer(96); -let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } +let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }; image.createPixelMap(color, opts) - .then((pixelmap) => { - let pixel = effectKit.createEffect(pixelmap).grayscale().getPixelMap() + .then((pixelMap) => { + let pixel = effectKit.createEffect(pixelMap).grayscale().getPixelMap() }) ``` -- GitLab From c36d6163308d8005fdc6ce3a445e4ecd30d9d917 Mon Sep 17 00:00:00 2001 From: laosan_ted Date: Thu, 21 Jul 2022 23:00:26 +0800 Subject: [PATCH 175/868] update Signed-off-by: laosan_ted --- .../arkui-ts/ts-basic-components-web.md | 1672 ++++++++++++++++- 1 file changed, 1585 insertions(+), 87 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md index f090a3bfa9..7f42fd0ce0 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md @@ -72,7 +72,7 @@ onRenderExited接口返回的渲染进程退出的具体原因。 ## 接口 -- Web\(options: { src: string, controller?: WebController }\) +- Web(options: { src: string, controller?: WebController }) 表1 options参数说明 @@ -81,12 +81,24 @@ onRenderExited接口返回的渲染进程退出的具体原因。 | src | string | 是 | - | 网页资源地址。 | | controller | [WebController](#webcontroller) | 否 | - | 控制器。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + } + } + } + ``` > **说明:** > > - 不支持转场动画; -## WebAttribute +## 属性 web组件的网络属性。 @@ -101,6 +113,20 @@ domStorageAccess(domStorageAccess: boolean) | ------ | -------- | ---- | ------ | ------------------------- | | domStorageAccess | boolean | 是 | - | 设置是否开启文档对象模型存储接口(DOM Storage API)权限。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .domStorageAccess(true) + } + } + } + ``` + ### fileAccess fileAccess(fileAccess: boolean) @@ -112,6 +138,20 @@ fileAccess(fileAccess: boolean) | ------ | -------- | ---- | ------ | ------------------------- | | fileAccess | boolean | 是 | - | 设置是否开启通过[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)访问应用中rawfile路径的文件。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .fileAccess(true) + } + } + } + ``` + ### fileFromUrlAccess9+ fileFromUrlAccess(fileFromUrlAccess: boolean) @@ -123,6 +163,20 @@ fileFromUrlAccess(fileFromUrlAccess: boolean) | ------ | -------- | ---- | ------ | ------------------------- | | fileFromUrlAccess | boolean | 是 | - | 设置是否允许通过网页中的JavaScript脚本访问[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)的内容。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .fileFromUrlAccess(true) + } + } + } + ``` + ### imageAccess imageAccess(imageAccess: boolean) @@ -134,6 +188,20 @@ imageAccess(imageAccess: boolean) | ------ | -------- | ---- | ------ | ------------------------- | | imageAccess | boolean | 是 | - | 设置是否允许自动加载图片资源。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .imageAccess(true) + } + } + } + ``` + ### javaScriptProxy javaScriptProxy(javaScriptProxy: { object: object, name: string, methodList: Array\, @@ -148,6 +216,36 @@ javaScriptProxy(javaScriptProxy: { object: object, name: string, methodList: Arr | name | string | 是 | - | 注册对象的名称,与window中调用的对象名一致。 | | methodList | Array\ | 是 | - | 参与注册的应用侧JavaScript对象的方法。| +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + testObj = { + test: (data1, data2, data3) => { + console.log("data1:" + data1); + console.log("data2:" + data2); + console.log("data3:" + data3); + return "AceString"; + }, + toString: () => { + console.log('LY111111 ets toString' + "interface instead."); + } + } + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .javaScriptProxy({ + obj: this.testObj, + name: "objName", + methodList: ["test", "toString"], + controller: this.controller, + }) + } + } + } + ``` + ### javaScriptAccess javaScriptAccess(javaScriptAccess: boolean) @@ -159,6 +257,20 @@ javaScriptAccess(javaScriptAccess: boolean) | ------ | -------- | ---- | ------ | ------------------------- | | javaScriptAccess | boolean | 是 | - | 是否允许执行JavaScript脚本。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .javaScriptAccess(true) + } + } + } + ``` + ### mixedMode mixedMode(mixedMode: MixedMode) @@ -170,6 +282,21 @@ mixedMode(mixedMode: MixedMode) | ------ | -------- | ---- | ------ | ------------------------- | | mixedMode | [MixedMode](#mixedmode枚举说明) | 是 | - | 要设置的混合内容。 | +- 示例代码 + ```js + @Component + @State mode:MixedMode = MixedMode.All; + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .mixedMode(mode) + } + } + } + ``` + ### onlineImageAccess onlineImageAccess(onlineImageAccess: boolean) @@ -181,6 +308,21 @@ onlineImageAccess(onlineImageAccess: boolean) | ------ | -------- | ---- | ------ | ------------------------- | | onlineImageAccess | boolean | 是 | - | 设置是否允许从网络加载图片资源。 | +## onlineImageAccess +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onlineImageAccess(true) + } + } + } + ``` + ### zoomAccess zoomAccess(zoomAccess: boolean) @@ -192,6 +334,20 @@ zoomAccess(zoomAccess: boolean) | ------ | -------- | ---- | ------ | ------------------------- | | zoomAccess | boolean | 是 | - | 设置是否支持手势进行缩放。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .zoomAccess(true) + } + } + } + ``` + ### overviewModeAccess overviewModeAccess(overviewModeAccess: boolean) @@ -203,6 +359,20 @@ overviewModeAccess(overviewModeAccess: boolean) | ------ | -------- | ---- | ------ | ------------------------- | | overviewModeAccess | boolean | 是 | - | 设置是否使用概览模式加载网页。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .overviewModeAccess(true) + } + } + } + ``` + ### databaseAccess databaseAccess(databaseAccess: boolean) @@ -214,6 +384,19 @@ databaseAccess(databaseAccess: boolean) | ------ | -------- | ---- | ------ | ------------------------- | | databaseAccess | boolean | 是 | - | 设置是否开启数据库存储API权限。 | + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .databaseAccess(true) + } + } + } + ``` + ### cacheMode cacheMode(cacheMode: CacheMode) @@ -225,6 +408,21 @@ cacheMode(cacheMode: CacheMode) | ------ | -------- | ---- | ------ | ------------------------- | | cacheMode | [CacheMode](#cachemode枚举说明) | 是 | - | 要设置的缓存模式。 | +- 示例代码 + ```js + @Component + @State mode:CacheMode = CacheMode.None; + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .cacheMode(mode) + } + } + } + ``` + ### textZoomAtio textZoomAtio(textZoomAtio: number) @@ -236,6 +434,21 @@ textZoomAtio(textZoomAtio: number) | ------ | -------- | ---- | ------ | ------------------------- | | textZoomAtio | number | 是 | - | 要设置的页面的文本缩放百分比。 | +- 示例代码 + ```js + @Component + @State atio:Number = 100; + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .textZoomAtio(atio) + } + } + } + ``` + ### userAgent userAgent(userAgent: string) @@ -247,6 +460,21 @@ userAgent(userAgent: string) | ------ | -------- | ---- | ------ | ------------------------- | | userAgent | string | 是 | - | 要设置的用户代理。 | +- 示例代码 + ```js + @Component + @State userAgent:String = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'; + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .userAgent(userAgent) + } + } + } + ``` + > **说明:** > > 通用属性仅支持[width](ts-universal-attributes-size.md#属性)、[height](ts-universal-attributes-size.md#属性)、[padding](ts-universal-attributes-size.md#属性)、[margin](ts-universal-attributes-size.md#属性)、[border](ts-universal-attributes-border.md#属性)。 @@ -255,30 +483,664 @@ userAgent(userAgent: string) 不支持通用事件。 -| 名称 | 功能描述 | -| ------------------------------------------------------------ | ------------------------------------------------------------ | -| onAlert(callback: (event?: { url: string; message: string; result: [JsResult](#jsresult对象说明) }) => boolean) |

网页触发alert()告警弹窗时触发回调。
当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(只有确认场景),并且根据用户的确认操作调用JsResult通知Web组件。
- url:当前显示弹窗所在网页的URL。
- message:弹窗中显示的信息。
- result:通知Web组件用户操作行为。

| -| onBeforeUnload(callback: (event?: { url: string; message: string; result: [JsResult](#jsresult对象说明) }) => boolean) |

刷新或关闭场景下,在即将离开当前页面时触发此回调。
当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。
- url:当前显示弹窗所在网页的URL。
- message:弹窗中显示的信息。
- result:通知Web组件用户操作行为。

| -| onConfirm(callback: (event?: { url: string; message: string; result: [JsResult](#jsresult对象说明) }) => boolean) |

网页调用confirm()告警时触发此回调。
当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。
- url:当前显示弹窗所在网页的URL。
- message:弹窗中显示的信息。
- result:通知Web组件用户操作行为。

| -| onPrompt9+(callback: (event?: { url: string; message: string; value: string; result: [JsResult](#jsresult对象说明) }) => boolean) |

网页调用prompt()告警时触发此回调。
当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。
- url:当前显示弹窗所在网页的URL。
- message:弹窗中显示的信息。
- value:对话框中的默认值。
- result:通知Web组件用户操作行为,及对话框内容。

| -| onConsole(callback: (event?: { message: [ConsoleMessage](#consolemessage对象说明) }) => boolean) |

通知宿主应用JavaScript console消息。
- message:触发的控制台信息。

| -| onDownloadStart(callback: (event?: { url: string, userAgent: string, contentDisposition: string, mimetype: string, contentLength: number }) => void) |

网页的下载任务开始时触发该回调。
- url:文件下载的URL。
- userAgent:下载的用户代理(UA)名称。
- contentDisposition:服务器返回的 Content-Disposition响应头,可能为空。
- mimetype:服务器返回内容媒体类型(MIME)信息。
- contentLength:服务器返回文件的长度。

| -| onErrorReceive(callback: (event?: { request: [WebResourceRequest](#webresourceerror对象说明), error: [WebResourceError](#webresourceerror对象说明) }) => void) |

网页加载遇到错误时触发该回调。
出于性能考虑,建议此回调中尽量执行简单逻辑。
- request:网页请求的封装信息。
- error:网页加载资源错误的封装信息 。

| -| onHttpErrorReceive(callback: (event?: { request: [WebResourceRequest](#webresourceerror对象说明), response: [WebResourceResponse](#webresourceresponse对象说明) }) => void) |

网页加载资源遇到的HTTP错误(响应码>=400)时触发该回调。
- request:网页请求的封装信息。
- response:网页响应的封装信息

| -| onPageBegin(callback: (event?: { url: string }) => void) |

网页开始加载时触发该回调,且只在主frame触发,iframe或者frameset的内容加载时不会触发此回调。
- url:页面的URL地址。

| -| onPageEnd(callback: (event?: { url: string }) => void) |

网页加载完成时触发该回调,且只在主frame触发。
- url:页面的URL地址。

| -| onProgressChange(callback: (event?: { newProgress: number }) => void) |

网页加载进度变化时触发该回调。
- newProgress:新的加载进度,取值范围为0到100的整数。

| -| onTitleReceive(callback: (event?: { title: string }) => void) |

网页document标题更改时触发该回调。
- title:document标题内容。

| -| onRefreshAccessedHistory(callback: (event?: { url: string, isRefreshed: boolean }) => void) |

加载网页页面完成时触发该回调,用于应用更新其访问的历史链接。
- url:访问的url。
- isRefreshed:true表示该页面是被重新加载的,false表示该页面是新加载的。

| -| onRenderExited(callback: (event?: { renderExitReason: [RenderExitReason](#renderexitreason枚举说明) }) => void) |

应用渲染进程异常退出时触发该回调。
- renderExitReason:渲染进程进程异常退出的具体原因。

| -| onShowFileSelector(callback: (event?: { result: [FileSelectorResult](#fileselectorresult对象说明), fileSelector: [FileSelectorParam](#fileselectorparam对象说明) }) => void) |

调用此函数以处理具有“文件”输入类型的HTML表单,以响应用户按下的“选择文件”按钮
- result:用于通知Web组件文件选择的结果。
- fileSelector:文件选择器的相关信息。

| -| onUrlLoadIntercept(callback: (event?: { data:string \| [WebResourceRequest](#webresourcerequest对象说明) }) => boolean) |

当Web组件加载url之前触发该回调,用于是否阻止此次访问。callback返回true表示阻止此次加载,否则允许此次加载。
- data:url的相关信息。

| -| onInterceptRequest9+(callback: (event?: { request: [WebResourceRequest](#webresourcerequest对象说明)}) => [WebResourceResponse](#webresourceresponse对象说明)) |

当Web组件加载url之前触发该回调,用于拦截url并返回响应数据。callback返回响应数据为空表示按原来方式加载,否则加载响应数据。
- request:url请求的相关信息。

| -| onHttpAuthRequest9+(callback: (event?: { handler: [HttpAuthHandler](#httpauthhandlersup9sup), host: string, realm: string}) => boolean) |

通知收到http auth认证请求。callback返回false表示此次认证失败,否则成功。
- handler:通知Web组件用户操作行为。
- host:HTTP身份验证凭据应用的主机。
- realm:HTTP身份验证凭据应用的域。

| +### onAlert + +onAlert(callback: (event?: { url: string; message: string; result: JsResult }) => boolean) + +网页触发alert()告警弹窗时触发回调。 + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | url | string | 当前显示弹窗所在网页的URL。| + | message | string | 弹窗中显示的信息。 | + | result | [JsResult](#jsresult) | 通知Web组件用户操作行为。| + +- 事件返回值 + | 参数类型 | 说明 | + |----------|------| + | boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。 | + +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onAlert((event) => { + AlertDialog.show({ + title: 'title', + message: 'text', + confirm: { + value: 'onAlert', + action: () => { + result.handleConfirm() + } + }, + cancel: () => { + result.handleCancel() + } + }) + return true; + }) + } + } + } + ``` + +### onBeforeUnload + +onBeforeUnload(callback: (event?: { url: string; message: string; result: JsResult }) => boolean) + +刷新或关闭场景下,在即将离开当前页面时触发此回调。 + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | url | string | 当前显示弹窗所在网页的URL。| + | message | string | 弹窗中显示的信息。 | + | result | [JsResult](#jsresult) | 通知Web组件用户操作行为。| + +- 事件返回值 + | 参数类型 | 说明 | + |----------|------| + | boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。 | + +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onBeforeUnload((event) => { + console.log("event.url:" +url); + console.log("event.message:" +message); + console.log("event.result:" +result); + return false; + }) + } + } + ``` + +### onConfirm + +onConfirm(callback: (event?: { url: string; message: string; result: JsResult }) => boolean) + +网页调用confirm()告警时触发此回调。 + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | url | string | 当前显示弹窗所在网页的URL。| + | message | string | 弹窗中显示的信息。 | + | result | [JsResult](#jsresult) | 通知Web组件用户操作行为。| + +- 事件返回值 + | 参数类型 | 说明 | + |----------|------| + | boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。 | + +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onConfirm((event) => { + console.log("event.url:" +url); + console.log("event.message:" +message); + console.log("event.result:" +result); + AlertDialog.show({ + title: 'title', + message: 'text', + confirm: { + value: 'onConfirm', + action: () => { + result.handleConfirm() + } + }, + cancel: () => { + result.handleCancel() + } + }) + return true; + }) + } + } + ``` + +### onPrompt9+ + +onPrompt(callback: (event?: { url: string; message: string; value: string; result: JsResult }) => boolean) + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | url | string | 当前显示弹窗所在网页的URL。| + | message | string | 弹窗中显示的信息。 | + | result | [JsResult](#jsresult) | 通知Web组件用户操作行为。| + +- 事件返回值 + | 参数类型 | 说明 | + |----------|------| + | boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。 | + +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onPrompt((event) => { + console.log("url:" + event.url); + console.log("message:" + event.message); + console.log("value:" + event.value); + console.log("result:" + event.result); + return true; + }) + } + } + ``` + +### onConsole + +onConsole(callback: (event?: { message: ConsoleMessage }) => boolean) + +通知宿主应用JavaScript console消息。 + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | message | [ConsoleMessage](#consolemessage) | 触发的控制台信息。 | + +- 事件返回值 + | 参数类型 | 说明 | + |----------|------| + | boolean | 当返回true时,该条消息将不会再打印至控制台,反之仍会打印至控制台。 | + +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onConsole((event) => { + console.log('getMessage:' +message.getMessage()); + console.log('getSourceId:' +message.getSourceId()); + console.log('getLineNumber:' +message.getLineNumber()); + console.log('getMessageLevel:' +message.getMessageLevel()); + return false; + }) + } + } + ``` + +### onDownloadStart + +onDownloadStart(callback: (event?: { url: string, userAgent: string, contentDisposition: string, mimetype: string, contentLength: number }) => void) + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | url | string | 文件下载的URL。 | + | contentDisposition | string | 服务器返回的 Content-Disposition响应头,可能为空。 | + | mimetype | string | 服务器返回内容媒体类型(MIME)信息。 | + | contentLength | contentLength | 服务器返回文件的长度。 | + +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onDownloadStart((event)=>{ + console.log('url:' +url); + console.log('userAgent:' +userAgent); + console.log('contentDisposition:' +contentDisposition); + console.log('contentLength:' +contentLength); + console.log('mimetype:' +mimetype); + }) + } + } + ``` + +### onErrorReceive + +onErrorReceive(callback: (event?: { request: WebResourceRequest, error: WebResourceError }) => void) + +网页加载遇到错误时触发该回调。出于性能考虑,建议此回调中尽量执行简单逻辑。 + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | request | [WebResourceRequest](#webresourcerequest) | 网页请求的封装信息。 | + | error | [WebResourceError](#webresourceerror) | 网页加载资源错误的封装信息 。 | + +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onErrorReceive((event)=>{ + console.log('getErrorInfo:' +error.getErrorInfo()); + console.log('getErrorCode:' +error.getErrorCode()); + console.log('url:' +request.getRequestUrl()); + console.log('isMainFrame:' +request.isMainFrame()); + console.log('isRedirect:' +request.isRedirect()); + console.log('isRequestGesture:' +request.isRequestGesture()); + console.log('getRequestHeader_headerKey:' +request.getRequestHeader().toString()); + let result =request.getRequestHeader(); + console.log('The request header result size is '+ result.length); + for ( let i of result) { + console.log('The request header key is : '+i.headerKey+', value is : '+i.headerValue); + } + }) + } + } + ``` + +### onHttpErrorReceive + +onHttpErrorReceive(callback: (event?: { request: WebResourceRequest, response: WebResourceResponse }) => void) + +网页加载资源遇到的HTTP错误(响应码>=400)时触发该回调。 + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | request | [WebResourceRequest](#webresourcerequest) | 网页请求的封装信息。 | + | error | [WebResourceError](#webresourceerror) | 网页加载资源错误的封装信息 。 | + +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onHttpErrorReceive((event)=>{ + console.log('url:' +request.getRequestUrl()); + console.log('isMainFrame:' +request.isMainFrame()); + console.log('isRedirect:' +request.isRedirect()); + console.log('isRequestGesture:' +request.isRequestGesture()); + console.log('getResponseData:' +response.getResponseData()); + console.log('getResponseEncoding:' +response.getResponseEncoding()); + console.log('getResponseMimeType:' +response.getResponseMimeType()); + console.log('getResponseCode:' +response.getResponseCode()); + console.log('getReasonMessage:' +response.getReasonMessage()); + let result =request.getRequestHeader(); + console.log('The request header result size is '+ result.length); + for ( let i of result) { + console.log('The request header key is : '+i.headerKey+' , value is : '+i.headerValue); + } + let resph =response.getResponseHeader(); + console.log('The response header result size is '+ resph.length); + for ( let i of resph) { + console.log('The response header key is : '+i.headerKey+' , value is : '+i.headerValue); + } + }) + } + } + ``` + +### onPageBegin + +onPageBegin(callback: (event?: { url: string }) => void) + + +网页开始加载时触发该回调,且只在主frame触发,iframe或者frameset的内容加载时不会触发此回调。 + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | url | string | 页面的URL地址。 | + +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onPageBegin((event) => { + console.log('url:' +url); + }) + } + } + ``` + +### onPageEnd + +onPageEnd(callback: (event?: { url: string }) => void) + + +网页加载完成时触发该回调,且只在主frame触发。 + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | url | string | 页面的URL地址。 | + +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onPageEnd((event) => { + console.log('url:' +url); + }) + } + } + ``` + +### onProgressChange + +onProgressChange(callback: (event?: { newProgress: number }) => void) + +网页加载进度变化时触发该回调。 + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | newProgress | number | 新的加载进度,取值范围为0到100的整数。 | + + - 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onProgressChange((event) => { + console.log('newProgress:' +newProgress) + }) + } + } + ``` + +### onTitleReceive + +onTitleReceive(callback: (event?: { title: string }) => void) + +网页document标题更改时触发该回调。 + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | title | string | document标题内容。 | + + - 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onTitleReceive((event) => { + console.log('title:' +title) + }) + } + } + ``` + +### onRefreshAccessedHistory + +onRefreshAccessedHistory(callback: (event?: { url: string, isRefreshed: boolean }) => void) + +加载网页页面完成时触发该回调,用于应用更新其访问的历史链接。 + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | url | string | 访问的url。 | + | isRefreshed | boolean | true表示该页面是被重新加载的,false表示该页面是新加载的。 | + + - 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onRefreshAccessedHistory((event) => { + console.log('url:' +url + ' isReload:' +isRefreshed); + }) + } + } + ``` + +### onRenderExited + +onRenderExited(callback: (event?: { renderExitReason: RenderExitReason }) => void) + +应用渲染进程异常退出时触发该回调。 + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | renderExitReason | [RenderExitReason](#renderexitreason枚举说明) | 渲染进程进程异常退出的具体原因。 | + + - 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'chrome://crash/', controller:this.controller}) + .onRenderExited((event) => { + console.log('reason:' +renderExitReason); + }) + } + } + ``` + +### onShowFileSelector9+ + +onShowFileSelector(callback: (event?: { result: FileSelectorResult, fileSelector: FileSelectorParam }) => void) + +调用此函数以处理具有“文件”输入类型的HTML表单,以响应用户按下的“选择文件”按钮. + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | result | [FileSelectorResult](#fileselectorresultsup9sup) | 用于通知Web组件文件选择的结果。 | + | fileSelector | [FileSelectorParam](#fileselectorparamsup9sup) | 文件选择器的相关信息。 | + + - 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onShowFileSelector((event) => { + AlertDialog.show({ + title:fileSelector.getTitle(), + message: 'isCapture:' +fileSelector.isCapture() + " mode:" +fileSelector.getMode() + 'acceptType:' +fileSelector.getAcceptType(), + confirm: { + value: 'upload', + action: () => { + let fileList: Array = [ + '/data/storage/el2/base/test', + ] + result.handleFileList(fileList) + } + }, + cancel: () => { + let fileList: Array = [] + result.handleFileList(fileList) + } + }) + return true; + }) + } + } + ``` + +### onUrlLoadIntercept + +onUrlLoadIntercept(callback: (event?: { data:string | WebResourceRequest }) => boolean) + +当Web组件加载url之前触发该回调,用于是否阻止此次访问。 + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | data | string / [WebResourceRequest](#webresourcerequest) | url的相关信息。 | + +- 事件返回值 + | 参数类型 | 说明 | + |----------|------| + | boolean | 返回true表示阻止此次加载,否则允许此次加载。 | + + - 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onUrlLoadIntercept((event) => { + console.log('onUrlLoadIntercept ' +data.toString()) + return true; + }) + } + } + ``` + +### onInterceptRequest9+ + +onInterceptRequest9+(callback: (event?: { request: WebResourceRequest}) => WebResourceResponse) + +当Web组件加载url之前触发该回调,用于拦截url并返回响应数据。 + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | request | [WebResourceRequest](#webresourcerequest) | url请求的相关信息。 | + +- 事件返回值 + | 参数类型 | 说明 | + |----------|------| + | [WebResourceResponse](#webresourceresponse) | 返回响应数据为空表示按原来方式加载,否则加载响应数据。 | + + - 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onInterceptRequest((e) => { + console.log('url:' + e.request.getRequestUrl()); + var head1:Header = { + headerKey:"Connection", + headerValue:"keep-alive" + } + var head2:Header = { + headerKey:"Cache-Control", + headerValue:"no-cache" + } + var length = this.heads.push(head1); + length = this.heads.push(head2); + this.responseweb.setResponseHeader(this.heads); + this.responseweb.setResponseData(this.webdata); + this.responseweb.setResponseEncoding('utf-8'); + this.responseweb.setResponseMimeType('text/html'); + this.responseweb.setResponseCode(200); + this.responseweb.setReasonMessage('OK'); + return this.responseweb; + }) + } + } + } + ``` + +### onHttpAuthRequest9+ + +onHttpAuthRequest(callback: (event?: { handler: HttpAuthHandler, host: string, realm: string}) => boolean) + +通知收到http auth认证请求。 + +- event参数 + | 参数名 | 参数类型 | 参数描述 | + | ------ | -------- | ------------------------- | + | handler | [HttpAuthHandler](#httpauthhandlersup9sup) | 通知Web组件用户操作行为。 | + | host | string | HTTP身份验证凭据应用的主机。 | + | realm | string | HTTP身份验证凭据应用的域。 | + +- 事件返回值 + | 参数类型 | 说明 | + |----------|------| + | boolean | 返回false表示此次认证失败,否则成功。 | + + - 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Web({src:'www.baidu.com', controller:this.controller}) + .onHttpAuthRequest((event) => { + AlertDialog.show({ + title: 'title', + message: 'text', + confirm: { + value: 'onConfirm', + action: () => { + this.httpAuth =handler.isHttpAuthInfoSaved(); + if (this.httpAuth == false) { + web.WebDataBase.saveHttpAuthCredentials( + host, + realm, + "2222", + "2222" + ) + handler.confirm("111", "2222"); + } + } + }, + cancel: () => { + handler.cancel(); + } + }) + return true; + }) + } + } + ``` ## ConsoleMessage -Web组件获取控制台信息对象。 +Web组件获取控制台信息对象。示例代码参考[onConsole事件](#onconsole)。 ### getLineNumber @@ -326,7 +1188,7 @@ getSourceId(): string ## JsResult -Web组件返回的弹窗确认或弹窗取消功能对象。 +Web组件返回的弹窗确认或弹窗取消功能对象。示例代码参考[onAlert事件](#onalert)。 ### handleCancel @@ -353,7 +1215,7 @@ handlePromptConfirm(result: string): void ## WebResourceError -web组件资源管理错误信息对象。 +web组件资源管理错误信息对象。示例代码参考[onErrorReceive事件](#onerrorreceive)。 ### getErrorCode @@ -379,7 +1241,7 @@ getErrorInfo(): string ## WebResourceRequest -web组件获取资源请求对象。 +web组件获取资源请求对象。示例代码参考[onErrorReceive事件](#onerrorreceive)。 ### getRequestHeader @@ -448,7 +1310,7 @@ Web组件返回的请求/响应头对象。 ## WebResourceResponse -web组件资源响应对象。 +web组件资源响应对象。示例代码参考[onHttpErrorReceive事件](#onhttpauthrequest)。 ### getReasonMessage @@ -584,7 +1446,7 @@ setResponseCode(code: number) ## FileSelectorResult9+ -通知Web组件的文件选择结果。 +通知Web组件的文件选择结果。示例代码参考[onShowFileSelector事件](#onshowfileselector)。 ### handleFileList9+ @@ -599,7 +1461,7 @@ handleFileList(fileList: Array\): void ## FileSelectorParam9+ -web组件获取文件对象 +web组件获取文件对象。示例代码参考[onShowFileSelector事件](#onshowfileselector)。 ### getTitle9+ @@ -647,7 +1509,7 @@ isCapture(): boolean ## HttpAuthHandler9+ -Web组件返回的http auth认证请求确认或取消和使用缓存密码认证功能对象。 +Web组件返回的http auth认证请求确认或取消和使用缓存密码认证功能对象。示例代码参考[onHttpAuthRequest事件](#onhttpauthrequest)。 ### cancel9+ @@ -702,12 +1564,58 @@ accessBackward(): boolean 当前页面是否可后退,即当前页面是否有返回历史记录。 +- 返回值 + + | 参数类型 | 说明 | + | -------- | ------------------------------------- | + | boolean | 可以后退返回true,否则返回false。 | + +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('accessBackward') + .onClick(() => { + let result = this.controller.accessBackward(); + console.log('result:' + result); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### accessForward accessForward(): boolean 当前页面是否可前进,即当前页面是否有前进历史记录。 +- 返回值 + + | 参数类型 | 说明 | + | -------- | ------------------------------------- | + | boolean | 可以前进返回true,否则返回false。 | + +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('accessForward') + .onClick(() => { + let result = this.controller.accessForward(); + console.log('result:' + result); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### accessStep accessStep(step: number): boolean @@ -726,30 +1634,68 @@ accessStep(step: number): boolean | -------- | ------------------ | | boolean | 页面是否前进或后退 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + @State steps: number = 2; + build() { + Column() { + Button('accessStep') + .onClick(() => { + let result = this.controller.accessStep(this.steps); + console.log('result:' + result); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### backward -backward() +backward(): void 按照历史栈,后退一个页面。一般结合accessBackward一起使用。 -### deleteJavaScriptRegister - -deleteJavaScriptRegister(name: string) - -删除通过registerJavaScriptProxy注册到window上的指定name的应用侧JavaScript对象。 - -- 参数 - - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------------------------------------------ | - | name | string | 是 | - | 注册对象的名称,可在网页侧JavaScript中通过此名称调用应用侧JavaScript对象。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('backward') + .onClick(() => { + this.controller.backward(); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` ### forward -forward() +forward(): void 按照历史栈,前进一个页面。一般结合accessForward一起使用。 +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('forward') + .onClick(() => { + this.controller.forward(); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### backOrForward9+ backOrForward(step: number): void @@ -761,6 +1707,51 @@ backOrForward(step: number): void | ---- | ------ | ---- | ---- | ---------------------------------------- | | step | number | 是 |- |需要前进或后退的步长。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('backOrForward') + .onClick(() => { + this.controller.backOrForward(); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + +### deleteJavaScriptRegister + +deleteJavaScriptRegister(name: string) + +删除通过registerJavaScriptProxy注册到window上的指定name的应用侧JavaScript对象。 + +- 参数 + + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------ | -------- | ---- | ------ | ------------------------------------------------------------ | + | name | string | 是 | - | 注册对象的名称,可在网页侧JavaScript中通过此名称调用应用侧JavaScript对象。 | + +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + @State name: string = 'Object'; + build() { + Column() { + Button('deleteJavaScriptRegister') + .onClick(() => { + this.controller.deleteJavaScriptRegister(this.name); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### getHitTest getHitTest(): HitTestType @@ -772,6 +1763,23 @@ getHitTest(): HitTestType | -------- | ------------------ | | [HitTestType](#hittesttype枚举说明) | 被点击区域的元素类型。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('getHitTest') + .onClick(() => { + let hitType = this.controller.getHitTest(); + console.log("hitType: " + hitType); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### getHitTestValue9+ getHitTestValue(): HitTestValue @@ -782,6 +1790,24 @@ getHitTestValue(): HitTestValue |----------|------| | [HitTestValue](#hittestvaluesup9sup) | 点击区域的元素信息。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('getHitTestValue') + .onClick(() => { + let hitValue = this.controller.getHitTestValue(); + console.log("hitType: " + hitValue.getType()); + console.log("extra: " + hitValue.getExtra()); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### getWebId9+ getWebId(): number @@ -792,6 +1818,23 @@ getWebId(): number |----------|------| | number | 当前Web组件的索引值。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('getWebId') + .onClick(() => { + let id = this.controller.getWebId(); + console.log("id: " + id); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### getTitle9+ getTitle(): string @@ -801,6 +1844,23 @@ getTitle(): string |----------|------| | string | 当前网页的标题。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('getTitle') + .onClick(() => { + let title = this.controller.getTitle(); + console.log("title: " + title); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### getPageHeight9+ getPageHeight(): number @@ -810,17 +1870,50 @@ getPageHeight(): number |----------|------| | number | 当前网页的页面高度。 | - +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('getPageHeight') + .onClick(() => { + let pageHeight = this.controller.getPageHeight(); + console.log("pageHeight: " + pageHeight); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` ### getDefaultUserAgent9+ getDefaultUserAgent(): string 获取当前默认用户代理。 + - 返回值 | 参数类型 | 说明 | |----------|------| | string | 默认用户代理。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('getDefaultUserAgent') + .onClick(() => { + let userAgent = this.controller.getDefaultUserAgent(); + console.log("userAgent: " + userAgent); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### loadData loadData(options: { data: string, mimeType: string, encoding: string, baseUrl?: string, historyUrl?: string }) @@ -841,6 +1934,26 @@ baseUrl为空时,通过”data“协议加载指定的一段字符串。 | baseUrl | string | 否 | - | 指定的一个URL路径(“http”/“https”/"data"协议),并由Web组件赋值给window.origin。 | | historyUrl | string | 否 | - | 历史记录URL。非空时,可被历史记录管理,实现前后后退功能。当baseUrl为空时,此属性无效。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('loadData') + .onClick(() => { + this.controller.loadData({ + data: "Source:
source
", + mimeType: "text/html", + encoding: "UTF-8" + }); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### loadUrl loadUrl(options: { url: string | Resource, headers?: Array\ }) @@ -858,27 +1971,93 @@ loadUrl(options: { url: string | Resource, headers?: Array\ }) | url | string | 是 | - | 需要加载的 URL。 | | headers | Array\<[Header](#header对象说明)\> | 否 | [] | URL的附加HTTP请求头。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('loadUrl') + .onClick(() => { + this.controller.loadUrl('https://gitee.com/'); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### onActive onActive(): void 调用此接口通知Web组件进入前台激活状态。 +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('onActive') + .onClick(() => { + this.controller.onActive(); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### onInactive onInactive(): void 调用此接口通知Web组件进入未激活状态。 +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('onInactive') + .onClick(() => { + this.controller.onInactive(); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### zoom zoom(factor: number): void 调整当前网页的缩放比例。 + - 参数 | 参数名 | 参数类型 | 必填 | 参数描述 | |--------|----------|------|---------| | factor | number | 是 | 基于当前网页所需调整的相对缩放比例,正值为放大,负值为缩小。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + @State factor: number = 1; + build() { + Column() { + Button('zoom') + .onClick(() => { + this.controller.zoom(this.factor); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### zoomIn9+ zoomIn(): boolean @@ -888,6 +2067,23 @@ zoomIn(): boolean |----------|------| | boolean | 放大操作是否成功执行。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('zoomIn') + .onClick(() => { + let result = this.controller.zoomIn(); + console.log("result: " + result); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### zoomOut9+ zoomOut(): boolean @@ -897,12 +2093,45 @@ zoomOut(): boolean |----------|------| | boolean | 缩小操作是否成功执行。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('zoomOut') + .onClick(() => { + let result = this.controller.zoomOut(); + console.log("result: " + result); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### refresh refresh() 调用此接口通知Web组件刷新网页。 +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('refresh') + .onClick(() => { + this.controller.refresh(); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### registerJavaScriptProxy registerJavaScriptProxy(options: { object: object, name: string, methodList: Array\ }) @@ -917,6 +2146,64 @@ registerJavaScriptProxy(options: { object: object, name: string, methodList: Arr | name | string | 是 | - | 注册对象的名称,与window中调用的对象名一致。注册后window对象可以通过此名字访问应用侧JavaScript对象。 | | methodList | Array\ | 是 | - | 参与注册的应用侧JavaScript对象的方法。 | +- 示例代码 + ```js + @Component + struct Index { + controller: WebController = new WebController() + testObj = { + test: (data) => { + prompt.showToast({ message: "test: " + data, duration: 2000 }) + return "ArkUI Web Component"; + }, + toString: () => { + console.log('Web Component toString'); + } + } + build() { + Column() { + Row() { + Button('htmlTest').onClick(() => { + this.controller.runJavaScript({ script: "htmlTest()"}) + }) + + Button('refresh').onClick(() => { + this.controller.refresh() + }) + + Button('Register JavaScript To Window').onClick(() => { + this.controller.registerJavaScriptProxy({ + object: this.testObj, + name: "objName", + methodList: ["test", "toString"], + }); + }) + } + Web({ src: $rawfile('index.html'), controller: this.controller }) + .javaScriptAccess(true) + } + } + } + ``` + + ```html + + + + + Hello world! + + + + + ``` + ### runJavaScript runJavaScript(options: { script: string, callback?: (result: string) => void }) @@ -930,18 +2217,92 @@ runJavaScript(options: { script: string, callback?: (result: string) => void }) | script | string | 是 | - | JavaScript脚本。 | | callback | (result: string) => void | 否 | - | 回调执行JavaScript脚本结果。JavaScript脚本若执行失败或无返回值时,返回null。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller: WebController = new WebController(); + @State webResult: string = '' + build() { + Column() { + Text(this.webResult).fontSize(20) + Web({ src: $rawfile('index.html'), controller: this.controller }) + .javaScriptAccess(true) + .onPageEnd(e => { + this.controller.runJavaScript({ + script: 'test()', + callback: (result: string)=> { + this.webResult = result + console.info(`The test() return value is: ${result}`) + }}); + console.info('url: ', e.url); + }) + } + } + } + ``` + + ```html + + + + + Hello world! + + + + + ``` + ### stop stop() 停止页面加载。 +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('stop') + .onClick(() => { + this.controller.stop(); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### clearHistory clearHistory(): void 删除所有前进后退记录。 +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('clearHistory') + .onClick(() => { + this.controller.clearHistory(); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### getCookieManager9+ getCookieManager(): WebCookie @@ -952,8 +2313,24 @@ getCookieManager(): WebCookie | --------- | -------------------------------------------------------- | | WebCookie | web组件cookie管理对象,参考[WebCookie](#webcookie)定义。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('getCookieManager') + .onClick(() => { + let cookieManager = this.controller.getCookieManager(); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ## HitTestValue9+ -提供点击区域的元素信息。 +提供点击区域的元素信息。示例代码参考[getHitTestValue](#gethittestvaluesup9sup)。 ### getType9+ getType(): HitTestType @@ -993,6 +2370,23 @@ setCookie(url: string, value: string): boolean | -------- | -------------------- | | boolean | 设置cookie是否成功。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('setCookie') + .onClick(() => { + let result = this.controller.getCookieManager().setCookie("http://www.baidu.com", "a=b"); + console.log("result: " + result); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ### saveCookieSync9+ saveCookieSync(): boolean @@ -1002,6 +2396,23 @@ saveCookieSync(): boolean | -------- | ---------------------------------- | | boolean | 同步内存cookie到磁盘操作是否成功。 | +- 示例代码 + ```js + @Component + struct WebComponent { + controller:WebController = new WebController(); + build() { + Column() { + Button('saveCookieSync') + .onClick(() => { + let result = this.controller.getCookieManager().saveCookieSync(); + console.log("result: " + result); + }) + Web({src:'www.baidu.com', controller:this.controller}) + } + } + ``` + ## WebDataBase9+ web组件数据库管理对象。 @@ -1016,12 +2427,25 @@ static existHttpAuthCredentials(): boolean | -------- | ----------------------------------- | | boolean | 是否存在任何已保存的HTTP身份验证凭据。存在返回true,不存在返回false | +- 示例代码 + ```js + import web from '@ohos.web'; + let result = web.WebDataBase.existHttpAuthCredentials(); + console.log('result: ' + result); + ``` + ### deleteHttpAuthCredentials9+ static deleteHttpAuthCredentials(): void 清除所有已保存的HTTP身份验证凭据,该方法为同步方法。 +- 示例代码 + ```js + import web from '@ohos.web'; + web.WebDataBase.deleteHttpAuthCredentials(); + ``` + ### getHttpAuthCredentials9+ static getHttpAuthCredentials(host: string, realm: string): Array\ @@ -1039,6 +2463,19 @@ static getHttpAuthCredentials(host: string, realm: string): Array\ | ---------------- | --------------------------------------------- | | Array\ | 包含用户名和密码的组数,检索失败返回空数组。 | +- 示例代码 + ```js + import web from '@ohos.web'; + host: string = "www.spincast.org"; + realm: string = "protected example"; + username_password: string[]; + this.username_password = web.WebDataBase.getHttpAuthCredentials(this.host, this.realm); + console.log('num: ' + this.username_password.length); + ForEach(this.username_password, (item) => { + console.log('username_password: ' + item); + }, item => item) + ``` + ### saveHttpAuthCredentials9+ static saveHttpAuthCredentials(host: string, realm: string, username: string, password: string): void @@ -1054,12 +2491,27 @@ static saveHttpAuthCredentials(host: string, realm: string, username: string, pa | username | string | 是 | - | 用户名。 | | password | string | 是 | - | 密码。 | +- 示例代码 + ```js + import web from '@ohos.web'; + host: string = "www.spincast.org"; + realm: string = "protected example"; + web.WebDataBase.saveHttpAuthCredentials(this.host, this.realm, "Stromgol", "Laroche"); + ``` + ## WebStorage9+ 通过WebStorage可管理Web SQL数据库接口和HTML5 Web存储接口,每个应用中的所有Web组件共享一个WebStorage。 ### deleteAllData9+ static deleteAllData(): void 清除Web SQL数据库当前使用的所有存储。 + +- 示例代码 + ```js + import web from '@ohos.web'; + web.WebStorage.deleteAllData(); + ``` + ### deleteOrigin9+ static deleteOrigin(origin : string): void @@ -1069,6 +2521,13 @@ static deleteOrigin(origin : string): void |---------|---------|-----|-----| | origin | string | 是 | 指定源的字符串索引。 | +- 示例代码 + ```js + import web from '@ohos.web'; + origin: string = "origin"; + web.WebStorage.deleteOrigin(origin); + ``` + ### getOrigins9+ static getOrigins(callback: AsyncCallback>) : void @@ -1078,6 +2537,21 @@ static getOrigins(callback: AsyncCallback> | 是 | 以数组方式返回源的信息,信息内容参考WebStorageOrigin。| +- 示例代码 + ```js + import web from '@ohos.web'; + web.WebStorage.getOrigins((error, origins) => { + if (error) { + console.log('error: ' + error); + return; + } + for (let i = 0; i < origins.length; i++) { + consloe.log('origin: ' + origins[i].origin); + console.log('usage: ' + origins[i].usage); + console.log('quota: ' + origins[i].quota); + } + }) + ### getOrigins9+ static getOrigins() : Promise> @@ -1087,6 +2561,22 @@ static getOrigins() : Promise> | Promise实例,用于获取当前所有源的信息,信息内容参考WebStorageOrigin。 | +- 示例代码 + ```js + import web from '@ohos.web'; + web.WebStorage.getOrigins() + .then(origins => { + for (let i = 0; i < origins.length; i++) { + consloe.log('origin: ' + origins[i].origin); + console.log('usage: ' + origins[i].usage); + console.log('quota: ' + origins[i].quota); + } + }) + .catch(error => { + console.log('error: ' + error); + }) + ``` + ### getOriginQuota9+ static getOriginQuota(origin : string, callback : AsyncCallback) : void @@ -1097,6 +2587,19 @@ static getOriginQuota(origin : string, callback : AsyncCallback) : void | origin | string | 是 | 指定源的字符串索引 | | callback | AsyncCallback | 是 | 指定源的存储配额。 | +- 示例代码 + ```js + import web from '@ohos.web'; + origin: string = "origin"; + web.WebStorage.getOriginQuota(origin, (error, quota) => { + if (error) { + console.log('error: ' + error); + return; + } + consloe.log('quota: ' + quota); + }) + ``` + ### getOriginQuota9+ static getOriginQuota(origin : string) : Promise @@ -1111,6 +2614,18 @@ static getOriginQuota(origin : string) : Promise |------|------| | Promise | Promise实例,用于获取指定源的存储配额。 | +- 示例代码 + ```js + import web from '@ohos.web'; + web.WebStorage.getOriginQuota() + .then(quota => { + consloe.log('quota: ' + quota); + }) + .catch(error => { + console.log('error: ' + error); + }) + ``` + ### getOriginUsage9+ static getOriginUsage(origin : string, callback : AsyncCallback) : void @@ -1121,6 +2636,19 @@ static getOriginUsage(origin : string, callback : AsyncCallback) : void | origin | string | 是 | 指定源的字符串索引。 | | callback | AsyncCallback | 是 | 指定源的存储量。 | +- 示例代码 + ```js + import web from '@ohos.web'; + origin: string = "origin"; + web.WebStorage.getOriginUsage(origin, (error, usage) => { + if (error) { + console.log('error: ' + error); + return; + } + consloe.log('usage: ' + usage); + }) + ``` + ### getOriginUsage9+ static getOriginUsage(origin : string) : Promise @@ -1135,6 +2663,18 @@ static getOriginUsage(origin : string) : Promise |------|------| | Promise | Promise实例,用于获取指定源的存储量。 | +- 示例代码 + ```js + import web from '@ohos.web'; + web.WebStorage.getOriginUsage() + .then(usage => { + consloe.log('usage: ' + usage); + }) + .catch(error => { + console.log('error: ' + error); + }) + ``` + ## WebStorageOrigin9+ 提供Web SQL数据库的使用信息。 - 参数 @@ -1143,45 +2683,3 @@ static getOriginUsage(origin : string) : Promise | origin | string | 是 | 指定源的字符串索引。 | | usage | number | 是 | 指定源的存储量。 | | quota | number | 是 | 指定源的存储配额。 | - -## 示例 - -```ts -// webComponent.ets -@Entry -@Component -struct WebComponent { - @State javaScriptAccess: boolean = true; - @State fileAccess: boolean = true; - controller: WebController = new WebController(); - build() { - Column() { - Web({ src: $rawfile('index.html'), controller: this.controller }) - .javaScriptAccess(this.javaScriptAccess) - .fileAccess(this.fileAccess) - .onPageEnd(e => { - // test() 在 index.html 中已定义 - this.controller.runJavaScript({ script: 'test()' }); - console.log("url: ", e.url); - }) - } - } -} -``` -```html - - - - - - Hello world! - - - -``` - -![](figures/Web.png) \ No newline at end of file -- GitLab From e7685ad3fa0831267c356c2e055fe4bdce063b73 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Thu, 21 Jul 2022 20:34:16 +0800 Subject: [PATCH 176/868] update docs Signed-off-by: Annie_wang --- .../User-IAM-subsystem-architecture.png | Bin 49465 -> 28013 bytes en/readme/user-iam.md | 12 +++++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/en/readme/figures/User-IAM-subsystem-architecture.png b/en/readme/figures/User-IAM-subsystem-architecture.png index 13a861f97107524e38ed06f1e3d153cdc7d55fe2..64eaba85160ef22e68b0ebb53ab7e7862d881cec 100644 GIT binary patch literal 28013 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

7S+>{!wnlAyRzjNgmy9wQmR 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 JDo>lkHoqh~%t*NJkV2s*!IkB0$8 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 diff --git a/en/readme/user-iam.md b/en/readme/user-iam.md index 52aba67d90..0bd5165ee6 100644 --- a/en/readme/user-iam.md +++ b/en/readme/user-iam.md @@ -16,14 +16,16 @@ The user IAM subsystem consists of the unified user authentication framework and Based on the unified user authentication framework, the system can be extended to support multiple authentication capabilities. Currently, the authentication executors supported by OpenHarmony are password and facial authentication. To implement a new authentication executor, you only need to implement authentication capabilities in a new part and connect the new part to the unified user authentication framework based on the interfaces defined by the authentication executor management part. -*Note: In the user IAM subsystem, an authentication executor is the minimum execution unit of a user identity authentication operation. For example, a password authentication module is responsible for password collection, password processing and comparison, and secure storage, and therefore it can be abstracted as a password authentication executor.* +> **NOTE** +> +>In the user IAM subsystem, an authentication executor is the minimum execution unit of a user identity authentication operation. For example, a password authentication module is responsible for password collection, password processing and comparison, and secure storage, and therefore it can be abstracted as a password authentication executor. ## Directory Structure ```undefined //base/user_iam -├── user_auth_framework # User authentication framework, including user authentication, credential management and executor management +├── user_auth_framework # User authentication framework, including user authentication, credential management, and executor management ├── face_auth # Facial authentication module, which connects to the authentication executor management part and supports facial information recording, deletion, and verification ├── pin_auth # Password authentication module, which connects to the authentication executor management part and supports password recording, deletion, and verification @@ -31,15 +33,15 @@ Based on the unified user authentication framework, the system can be extended t ## Constraints -1. User credential management is a key operation in the system, and interfaces used for user credential management can be invoked only by basic system applications. -2. The authentication executors process user authentication credentials and their capabilities can only be implemented by system services for interconnection with the authentication executor management part. +- User credential management is a key operation in the system, and the interfaces used for user credential management can be invoked only by basic system applications. +- The authentication executors process user authentication credentials, and their capabilities can only be implemented by system services for interconnection with the authentication executor management part. ## Usage ### How to Use 1. The unified user authentication framework must work with an authentication executor. -2. The first default authentication executor in the system must be password authentication. +2. The first default authentication executor in the system must be a password authentication executor. ## Repositories Involved -- GitLab From d9b996c5defc804194a4bae4ba3921fb47f067cd Mon Sep 17 00:00:00 2001 From: Austin Date: Fri, 22 Jul 2022 01:47:09 +0000 Subject: [PATCH 177/868] update zh-cn/device-dev/subsystems/subsys-boot.md. Signed-off-by: Austin23 --- zh-cn/device-dev/subsystems/subsys-boot.md | 1 - 1 file changed, 1 deletion(-) diff --git a/zh-cn/device-dev/subsystems/subsys-boot.md b/zh-cn/device-dev/subsystems/subsys-boot.md index 42e3f43579..41b3d9795d 100644 --- a/zh-cn/device-dev/subsystems/subsys-boot.md +++ b/zh-cn/device-dev/subsystems/subsys-boot.md @@ -5,7 +5,6 @@ - **[启动恢复子系统概述](subsys-boot-overview.md)** - **[init启动引导组件](subsys-boot-init.md)** - **[appspawn应用孵化组件](subsys-boot-appspawn.md)** -- **[appspawn标准系统应用孵化组件](subsys-boot-appspawn-standard.md)** - **[bootstrap服务启动组件](subsys-boot-bootstrap.md)** - **[syspara系统属性组件](subsys-boot-syspara.md)** - **[常见问题](subsys-boot-faqs.md)** -- GitLab From 43313ad16a47a354170a265b04ecb63995f2ce92 Mon Sep 17 00:00:00 2001 From: Austin Date: Fri, 22 Jul 2022 01:54:22 +0000 Subject: [PATCH 178/868] update zh-cn/device-dev/device-dev-guide.md. Signed-off-by: Austin23 --- zh-cn/device-dev/device-dev-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/device-dev-guide.md b/zh-cn/device-dev/device-dev-guide.md index 4e2cf46d41..3203ed3ce6 100644 --- a/zh-cn/device-dev/device-dev-guide.md +++ b/zh-cn/device-dev/device-dev-guide.md @@ -39,7 +39,7 @@ OpenHarmony也提供了一系列可选的系统组件,方便设备开发者按 | 快速入门 | 快速熟悉OpenHarmony环境搭建、编译、烧录、调测、运行 | - [轻量和小型系统快速入门](quick-start/quickstart-ide-lite-overview.md) | | 基础能力使用 | 使用OpenHarmony提供的基础能力 | - [轻量系统内核开发指南](kernel/kernel-mini-overview.md)
- [小型系统内核开发指南](kernel/kernel-small-overview.md)
- [驱动开发指南](driver/driver-hdf-overview.md)
- [子系统开发指南](subsystems/subsys-build-mini-lite.md)
- [安全指南](security/security-guidelines-overall.md)
- [隐私保护](security/security-privacy-protection.md) | | 进阶开发 | 结合系统能力开发智能设备 | - [WLAN连接类产品](guide/device-wlan-led-control.md)
- [无屏摄像头类产品](guide/device-iotcamera-control-overview.md)
- [带屏摄像头类产品](guide/device-camera-control-overview.md) | -| 移植适配 | - 针对特定芯片做移植适配
- 对三方库进行移植适配
- 三方厂商移植案例
| - [轻量系统芯片移植指导](porting/porting-minichip.md)
- [小型系统芯片移植指导](porting/porting-smallchip-prepare-needs.md)
- [轻量和小型系统三方库移植指导](porting/porting-thirdparty-overview.md)
- [带屏解决方案之恒玄芯片移植案例](porting-bes2600w-on-minisystem-display-demo.md)
- [Combo解决方案之ASR芯片移植案例](porting-asr582x-combo-demo.md)
- [物联网解决方案之芯海cst85芯片移植案例](porting-cst85f01-combo-demo.md)
- [轻量系统STM32F407芯片移植案例](porting-stm32f407-on-minisystem-eth.md)
- [Combo解决方案之W800芯片移植案例](porting-w800-combo-demo.md)
- [小型设备STM32MP1芯片移植案例](porting-stm32mp15xx-on-smallsystem.md)| +| 移植适配 | - 针对特定芯片做移植适配
- 对三方库进行移植适配
- 三方厂商移植案例
| - [轻量系统芯片移植指导](porting/porting-minichip.md)
- [小型系统芯片移植指导](porting/porting-smallchip-prepare-needs.md)
- [轻量和小型系统三方库移植指导](porting/porting-thirdparty-overview.md)
- [带屏解决方案之恒玄芯片移植案例](porting/porting-bes2600w-on-minisystem-display-demo.md)
- [Combo解决方案之ASR芯片移植案例](porting/porting-asr582x-combo-demo.md)
- [物联网解决方案之芯海cst85芯片移植案例](porting/porting-cst85f01-combo-demo.md)
- [轻量系统STM32F407芯片移植案例](porting/porting-stm32f407-on-minisystem-eth.md)
- [Combo解决方案之W800芯片移植案例](porting/porting-w800-combo-demo.md)
- [小型设备STM32MP1芯片移植案例](porting/porting-stm32mp15xx-on-smallsystem.md)| | 贡献组件 | 为OpenHarmony贡献功能组件 | - [HPM Part 介绍](hpm-part/hpm-part-about.md)
- [HPM Part 开发指导](hpm-part/hpm-part-development.md)
- [HPM Part 参考](hpm-part/hpm-part-reference.md) | | 参考 | 开发参考 | [常见问题](faqs/faqs-overview.md) -- GitLab From 2589cc7f24dbfdd683921c47711ed9da8dd70d84 Mon Sep 17 00:00:00 2001 From: Austin Date: Fri, 22 Jul 2022 02:01:55 +0000 Subject: [PATCH 179/868] update zh-cn/device-dev/website.md. Signed-off-by: Austin23 --- zh-cn/device-dev/website.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zh-cn/device-dev/website.md b/zh-cn/device-dev/website.md index fbc186aa13..4f6ba74d9b 100644 --- a/zh-cn/device-dev/website.md +++ b/zh-cn/device-dev/website.md @@ -94,8 +94,9 @@ - 开发板介绍 - [Hi3516开发板介绍](quick-start/quickstart-standard-board-introduction-hi3516.md) - [RK3568开发板介绍](quick-start/quickstart-standard-board-introduction-rk3568.md) - - [参考信息](quickstart-standard-reference.md) + - [参考信息](quick-start/quickstart-standard-reference.md) - [使用HiTool烧录代码](quick-start/quickstart-standard-hitool.md) + - [编译形态整体说明](quick-start/quickstart-build.md) - [获取源码](get-code/sourcecode-acquire.md) -- GitLab From 387beeae6fbde81189ee6ec68eb0e670d440b449 Mon Sep 17 00:00:00 2001 From: Austin Date: Fri, 22 Jul 2022 02:05:02 +0000 Subject: [PATCH 180/868] update zh-cn/device-dev/website.md. Signed-off-by: Austin23 --- zh-cn/device-dev/website.md | 1 - 1 file changed, 1 deletion(-) diff --git a/zh-cn/device-dev/website.md b/zh-cn/device-dev/website.md index 4f6ba74d9b..e39707abac 100644 --- a/zh-cn/device-dev/website.md +++ b/zh-cn/device-dev/website.md @@ -468,7 +468,6 @@ - [启动恢复子系统概述](subsystems/subsys-boot-overview.md) - [init启动引导组件](subsystems/subsys-boot-init.md) - [appspawn应用孵化组件](subsystems/subsys-boot-appspawn.md) - - [appspawn标准系统应用孵化组件](subsystems/subsys-boot-appspawn-standard.md) - [bootstrap服务启动组件](subsystems/subsys-boot-bootstrap.md) - [syspara系统属性组件](subsystems/subsys-boot-syspara.md) - [常见问题](subsystems/subsys-boot-faqs.md) -- GitLab From 3dd30876af209f390d6e1a94415b57775657c45c Mon Sep 17 00:00:00 2001 From: zhou-liting125 Date: Fri, 22 Jul 2022 10:24:29 +0800 Subject: [PATCH 181/868] Web documentation rectification Signed-off-by: zhou-liting125 --- .../arkui-ts/ts-basic-components-web.md | 78 +++++++++++++++++-- 1 file changed, 70 insertions(+), 8 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md index 7f42fd0ce0..8d4037a907 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md @@ -83,6 +83,7 @@ onRenderExited接口返回的渲染进程退出的具体原因。 - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -115,6 +116,7 @@ domStorageAccess(domStorageAccess: boolean) - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -140,6 +142,7 @@ fileAccess(fileAccess: boolean) - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -165,6 +168,7 @@ fileFromUrlAccess(fileFromUrlAccess: boolean) - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -190,6 +194,7 @@ imageAccess(imageAccess: boolean) - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -218,6 +223,7 @@ javaScriptProxy(javaScriptProxy: { object: object, name: string, methodList: Arr - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -259,6 +265,7 @@ javaScriptAccess(javaScriptAccess: boolean) - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -284,6 +291,7 @@ mixedMode(mixedMode: MixedMode) - 示例代码 ```js + @Entry @Component @State mode:MixedMode = MixedMode.All; struct WebComponent { @@ -311,6 +319,7 @@ onlineImageAccess(onlineImageAccess: boolean) ## onlineImageAccess - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -336,6 +345,7 @@ zoomAccess(zoomAccess: boolean) - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -361,6 +371,7 @@ overviewModeAccess(overviewModeAccess: boolean) - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -385,6 +396,7 @@ databaseAccess(databaseAccess: boolean) | databaseAccess | boolean | 是 | - | 设置是否开启数据库存储API权限。 | ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -410,6 +422,7 @@ cacheMode(cacheMode: CacheMode) - 示例代码 ```js + @Entry @Component @State mode:CacheMode = CacheMode.None; struct WebComponent { @@ -436,6 +449,7 @@ textZoomAtio(textZoomAtio: number) - 示例代码 ```js + @Entry @Component @State atio:Number = 100; struct WebComponent { @@ -462,6 +476,7 @@ userAgent(userAgent: string) - 示例代码 ```js + @Entry @Component @State userAgent:String = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'; struct WebComponent { @@ -503,6 +518,7 @@ onAlert(callback: (event?: { url: string; message: string; result: JsResult }) = - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -550,6 +566,7 @@ onBeforeUnload(callback: (event?: { url: string; message: string; result: JsResu - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -586,6 +603,7 @@ onConfirm(callback: (event?: { url: string; message: string; result: JsResult }) - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -633,6 +651,7 @@ onPrompt(callback: (event?: { url: string; message: string; value: string; resul - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -668,6 +687,7 @@ onConsole(callback: (event?: { message: ConsoleMessage }) => boolean) - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -699,6 +719,7 @@ onDownloadStart(callback: (event?: { url: string, userAgent: string, contentDisp - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -730,6 +751,7 @@ onErrorReceive(callback: (event?: { request: WebResourceRequest, error: WebResou - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -768,6 +790,7 @@ onHttpErrorReceive(callback: (event?: { request: WebResourceRequest, response: W - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -813,6 +836,7 @@ onPageBegin(callback: (event?: { url: string }) => void) - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -840,6 +864,7 @@ onPageEnd(callback: (event?: { url: string }) => void) - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -866,6 +891,7 @@ onProgressChange(callback: (event?: { newProgress: number }) => void) - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -892,6 +918,7 @@ onTitleReceive(callback: (event?: { title: string }) => void) - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -919,6 +946,7 @@ onRefreshAccessedHistory(callback: (event?: { url: string, isRefreshed: boolean - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -945,6 +973,7 @@ onRenderExited(callback: (event?: { renderExitReason: RenderExitReason }) => voi - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -972,6 +1001,7 @@ onShowFileSelector(callback: (event?: { result: FileSelectorResult, fileSelector - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1020,6 +1050,7 @@ onUrlLoadIntercept(callback: (event?: { data:string | WebResourceRequest }) => b - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1052,6 +1083,7 @@ onInterceptRequest9+(callback: (event?: { request: WebResourceRequest}) => WebRe - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1103,12 +1135,14 @@ onHttpAuthRequest(callback: (event?: { handler: HttpAuthHandler, host: string, r - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); + httpAuth:boolean = false; build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'http://httpbin.org/basic-auth/2222/2222', controller:this.controller}) .onHttpAuthRequest((event) => { AlertDialog.show({ title: 'title', @@ -1116,20 +1150,20 @@ onHttpAuthRequest(callback: (event?: { handler: HttpAuthHandler, host: string, r confirm: { value: 'onConfirm', action: () => { - this.httpAuth =handler.isHttpAuthInfoSaved(); + this.httpAuth = event.handler.isHttpAuthInfoSaved(); if (this.httpAuth == false) { web.WebDataBase.saveHttpAuthCredentials( - host, - realm, - "2222", - "2222" + event.host, + event.realm, + "2222", + "2222" ) - handler.confirm("111", "2222"); + event.handler.cancel(); } } }, cancel: () => { - handler.cancel(); + event.handler.cancel(); } }) return true; @@ -1572,6 +1606,7 @@ accessBackward(): boolean - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1601,6 +1636,7 @@ accessForward(): boolean - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1636,6 +1672,7 @@ accessStep(step: number): boolean - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1660,6 +1697,7 @@ backward(): void - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1682,6 +1720,7 @@ forward(): void - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1709,6 +1748,7 @@ backOrForward(step: number): void - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1737,6 +1777,7 @@ deleteJavaScriptRegister(name: string) - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1765,6 +1806,7 @@ getHitTest(): HitTestType - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1792,6 +1834,7 @@ getHitTestValue(): HitTestValue - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1820,6 +1863,7 @@ getWebId(): number - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1846,6 +1890,7 @@ getTitle(): string - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1872,6 +1917,7 @@ getPageHeight(): number - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1899,6 +1945,7 @@ getDefaultUserAgent(): string - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1936,6 +1983,7 @@ baseUrl为空时,通过”data“协议加载指定的一段字符串。 - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1973,6 +2021,7 @@ loadUrl(options: { url: string | Resource, headers?: Array\ }) - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -1995,6 +2044,7 @@ onActive(): void - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -2017,6 +2067,7 @@ onInactive(): void - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -2043,6 +2094,7 @@ zoom(factor: number): void - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -2069,6 +2121,7 @@ zoomIn(): boolean - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -2095,6 +2148,7 @@ zoomOut(): boolean - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -2118,6 +2172,7 @@ refresh() - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -2148,6 +2203,7 @@ registerJavaScriptProxy(options: { object: object, name: string, methodList: Arr - 示例代码 ```js + @Entry @Component struct Index { controller: WebController = new WebController() @@ -2219,6 +2275,7 @@ runJavaScript(options: { script: string, callback?: (result: string) => void }) - 示例代码 ```js + @Entry @Component struct WebComponent { controller: WebController = new WebController(); @@ -2267,6 +2324,7 @@ stop() - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -2289,6 +2347,7 @@ clearHistory(): void - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -2315,6 +2374,7 @@ getCookieManager(): WebCookie - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -2372,6 +2432,7 @@ setCookie(url: string, value: string): boolean - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); @@ -2398,6 +2459,7 @@ saveCookieSync(): boolean - 示例代码 ```js + @Entry @Component struct WebComponent { controller:WebController = new WebController(); -- GitLab From df06a76b2f1a9adc3d503b6bf280163ae93653c3 Mon Sep 17 00:00:00 2001 From: caiminggang Date: Fri, 22 Jul 2022 10:57:25 +0800 Subject: [PATCH 182/868] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E6=89=AB=E6=8F=8F=E5=A4=B1=E8=B4=A5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: caiminggang --- .../apis/js-apis-enterprise-device-manager.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md b/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md index 21e653bcf2..79b2a94b14 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md @@ -603,8 +603,8 @@ SystemCapability.Customization.EnterpriseDeviceManager **返回值:** -| 类型 | 说明 | -| ------------------ | --------------------- | +| 类型 | 说明 | +| ----------------- | --------------------- | | Promise\ | Promise方式返回是否设置企业信息成功 | **示例:** @@ -701,17 +701,19 @@ enterpriseDeviceManager.getEnterpriseInfo(wantTemp).then((result) => { **系统能力:** 以下各项对应系统能力均为SystemCapability.Customization.EnterpriseDeviceManager -| 名称 | 读写属性 | 类型 | 必填 | 描述 | -| ----------- | ---- | ------ | ---- | ----------------- | -| name | 只读 | string | 是 | 表示设备管理员应用所属企业的名称。 | -| description | 只读 | string | 是 | 表示设备管理员应用所属企业的描述。 | + +| 名称 | 读写属性 | 类型 | 必填 | 描述 | +| ----------- | ---- | ------ | --- | ----------------- | +| name | 只读 | string | 是 | 表示设备管理员应用所属企业的名称。 | +| description | 只读 | string | 是 | 表示设备管理员应用所属企业的描述。 | ## AdminType 设备管理员应用的管理员类型。 **系统能力:** -以下各项对应系统能力均为SystemCapability.Customization.EnterpriseDeviceManager +以下各项对应系统能力均为SystemCapability.Customization.EnterpriseDeviceManager + | 名称 | 默认值 | 说明 | | ----------------- | ---- | ----- | | ADMIN_TYPE_NORMAL | 0x00 | 普通管理员 | -- GitLab From e5377d99e9c723372f6366afe691213bf5c6006e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Fri, 22 Jul 2022 03:05:37 +0000 Subject: [PATCH 183/868] =?UTF-8?q?zh-cn/application-dev/reference/apis/js?= =?UTF-8?q?-apis-application-DataShareExtensionAbility.md=EF=BC=9A?= =?UTF-8?q?=E7=A4=BA=E4=BE=8B=E4=BB=A3=E7=A0=81=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=EF=BC=8C=E9=9C=80=E5=90=8C=E6=AD=A5=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=20Signed-off-by:=20@ge-yafang=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s-application-DataShareExtensionAbility.md | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md b/zh-cn/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md index 886f1363ec..2570b834f9 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md +++ b/zh-cn/application-dev/reference/apis/js-apis-application-DataShareExtensionAbility.md @@ -145,6 +145,15 @@ insert?(uri: string, valueBucket: ValuesBucket, callback: AsyncCallback<numbe **示例:** ```ts +import rdb from '@ohos.data.rdb'; + +let DB_NAME = "DB00.db"; +let TBL_NAME = "TBL00"; +let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS " ++ TBL_NAME ++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)"; +let rdbStore; + export default class DataShareExtAbility extends DataShareExtensionAbility { insert(uri, valueBucket, callback) { if (value == null) { @@ -181,6 +190,15 @@ update?(uri: string, predicates: dataSharePredicates.DataSharePredicates, valueB **示例:** ```ts +import rdb from '@ohos.data.rdb'; + +let DB_NAME = "DB00.db"; +let TBL_NAME = "TBL00"; +let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS " ++ TBL_NAME ++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)"; +let rdbStore; + export default class DataShareExtAbility extends DataShareExtensionAbility { update(uri, predicates, valueBucket, callback) { if (predicates == null || predicates == undefined) { @@ -214,6 +232,15 @@ delete?(uri: string, predicates: dataSharePredicates.DataSharePredicates, callba **示例:** ```ts +import rdb from '@ohos.data.rdb'; + +let DB_NAME = "DB00.db"; +let TBL_NAME = "TBL00"; +let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS " ++ TBL_NAME ++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)"; +let rdbStore; + export default class DataShareExtAbility extends DataShareExtensionAbility { delete(uri, predicates, callback) { if (predicates == null || predicates == undefined) { @@ -248,6 +275,15 @@ query?(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns **示例:** ```ts +import rdb from '@ohos.data.rdb'; + +let DB_NAME = "DB00.db"; +let TBL_NAME = "TBL00"; +let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS " ++ TBL_NAME ++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)"; +let rdbStore; + export default class DataShareExtAbility extends DataShareExtensionAbility { query(uri, predicates, columns, callback) { if (predicates == null || predicates == undefined) { @@ -311,6 +347,15 @@ batchInsert?(uri: string, valueBuckets: Array<ValuesBucket>, callback: Asy **示例:** ```ts +import rdb from '@ohos.data.rdb'; + +let DB_NAME = "DB00.db"; +let TBL_NAME = "TBL00"; +let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS " ++ TBL_NAME ++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)"; +let rdbStore; + export default class DataShareExtAbility extends DataShareExtensionAbility { batchInsert(uri, valueBuckets, callback) { if (valueBuckets == null || valueBuckets.length == undefined) { -- GitLab From 65feab33012586865b34545bb162a64a52aab417 Mon Sep 17 00:00:00 2001 From: hnz Date: Fri, 22 Jul 2022 03:10:39 +0000 Subject: [PATCH 184/868] =?UTF-8?q?JS=E5=9F=BA=E7=A1=80=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=EF=BC=88js-components-basic-picker.md=EF=BC=89--=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=A4=9A=E4=BD=99=E5=AD=97=E7=AC=A6=20Signed-off-by:?= =?UTF-8?q?=20=E8=B4=BA=E5=BF=B5=E5=93=B2=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/arkui-js/js-components-basic-picker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/arkui-js/js-components-basic-picker.md b/zh-cn/application-dev/reference/arkui-js/js-components-basic-picker.md index 737797a239..7e4751d2b2 100644 --- a/zh-cn/application-dev/reference/arkui-js/js-components-basic-picker.md +++ b/zh-cn/application-dev/reference/arkui-js/js-components-basic-picker.md @@ -18,7 +18,7 @@ ## 属性 -除支持[通用属性](../arkui-js/js-components-common-attributes.md)外,还支持如下属性:↵ +除支持[通用属性](../arkui-js/js-components-common-attributes.md)外,还支持如下属性: | 名称 | 类型 | 默认值 | 必填 | 描述 | | ---- | ------ | ---- | ---- | ---------------------------------------- | -- GitLab From 2f9987ebcbcc8928e8e7dc63a858fc50ad672e50 Mon Sep 17 00:00:00 2001 From: sunyaozu Date: Fri, 22 Jul 2022 11:17:24 +0800 Subject: [PATCH 185/868] fix setSystemLanguage Signed-off-by: sunyaozu --- zh-cn/application-dev/reference/apis/js-apis-i18n.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-i18n.md b/zh-cn/application-dev/reference/apis/js-apis-i18n.md index 4b20398037..0323d11e4e 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-i18n.md +++ b/zh-cn/application-dev/reference/apis/js-apis-i18n.md @@ -118,7 +118,7 @@ getSystemLanguage(): string setSystemLanguage(language: string): boolean -设置系统语言。 +设置系统语言。当前调用该接口不支持系统界面语言的实时刷新。 该接口为系统接口。 -- GitLab From ef7f4ab151b7fcd4754a3f48224d87945fdf70e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Fri, 22 Jul 2022 03:21:34 +0000 Subject: [PATCH 186/868] =?UTF-8?q?zh-cn/contribute/template/guide-templat?= =?UTF-8?q?e.md=EF=BC=9A=E4=BF=AE=E6=94=B9=E5=80=BE=E6=96=9C=E5=8A=A0?= =?UTF-8?q?=E7=B2=97=E5=BC=82=E5=B8=B8=E6=A0=B7=E5=BC=8F=EF=BC=8C=E9=9C=80?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E7=BF=BB=E8=AF=91=20Signed-off-by:=20@ge-yaf?= =?UTF-8?q?ang=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/contribute/template/guide-template.md | 27 +++++++++++---------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/zh-cn/contribute/template/guide-template.md b/zh-cn/contribute/template/guide-template.md index 4423840723..fefe135981 100644 --- a/zh-cn/contribute/template/guide-template.md +++ b/zh-cn/contribute/template/guide-template.md @@ -2,18 +2,19 @@ > **注意:** -> _1、本模板提供推荐的开发指南文档框架、典型知识点写作要求及写作指导。实际写作中,应视具体__方案/特性/功能/模块__情况,先完成开发者任务场景分析与开发指南大纲设计,然后参照本模板写作具体内容。_ > -> _2、文档写作时,两级标题之间的位置不允许添加内容。_ +> _1、本模板提供推荐的开发指南文档框架、典型知识点写作要求及写作指导。实际写作中,应视具体**方案/特性/功能/模块**情况,先完成开发者任务场景分析与开发指南大纲设计,然后参照本模板写作具体内容。_ +> +> _2、文档写作时,一级标题与二级标题之间的位置不允许添加内容。_ > > _3、所有斜体为写作指导,正式文档中注意全部删除。_ ## xxx概述 -_必选。根据具体__方案/特性/功能/模块__的场景划分情况,此处的“xxx概述”与具体任务场景下的“任务场景n概述”按需提供一处或共存,具体的:_ +_必选。根据具体**方案/特性/功能/模块**情况的场景划分情况,此处的“xxx概述”与具体任务场景下的“任务场景n概述”按需提供一处或共存,具体的:_ -_1、此处的“xxx概述”":用于承载开发者需要了解的、本特性各任务场景通用的概述内容。如无,则删除。_ +_1、此处的“xxx概述”:用于承载开发者需要了解的、本特性各任务场景通用的概述内容。如无,则删除。_ _2、“任务场景n概述”:用于承载任务场景n直接相关的概述内容,知识点构成及写作要点与“xxx概述”相同,包括任务场景n简介、任务场景n直接相关的基本概念、任务场景n直接相关的实现原理、任务场景n直接相关的约束与限制、任务场景n直接相关的相关实例。如无,则删除。_ @@ -21,11 +22,11 @@ _2、“任务场景n概述”:用于承载任务场景n直接相关的概述 **_1、目标对象:_**_面向内、外部开发者(含产品经理、开发人员)。面向UX设计师的指导文档通常由专门的UX设计规范承载,不在开发指南范畴。本文如需提及,以超链接方式指向对应UX规范即可。_ -_**2、内容定位:**介绍__方案/特性/功能/模块__是什么(What)、能做什么(Why),以及如何进行相关应用程序/设备的设计、开发、发布上架(How)。支撑开发者学习必要知识,最终在实际开发活动中完成既定任务目标。_ +**_2、内容定位:_**_介绍**方案/特性/功能/模块**是什么(What)、能做什么(Why),以及如何进行相关应用程序/设备的设计、开发、发布上架(How)。支撑开发者学习必要知识,最终在实际开发活动中完成既定任务目标。_ -_**3、用户视角:**变身开发者,始终以开发者视角,提供开发者关注的、可感知和使用的内容。_ +**_3、用户视角:_**_变身开发者,始终以开发者视角,提供开发者关注的、可感知和使用的内容。_ -_**4、面向任务:**聚焦开发者实际任务,完整、正确、易用,具备权威指导性。_ +**_4、面向任务:_**_聚焦开发者实际任务,完整、正确、易用,具备权威指导性。_ _5、不要受限:模板只是基础框架,不要僵化。_ @@ -40,7 +41,7 @@ _这个方案/特性/功能/模块是什么(定义-what)?我为什么要 _**【写作要点】**_ -- _提供易理解的场景化描述。__可参考如下SCQA方式介绍方案/特性/功能/模块客户面的功能场景、特点。_ +- _提供易理解的场景化描述。_ _可参考如下SCQA方式介绍方案/特性/功能/模块客户面的功能场景、特点。_ - _S:situation(情景),由大家都熟悉的的情景、事实引入。_ - _C:complication(冲突),但是实际情况往往和我们的要求有冲突。_ - _Q:question(疑问),怎么办?_ @@ -71,7 +72,7 @@ _要使用该方案/特性/功能/模块,有哪些独有概念是我需要了 - _运作机制、约束限制、开发过程等多个章节相关的概念在此介绍,仅某个章节用到的概念在对应章节中介绍。_ -- _业界通用的概念不用在此赘述。__注意使用业界通用术语来表达,不用华为研发内部语言。_ +- _业界通用的概念不用在此赘述。_ _注意使用业界通用术语来表达,不用华为研发内部语言。_ - _概念之间如有逻辑关系,推荐使用图形描述。_ @@ -141,7 +142,7 @@ _可选。此处放置以下各任务场景通用的约束与限制。_ _**【开发者关注点】**_ -_我要__使用该方案/特性/功能/模块,有什么约束条件吗?__该方案/特性/功能/模块__实现的程度如何,能满足我的需求吗?_ +_我要使用该方案/特性/功能/模块,有什么约束条件吗?该方案/特性/功能/模块实现的程度如何,能满足我的需求吗?_ **_【写作要点】_** @@ -174,7 +175,7 @@ _有哪些Sample code、Codelabs、Demo工程可供学习、参考。_ **_【写作要点】_** -_已发布的Sample code、Codelabs、Demo工程包,请在此处提供链接(一般为Gitee链接)。__注意:不允许将工程包等作为附件插入到文档中。_ +_已发布的Sample code、Codelabs、Demo工程包,请在此处提供链接(一般为Gitee链接)。_ _注意:不允许将工程包等作为附件插入到文档中。_ **【写作样例】** @@ -189,7 +190,7 @@ _可选。_ _根据具体的开发场景分析分解情况,本节内容可按需放入“开发指导”下,作为“前提条件”或“开发准备”与具体场景的“开发步骤”就近放置。_ -_明确如何准备开发环境(如软硬件配置要求、工具要求、设备要求等)__。_ +_明确如何准备开发环境(如软硬件配置要求、工具要求、设备要求等)。_ _如果不涉及上述特殊要求,此章节删除。_ @@ -256,7 +257,7 @@ _贴近开发者实际开发场景:_ - _开发者需要通过哪些任务来达成开发目标,这就是任务场景。_ -- _任务场景可以有1个或多个,__可按需添加多个“开发指导”章节。__同时要遵循分层分级逻辑,即大场景(任务场景n)->小场景(子任务场景n-x)->任务逻辑(对应“开发流程”)->操作步骤(一个个step)。_ +- _任务场景可以有1个或多个,可按需添加多个“开发指导”章节。同时要遵循分层分级逻辑,即大场景(任务场景n)->小场景(子任务场景n-x)->任务逻辑(对应“开发流程”)->操作步骤(一个个step)。_ ### 任务场景n概述 -- GitLab From 172f22185cd928b4651031ac444ca8e87fccfe2a Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Fri, 22 Jul 2022 11:21:48 +0800 Subject: [PATCH 187/868] update docs Signed-off-by: Annie_wang --- .../subsystems/subsys-data-storage-guide.md | 55 +++++++++---------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/en/device-dev/subsystems/subsys-data-storage-guide.md b/en/device-dev/subsystems/subsys-data-storage-guide.md index b04c82592a..2d577a2fff 100644 --- a/en/device-dev/subsystems/subsys-data-storage-guide.md +++ b/en/device-dev/subsystems/subsys-data-storage-guide.md @@ -16,7 +16,7 @@ Create a **Preferences** instance for data operations. A **Preferences** instanc | Class| Method| Description| | --- | ----- | ----| -| PreferencesHelper | static std::shared_ptr GetPreferences(const std::string &path, int &errCode); | Creates a **Preferences** instance.
**path**: storage path of the application data.
**errCode**: error code.
Return value: **Preferences** instance created.| +| PreferencesHelper | static std::shared_ptr GetPreferences(const std::string &path, int &errCode); | Creates a **Preferences** instance.
**path**: storage path of the application data.
**errCode**: error code.
Return value: **Preferences** instance created.| **Writing Data** @@ -26,13 +26,13 @@ Call the **put()** method to add or modify data in a **Preferences** instance. | Class| Method| Description| | --- | ----- | ----| -| Preferences | int PutInt(const std::string &key, int value); | **key**: key of the data to write. It cannot be empty.
**value**: value of the data to write.
Return value: error code.| -| Preferences | int PutString(const std::string &key, const std::string &value); | **key**: key of the data to write. It cannot be empty.
**value**: value of the data to write.
Return value: error code.| -| Preferences | int PutBool(const std::string &key, bool value); | **key**: key of the data to write. It cannot be empty.
**value**: value of the data to write.
Return value: error code.| -| Preferences | int PutLong(const std::string &key, int64_t value); | **key**: key of the data to write. It cannot be empty.
**value**: value of the data to write.
Return value: error code.| -| Preferences | int PutFloat(const std::string &key, float value); | **key**: key of the data to write. It cannot be empty.
**value**: value of the data to write.
Return value: error code.| -| Preferences | int PutDouble(const std::string &key, double value); | **key**: key of the data to write. It cannot be empty.
**value**: value of the data to write.
Return value: error code.| -| Preferences | int PutStringSet(const std::string &key, const std::set\ &value); | **key**: key of the data to write. It cannot be empty.
**value**: value of the data to write.
Return value: error code.| +| Preferences | int PutInt(const std::string &key, int value); | **key**: key of the data to write. It cannot be empty.
**value**: value of the data to write.
Return value: Returns **0** if the operation is successful; returns the error code otherwise.| +| Preferences | int PutString(const std::string &key, const std::string &value); | **key**: key of the data to write. It cannot be empty.
**value**: value of the data to write.
Return value: Returns **0** if the operation is successful; returns the error code otherwise.| +| Preferences | int PutBool(const std::string &key, bool value); | **key**: key of the data to write. It cannot be empty.
**value**: value of the data to write.
Return value: Returns **0** if the operation is successful; returns the error code otherwise.| +| Preferences | int PutLong(const std::string &key, int64_t value); | **key**: key of the data to write. It cannot be empty.
**value**: value of the data to write.
Return value: Returns **0** if the operation is successful; returns the error code otherwise.| +| Preferences | int PutFloat(const std::string &key, float value); | **key**: key of the data to write. It cannot be empty.
**value**: value of the data to write.
Return value: Returns **0** if the operation is successful; returns the error code otherwise.| +| Preferences | int PutDouble(const std::string &key, double value); | **key**: key of the data to write. It cannot be empty.
**value**: value of the data to write.
Return value: Returns **0** if the operation is successful; returns the error code otherwise.| +| Preferences | int PutStringSet(const std::string &key, const std::set\ &value); | **key**: key of the data to write. It cannot be empty.
**value**: value of the data to write.
Return value: Returns **0** if the operation is successful; returns the error code otherwise.| **Reading Data** @@ -42,17 +42,17 @@ Call the **get()** method to read data from a **Preferences** instance. | Class| Method| Description| | --- | ----- | ----| -| Preferences | bool GetBool(const std::string &key, bool defValue); | **key**: key of the data to read. It cannot be empty.
**defValue**: default value to return if the operation fails or the value does not exist.
Return value: Returns the value read if the operation is successful; returns **defValue** otherwise.| -| Preferences | std::string GetString(const std::string &key, const std::string &defValue); | **key**: key of the data to read. It cannot be empty.
**defValue**: default value to return if the operation fails or the value does not exist.
Return value: Returns the value read if the operation is successful; returns **defValue** otherwise.| -| Preferences | bool GetBool(const std::string &key, bool defValue); | **key**: key of the data to read. It cannot be empty.
**defValue**: default value to return if the operation fails or the value does not exist.
Return value: Returns the value read if the operation is successful; returns **defValue** otherwise.| -| Preferences | float GetFloat(const std::string &key, float defValue); | **key**: key of the data to read. It cannot be empty.
**defValue**: default value to return if the operation fails or the value does not exist.
Return value: Returns the value read if the operation is successful; returns **defValue** otherwise.| -| Preferences | double GetDouble(const std::string &key, double defValue); | **key**: key of the data to read. It cannot be empty.
**defValue**: default value to return if the operation fails or the value does not exist.
Return value: Returns the value read if the operation is successful; returns **defValue** otherwise.| -| Preferences | int64_t GetLong(const std::string &key, int64_t defValue); | **key**: key of the data to read. It cannot be empty.
**defValue**: default value to return if the operation fails or the value does not exist.
Return value: Returns the value read if the operation is successful; returns **defValue** otherwise.| -| Preferences | std::set\ GetStringSet(const std::string &key, std::set\ &defValue); | **key**: key of the data to read. It cannot be empty.
**defValue**: default value to return if the operation fails or the value does not exist.
Return value: Returns the value read if the operation is successful; returns **defValue** otherwise.| +| Preferences | int GetInt(const std::string &key, const int defValue = 0); | **key**: key of the data to read. It cannot be empty.
**defValue**: default value to return if the operation fails or the value does not exist.
Return value: value obtained.| +| Preferences | std::string GetString(const std::string &key, const std::string &defValue = {}); | **key**: key of the data to read. It cannot be empty.
**defValue**: default value to return if the operation fails or the value does not exist.
Return value: value obtained.| +| Preferences | bool GetBool(const std::string &key, const bool defValue = false); | **key**: key of the data to read. It cannot be empty.
**defValue**: default value to return if the operation fails or the value does not exist.
Return value: value obtained.| +| Preferences | float GetFloat(const std::string &key, const float defValue = 0); | **key**: key of the data to read. It cannot be empty.
**defValue**: default value to return if the operation fails or the value does not exist.
Return value: value obtained.| +| Preferences | double GetDouble(const std::string &key, const double defValue = 0); | **key**: key of the data to read. It cannot be empty.
**defValue**: default value to return if the operation fails or the value does not exist.
Return value: value obtained.| +| Preferences | int64_t GetLong(const std::string &key, const int64_t defValue = 0); | **key**: key of the data to read. It cannot be empty.
**defValue**: default value to return if the operation fails or the value does not exist.
Return value: value obtained.| +| Preferences | std::set\ GetStringSet(const std::string &key, const std::set\ &defValue = {}); | **key**: key of the data to read. It cannot be empty.
**defValue**: default value to return if the operation fails or the value does not exist.
Return value: value obtained.| **Storing Data Persistently** -Call the **flush()** or **flushSync** method to write the cached data back to its text file for persistent storage. +Call the **Flush()** or **FlushSync()** method to write the cached data back to its text file for persistent storage. **Table 4** APIs for data persistence @@ -65,12 +65,12 @@ Call the **flush()** or **flushSync** method to write the cached data back to it Specify **PreferencesObserver** as the callback to subscribe to data changes. When the value of the subscribed key is changed and the **flush()** method is executed, **PreferencesObserver** will be invoked. -**Table 5** APIs for subscribing to data changes +**Table 5** APIs for observing data changes | Class| Method| Description| | --- | ----- | ----| -| Preferences | void RegisterObserver(std::shared_ptr preferencesObserver); | Subscribes to data changes.
**preferencesObserver**: callback invoked to return the data changes.| -| Preferences | void UnRegisterObserver(std::shared_ptr preferencesObserver); | Unsubscribes from data changes.
**preferencesObserver**: callback used to report data changes.| +| Preferences | void RegisterObserver(std::shared_ptr preferencesObserver); | Subscribes to data changes.
**preferencesObserver**: callback invoked to return the data changes.| +| Preferences | void UnRegisterObserver(std::shared_ptr preferencesObserver); | Unsubscribes from data changes.
**preferencesObserver**: callback used to report data changes.| **Deleting Data** @@ -80,8 +80,8 @@ Use the following APIs to delete a **Preferences** instance or data file. | Class| Method| Description| | --- | ----- | ----| -| PreferencesHelper | int DeletePreferences(const std::string &path); | Deletes a **Preferences** instance from the memory and deletes its file from the device.
**path**: storage path of the application data.
Return value: error code.| -| PreferencesHelper | int RemovePreferencesFromCache(const std::string &path); | Deletes a **Preferences** instance from the memory.
**path**: storage path of the application data.
Return value: error code.| +| PreferencesHelper | int DeletePreferences(const std::string &path); | Deletes a **Preferences** instance from the memory and deletes its file from the device.
**path**: storage path of the application data.
Return value: Returns **0** if the operation is successful; returns the error code otherwise.| +| PreferencesHelper | int RemovePreferencesFromCache(const std::string &path); | Deletes a **Preferences** instance from the memory.
**path**: storage path of the application data.
Return value: Returns **0** if the operation is successful; returns the error code otherwise.| ## How to Develop @@ -122,14 +122,13 @@ Use the following APIs to delete a **Preferences** instance or data file. 5. Store data persistently. - Use the **flush()** or **flushSync()** method to flush data in the **Preferences** instance to its file. + Use the **Flush()** or **FlushSync()** method to flush data in the **Preferences** instance to its file. ```C++ int err = pref->FlushSync(); EXPECT_EQ(ret, E_OK); ``` - 6. Subscribe to data changes. Specify **PreferencesObserver** as the callback to subscribe to data changes for an application. When the value of the subscribed key is changed and the **flush()** or **flushSync()** method is executed, **PreferencesObserver** will be invoked. Unregister the **PreferencesObserver** when it is no longer required. @@ -144,7 +143,7 @@ Use the following APIs to delete a **Preferences** instance or data file. std::atomic_int notifyTimes; static const std::vector NOTIFY_KEYS_VECTOR; }; - + PreferencesObserverCounter::~PreferencesObserverCounter() {} void PreferencesObserverCounter::OnChange(Preferences &preferences, const std::string &key) @@ -156,7 +155,7 @@ Use the following APIs to delete a **Preferences** instance or data file. } } } - + const std::vector PreferencesObserverCounter::NOTIFY_KEYS_VECTOR = { PreferencesTest::KEY_TEST_INT_ELEMENT, PreferencesTest::KEY_TEST_LONG_ELEMENT, PreferencesTest::KEY_TEST_FLOAT_ELEMENT, PreferencesTest::KEY_TEST_BOOL_ELEMENT, PreferencesTest::KEY_TEST_STRING_ELEMENT }; @@ -167,17 +166,17 @@ Use the following APIs to delete a **Preferences** instance or data file. std::shared_ptr counter = std::make_shared(); pref->RegisterObserver(counter); // Register a callback to return data changes. - + pref->PutString(PreferencesTest::KEY_TEST_STRING_ELEMENT, "test"); pref->Flush(); // Trigger the onChanged callback of the counter. EXPECT_EQ(static_cast(counter.get())->notifyTimes, 1); - + /* same value */ pref->PutInt(PreferencesTest::KEY_TEST_INT_ELEMENT, 2); pref->PutString(PreferencesTest::KEY_TEST_STRING_ELEMENT, "test"); pref->Flush(); EXPECT_EQ(static_cast(counter.get())->notifyTimes, 2); - + pref->UnRegisterObserver(counter); // Unregister the callback for data changes. ``` -- GitLab From 091e9e80393a93e46a8625fc06ffd4dc9847469b Mon Sep 17 00:00:00 2001 From: jiao_yanlin Date: Fri, 22 Jul 2022 11:27:07 +0800 Subject: [PATCH 188/868] update for device Descriptors ,focus type and Sample format Signed-off-by: jiao_yanlin --- .../reference/apis/js-apis-audio.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/zh-cn/application-dev/reference/apis/js-apis-audio.md b/zh-cn/application-dev/reference/apis/js-apis-audio.md index ae33129b70..23487e806e 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-audio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-audio.md @@ -338,6 +338,7 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => { | SAMPLE_FORMAT_S16LE | 1 | 带符号的16位整数,小尾数。 | | SAMPLE_FORMAT_S24LE | 2 | 带符号的24位整数,小尾数。 | | SAMPLE_FORMAT_S32LE | 3 | 带符号的32位整数,小尾数。 | +| SAMPLE_FORMAT_F32LE | 4 | 带符号的32位整数,小尾数。 | ## AudioChannel8+ @@ -409,6 +410,17 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => { | STREAM_USAGE_VOICE_COMMUNICATION | 2 | 语音通信。 | | STREAM_USAGE_NOTIFICATION_RINGTONE | 6 | 通知铃声。 | +## FocusType + +枚举焦点类型。 + +**系统能力**: SystemCapability.Multimedia.Audio.Core + +| 名称 | 默认值 | 描述 | +| ---------------------------------- | ------ | ---------- | +| FOCUS_TYPE_RECORDING | 0 | 录制类型。 | + + ## AudioState8+ 枚举,音频状态。 @@ -1849,6 +1861,12 @@ audioManager.getAudioScene().then((value) => { | ---------- | ------------------------- | ---- | ---- | ---------- | | deviceRole | [DeviceRole](#devicerole) | 是 | 否 | 设备角色。 | | deviceType | [DeviceType](#devicetype) | 是 | 否 | 设备类型。 | +| id | number | 是 | 否 | 设备id。 | +| name | string | 是 | 否 | 设备名称。 | +| address | string | 是 | 否 | 设备地址。 | +| sampleRates | Array<number> | 是 | 否 | 支持的采样率。 | +| channelCounts | Array<number> | 是 | 否 | 支持的通道数。 | +| channelMasks | Array<number> | 是 | 否 | 支持的通道掩码。 | ## AudioDeviceDescriptors -- GitLab From 4fd6a1a49c500019361ba85e3685b645da0fa7df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Fri, 22 Jul 2022 03:31:57 +0000 Subject: [PATCH 189/868] =?UTF-8?q?update=20zh-cn/application-dev/referenc?= =?UTF-8?q?e/apis/js-apis-windowAnimationManager.md=EF=BC=9A=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0syscap=EF=BC=9A=E9=9C=80=E5=90=8C=E6=AD=A5=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=20Signed-off-by:=20@ge-yafang=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apis/js-apis-windowAnimationManager.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/zh-cn/application-dev/reference/apis/js-apis-windowAnimationManager.md b/zh-cn/application-dev/reference/apis/js-apis-windowAnimationManager.md index 66f556ec42..7a05d608c5 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-windowAnimationManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-windowAnimationManager.md @@ -18,6 +18,8 @@ setController(controller: WindowAnimationController): void 设置窗口动画控制器。 +**系统能力:** SystemCapability.WindowManager.WindowManager.Core + **参数:** | 参数名 | 类型 | 必填 | 说明 | @@ -54,12 +56,16 @@ windowAnimationManager.setController(controller) 窗口动画控制器。 +**系统能力:** SystemCapability.WindowManager.WindowManager.Core + ### onStartAppFromLauncher onStartAppFromLauncher(startingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void 从桌面启动应用时的回调。 +**系统能力:** SystemCapability.WindowManager.WindowManager.Core + | 参数名 | 类型 | 必填 | 说明 | | -------------------- | ------------------------------------------------------------ | ---- | ------------------ | | startingWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | 动画目标窗口。 | @@ -81,6 +87,8 @@ onStartAppFromRecent(startingWindowTarget: WindowAnimationTarget,finishCallback: 从最近任务列表启动应用时的回调。 +**系统能力:** SystemCapability.WindowManager.WindowManager.Core + | 参数名 | 类型 | 必填 | 说明 | | -------------------- | ------------------------------------------------------------ | ---- | ------------------ | | startingWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | 动画目标窗口。 | @@ -102,6 +110,8 @@ onStartAppFromOther(startingWindowTarget: WindowAnimationTarget,finishCallback: 从除了桌面和最近任务列表以外其他地方启动应用时的回调。 +**系统能力:** SystemCapability.WindowManager.WindowManager.Core + | 参数名 | 类型 | 必填 | 说明 | | -------------------- | ------------------------------------------------------------ | ---- | ------------------ | | startingWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | 动画目标窗口。 | @@ -123,6 +133,8 @@ onAppTransition(fromWindowTarget: WindowAnimationTarget, toWindowTarget: WindowA 应用转场时的回调。 +**系统能力:** SystemCapability.WindowManager.WindowManager.Core + | 参数名 | 类型 | 必填 | 说明 | | -------------------- | ------------------------------- | ---- | ---------------- | | fromWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | 转场前的动画窗口。 | @@ -146,6 +158,8 @@ onMinimizeWindow(minimizingWindowTarget: WindowAnimationTarget,finishCallback: W 最小化窗口时的回调。 +**系统能力:** SystemCapability.WindowManager.WindowManager.Core + | 参数名 | 类型 | 必填 | 说明 | | -------------------- | ------------------------------- | ---- | ---------------- | | minimizingWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | 动画目标窗口。 | @@ -167,6 +181,8 @@ onCloseWindow(closingWindowTarget: WindowAnimationTarget,finishCallback: WindowA 关闭窗口时的回调。 +**系统能力:** SystemCapability.WindowManager.WindowManager.Core + | 参数名 | 类型 | 必填 | 说明 | | -------------------- | ------------------------------- | ---- | ---------------- | | closingWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | 动画目标窗口。 | @@ -188,6 +204,8 @@ onScreenUnlock(finishCallback: [WindowAnimationFinishedCallback](#windowanimatio 屏幕解锁时的回调。 +**系统能力:** SystemCapability.WindowManager.WindowManager.Core + | 参数名 | 类型 | 必填 | 说明 | | -------------- | ------------------------------------------------------------ | ---- | ------------------ | | finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是 | 动画完成后的回调。 | @@ -211,6 +229,8 @@ onAnimationFinish():void 结束本次动画。 +**系统能力:** SystemCapability.WindowManager.WindowManager.Core + **示例:** ```js @@ -224,6 +244,8 @@ var controller = { ## WindowAnimationTarget 动画目标窗口,用来实现动画。 +**系统能力:** SystemCapability.WindowManager.WindowManager.Core + | 参数 | 类型 | 描述 | | ------- | ------ | ----------------------- | | bundleName | string | 动画目标窗口所对应的包名。 | @@ -233,6 +255,8 @@ var controller = { ## RRect 圆角矩形。 +**系统能力:** SystemCapability.WindowManager.WindowManager.Core + | 参数 | 类型 | 描述 | | ------- | ------ | ----------------------- | | left | number | 动画目标窗口左上角相对于屏幕的横坐标。 | -- GitLab From c5bffe846193b9dc48997ea492ae658b90f45f25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Fri, 22 Jul 2022 03:34:57 +0000 Subject: [PATCH 190/868] update CODEOWNERS. Signed-off-by: @ge-yafang --- CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODEOWNERS b/CODEOWNERS index ca2ba48baa..5b847d685a 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -200,7 +200,7 @@ zh-cn/application-dev/reference/apis/js-apis-screenshot.md @ge-yafang zh-cn/application-dev/reference/apis/js-apis-window.md @ge-yafang zh-cn/application-dev/reference/apis/js-apis-application-WindowExtensionAbility.md @ge-yafang zh-cn/application-dev/reference/apis/js-apis-screen.md @ge-yafang -zh-cn/application-dev/reference/apis/js-apis-application-WindowExtensionAbility.md @ge-yafang +zh-cn/application-dev/reference/apis/js-apis-windowAnimationManager.md @ge-yafang zh-cn/application-dev/reference/apis/js-apis-webgl.md @ge-yafang zh-cn/application-dev/reference/apis/js-apis-webgl2.md @ge-yafang zh-cn/application-dev/reference/apis/js-apis-audio.md @zengyawen -- GitLab From 25c7525c5ae6a1b8368cada03e0d83516ec5963a Mon Sep 17 00:00:00 2001 From: jiangminyang Date: Fri, 22 Jul 2022 11:43:55 +0800 Subject: [PATCH 191/868] fixed some issue for js-apis-camera.md Signed-off-by: jiangminyang --- en/application-dev/reference/apis/js-apis-camera.md | 4 ++++ zh-cn/application-dev/reference/apis/js-apis-camera.md | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/en/application-dev/reference/apis/js-apis-camera.md b/en/application-dev/reference/apis/js-apis-camera.md index 5606448e92..1298f29856 100644 --- a/en/application-dev/reference/apis/js-apis-camera.md +++ b/en/application-dev/reference/apis/js-apis-camera.md @@ -2231,6 +2231,10 @@ Captures a photo with the specified capture settings. This API uses an asynchron **Example** ```js +let settings:PhotoCaptureSetting = { + quality = 1, + rotation = 0 +} photoOutput.capture(settings, (err) => { if (err) { console.error('Failed to capture the photo ${err.message}'); diff --git a/zh-cn/application-dev/reference/apis/js-apis-camera.md b/zh-cn/application-dev/reference/apis/js-apis-camera.md index f61511d9aa..3a2b408ffd 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-camera.md +++ b/zh-cn/application-dev/reference/apis/js-apis-camera.md @@ -2231,6 +2231,10 @@ capture(setting: PhotoCaptureSetting, callback: AsyncCallback): void **示例:** ```js +let settings:PhotoCaptureSetting = { + quality = 1, + rotation = 0 +} photoOutput.capture(settings, (err) => { if (err) { console.error('Failed to capture the photo ${err.message}'); -- GitLab From f9fbffc649f6f99da36f6dfa56b5de2039dd0433 Mon Sep 17 00:00:00 2001 From: zhou-liting125 Date: Fri, 22 Jul 2022 11:50:08 +0800 Subject: [PATCH 192/868] Web documentation rectification Signed-off-by: zhou-liting125 --- .../arkui-ts/ts-basic-components-web.md | 927 ++++++++++-------- 1 file changed, 504 insertions(+), 423 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md index 8d4037a907..8c6cef7b3e 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md @@ -12,84 +12,27 @@ 无 -## MessageLevel枚举说明 - -| 名称 | 描述 | -| ----- | :--------- | -| Debug | 调试级别。 | -| Error | 错误级别。 | -| Info | 消息级别。 | -| Log | 日志级别。 | -| Warn | 警告级别。 | - -## RenderExitReason枚举说明 - -onRenderExited接口返回的渲染进程退出的具体原因。 - -| 名称 | 描述 | -| -------------------------- | ---------------------------- | -| ProcessAbnormalTermination | 渲染进程异常退出。 | -| ProcessWasKilled | 收到SIGKILL,或被手动终止。 | -| ProcessCrashed | 渲染进程崩溃退出,如段错误。 | -| ProcessOom | 程序内存不足。 | -| ProcessExitUnknown | 其他原因。 | - -## MixedMode枚举说明 - -| 名称 | 描述 | -| ---------- | ----------------------------------------------------------- | -| All | 允许加载HTTP和HTTPS混合内容。所有不安全的内容都可以被加载。 | -| Compatible | 混合内容兼容性模式,部分不安全的内容可能被加载。 | -| None | 不允许加载HTTP和HTTPS混合内容。 | - -## CacheMode枚举说明 -| 名称 | 描述 | -| ------- | ------------------------------------------------------------ | -| Default | 使用未过期的cache加载资源,如果cache中无该资源则从网络中获取。 | -| None | 加载资源使用cache,如果cache中无该资源则从网络中获取。 | -| Online | 加载资源不使用cache,全部从网络中获取。 | -| Only | 只从cache中加载资源。 | - -## FileSelectorMode枚举说明 -| 名称 | 描述 | -| -------------------- | -------------------- | -| FileOpenMode | 打开上传单个文件。 | -| FileOpenMultipleMode | 打开上传多个文件。 | -| FileOpenFolderMode | 打开上传文件夹模式。 | -| FileSaveMode | 文件保存模式。 | - - ## HitTestType枚举说明 - - | 名称 | 描述 | - | ------------- | ----------------------------------------- | - | EditText | 可编辑的区域。 | - | Email | 电子邮件地址。 | - | HttpAnchor | 超链接,其src为http。 | - | HttpAnchorImg | 带有超链接的图片,其中超链接的src为http。 | - | Img | HTML::img标签。 | - | Map | 地理地址。 | - | Unknown | 未知内容。 | - ## 接口 - Web(options: { src: string, controller?: WebController }) - 表1 options参数说明 + **参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ---------- | ------------------------------- | ---- | ------ | -------------- | | src | string | 是 | - | 网页资源地址。 | | controller | [WebController](#webcontroller) | 否 | - | 控制器。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } } @@ -109,20 +52,21 @@ domStorageAccess(domStorageAccess: boolean) 设置是否开启文档对象模型存储接口(DOM Storage API)权限,默认未开启。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | domStorageAccess | boolean | 是 | - | 设置是否开启文档对象模型存储接口(DOM Storage API)权限。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .domStorageAccess(true) } } @@ -135,20 +79,21 @@ fileAccess(fileAccess: boolean) 设置是否开启通过[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)访问应用中rawfile路径的文件, 默认启用。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | fileAccess | boolean | 是 | - | 设置是否开启通过[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)访问应用中rawfile路径的文件。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .fileAccess(true) } } @@ -161,20 +106,21 @@ fileFromUrlAccess(fileFromUrlAccess: boolean) 设置是否允许通过网页中的JavaScript脚本访问[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)的内容,默认未启用。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | fileFromUrlAccess | boolean | 是 | - | 设置是否允许通过网页中的JavaScript脚本访问[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)的内容。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .fileFromUrlAccess(true) } } @@ -187,20 +133,21 @@ imageAccess(imageAccess: boolean) 设置是否允许自动加载图片资源,默认允许。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | imageAccess | boolean | 是 | - | 设置是否允许自动加载图片资源。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .imageAccess(true) } } @@ -214,15 +161,16 @@ javaScriptProxy(javaScriptProxy: { object: object, name: string, methodList: Arr 注入JavaScript对象到window对象中,并在window对象中调用该对象的方法。所有参数不支持更新。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | object | object | 是 | - | 参与注册的对象。只能声明方法,不能声明属性。 | | name | string | 是 | - | 注册对象的名称,与window中调用的对象名一致。 | | methodList | Array\ | 是 | - | 参与注册的应用侧JavaScript对象的方法。| -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -240,7 +188,7 @@ javaScriptProxy(javaScriptProxy: { object: object, name: string, methodList: Arr } build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .javaScriptProxy({ obj: this.testObj, name: "objName", @@ -258,20 +206,21 @@ javaScriptAccess(javaScriptAccess: boolean) 设置是否允许执行JavaScript脚本,默认允许执行。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | javaScriptAccess | boolean | 是 | - | 是否允许执行JavaScript脚本。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .javaScriptAccess(true) } } @@ -284,13 +233,14 @@ mixedMode(mixedMode: MixedMode) 设置是否允许加载超文本传输协议(HTTP)和超文本传输安全协议(HTTPS)混合内容,默认不允许加载HTTP和HTTPS混合内容。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | mixedMode | [MixedMode](#mixedmode枚举说明) | 是 | - | 要设置的混合内容。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component @State mode:MixedMode = MixedMode.All; @@ -298,7 +248,7 @@ mixedMode(mixedMode: MixedMode) controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .mixedMode(mode) } } @@ -311,21 +261,22 @@ onlineImageAccess(onlineImageAccess: boolean) 设置是否允许从网络加载图片资源(通过HTTP和HTTPS访问的资源),默认允许访问。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | onlineImageAccess | boolean | 是 | - | 设置是否允许从网络加载图片资源。 | ## onlineImageAccess -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .onlineImageAccess(true) } } @@ -338,20 +289,21 @@ zoomAccess(zoomAccess: boolean) 设置是否支持手势进行缩放,默认允许执行缩放。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | zoomAccess | boolean | 是 | - | 设置是否支持手势进行缩放。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .zoomAccess(true) } } @@ -364,20 +316,21 @@ overviewModeAccess(overviewModeAccess: boolean) 设置是否使用概览模式加载网页,默认使用该方式。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | overviewModeAccess | boolean | 是 | - | 设置是否使用概览模式加载网页。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .overviewModeAccess(true) } } @@ -390,19 +343,20 @@ databaseAccess(databaseAccess: boolean) 设置是否开启数据库存储API权限,默认不开启。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | databaseAccess | boolean | 是 | - | 设置是否开启数据库存储API权限。 | - ```js + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .databaseAccess(true) } } @@ -415,13 +369,14 @@ cacheMode(cacheMode: CacheMode) 设置缓存模式。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | cacheMode | [CacheMode](#cachemode枚举说明) | 是 | - | 要设置的缓存模式。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component @State mode:CacheMode = CacheMode.None; @@ -429,7 +384,7 @@ cacheMode(cacheMode: CacheMode) controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .cacheMode(mode) } } @@ -442,13 +397,14 @@ textZoomAtio(textZoomAtio: number) 设置页面的文本缩放百分比,默认为100%。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | textZoomAtio | number | 是 | - | 要设置的页面的文本缩放百分比。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component @State atio:Number = 100; @@ -456,7 +412,7 @@ textZoomAtio(textZoomAtio: number) controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .textZoomAtio(atio) } } @@ -469,13 +425,14 @@ userAgent(userAgent: string) 设置用户代理。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | userAgent | string | 是 | - | 要设置的用户代理。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component @State userAgent:String = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'; @@ -483,7 +440,7 @@ userAgent(userAgent: string) controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .userAgent(userAgent) } } @@ -504,27 +461,28 @@ onAlert(callback: (event?: { url: string; message: string; result: JsResult }) = 网页触发alert()告警弹窗时触发回调。 -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | url | string | 当前显示弹窗所在网页的URL。| | message | string | 弹窗中显示的信息。 | | result | [JsResult](#jsresult) | 通知Web组件用户操作行为。| -- 事件返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | |----------|------| | boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .onAlert((event) => { AlertDialog.show({ title: 'title', @@ -552,27 +510,28 @@ onBeforeUnload(callback: (event?: { url: string; message: string; result: JsResu 刷新或关闭场景下,在即将离开当前页面时触发此回调。 -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | url | string | 当前显示弹窗所在网页的URL。| | message | string | 弹窗中显示的信息。 | | result | [JsResult](#jsresult) | 通知Web组件用户操作行为。| -- 事件返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | |----------|------| | boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .onBeforeUnload((event) => { console.log("event.url:" +url); console.log("event.message:" +message); @@ -589,27 +548,28 @@ onConfirm(callback: (event?: { url: string; message: string; result: JsResult }) 网页调用confirm()告警时触发此回调。 -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | url | string | 当前显示弹窗所在网页的URL。| | message | string | 弹窗中显示的信息。 | | result | [JsResult](#jsresult) | 通知Web组件用户操作行为。| -- 事件返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | |----------|------| | boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .onConfirm((event) => { console.log("event.url:" +url); console.log("event.message:" +message); @@ -637,27 +597,28 @@ onConfirm(callback: (event?: { url: string; message: string; result: JsResult }) onPrompt(callback: (event?: { url: string; message: string; value: string; result: JsResult }) => boolean) -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | url | string | 当前显示弹窗所在网页的URL。| | message | string | 弹窗中显示的信息。 | | result | [JsResult](#jsresult) | 通知Web组件用户操作行为。| -- 事件返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | |----------|------| | boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .onPrompt((event) => { console.log("url:" + event.url); console.log("message:" + event.message); @@ -675,25 +636,26 @@ onConsole(callback: (event?: { message: ConsoleMessage }) => boolean) 通知宿主应用JavaScript console消息。 -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | message | [ConsoleMessage](#consolemessage) | 触发的控制台信息。 | -- 事件返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | |----------|------| | boolean | 当返回true时,该条消息将不会再打印至控制台,反之仍会打印至控制台。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .onConsole((event) => { console.log('getMessage:' +message.getMessage()); console.log('getSourceId:' +message.getSourceId()); @@ -709,7 +671,7 @@ onConsole(callback: (event?: { message: ConsoleMessage }) => boolean) onDownloadStart(callback: (event?: { url: string, userAgent: string, contentDisposition: string, mimetype: string, contentLength: number }) => void) -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | url | string | 文件下载的URL。 | @@ -717,15 +679,16 @@ onDownloadStart(callback: (event?: { url: string, userAgent: string, contentDisp | mimetype | string | 服务器返回内容媒体类型(MIME)信息。 | | contentLength | contentLength | 服务器返回文件的长度。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .onDownloadStart((event)=>{ console.log('url:' +url); console.log('userAgent:' +userAgent); @@ -743,21 +706,22 @@ onErrorReceive(callback: (event?: { request: WebResourceRequest, error: WebResou 网页加载遇到错误时触发该回调。出于性能考虑,建议此回调中尽量执行简单逻辑。 -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | request | [WebResourceRequest](#webresourcerequest) | 网页请求的封装信息。 | | error | [WebResourceError](#webresourceerror) | 网页加载资源错误的封装信息 。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .onErrorReceive((event)=>{ console.log('getErrorInfo:' +error.getErrorInfo()); console.log('getErrorCode:' +error.getErrorCode()); @@ -782,21 +746,22 @@ onHttpErrorReceive(callback: (event?: { request: WebResourceRequest, response: W 网页加载资源遇到的HTTP错误(响应码>=400)时触发该回调。 -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | request | [WebResourceRequest](#webresourcerequest) | 网页请求的封装信息。 | | error | [WebResourceError](#webresourceerror) | 网页加载资源错误的封装信息 。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .onHttpErrorReceive((event)=>{ console.log('url:' +request.getRequestUrl()); console.log('isMainFrame:' +request.isMainFrame()); @@ -829,20 +794,21 @@ onPageBegin(callback: (event?: { url: string }) => void) 网页开始加载时触发该回调,且只在主frame触发,iframe或者frameset的内容加载时不会触发此回调。 -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | url | string | 页面的URL地址。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .onPageBegin((event) => { console.log('url:' +url); }) @@ -857,20 +823,21 @@ onPageEnd(callback: (event?: { url: string }) => void) 网页加载完成时触发该回调,且只在主frame触发。 -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | url | string | 页面的URL地址。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .onPageEnd((event) => { console.log('url:' +url); }) @@ -884,20 +851,21 @@ onProgressChange(callback: (event?: { newProgress: number }) => void) 网页加载进度变化时触发该回调。 -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | newProgress | number | 新的加载进度,取值范围为0到100的整数。 | - - 示例代码 - ```js + **示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .onProgressChange((event) => { console.log('newProgress:' +newProgress) }) @@ -911,20 +879,21 @@ onTitleReceive(callback: (event?: { title: string }) => void) 网页document标题更改时触发该回调。 -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | title | string | document标题内容。 | - - 示例代码 - ```js + **示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .onTitleReceive((event) => { console.log('title:' +title) }) @@ -938,21 +907,22 @@ onRefreshAccessedHistory(callback: (event?: { url: string, isRefreshed: boolean 加载网页页面完成时触发该回调,用于应用更新其访问的历史链接。 -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | url | string | 访问的url。 | | isRefreshed | boolean | true表示该页面是被重新加载的,false表示该页面是新加载的。 | - - 示例代码 - ```js + **示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .onRefreshAccessedHistory((event) => { console.log('url:' +url + ' isReload:' +isRefreshed); }) @@ -966,13 +936,14 @@ onRenderExited(callback: (event?: { renderExitReason: RenderExitReason }) => voi 应用渲染进程异常退出时触发该回调。 -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | renderExitReason | [RenderExitReason](#renderexitreason枚举说明) | 渲染进程进程异常退出的具体原因。 | - - 示例代码 - ```js + **示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -993,21 +964,22 @@ onShowFileSelector(callback: (event?: { result: FileSelectorResult, fileSelector 调用此函数以处理具有“文件”输入类型的HTML表单,以响应用户按下的“选择文件”按钮. -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | result | [FileSelectorResult](#fileselectorresultsup9sup) | 用于通知Web组件文件选择的结果。 | | fileSelector | [FileSelectorParam](#fileselectorparamsup9sup) | 文件选择器的相关信息。 | - - 示例代码 - ```js + **示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .onShowFileSelector((event) => { AlertDialog.show({ title:fileSelector.getTitle(), @@ -1038,25 +1010,26 @@ onUrlLoadIntercept(callback: (event?: { data:string | WebResourceRequest }) => b 当Web组件加载url之前触发该回调,用于是否阻止此次访问。 -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | data | string / [WebResourceRequest](#webresourcerequest) | url的相关信息。 | -- 事件返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | |----------|------| | boolean | 返回true表示阻止此次加载,否则允许此次加载。 | - - 示例代码 - ```js + **示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .onUrlLoadIntercept((event) => { console.log('onUrlLoadIntercept ' +data.toString()) return true; @@ -1071,25 +1044,26 @@ onInterceptRequest9+(callback: (event?: { request: WebResourceRequest}) => WebRe 当Web组件加载url之前触发该回调,用于拦截url并返回响应数据。 -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | request | [WebResourceRequest](#webresourcerequest) | url请求的相关信息。 | -- 事件返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | |----------|------| | [WebResourceResponse](#webresourceresponse) | 返回响应数据为空表示按原来方式加载,否则加载响应数据。 | - - 示例代码 - ```js + **示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { controller:WebController = new WebController(); build() { Column() { - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) .onInterceptRequest((e) => { console.log('url:' + e.request.getRequestUrl()); var head1:Header = { @@ -1121,20 +1095,21 @@ onHttpAuthRequest(callback: (event?: { handler: HttpAuthHandler, host: string, r 通知收到http auth认证请求。 -- event参数 +**参数:** | 参数名 | 参数类型 | 参数描述 | | ------ | -------- | ------------------------- | | handler | [HttpAuthHandler](#httpauthhandlersup9sup) | 通知Web组件用户操作行为。 | | host | string | HTTP身份验证凭据应用的主机。 | | realm | string | HTTP身份验证凭据应用的域。 | -- 事件返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | |----------|------| | boolean | 返回false表示此次认证失败,否则成功。 | - - 示例代码 - ```js + **示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -1182,8 +1157,8 @@ getLineNumber(): number 获取ConsoleMessage的行数。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | number | 返回ConsoleMessage的行数。 | @@ -1193,8 +1168,8 @@ getMessage(): string 获取ConsoleMessage的日志信息。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | string | 返回ConsoleMessage的日志信息。 | @@ -1204,8 +1179,8 @@ getMessageLevel(): MessageLevel 获取ConsoleMessage的信息级别。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | [MessageLevel](#messagelevel枚举说明) | 返回ConsoleMessage的信息级别。 | @@ -1215,8 +1190,8 @@ getSourceId(): string 获取网页源文件路径和名字。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | string | 返回网页源文件路径和名字。 | @@ -1242,7 +1217,7 @@ handlePromptConfirm(result: string): void 通知Web组件用户确认弹窗操作及对话框内容。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | result | string | 是 | - | 用户输入的对话框内容。 | @@ -1257,8 +1232,8 @@ getErrorCode(): number 获取加载资源的错误码。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | number | 返回加载资源的错误码。 | @@ -1268,8 +1243,8 @@ getErrorInfo(): string 获取加载资源的错误信息。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | string | 返回加载资源的错误信息。 | @@ -1283,8 +1258,8 @@ getResponseHeader() : Array\ 获取资源请求头信息。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | Array\<[Header](#header)\> | 返回资源请求头信息。 | @@ -1294,8 +1269,8 @@ getRequestUrl(): string 获取资源请求的URL信息。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | string | 返回资源请求的URL信息。 | @@ -1305,8 +1280,8 @@ isMainFrame(): boolean 判断资源请求是否为主frame。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | boolean | 返回资源请求是否为主frame。 | @@ -1316,8 +1291,8 @@ isRedirect(): boolean 判断资源请求是否被服务端重定向。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | boolean | 返回资源请求是否被服务端重定向。 | @@ -1327,8 +1302,8 @@ isRequestGesture(): boolean 获取资源请求是否与手势(如点击)相关联。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | boolean | 返回资源请求是否与手势(如点击)相关联。 | @@ -1336,7 +1311,7 @@ isRequestGesture(): boolean Web组件返回的请求/响应头对象。 -| 参数名称 | 参数类型 | 参数描述 | +| 名称 | 类型 | 描述 | | ----------- | -------- | -------------------- | | headerKey | string | 请求/响应头的key。 | | headerValue | string | 请求/响应头的value。 | @@ -1352,8 +1327,8 @@ getReasonMessage(): string 获取资源响应的状态码描述。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | string | 返回资源响应的状态码描述。 | @@ -1363,8 +1338,8 @@ getResponseCode(): number 获取资源响应的状态码。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | number | 返回资源响应的状态码。 | @@ -1374,8 +1349,8 @@ getResponseData(): string 获取资源响应数据。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | string | 返回资源响应数据。 | @@ -1385,8 +1360,8 @@ getResponseEncoding(): string 获取资源响应的编码。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | string | 返回资源响应的编码。 | @@ -1396,8 +1371,8 @@ getResponseHeader() : Array\ 获取资源响应头。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | Array\<[Header](#header)\> | 返回资源响应头。 | @@ -1407,8 +1382,8 @@ getResponseMimeType(): string 获取资源响应的媒体(MIME)类型。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | string | 返回资源响应的媒体(MIME)类型。 | @@ -1418,7 +1393,7 @@ setResponseData(data: string) 设置资源响应数据。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | data | string | 是 | - | 要设置的资源响应数据。 | @@ -1429,7 +1404,7 @@ setResponseEncoding(encoding: string) 设置资源响应的编码。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | encoding | string | 是 | - | 要设置的资源响应的编码。 | @@ -1440,7 +1415,7 @@ setResponseMimeType(mimeType: string) 设置资源响应的媒体(MIME)类型。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | mimeType | string | 是 | - | 要设置的资源响应的媒体(MIME)类型。 | @@ -1451,7 +1426,7 @@ setReasonMessage(reason: string) 设置资源响应的状态码描述。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | reason | string | 是 | - | 要设置的资源响应的状态码描述。 | @@ -1462,7 +1437,7 @@ setResponseHeader(header: Array\) 设置资源响应头。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | header | Array\<[Header](#header)\> | 是 | - | 要设置的资源响应头。 | @@ -1473,7 +1448,7 @@ setResponseCode(code: number) 设置资源响应的状态码。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | code | number | 是 | - | 要设置的资源响应的状态码。 | @@ -1488,7 +1463,7 @@ handleFileList(fileList: Array\): void 通知Web组件进行文件选择操作。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | fileList | Array\ | 是 | - | 需要进行操作的文件列表。 | @@ -1503,8 +1478,8 @@ getTitle(): string 获取文件选择器标题。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | string | 返回文件选择器标题。 | @@ -1514,8 +1489,8 @@ getMode(): FileSelectorMode 获取文件选择器的模式。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | [FileSelectorMode](#FileSelectorMode枚举说明) | 返回文件选择器的模式。 | @@ -1525,8 +1500,8 @@ getAcceptType(): Array\ 获取文件过滤类型。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | Array\ | 返回文件过滤类型。 | @@ -1536,8 +1511,8 @@ isCapture(): boolean 获取是否调用多媒体能力。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | boolean | 返回是否调用多媒体能力。 | @@ -1557,16 +1532,16 @@ confirm(userName: string, pwd: string): boolean 使用用户名和密码进行HTTP认证操作。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | -------- | -------- | ---- | ------ | -------------- | | userName | string | 是 | - | HTTP认证用户名。| | pwd | string | 是 | - | HTTP认证密码。 | -- 返回值 +**返回值:** - | 参数类型 | 说明 | + | 类型 | 说明 | | -------- | ------------------------------- | | boolean | 认证成功返回true,失败返回false。 | @@ -1576,9 +1551,9 @@ isHttpAuthInfoSaved(): boolean 通知Web组件用户使用服务器缓存的账号密码认证。 -- 返回值 +**返回值:** - | 参数类型 | 说明 | + | 类型 | 说明 | | -------- | ------------------------------------- | | boolean | 存在密码认证成功返回true,其他返回false。| @@ -1598,14 +1573,15 @@ accessBackward(): boolean 当前页面是否可后退,即当前页面是否有返回历史记录。 -- 返回值 +**返回值:** - | 参数类型 | 说明 | + | 类型 | 说明 | | -------- | ------------------------------------- | | boolean | 可以后退返回true,否则返回false。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -1617,7 +1593,7 @@ accessBackward(): boolean let result = this.controller.accessBackward(); console.log('result:' + result); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -1628,14 +1604,15 @@ accessForward(): boolean 当前页面是否可前进,即当前页面是否有前进历史记录。 -- 返回值 +**返回值:** - | 参数类型 | 说明 | + | 类型 | 说明 | | -------- | ------------------------------------- | | boolean | 可以前进返回true,否则返回false。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -1647,7 +1624,7 @@ accessForward(): boolean let result = this.controller.accessForward(); console.log('result:' + result); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -1658,20 +1635,21 @@ accessStep(step: number): boolean 当前页面是否可前进或者后退给定的step步。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------------------------ | | step | number | 是 | - | 要跳转的步数,正数代表前进,负数代表后退。 | -- 返回值 +**返回值:** - | 参数类型 | 说明 | + | 类型 | 说明 | | -------- | ------------------ | | boolean | 页面是否前进或后退 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -1684,7 +1662,7 @@ accessStep(step: number): boolean let result = this.controller.accessStep(this.steps); console.log('result:' + result); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -1695,8 +1673,9 @@ backward(): void 按照历史栈,后退一个页面。一般结合accessBackward一起使用。 -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -1707,7 +1686,7 @@ backward(): void .onClick(() => { this.controller.backward(); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -1718,8 +1697,9 @@ forward(): void 按照历史栈,前进一个页面。一般结合accessForward一起使用。 -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -1730,7 +1710,7 @@ forward(): void .onClick(() => { this.controller.forward(); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -1741,13 +1721,14 @@ backOrForward(step: number): void 按照历史栈,前进或者后退指定步长的页面,当历史栈中不存在对应步长的页面时,不会进行页面跳转。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ---- | ------ | ---- | ---- | ---------------------------------------- | | step | number | 是 |- |需要前进或后退的步长。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -1758,7 +1739,7 @@ backOrForward(step: number): void .onClick(() => { this.controller.backOrForward(); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -1769,14 +1750,15 @@ deleteJavaScriptRegister(name: string) 删除通过registerJavaScriptProxy注册到window上的指定name的应用侧JavaScript对象。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------------------------------------------ | | name | string | 是 | - | 注册对象的名称,可在网页侧JavaScript中通过此名称调用应用侧JavaScript对象。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -1788,7 +1770,7 @@ deleteJavaScriptRegister(name: string) .onClick(() => { this.controller.deleteJavaScriptRegister(this.name); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -1799,13 +1781,14 @@ getHitTest(): HitTestType 获取当前被点击区域的元素类型。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | ------------------ | | [HitTestType](#hittesttype枚举说明) | 被点击区域的元素类型。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -1817,7 +1800,7 @@ getHitTest(): HitTestType let hitType = this.controller.getHitTest(); console.log("hitType: " + hitType); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -1827,13 +1810,14 @@ getHitTestValue(): HitTestValue 获取当前被点击区域的元素信息。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | |----------|------| | [HitTestValue](#hittestvaluesup9sup) | 点击区域的元素信息。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -1846,7 +1830,7 @@ getHitTestValue(): HitTestValue console.log("hitType: " + hitValue.getType()); console.log("extra: " + hitValue.getExtra()); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -1856,13 +1840,14 @@ getWebId(): number 获取当前Web组件的索引值,用于多个Web组件的管理。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | |----------|------| | number | 当前Web组件的索引值。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -1874,7 +1859,7 @@ getWebId(): number let id = this.controller.getWebId(); console.log("id: " + id); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -1883,13 +1868,15 @@ getWebId(): number getTitle(): string 获取当前网页的标题。 -- 返回值 - | 参数类型 | 说明 | + +**返回值:** + | 类型 | 说明 | |----------|------| | string | 当前网页的标题。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -1901,7 +1888,7 @@ getTitle(): string let title = this.controller.getTitle(); console.log("title: " + title); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -1910,13 +1897,15 @@ getTitle(): string getPageHeight(): number 获取当前网页的页面高度。 -- 返回值 - | 参数类型 | 说明 | + +**返回值:** + | 类型 | 说明 | |----------|------| | number | 当前网页的页面高度。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -1928,7 +1917,7 @@ getPageHeight(): number let pageHeight = this.controller.getPageHeight(); console.log("pageHeight: " + pageHeight); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -1938,13 +1927,14 @@ getDefaultUserAgent(): string 获取当前默认用户代理。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | |----------|------| | string | 默认用户代理。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -1956,7 +1946,7 @@ getDefaultUserAgent(): string let userAgent = this.controller.getDefaultUserAgent(); console.log("userAgent: " + userAgent); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -1971,7 +1961,7 @@ baseUrl为空时,通过”data“协议加载指定的一段字符串。 当baseUrl为“http/https"协议时,编码后的data字符串将被Web组件以类似loadUrl的方式以非编码字符串处理。 -- options参数说明 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ---------- | -------- | ---- | ------ | ------------------------------------------------------------ | @@ -1981,8 +1971,9 @@ baseUrl为空时,通过”data“协议加载指定的一段字符串。 | baseUrl | string | 否 | - | 指定的一个URL路径(“http”/“https”/"data"协议),并由Web组件赋值给window.origin。 | | historyUrl | string | 否 | - | 历史记录URL。非空时,可被历史记录管理,实现前后后退功能。当baseUrl为空时,此属性无效。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -1997,7 +1988,7 @@ baseUrl为空时,通过”data“协议加载指定的一段字符串。 encoding: "UTF-8" }); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -2012,15 +2003,16 @@ loadUrl(options: { url: string | Resource, headers?: Array\ }) 而通过registerJavaScriptProxy注入的对象,在loadUrl导航到新的页面也会有效。 -- options参数说明 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------- | ---------------------------------- | ---- | ------ | --------------------- | | url | string | 是 | - | 需要加载的 URL。 | | headers | Array\<[Header](#header对象说明)\> | 否 | [] | URL的附加HTTP请求头。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -2031,7 +2023,7 @@ loadUrl(options: { url: string | Resource, headers?: Array\ }) .onClick(() => { this.controller.loadUrl('https://gitee.com/'); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -2042,8 +2034,9 @@ onActive(): void 调用此接口通知Web组件进入前台激活状态。 -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -2054,7 +2047,7 @@ onActive(): void .onClick(() => { this.controller.onActive(); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -2065,8 +2058,9 @@ onInactive(): void 调用此接口通知Web组件进入未激活状态。 -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -2077,7 +2071,7 @@ onInactive(): void .onClick(() => { this.controller.onInactive(); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -2087,13 +2081,14 @@ zoom(factor: number): void 调整当前网页的缩放比例。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 参数描述 | |--------|----------|------|---------| | factor | number | 是 | 基于当前网页所需调整的相对缩放比例,正值为放大,负值为缩小。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -2105,7 +2100,7 @@ zoom(factor: number): void .onClick(() => { this.controller.zoom(this.factor); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -2114,13 +2109,15 @@ zoom(factor: number): void zoomIn(): boolean 调用此接口将当前网页进行放大,比列20%。 -- 返回值 - | 参数类型 | 说明 | + +**返回值:** + | 类型 | 说明 | |----------|------| | boolean | 放大操作是否成功执行。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -2132,7 +2129,7 @@ zoomIn(): boolean let result = this.controller.zoomIn(); console.log("result: " + result); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -2141,13 +2138,15 @@ zoomIn(): boolean zoomOut(): boolean 调用此接口将当前网页进行缩小,比列20%。 -- 返回值 - | 参数类型 | 说明 | + +**返回值:** + | 类型 | 说明 | |----------|------| | boolean | 缩小操作是否成功执行。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -2159,7 +2158,7 @@ zoomOut(): boolean let result = this.controller.zoomOut(); console.log("result: " + result); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -2170,8 +2169,9 @@ refresh() 调用此接口通知Web组件刷新网页。 -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -2182,7 +2182,7 @@ refresh() .onClick(() => { this.controller.refresh(); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -2193,7 +2193,7 @@ registerJavaScriptProxy(options: { object: object, name: string, methodList: Arr 注入JavaScript对象到window对象中,并在window对象中调用该对象的方法。注册后,须调用refresh接口生效。 -- options 参数说明 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ---------- | --------------- | ---- | ------ | ------------------------------------------------------------ | @@ -2201,8 +2201,9 @@ registerJavaScriptProxy(options: { object: object, name: string, methodList: Arr | name | string | 是 | - | 注册对象的名称,与window中调用的对象名一致。注册后window对象可以通过此名字访问应用侧JavaScript对象。 | | methodList | Array\ | 是 | - | 参与注册的应用侧JavaScript对象的方法。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct Index { @@ -2266,15 +2267,16 @@ runJavaScript(options: { script: string, callback?: (result: string) => void }) 异步执行JavaScript脚本,并通过回调方式返回脚本执行的结果。runJavaScript需要在loadUrl完成后,比如onPageEnd中调用。 -- options参数说明 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | -------- | ------------------------ | ---- | ------ | ------------------------------------------------------------ | | script | string | 是 | - | JavaScript脚本。 | | callback | (result: string) => void | 否 | - | 回调执行JavaScript脚本结果。JavaScript脚本若执行失败或无返回值时,返回null。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -2322,8 +2324,9 @@ stop() 停止页面加载。 -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -2334,7 +2337,7 @@ stop() .onClick(() => { this.controller.stop(); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -2345,8 +2348,9 @@ clearHistory(): void 删除所有前进后退记录。 -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -2357,7 +2361,7 @@ clearHistory(): void .onClick(() => { this.controller.clearHistory(); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -2367,13 +2371,15 @@ clearHistory(): void getCookieManager(): WebCookie 获取web组件cookie管理对象。 -- 返回值 - | 参数类型 | 说明 | + +**返回值:** + | 类型 | 说明 | | --------- | -------------------------------------------------------- | | WebCookie | web组件cookie管理对象,参考[WebCookie](#webcookie)定义。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -2384,7 +2390,7 @@ getCookieManager(): WebCookie .onClick(() => { let cookieManager = this.controller.getCookieManager(); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -2396,8 +2402,9 @@ getCookieManager(): WebCookie getType(): HitTestType 获取当前被点击区域的元素类型。 -- 返回值 - | 参数类型 | 说明 | + +**返回值:** + | 类型 | 说明 | |----------|------| | [HitTestType](#hittesttype枚举说明) | 当前被点击区域的元素类型。 | @@ -2405,8 +2412,9 @@ getType(): HitTestType getExtra(): string 若被点击区域为图片或链接,则附加参数信息为其url地址。 -- 返回值 - | 参数类型 | 说明 | + +**返回值:** + | 类型 | 说明 | |----------|------| | string | 点击区域的附加参数信息。 | @@ -2419,19 +2427,20 @@ setCookie(url: string, value: string): boolean 设置cookie,该方法为同步方法。设置成功返回true,否则返回false。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | url | string | 是 | - | 要设置的cookie所属的url。 | | value | string | 是 | - | cookie的值。 | -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | -------------------- | | boolean | 设置cookie是否成功。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -2440,10 +2449,10 @@ setCookie(url: string, value: string): boolean Column() { Button('setCookie') .onClick(() => { - let result = this.controller.getCookieManager().setCookie("http://www.baidu.com", "a=b"); + let result = this.controller.getCookieManager().setCookie("http://www.example.com", "a=b"); console.log("result: " + result); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -2452,13 +2461,15 @@ setCookie(url: string, value: string): boolean saveCookieSync(): boolean 将当前存在内存中的cookie同步到磁盘中,该方法为同步方法。 -- 返回值 - | 参数类型 | 说明 | + +**返回值:** + | 类型 | 说明 | | -------- | ---------------------------------- | | boolean | 同步内存cookie到磁盘操作是否成功。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets @Entry @Component struct WebComponent { @@ -2470,7 +2481,7 @@ saveCookieSync(): boolean let result = this.controller.getCookieManager().saveCookieSync(); console.log("result: " + result); }) - Web({src:'www.baidu.com', controller:this.controller}) + Web({src:'www.example.com', controller:this.controller}) } } ``` @@ -2484,13 +2495,14 @@ static existHttpAuthCredentials(): boolean 判断是否存在任何已保存的HTTP身份验证凭据,该方法为同步方法。存在返回true,不存在返回false。 -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | -------- | ----------------------------------- | | boolean | 是否存在任何已保存的HTTP身份验证凭据。存在返回true,不存在返回false | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets import web from '@ohos.web'; let result = web.WebDataBase.existHttpAuthCredentials(); console.log('result: ' + result); @@ -2502,8 +2514,9 @@ static deleteHttpAuthCredentials(): void 清除所有已保存的HTTP身份验证凭据,该方法为同步方法。 -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets import web from '@ohos.web'; web.WebDataBase.deleteHttpAuthCredentials(); ``` @@ -2514,19 +2527,20 @@ static getHttpAuthCredentials(host: string, realm: string): Array\ 检索给定主机和域的HTTP身份验证凭据,该方法为同步方法。检索成功返回一个包含用户名和密码的组数,检索不成功返回空数组。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | -------------------------- | | host | string | 是 | - | HTTP身份验证凭据应用的主机。 | | realm | string | 是 | - | HTTP身份验证凭据应用的域。 | -- 返回值 - | 参数类型 | 说明 | +**返回值:** + | 类型 | 说明 | | ---------------- | --------------------------------------------- | | Array\ | 包含用户名和密码的组数,检索失败返回空数组。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets import web from '@ohos.web'; host: string = "www.spincast.org"; realm: string = "protected example"; @@ -2544,7 +2558,7 @@ static saveHttpAuthCredentials(host: string, realm: string, username: string, pa 保存给定主机和域的HTTP身份验证凭据,该方法为同步方法。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | -------- | -------- | ---- | ------ | -------------------------- | @@ -2553,8 +2567,9 @@ static saveHttpAuthCredentials(host: string, realm: string, username: string, pa | username | string | 是 | - | 用户名。 | | password | string | 是 | - | 密码。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets import web from '@ohos.web'; host: string = "www.spincast.org"; realm: string = "protected example"; @@ -2568,8 +2583,9 @@ static deleteAllData(): void 清除Web SQL数据库当前使用的所有存储。 -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets import web from '@ohos.web'; web.WebStorage.deleteAllData(); ``` @@ -2578,13 +2594,14 @@ static deleteAllData(): void static deleteOrigin(origin : string): void 清除指定源所使用的存储。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 说明 | |---------|---------|-----|-----| | origin | string | 是 | 指定源的字符串索引。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets import web from '@ohos.web'; origin: string = "origin"; web.WebStorage.deleteOrigin(origin); @@ -2594,13 +2611,14 @@ static deleteOrigin(origin : string): void static getOrigins(callback: AsyncCallback>) : void 以回调方式异步获取当前使用Web SQL数据库的所有源的信息。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 说明 | |---------|---------|-----|----| | callback | AsyncCallback> | 是 | 以数组方式返回源的信息,信息内容参考WebStorageOrigin。| -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets import web from '@ohos.web'; web.WebStorage.getOrigins((error, origins) => { if (error) { @@ -2618,13 +2636,14 @@ static getOrigins(callback: AsyncCallback> 以Promise方式异步获取当前使用Web SQL数据库的所有源的信息。 -- 返回值 +**返回值:** | 类型 | 说明 | |------|------| | Promise> | Promise实例,用于获取当前所有源的信息,信息内容参考WebStorageOrigin。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets import web from '@ohos.web'; web.WebStorage.getOrigins() .then(origins => { @@ -2643,14 +2662,15 @@ static getOrigins() : Promise) : void 使用callback回调异步获取指定源的Web SQL数据库的存储配额,配额以字节为单位。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 说明 | |----------|-----------|------|------| | origin | string | 是 | 指定源的字符串索引 | | callback | AsyncCallback | 是 | 指定源的存储配额。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets import web from '@ohos.web'; origin: string = "origin"; web.WebStorage.getOriginQuota(origin, (error, quota) => { @@ -2666,18 +2686,19 @@ static getOriginQuota(origin : string, callback : AsyncCallback) : void static getOriginQuota(origin : string) : Promise 以Promise方式异步获取指定源的Web SQL数据库的存储配额,配额以字节为单位。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 说明 | |----------|---------|------|-------| | origin | string | 是 | 指定源的字符串索引。 | -- 返回值 +**返回值:** | 类型 | 说明 | |------|------| | Promise | Promise实例,用于获取指定源的存储配额。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets import web from '@ohos.web'; web.WebStorage.getOriginQuota() .then(quota => { @@ -2692,14 +2713,15 @@ static getOriginQuota(origin : string) : Promise static getOriginUsage(origin : string, callback : AsyncCallback) : void 以回调方式异步获取指定源的Web SQL数据库的存储量,存储量以字节为单位。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 说明 | |----------|----------|------|------| | origin | string | 是 | 指定源的字符串索引。 | | callback | AsyncCallback | 是 | 指定源的存储量。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets import web from '@ohos.web'; origin: string = "origin"; web.WebStorage.getOriginUsage(origin, (error, usage) => { @@ -2715,18 +2737,19 @@ static getOriginUsage(origin : string, callback : AsyncCallback) : void static getOriginUsage(origin : string) : Promise 以Promise方式异步获取指定源的Web SQL数据库的存储量,存储量以字节为单位。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 说明 | |----------|----------|------|------| | origin | string | 是 | 指定源的字符串索引。 | -- 返回值 +**返回值:** | 类型 | 说明 | |------|------| | Promise | Promise实例,用于获取指定源的存储量。 | -- 示例代码 - ```js +**示例代码:** + ```ts + // xxx.ets import web from '@ohos.web'; web.WebStorage.getOriginUsage() .then(usage => { @@ -2739,9 +2762,67 @@ static getOriginUsage(origin : string) : Promise ## WebStorageOrigin9+ 提供Web SQL数据库的使用信息。 -- 参数 +**参数:** | 参数名 | 参数类型 | 必填 | 说明 | |----------|----------|------|------| | origin | string | 是 | 指定源的字符串索引。 | | usage | number | 是 | 指定源的存储量。 | | quota | number | 是 | 指定源的存储配额。 | + +## MessageLevel枚举说明 + +| 名称 | 描述 | +| ----- | :--------- | +| Debug | 调试级别。 | +| Error | 错误级别。 | +| Info | 消息级别。 | +| Log | 日志级别。 | +| Warn | 警告级别。 | + +## RenderExitReason枚举说明 + +onRenderExited接口返回的渲染进程退出的具体原因。 + +| 名称 | 描述 | +| -------------------------- | ---------------------------- | +| ProcessAbnormalTermination | 渲染进程异常退出。 | +| ProcessWasKilled | 收到SIGKILL,或被手动终止。 | +| ProcessCrashed | 渲染进程崩溃退出,如段错误。 | +| ProcessOom | 程序内存不足。 | +| ProcessExitUnknown | 其他原因。 | + +## MixedMode枚举说明 + +| 名称 | 描述 | +| ---------- | ----------------------------------------------------------- | +| All | 允许加载HTTP和HTTPS混合内容。所有不安全的内容都可以被加载。 | +| Compatible | 混合内容兼容性模式,部分不安全的内容可能被加载。 | +| None | 不允许加载HTTP和HTTPS混合内容。 | + +## CacheMode枚举说明 +| 名称 | 描述 | +| ------- | ------------------------------------------------------------ | +| Default | 使用未过期的cache加载资源,如果cache中无该资源则从网络中获取。 | +| None | 加载资源使用cache,如果cache中无该资源则从网络中获取。 | +| Online | 加载资源不使用cache,全部从网络中获取。 | +| Only | 只从cache中加载资源。 | + +## FileSelectorMode枚举说明 +| 名称 | 描述 | +| -------------------- | -------------------- | +| FileOpenMode | 打开上传单个文件。 | +| FileOpenMultipleMode | 打开上传多个文件。 | +| FileOpenFolderMode | 打开上传文件夹模式。 | +| FileSaveMode | 文件保存模式。 | + + ## HitTestType枚举说明 + + | 名称 | 描述 | + | ------------- | ----------------------------------------- | + | EditText | 可编辑的区域。 | + | Email | 电子邮件地址。 | + | HttpAnchor | 超链接,其src为http。 | + | HttpAnchorImg | 带有超链接的图片,其中超链接的src为http。 | + | Img | HTML::img标签。 | + | Map | 地理地址。 | + | Unknown | 未知内容。 | \ No newline at end of file -- GitLab From bdfda0e5d7872a49a241369411b0b297179c5af7 Mon Sep 17 00:00:00 2001 From: LiAn Date: Fri, 22 Jul 2022 04:04:49 +0000 Subject: [PATCH 193/868] update zh-cn/application-dev/reference/arkui-ts/ts-container-swiper.md. Signed-off-by: LiAn --- .../application-dev/reference/arkui-ts/ts-container-swiper.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-swiper.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-swiper.md index 7c612c94cb..178f2166c5 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-container-swiper.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-swiper.md @@ -45,7 +45,7 @@ Swiper(value:{controller?: SwiperController}) | indicatorStyle8+ | {
left?: Length,
top?: Length,
right?: Length,
bottom?: Length,
size?: Length,
color?: Color,
selectedColor?: Color
} | - | 设置indicator样式:
- left: 设置导航点距离Swiper组件左边的距离。
- top: 设置导航点距离Swiper组件顶部的距离。
- right: 设置导航点距离Swiper组件右边的距离。
- bottom: 设置导航点距离Swiper组件底部的距离。
- size: 设置导航点的直径。
- color: 设置导航点的颜色。
- selectedColor: 设置选中的导航点的颜色。 | -### SwiperController +## SwiperController Swiper容器组件的控制器,可以将此对象绑定至Swiper组件,然后通过它控制翻页。 @@ -96,7 +96,7 @@ struct SwiperExample { private swiperController: SwiperController = new SwiperController() private data: MyDataSource = new MyDataSource([]) - private aboutToAppear(): void { + aboutToAppear(): void { let list = [] for (var i = 1; i <= 10; i++) { list.push(i.toString()); -- GitLab From c2a5fdd6ac33299d1a77867935efeeb13270376d Mon Sep 17 00:00:00 2001 From: jiao_yanlin Date: Fri, 22 Jul 2022 14:39:08 +0800 Subject: [PATCH 194/868] update for device Descriptors ,focus type and Sample format Signed-off-by: jiao_yanlin --- .../application-dev/reference/apis/js-apis-audio.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-audio.md b/zh-cn/application-dev/reference/apis/js-apis-audio.md index 23487e806e..205a299429 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-audio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-audio.md @@ -252,7 +252,7 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => { 枚举,焦点模型。 -**系统能力:** SystemCapability.Multimedia.Audio.InterruptMode +**系统能力:** SystemCapability.Multimedia.Audio.Core | 名称 | 默认值 | 描述 | | ---------------------------- | ------ | ---------- | @@ -336,9 +336,9 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => { | SAMPLE_FORMAT_INVALID | -1 | 无效格式。 | | SAMPLE_FORMAT_U8 | 0 | 无符号8位整数。 | | SAMPLE_FORMAT_S16LE | 1 | 带符号的16位整数,小尾数。 | -| SAMPLE_FORMAT_S24LE | 2 | 带符号的24位整数,小尾数。 | -| SAMPLE_FORMAT_S32LE | 3 | 带符号的32位整数,小尾数。 | -| SAMPLE_FORMAT_F32LE | 4 | 带符号的32位整数,小尾数。 | +| SAMPLE_FORMAT_S24LE | 2 | 带符号的24位整数,小尾数。
由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。| +| SAMPLE_FORMAT_S32LE | 3 | 带符号的32位整数,小尾数。
由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。| +| SAMPLE_FORMAT_F32LE | 4 | 带符号的32位整数,小尾数。
由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。| ## AudioChannel8+ @@ -2640,7 +2640,7 @@ audioRenderer.getRenderRate().then((renderRate) => { ``` ### setInterruptMode9+ -setInterruptMode(interruptMode: InterruptMode): Promise<void> +setInterruptMode(mode: InterruptMode): Promise<void> 设置应用的焦点模型。使用Promise异步回调。 @@ -2668,7 +2668,7 @@ audioManager.setInterruptMode(audio.InterruptMode.SHARE_MODE).then(() => { ``` ### setInterruptMode9+ -setInterruptMode(interruptMode: InterruptMode, callback: Callback\): void +setInterruptMode(mode: InterruptMode, callback: Callback\): void 设置应用的焦点模型。使用Callback回调返回执行结果。 -- GitLab From 16d8142fed65fbe7c58b5c5ebf676abe003cb2b3 Mon Sep 17 00:00:00 2001 From: zhou-liting125 Date: Fri, 22 Jul 2022 14:48:00 +0800 Subject: [PATCH 195/868] Web documentation rectification Signed-off-by: zhou-liting125 --- .../arkui-ts/ts-basic-components-web.md | 170 +++++++++--------- 1 file changed, 84 insertions(+), 86 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md index 8c6cef7b3e..16b1e042e9 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md @@ -17,13 +17,12 @@ - Web(options: { src: string, controller?: WebController }) **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ---------- | ------------------------------- | ---- | ------ | -------------- | | src | string | 是 | - | 网页资源地址。 | | controller | [WebController](#webcontroller) | 否 | - | 控制器。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -57,7 +56,7 @@ domStorageAccess(domStorageAccess: boolean) | ------ | -------- | ---- | ------ | ------------------------- | | domStorageAccess | boolean | 是 | - | 设置是否开启文档对象模型存储接口(DOM Storage API)权限。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -84,7 +83,7 @@ fileAccess(fileAccess: boolean) | ------ | -------- | ---- | ------ | ------------------------- | | fileAccess | boolean | 是 | - | 设置是否开启通过[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)访问应用中rawfile路径的文件。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -111,7 +110,7 @@ fileFromUrlAccess(fileFromUrlAccess: boolean) | ------ | -------- | ---- | ------ | ------------------------- | | fileFromUrlAccess | boolean | 是 | - | 设置是否允许通过网页中的JavaScript脚本访问[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)的内容。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -138,7 +137,7 @@ imageAccess(imageAccess: boolean) | ------ | -------- | ---- | ------ | ------------------------- | | imageAccess | boolean | 是 | - | 设置是否允许自动加载图片资源。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -168,7 +167,7 @@ javaScriptProxy(javaScriptProxy: { object: object, name: string, methodList: Arr | name | string | 是 | - | 注册对象的名称,与window中调用的对象名一致。 | | methodList | Array\ | 是 | - | 参与注册的应用侧JavaScript对象的方法。| -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -211,7 +210,7 @@ javaScriptAccess(javaScriptAccess: boolean) | ------ | -------- | ---- | ------ | ------------------------- | | javaScriptAccess | boolean | 是 | - | 是否允许执行JavaScript脚本。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -238,7 +237,7 @@ mixedMode(mixedMode: MixedMode) | ------ | -------- | ---- | ------ | ------------------------- | | mixedMode | [MixedMode](#mixedmode枚举说明) | 是 | - | 要设置的混合内容。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -267,7 +266,7 @@ onlineImageAccess(onlineImageAccess: boolean) | onlineImageAccess | boolean | 是 | - | 设置是否允许从网络加载图片资源。 | ## onlineImageAccess -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -294,7 +293,7 @@ zoomAccess(zoomAccess: boolean) | ------ | -------- | ---- | ------ | ------------------------- | | zoomAccess | boolean | 是 | - | 设置是否支持手势进行缩放。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -321,7 +320,7 @@ overviewModeAccess(overviewModeAccess: boolean) | ------ | -------- | ---- | ------ | ------------------------- | | overviewModeAccess | boolean | 是 | - | 设置是否使用概览模式加载网页。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -374,7 +373,7 @@ cacheMode(cacheMode: CacheMode) | ------ | -------- | ---- | ------ | ------------------------- | | cacheMode | [CacheMode](#cachemode枚举说明) | 是 | - | 要设置的缓存模式。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -402,7 +401,7 @@ textZoomAtio(textZoomAtio: number) | ------ | -------- | ---- | ------ | ------------------------- | | textZoomAtio | number | 是 | - | 要设置的页面的文本缩放百分比。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -430,7 +429,7 @@ userAgent(userAgent: string) | ------ | -------- | ---- | ------ | ------------------------- | | userAgent | string | 是 | - | 要设置的用户代理。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -473,7 +472,7 @@ onAlert(callback: (event?: { url: string; message: string; result: JsResult }) = |----------|------| | boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -522,7 +521,7 @@ onBeforeUnload(callback: (event?: { url: string; message: string; result: JsResu |----------|------| | boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -560,7 +559,7 @@ onConfirm(callback: (event?: { url: string; message: string; result: JsResult }) |----------|------| | boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -609,7 +608,7 @@ onPrompt(callback: (event?: { url: string; message: string; value: string; resul |----------|------| | boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -646,7 +645,7 @@ onConsole(callback: (event?: { message: ConsoleMessage }) => boolean) |----------|------| | boolean | 当返回true时,该条消息将不会再打印至控制台,反之仍会打印至控制台。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -679,7 +678,7 @@ onDownloadStart(callback: (event?: { url: string, userAgent: string, contentDisp | mimetype | string | 服务器返回内容媒体类型(MIME)信息。 | | contentLength | contentLength | 服务器返回文件的长度。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -712,7 +711,7 @@ onErrorReceive(callback: (event?: { request: WebResourceRequest, error: WebResou | request | [WebResourceRequest](#webresourcerequest) | 网页请求的封装信息。 | | error | [WebResourceError](#webresourceerror) | 网页加载资源错误的封装信息 。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -752,7 +751,7 @@ onHttpErrorReceive(callback: (event?: { request: WebResourceRequest, response: W | request | [WebResourceRequest](#webresourcerequest) | 网页请求的封装信息。 | | error | [WebResourceError](#webresourceerror) | 网页加载资源错误的封装信息 。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -799,7 +798,7 @@ onPageBegin(callback: (event?: { url: string }) => void) | ------ | -------- | ------------------------- | | url | string | 页面的URL地址。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -828,7 +827,7 @@ onPageEnd(callback: (event?: { url: string }) => void) | ------ | -------- | ------------------------- | | url | string | 页面的URL地址。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -856,7 +855,7 @@ onProgressChange(callback: (event?: { newProgress: number }) => void) | ------ | -------- | ------------------------- | | newProgress | number | 新的加载进度,取值范围为0到100的整数。 | - **示例代码:** + **示例:** ```ts // xxx.ets @Entry @@ -884,7 +883,7 @@ onTitleReceive(callback: (event?: { title: string }) => void) | ------ | -------- | ------------------------- | | title | string | document标题内容。 | - **示例代码:** + **示例:** ```ts // xxx.ets @Entry @@ -913,7 +912,7 @@ onRefreshAccessedHistory(callback: (event?: { url: string, isRefreshed: boolean | url | string | 访问的url。 | | isRefreshed | boolean | true表示该页面是被重新加载的,false表示该页面是新加载的。 | - **示例代码:** + **示例:** ```ts // xxx.ets @Entry @@ -941,7 +940,7 @@ onRenderExited(callback: (event?: { renderExitReason: RenderExitReason }) => voi | ------ | -------- | ------------------------- | | renderExitReason | [RenderExitReason](#renderexitreason枚举说明) | 渲染进程进程异常退出的具体原因。 | - **示例代码:** + **示例:** ```ts // xxx.ets @Entry @@ -970,7 +969,7 @@ onShowFileSelector(callback: (event?: { result: FileSelectorResult, fileSelector | result | [FileSelectorResult](#fileselectorresultsup9sup) | 用于通知Web组件文件选择的结果。 | | fileSelector | [FileSelectorParam](#fileselectorparamsup9sup) | 文件选择器的相关信息。 | - **示例代码:** + **示例:** ```ts // xxx.ets @Entry @@ -1020,7 +1019,7 @@ onUrlLoadIntercept(callback: (event?: { data:string | WebResourceRequest }) => b |----------|------| | boolean | 返回true表示阻止此次加载,否则允许此次加载。 | - **示例代码:** + **示例:** ```ts // xxx.ets @Entry @@ -1054,7 +1053,7 @@ onInterceptRequest9+(callback: (event?: { request: WebResourceRequest}) => WebRe |----------|------| | [WebResourceResponse](#webresourceresponse) | 返回响应数据为空表示按原来方式加载,否则加载响应数据。 | - **示例代码:** + **示例:** ```ts // xxx.ets @Entry @@ -1107,7 +1106,7 @@ onHttpAuthRequest(callback: (event?: { handler: HttpAuthHandler, host: string, r |----------|------| | boolean | 返回false表示此次认证失败,否则成功。 | - **示例代码:** + **示例:** ```ts // xxx.ets @Entry @@ -1540,7 +1539,6 @@ confirm(userName: string, pwd: string): boolean | pwd | string | 是 | - | HTTP认证密码。 | **返回值:** - | 类型 | 说明 | | -------- | ------------------------------- | | boolean | 认证成功返回true,失败返回false。 | @@ -1552,7 +1550,6 @@ isHttpAuthInfoSaved(): boolean 通知Web组件用户使用服务器缓存的账号密码认证。 **返回值:** - | 类型 | 说明 | | -------- | ------------------------------------- | | boolean | 存在密码认证成功返回true,其他返回false。| @@ -1574,12 +1571,11 @@ accessBackward(): boolean 当前页面是否可后退,即当前页面是否有返回历史记录。 **返回值:** - | 类型 | 说明 | | -------- | ------------------------------------- | | boolean | 可以后退返回true,否则返回false。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -1605,12 +1601,11 @@ accessForward(): boolean 当前页面是否可前进,即当前页面是否有前进历史记录。 **返回值:** - | 类型 | 说明 | | -------- | ------------------------------------- | | boolean | 可以前进返回true,否则返回false。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -1642,12 +1637,11 @@ accessStep(step: number): boolean | step | number | 是 | - | 要跳转的步数,正数代表前进,负数代表后退。 | **返回值:** - | 类型 | 说明 | | -------- | ------------------ | | boolean | 页面是否前进或后退 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -1673,7 +1667,7 @@ backward(): void 按照历史栈,后退一个页面。一般结合accessBackward一起使用。 -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -1697,7 +1691,7 @@ forward(): void 按照历史栈,前进一个页面。一般结合accessForward一起使用。 -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -1726,7 +1720,7 @@ backOrForward(step: number): void | ---- | ------ | ---- | ---- | ---------------------------------------- | | step | number | 是 |- |需要前进或后退的步长。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -1751,12 +1745,11 @@ deleteJavaScriptRegister(name: string) 删除通过registerJavaScriptProxy注册到window上的指定name的应用侧JavaScript对象。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------------------------------------------ | | name | string | 是 | - | 注册对象的名称,可在网页侧JavaScript中通过此名称调用应用侧JavaScript对象。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -1786,7 +1779,7 @@ getHitTest(): HitTestType | -------- | ------------------ | | [HitTestType](#hittesttype枚举说明) | 被点击区域的元素类型。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -1815,7 +1808,7 @@ getHitTestValue(): HitTestValue |----------|------| | [HitTestValue](#hittestvaluesup9sup) | 点击区域的元素信息。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -1845,7 +1838,7 @@ getWebId(): number |----------|------| | number | 当前Web组件的索引值。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -1874,7 +1867,7 @@ getTitle(): string |----------|------| | string | 当前网页的标题。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -1903,7 +1896,7 @@ getPageHeight(): number |----------|------| | number | 当前网页的页面高度。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -1932,7 +1925,7 @@ getDefaultUserAgent(): string |----------|------| | string | 默认用户代理。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -1962,7 +1955,6 @@ baseUrl为空时,通过”data“协议加载指定的一段字符串。 当baseUrl为“http/https"协议时,编码后的data字符串将被Web组件以类似loadUrl的方式以非编码字符串处理。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ---------- | -------- | ---- | ------ | ------------------------------------------------------------ | | data | string | 是 | - | 按照”Base64“或者”URL"编码后的一段字符串。 | @@ -1971,7 +1963,7 @@ baseUrl为空时,通过”data“协议加载指定的一段字符串。 | baseUrl | string | 否 | - | 指定的一个URL路径(“http”/“https”/"data"协议),并由Web组件赋值给window.origin。 | | historyUrl | string | 否 | - | 历史记录URL。非空时,可被历史记录管理,实现前后后退功能。当baseUrl为空时,此属性无效。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -2004,13 +1996,12 @@ loadUrl(options: { url: string | Resource, headers?: Array\ }) 而通过registerJavaScriptProxy注入的对象,在loadUrl导航到新的页面也会有效。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------- | ---------------------------------- | ---- | ------ | --------------------- | | url | string | 是 | - | 需要加载的 URL。 | | headers | Array\<[Header](#header对象说明)\> | 否 | [] | URL的附加HTTP请求头。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -2034,7 +2025,7 @@ onActive(): void 调用此接口通知Web组件进入前台激活状态。 -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -2058,7 +2049,7 @@ onInactive(): void 调用此接口通知Web组件进入未激活状态。 -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -2086,7 +2077,7 @@ zoom(factor: number): void |--------|----------|------|---------| | factor | number | 是 | 基于当前网页所需调整的相对缩放比例,正值为放大,负值为缩小。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -2115,7 +2106,7 @@ zoomIn(): boolean |----------|------| | boolean | 放大操作是否成功执行。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -2144,7 +2135,7 @@ zoomOut(): boolean |----------|------| | boolean | 缩小操作是否成功执行。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -2169,7 +2160,7 @@ refresh() 调用此接口通知Web组件刷新网页。 -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -2194,14 +2185,13 @@ registerJavaScriptProxy(options: { object: object, name: string, methodList: Arr 注入JavaScript对象到window对象中,并在window对象中调用该对象的方法。注册后,须调用refresh接口生效。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ---------- | --------------- | ---- | ------ | ------------------------------------------------------------ | | object | object | 是 | - | 参与注册的应用侧JavaScript对象。只能声明方法,不能声明属性 。其中方法的参数和返回类型只能为string,number,boolean | | name | string | 是 | - | 注册对象的名称,与window中调用的对象名一致。注册后window对象可以通过此名字访问应用侧JavaScript对象。 | | methodList | Array\ | 是 | - | 参与注册的应用侧JavaScript对象的方法。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -2268,13 +2258,12 @@ runJavaScript(options: { script: string, callback?: (result: string) => void }) 异步执行JavaScript脚本,并通过回调方式返回脚本执行的结果。runJavaScript需要在loadUrl完成后,比如onPageEnd中调用。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | -------- | ------------------------ | ---- | ------ | ------------------------------------------------------------ | | script | string | 是 | - | JavaScript脚本。 | | callback | (result: string) => void | 否 | - | 回调执行JavaScript脚本结果。JavaScript脚本若执行失败或无返回值时,返回null。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -2324,7 +2313,7 @@ stop() 停止页面加载。 -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -2348,7 +2337,7 @@ clearHistory(): void 删除所有前进后退记录。 -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -2377,7 +2366,7 @@ getCookieManager(): WebCookie | --------- | -------------------------------------------------------- | | WebCookie | web组件cookie管理对象,参考[WebCookie](#webcookie)定义。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -2428,17 +2417,17 @@ setCookie(url: string, value: string): boolean 设置cookie,该方法为同步方法。设置成功返回true,否则返回false。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | ------------------------- | | url | string | 是 | - | 要设置的cookie所属的url。 | | value | string | 是 | - | cookie的值。 | + **返回值:** | 类型 | 说明 | | -------- | -------------------- | | boolean | 设置cookie是否成功。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -2467,7 +2456,7 @@ saveCookieSync(): boolean | -------- | ---------------------------------- | | boolean | 同步内存cookie到磁盘操作是否成功。 | -**示例代码:** +**示例:** ```ts // xxx.ets @Entry @@ -2500,7 +2489,7 @@ static existHttpAuthCredentials(): boolean | -------- | ----------------------------------- | | boolean | 是否存在任何已保存的HTTP身份验证凭据。存在返回true,不存在返回false | -**示例代码:** +**示例:** ```ts // xxx.ets import web from '@ohos.web'; @@ -2514,7 +2503,7 @@ static deleteHttpAuthCredentials(): void 清除所有已保存的HTTP身份验证凭据,该方法为同步方法。 -**示例代码:** +**示例:** ```ts // xxx.ets import web from '@ohos.web'; @@ -2528,17 +2517,17 @@ static getHttpAuthCredentials(host: string, realm: string): Array\ 检索给定主机和域的HTTP身份验证凭据,该方法为同步方法。检索成功返回一个包含用户名和密码的组数,检索不成功返回空数组。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | ------ | -------- | ---- | ------ | -------------------------- | | host | string | 是 | - | HTTP身份验证凭据应用的主机。 | | realm | string | 是 | - | HTTP身份验证凭据应用的域。 | + **返回值:** | 类型 | 说明 | | ---------------- | --------------------------------------------- | | Array\ | 包含用户名和密码的组数,检索失败返回空数组。 | -**示例代码:** +**示例:** ```ts // xxx.ets import web from '@ohos.web'; @@ -2559,7 +2548,6 @@ static saveHttpAuthCredentials(host: string, realm: string, username: string, pa 保存给定主机和域的HTTP身份验证凭据,该方法为同步方法。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | -------- | -------- | ---- | ------ | -------------------------- | | host | string | 是 | - | HTTP身份验证凭据应用的主机。 | @@ -2567,7 +2555,7 @@ static saveHttpAuthCredentials(host: string, realm: string, username: string, pa | username | string | 是 | - | 用户名。 | | password | string | 是 | - | 密码。 | -**示例代码:** +**示例:** ```ts // xxx.ets import web from '@ohos.web'; @@ -2583,7 +2571,7 @@ static deleteAllData(): void 清除Web SQL数据库当前使用的所有存储。 -**示例代码:** +**示例:** ```ts // xxx.ets import web from '@ohos.web'; @@ -2594,12 +2582,13 @@ static deleteAllData(): void static deleteOrigin(origin : string): void 清除指定源所使用的存储。 + **参数:** | 参数名 | 参数类型 | 必填 | 说明 | |---------|---------|-----|-----| | origin | string | 是 | 指定源的字符串索引。 | -**示例代码:** +**示例:** ```ts // xxx.ets import web from '@ohos.web'; @@ -2611,12 +2600,13 @@ static deleteOrigin(origin : string): void static getOrigins(callback: AsyncCallback>) : void 以回调方式异步获取当前使用Web SQL数据库的所有源的信息。 + **参数:** | 参数名 | 参数类型 | 必填 | 说明 | |---------|---------|-----|----| | callback | AsyncCallback> | 是 | 以数组方式返回源的信息,信息内容参考WebStorageOrigin。| -**示例代码:** +**示例:** ```ts // xxx.ets import web from '@ohos.web'; @@ -2631,17 +2621,19 @@ static getOrigins(callback: AsyncCallback9+ static getOrigins() : Promise> 以Promise方式异步获取当前使用Web SQL数据库的所有源的信息。 + **返回值:** | 类型 | 说明 | |------|------| | Promise> | Promise实例,用于获取当前所有源的信息,信息内容参考WebStorageOrigin。 | -**示例代码:** +**示例:** ```ts // xxx.ets import web from '@ohos.web'; @@ -2662,13 +2654,14 @@ static getOrigins() : Promise) : void 使用callback回调异步获取指定源的Web SQL数据库的存储配额,配额以字节为单位。 + **参数:** | 参数名 | 参数类型 | 必填 | 说明 | |----------|-----------|------|------| | origin | string | 是 | 指定源的字符串索引 | | callback | AsyncCallback | 是 | 指定源的存储配额。 | -**示例代码:** +**示例:** ```ts // xxx.ets import web from '@ohos.web'; @@ -2686,6 +2679,7 @@ static getOriginQuota(origin : string, callback : AsyncCallback) : void static getOriginQuota(origin : string) : Promise 以Promise方式异步获取指定源的Web SQL数据库的存储配额,配额以字节为单位。 + **参数:** | 参数名 | 参数类型 | 必填 | 说明 | |----------|---------|------|-------| @@ -2696,7 +2690,7 @@ static getOriginQuota(origin : string) : Promise |------|------| | Promise | Promise实例,用于获取指定源的存储配额。 | -**示例代码:** +**示例:** ```ts // xxx.ets import web from '@ohos.web'; @@ -2713,13 +2707,14 @@ static getOriginQuota(origin : string) : Promise static getOriginUsage(origin : string, callback : AsyncCallback) : void 以回调方式异步获取指定源的Web SQL数据库的存储量,存储量以字节为单位。 + **参数:** | 参数名 | 参数类型 | 必填 | 说明 | |----------|----------|------|------| | origin | string | 是 | 指定源的字符串索引。 | | callback | AsyncCallback | 是 | 指定源的存储量。 | -**示例代码:** +**示例:** ```ts // xxx.ets import web from '@ohos.web'; @@ -2737,6 +2732,7 @@ static getOriginUsage(origin : string, callback : AsyncCallback) : void static getOriginUsage(origin : string) : Promise 以Promise方式异步获取指定源的Web SQL数据库的存储量,存储量以字节为单位。 + **参数:** | 参数名 | 参数类型 | 必填 | 说明 | |----------|----------|------|------| @@ -2747,7 +2743,7 @@ static getOriginUsage(origin : string) : Promise |------|------| | Promise | Promise实例,用于获取指定源的存储量。 | -**示例代码:** +**示例:** ```ts // xxx.ets import web from '@ohos.web'; @@ -2761,7 +2757,9 @@ static getOriginUsage(origin : string) : Promise ``` ## WebStorageOrigin9+ + 提供Web SQL数据库的使用信息。 + **参数:** | 参数名 | 参数类型 | 必填 | 说明 | |----------|----------|------|------| -- GitLab From 7f1a0a6da60af34a085b595385d1c8c15dde6436 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Fri, 22 Jul 2022 06:50:39 +0000 Subject: [PATCH 196/868] update en/application-dev/reference/apis/js-apis-usb.md. Signed-off-by: @ge-yafang --- en/application-dev/reference/apis/js-apis-usb.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-usb.md b/en/application-dev/reference/apis/js-apis-usb.md index 63beaae803..83ed07f3f7 100644 --- a/en/application-dev/reference/apis/js-apis-usb.md +++ b/en/application-dev/reference/apis/js-apis-usb.md @@ -126,8 +126,8 @@ Checks whether the application has the permission to access the device. - **Example** ```js - let divicesName="1-1"; - let bool = usb.hasRight(divicesName); + let devicesName="1-1"; + let bool = usb.hasRight(devicesName); console.log(bool); ``` @@ -152,8 +152,8 @@ Requests the temporary permission for the application to access the USB device. - **Example** ```js - let divicesName="1-1"; - usb.requestRight(divicesName).then((ret) => { + let devicesName="1-1"; + usb.requestRight(devicesName).then((ret) => { console.log(`requestRight = ${JSON.stringify(ret)}`); }); ``` -- GitLab From 1b329832380668f5946058bf0594e682ead525b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Fri, 22 Jul 2022 06:53:54 +0000 Subject: [PATCH 197/868] update zh-cn/application-dev/reference/native-apis/drawing__bitmap_8h.md. Signed-off-by: @ge-yafang --- .../application-dev/reference/native-apis/drawing__bitmap_8h.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/native-apis/drawing__bitmap_8h.md b/zh-cn/application-dev/reference/native-apis/drawing__bitmap_8h.md index e16944b2b8..3b78678ae6 100644 --- a/zh-cn/application-dev/reference/native-apis/drawing__bitmap_8h.md +++ b/zh-cn/application-dev/reference/native-apis/drawing__bitmap_8h.md @@ -21,7 +21,7 @@ ### Classes - | Classe Name | Description | + | Classes Name | Description | | -------- | -------- | | [OH_Drawing_BitmapFormat](_o_h___drawing___bitmap_format.md) | 结构体用于描述位图像素的格式,包括颜色类型和透明度类型 | -- GitLab From ce46fe6e33f29ea391b7ac09419f03dd43c39974 Mon Sep 17 00:00:00 2001 From: yuyaozhi Date: Fri, 22 Jul 2022 15:02:42 +0800 Subject: [PATCH 198/868] Fix sample code and document error of ability Signed-off-by: yuyaozhi --- .../reference/apis/js-apis-Context.md | 23 ++++++++++++------- .../js-apis-application-abilityManager.md | 2 +- .../reference/apis/js-apis-appmanager.md | 2 +- .../apis/js-apis-processrunninginfo.md | 2 +- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-Context.md b/zh-cn/application-dev/reference/apis/js-apis-Context.md index e8a3685896..3219356538 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-Context.md +++ b/zh-cn/application-dev/reference/apis/js-apis-Context.md @@ -362,10 +362,11 @@ setDisplayOrientation(orientation: bundle.DisplayOrientation, callback: AsyncCal ```js import featureAbility from '@ohos.ability.featureAbility' +import bundle from '@ohos.bundle' var context = featureAbility.getContext(); -var orientation="UNSPECIFIED" +var orientation=bundle.DisplayOrientation.UNSPECIFIED context.setDisplayOrientation(orientation, (err) => { - console.log('---------- setDisplayOrientation fail, err: -----------', err); + console.log('---------- setDisplayOrientation fail, err: -----------', err); }); ``` @@ -388,8 +389,10 @@ setDisplayOrientation(orientation: bundle.DisplayOrientation): Promise\; ```js import featureAbility from '@ohos.ability.featureAbility' +import bundle from '@ohos.bundle' var context = featureAbility.getContext(); -context.setDisplayOrientation().then((data) => { +var orientation=bundle.DisplayOrientation.UNSPECIFIED +context.setDisplayOrientation(orientation).then((data) => { console.info("=======================>setDisplayOrientationCallback====================>"); console.info("====>data====>" + JSON.stringify(data)); }); @@ -446,7 +449,8 @@ setShowOnLockScreen(show: boolean): Promise\; ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); -context.setShowOnLockScreen().then((data) => { +var show=true +context.setShowOnLockScreen(show).then((data) => { console.info("=======================>setShowOnLockScreenCallback====================>"); console.info("====>data====>" + JSON.stringify(data)); }); @@ -473,7 +477,7 @@ setWakeUpScreen(wakeUp: boolean, callback: AsyncCallback\): void import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); var wakeUp=true -context.setWakeUpScreen(show, (err) => { +context.setWakeUpScreen(wakeUp, (err) => { console.log('---------- setWakeUpScreen fail, err: -----------', err); }); ``` @@ -503,7 +507,8 @@ setWakeUpScreen(wakeUp: boolean): Promise\; ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); -context.setWakeUpScreen().then((data) => { +var wakeUp=true +context.setWakeUpScreen(wakeUp).then((data) => { console.info("=======================>setWakeUpScreenCallback====================>"); console.info("====>data====>" + JSON.stringify(data)); }); @@ -1214,7 +1219,7 @@ context.printDrawnCompleted().then((data) => { ## PermissionOptions7+ -**系统能力**:SystemCapability.Ability.AbilityRuntime.Core +**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core | 名称 | 读写属性 | 类型 | 必填 | 描述 | | ---- | -------- | ------ | ---- | ------ | @@ -1223,7 +1228,7 @@ context.printDrawnCompleted().then((data) => { ## PermissionRequestResult7+ -**系统能力**:SystemCapability.Ability.AbilityRuntime.Core +**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core | 名称 | 读写属性 | 类型 | 必填 | 描述 | | ----------- | -------- | -------------- | ---- | ------------------ | @@ -1233,6 +1238,8 @@ context.printDrawnCompleted().then((data) => { ## AppVersionInfo7+ +**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core + | 名称 | 类型 | 可读 | 可写 | 说明 | | ------ | ------ | ------| ------ | ------ | | appName | string | 是 | 否 | 模块名称。 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-abilityManager.md b/zh-cn/application-dev/reference/apis/js-apis-application-abilityManager.md index 5e86a3af6f..e49bb16733 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-application-abilityManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-application-abilityManager.md @@ -7,7 +7,7 @@ AbilityManager模块提供对Ability相关信息和状态信息进行获取、 > 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > 本模块接口均为系统接口,三方应用不支持调用。 -# 导入模块 +## 导入模块 ```js import AbilityManager from '@ohos.application.abilityManager' diff --git a/zh-cn/application-dev/reference/apis/js-apis-appmanager.md b/zh-cn/application-dev/reference/apis/js-apis-appmanager.md index c7459c049b..c23fba3ad4 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-appmanager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-appmanager.md @@ -714,7 +714,7 @@ console.log('-------- processDiedInfo: ---------', processDiedInfo); ## ProcessData -**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core +**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Mission **系统API**:该接口为系统接口,三方应用不支持调用。 diff --git a/zh-cn/application-dev/reference/apis/js-apis-processrunninginfo.md b/zh-cn/application-dev/reference/apis/js-apis-processrunninginfo.md index 0d5ceb5c8c..ba97f38ccc 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-processrunninginfo.md +++ b/zh-cn/application-dev/reference/apis/js-apis-processrunninginfo.md @@ -4,7 +4,7 @@ ProcessRunningInfo模块提供对进程运行信息进行设置和查询的能 > **说明:** > -> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 ## 使用说明 -- GitLab From 1421a4741b5bd6fb7c7d2ef471b59c85f06d69a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Fri, 22 Jul 2022 07:05:30 +0000 Subject: [PATCH 199/868] update zh-cn/application-dev/reference/native-apis/_drawing.md. Signed-off-by: ge-yafang --- zh-cn/application-dev/reference/native-apis/_drawing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/native-apis/_drawing.md b/zh-cn/application-dev/reference/native-apis/_drawing.md index 76b6c2c2e5..c8a55c1922 100644 --- a/zh-cn/application-dev/reference/native-apis/_drawing.md +++ b/zh-cn/application-dev/reference/native-apis/_drawing.md @@ -43,7 +43,7 @@ Drawing模块提供包括2D图形渲染、文字绘制和图片显示等功能 ### Classes - | Classe Name | Description | + | Classes Name | Description | | -------- | -------- | | [OH_Drawing_BitmapFormat](_o_h___drawing___bitmap_format.md) | 结构体用于描述位图像素的格式,包括颜色类型和透明度类型 | -- GitLab From 7367922d4d3c54947a9d20fd2545109d27880a08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Fri, 22 Jul 2022 07:09:55 +0000 Subject: [PATCH 200/868] update zh-cn/application-dev/reference/apis/js-apis-distributed-data.md. Signed-off-by: ge-yafang --- .../reference/apis/js-apis-distributed-data.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md b/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md index 2891df3308..2324a8ca7c 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md +++ b/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md @@ -558,7 +558,7 @@ getAllKVStoreId(appId: string): Promise<string[]> let kvManager; try { console.log('GetAllKVStoreId'); - kvManager.getAllKVStoreId('apppId').then((data) => { + kvManager.getAllKVStoreId('appId').then((data) => { console.log('getAllKVStoreId success'); console.log('size = ' + data.length); }).catch((err) => { @@ -4320,7 +4320,7 @@ try { console.log('getSecurityLevel success'); }); }catch(e) { - console.log('GetSecurityLeve e ' + e); + console.log('GetSecurityLevel e ' + e); } ``` @@ -4350,7 +4350,7 @@ try { console.log('getSecurityLevel fail ' + JSON.stringify(err)); }); }catch(e) { - console.log('GetSecurityLeve e ' + e); + console.log('GetSecurityLevel e ' + e); } ``` -- GitLab From 74de5c6343fb15e2fddb2d01ddb937622d65ca75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Fri, 22 Jul 2022 07:16:02 +0000 Subject: [PATCH 201/868] update en/application-dev/reference/apis/js-apis-distributed-data.md. Signed-off-by: ge-yafang --- .../reference/apis/js-apis-distributed-data.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-distributed-data.md b/en/application-dev/reference/apis/js-apis-distributed-data.md index ccd49d2889..bad85aee52 100644 --- a/en/application-dev/reference/apis/js-apis-distributed-data.md +++ b/en/application-dev/reference/apis/js-apis-distributed-data.md @@ -489,7 +489,7 @@ Obtains the IDs of all KV stores that are created by [getKVStore()](#getkvstore) let kvManager; try { console.log('GetAllKVStoreId'); - kvManager.getAllKVStoreId('apppId').then((data) => { + kvManager.getAllKVStoreId('appId').then((data) => { console.log('getAllKVStoreId success'); console.log('size = ' + data.length); }).catch((err) => { @@ -4252,7 +4252,7 @@ try { console.log('getSecurityLevel success'); }); }catch(e) { - console.log('GetSecurityLeve e ' + e); + console.log('GetSecurityLevel e ' + e); } ``` @@ -4282,7 +4282,7 @@ try { console.log('getSecurityLevel fail ' + JSON.stringify(err)); }); }catch(e) { - console.log('GetSecurityLeve e ' + e); + console.log('GetSecurityLevel e ' + e); } ``` -- GitLab From a02f0eac1f0b24788ef44816f69075c46b0a6ca2 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Fri, 22 Jul 2022 15:22:26 +0800 Subject: [PATCH 202/868] update docs Signed-off-by: Annie_wang --- en/application-dev/napi/napi-guidelines.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/en/application-dev/napi/napi-guidelines.md b/en/application-dev/napi/napi-guidelines.md index f2b6fe0e20..e58eed34cc 100644 --- a/en/application-dev/napi/napi-guidelines.md +++ b/en/application-dev/napi/napi-guidelines.md @@ -1,10 +1,10 @@ # Using Native APIs in Application Projects -OpenHarmony applications use JavaScript (JS) when calling native APIs. The native APIs (NAPIs) provided by the **arkui_napi** repository are used to implement the interaction with JS. Currently, the **arkui_napi** repository supports some third-party **Node.js** interfaces. The names of the NAPIs are the same as those in the third-party **Node.js**. For details about the interfaces supported, see `libnapi.ndk.json` in this repository. +OpenHarmony applications use JavaScript (JS) when calling native APIs. The native APIs (NAPIs) provided by the [ace_napi](https://gitee.com/openharmony/arkui_napi/tree/master) repository are used to implement interaction with JS. Currently, the **ace_napi** repository supports some third-party **Node.js** interfaces. The names of the NAPIs are the same as those in the third-party **Node.js**. For details about the interfaces supported, see `libnapi.ndk.json` in this repository. ## How to Develop -The IDE has a default project that uses NAPIs. You can choose `File` > `New` > `Create Project` to create a `Native C++` project. The **cpp** directory is generated in the **main** directory. You can use the NAPIs provided by the **arkui_napi** repository for development. +The IDE has a default project that uses NAPIs. You can choose `File` > `New` > `Create Project` to create a `Native C++` project. The **cpp** directory is generated in the **main** directory. You can use the NAPIs provided by the **ace_napi** repository for development. You can `import` the native .so that contains the JS processing logic. For example, `import hello from 'libhello.so'` to use the **libhello.so** capability. Then, the JS object created using the NAPI can be passed to the `hello` object of the application to call the native capability. @@ -74,7 +74,7 @@ export default storage; ### Implementation -You can obtain the complete code from `sample/native_module_storage/` in the **arkui_napi** repository. +You can obtain the complete code from `sample/native_module_storage/` in the [OpenHarmony/arkui_napi](https://gitee.com/openharmony/arkui_napi/tree/master) repository. #### Registering the Module @@ -212,7 +212,7 @@ static napi_value JSStorageGet(napi_env env, napi_callback_info info) napi_create_async_work( env, nullptr, resource, - // Callback 1: This callback contains the service logic to be asynchronously executed and is asynchronously executed by the NAPI. Do not operate JS objects using theNAPI because the execution is asynchronous. + // Callback 1: This callback contains the service logic to be asynchronously executed and is asynchronously executed by the NAPI. Do not operate JS objects using the NAPI because the execution is asynchronous. [](napi_env env, void* data) { StorageAsyncContext* asyncContext = (StorageAsyncContext*)data; auto itr = gKeyValueStorage.find(asyncContext->key); @@ -307,7 +307,7 @@ export class NetServer { ### Implementation -You can obtain the complete code from `sample/native_module_netserver/` in the **arkui_napi** repository. +You can obtain the complete code from `sample/native_module_netserver/` in the [OpenHarmony/arkui_napi](https://gitee.com/openharmony/arkui_napi/tree/master) repository. #### Registering the Module @@ -494,7 +494,7 @@ This example describes how to invoke a JS callback in a non-JS thread. For examp ### Implementation -You can obtain the complete code from `sample/native_module_callback/` in the **arkui_napi** repository. +You can obtain the complete code from `sample/native_module_callback/` in the [OpenHarmony/arkui_napi](https://gitee.com/openharmony/arkui_napi/tree/master) repository. #### Registering the Module @@ -562,7 +562,7 @@ void callbackTest(CallbackContext* context) uv_queue_work( loop, work, - // This callback is executed in another common thread to process tasks asynchronously. After the callback is complete, execute the next callback. In this scenario, the callback does not need to execute any task. + // This callback is executed in another common thread to process tasks asynchronously. After the callback is complete, execute the next callback. In this scenario, this callback does not need to execute any task. [](uv_work_t* work) {}, // This callback is executed in the JS thread bound to env. [](uv_work_t* work, int status) { -- GitLab From d608d2a71fb561085ccc3b00f4c8b929708a9963 Mon Sep 17 00:00:00 2001 From: xuzhihao Date: Fri, 22 Jul 2022 15:31:04 +0800 Subject: [PATCH 203/868] Fix Ability introduction in Readme Signed-off-by: xuzhihao --- .../reference/apis/Readme-CN.md | 95 ++++++++++--------- zh-cn/application-dev/website.md | 61 +++++++++--- 2 files changed, 94 insertions(+), 62 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/Readme-CN.md b/zh-cn/application-dev/reference/apis/Readme-CN.md index 9048aec6ed..60afceac10 100755 --- a/zh-cn/application-dev/reference/apis/Readme-CN.md +++ b/zh-cn/application-dev/reference/apis/Readme-CN.md @@ -4,53 +4,54 @@ - Ability框架 - - [@ohos.ability.dataUriUtils (DataUriUtils模块)](js-apis-DataUriUtils.md) - - [@ohos.ability.errorCode (ErrorCode)](js-apis-ability-errorCode.md) - - [@ohos.ability.wantConstant (wantConstant)](js-apis-ability-wantConstant.md) - - [@ohos.application.Ability (Ability)](js-apis-application-ability.md) - - [@ohos.application.AbilityConstant (AbilityConstant)](js-apis-application-abilityConstant.md) - - [@ohos.application.abilityDelegatorRegistry (AbilityDelegatorRegistry)](js-apis-abilityDelegatorRegistry.md) - - [@ohos.application.AbilityStage (AbilityStage)](js-apis-application-abilitystage.md) - - [@ohos.application.abilityLifecycleCallback (AbilityLifecycleCallback)](js-apis-application-abilityLifecycleCallback.md) - - [@ohos.application.appManager (appManager)](js-apis-appmanager.md) - - [@ohos.application.Configuration (Configuration)](js-apis-configuration.md) - - [@ohos.application.ConfigurationConstant (ConfigurationConstant)](js-apis-configurationconstant.md) - - [@ohos.application.DataShareExtensionAbility (数据共享扩展能力)](js-apis-application-DataShareExtensionAbility.md) - - [@ohos.ability.featureAbility (FeatureAbility模块)](js-apis-featureAbility.md) - - [@ohos.application.formBindingData (卡片数据绑定类)](js-apis-formbindingdata.md) - - [@ohos.application.FormExtension (FormExtension)](js-apis-formextension.md) - - [@ohos.application.formError (FormError)](js-apis-formerror.md) - - [@ohos.application.formHost (FormHost)](js-apis-formhost.md) - - [@ohos.application.formInfo (FormInfo)](js-apis-formInfo.md) - - [@ohos.application.missionManager (missionManager)](js-apis-missionManager.md) - - [@ohos.application.formProvider (FormProvider)](js-apis-formprovider.md) - - [@ohos.ability.particleAbility (particleAbility模块)](js-apis-particleAbility.md) - - [@ohos.application.ServiceExtensionAbility (ServiceExtensionAbility)](js-apis-service-extension-ability.md) - - [@ohos.application.StartOptions (StartOptions)](js-apis-application-StartOptions.md) - - [@ohos.application.StaticSubscriberExtensionAbility (StaticSubscriberExtensionAbility)](js-apis-application-staticSubscriberExtensionAbility.md) - - [@ohos.application.uriPermissionManager (uriPermissionManager)](js-apis-uripermissionmanager.md) - - [@ohos.application.Want (Want)](js-apis-application-Want.md) - - [@ohos.application.WindowExtensionAbility (窗口扩展能力)](js-apis-application-WindowExtensionAbility.md) - - [@ohos.wantAgent (WantAgent模块)](js-apis-wantAgent.md) - - ability/[dataAbilityHelper (DataAbilityHelper模块)](js-apis-dataAbilityHelper.md) - - app/[context (Context模块)](js-apis-Context.md) - - application/[AbilityContext (AbilityContext)](js-apis-ability-context.md) - - application/[ApplicationContext (ApplicationContext)](js-apis-application-applicationContext.md) - - application/[abilityDelegator (AbilityDelegator)](js-apis-application-abilityDelegator.md) - - application/[abilityDelegatorArgs (AbilityDelegatorArgs)](js-apis-application-abilityDelegatorArgs.md) - - application/[abilityMonitor (AbilityMonitor)](js-apis-application-abilityMonitor.md) - - application/[AbilityRunningInfo (AbilityRunningInfo)](js-apis-abilityrunninginfo.md) - - application/[AbilityStageContext (AbilityStageContext)](js-apis-abilitystagecontext.md) - - application/[Context (Context)](js-apis-application-context.md) - - application/[ExtensionContext (ExtensionContext)](js-apis-extension-context.md) - - application/[ExtensionRunningInfo (ExtensionRunningInfo)](js-apis-extensionrunninginfo.md) - - application/[FormExtensionContext (FormExtensionContext)](js-apis-formextensioncontext.md) - - application/[MissionSnapshot (MissionSnapshot)](js-apis-application-MissionSnapshot.md) - - application/[PermissionRequestResult (PermissionRequestResult)](js-apis-permissionrequestresult.md) - - application/[ProcessRunningInfo (ProcessRunningInfo)](js-apis-processrunninginfo.md) - - application/[ServiceExtensionContext (ServiceExtensionContext)](js-apis-service-extension-context.md) - - application/[shellCmdResult (ShellCmdResult)](js-apis-application-shellCmdResult.md) - - application/[MissionInfo (MissionInfo)](js-apis-application-missionInfo.md) + - FA模型 + - [@ohos.ability.featureAbility (FeatureAbility模块)](js-apis-featureAbility.md) + - [@ohos.ability.particleAbility (particleAbility模块)](js-apis-particleAbility.md) + - ability/[dataAbilityHelper (DataAbilityHelper模块)](js-apis-dataAbilityHelper.md) + - app/[context (Context模块)](js-apis-Context.md) + - Stage模型 + - [@ohos.application.Ability (Ability)](js-apis-application-ability.md) + - [@ohos.application.AbilityConstant (AbilityConstant)](js-apis-application-abilityConstant.md) + - [@ohos.application.AbilityStage (AbilityStage)](js-apis-application-abilitystage.md) + - [@ohos.application.abilityLifecycleCallback (AbilityLifecycleCallback)](js-apis-application-abilityLifecycleCallback.md) + - [@ohos.application.DataShareExtensionAbility (数据共享扩展能力)](js-apis-application-DataShareExtensionAbility.md) + - [@ohos.application.FormExtension (FormExtension)](js-apis-formextension.md) + - [@ohos.application.ServiceExtensionAbility (ServiceExtensionAbility)](js-apis-service-extension-ability.md) + - [@ohos.application.StartOptions (StartOptions)](js-apis-application-StartOptions.md) + - [@ohos.application.StaticSubscriberExtensionAbility (StaticSubscriberExtensionAbility)](js-apis-application-staticSubscriberExtensionAbility.md) + - [@ohos.application.WindowExtensionAbility (窗口扩展能力)](js-apis-application-WindowExtensionAbility.md) + - application/[AbilityContext (AbilityContext)](js-apis-ability-context.md) + - application/[ApplicationContext (ApplicationContext)](js-apis-application-applicationContext.md) + - application/[AbilityStageContext (AbilityStageContext)](js-apis-abilitystagecontext.md) + - application/[Context (Context)](js-apis-application-context.md) + - application/[ExtensionContext (ExtensionContext)](js-apis-extension-context.md) + - application/[FormExtensionContext (FormExtensionContext)](js-apis-formextensioncontext.md) + - application/[PermissionRequestResult (PermissionRequestResult)](js-apis-permissionrequestresult.md) + - application/[ServiceExtensionContext (ServiceExtensionContext)](js-apis-service-extension-context.md) + - 通用 + - [@ohos.ability.dataUriUtils (DataUriUtils模块)](js-apis-DataUriUtils.md) + - [@ohos.ability.errorCode (ErrorCode)](js-apis-ability-errorCode.md) + - [@ohos.ability.wantConstant (wantConstant)](js-apis-ability-wantConstant.md) + - [@ohos.application.abilityDelegatorRegistry (AbilityDelegatorRegistry)](js-apis-abilityDelegatorRegistry.md) + - [@ohos.application.appManager (appManager)](js-apis-appmanager.md) + - [@ohos.application.Configuration (Configuration)](js-apis-configuration.md) + - [@ohos.application.ConfigurationConstant (ConfigurationConstant)](js-apis-configurationconstant.md) + - [@ohos.application.formBindingData (卡片数据绑定类)](js-apis-formbindingdata.md) + - [@ohos.application.formError (FormError)](js-apis-formerror.md) + - [@ohos.application.formHost (FormHost)](js-apis-formhost.md) + - [@ohos.application.formInfo (FormInfo)](js-apis-formInfo.md) + - [@ohos.application.missionManager (missionManager)](js-apis-missionManager.md) + - [@ohos.application.formProvider (FormProvider)](js-apis-formprovider.md) + - [@ohos.application.Want (Want)](js-apis-application-Want.md) + - [@ohos.wantAgent (WantAgent模块)](js-apis-wantAgent.md) + - application/[abilityDelegator (AbilityDelegator)](js-apis-application-abilityDelegator.md) + - application/[abilityDelegatorArgs (AbilityDelegatorArgs)](js-apis-application-abilityDelegatorArgs.md) + - application/[abilityMonitor (AbilityMonitor)](js-apis-application-abilityMonitor.md) + - application/[AbilityRunningInfo (AbilityRunningInfo)](js-apis-abilityrunninginfo.md) + - application/[ExtensionRunningInfo (ExtensionRunningInfo)](js-apis-extensionrunninginfo.md) + - application/[MissionSnapshot (MissionSnapshot)](js-apis-application-MissionSnapshot.md) + - application/[ProcessRunningInfo (ProcessRunningInfo)](js-apis-processrunninginfo.md) + - application/[shellCmdResult (ShellCmdResult)](js-apis-application-shellCmdResult.md) - 公共事件与通知 - [@ohos.commonEvent (公共事件模块)](js-apis-commonEvent.md) diff --git a/zh-cn/application-dev/website.md b/zh-cn/application-dev/website.md index 2e458bc5ee..b09dc5af0a 100644 --- a/zh-cn/application-dev/website.md +++ b/zh-cn/application-dev/website.md @@ -19,22 +19,53 @@ - [Ability框架概述](ability/ability-brief.md) - [应用上下文Context概述](ability/context-userguide.md) - FA模型 - - [FA模型综述](ability/fa-brief.md) - - [PageAbility开发指导](ability/fa-pageability.md) - - [ServiceAbility开发指导](ability/fa-serviceability.md) - - [DataAbility开发指导](ability/fa-dataability.md) - - [FA卡片开发指导](ability/fa-formability.md) + - [@ohos.ability.featureAbility (FeatureAbility模块)](js-apis-featureAbility.md) + - [@ohos.ability.particleAbility (particleAbility模块)](js-apis-particleAbility.md) + - ability/[dataAbilityHelper (DataAbilityHelper模块)](js-apis-dataAbilityHelper.md) + - app/[context (Context模块)](js-apis-Context.md) - Stage模型 - - [Stage模型综述](ability/stage-brief.md) - - [Ability开发指导](ability/stage-ability.md) - - [ServiceExtensionAbility开发指导](ability/stage-serviceextension.md) - - [跨端迁移开发指导](ability/stage-ability-continuation.md) - - [Call调用开发指导](ability/stage-call.md) - - [Stage卡片开发指导](ability/stage-formextension.md) - - 其他 - - [WantAgent开发指导](ability/wantagent.md) - - [Ability助手使用指导](ability/ability-assistant-guidelines.md) - - [测试框架使用指导](ability/ability-delegator.md) + - [@ohos.application.Ability (Ability)](js-apis-application-ability.md) + - [@ohos.application.AbilityConstant (AbilityConstant)](js-apis-application-abilityConstant.md) + - [@ohos.application.AbilityStage (AbilityStage)](js-apis-application-abilitystage.md) + - [@ohos.application.abilityLifecycleCallback (AbilityLifecycleCallback)](js-apis-application-abilityLifecycleCallback.md) + - [@ohos.application.DataShareExtensionAbility (数据共享扩展能力)](js-apis-application-DataShareExtensionAbility.md) + - [@ohos.application.FormExtension (FormExtension)](js-apis-formextension.md) + - [@ohos.application.ServiceExtensionAbility (ServiceExtensionAbility)](js-apis-service-extension-ability.md) + - [@ohos.application.StartOptions (StartOptions)](js-apis-application-StartOptions.md) + - [@ohos.application.StaticSubscriberExtensionAbility (StaticSubscriberExtensionAbility)](js-apis-application-staticSubscriberExtensionAbility.md) + - [@ohos.application.WindowExtensionAbility (窗口扩展能力)](js-apis-application-WindowExtensionAbility.md) + - application/[AbilityContext (AbilityContext)](js-apis-ability-context.md) + - application/[ApplicationContext (ApplicationContext)](js-apis-application-applicationContext.md) + - application/[AbilityStageContext (AbilityStageContext)](js-apis-abilitystagecontext.md) + - application/[Context (Context)](js-apis-application-context.md) + - application/[ExtensionContext (ExtensionContext)](js-apis-extension-context.md) + - application/[FormExtensionContext (FormExtensionContext)](js-apis-formextensioncontext.md) + - application/[PermissionRequestResult (PermissionRequestResult)](js-apis-permissionrequestresult.md) + - application/[ServiceExtensionContext (ServiceExtensionContext)](js-apis-service-extension-context.md) + - 通用 + - [@ohos.ability.dataUriUtils (DataUriUtils模块)](js-apis-DataUriUtils.md) + - [@ohos.ability.errorCode (ErrorCode)](js-apis-ability-errorCode.md) + - [@ohos.ability.wantConstant (wantConstant)](js-apis-ability-wantConstant.md) + - [@ohos.application.abilityDelegatorRegistry (AbilityDelegatorRegistry)](js-apis-abilityDelegatorRegistry.md) + - [@ohos.application.appManager (appManager)](js-apis-appmanager.md) + - [@ohos.application.Configuration (Configuration)](js-apis-configuration.md) + - [@ohos.application.ConfigurationConstant (ConfigurationConstant)](js-apis-configurationconstant.md) + - [@ohos.application.formBindingData (卡片数据绑定类)](js-apis-formbindingdata.md) + - [@ohos.application.formError (FormError)](js-apis-formerror.md) + - [@ohos.application.formHost (FormHost)](js-apis-formhost.md) + - [@ohos.application.formInfo (FormInfo)](js-apis-formInfo.md) + - [@ohos.application.missionManager (missionManager)](js-apis-missionManager.md) + - [@ohos.application.formProvider (FormProvider)](js-apis-formprovider.md) + - [@ohos.application.Want (Want)](js-apis-application-Want.md) + - [@ohos.wantAgent (WantAgent模块)](js-apis-wantAgent.md) + - application/[abilityDelegator (AbilityDelegator)](js-apis-application-abilityDelegator.md) + - application/[abilityDelegatorArgs (AbilityDelegatorArgs)](js-apis-application-abilityDelegatorArgs.md) + - application/[abilityMonitor (AbilityMonitor)](js-apis-application-abilityMonitor.md) + - application/[AbilityRunningInfo (AbilityRunningInfo)](js-apis-abilityrunninginfo.md) + - application/[ExtensionRunningInfo (ExtensionRunningInfo)](js-apis-extensionrunninginfo.md) + - application/[MissionSnapshot (MissionSnapshot)](js-apis-application-MissionSnapshot.md) + - application/[ProcessRunningInfo (ProcessRunningInfo)](js-apis-processrunninginfo.md) + - application/[shellCmdResult (ShellCmdResult)](js-apis-application-shellCmdResult.md) - UI开发 - [方舟开发框架(ArkUI)概述](ui/arkui-overview.md) - 基于JS扩展的类Web开发范式 -- GitLab From 14baff37b742cb14ab0729a8335bb409e09433d3 Mon Sep 17 00:00:00 2001 From: LiAn Date: Fri, 22 Jul 2022 07:41:35 +0000 Subject: [PATCH 204/868] update zh-cn/application-dev/ui/ts-component-based-component.md. Signed-off-by: LiAn --- zh-cn/application-dev/ui/ts-component-based-component.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/zh-cn/application-dev/ui/ts-component-based-component.md b/zh-cn/application-dev/ui/ts-component-based-component.md index aaaeeb4062..29cc319a93 100644 --- a/zh-cn/application-dev/ui/ts-component-based-component.md +++ b/zh-cn/application-dev/ui/ts-component-based-component.md @@ -15,7 +15,8 @@ 对组件化的深入描述,请参考深入理解组件化。 -> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> **说明:** +> > - 自定义组件必须定义build方法。 > > - 自定义组件禁止自定义构造函数。 @@ -78,11 +79,11 @@ struct ParentComponent { } } - private aboutToAppear() { + aboutToAppear() { console.log('ParentComponent: Just created, about to become rendered first time.') } - private aboutToDisappear() { + aboutToDisappear() { console.log('ParentComponent: About to be removed from the UI.') } } -- GitLab From e3430d0537527c165b474d579bf1af7bdf5dbd76 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Fri, 22 Jul 2022 15:45:22 +0800 Subject: [PATCH 205/868] update docs Signed-off-by: Annie_wang --- en/application-dev/reference/apis/js-apis-securityLabel.md | 6 +++--- .../reference/apis/js-apis-storage-statistics.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-securityLabel.md b/en/application-dev/reference/apis/js-apis-securityLabel.md index a2219288f3..52ee04c0ce 100644 --- a/en/application-dev/reference/apis/js-apis-securityLabel.md +++ b/en/application-dev/reference/apis/js-apis-securityLabel.md @@ -1,10 +1,10 @@ # Security Label -The secuityLabel module provides APIs to manage file data security levels, including obtaining and setting file data security levels. - > **NOTE**
> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. +The **secuityLabel** module provides APIs to manage file data security levels, including obtaining and setting file data security levels. + ## Modules to Import ```js @@ -13,7 +13,7 @@ import securityLabel from '@ohos.securityLabel'; ## Usage -Before using the APIs provided by this module to perform operations on a file or directory, obtain the path of the application sandbox. For details, see [getOrCreateLocalDir of the Context module](js-apis-Context.md). +Before using the APIs provided by this module to perform operations on a file or directory, obtain the path of the application sandbox as follows: ```js import featureAbility from '@ohos.ability.featureAbility'; diff --git a/en/application-dev/reference/apis/js-apis-storage-statistics.md b/en/application-dev/reference/apis/js-apis-storage-statistics.md index 093d6cb8b5..7f3b7b0b1e 100644 --- a/en/application-dev/reference/apis/js-apis-storage-statistics.md +++ b/en/application-dev/reference/apis/js-apis-storage-statistics.md @@ -1,12 +1,12 @@ # App Storage Statistics -The storageStatistics module provides APIs for obtaining storage space information, including the space of built-in and plug-in memory cards, space occupied by different types of data, and space of application data. - > **NOTE**
> > - The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. > - API version 9 is a canary version for trial use. The APIs of this version may be unstable. +The **storageStatistics** module provides APIs for obtaining storage space information, including the space of built-in and plug-in memory cards, space occupied by different types of data, and space of application data. + ## Modules to Import ```js -- GitLab From 39b0b2011b6ab46238098f53c0c91ba48784b836 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=98=E9=92=A6=E6=97=AD?= Date: Fri, 22 Jul 2022 07:55:58 +0000 Subject: [PATCH 206/868] Signed-off-by: panqinxu --- .../reference/apis/js-apis-fileio.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-fileio.md b/zh-cn/application-dev/reference/apis/js-apis-fileio.md index 3321def4ee..1f2f212d10 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-fileio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-fileio.md @@ -17,6 +17,19 @@ import fileio from '@ohos.fileio'; 使用该功能模块对文件/目录进行操作前,需要先获取其应用沙箱路径,获取方式及其接口用法请参考: +Stage模型 + ```js +import Ability from '@ohos.application.Ability' +class MainAbility extends Ability { + onWindowStageCreate(windowStage) { + let context = this.context; + let path = context.filesDir; + } +} + ``` + Stage模型context的具体获取方法参见[Stage模型](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-ability-context.md#abilitycontext) + +FA模型 ```js import featureAbility from '@ohos.ability.featureAbility'; let context = featureAbility.getContext(); @@ -25,7 +38,7 @@ import fileio from '@ohos.fileio'; path = data; }) ``` - + FA模型context的具体获取方法参见[FA模型](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-Context.md#context%E6%A8%A1%E5%9D%97) ## fileio.stat -- GitLab From 74ae8dfcad68686bb768b61a2278940d7c8aeeb4 Mon Sep 17 00:00:00 2001 From: laosan_ted Date: Fri, 22 Jul 2022 16:03:37 +0800 Subject: [PATCH 207/868] fix code Signed-off-by: laosan_ted --- .../arkui-ts/ts-basic-components-web.md | 1095 ++++++++++------- 1 file changed, 673 insertions(+), 422 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md index 16b1e042e9..932eac33e3 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md @@ -65,7 +65,7 @@ domStorageAccess(domStorageAccess: boolean) controller:WebController = new WebController(); build() { Column() { - Web({src:'www.example.com', controller:this.controller}) + Web({src:'www.gitee.com', controller:this.controller}) .domStorageAccess(true) } } @@ -92,7 +92,7 @@ fileAccess(fileAccess: boolean) controller:WebController = new WebController(); build() { Column() { - Web({src:'www.example.com', controller:this.controller}) + Web({src:'www.gitee.com', controller:this.controller}) .fileAccess(true) } } @@ -119,7 +119,7 @@ fileFromUrlAccess(fileFromUrlAccess: boolean) controller:WebController = new WebController(); build() { Column() { - Web({src:'www.example.com', controller:this.controller}) + Web({src:'www.gitee.com', controller:this.controller}) .fileFromUrlAccess(true) } } @@ -146,7 +146,7 @@ imageAccess(imageAccess: boolean) controller:WebController = new WebController(); build() { Column() { - Web({src:'www.example.com', controller:this.controller}) + Web({src:'www.gitee.com', controller:this.controller}) .imageAccess(true) } } @@ -187,9 +187,10 @@ javaScriptProxy(javaScriptProxy: { object: object, name: string, methodList: Arr } build() { Column() { - Web({src:'www.example.com', controller:this.controller}) + Web({src:'www.gitee.com', controller:this.controller}) + .javaScriptAccess(true) .javaScriptProxy({ - obj: this.testObj, + object: this.testObj, name: "objName", methodList: ["test", "toString"], controller: this.controller, @@ -219,7 +220,7 @@ javaScriptAccess(javaScriptAccess: boolean) controller:WebController = new WebController(); build() { Column() { - Web({src:'www.example.com', controller:this.controller}) + Web({src:'www.gitee.com', controller:this.controller}) .javaScriptAccess(true) } } @@ -242,13 +243,13 @@ mixedMode(mixedMode: MixedMode) // xxx.ets @Entry @Component - @State mode:MixedMode = MixedMode.All; struct WebComponent { controller:WebController = new WebController(); + @State mode:MixedMode = MixedMode.All; build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .mixedMode(mode) + Web({src:'www.gitee.com', controller:this.controller}) + .mixedMode(this.mode) } } } @@ -265,7 +266,6 @@ onlineImageAccess(onlineImageAccess: boolean) | ------ | -------- | ---- | ------ | ------------------------- | | onlineImageAccess | boolean | 是 | - | 设置是否允许从网络加载图片资源。 | -## onlineImageAccess **示例:** ```ts // xxx.ets @@ -302,7 +302,7 @@ zoomAccess(zoomAccess: boolean) controller:WebController = new WebController(); build() { Column() { - Web({src:'www.example.com', controller:this.controller}) + Web({src:'www.gitee.com', controller:this.controller}) .zoomAccess(true) } } @@ -329,7 +329,7 @@ overviewModeAccess(overviewModeAccess: boolean) controller:WebController = new WebController(); build() { Column() { - Web({src:'www.example.com', controller:this.controller}) + Web({src:'www.gitee.com', controller:this.controller}) .overviewModeAccess(true) } } @@ -355,7 +355,7 @@ databaseAccess(databaseAccess: boolean) controller:WebController = new WebController(); build() { Column() { - Web({src:'www.example.com', controller:this.controller}) + Web({src:'https://webkit.org/demos/sticky-notes/index.html', controller:this.controller}) .databaseAccess(true) } } @@ -378,13 +378,13 @@ cacheMode(cacheMode: CacheMode) // xxx.ets @Entry @Component - @State mode:CacheMode = CacheMode.None; struct WebComponent { controller:WebController = new WebController(); + @State mode:CacheMode = CacheMode.None; build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .cacheMode(mode) + Web({src:'www.gitee.com', controller:this.controller}) + .cacheMode(this.mode) } } } @@ -406,13 +406,13 @@ textZoomAtio(textZoomAtio: number) // xxx.ets @Entry @Component - @State atio:Number = 100; struct WebComponent { controller:WebController = new WebController(); + @State atio:number = 150; build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .textZoomAtio(atio) + Web({src:'www.gitee.com', controller:this.controller}) + .textZoomAtio(this.atio) } } } @@ -434,13 +434,13 @@ userAgent(userAgent: string) // xxx.ets @Entry @Component - @State userAgent:String = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'; struct WebComponent { controller:WebController = new WebController(); + @State userAgent:string = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'; build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .userAgent(userAgent) + Web({src:'www.gitee.com', controller:this.controller}) + .userAgent(this.userAgent) } } } @@ -481,23 +481,23 @@ onAlert(callback: (event?: { url: string; message: string; result: JsResult }) = controller:WebController = new WebController(); build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .onAlert((event) => { - AlertDialog.show({ - title: 'title', - message: 'text', - confirm: { - value: 'onAlert', - action: () => { - result.handleConfirm() - } - }, - cancel: () => { - result.handleCancel() - } + Web({src:'www.gitee.com', controller:this.controller}) + .onAlert((event) => { + AlertDialog.show({ + title: 'title', + message: 'text', + confirm: { + value: 'onAlert', + action: () => { + event.result.handleConfirm() + } + }, + cancel: () => { + event.result.handleCancel() + } + }) + return true; }) - return true; - }) } } } @@ -527,16 +527,18 @@ onBeforeUnload(callback: (event?: { url: string; message: string; result: JsResu @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .onBeforeUnload((event) => { - console.log("event.url:" +url); - console.log("event.message:" +message); - console.log("event.result:" +result); - return false; - }) + Web({ src: 'www.gitee.com', controller: this.controller }) + .onBeforeUnload((event) => { + console.log("event.url:" + event.url); + console.log("event.message:" + event.message); + console.log("event.result:" + event.result); + return false; + }) + } } } ``` @@ -565,29 +567,31 @@ onConfirm(callback: (event?: { url: string; message: string; result: JsResult }) @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .onConfirm((event) => { - console.log("event.url:" +url); - console.log("event.message:" +message); - console.log("event.result:" +result); - AlertDialog.show({ - title: 'title', - message: 'text', - confirm: { - value: 'onConfirm', - action: () => { - result.handleConfirm() - } - }, - cancel: () => { - result.handleCancel() - } + Web({ src: 'www.gitee.com', controller: this.controller }) + .onConfirm((event) => { + console.log("event.url:" + event.url); + console.log("event.message:" + event.message); + console.log("event.result:" + event.result); + AlertDialog.show({ + title: 'title', + message: 'text', + confirm: { + value: 'onConfirm', + action: () => { + event.result.handleConfirm() + } + }, + cancel: () => { + event.result.handleCancel() + } + }) + return true; }) - return true; - }) + } } } ``` @@ -617,7 +621,7 @@ onPrompt(callback: (event?: { url: string; message: string; value: string; resul controller:WebController = new WebController(); build() { Column() { - Web({src:'www.example.com', controller:this.controller}) + Web({src:'www.gitee.com', controller:this.controller}) .onPrompt((event) => { console.log("url:" + event.url); console.log("message:" + event.message); @@ -651,17 +655,19 @@ onConsole(callback: (event?: { message: ConsoleMessage }) => boolean) @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .onConsole((event) => { - console.log('getMessage:' +message.getMessage()); - console.log('getSourceId:' +message.getSourceId()); - console.log('getLineNumber:' +message.getLineNumber()); - console.log('getMessageLevel:' +message.getMessageLevel()); - return false; - }) + Web({ src: 'www.gitee.com', controller: this.controller }) + .onConsole((event) => { + console.log('getMessage:' + event.message.getMessage()); + console.log('getSourceId:' + event.message.getSourceId()); + console.log('getLineNumber:' + event.message.getLineNumber()); + console.log('getMessageLevel:' + event.message.getMessageLevel()); + return false; + }) + } } } ``` @@ -684,17 +690,19 @@ onDownloadStart(callback: (event?: { url: string, userAgent: string, contentDisp @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .onDownloadStart((event)=>{ - console.log('url:' +url); - console.log('userAgent:' +userAgent); - console.log('contentDisposition:' +contentDisposition); - console.log('contentLength:' +contentLength); - console.log('mimetype:' +mimetype); - }) + Web({ src: 'www.gitee.com', controller: this.controller }) + .onDownloadStart((event) => { + console.log('url:' + event.url); + console.log('userAgent:' + event.userAgent); + console.log('contentDisposition:' + event.contentDisposition); + console.log('contentLength:' + event.contentLength); + console.log('mimetype:' + event.mimetype); + }) + } } } ``` @@ -717,24 +725,26 @@ onErrorReceive(callback: (event?: { request: WebResourceRequest, error: WebResou @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .onErrorReceive((event)=>{ - console.log('getErrorInfo:' +error.getErrorInfo()); - console.log('getErrorCode:' +error.getErrorCode()); - console.log('url:' +request.getRequestUrl()); - console.log('isMainFrame:' +request.isMainFrame()); - console.log('isRedirect:' +request.isRedirect()); - console.log('isRequestGesture:' +request.isRequestGesture()); - console.log('getRequestHeader_headerKey:' +request.getRequestHeader().toString()); - let result =request.getRequestHeader(); - console.log('The request header result size is '+ result.length); - for ( let i of result) { - console.log('The request header key is : '+i.headerKey+', value is : '+i.headerValue); - } - }) + Web({ src: 'www.gitee.com', controller: this.controller }) + .onErrorReceive((event) => { + console.log('getErrorInfo:' + event.error.getErrorInfo()); + console.log('getErrorCode:' + event.error.getErrorCode()); + console.log('url:' + event.request.getRequestUrl()); + console.log('isMainFrame:' + event.request.isMainFrame()); + console.log('isRedirect:' + event.request.isRedirect()); + console.log('isRequestGesture:' + event.request.isRequestGesture()); + console.log('getRequestHeader_headerKey:' + event.request.getRequestHeader().toString()); + let result = event.request.getRequestHeader(); + console.log('The request header result size is ' + result.length); + for (let i of result) { + console.log('The request header key is : ' + i.headerKey + ', value is : ' + i.headerValue); + } + }) + } } } ``` @@ -757,31 +767,33 @@ onHttpErrorReceive(callback: (event?: { request: WebResourceRequest, response: W @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .onHttpErrorReceive((event)=>{ - console.log('url:' +request.getRequestUrl()); - console.log('isMainFrame:' +request.isMainFrame()); - console.log('isRedirect:' +request.isRedirect()); - console.log('isRequestGesture:' +request.isRequestGesture()); - console.log('getResponseData:' +response.getResponseData()); - console.log('getResponseEncoding:' +response.getResponseEncoding()); - console.log('getResponseMimeType:' +response.getResponseMimeType()); - console.log('getResponseCode:' +response.getResponseCode()); - console.log('getReasonMessage:' +response.getReasonMessage()); - let result =request.getRequestHeader(); - console.log('The request header result size is '+ result.length); - for ( let i of result) { - console.log('The request header key is : '+i.headerKey+' , value is : '+i.headerValue); - } - let resph =response.getResponseHeader(); - console.log('The response header result size is '+ resph.length); - for ( let i of resph) { - console.log('The response header key is : '+i.headerKey+' , value is : '+i.headerValue); - } - }) + Web({ src: 'www.gitee.com', controller: this.controller }) + .onHttpErrorReceive((event) => { + console.log('url:' + event.request.getRequestUrl()); + console.log('isMainFrame:' + event.request.isMainFrame()); + console.log('isRedirect:' + event.request.isRedirect()); + console.log('isRequestGesture:' + event.request.isRequestGesture()); + console.log('getResponseData:' + event.response.getResponseData()); + console.log('getResponseEncoding:' + event.response.getResponseEncoding()); + console.log('getResponseMimeType:' + event.response.getResponseMimeType()); + console.log('getResponseCode:' + event.response.getResponseCode()); + console.log('getReasonMessage:' + event.response.getReasonMessage()); + let result = event.request.getRequestHeader(); + console.log('The request header result size is ' + result.length); + for (let i of result) { + console.log('The request header key is : ' + i.headerKey + ' , value is : ' + i.headerValue); + } + let resph = event.response.getResponseHeader(); + console.log('The response header result size is ' + resph.length); + for (let i of resph) { + console.log('The response header key is : ' + i.headerKey + ' , value is : ' + i.headerValue); + } + }) + } } } ``` @@ -804,13 +816,15 @@ onPageBegin(callback: (event?: { url: string }) => void) @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .onPageBegin((event) => { - console.log('url:' +url); - }) + Web({ src: 'www.gitee.com', controller: this.controller }) + .onPageBegin((event) => { + console.log('url:' + event.url); + }) + } } } ``` @@ -833,13 +847,15 @@ onPageEnd(callback: (event?: { url: string }) => void) @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .onPageEnd((event) => { - console.log('url:' +url); - }) + Web({ src: 'www.gitee.com', controller: this.controller }) + .onPageEnd((event) => { + console.log('url:' + event.url); + }) + } } } ``` @@ -861,13 +877,15 @@ onProgressChange(callback: (event?: { newProgress: number }) => void) @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .onProgressChange((event) => { - console.log('newProgress:' +newProgress) - }) + Web({ src: 'www.gitee.com', controller: this.controller }) + .onProgressChange((event) => { + console.log('newProgress:' + event.newProgress) + }) + } } } ``` @@ -889,13 +907,15 @@ onTitleReceive(callback: (event?: { title: string }) => void) @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .onTitleReceive((event) => { - console.log('title:' +title) - }) + Web({ src: 'www.gitee.com', controller: this.controller }) + .onTitleReceive((event) => { + console.log('title:' + event.title) + }) + } } } ``` @@ -918,13 +938,15 @@ onRefreshAccessedHistory(callback: (event?: { url: string, isRefreshed: boolean @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .onRefreshAccessedHistory((event) => { - console.log('url:' +url + ' isReload:' +isRefreshed); - }) + Web({ src: 'www.gitee.com', controller: this.controller }) + .onRefreshAccessedHistory((event) => { + console.log('url:' + event.url + ' isReload:' + event.refreshed); + }) + } } } ``` @@ -946,13 +968,15 @@ onRenderExited(callback: (event?: { renderExitReason: RenderExitReason }) => voi @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { - Web({src:'chrome://crash/', controller:this.controller}) - .onRenderExited((event) => { - console.log('reason:' +renderExitReason); - }) + Web({ src: 'chrome://crash/', controller: this.controller }) + .onRenderExited((event) => { + console.log('reason:' + event.renderExitReason); + }) + } } } ``` @@ -975,30 +999,32 @@ onShowFileSelector(callback: (event?: { result: FileSelectorResult, fileSelector @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .onShowFileSelector((event) => { - AlertDialog.show({ - title:fileSelector.getTitle(), - message: 'isCapture:' +fileSelector.isCapture() + " mode:" +fileSelector.getMode() + 'acceptType:' +fileSelector.getAcceptType(), - confirm: { - value: 'upload', - action: () => { - let fileList: Array = [ - '/data/storage/el2/base/test', - ] - result.handleFileList(fileList) + Web({ src: 'www.gitee.com', controller: this.controller }) + .onShowFileSelector((event) => { + AlertDialog.show({ + title: event.fileSelector.getTitle(), + message: 'isCapture:' + event.fileSelector.isCapture() + " mode:" + event.fileSelector.getMode() + 'acceptType:' + event.fileSelector.getAcceptType(), + confirm: { + value: 'upload', + action: () => { + let fileList: Array = [ + '/data/storage/el2/base/test', + ] + event.result.handleFileList(fileList) + } + }, + cancel: () => { + let fileList: Array = [] + event.result.handleFileList(fileList) } - }, - cancel: () => { - let fileList: Array = [] - result.handleFileList(fileList) - } + }) + return true; }) - return true; - }) + } } } ``` @@ -1025,14 +1051,16 @@ onUrlLoadIntercept(callback: (event?: { data:string | WebResourceRequest }) => b @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .onUrlLoadIntercept((event) => { - console.log('onUrlLoadIntercept ' +data.toString()) - return true; - }) + Web({ src: 'www.gitee.com', controller: this.controller }) + .onUrlLoadIntercept((event) => { + console.log('onUrlLoadIntercept ' + event.data.toString()) + return true; + }) + } } } ``` @@ -1060,29 +1088,40 @@ onInterceptRequest9+(callback: (event?: { request: WebResourceRequest}) => WebRe @Component struct WebComponent { controller:WebController = new WebController(); + responseweb: WebResourceResponse = new WebResourceResponse(); + heads:Header[] = new Array(); + @State webdata: string = "\n" + + "\n"+ + "\n"+ + "intercept test\n"+ + "\n"+ + "\n"+ + "

intercept test

\n"+ + "\n"+ + "" build() { Column() { - Web({src:'www.example.com', controller:this.controller}) - .onInterceptRequest((e) => { - console.log('url:' + e.request.getRequestUrl()); - var head1:Header = { - headerKey:"Connection", - headerValue:"keep-alive" - } - var head2:Header = { - headerKey:"Cache-Control", - headerValue:"no-cache" - } - var length = this.heads.push(head1); - length = this.heads.push(head2); - this.responseweb.setResponseHeader(this.heads); - this.responseweb.setResponseData(this.webdata); - this.responseweb.setResponseEncoding('utf-8'); - this.responseweb.setResponseMimeType('text/html'); - this.responseweb.setResponseCode(200); - this.responseweb.setReasonMessage('OK'); - return this.responseweb; - }) + Web({src:'www.gitee.com', controller:this.controller}) + .onInterceptRequest((event) => { + console.log('url:' + event.request.getRequestUrl()); + var head1:Header = { + headerKey:"Connection", + headerValue:"keep-alive" + } + var head2:Header = { + headerKey:"Cache-Control", + headerValue:"no-cache" + } + var length = this.heads.push(head1); + length = this.heads.push(head2); + this.responseweb.setResponseHeader(this.heads); + this.responseweb.setResponseData(this.webdata); + this.responseweb.setResponseEncoding('utf-8'); + this.responseweb.setResponseMimeType('text/html'); + this.responseweb.setResponseCode(200); + this.responseweb.setReasonMessage('OK'); + return this.responseweb; + }) } } } @@ -1581,15 +1620,17 @@ accessBackward(): boolean @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { Button('accessBackward') - .onClick(() => { - let result = this.controller.accessBackward(); - console.log('result:' + result); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + let result = this.controller.accessBackward(); + console.log('result:' + result); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -1611,15 +1652,17 @@ accessForward(): boolean @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { Button('accessForward') - .onClick(() => { - let result = this.controller.accessForward(); - console.log('result:' + result); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + let result = this.controller.accessForward(); + console.log('result:' + result); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -1647,16 +1690,18 @@ accessStep(step: number): boolean @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); @State steps: number = 2; + build() { Column() { Button('accessStep') - .onClick(() => { - let result = this.controller.accessStep(this.steps); - console.log('result:' + result); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + let result = this.controller.accessStep(this.steps); + console.log('result:' + result); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -1673,14 +1718,16 @@ backward(): void @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { Button('backward') - .onClick(() => { - this.controller.backward(); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + this.controller.backward(); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -1697,14 +1744,16 @@ forward(): void @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { Button('forward') - .onClick(() => { - this.controller.forward(); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + this.controller.forward(); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -1733,7 +1782,7 @@ backOrForward(step: number): void .onClick(() => { this.controller.backOrForward(); }) - Web({src:'www.example.com', controller:this.controller}) + Web({src:'www.gitee.com', controller:this.controller}) } } ``` @@ -1755,15 +1804,17 @@ deleteJavaScriptRegister(name: string) @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); @State name: string = 'Object'; + build() { Column() { Button('deleteJavaScriptRegister') - .onClick(() => { - this.controller.deleteJavaScriptRegister(this.name); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + this.controller.deleteJavaScriptRegister(this.name); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -1785,15 +1836,17 @@ getHitTest(): HitTestType @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { Button('getHitTest') - .onClick(() => { - let hitType = this.controller.getHitTest(); - console.log("hitType: " + hitType); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + let hitType = this.controller.getHitTest(); + console.log("hitType: " + hitType); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -1814,16 +1867,18 @@ getHitTestValue(): HitTestValue @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { Button('getHitTestValue') - .onClick(() => { - let hitValue = this.controller.getHitTestValue(); - console.log("hitType: " + hitValue.getType()); - console.log("extra: " + hitValue.getExtra()); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + let hitValue = this.controller.getHitTestValue(); + console.log("hitType: " + hitValue.getType()); + console.log("extra: " + hitValue.getExtra()); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -1844,15 +1899,17 @@ getWebId(): number @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { Button('getWebId') - .onClick(() => { - let id = this.controller.getWebId(); - console.log("id: " + id); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + let id = this.controller.getWebId(); + console.log("id: " + id); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -1873,15 +1930,17 @@ getTitle(): string @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { Button('getTitle') - .onClick(() => { - let title = this.controller.getTitle(); - console.log("title: " + title); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + let title = this.controller.getTitle(); + console.log("title: " + title); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -1902,15 +1961,17 @@ getPageHeight(): number @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { Button('getPageHeight') - .onClick(() => { - let pageHeight = this.controller.getPageHeight(); - console.log("pageHeight: " + pageHeight); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + let pageHeight = this.controller.getPageHeight(); + console.log("pageHeight: " + pageHeight); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -1931,15 +1992,17 @@ getDefaultUserAgent(): string @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { Button('getDefaultUserAgent') - .onClick(() => { - let userAgent = this.controller.getDefaultUserAgent(); - console.log("userAgent: " + userAgent); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + let userAgent = this.controller.getDefaultUserAgent(); + console.log("userAgent: " + userAgent); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -1969,18 +2032,20 @@ baseUrl为空时,通过”data“协议加载指定的一段字符串。 @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { Button('loadData') - .onClick(() => { - this.controller.loadData({ - data: "Source:
source
", - mimeType: "text/html", - encoding: "UTF-8" - }); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + this.controller.loadData({ + data: "Source:
source
", + mimeType: "text/html", + encoding: "UTF-8" + }); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -2007,14 +2072,16 @@ loadUrl(options: { url: string | Resource, headers?: Array\ }) @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { Button('loadUrl') - .onClick(() => { - this.controller.loadUrl('https://gitee.com/'); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + this.controller.loadUrl({ url: 'https://gitee.com/' }); + }) + Web({ src: 'https://webkit.org/demos/sticky-notes/index.html', controller: this.controller }) + } } } ``` @@ -2031,14 +2098,16 @@ onActive(): void @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { Button('onActive') - .onClick(() => { - this.controller.onActive(); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + this.controller.onActive(); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -2055,14 +2124,16 @@ onInactive(): void @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { Button('onInactive') - .onClick(() => { - this.controller.onInactive(); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + this.controller.onInactive(); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -2083,15 +2154,17 @@ zoom(factor: number): void @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); @State factor: number = 1; + build() { Column() { Button('zoom') - .onClick(() => { - this.controller.zoom(this.factor); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + this.controller.zoom(this.factor); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -2112,15 +2185,17 @@ zoomIn(): boolean @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { Button('zoomIn') - .onClick(() => { - let result = this.controller.zoomIn(); - console.log("result: " + result); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + let result = this.controller.zoomIn(); + console.log("result: " + result); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -2141,15 +2216,17 @@ zoomOut(): boolean @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { Button('zoomOut') - .onClick(() => { - let result = this.controller.zoomOut(); - console.log("result: " + result); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + let result = this.controller.zoomOut(); + console.log("result: " + result); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -2166,14 +2243,16 @@ refresh() @Entry @Component struct WebComponent { - controller:WebController = new WebController(); + controller: WebController = new WebController(); + build() { Column() { Button('refresh') - .onClick(() => { - this.controller.refresh(); - }) - Web({src:'www.example.com', controller:this.controller}) + .onClick(() => { + this.controller.refresh(); + }) + Web({ src: 'www.gitee.com', controller: this.controller }) + } } } ``` @@ -2200,7 +2279,6 @@ registerJavaScriptProxy(options: { object: object, name: string, methodList: Arr controller: WebController = new WebController() testObj = { test: (data) => { - prompt.showToast({ message: "test: " + data, duration: 2000 }) return "ArkUI Web Component"; }, toString: () => { @@ -2210,14 +2288,6 @@ registerJavaScriptProxy(options: { object: object, name: string, methodList: Arr build() { Column() { Row() { - Button('htmlTest').onClick(() => { - this.controller.runJavaScript({ script: "htmlTest()"}) - }) - - Button('refresh').onClick(() => { - this.controller.refresh() - }) - Button('Register JavaScript To Window').onClick(() => { this.controller.registerJavaScriptProxy({ object: this.testObj, @@ -2234,6 +2304,7 @@ registerJavaScriptProxy(options: { object: object, name: string, methodList: Arr ``` ```html + @@ -2242,7 +2313,6 @@ registerJavaScriptProxy(options: { object: object, name: string, methodList: Arr | 用于定义客户端文本,比如JavaScript。 | \ | ## 示例 - +示例效果请以真机运行为准,当前IDE预览器不支持。 ```ts // xxx.ets @Entry diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-xcomponent.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-xcomponent.md index a9d70accd7..a16c30fb3a 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-xcomponent.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-xcomponent.md @@ -1,7 +1,7 @@ # XComponent > **说明:** - > 该组件从API Version 8 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 + > 该组件从API Version 8 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 可用于EGL/OpenGLES和媒体数据写入,并显示在XComponent组件。 @@ -83,8 +83,8 @@ getXComponentContext(): Object ## 示例 -提供surface类型XComponent,支持相机预览等能力。 - +提供surface类型XComponent,支持相机预览等能力。 +示例效果请以真机运行为准,当前IDE预览器不支持。 ```ts // xxx.ets import camera from '@ohos.multimedia.camera'; diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md index f0998baca4..009ec4b28d 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-popup.md @@ -70,7 +70,7 @@ struct PopupExample { @Builder popupBuilder() { Row({ space: 2 }) { Image('/resource/ic_public_thumbsup.svg').width(24).height(24).margin({ left: -5 }) - Text('Custom Popup').fontSize(12) + Text('Custom Popup').fontSize(10) }.width(100).height(50).backgroundColor(Color.White) } diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-z-order.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-z-order.md index a9858490e7..2bd3623df2 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-z-order.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-z-order.md @@ -39,7 +39,7 @@ struct ZIndexExample { Text('third child, zIndex(1)') .size({width: '70%', height: '50%'}).backgroundColor(0xc1cbac).align(Alignment.TopStart) .zIndex(1) - } + }.width('100%').height(200) }.width('100%').height(200) } } -- GitLab From b8281487b46cc9eb909bbdb0283f45c4341050ac Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 02:01:57 +0000 Subject: [PATCH 462/868] =?UTF-8?q?=E5=90=8C=E6=AD=A5input=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hdi-apis/_input_report_event_cb.md | 28 ++++--------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_report_event_cb.md b/zh-cn/device-dev/reference/hdi-apis/_input_report_event_cb.md index 3c2d5bddbf..b6dd937165 100644 --- a/zh-cn/device-dev/reference/hdi-apis/_input_report_event_cb.md +++ b/zh-cn/device-dev/reference/hdi-apis/_input_report_event_cb.md @@ -1,4 +1,4 @@ -# InputReportEventCb +# InputEventCb ## **概述** @@ -15,8 +15,7 @@ | Public 属性 | 描述 | | -------- | -------- | -| ( [ReportEventPkgCallback](#reporteventpkgcallback) )(const [InputEventPackage](_event_package.md) \*\*pkgs, uint32_t count, uint32_t devIndex) | 输入事件数据上报的回调函数。 [更多...](#reporteventpkgcallback) | -| ( [ReportHotPlugEventCallback](#reporthotplugeventcallback) )(const HotPlugEvent \*event) | 热插拔事件上报的回调函数。 [更多...](#reporthotplugeventcallback) | +| ( [EventPkgCallback](#eventpkgcallback) )(const [InputEventPackage](_event_package.md) \*\*pkgs, uint32_t count, uint32_t devIndex) | 输入事件数据上报的回调函数。 [更多...](#eventpkgcallback) | ## **详细描述** @@ -27,11 +26,11 @@ ## **类成员变量说明** -### ReportEventPkgCallback +### EventPkgCallback ``` -void(* InputReportEventCb::ReportEventPkgCallback) (const InputEventPackage **pkgs, uint32_t count, uint32_t devIndex) +void (* InputEventCb::EventPkgCallback)(const InputEventPackage **pkgs, uint32_t count, uint32_t devIndex); ``` **描述:** @@ -42,24 +41,7 @@ void(* InputReportEventCb::ReportEventPkgCallback) (const InputEventPackage **pk | 名称 | 描述 | | -------- | -------- | -| eventData | 驱动上报的Input事件数据。 | +| pkgs| 驱动上报的Input事件数据。 | | count | Input事件数据包的个数。 | | devIndex | Input设备索引,用于标志多个Input设备,取值从0开始,最多支持32个设备。 | - -### ReportHotPlugEventCallback - - -``` -void(* InputReportEventCb::ReportHotPlugEventCallback) (const HotPlugEvent *event) -``` - -**描述:** - -热插拔事件上报的回调函数。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| event | 上报的热插拔事件数据 | -- GitLab From e94eff0d8ae5beebdcd0b1d693f081518aeeaefe Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 02:03:52 +0000 Subject: [PATCH 463/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9struct=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/device-dev/reference/hdi-apis/Readme-CN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/Readme-CN.md b/zh-cn/device-dev/reference/hdi-apis/Readme-CN.md index dba6df0972..5751e1d1d1 100644 --- a/zh-cn/device-dev/reference/hdi-apis/Readme-CN.md +++ b/zh-cn/device-dev/reference/hdi-apis/Readme-CN.md @@ -153,11 +153,11 @@ - [IInputInterface](_i_input_interface.md) - [ILine](_i_line.md) - [InputController](_input_controller.md) + - [InputEventCb](_input_report_event_cb.md) - [InputEventPackage](_event_package.md) - [InputExtraCmd](_input_extra_cmd.md) - [InputManager](_input_manager.md) - [InputReporter](_input_reporter.md) - - [InputReportEventCb](_input_report_event_cb.md) - [IPinAuthInterface](interface_i_pin_auth_interface.md) - [IPowerHdiCallback](interface_i_power_hdi_callback.md) - [IPowerInterface](interface_i_power_interface.md) -- GitLab From fe3cb272cca048dfc8d3f8d041a7aae69dfc66fd Mon Sep 17 00:00:00 2001 From: ql Date: Thu, 28 Jul 2022 02:28:22 +0000 Subject: [PATCH 464/868] update zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md. Signed-off-by: ql --- .../apis/js-apis-distributedMissionManager.md | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md b/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md index c231350a73..698ac59a93 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md @@ -1,6 +1,6 @@ -# distributedMissionManager +# 分布式任务管理 -distributedMissionManager模块提供跨设备系统任务管理能力,包括注册系统任务状态监听、取消系统任务状态监听、开始同步远端任务列表、停止同步远端任务列表操作。 +分布式任务管理模块提供跨设备系统任务管理能力,包括注册系统任务状态监听、取消系统任务状态监听、开始同步远端任务列表、停止同步远端任务列表操作。 > **说明:** > @@ -12,9 +12,6 @@ distributedMissionManager模块提供跨设备系统任务管理能力,包括 import distributedMissionManager from '@ohos.distributedMissionManager' ``` -## 权限列表 - -ohos.permission.MANAGE_MISSIONS ## distributedMissionManager.registerMissionListener @@ -32,8 +29,8 @@ registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback, | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | - | parameter |
MissionDeviceInfo | 是 | 注册监听设备信息。 | - | options | MissionCallback | 是 | 注册的回调方法。 | + | parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是 | 注册监听设备信息。 | + | options | [MissionCallback](#missioncallback) | 是 | 注册的回调方法。 | | callback | AsyncCallback<void> | 是 | 执行结果回调函数。 | **示例:** @@ -358,7 +355,7 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise<void> | fixConflict | boolean | 是 | 是 | 表示是否存在版本冲突。 | | tag | number | 是 | 是 | 表示特定的标签。 | -## MissionDeviceInfo +## MissionDeviceInfo 表示注册监听时所需参数的枚举。 -- GitLab From 6e4d1ace313830d75fb16025d1f678d45bd2729c Mon Sep 17 00:00:00 2001 From: ql Date: Thu, 28 Jul 2022 02:31:09 +0000 Subject: [PATCH 465/868] update zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md. Signed-off-by: ql --- .../apis/js-apis-distributedMissionManager.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md b/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md index 698ac59a93..ce2e8501d6 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md @@ -75,7 +75,7 @@ registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback): | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | - | parameter | MissionDeviceInfo | 是 | 设备信息。 | + | parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是 | 设备信息。 | | options | MissionCallback | 是 | 注册的回调方法。 | **返回值:** @@ -132,7 +132,7 @@ unregisterMissionListener(parameter: MissionDeviceInfo, callback: AsyncCallback& | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | listenerId | number | 是 | 系统任务状态监听方法的index值,和监听方法一一对应,由registerMissionListener方法返回。 | - | parameter | MissionDeviceInfo | 是 | 设备信息。 | + | parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是 | 设备信息。 | | callback | AsyncCallback<void> | 是 | 执行结果回调函数。 | **示例:** @@ -163,7 +163,7 @@ unregisterMissionListener(parameter: MissionDeviceInfo): Promise<void> | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | - | parameter | MissionDeviceInfo | 是 | 设备信息。 | + | parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是 | 设备信息。 | **返回值:** @@ -202,7 +202,7 @@ startSyncRemoteMissions(parameter: MissionParameter, callback: AsyncCallback< | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | listenerId | number | 是 | 系统任务状态监听方法的index值,和监听方法一一对应,由registerMissionListener方法返回。 | - | parameter | MissionParameter | 是 | 同步信息。 | + | parameter | [MissionParameter](#missionparameter) | 是 | 同步信息。 | | callback | AsyncCallback<void> | 是 | 执行结果回调函数。 | **示例:** @@ -234,7 +234,7 @@ startSyncRemoteMissions(parameter: MissionParameter): Promise<void> | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | - | parameter | MissionParameter | 是 | 同步信息。 | + | parameter | [MissionParameter](#missionparameter) | 是 | 同步信息。 | **返回值:** @@ -275,7 +275,7 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo, callback: AsyncCallback< | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | listenerId | number | 是 | 系统任务状态监听方法的index值,和监听方法一一对应,由registerMissionListener方法返回。 | - | parameter | MissionDeviceInfo | 是 | 同步信息。 | + | parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是 | 同步信息。 | | callback | AsyncCallback<void> | 是 | 执行结果回调函数。 | **示例:** @@ -305,7 +305,7 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise<void> | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | - | parameter | MissionDeviceInfo | 是 | 同步信息。 | + | parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是 | 同步信息。 | **返回值:** @@ -327,7 +327,7 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise<void> }) ``` -## MissionCallback +## MissionCallback 表示开始同步后,建立的回调函数。 @@ -341,7 +341,7 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise<void> | notifySnapshot | function | 是 | 否 | 通知快照变化,返回设备ID,任务ID | | notifyNetDisconnect | function | 是 | 否 | 通知断开连接,返回设备ID,网络状态 | -## MissionParameter +## MissionParameter 表示同步时所需参数的枚举。 -- GitLab From 0b7131fb6d1bb0f1052c09e92c80aa704aee86b7 Mon Sep 17 00:00:00 2001 From: ql Date: Thu, 28 Jul 2022 02:34:25 +0000 Subject: [PATCH 466/868] update zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md. Signed-off-by: ql --- .../reference/apis/js-apis-distributedMissionManager.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md b/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md index ce2e8501d6..b0f8bb625b 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md @@ -131,7 +131,6 @@ unregisterMissionListener(parameter: MissionDeviceInfo, callback: AsyncCallback& | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | - | listenerId | number | 是 | 系统任务状态监听方法的index值,和监听方法一一对应,由registerMissionListener方法返回。 | | parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是 | 设备信息。 | | callback | AsyncCallback<void> | 是 | 执行结果回调函数。 | @@ -201,7 +200,6 @@ startSyncRemoteMissions(parameter: MissionParameter, callback: AsyncCallback< | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | - | listenerId | number | 是 | 系统任务状态监听方法的index值,和监听方法一一对应,由registerMissionListener方法返回。 | | parameter | [MissionParameter](#missionparameter) | 是 | 同步信息。 | | callback | AsyncCallback<void> | 是 | 执行结果回调函数。 | @@ -274,7 +272,6 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo, callback: AsyncCallback< | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | - | listenerId | number | 是 | 系统任务状态监听方法的index值,和监听方法一一对应,由registerMissionListener方法返回。 | | parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是 | 同步信息。 | | callback | AsyncCallback<void> | 是 | 执行结果回调函数。 | -- GitLab From 793e5daec4a27b978056fd701e16acd3b0ba1782 Mon Sep 17 00:00:00 2001 From: ql Date: Thu, 28 Jul 2022 02:49:48 +0000 Subject: [PATCH 467/868] update zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md. Signed-off-by: ql --- .../apis/js-apis-distributedMissionManager.md | 23 +------------------ 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md b/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md index b0f8bb625b..3e88fa97fc 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md @@ -5,6 +5,7 @@ > **说明:** > > 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> 本模块接口为系统接口。 ## 导入模块 @@ -23,8 +24,6 @@ registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback, **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission -**系统API**: 此接口为系统接口,三方应用不支持调用。 - **参数:** | 参数名 | 类型 | 必填 | 说明 | @@ -69,8 +68,6 @@ registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback): **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission -**系统API**: 此接口为系统接口,三方应用不支持调用。 - **参数:** | 参数名 | 类型 | 必填 | 说明 | @@ -125,8 +122,6 @@ unregisterMissionListener(parameter: MissionDeviceInfo, callback: AsyncCallback& **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission -**系统API**: 此接口为系统接口,三方应用不支持调用。 - **参数:** | 参数名 | 类型 | 必填 | 说明 | @@ -156,8 +151,6 @@ unregisterMissionListener(parameter: MissionDeviceInfo): Promise<void> **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission -**系统API**: 此接口为系统接口,三方应用不支持调用。 - **参数:** | 参数名 | 类型 | 必填 | 说明 | @@ -194,8 +187,6 @@ startSyncRemoteMissions(parameter: MissionParameter, callback: AsyncCallback< **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission -**系统API**: 此接口为系统接口,三方应用不支持调用。 - **参数:** | 参数名 | 类型 | 必填 | 说明 | @@ -226,8 +217,6 @@ startSyncRemoteMissions(parameter: MissionParameter): Promise<void> **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission -**系统API**: 此接口为系统接口,三方应用不支持调用。 - **参数:** | 参数名 | 类型 | 必填 | 说明 | @@ -266,8 +255,6 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo, callback: AsyncCallback< **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission -**系统API**: 此接口为系统接口,三方应用不支持调用。 - **参数:** | 参数名 | 类型 | 必填 | 说明 | @@ -296,8 +283,6 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise<void> **系统能力**:SystemCapability.Ability.AbilityRuntime.Mission -**系统API**: 此接口为系统接口,三方应用不支持调用。 - **参数:** | 参数名 | 类型 | 必填 | 说明 | @@ -330,8 +315,6 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise<void> **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Mission -**系统API**: 此接口为系统接口,三方应用不支持调用。 - | 名称 | 类型 | 可读 | 可写 | 说明 | | -------- | -------- | -------- | -------- | -------- | | notifyMissionsChanged | function | 是 | 否 | 通知任务变化,返回设备ID。| @@ -344,8 +327,6 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise<void> **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Mission -**系统API**: 此接口为系统接口,三方应用不支持调用。 - | 名称 | 参数类型 | 可读 | 可写 | 说明 | | -------- | -------- | -------- | -------- | -------- | | deviceId | string | 是 | 是 | 表示设备ID。| @@ -358,8 +339,6 @@ stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise<void> **系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Mission -**系统API**: 此接口为系统接口,三方应用不支持调用。 - | 名称 | 参数类型 | 可读 | 可写 | 说明 | | -------- | -------- | -------- | -------- | -------- | | deviceId | string | 是 | 是 | 表示设备ID。| \ No newline at end of file -- GitLab From 7aa31da645ea1b54abfc5048a63284a00176b7b6 Mon Sep 17 00:00:00 2001 From: ql Date: Thu, 28 Jul 2022 02:51:46 +0000 Subject: [PATCH 468/868] update zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md. Signed-off-by: ql --- .../reference/apis/js-apis-distributedMissionManager.md | 1 + 1 file changed, 1 insertion(+) diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md b/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md index 3e88fa97fc..06169009fe 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md @@ -5,6 +5,7 @@ > **说明:** > > 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> > 本模块接口为系统接口。 ## 导入模块 -- GitLab From fc6daa3581778c5d7cac80126e421d42ee39f207 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Tue, 26 Jul 2022 15:21:55 +0800 Subject: [PATCH 469/868] update docs Signed-off-by: Annie_wang --- .../subsystems/figure/build-process.jpg | Bin 59879 -> 55032 bytes ...build-gn-coding-style-and-best-practice.md | 271 ++- ...ys-build-gn-kconfig-visual-config-guide.md | 34 +- .../subsystems/subsys-build-mini-lite.md | 1528 +++++++++-------- .../subsystems/subsys-build-standard-large.md | 893 ++++++++-- 5 files changed, 1657 insertions(+), 1069 deletions(-) diff --git a/en/device-dev/subsystems/figure/build-process.jpg b/en/device-dev/subsystems/figure/build-process.jpg index a48ea734509526b3ed0fe85b7c4a98b0a2a9c4f0..68fba0c4265dc6899eb6576dd243a7887d5cf615 100644 GIT binary patch literal 55032 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 MzrUH@MPFL~59}#W3;+NC literal 59879 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
  • **domain**: Indicates the domain related to the event. You can use a preconfigured domain or customize a domain as needed. The name of a custom domain can contain a maximum of 16 characters, including digits (0-9) and uppercase letters (A-Z). It must start with a letter.
  • **eventName**: Indicates the event name. The value contains a maximum of 32 characters, including digits (0 to 9), letters (A-Z), and underscores (_). It must start with a letter and cannot end with an underscore.
  • **type**: Indicates the event type. For details, see EventType.
  • **keyValues**: Indicates the key-value pairs of event parameters. It can be in the format of the basic data type, std::string, std::vector<basic data type>, or std:vector<std::string>. The value contains a maximum of 48 characters, including digits (0 to 9), letters (A-Z), and underscores (_). It must start with a letter and cannot end with an underscore. The number of parameter names cannot exceed 32.
Return value:
  • **0**: The logging is successful.
  • Negative value: The logging has failed.
| - -**Table 2** Description of HiSysEvent::Domain APIs - -| API| Description| -| -------- | --------- | -| static const std::string AAFWK | Atomic ability subsystem| -| static const std::string APPEXECFWK | User program framework subsystem| -| static const std::string ACCOUNT | Account subsystem| -| static const std::string ARKUI | ARKUI subsystem| -| static const std::string AI | AI subsystem| -| static const std::string BARRIER_FREE | Accessibility subsystem| -| static const std::string BIOMETRICS | Biometric recognition subsystem| -| static const std::string CCRUNTIME |C/C++ operating environment subsystem| -| static const std::string COMMUNICATION | Public communication subsystem| -| static const std::string DEVELOPTOOLS | Development toolchain subsystem| -| static const std::string DISTRIBUTED_DATAMGR | Distributed data management subsystem| -| static const std::string DISTRIBUTED_SCHEDULE | Distributed Scheduler subsystem| -| static const std::string GLOBAL | Globalization subsystem| -| static const std::string GRAPHIC | Graphics subsystem| -| static const std::string HIVIEWDFX | DFX subsystem| -| static const std::string IAWARE | Scheduling and resource management subsystem| -| static const std::string INTELLI_ACCESSORIES | Smart accessory subsystem| -| static const std::string INTELLI_TV | Smart TV subsystem| -| static const std::string IVI_HARDWARE | IVI-dedicated hardware subsystem| -| static const std::string LOCATION | LBS subsystem| -| static const std::string MSDP | MSDP subsystem| -| static const std::string MULTI_MEDIA | Media subsystem| -| static const std::string MULTI_MODAL_INPUT | Multimode input subsystem| -| static const std::string NOTIFICATION | Common event and notification subsystem| -| static const std::string POWERMGR | Power management subsystem| -| static const std::string ROUTER | Router subsystem| -| static const std::string SECURITY | Security subsystem| -| static const std::string SENSORS | Pan-sensor subsystem| -| static const std::string SOURCE_CODE_TRANSFORMER | Application porting subsystem| -| static const std::string STARTUP | Startup subsystem| -| static const std::string TELEPHONY | Telephony subsystem| -| static const std::string UPDATE | Update subsystem| -| static const std::string USB | USB subsystem| -| static const std::string WEARABLE_HARDWARE | Wearable-dedicated hardware subsystem| -| static const std::string WEARABLE_HARDWARE | Wearable-dedicated service subsystem| -| static const std::string OTHERS | Others| - -**Table 3** Description of HiSysEvent::EventType - -| Name| Description| -| -------- | --------- | -| FAULT | Fault event| +# HiSysEvent Logging + +## Overview + +### Introduction + +HiSysEvent provides event logging APIs for OpenHarmony to record important information of key processes during system running. Besides, it supports shielding of event logging by event domain, helping you to evaluate the impact of event logging. + +### Working Principles + +Before logging system events, you need to complete HiSysEvent logging configuration. For details, see [HiSysEvent Logging Configuration](subsys-dfx-hisysevent-logging-config.md). + +## Development Guidelines + +### When to Use + +Use HiSysEvent logging to flush logged event data to disks. + +### Available APIs + +#### C++ Event Logging APIs + +HiSysEvent logging is implemented using the API provided by the **HiSysEvent** class. For details, see the API Reference. + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE** +> In OpenHarmony-3.2-Beta3, HiSysEvent logging is open for restricted use to avoid event storms. The **HiSysEvent::Write** API in Table 1 is replaced by the **HiSysEventWrite** API in Table 2. The **HiSysEvent::Write** API has been deprecated. Use the **HiSysEventWrite** API instead for HiSysEvent logging. + +**Table 1** C++ event logging API (deprecated) + +| API | Description | +| ------------------------------------------------------------ | ---------------------- | +| template<typename... Types> 
static int Write(const std::string &domain, const std::string &eventName, EventType type, Types... keyValues) | Flushes logged event data to disks.| + +**Table 2** C++ event logging API (in use) +| API | Description | +| ------------------------------------------------------------ | ---------------------- | +| HiSysEventWrite(domain, eventName, type, ...) | Flushes logged event data to disks.| + + **Table 3** Event types + +| Event | Description | +| --------- | ------------ | +| FAULT | Fault event| +| STATISTIC | Statistical event| +| SECURITY | Security event| +| BEHAVIOR | Behavior event| + +#### Kernel Event Logging APIs + +The following table describes the kernel event logging APIs. + +**Table 4** Description of kernel event logging APIs + +| API | Description | +| ------------------------------------------------------------ | ------------------------------------ | +| struct hiview_hisysevent *hisysevent_create(const char *domain, const char *name, enum hisysevent_type type); | Creates a **hisysevent** object. | +| void hisysevent_destroy(struct hiview_hisysevent *event); | Destroys a **hisysevent** object. | +| int hisysevent_put_integer(struct hiview_hisysevent *event, const char *key, long long value); | Adds event parameters of the integer type to a **hisysevent** object. | +| int hisysevent_put_string(struct hiview_hisysevent *event, const char *key, const char *value); | Adds event parameters of the string type to a **hisysevent** object.| +| int hisysevent_write(struct hiview_hisysevent *event); | Flushes **hisysevent** object data to disks. | + +Table 5 Kernel event types + +| Event | Description | +| --------- | ------------ | +| FAULT | Fault event| | STATISTIC | Statistical event| -| SECURITY | Security event| -| BEHAVIOR | System behavior event| +| SECURITY | Security event| +| BEHAVIOR | Behavior event| + +### How to Develop + +#### C++ Event Logging + +1. Call the event logging API wherever needed, with required event parameters passed to the API. + + ```c++ + HiSysEventWrite(HiSysEvent::Domain::AAFWK, "START_APP", HiSysEvent::EventType::BEHAVIOR, "APP_NAME", "com.ohos.demo"); + ``` + +#### Kernel Event Logging + +1. Create a **hisysevent** object based on the specified event domain, event name, and event type. + + ```c + struct hiview_hisysevent *event = hisysevent_create("KERNEL", "BOOT", BEHAVIOR); + ``` + +2. Pass the customized event parameters to the **hisysevent** object. -### Development Example + ```c + // Add a parameter of the integer type. + hisysevent_put_integer(event, "BOOT_TIME", 100); -C++ + // Add a parameter of the string type. + hisysevent_put_string(event, "MSG", "This is a test message"); + ``` -1. Develop the source code. +3. Trigger reporting of the **hisysevent** event. - Include the HiSysEvent header file in the class definition header file or class implementation source file. For example: + ```c + hisysevent_write(event); + ``` +4. Manually destroy the **hisysevent** object. + + ```c + hisysevent_destroy(&event); + ``` + +#### Shielding of Event Logging by Event Domain + +1. In the corresponding file, define the **DOMAIN_MASKS** macro with content similar to DOMAIN_NAME_1|DOMAIN_NAME_2|...|DOMAIN_NAME_n. There are three scenarios: + +- Shielding only event logging for the event domains configured in the current source code file: Define the **DOMAIN_MASKS** macro before importing the **.cpp** file to the **hisysevent.h** file. + ```c++ + #define DOMAIN_MASKS "DOMAIN_NAME_1|DOMAIN_NAME_2|...|DOMAIN_NAME_n" + #include "hisysevent.h" + ``` + +- Shielding event logging for event domains of the entire module: Define the **DOMAIN_MASKS** macro in the **BUILD.gn** file of the module. + ```gn + config("module_a"){ + cflags_cc += ["-DDOMAIN_MASKS=\"DOMAIN_NAME_1|DOMAIN_NAME_2|...|DOMAIN_NAME_n\""] + } + ``` + +- Shielding event logging for event domains globally: Define the **DOMAIN_MASKS** macro in **/build/config/compiler/BUILD.gn**. + ```gn + cflags_cc += ["-DDOMAIN_MASKS=\"DOMAIN_NAME_1|DOMAIN_NAME_2|...|DOMAIN_NAME_n\""] + ``` + +2. Perform event logging by using the **HiSysEventWrite** API. + ```c++ + constexpr char DOMAIN[] = "DOMAIN_NAME_1"; + const std::string eventName = "EVENT_NAME1"; + OHOS:HiviewDFX::HiSysEvent::EventType eventType = OHOS:HiviewDFX::HiSysEvent::EventType::FAULT; + HiSysEventWrite(domain, eventName, eventType); // Event logging is shielded for DOMAIN_NAME_1 because it has been defined in the DOMAIN_MASKS macro. + ``` + +### Development Examples + +#### C++ Event Logging + +Assume that a service module needs to trigger event logging during application startup to record the application startup event and application bundle name. The following is the complete sample code: + +1. Add the HiSysEvent component dependency to the **BUILD.gn** file of the service module. + + ```c++ + external_deps = [ "hisysevent_native:libhisysevent" ] + ``` + +2. In the application startup function **StartAbility()** of the service module, call the event logging API with the event parameters passed in. + + ```c++ + #include "hisysevent.h" + + int StartAbility() + { + ... // Other service logic + int ret = HiSysEventWrite(HiSysEvent::Domain::AAFWK, "START_APP", HiSysEvent::EventType::BEHAVIOR, "APP_NAME", "com.ohos.demo"); + ... // Other service logic + } + ``` + +#### Kernel Event Logging + +Assume that the kernel service module needs to trigger event logging during device startup to record the device startup event. The following is the complete sample code: + +1. In the device startup function **device_boot()**, construct a **hisysevent** object. After that, trigger event reporting, and then destroy the **hisysevent** object. + + ```c + #include + + #include + #include + + int device_boot() + { + ... // Other service logic + struct hiview_hisysevent *event = NULL; + int ret = 0; + + event = hisysevent_create("KERNEL", "BOOT", BEHAVIOR); + if (!event) { + pr_err("failed to create event"); + return -EINVAL; + } + ret = hisysevent_put_string(event, "MSG", "This is a test message"); + if (ret != 0) { + pr_err("failed to put sting to event, ret=%d", ret); + goto hisysevent_end; + } + ret = hisysevent_write(event); + + hisysevent_end: + hisysevent_destroy(&event); + ... // Other service logic + } ``` + +#### Shielding of Event Logging by Event Domain + +- If you want to shield event logging for the **AAFWK** and **POWER** domains in a **.cpp** file, define the **DOMAIN_MASKS** macro before including the **hisysevent.h** header file to the **.cpp** file. + ```c++ + + #define DOMAIN_MASKS "AAFWK|POWER" + #include "hisysevent.h" - ``` + ... // Other service logic + HiSysEventWrite(OHOS:HiviewDFX::HiSysEvent::Domain::AAFWK, "JS_ERROR", OHOS:HiviewDFX::HiSysEvent::EventType::FAULT, "MODULE", "com.ohos.module"); // HiSysEvent logging is not performed. + ... // Other service logic + HiSysEventWrite(OHOS:HiviewDFX::HiSysEvent::Domain::POWER, "POWER_RUNNINGLOCK", OHOS:HiviewDFX::HiSysEvent::EventType::FAULT, "NAME", "com.ohos.module"); // HiSysEvent logging is not performed. - Add the event logging code. For example, if you want to log events specific to the app start time (start\_app), then add the following code to the service implementation source file: + ``` +- If you want to shield event logging for the **AAFWK** and **POWER** domains of the entire service module, define the **DOMAIN_MASKS** macro as follows in the **BUILG.gn** file of the service module. + ```gn + config("module_a") { + ... // Other configuration items + cflags_cc += ["-DDOMAIN_MASKS=\"AAFWK|POWER\""] + } ``` - HiSysEvent::Write(HiSysEvent::Domain::AAFWK, "start_app", HiSysEvent::EventType::FAULT, "app_name", "com.demo"); + +- If you want to shield event logging for the **AAFWK** and **POWER** domains globally, define the **DOMAIN_MASKS** macro as follows in **/build/config/compiler/BUILD.gn**. + ```gn + ... // Other configuration items + cflags_cc += ["-DDOMAIN_MASKS=\"AAFWK|POWER\""] ``` -2. Configure compilation information. Specifically, add the subsystem SDK dependency to **BUILD.gn**. +# Reference - ``` - external_deps = [ "hisysevent_native:libhisysevent" ] - ``` +The HiSysEvent module writes the logged event data to the node file, and the Hiview module parses and processes the event data in a unified manner. For details, see the [Hiview Development Guide](subsys-dfx-hiview.md). diff --git a/en/device-dev/subsystems/subsys-dfx-hisysevent-overview.md b/en/device-dev/subsystems/subsys-dfx-hisysevent-overview.md new file mode 100644 index 0000000000..f5c12b520b --- /dev/null +++ b/en/device-dev/subsystems/subsys-dfx-hisysevent-overview.md @@ -0,0 +1,22 @@ +# HiSysEvent Overview + + +## Introduction + +HiSysEvent provides event logging APIs for OpenHarmony to record important information of key processes during system running, helping you locate faults. In addition, you can upload the log data to the cloud for big data analytics. + +The key modules of HiSysEvent are described as follows: + +- Event configuration: enables you to define HiSysEvent events in YAML files. + +- Trace point configuration: provides trace point APIs and supports flushing of HiSysEvent events to disks. + +- Event subscription: provides APIs for you to subscribe to HiSysEvent events by event domain and event name. + +- Event query: provides APIs for you to query HiSysEvent events by event domain and event name. + +- Event debugging tool: allows you to subscribe to real-time HiSysEvent events and query historical HiSysEvent events. + +## Reference + +For more information about the source code and usage of HiSysEvent, access the HiSysEvent code repository(https://gitee.com/openharmony/hiviewdfx_hisysevent). diff --git a/en/device-dev/subsystems/subsys-dfx-hisysevent.md b/en/device-dev/subsystems/subsys-dfx-hisysevent.md index aba11496ba..86ceb22715 100644 --- a/en/device-dev/subsystems/subsys-dfx-hisysevent.md +++ b/en/device-dev/subsystems/subsys-dfx-hisysevent.md @@ -1,5 +1,7 @@ # HiSysEvent Development +- **[HiSysEvent Overview](subsys-dfx-hisysevent-overview.md)** + - **[HiSysEvent Logging Configuration](subsys-dfx-hisysevent-logging-config.md)** - **[HiSysEvent Logging](subsys-dfx-hisysevent-logging.md)** diff --git a/en/device-dev/subsystems/subsys-dfx-hiview.md b/en/device-dev/subsystems/subsys-dfx-hiview.md new file mode 100644 index 0000000000..34751c841a --- /dev/null +++ b/en/device-dev/subsystems/subsys-dfx-hiview.md @@ -0,0 +1,197 @@ +# Hiview Development Guide + + +## Introduction + + +### Function Overview + +Hiview is a module that provides toolkits for device maintenance across different platforms. It consists of the plugin management platform and the service plugins running on the platform. Hiview works in event-driven mode. The core of Hiview is a collection of HiSysEvent stubs distributed in the system. Formatted events are reported to Hiview through the HiSysEvent API for processing. The following figure shows the data interaction process. + +**Figure 1** Data interaction between Hiview modules + +![Hiview_module_data_interaction](figure/Hiview_module_data_interaction.png) + +1. The service process calls the event logging API to report logged event information and writes the information to the node file. +2. SysEventSource of the Hiview process asynchronously reads event information from the node file and distributes the event to SysEventPipeline for processing. + - The SysEventService plugin verifies events and flushes them to disks. + - The Faultlogger plugin processes fault-related events. + - The EventLogger plugin collects event-related log information. +3. On completion of event processing, SysEventPipeline sends the events to the event subscription queue and then dispatches the events to the subscription plugin for processing. + - FreezeDetectorPlugin processes screen freezing events. + - HiCollieCollector processes suspension events. + +### Basic Concepts + +Before you get started, familiarize yourself with the following concepts: + +- Plug-in + + An independent module running in the Hiview process. A plugin is delivered with the Hiview binary file to implement maintenance and fault management functions independently. Plug-ins can be disassembled independently during compilation, and can be hosted on the platform during running and dynamically configured. + +- Pipeline + + An ordered set of event processing plugins. Events entering the pipeline are processed by plugins on the pipeline in sequence. + +- Event source + + A special plugin that can produce events. Different from common plugins, a special plugin can be bound to a pipeline, and can produce events and distribute them to the pipeline. + +- Pipeline group + + A group of pipelines configured on the same event source. + +### Working Principles + +Hiview supports plugin development on the plugin management platform and provides the required plugin development capabilities. You can add plugins to the Hiview platform to implement HiSysEvent event processing. Before you get started, you're expected to have a basic understanding of plugin working principles. + +#### Plug-in Registration + +A plugin can be registered in any of the following modes. + +| Mode | Description | +| ------------------ | ------------------------------------------------------------ | +| Static registration | Use the **REGISTER(xxx);** macro to register the plugin. Such a plugin cannot be unloaded.| +| Proxy registration | Use the **REGISTER_PROXY(xxx);** macro to register the plugin. Such a plugin is not loaded upon startup and can be loaded and unloaded dynamically during system running.| +| Proxy registration and loading upon startup| Use the **REGISTER_PROXY_WITH_LOADED(xxx);** macro to register the plugin. Such a plugin is loaded upon startup and can be unloaded and loaded dynamically during system running.| + +#### Plug-in Event-Driven Modes + +There are two event-driven modes available for plugins: pipeline-driven and subscription-driven. The differences are as follows: + +- Pipeline-driven plugins need to be configured on the pipeline. After an event is distributed from an event source to the pipeline, the event traverses the plugins configured on the pipeline in sequence for processing. +- Subscription-driven plugins do not need to be configured on the pipeline. However, a listener needs to be registered with the Hiview platform upon plugin startup, and the plugin needs to implement the event listener function. + +#### Plug-in Loading + +Depending on your service demand, you can compile all or some plugins into the Hiview binary file. + +Multiple plugins can be built into an independent plugin package and preset in the system as an independent **.so** file. One **.so** file corresponds to one **plugin_config** file. For example, **libxxx.z.so** corresponds to the** xxx_plugin_config** file. When the Hiview process starts, it scans for the plugin package (**.so** file) and the corresponding configuration file and loads the plugins in the plugin package. + +The plugin package is described as follows: + +1. The plugin package runs on the plugin management platform as an independent entity. The plugins, pipelines, or event sources in it provide the same functions as the plugins in the Hiview binary. + +2. Plug-ins in the plugin package can be inserted into the Hiview binary pipeline. + + +3. Subscribers, wherever they are located, can receive events sent by the platform based on the subscription rules. + + +## Plug-in Development Guide + + +### When to Use + +You can deploy a plugin on the Hiview platform if you want to perform specific service processing on the HiSysEvent events distributed from the event source. The following table describes the APIs used for plugin development. + +### Available APIs + +The following table lists the APIs related to plugin development. For details about the APIs, see the API Reference. + +Table 1 Description of Plugin APIs + +| API | Description | +| ------------------------------------------------------------ | ------------------------------------------------------------ | +| virtual void OnLoad() | Loads plugins. After plugins are loaded, you can call this API to initialize data.| +| virtual void OnUnload() | Unloads plugins. Before plugins are unloaded, you can call this API to reclaim data. | +| virtual bool ReadyToLoad() | Checks whether the current plugin can be loaded when the Hiview starts plugin loading. | +| virtual bool OnEvent(std::shared_ptr\& event) | Implements event processing. You can call this API to receive events distributed by the pipeline or platform perform service processing.| +| virtual bool CanProcessEvent(std::shared_ptr\ event) | Checks whether an event can traverse backward throughout the entire pipeline. This function takes effect only when the plugin is the first one in the pipeline.| +| HiviewContext* GetHiviewContext() | Obtains the context of the Hiview plugin management platform. | + +**Table 2** Description of Event APIs + +| API | Description | +| ---------------------- | ---------------------------- | +| domain_ | Event domain. | +| eventName_ | Event name. | +| happenTime_ | Time when an event occurs. | +| jsonExtraInfo_ | Event data in JSON format. | +| bool IsPipelineEvent() | Whether an event is a pipeline event. | +| bool HasFinish() | Whether an event can continue to traverse backward.| + +### How to Develop + +1. Define a service plugin class, namely, **PluginExample**, which inherits from the **Plugin** class. + + ```c++ + #include "event.h" + #include "plugin.h" + + class PluginExample : public Plugin { + public: + bool OnEvent(std::shared_ptr& event) override; + void OnLoad() override; + void OnUnload() override; + }; + ``` + +2. In the plugin class implementation code, register the plugin and overwrite the corresponding functions based on the service requirements. + + ```c++ + #include "plugin_factory.h" + + // Register the plugin in static registration mode. + REGISTER(PluginExample); + + void PluginExample::OnLoad() + { + ... // Initialize plugin resources while the plugin is loaded. + printf("PluginExample OnLoad \n"); + } + + void PluginExample::OnUnload() + { + ... // Release plugin resources while the plugin is unloaded. + printf("PluginExample OnUnload \n"); + } + + bool PluginExample::OnEvent(std::shared_ptr& event) + { + ... // Perform specific service processing on the event using the event processing function. + printf("PluginExample OnEvent \n"); + + // If the plugin focuses only on events of a certain domain, log only the events of this domain. + if (event->domain_ == "TEST_DOMAIN") { + printf("The event data received is %s \n", event->jsonExtraInfo_); + return true; + } + + return false; + } + ``` + +3. Configure the plugin in the **plugin_build.json** file and compile the plugin with the Hiview binary file. + + ```json + { + "plugins": { + "PluginExample": { + "path": "plugins/PluginExample", + "name": "PluginExample" + } + }, + "rules": [ + { + "info": { + "loadorder": { + "PluginExample": { + "loadtime": 0 + } + }, + "pipelines": { + "SysEventPipeline": [ + PluginExample + ] + } + } + } + ] + } + ``` + + +## Reference + +For more information about the source code and usage of HiSysEvent, access the Hiview code repository(https://gitee.com/openharmony/hiviewdfx_hiview). diff --git a/en/device-dev/subsystems/subsys-dfx-overview.md b/en/device-dev/subsystems/subsys-dfx-overview.md index 10d5728549..17f65f4ffd 100644 --- a/en/device-dev/subsystems/subsys-dfx-overview.md +++ b/en/device-dev/subsystems/subsys-dfx-overview.md @@ -12,6 +12,7 @@ The DFX subsystem provides the following functions: - HiChecker: implements defect scanning. It is applicable to standard-system devices \(reference memory ≥ 128 MiB\). - HiDumper: exports system information. It is applicable to standard-system devices \(reference memory ≥ 128 MiB\). - FaultLogger: implements crash detection. It is applicable to standard-system devices \(reference memory ≥ 128 MiB\). +- Hiview: implements device maintenance across different platforms. It is applicable to standard-system devices \(reference memory ≥ 128 MiB\). ## Basic Concepts diff --git a/en/device-dev/subsystems/subsys-dfx.md b/en/device-dev/subsystems/subsys-dfx.md index 6ede18fca6..f01cb1eb3b 100644 --- a/en/device-dev/subsystems/subsys-dfx.md +++ b/en/device-dev/subsystems/subsys-dfx.md @@ -8,3 +8,4 @@ - **[HiSysEvent Development](subsys-dfx-hisysevent.md)** - **[HiDumper Development](subsys-dfx-hidumper.md)** - **[HiChecker Development](subsys-dfx-hichecker.md)** +- **[Hiview Development](subsys-dfx-hiview.md)** -- GitLab From d6037b788e552290fe1d453b52a29e172a7bbe5a Mon Sep 17 00:00:00 2001 From: xu-rui-w Date: Thu, 28 Jul 2022 15:29:26 +0800 Subject: [PATCH 516/868] =?UTF-8?q?=E7=A4=BA=E4=BE=8B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xu-rui-w --- zh-cn/application-dev/reference/apis/js-apis-image.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-image.md b/zh-cn/application-dev/reference/apis/js-apis-image.md index 9aa409b0d2..b6f5400734 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-image.md +++ b/zh-cn/application-dev/reference/apis/js-apis-image.md @@ -892,8 +892,6 @@ let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } image.createPixelMap(color, opts, (pixelmap) => { pixelmap.release().then(() => { console.log('Succeeded in releasing pixelmap object.'); - }).catch(error => { - console.log('Failed to release pixelmap object.'); }) }) ``` @@ -1637,8 +1635,6 @@ let packOpts = { format:"image/jpeg", quality:98 } const pixelMapApi = new ArrayBuffer(400); imagePackerApi.packing(pixelMapApi, packOpts, data => { console.log('Succeeded in packing the image.'); -}).catch(error => { - console.log('Failed to pack the image.'); }) ``` @@ -2070,8 +2066,6 @@ release(callback: AsyncCallback\): void ```js img.release(() =>{ console.log('release succeeded.'); -}).catch(error => { - console.log('release failed.'); }) ``` -- GitLab From d4b92f829c187fdc7060a82f17101f7efc131b59 Mon Sep 17 00:00:00 2001 From: Austin Date: Thu, 28 Jul 2022 07:45:06 +0000 Subject: [PATCH 517/868] update CODEOWNERS. Signed-off-by: Austin23 --- CODEOWNERS | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/CODEOWNERS b/CODEOWNERS index 677e3bcd63..025c30e103 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -24,11 +24,16 @@ zh-cn/device-dev/driver/ @li-yan339 zh-cn/device-dev/get-code/ @li-yan339 zh-cn/device-dev/hpm-part/ @duangavin123_admin zh-cn/device-dev/reference/hdi-apis/ @li-yan339 -zh-cn/device-dev/subsystems/subsys-build-mini-lite.md @Austin23 -zh-cn/device-dev/subsystems/subsys-build-standard-large.md @Austin23 -zh-cn/device-dev/subsystems/subsys-build-gn-coding-style-and-best-practice.md @Austin23 -zh-cn/device-dev/subsystems/subsys-build-gn-kconfig-visual-config-guid.md @Austin23 -zh-cn/device-dev/subsystems/subsys-build-gn-hap-compilation-guide.md @Austin23 +zh-cn/device-dev/quick-start/quickstart-standard-env-setup.md @li-yan339 @chenmudan +zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md @li-yan339 @chenmudan +zh-cn/device-dev/porting/porting-thirdparty-overview.md @Austin23 @chenmudan +zh-cn/device-dev/porting/porting-thirdparty-makefile.md @Austin23 @chenmudan +zh-cn/device-dev/porting/porting-thirdparty-cmake.md @Austin23 @chenmudan +zh-cn/device-dev/subsystems/subsys-build-mini-lite.md @Austin23 @chenmudan +zh-cn/device-dev/subsystems/subsys-build-standard-large.md @Austin23 @chenmudan +zh-cn/device-dev/subsystems/subsys-build-gn-coding-style-and-best-practice.md @Austin23 @chenmudan +zh-cn/device-dev/subsystems/subsys-build-gn-kconfig-visual-config-guid.md @Austin23 @chenmudan +zh-cn/device-dev/subsystems/subsys-build-gn-hap-compilation-guide.md @Austin23 @chenmudan zh-cn/device-dev/subsystems/subsys-remote-start.md @duangavin123_admin zh-cn/device-dev/subsystems/subsys-graphics-overview.md @duangavin123_admin zh-cn/device-dev/subsystems/subsys-graphics-container-guide.md @duangavin123_admin @@ -46,7 +51,7 @@ zh-cn/device-dev/subsystems/subsys-utils-overview.md @Austin23 zh-cn/device-dev/subsystems/subsys-utils-guide.md @Austin23 zh-cn/device-dev/subsystems/subsys-utils-faqs.md @Austin23 zh-cn/device-dev/subsystems/subsys-aiframework-guide.md @Austin23 -zh-cn/device-dev/subsystems/subsys-aiframework-envbuild.md @Austin23 +zh-cn/device-dev/subsystems/subsys-aiframework-envbuild.md @Austin23 zh-cn/device-dev/subsystems/subsys-aiframework-tech-codemanage.md @Austin23 zh-cn/device-dev/subsystems/subsys-aiframework-tech-name.md @Austin23 zh-cn/device-dev/subsystems/subsys-aiframework-tech-interface.md @Austin23 -- GitLab From 42769e858f308e712c362216b0f108fc75ae5383 Mon Sep 17 00:00:00 2001 From: weishaoxiong Date: Thu, 28 Jul 2022 15:50:00 +0800 Subject: [PATCH 518/868] =?UTF-8?q?Signed-off-by:=20weishaoxiong=20=20fix:wallpaper=E9=83=A8=E4=BB=B6=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=9A=84=E5=AE=8C=E6=95=B4=E6=80=A7=E5=92=8C=E4=B8=80?= =?UTF-8?q?=E8=87=B4=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/application-dev/reference/apis/js-apis-wallpaper.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-wallpaper.md b/zh-cn/application-dev/reference/apis/js-apis-wallpaper.md index 4a8a901372..bc165fd64f 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-wallpaper.md +++ b/zh-cn/application-dev/reference/apis/js-apis-wallpaper.md @@ -530,7 +530,7 @@ getFile(wallpaperType: WallpaperType, callback: AsyncCallback<number>): vo 获取指定类型的壁纸文件。 -**需要权限**:ohos.permission.SET_WALLPAPER、ohos.permission.READ_USER_STORAGE +**需要权限**:ohos.permission.GET_WALLPAPER、ohos.permission.READ_USER_STORAGE **系统能力**: SystemCapability.MiscServices.Wallpaper @@ -559,7 +559,7 @@ getFile(wallpaperType: WallpaperType): Promise<number> 获取指定类型的壁纸文件。 -**需要权限:** ohos.permission.SET_WALLPAPER、ohos.permission.READ_USER_STORAGE +**需要权限:** ohos.permission.GET_WALLPAPER、ohos.permission.READ_USER_STORAGE **系统能力**: SystemCapability.MiscServices.Wallpaper @@ -596,6 +596,8 @@ getPixelMap(wallpaperType: WallpaperType, callback: AsyncCallback<image.Pixel **系统能力**: SystemCapability.MiscServices.Wallpaper +**系统API**:此接口为系统接口,三方应用不支持调用。 + **参数:** | 参数名 | 类型 | 必填 | 说明 | @@ -623,6 +625,8 @@ getPixelMap(wallpaperType: WallpaperType): Promise<image.PixelMap> **系统能力**: SystemCapability.MiscServices.Wallpaper +**系统API**:此接口为系统接口,三方应用不支持调用。 + **参数:** | 参数名 | 类型 | 必填 | 说明 | -- GitLab From e77f7d6176d3c3e906659946434c11c70fc7a4fb Mon Sep 17 00:00:00 2001 From: luoying_ace_admin Date: Thu, 28 Jul 2022 15:16:21 +0800 Subject: [PATCH 519/868] add docs Signed-off-by: luoying_ace_admin --- zh-cn/application-dev/reference/arkui-ts/ts-container-flex.md | 2 +- .../reference/arkui-ts/ts-universal-attributes-visibility.md | 2 +- zh-cn/application-dev/ui/ts-rending-control-syntax-foreach.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-flex.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-flex.md index ee0bb24bd1..75ffa64bdb 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-container-flex.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-flex.md @@ -4,7 +4,7 @@ > **说明:** > - 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 -> - Flex组件在设置flexShrink、flexGrow时存在二次布局过程,因此在对性能有严格要求的场景下建议使用[Column](reference/arkui-ts/ts-container-column.md)、[Row](reference/arkui-ts/ts-container-row.md)代替。 +> - Flex组件在设置flexShrink、flexGrow时存在二次布局过程,因此在对性能有严格要求的场景下建议使用[Column](ts-container-column.md)、[Row](ts-container-row.md)代替。 ## 权限列表 diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-visibility.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-visibility.md index b477b73eab..5f476bd46f 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-visibility.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-visibility.md @@ -16,7 +16,7 @@ | 名称 | 参数类型 | 默认值 | 描述 | | -------- | -------- | -------- | -------- | -| visibility | Visibility | Visibility.Visible | 控制当前组件显示或隐藏。注意,即使组件处于隐藏状态,在页面刷新时仍存在重新创建过程,因此当对性能有严格要求时建议使用if语句代替。| +| visibility | Visibility | Visibility.Visible | 控制当前组件显示或隐藏。注意,即使组件处于隐藏状态,在页面刷新时仍存在重新创建过程,因此当对性能有严格要求时建议使用[条件渲染](../../ui/ts-rending-control-syntax-if-else.md)代替。| - Visibility枚举说明 diff --git a/zh-cn/application-dev/ui/ts-rending-control-syntax-foreach.md b/zh-cn/application-dev/ui/ts-rending-control-syntax-foreach.md index 6ff2b1e688..ca8508c879 100644 --- a/zh-cn/application-dev/ui/ts-rending-control-syntax-foreach.md +++ b/zh-cn/application-dev/ui/ts-rending-control-syntax-foreach.md @@ -1,6 +1,6 @@ # 循环渲染 -开发框架提供循环渲染(ForEach组件)来迭代数组,并为每个数组项创建相应的组件。当循环渲染的元素较多时,会出现页面加载变慢的情况,出于性能考虑,建议使用[LazyForEach](ui/ts-rending-control-syntax-lazyforeach.md)代替。ForEach定义如下: +开发框架提供循环渲染(ForEach组件)来迭代数组,并为每个数组项创建相应的组件。当循环渲染的元素较多时,会出现页面加载变慢的情况,出于性能考虑,建议使用[LazyForEach](ts-rending-control-syntax-lazyforeach.md)代替。ForEach定义如下: ``` -- GitLab From 176e66cfa0ca408e1b3eb0d5901e09f449ad116c Mon Sep 17 00:00:00 2001 From: jiao_yanlin Date: Thu, 28 Jul 2022 16:01:06 +0800 Subject: [PATCH 520/868] Sample code format modification Signed-off-by: jiao_yanlin --- .../reference/apis/js-apis-audio.md | 248 ++++++++++-------- 1 file changed, 132 insertions(+), 116 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-audio.md b/zh-cn/application-dev/reference/apis/js-apis-audio.md index 618f1f3e95..a57ff7dee9 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-audio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-audio.md @@ -93,10 +93,10 @@ var audioRendererOptions = { audio.createAudioRenderer(audioRendererOptions,(err, data) => { if (err) { - console.error(`AudioRenderer Created : Error: ${err.message}`); + console.error(`AudioRenderer Created: Error: ${err.message}`); } else { - console.info('AudioRenderer Created : Success : SUCCESS'); + console.info('AudioRenderer Created: Success: SUCCESS'); let audioRenderer = data; } }); @@ -190,7 +190,7 @@ var audioCapturerOptions = { capturerInfo: audioCapturerInfo } -audio.createAudioCapturer(audioCapturerOptions,(err, data) => { +audio.createAudioCapturer(audioCapturerOptions, (err, data) => { if (err) { console.error(`AudioCapturer Created : Error: ${err.message}`); } @@ -2060,22 +2060,22 @@ getCurrentAudioCapturerInfoArray(): Promise<AudioCapturerChangeInfoArray> await audioStreamManagerCB.getCurrentAudioCapturerInfoArray().then( function (AudioCapturerChangeInfoArray) { console.info('AFCapturerChangeLog: [GET_CAP_STA_1_PR] **** Get Promise Called ****'); if (AudioCapturerChangeInfoArray!=null) { - for (let i=0;i { - for (let i=0;i { - for (let i=0;i { if (err) { console.error(Tag+'Get AudioStream Manager : ERROR : '+err.message); - }else { + } + else { audioStreamManagerCB = data; console.info(Tag+'Get AudioStream Manager : Success '); } }); audioStreamManagerCB.on('audioRendererChange', (AudioRendererChangeInfoArray) => { - for (let i=0;i { - for (let i=0;i): void audioRenderer.start((err) => { if (err) { console.error('Renderer start failed.'); - } else { + } + else { console.info('Renderer start success.'); } }); @@ -2644,7 +2647,8 @@ pause(callback: AsyncCallback\): void audioRenderer.pause((err) => { if (err) { console.error('Renderer pause failed'); - } else { + } + else { console.log('Renderer paused.'); } }); @@ -2694,7 +2698,8 @@ drain(callback: AsyncCallback\): void audioRenderer.drain((err) => { if (err) { console.error('Renderer drain failed'); - } else { + } + else { console.log('Renderer drained.'); } }); @@ -2744,7 +2749,8 @@ stop(callback: AsyncCallback\): void audioRenderer.stop((err) => { if (err) { console.error('Renderer stop failed'); - } else { + } + else { console.log('Renderer stopped.'); } }); @@ -2794,7 +2800,8 @@ release(callback: AsyncCallback\): void audioRenderer.release((err) => { if (err) { console.error('Renderer release failed'); - } else { + } + else { console.log('Renderer released.'); } }); @@ -2880,7 +2887,7 @@ audioRenderer.getBufferSize().then((data)=> { console.info('Buffer size:'+bufferSize); var context = featureAbility.getContext(); var path = await context.getCacheDir(); -var filePath = path+"/StarWars10s-2C-48000-4SW.wav" +var filePath = path + "/StarWars10s-2C-48000-4SW.wav"; let ss = fileio.createStreamSync(filePath, 'r'); let buf = new ArrayBuffer(bufferSize); ss.readSync(buf); @@ -2955,7 +2962,8 @@ ss.readSync(buf); audioRenderer.write(buf).then((writtenbytes) => { if (writtenbytes < 0) { console.error('write failed.'); - } else { + } + else { console.log('Actual written bytes: ' + writtenbytes); } }).catch((err) => { @@ -3054,10 +3062,10 @@ import audio from '@ohos.multimedia.audio'; import fileio from '@ohos.fileio'; var audioStreamInfo = { - samplingRate:audio.AudioSamplingRate.SAMPLE_RATE_48000, - channels:audio.AudioChannel.CHANNEL_2, - sampleFormat:audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE, - encodingType:audio.AudioEncodingType.ENCODING_TYPE_RAW + samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000, + channels: audio.AudioChannel.CHANNEL_2, + sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE, + encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW } var audioRendererInfo = { @@ -3107,7 +3115,8 @@ setRenderRate(rate: AudioRendererRate, callback: AsyncCallback\): void audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err) => { if (err) { console.error('Failed to set params'); - } else { + } + else { console.log('Callback invoked to indicate a successful render rate setting.'); } }); @@ -3139,7 +3148,7 @@ setRenderRate(rate: AudioRendererRate): Promise\ audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL).then(() => { console.log('setRenderRate SUCCESS'); }).catch((err) => { - console.log('ERROR: '+err.message); + console.log('ERROR: '+ err.message); }); ``` @@ -3185,7 +3194,7 @@ getRenderRate(): Promise\ audioRenderer.getRenderRate().then((renderRate) => { console.log('getRenderRate: ' + renderRate); }).catch((err) => { - console.log('ERROR: '+err.message); + console.log('ERROR: '+ err.message); }); ``` ### setInterruptMode9+ @@ -3322,7 +3331,8 @@ audioRenderer.on('interrupt', async(interruptEvent) => { if (started) { isPlay = true; console.info('AudioInterruptMusic Renderer started : isPlay : '+isPlay); - } else { + } + else { console.error('AudioInterruptMusic Renderer start failed'); } break; @@ -3331,7 +3341,8 @@ audioRenderer.on('interrupt', async(interruptEvent) => { if (isPlay == true) { isPlay == false; console.info('AudioInterruptMusic: Media PAUSE : TRUE'); - }else { + } + else { isPlay = true; console.info('AudioInterruptMusic: Media PLAY : TRUE'); } @@ -3361,9 +3372,9 @@ on(type: 'markReach', frame: number, callback: (position: number) => {}): void ``` audioRenderer.on('markReach', 1000, (position) => { - if (position == 1000) { - console.log('ON Triggered successfully'); - } + if (position == 1000) { + console.log('ON Triggered successfully'); + } }); ``` @@ -3529,7 +3540,8 @@ getCapturerInfo(callback: AsyncCallback): void audioCapturer.getCapturerInfo((err, capturerInfo) => { if (err) { console.error('Failed to get capture info'); - } else { + } + else { console.log('Capturer getCapturerInfo:'); console.log('Capturer source:' + capturerInfo.source); console.log('Capturer flags:' + capturerInfo.capturerFlags); @@ -3560,12 +3572,13 @@ audioCapturer.getCapturerInfo().then((audioParamsGet) => { console.info('AudioFrameworkRecLog: Capturer CapturerInfo:'); console.info('AudioFrameworkRecLog: Capturer SourceType:' + audioParamsGet.source); console.info('AudioFrameworkRecLog: Capturer capturerFlags:' + audioParamsGet.capturerFlags); - }else { - console.info('AudioFrameworkRecLog: audioParamsGet is : '+audioParamsGet); + } + else { + console.info('AudioFrameworkRecLog: audioParamsGet is : '+ audioParamsGet); console.info('AudioFrameworkRecLog: audioParams getCapturerInfo are incorrect: '); } }).catch((err) => { - console.log('AudioFrameworkRecLog: CapturerInfo :ERROR: '+err.message); + console.log('AudioFrameworkRecLog: CapturerInfo :ERROR: '+ err.message); }); ``` @@ -3647,7 +3660,8 @@ start(callback: AsyncCallback): void audioCapturer.start((err) => { if (err) { console.error('Capturer start failed.'); - } else { + } + else { console.info('Capturer start success.'); } }); @@ -3728,7 +3742,8 @@ stop(callback: AsyncCallback): void audioCapturer.stop((err) => { if (err) { console.error('Capturer stop failed'); - } else { + } + else { console.log('Capturer stopped.'); } }); @@ -3783,7 +3798,8 @@ release(callback: AsyncCallback): void audioCapturer.release((err) => { if (err) { console.error('capturer release failed'); - } else { + } + else { console.log('capturer released.'); } }); @@ -3840,10 +3856,10 @@ read(size: number, isBlockingRead: boolean, callback: AsyncCallback { - console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS '+data); + console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS '+ data); bufferSize = data; }).catch((err) => { - console.info('AudioFrameworkRecLog: getBufferSize: EROOR: '+err.message); + console.info('AudioFrameworkRecLog: getBufferSize: EROOR: '+ err.message); }); audioCapturer.read(bufferSize, true, async(err, buffer) => { if (!err) { -- GitLab From 15b1ab9198cd92114424b5d42081ce294100c5c0 Mon Sep 17 00:00:00 2001 From: sunxuejiao Date: Thu, 28 Jul 2022 16:01:19 +0800 Subject: [PATCH 521/868] docs:modify sensor inaccurate description of some sentences Signed-off-by: sunxuejiao --- .../driver/driver-peripherals-sensor-des.md | 26 +-- .../reference/hdi-apis/_light_effect.md | 12 +- .../reference/hdi-apis/_light_interface.md | 35 +-- .../device-dev/reference/hdi-apis/_sensor.md | 202 +++++++++--------- .../reference/hdi-apis/_sensor_information.md | 40 ++-- .../reference/hdi-apis/_sensor_interface.md | 84 ++++---- .../reference/hdi-apis/light_8typeh.md | 12 +- .../reference/hdi-apis/light__if_8h.md | 17 +- .../reference/hdi-apis/sensor__if_8h.md | 12 +- 9 files changed, 225 insertions(+), 215 deletions(-) diff --git a/zh-cn/device-dev/driver/driver-peripherals-sensor-des.md b/zh-cn/device-dev/driver/driver-peripherals-sensor-des.md index 7b819df8c6..26620ea9c3 100755 --- a/zh-cn/device-dev/driver/driver-peripherals-sensor-des.md +++ b/zh-cn/device-dev/driver/driver-peripherals-sensor-des.md @@ -1,5 +1,5 @@ # Sensor - + ## 概述 @@ -8,7 +8,7 @@ Sensor驱动模型屏蔽硬件器件差异,为上层Sensor服务系统提供稳定的Sensor基础能力接口,包括Sensor列表查询、Sensor启停、Sensor订阅及取消订阅,Sensor参数配置等功能。Sensor设备驱动的开发是基于HDF驱动框架基础上,结合操作系统适配层(OSAL)和平台驱动接口(比如I2C/SPI/UART总线等平台资源)能力,屏蔽不同操作系统和平台总线资源差异,实现Sensor驱动“一次开发,多系统部署”的目标。Sensor驱动模型如图1所示。 **图 1** Sensor驱动模型图 - + ![Sensor驱动模型图](figures/Sensor驱动模型图.png) ### 基本概念 @@ -64,16 +64,16 @@ Sensor驱动模型对外开放的API接口能力的具体实现请参考: **表 1** Sensor驱动模型对外API接口功能介绍 -| 接口名 | 功能描述 | +| 接口名 | 功能描述 | | ----- | -------- | | int32_t GetAllSensors(struct SensorInformation **sensorInfo, int32_t *count) | 获取系统中注册的所有传感器信息,一组完整传感器信息包括传感器名字、设备厂商、固件版本号、硬件版本号、传感器类型编号、传感器标识、最大量程、精度、功耗。 | -| int32_t Enable(int32_t sensorId) | 使能指定传感器设备,只有数据订阅者使能传感器后,才能获取订阅的传感器数据。 | -| int32_t Disable(int32_t sensorId) | 去使能指定传感器设备。 | -| int32_t SetBatch(int32_t sensorId, int64_t samplingInterval, int64_t reportInterval) | 设置指定传感器的数据采样间隔和数据上报间隔。 | -| int32_t SetMode(int32_t sensorId, int32_t mode) | 设置指定传感器的工作模式,不同的工作模式,上报数据方式不同。 | -| int32_t SetOption(int32_t sensorId, uint32_t option) | 设置指定传感器量程,精度等可选配置。 | -| int32_t Register(int32_t groupId, RecordDataCallback cb) | 订阅者根据不同groupId注册传感器数据回调函数,系统会将获取到的传感器数据上报给订阅者。 | -| int32_t Unregister(int32_t groupId, RecordDataCallback cb) | 订阅者根据groupId和回调函数注销对应订阅者的传感器数据回调函数。 | +| int32_t Enable(int32_t sensorId) | 使能指定传感器设备,只有数据订阅者使能传感器后,才能获取订阅的传感器数据。 | +| int32_t Disable(int32_t sensorId) | 去使能指定传感器设备。 | +| int32_t SetBatch(int32_t sensorId, int64_t samplingInterval, int64_t reportInterval) | 设置指定传感器的数据采样间隔和数据上报间隔。 | +| int32_t SetMode(int32_t sensorId, int32_t mode) | 设置指定传感器的工作模式,不同的工作模式,上报数据方式不同。 | +| int32_t SetOption(int32_t sensorId, uint32_t option) | 设置指定传感器量程,精度等可选配置。 | +| int32_t Register(int32_t groupId, RecordDataCallback cb) | 订阅者根据不同groupId注册传感器数据回调函数,系统会将获取到的传感器数据上报给订阅者。 | +| int32_t Unregister(int32_t groupId, RecordDataCallback cb) | 订阅者根据groupId和回调函数注销对应订阅者的传感器数据回调函数。 | @@ -81,7 +81,7 @@ Sensor驱动模型对驱动开发者开放的功能接口,驱动开发者无 **表2** Sensor驱动模型对驱动开发者开放的功能接口列表 -| 接口名 | 功能描述 | +| 接口名 | 功能描述 | | ----- | -------- | | int32_t AddSensorDevice(const struct SensorDeviceInfo *deviceInfo) | 添加当前类型的传感器设备到传感器设备管理。 | | int32_t DeleteSensorDevice(const struct SensorBasicInfo *sensorBaseInfo) | 删除传感器设备管理里指定的传感器设备。 | @@ -101,7 +101,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,请参考: **表 3** Sensor驱动模型要求驱动开发者实现的接口列表 -| 接口名 | 功能描述 | +| 接口名 | 功能描述 | | ----- | -------- | | int32_t init(void) | 传感器设备探测成功后,需要对传感器设备初始化配置。 | | int32_t Enable(void) | 根据当前传感器设备的HCS配置,下发传感器设备使能操作组的寄存器配置。 | @@ -545,7 +545,7 @@ void HdfSensorTest::SetUpTestCase() { g_sensorDev = NewSensorInterfaceInstance(); if (g_sensorDev == nullptr) { - printf("test sensorHdi get Module instance failed\n\r"); + printf("test sensor get module instance failed\n\r"); } } /* 用例资源释放 */ diff --git a/zh-cn/device-dev/reference/hdi-apis/_light_effect.md b/zh-cn/device-dev/reference/hdi-apis/_light_effect.md index 7dd78f2c3e..63a331afec 100644 --- a/zh-cn/device-dev/reference/hdi-apis/_light_effect.md +++ b/zh-cn/device-dev/reference/hdi-apis/_light_effect.md @@ -13,10 +13,10 @@ ### Public 属性 - | Public 属性 | 描述 | +| Public 属性 | 描述 | | -------- | -------- | -| [lightBrightness](#lightbrightness) | 亮度值。 | -| [flashEffect](#flasheffect) | 闪烁模式。 | +| [lightBrightness](#lightbrightness) | 亮度值。 | +| [flashEffect](#flasheffect) | 闪烁模式。 | ## **详细描述** @@ -35,7 +35,7 @@ ### flashEffect - + ``` struct LightFlashEffect LightEffect::flashEffect ``` @@ -47,11 +47,11 @@ struct LightFlashEffect LightEffect::flashEffect ### lightBrightness - + ``` int32_t LightEffect::lightBrightness ``` **描述:** -亮度值:Bits 24–31为扩展位,Bits 16–23为红色,bits 8–15为绿色,bits 0–7为蓝色。 如果字节段不等于0,指示打开相应颜色的灯。 +亮度值:Bits 24–31为扩展位,Bits 16–23为红色,Bits 8–15为绿色,Bits 0–7为蓝色。 如果相对应的字节段不等于0,表示打开相应颜色的灯。 diff --git a/zh-cn/device-dev/reference/hdi-apis/_light_interface.md b/zh-cn/device-dev/reference/hdi-apis/_light_interface.md index 2c966f0a5e..9621d96fb1 100644 --- a/zh-cn/device-dev/reference/hdi-apis/_light_interface.md +++ b/zh-cn/device-dev/reference/hdi-apis/_light_interface.md @@ -13,18 +13,18 @@ ### Public 属性 - | Public 属性 | 描述 | +| Public 属性 | 描述 | | -------- | -------- | -| ( [GetLightInfo](#getlightinfo) )([out] struct [LightInfo](_light_info.md) \*\*lightInfo, [out] uint32_t \*count) | 获取当前系统中所有类型的灯信息。 [更多...](#getlightinfo) | -| ( [TurnOnLight](#turnonlight) )([in] uint32_t lightId, [in] struct [LightEffect](_light_effect.md) \*effect) | 根据指定的灯ID打开列表中的可用灯。 [更多...](#turnonlight) | -| ( [TurnOffLight](#turnofflight) )([in] uint32_t lightId) | 根据指定的灯ID关闭列表中的可用灯。 [更多...](#turnofflight) | +| ( [GetLightInfo](#getlightinfo) )([out] struct [LightInfo](_light_info.md) \*\*lightInfo, [out] uint32_t \*count) | 获取当前系统中所有类型的灯信息。 [更多...](#getlightinfo) | +| ( [TurnOnLight](#turnonlight) )([in] uint32_t lightId, [in] struct [LightEffect](_light_effect.md) \*effect) | 根据指定的灯ID打开列表中的可用灯。 [更多...](#turnonlight) | +| ( [TurnOffLight](#turnofflight) )([in] uint32_t lightId) | 根据指定的灯ID关闭列表中的可用灯。 [更多...](#turnofflight) | ## **详细描述** 定义可以在灯上执行的基本操作。 -操作包括获取灯的信息、打开或关闭灯、设置灯的亮度或闪烁模式。 +操作包括获取灯的信息、打开或关闭灯、设置灯的亮度和闪烁模式。 ## **类成员变量说明** @@ -32,7 +32,7 @@ ### GetLightInfo - + ``` int32_t(* LightInterface::GetLightInfo) ([out] struct LightInfo **lightInfo,[out] uint32_t *count) ``` @@ -43,10 +43,10 @@ int32_t(* LightInterface::GetLightInfo) ([out] struct LightInfo **lightInfo,[out **参数:** - | 名称 | 描述 | +| 名称 | 描述 | | -------- | -------- | -| lightInfo | 表示指向灯信息的二级指针,详见[LightInfo](_light_info.md)。 | -| count | 表示指向灯数量的指针。 | +| lightInfo | 表示指向灯信息的二级指针,详见[LightInfo](_light_info.md)。 | +| count | 表示指向灯数量的指针。 | **返回:** @@ -57,7 +57,7 @@ int32_t(* LightInterface::GetLightInfo) ([out] struct LightInfo **lightInfo,[out ### TurnOffLight - + ``` int32_t(* LightInterface::TurnOffLight) ([in] uint32_t lightId) ``` @@ -68,9 +68,9 @@ int32_t(* LightInterface::TurnOffLight) ([in] uint32_t lightId) **参数:** - | 名称 | 描述 | +| 名称 | 描述 | | -------- | -------- | -| lightId | 表示灯ID,详见[LightId](_light.md#lightid)。 | +| lightId | 表示灯ID,详见[LightId](_light.md#lightid)。 | **返回:** @@ -81,7 +81,7 @@ int32_t(* LightInterface::TurnOffLight) ([in] uint32_t lightId) ### TurnOnLight - + ``` int32_t(* LightInterface::TurnOnLight) ([in] uint32_t lightId,[in] struct LightEffect *effect) ``` @@ -92,10 +92,10 @@ int32_t(* LightInterface::TurnOnLight) ([in] uint32_t lightId,[in] struct LightE **参数:** - | 名称 | 描述 | +| 名称 | 描述 | | -------- | -------- | -| lightId | 表示灯ID,详见[LightId](_light.md#lightid)。 | -| effect | 表示指向灯效果的指针,如果lightbrightness字段为0时, 灯的亮度根据HCS配置的默认亮度进行设置,详见[LightEffect](_light_effect.md)。 | +| lightId | 表示灯ID,详见[LightId](_light.md#lightid)。 | +| effect | 表示指向灯效果的指针,如果lightbrightness字段为0时, 灯的亮度根据HCS配置的默认亮度进行设置,详见[LightEffect](_light_effect.md)。 | **返回:** @@ -105,4 +105,5 @@ int32_t(* LightInterface::TurnOnLight) ([in] uint32_t lightId,[in] struct LightE 如果不支持闪烁设置,则返回-2。 -如果不支持亮度设置,则返回3。 +如果不支持亮度设置,则返回-3。 + diff --git a/zh-cn/device-dev/reference/hdi-apis/_sensor.md b/zh-cn/device-dev/reference/hdi-apis/_sensor.md index 2cdb5edfed..8af61d4b6a 100644 --- a/zh-cn/device-dev/reference/hdi-apis/_sensor.md +++ b/zh-cn/device-dev/reference/hdi-apis/_sensor.md @@ -6,61 +6,61 @@ ### 文件 - | 文件 | 描述 | +| 文件 | 描述 | | -------- | -------- | -| [sensor_if.h](sensor__if_8h.md) | Sensor模块对外通用的接口声明文件,提供获取传感器设备信息、订阅/去订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度,量程等可选配置接口定义。 | -| [sensor_type.h](sensor__type_8h.md) | 定义传感器模块所使用的传感器类型,传感器信息,传感器数据结构等数据类型。 | +| [sensor_if.h](sensor__if_8h.md) | Sensor模块对外通用的接口声明文件,提供获取传感器设备信息、订阅/取消订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度,量程等可选配置接口定义。 | +| [sensor_type.h](sensor__type_8h.md) | 定义传感器模块所使用的传感器类型,传感器信息,传感器数据结构等数据类型。 | ### 类 - | 类 | 描述 | +| 类 | 描述 | | -------- | -------- | -| [SensorInterface](_sensor_interface.md) | 提供sensor设备基本控制操作接口。 [更多...](_sensor_interface.md) | -| [SensorInformation](_sensor_information.md) | 定义传感器基本信息。 [更多...](_sensor_information.md) | -| [SensorEvents](_sensor_events.md) | 上报传感器数据结构。 [更多...](_sensor_events.md) | +| [SensorInterface](_sensor_interface.md) | 提供sensor设备基本控制操作接口。 [更多...](_sensor_interface.md) | +| [SensorInformation](_sensor_information.md) | 定义传感器基本信息。 [更多...](_sensor_information.md) | +| [SensorEvents](_sensor_events.md) | 上报传感器数据结构。 [更多...](_sensor_events.md) | ### 宏定义 - | 宏定义 | 描述 | +| 宏定义 | 描述 | | -------- | -------- | -| [SENSOR_NAME_MAX_LEN](#sensornamemaxlen)   32 | Sensor名称的最大长度。 | -| [SENSOR_VERSION_MAX_LEN](#sensorversionmaxlen)   16 | Sensor版本号的最大长度。 | +| [SENSOR_NAME_MAX_LEN](#sensornamemaxlen)   32 | Sensor名称的最大长度。 | +| [SENSOR_VERSION_MAX_LEN](#sensorversionmaxlen)   16 | Sensor版本号的最大长度。 | ### 类型定义 - | 类型定义 | 描述 | +| 类型定义 | 描述 | | -------- | -------- | -| ([RecordDataCallback](#recorddatacallback)) (const struct [SensorEvents](_sensor_events.md) \*) | 传感器上报数据回调函数的定义,传感器服务用户在订阅传感器时, 需要注册上报数据回调函数,传感器使能后,传感器服务用户可以接受到传感器数据,详见[SensorInterface](_sensor_interface.md)。 [更多...](#recorddatacallback) | +| ([RecordDataCallback](#recorddatacallback)) (const struct [SensorEvents](_sensor_events.md) \*) | 传感器上报数据回调函数的定义,传感器服务用户在订阅传感器时, 需要注册上报数据回调函数,传感器使能后,传感器服务用户可以接受到传感器数据,详见[SensorInterface](_sensor_interface.md)。 [更多...](#recorddatacallback) | ### 枚举 - | 枚举 | 描述 | +| 枚举 | 描述 | | -------- | -------- | -| [SensorStatus](#sensorstatus) { SENSOR_SUCCESS = 0, SENSOR_FAILURE = -1, SENSOR_NOT_SUPPORT = -2, SENSOR_INVALID_PARAM = -3,   SENSOR_INVALID_SERVICE = -4, SENSOR_NULL_PTR = -5 } | 定义传感器模块返回值类型。 [更多...](#sensorstatus) | -| [SensorTypeTag](#sensortypetag) { SENSOR_TYPE_NONE = 0, SENSOR_TYPE_ACCELEROMETER = 1, SENSOR_TYPE_GYROSCOPE = 2, SENSOR_TYPE_PHOTOPLETHYSMOGRAPH = 3,   SENSOR_TYPE_ELECTROCARDIOGRAPH = 4, SENSOR_TYPE_AMBIENT_LIGHT = 5, SENSOR_TYPE_MAGNETIC_FIELD = 6, SENSOR_TYPE_CAPACITIVE = 7,   SENSOR_TYPE_BAROMETER = 8, SENSOR_TYPE_TEMPERATURE = 9, SENSOR_TYPE_HALL = 10, SENSOR_TYPE_GESTURE = 11,   SENSOR_TYPE_PROXIMITY = 12, SENSOR_TYPE_HUMIDITY = 13, SENSOR_TYPE_MEDICAL_BEGIN = 128, SENSOR_TYPE_MEDICAL_END = 160,   SENSOR_TYPE_PHYSICAL_MAX = 255, SENSOR_TYPE_ORIENTATION = 256, SENSOR_TYPE_GRAVITY = 257, SENSOR_TYPE_LINEAR_ACCELERATION = 258,   SENSOR_TYPE_ROTATION_VECTOR = 259, SENSOR_TYPE_AMBIENT_TEMPERATURE = 260, SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED = 261, SENSOR_TYPE_GAME_ROTATION_VECTOR = 262,   SENSOR_TYPE_GYROSCOPE_UNCALIBRATED = 263, SENSOR_TYPE_SIGNIFICANT_MOTION = 264, SENSOR_TYPE_PEDOMETER_DETECTION = 265, SENSOR_TYPE_PEDOMETER = 266,   SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR = 277, SENSOR_TYPE_HEART_RATE = 278, SENSOR_TYPE_DEVICE_ORIENTATION = 279, SENSOR_TYPE_WEAR_DETECTION = 280,   SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED = 281, SENSOR_TYPE_MAX } | 定义传感器类型标识。 [更多...](#sensortypetag) | -| [SensorAccuracyType](#sensoraccuracytype) { SENSOR_NO_ACCURACY = 0, SENSOR_LOW_ACCURACY = 1, SENSOR_MEDIUM_ACCURACY = 2, SENSOR_HIGH_ACCURACY = 3,   SENSOR_MAX_ACCURACY } | 传感器的精度类型。 [更多...](#sensoraccuracytype) | -| [SensorRangeType](#sensorrangetype) { SENSOR_RANGE_LEVEL1 = 0, SENSOR_RANGE_LEVEL2 = 1, SENSOR_RANGE_LEVEL3 = 2, SENSOR_RANGE_LEVEL_MAX } | 传感器的量程级别。 [更多...](#sensorrangetype) | -| [SensorModeType](#sensormodetype) { SENSOR_MODE_DEFAULT = 0, SENSOR_MODE_REALTIME = 1, SENSOR_MODE_ON_CHANGE = 2, SENSOR_MODE_ONE_SHOT = 3,   SENSOR_MODE_FIFO_MODE = 4, SENSOR_MODE_MAX } | 传感器的工作模式。 [更多...](#sensormodetype) | -| [SensorGroupType](#sensorgrouptype) { TRADITIONAL_SENSOR_TYPE = 0, MEDICAL_SENSOR_TYPE = 1, SENSOR_GROUP_TYPE_MAX } | 枚举传感器的硬件服务组。 [更多...](#sensorgrouptype) | +| [SensorStatus](#sensorstatus) { SENSOR_SUCCESS = 0, SENSOR_FAILURE = -1, SENSOR_NOT_SUPPORT = -2, SENSOR_INVALID_PARAM = -3,   SENSOR_INVALID_SERVICE = -4, SENSOR_NULL_PTR = -5 } | 定义传感器模块返回值类型。 [更多...](#sensorstatus) | +| [SensorTypeTag](#sensortypetag) { SENSOR_TYPE_NONE = 0, SENSOR_TYPE_ACCELEROMETER = 1, SENSOR_TYPE_GYROSCOPE = 2, SENSOR_TYPE_PHOTOPLETHYSMOGRAPH = 3,   SENSOR_TYPE_ELECTROCARDIOGRAPH = 4, SENSOR_TYPE_AMBIENT_LIGHT = 5, SENSOR_TYPE_MAGNETIC_FIELD = 6, SENSOR_TYPE_CAPACITIVE = 7,   SENSOR_TYPE_BAROMETER = 8, SENSOR_TYPE_TEMPERATURE = 9, SENSOR_TYPE_HALL = 10, SENSOR_TYPE_GESTURE = 11,   SENSOR_TYPE_PROXIMITY = 12, SENSOR_TYPE_HUMIDITY = 13, SENSOR_TYPE_MEDICAL_BEGIN = 128, SENSOR_TYPE_MEDICAL_END = 160,   SENSOR_TYPE_PHYSICAL_MAX = 255, SENSOR_TYPE_ORIENTATION = 256, SENSOR_TYPE_GRAVITY = 257, SENSOR_TYPE_LINEAR_ACCELERATION = 258,   SENSOR_TYPE_ROTATION_VECTOR = 259, SENSOR_TYPE_AMBIENT_TEMPERATURE = 260, SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED = 261, SENSOR_TYPE_GAME_ROTATION_VECTOR = 262,   SENSOR_TYPE_GYROSCOPE_UNCALIBRATED = 263, SENSOR_TYPE_SIGNIFICANT_MOTION = 264, SENSOR_TYPE_PEDOMETER_DETECTION = 265, SENSOR_TYPE_PEDOMETER = 266,   SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR = 277, SENSOR_TYPE_HEART_RATE = 278, SENSOR_TYPE_DEVICE_ORIENTATION = 279, SENSOR_TYPE_WEAR_DETECTION = 280,   SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED = 281, SENSOR_TYPE_MAX } | 定义传感器类型标识。 [更多...](#sensortypetag) | +| [SensorAccuracyType](#sensoraccuracytype) { SENSOR_NO_ACCURACY = 0, SENSOR_LOW_ACCURACY = 1, SENSOR_MEDIUM_ACCURACY = 2, SENSOR_HIGH_ACCURACY = 3,   SENSOR_MAX_ACCURACY } | 传感器的精度类型。 [更多...](#sensoraccuracytype) | +| [SensorRangeType](#sensorrangetype) { SENSOR_RANGE_LEVEL1 = 0, SENSOR_RANGE_LEVEL2 = 1, SENSOR_RANGE_LEVEL3 = 2, SENSOR_RANGE_LEVEL_MAX } | 传感器的量程级别。 [更多...](#sensorrangetype) | +| [SensorModeType](#sensormodetype) { SENSOR_MODE_DEFAULT = 0, SENSOR_MODE_REALTIME = 1, SENSOR_MODE_ON_CHANGE = 2, SENSOR_MODE_ONE_SHOT = 3,   SENSOR_MODE_FIFO_MODE = 4, SENSOR_MODE_MAX } | 传感器的工作模式。 [更多...](#sensormodetype) | +| [SensorGroupType](#sensorgrouptype) { TRADITIONAL_SENSOR_TYPE = 0, MEDICAL_SENSOR_TYPE = 1, SENSOR_GROUP_TYPE_MAX } | 枚举传感器的硬件服务组。 [更多...](#sensorgrouptype) | ### 函数 - | 函数 | 描述 | +| 函数 | 描述 | | -------- | -------- | -| [NewSensorInterfaceInstance](#newsensorinterfaceinstance) (void) | 创建传感器接口实例。 [更多...](#newsensorinterfaceinstance) | -| [FreeSensorInterfaceInstance](#freesensorinterfaceinstance) (void) | 释放传感器接口实例。 [更多...](#freesensorinterfaceinstance) | +| [NewSensorInterfaceInstance](#newsensorinterfaceinstance) (void) | 创建传感器接口实例。 [更多...](#newsensorinterfaceinstance) | +| [FreeSensorInterfaceInstance](#freesensorinterfaceinstance) (void) | 释放传感器接口实例。 [更多...](#freesensorinterfaceinstance) | ## **详细描述** 传感器设备驱动对传感器服务提供通用的接口能力。 -模块提供传感器服务对传感器驱动访问统一接口,服务获取驱动对象或者代理后, 通过其提供的各类方法,以传感器id区分访问不同类型传感器设备,实现获取传感器设备信息、订阅/去订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度、量程等可选配置等。 +模块提供传感器服务对传感器驱动访问统一接口,服务获取驱动对象或者代理后, 通过其提供的各类方法,以传感器id区分访问不同类型传感器设备,实现获取传感器设备信息、订阅/取消订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度、量程等可选配置等。 **Since:** @@ -76,7 +76,7 @@ ### SENSOR_NAME_MAX_LEN - + ``` #define SENSOR_NAME_MAX_LEN 32 ``` @@ -88,7 +88,7 @@ Sensor名称的最大长度。 ### SENSOR_VERSION_MAX_LEN - + ``` #define SENSOR_VERSION_MAX_LEN 16 ``` @@ -103,7 +103,7 @@ Sensor版本号的最大长度。 ### RecordDataCallback - + ``` typedef int32_t(* RecordDataCallback) (const struct SensorEvents *) ``` @@ -118,7 +118,7 @@ typedef int32_t(* RecordDataCallback) (const struct SensorEvents *) ### SensorAccuracyType - + ``` enum SensorAccuracyType ``` @@ -127,18 +127,18 @@ enum SensorAccuracyType 传感器的精度类型。 - | 枚举值 | 描述 | +| 枚举值 | 描述 | | -------- | -------- | -| SENSOR_NO_ACCURACY | 无精度类型。 | -| SENSOR_LOW_ACCURACY | 低精度类型。 | -| SENSOR_MEDIUM_ACCURACY | 中等精度类型。 | -| SENSOR_HIGH_ACCURACY | 高精度类型。 | -| SENSOR_MAX_ACCURACY | 最大精度类型。 | +| SENSOR_NO_ACCURACY | 无精度类型。 | +| SENSOR_LOW_ACCURACY | 低精度类型。 | +| SENSOR_MEDIUM_ACCURACY | 中等精度类型。 | +| SENSOR_HIGH_ACCURACY | 高精度类型。 | +| SENSOR_MAX_ACCURACY | 最大精度类型。 | ### SensorGroupType - + ``` enum SensorGroupType ``` @@ -147,16 +147,16 @@ enum SensorGroupType 枚举传感器的硬件服务组。 - | 枚举值 | 描述 | +| 枚举值 | 描述 | | -------- | -------- | -| TRADITIONAL_SENSOR_TYPE | 传统传感器类型,传感器ID枚举值范围为128-160。 | -| MEDICAL_SENSOR_TYPE | 医疗传感器类型,传感器ID枚举值范围不在128-160之间。 | -| SENSOR_GROUP_TYPE_MAX | 最大传感器类型。 | +| TRADITIONAL_SENSOR_TYPE | 传统传感器类型,传感器ID枚举值范围为128-160。 | +| MEDICAL_SENSOR_TYPE | 医疗传感器类型,传感器ID枚举值范围不在128-160之间。 | +| SENSOR_GROUP_TYPE_MAX | 最大传感器类型。 | ### SensorModeType - + ``` enum SensorModeType ``` @@ -165,19 +165,19 @@ enum SensorModeType 传感器的工作模式。 - | 枚举值 | 描述 | +| 枚举值 | 描述 | | -------- | -------- | -| SENSOR_MODE_DEFAULT | 传感器默认工作模式状态。 | -| SENSOR_MODE_REALTIME | 传感器实时工作模式状态,一组数据上报一次。 | -| SENSOR_MODE_ON_CHANGE | 传感器实时工作模式状态,状态变更上报一次。 | -| SENSOR_MODE_ONE_SHOT | 传感器实时工作模式状态,只上报一次。 | -| SENSOR_MODE_FIFO_MODE | 传感器缓存工作模式状态,根据配置的缓存大小上报。 | -| SENSOR_MODE_MAX | 传感器最大类型标识。 | +| SENSOR_MODE_DEFAULT | 传感器默认工作模式状态。 | +| SENSOR_MODE_REALTIME | 传感器实时工作模式状态,一组数据上报一次。 | +| SENSOR_MODE_ON_CHANGE | 传感器实时工作模式状态,状态变更上报一次。 | +| SENSOR_MODE_ONE_SHOT | 传感器实时工作模式状态,只上报一次。 | +| SENSOR_MODE_FIFO_MODE | 传感器缓存工作模式状态,根据配置的缓存大小上报。 | +| SENSOR_MODE_MAX | 传感器最大类型标识。 | ### SensorRangeType - + ``` enum SensorRangeType ``` @@ -186,17 +186,17 @@ enum SensorRangeType 传感器的量程级别。 - | 枚举值 | 描述 | +| 枚举值 | 描述 | | -------- | -------- | -| SENSOR_RANGE_LEVEL1 | 量程级别1。 | -| SENSOR_RANGE_LEVEL2 | 量程级别2。 | -| SENSOR_RANGE_LEVEL3 | 量程级别3。 | -| SENSOR_RANGE_LEVEL_MAX | 量程最大级别。 | +| SENSOR_RANGE_LEVEL1 | 量程级别1。 | +| SENSOR_RANGE_LEVEL2 | 量程级别2。 | +| SENSOR_RANGE_LEVEL3 | 量程级别3。 | +| SENSOR_RANGE_LEVEL_MAX | 量程最大级别。 | ### SensorStatus - + ``` enum SensorStatus ``` @@ -205,19 +205,19 @@ enum SensorStatus 定义传感器模块返回值类型。 - | 枚举值 | 描述 | +| 枚举值 | 描述 | | -------- | -------- | -| SENSOR_SUCCESS | 传感器执行成功。 | -| SENSOR_FAILURE | 传感器执行失败。 | -| SENSOR_NOT_SUPPORT | 传感器不支持。 | -| SENSOR_INVALID_PARAM | 传感器无效参数。 | -| SENSOR_INVALID_SERVICE | 传感器无效服务。 | -| SENSOR_NULL_PTR | 传感器空指针。 | +| SENSOR_SUCCESS | 传感器执行成功。 | +| SENSOR_FAILURE | 传感器执行失败。 | +| SENSOR_NOT_SUPPORT | 传感器不支持。 | +| SENSOR_INVALID_PARAM | 传感器无效参数。 | +| SENSOR_INVALID_SERVICE | 传感器无效服务。 | +| SENSOR_NULL_PTR | 传感器空指针。 | ### SensorTypeTag - + ``` enum SensorTypeTag ``` @@ -226,42 +226,42 @@ enum SensorTypeTag 定义传感器类型标识。 - | 枚举值 | 描述 | +| 枚举值 | 描述 | | -------- | -------- | -| SENSOR_TYPE_NONE | 空传感器类型,用于测试。 | -| SENSOR_TYPE_ACCELEROMETER | 加速度传感器。 | -| SENSOR_TYPE_GYROSCOPE | 陀螺仪传感器。 | -| SENSOR_TYPE_PHOTOPLETHYSMOGRAPH | 心率传感器。 | -| SENSOR_TYPE_ELECTROCARDIOGRAPH | 心电传感器。 | -| SENSOR_TYPE_AMBIENT_LIGHT | 环境光传感器。 | -| SENSOR_TYPE_MAGNETIC_FIELD | 地磁传感器。 | -| SENSOR_TYPE_CAPACITIVE | 电容传感器。 | -| SENSOR_TYPE_BAROMETER | 气压计传感器。 | -| SENSOR_TYPE_TEMPERATURE | 温度传感器。 | -| SENSOR_TYPE_HALL | 霍尔传感器。 | -| SENSOR_TYPE_GESTURE | 手势传感器。 | -| SENSOR_TYPE_PROXIMITY | 接近光传感器。 | -| SENSOR_TYPE_HUMIDITY | 湿度传感器。 | -| SENSOR_TYPE_MEDICAL_BEGIN | 医疗传感器ID枚举值范围的开始。 | -| SENSOR_TYPE_MEDICAL_END | 医疗传感器ID枚举值范围的结束。 | -| SENSOR_TYPE_PHYSICAL_MAX | 物理传感器最大类型。 | -| SENSOR_TYPE_ORIENTATION | 方向传感器。 | -| SENSOR_TYPE_GRAVITY | 重力传感器。 | -| SENSOR_TYPE_LINEAR_ACCELERATION | 线性加速度传感器。 | -| SENSOR_TYPE_ROTATION_VECTOR | 旋转矢量传感器。 | -| SENSOR_TYPE_AMBIENT_TEMPERATURE | 环境温度传感器 | -| SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED | 未校准磁场传感器。 | -| SENSOR_TYPE_GAME_ROTATION_VECTOR | 游戏旋转矢量传感器。 | -| SENSOR_TYPE_GYROSCOPE_UNCALIBRATED | 未校准陀螺仪传感器。 | -| SENSOR_TYPE_SIGNIFICANT_MOTION | 大幅度动作传感器。 | -| SENSOR_TYPE_PEDOMETER_DETECTION | 计步器检测传感器。 | -| SENSOR_TYPE_PEDOMETER | 计步器传感器。 | -| SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR | 地磁旋转矢量传感器。 | -| SENSOR_TYPE_HEART_RATE | 心率传感器。 | -| SENSOR_TYPE_DEVICE_ORIENTATION | 设备方向传感器。 | -| SENSOR_TYPE_WEAR_DETECTION | 佩戴检测传感器。 | -| SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED | 未校准加速度传感器。 | -| SENSOR_TYPE_MAX | 传感器类型最大个数标识。 | +| SENSOR_TYPE_NONE | 空传感器类型,用于测试。 | +| SENSOR_TYPE_ACCELEROMETER | 加速度传感器。 | +| SENSOR_TYPE_GYROSCOPE | 陀螺仪传感器。 | +| SENSOR_TYPE_PHOTOPLETHYSMOGRAPH | 心率传感器。 | +| SENSOR_TYPE_ELECTROCARDIOGRAPH | 心电传感器。 | +| SENSOR_TYPE_AMBIENT_LIGHT | 环境光传感器。 | +| SENSOR_TYPE_MAGNETIC_FIELD | 地磁传感器。 | +| SENSOR_TYPE_CAPACITIVE | 电容传感器。 | +| SENSOR_TYPE_BAROMETER | 气压计传感器。 | +| SENSOR_TYPE_TEMPERATURE | 温度传感器。 | +| SENSOR_TYPE_HALL | 霍尔传感器。 | +| SENSOR_TYPE_GESTURE | 手势传感器。 | +| SENSOR_TYPE_PROXIMITY | 接近光传感器。 | +| SENSOR_TYPE_HUMIDITY | 湿度传感器。 | +| SENSOR_TYPE_MEDICAL_BEGIN | 医疗传感器ID枚举值范围的开始。 | +| SENSOR_TYPE_MEDICAL_END | 医疗传感器ID枚举值范围的结束。 | +| SENSOR_TYPE_PHYSICAL_MAX | 物理传感器最大类型。 | +| SENSOR_TYPE_ORIENTATION | 方向传感器。 | +| SENSOR_TYPE_GRAVITY | 重力传感器。 | +| SENSOR_TYPE_LINEAR_ACCELERATION | 线性加速度传感器。 | +| SENSOR_TYPE_ROTATION_VECTOR | 旋转矢量传感器。 | +| SENSOR_TYPE_AMBIENT_TEMPERATURE | 环境温度传感器 | +| SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED | 未校准磁场传感器。 | +| SENSOR_TYPE_GAME_ROTATION_VECTOR | 游戏旋转矢量传感器。 | +| SENSOR_TYPE_GYROSCOPE_UNCALIBRATED | 未校准陀螺仪传感器。 | +| SENSOR_TYPE_SIGNIFICANT_MOTION | 大幅度动作传感器。 | +| SENSOR_TYPE_PEDOMETER_DETECTION | 计步器检测传感器。 | +| SENSOR_TYPE_PEDOMETER | 计步器传感器。 | +| SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR | 地磁旋转矢量传感器。 | +| SENSOR_TYPE_HEART_RATE | 心率传感器。 | +| SENSOR_TYPE_DEVICE_ORIENTATION | 设备方向传感器。 | +| SENSOR_TYPE_WEAR_DETECTION | 佩戴检测传感器。 | +| SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED | 未校准加速度传感器。 | +| SENSOR_TYPE_MAX | 传感器类型最大个数标识。 | ## **函数说明** @@ -269,7 +269,7 @@ enum SensorTypeTag ### FreeSensorInterfaceInstance() - + ``` int32_t FreeSensorInterfaceInstance (void ) ``` @@ -295,7 +295,7 @@ int32_t FreeSensorInterfaceInstance (void ) ### NewSensorInterfaceInstance() - + ``` const struct SensorInterface* NewSensorInterfaceInstance (void ) ``` @@ -306,10 +306,10 @@ const struct SensorInterface* NewSensorInterfaceInstance (void ) **参数:** - | 名称 | 描述 | +| 名称 | 描述 | | -------- | -------- | -| sensorId | 表示传感器ID。有关详细信息,详见[SensorTypeTag](#sensortypetag)。 | -| cb | 表示要注册的回调函数。有关详细信息,详见[RecordDataCallback](#recorddatacallback)。 | +| sensorId | 表示传感器ID。有关详细信息,详见[SensorTypeTag](#sensortypetag)。 | +| cb | 表示要注册的回调函数。有关详细信息,详见[RecordDataCallback](#recorddatacallback)。 | **返回:** diff --git a/zh-cn/device-dev/reference/hdi-apis/_sensor_information.md b/zh-cn/device-dev/reference/hdi-apis/_sensor_information.md index f3c35206a6..083c23aab8 100644 --- a/zh-cn/device-dev/reference/hdi-apis/_sensor_information.md +++ b/zh-cn/device-dev/reference/hdi-apis/_sensor_information.md @@ -13,17 +13,17 @@ ### Public 属性 - | Public 属性 | 描述 | +| Public 属性 | 描述 | | -------- | -------- | -| [sensorName](#sensorname) [[SENSOR_NAME_MAX_LEN](_sensor.md#sensornamemaxlen)] | 传感器名称。 | -| [vendorName](#vendorname) [[SENSOR_NAME_MAX_LEN](_sensor.md#sensornamemaxlen)] | 传感器设备厂商。 | -| [firmwareVersion](#firmwareversion) [[SENSOR_VERSION_MAX_LEN](_sensor.md#sensorversionmaxlen)] | 传感器固件版本号。 | -| [hardwareVersion](#hardwareversion)
[[SENSOR_VERSION_MAX_LEN](_sensor.md#sensorversionmaxlen)] | 传感器硬件版本号。 | -| [sensorTypeId](#sensortypeid) | 传感器类型编号, | -| [sensorId](#sensorid) | 传感器的标识号,有传感器驱动开发者定义。 | -| [maxRange](#maxrange) | 传感器的最大量程。 | -| [accuracy](#accuracy) | 传感器的精度。 | -| [power](#power) | 传感器的功耗。 | +| [sensorName](#sensorname) [[SENSOR_NAME_MAX_LEN](_sensor.md#sensornamemaxlen)] | 传感器名称。 | +| [vendorName](#vendorname) [[SENSOR_NAME_MAX_LEN](_sensor.md#sensornamemaxlen)] | 传感器设备厂商。 | +| [firmwareVersion](#firmwareversion) [[SENSOR_VERSION_MAX_LEN](_sensor.md#sensorversionmaxlen)] | 传感器固件版本号。 | +| [hardwareVersion](#hardwareversion)
[[SENSOR_VERSION_MAX_LEN](_sensor.md#sensorversionmaxlen)] | 传感器硬件版本号。 | +| [sensorTypeId](#sensortypeid) | 传感器类型编号。 | +| [sensorId](#sensorid) | 传感器的标识号,由传感器驱动开发者定义。 | +| [maxRange](#maxrange) | 传感器的最大量程。 | +| [accuracy](#accuracy) | 传感器的精度。 | +| [power](#power) | 传感器的功耗。 | ## **详细描述** @@ -42,7 +42,7 @@ ### accuracy - + ``` float SensorInformation::accuracy ``` @@ -54,7 +54,7 @@ float SensorInformation::accuracy ### firmwareVersion - + ``` char SensorInformation::firmwareVersion[SENSOR_VERSION_MAX_LEN] ``` @@ -66,7 +66,7 @@ char SensorInformation::firmwareVersion[SENSOR_VERSION_MAX_LEN] ### hardwareVersion - + ``` char SensorInformation::hardwareVersion[SENSOR_VERSION_MAX_LEN] ``` @@ -78,7 +78,7 @@ char SensorInformation::hardwareVersion[SENSOR_VERSION_MAX_LEN] ### maxRange - + ``` float SensorInformation::maxRange ``` @@ -90,19 +90,19 @@ float SensorInformation::maxRange ### sensorId - + ``` int32_t SensorInformation::sensorId ``` **描述:** -传感器的标识号,有传感器驱动开发者定义。 +传感器的标识号,由传感器驱动开发者定义。 ### sensorName - + ``` char SensorInformation::sensorName[SENSOR_NAME_MAX_LEN] ``` @@ -114,7 +114,7 @@ char SensorInformation::sensorName[SENSOR_NAME_MAX_LEN] ### sensorTypeId - + ``` int32_t SensorInformation::sensorTypeId ``` @@ -126,7 +126,7 @@ int32_t SensorInformation::sensorTypeId ### vendorName - + ``` char SensorInformation::vendorName[SENSOR_NAME_MAX_LEN] ``` @@ -138,7 +138,7 @@ char SensorInformation::vendorName[SENSOR_NAME_MAX_LEN] ### power - + ``` char SensorInformation::power ``` diff --git a/zh-cn/device-dev/reference/hdi-apis/_sensor_interface.md b/zh-cn/device-dev/reference/hdi-apis/_sensor_interface.md index cc24e3a087..a6c64a9af3 100644 --- a/zh-cn/device-dev/reference/hdi-apis/_sensor_interface.md +++ b/zh-cn/device-dev/reference/hdi-apis/_sensor_interface.md @@ -13,23 +13,23 @@ ### Public 属性 - | Public 属性 | 描述 | +| Public 属性 | 描述 | | -------- | -------- | -| ( [GetAllSensors](#getallsensors) )([out] struct [SensorInformation](_sensor_information.md) \*\*sensorInfo, [out] int32_t \*count) | 获取当前系统中所有类型的传感器信息。 [更多...](#getallsensors) | -| ( [Enable](#enable) )([in] int32_t sensorId) | 根据传感器设备类型标识使能传感器信息列表里存在的设备,只有数据订阅者使能传感器后,才能获取订阅的传感器数据。 [更多...](#enable) | -| ( [Disable](#disable) )([in] int32_t sensorId) | 根据传感器设备类型标识去使能传感器信息列表里存在的设备。 [更多...](#disable) | -| ( [SetBatch](#setbatch) )([in] int32_t sensorId, [in] int64_t samplingInterval, [in] int64_t reportInterval) | 设置指定传感器的数据采样间隔和数据上报间隔。 [更多...](#setbatch) | -| ( [SetMode](#setmode) )([in] int32_t sensorId, [in] int32_t mode) | 设置指定传感器的数据上报模式,不同的工作模式,上报数据的方式不同。 [更多...](#setmode) | -| ( [SetOption](#setoption) )([in] int32_t sensorId, [in] uint32_t option) | 设置指定传感器量程、精度等可选配置。 [更多...](#setoption) | -| ( [Register](#register) )([in] int32_t groupId, [in] [RecordDataCallback](_sensor.md#recorddatacallback) cb) | 订阅者注册传感器数据回调函数,系统会将获取到的传感器数据上报给订阅者。 [更多...](#register) | -| ( [Unregister](#unregister) )([in] int32_t groupId, [in] [RecordDataCallback](_sensor.md#recorddatacallback) cb) | 订阅者去注册传感器数据回调函数。 [更多...](#unregister) | +| ( [GetAllSensors](#getallsensors) )([out] struct [SensorInformation](_sensor_information.md) \*\*sensorInfo, [out] int32_t \*count) | 获取当前系统中所有类型的传感器信息。 [更多...](#getallsensors) | +| ( [Enable](#enable) )([in] int32_t sensorId) | 根据传感器设备类型标识使能传感器信息列表里存在的设备,只有数据订阅者使能传感器后,才能获取订阅的传感器数据。 [更多...](#enable) | +| ( [Disable](#disable) )([in] int32_t sensorId) | 根据传感器设备类型标识去使能传感器信息列表里存在的设备。 [更多...](#disable) | +| ( [SetBatch](#setbatch) )([in] int32_t sensorId, [in] int64_t samplingInterval, [in] int64_t reportInterval) | 设置指定传感器的数据采样间隔和数据上报间隔。 [更多...](#setbatch) | +| ( [SetMode](#setmode) )([in] int32_t sensorId, [in] int32_t mode) | 设置指定传感器的数据上报模式,不同的工作模式,上报数据的方式不同。 [更多...](#setmode) | +| ( [SetOption](#setoption) )([in] int32_t sensorId, [in] uint32_t option) | 设置指定传感器量程、精度等可选配置。 [更多...](#setoption) | +| ( [Register](#register) )([in] int32_t groupId, [in] [RecordDataCallback](_sensor.md#recorddatacallback) cb) | 订阅者注册传感器数据回调函数,系统会将获取到的传感器数据上报给订阅者。 [更多...](#register) | +| ( [Unregister](#unregister) )([in] int32_t groupId, [in] [RecordDataCallback](_sensor.md#recorddatacallback) cb) | 订阅者取消注册传感器数据回调函数。 [更多...](#unregister) | ## **详细描述** 提供sensor设备基本控制操作接口。 -结构体提供获取传感器设备信息、订阅/去订阅传感器数据、使能/去使能传感器、设置传感器模式、设置传感器精度、量程等可选配置接口定义。 +结构体提供获取传感器设备信息、订阅/取消订阅传感器数据、使能/去使能传感器、设置传感器模式、设置传感器精度、量程等可选配置接口定义。 ## **类成员变量说明** @@ -37,7 +37,7 @@ ### Disable - + ``` int32_t(* SensorInterface::Disable) ([in] int32_t sensorId) ``` @@ -48,9 +48,9 @@ int32_t(* SensorInterface::Disable) ([in] int32_t sensorId) **参数:** - | 名称 | 描述 | +| 名称 | 描述 | | -------- | -------- | -| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 | +| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 | **返回:** @@ -61,7 +61,7 @@ int32_t(* SensorInterface::Disable) ([in] int32_t sensorId) ### Enable - + ``` int32_t(* SensorInterface::Enable) ([in] int32_t sensorId) ``` @@ -72,9 +72,9 @@ int32_t(* SensorInterface::Enable) ([in] int32_t sensorId) **参数:** - | 名称 | 描述 | +| 名称 | 描述 | | -------- | -------- | -| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 | +| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 | **返回:** @@ -85,7 +85,7 @@ int32_t(* SensorInterface::Enable) ([in] int32_t sensorId) ### GetAllSensors - + ``` int32_t(* SensorInterface::GetAllSensors) ([out] struct SensorInformation **sensorInfo,[out] int32_t *count) ``` @@ -96,10 +96,10 @@ int32_t(* SensorInterface::GetAllSensors) ([out] struct SensorInformation **sens **参数:** - | 名称 | 描述 | +| 名称 | 描述 | | -------- | -------- | -| sensorInfo | 输出系统中注册的所有传感器信息,一种类型传感器信息包括传感器名字、设备厂商、 固件版本号、硬件版本号、传感器类型编号、传感器标识、最大量程、精度、功耗,详见[SensorInformation](_sensor_information.md)。 | -| count | 输出系统中注册的传感器数量。 | +| sensorInfo | 输出系统中注册的所有传感器信息,一种类型传感器信息包括传感器名字、设备厂商、 固件版本号、硬件版本号、传感器类型编号、传感器标识、最大量程、精度、功耗,详见[SensorInformation](_sensor_information.md)。 | +| count | 输出系统中注册的传感器数量。 | **返回:** @@ -110,7 +110,7 @@ int32_t(* SensorInterface::GetAllSensors) ([out] struct SensorInformation **sens ### Register - + ``` int32_t(* SensorInterface::Register) ([in] int32_t groupId,[in] RecordDataCallback cb) ``` @@ -121,10 +121,10 @@ int32_t(* SensorInterface::Register) ([in] int32_t groupId,[in] RecordDataCallba **参数:** - | 名称 | 描述 | +| 名称 | 描述 | | -------- | -------- | -| groupId | 传感器组ID。 sensorId枚举值范围为128-160,表示已订阅医疗传感器服务,只需成功订阅一次,无需重复订阅。 sensorId枚举值范围不在128-160之间,这意味着传统传感器已订阅,只需成功订阅一次,无需重复订阅。 | -| cb | 要注册的回调函数,详见[RecordDataCallback](_sensor.md#recorddatacallback)。 | +| groupId | 传感器组ID。 sensorId枚举值范围为128-160,表示已订阅医疗传感器服务,只需成功订阅一次,无需重复订阅。 sensorId枚举值范围不在128-160之间,这意味着传统传感器已订阅,只需成功订阅一次,无需重复订阅。 | +| cb | 要注册的回调函数,详见[RecordDataCallback](_sensor.md#recorddatacallback)。 | **返回:** @@ -135,7 +135,7 @@ int32_t(* SensorInterface::Register) ([in] int32_t groupId,[in] RecordDataCallba ### SetBatch - + ``` int32_t(* SensorInterface::SetBatch) ([in] int32_t sensorId,[in] int64_t samplingInterval,[in] int64_t reportInterval) ``` @@ -146,11 +146,11 @@ int32_t(* SensorInterface::SetBatch) ([in] int32_t sensorId,[in] int64_t samplin **参数:** - | 名称 | 描述 | +| 名称 | 描述 | | -------- | -------- | -| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 | -| samplingInterval | 设置指定传感器的数据采样间隔,单位纳秒。 | -| reportInterval | 表示传感器数据上报间隔,单位纳秒。 | +| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 | +| samplingInterval | 设置指定传感器的数据采样间隔,单位纳秒。 | +| reportInterval | 表示传感器数据上报间隔,单位纳秒。 | **返回:** @@ -161,7 +161,7 @@ int32_t(* SensorInterface::SetBatch) ([in] int32_t sensorId,[in] int64_t samplin ### SetMode - + ``` int32_t(* SensorInterface::SetMode) ([in] int32_t sensorId,[in] int32_t mode) ``` @@ -172,10 +172,10 @@ int32_t(* SensorInterface::SetMode) ([in] int32_t sensorId,[in] int32_t mode) **参数:** - | 名称 | 描述 | +| 名称 | 描述 | | -------- | -------- | -| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 | -| mode | 传感器的数据上报模式,详见[SensorModeType](_sensor.md#sensormodetype)。 | +| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 | +| mode | 传感器的数据上报模式,详见[SensorModeType](_sensor.md#sensormodetype)。 | **返回:** @@ -186,7 +186,7 @@ int32_t(* SensorInterface::SetMode) ([in] int32_t sensorId,[in] int32_t mode) ### SetOption - + ``` int32_t(* SensorInterface::SetOption) ([in] int32_t sensorId,[in] uint32_t option) ``` @@ -197,10 +197,10 @@ int32_t(* SensorInterface::SetOption) ([in] int32_t sensorId,[in] uint32_t optio **参数:** - | 名称 | 描述 | +| 名称 | 描述 | | -------- | -------- | -| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 | -| option | 传感器的量程、精度等配置。 | +| sensorId | 唯一标识一个传感器设备类型,详见[SensorTypeTag](_sensor.md#sensortypetag)。 | +| option | 传感器的量程、精度等配置。 | **返回:** @@ -211,21 +211,21 @@ int32_t(* SensorInterface::SetOption) ([in] int32_t sensorId,[in] uint32_t optio ### Unregister - + ``` int32_t(* SensorInterface::Unregister) ([in] int32_t groupId,[in] RecordDataCallback cb) ``` **描述:** -订阅者去注册传感器数据回调函数。 +订阅者取消注册传感器数据回调函数。 **参数:** - | 名称 | 描述 | +| 名称 | 描述 | | -------- | -------- | -| groupId | 传感器组ID。 sensorId枚举值范围为128-160,表示已订阅医疗传感器服务。只需成功取消订阅一次,无需重复取消订阅。 sensorId枚举值范围不在128-160之间,这意味着传统传感器已订阅。并且成功取消订阅。 | -| cb | 要注册的回调函数,详见[RecordDataCallback](_sensor.md#recorddatacallback)。 | +| groupId | 传感器组ID。 sensorId枚举值范围为128-160,表示已订阅医疗传感器服务。只需成功取消订阅一次,无需重复取消订阅。 sensorId枚举值范围不在128-160之间,这意味着传统传感器已订阅。并且成功取消订阅。 | +| cb | 要取消注册的回调函数,详见[RecordDataCallback](_sensor.md#recorddatacallback)。 | **返回:** diff --git a/zh-cn/device-dev/reference/hdi-apis/light_8typeh.md b/zh-cn/device-dev/reference/hdi-apis/light_8typeh.md index 768205451b..55be372ba2 100644 --- a/zh-cn/device-dev/reference/hdi-apis/light_8typeh.md +++ b/zh-cn/device-dev/reference/hdi-apis/light_8typeh.md @@ -13,11 +13,11 @@ ### 类 - | 类 | 描述 | +| 类 | 描述 | | -------- | -------- | -| LightFlashEffect | 定义闪烁参数。 [更多...](_light_flash_effect.md) | -| LightEffect | 定义灯的效果参数。 [更多...](_light_effect.md) | -| LightInfo | 定义灯的基本信息。 [更多...](_light_info.md) | +| LightFlashEffect | 定义闪烁参数。 [更多...](_light_flash_effect.md) | +| LightEffect | 定义灯的效果参数。 [更多...](_light_effect.md) | +| LightInfo | 定义灯的基本信息。 [更多...](_light_info.md) | ## **详细描述** @@ -27,3 +27,7 @@ **Since:** 3.1 + +**Version:** + +1.0 \ No newline at end of file diff --git a/zh-cn/device-dev/reference/hdi-apis/light__if_8h.md b/zh-cn/device-dev/reference/hdi-apis/light__if_8h.md index a48fb26211..989dc4180a 100644 --- a/zh-cn/device-dev/reference/hdi-apis/light__if_8h.md +++ b/zh-cn/device-dev/reference/hdi-apis/light__if_8h.md @@ -13,23 +13,28 @@ ### 类 - | 类 | 描述 | +| 类 | 描述 | | -------- | -------- | -| [LightInterface](_light_interface.md) | 定义可以在灯上执行的基本操作。 [更多...](_light_interface.md) | +| [LightInterface](_light_interface.md) | 定义可以在灯上执行的基本操作。 [更多...](_light_interface.md) | ### 函数 - | 函数 | 描述 | +| 函数 | 描述 | | -------- | -------- | -| [NewLightInterfaceInstance](_light.md#newlightinterfaceinstance) (void) | 创建LightInterface实例。 [更多...](_light.md#newlightinterfaceinstance) | -| [FreeLightInterfaceInstance](_light.md#freelightinterfaceinstance) (void) | 释放LightInterface实例和相关资源。 [更多...](_light.md#freelightinterfaceinstance) | +| [NewLightInterfaceInstance](_light.md#newlightinterfaceinstance) (void) | 创建LightInterface实例。 [更多...](_light.md#newlightinterfaceinstance) | +| [FreeLightInterfaceInstance](_light.md#freelightinterfaceinstance) (void) | 释放LightInterface实例和相关资源。 [更多...](_light.md#freelightinterfaceinstance) | ## **详细描述** 声明light模块的通用API,可用于获取灯ID、打开或关闭灯、并设置灯光亮度和闪烁模式。 -**Sinc[更多...](_light_flash_effect.md)e更多...[更多...](_light_info.md):** +**Since:** 3.1 + +**Version:** + +1.0 + diff --git a/zh-cn/device-dev/reference/hdi-apis/sensor__if_8h.md b/zh-cn/device-dev/reference/hdi-apis/sensor__if_8h.md index 4e575fefc0..886db580b0 100644 --- a/zh-cn/device-dev/reference/hdi-apis/sensor__if_8h.md +++ b/zh-cn/device-dev/reference/hdi-apis/sensor__if_8h.md @@ -13,22 +13,22 @@ ### 类 - | 类 | 描述 | +| 类 | 描述 | | -------- | -------- | -| [SensorInterface](_sensor_interface.md) | 提供sensor设备基本控制操作接口。 [更多...](_sensor_interface.md) | +| [SensorInterface](_sensor_interface.md) | 提供sensor设备基本控制操作接口。 [更多...](_sensor_interface.md) | ### 函数 - | 函数 | 描述 | +| 函数 | 描述 | | -------- | -------- | -| [NewSensorInterfaceInstance](_sensor.md#newsensorinterfaceinstance) (void) | 创建传感器接口实例。 [更多...](_sensor.md#newsensorinterfaceinstance) | -| [FreeSensorInterfaceInstance](_sensor.md#freesensorinterfaceinstance) (void) | 释放传感器接口实例。 [更多...](_sensor.md#freesensorinterfaceinstance) | +| [NewSensorInterfaceInstance](_sensor.md#newsensorinterfaceinstance) (void) | 创建传感器接口实例。 [更多...](_sensor.md#newsensorinterfaceinstance) | +| [FreeSensorInterfaceInstance](_sensor.md#freesensorinterfaceinstance) (void) | 释放传感器接口实例。 [更多...](_sensor.md#freesensorinterfaceinstance) | ## **详细描述** -Sensor模块对外通用的接口声明文件,提供获取传感器设备信息、订阅/去订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度,量程等可选配置接口定义。 +Sensor模块对外通用的接口声明文件,提供获取传感器设备信息、订阅/取消订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度,量程等可选配置接口定义。 **Since:** -- GitLab From 168cbc201e52824f4baf328f83d517cc9a28e129 Mon Sep 17 00:00:00 2001 From: jiao_yanlin Date: Thu, 28 Jul 2022 16:06:07 +0800 Subject: [PATCH 522/868] Sample code format modification Signed-off-by: jiao_yanlin --- .../reference/apis/js-apis-audio.md | 60 +++++++------------ 1 file changed, 20 insertions(+), 40 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-audio.md b/zh-cn/application-dev/reference/apis/js-apis-audio.md index a57ff7dee9..7a1e682f0b 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-audio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-audio.md @@ -94,8 +94,7 @@ var audioRendererOptions = { audio.createAudioRenderer(audioRendererOptions,(err, data) => { if (err) { console.error(`AudioRenderer Created: Error: ${err.message}`); - } - else { + } else { console.info('AudioRenderer Created: Success: SUCCESS'); let audioRenderer = data; } @@ -193,8 +192,7 @@ var audioCapturerOptions = { audio.createAudioCapturer(audioCapturerOptions, (err, data) => { if (err) { console.error(`AudioCapturer Created : Error: ${err.message}`); - } - else { + } else { console.info('AudioCapturer Created : Success : SUCCESS'); let audioCapturer = data; } @@ -1918,8 +1916,7 @@ audioStreamManager.getCurrentAudioRendererInfoArray(async (err, AudioRendererCha if (err) { console.log('getCurrentAudioRendererInfoArray :ERROR: '+err.message); resultFlag = false; - } - else { + } else { if (AudioRendererChangeInfoArray !=null) { for (let i=0;i { if (err) { console.error(Tag+'Get AudioStream Manager : ERROR : '+err.message); - } - else { + } else { audioStreamManagerCB = data; console.info(Tag+'Get AudioStream Manager : Success '); } @@ -2443,8 +2438,7 @@ promise.then(function (value) { value.forEach(displayDeviceProp); if (deviceTypeValue != null && deviceRoleValue != null){ console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : PASS'); - } - else{ + } else { console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : FAIL'); } }); @@ -2596,8 +2590,7 @@ start(callback: AsyncCallback): void audioRenderer.start((err) => { if (err) { console.error('Renderer start failed.'); - } - else { + } else { console.info('Renderer start success.'); } }); @@ -2647,8 +2640,7 @@ pause(callback: AsyncCallback\): void audioRenderer.pause((err) => { if (err) { console.error('Renderer pause failed'); - } - else { + } else { console.log('Renderer paused.'); } }); @@ -2698,8 +2690,7 @@ drain(callback: AsyncCallback\): void audioRenderer.drain((err) => { if (err) { console.error('Renderer drain failed'); - } - else { + } else { console.log('Renderer drained.'); } }); @@ -2749,8 +2740,7 @@ stop(callback: AsyncCallback\): void audioRenderer.stop((err) => { if (err) { console.error('Renderer stop failed'); - } - else { + } else { console.log('Renderer stopped.'); } }); @@ -2800,8 +2790,7 @@ release(callback: AsyncCallback\): void audioRenderer.release((err) => { if (err) { console.error('Renderer release failed'); - } - else { + } else { console.log('Renderer released.'); } }); @@ -2962,8 +2951,7 @@ ss.readSync(buf); audioRenderer.write(buf).then((writtenbytes) => { if (writtenbytes < 0) { console.error('write failed.'); - } - else { + } else { console.log('Actual written bytes: ' + writtenbytes); } }).catch((err) => { @@ -3115,8 +3103,7 @@ setRenderRate(rate: AudioRendererRate, callback: AsyncCallback\): void audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err) => { if (err) { console.error('Failed to set params'); - } - else { + } else { console.log('Callback invoked to indicate a successful render rate setting.'); } }); @@ -3331,8 +3318,7 @@ audioRenderer.on('interrupt', async(interruptEvent) => { if (started) { isPlay = true; console.info('AudioInterruptMusic Renderer started : isPlay : '+isPlay); - } - else { + } else { console.error('AudioInterruptMusic Renderer start failed'); } break; @@ -3341,8 +3327,7 @@ audioRenderer.on('interrupt', async(interruptEvent) => { if (isPlay == true) { isPlay == false; console.info('AudioInterruptMusic: Media PAUSE : TRUE'); - } - else { + } else { isPlay = true; console.info('AudioInterruptMusic: Media PLAY : TRUE'); } @@ -3540,8 +3525,7 @@ getCapturerInfo(callback: AsyncCallback): void audioCapturer.getCapturerInfo((err, capturerInfo) => { if (err) { console.error('Failed to get capture info'); - } - else { + } else { console.log('Capturer getCapturerInfo:'); console.log('Capturer source:' + capturerInfo.source); console.log('Capturer flags:' + capturerInfo.capturerFlags); @@ -3572,8 +3556,7 @@ audioCapturer.getCapturerInfo().then((audioParamsGet) => { console.info('AudioFrameworkRecLog: Capturer CapturerInfo:'); console.info('AudioFrameworkRecLog: Capturer SourceType:' + audioParamsGet.source); console.info('AudioFrameworkRecLog: Capturer capturerFlags:' + audioParamsGet.capturerFlags); - } - else { + } else { console.info('AudioFrameworkRecLog: audioParamsGet is : '+ audioParamsGet); console.info('AudioFrameworkRecLog: audioParams getCapturerInfo are incorrect: '); } @@ -3660,8 +3643,7 @@ start(callback: AsyncCallback): void audioCapturer.start((err) => { if (err) { console.error('Capturer start failed.'); - } - else { + } else { console.info('Capturer start success.'); } }); @@ -3742,8 +3724,7 @@ stop(callback: AsyncCallback): void audioCapturer.stop((err) => { if (err) { console.error('Capturer stop failed'); - } - else { + } else { console.log('Capturer stopped.'); } }); @@ -3798,8 +3779,7 @@ release(callback: AsyncCallback): void audioCapturer.release((err) => { if (err) { console.error('capturer release failed'); - } - else { + } else { console.log('capturer released.'); } }); -- GitLab From d651df629b9eb3d6bab7baf318095b4d25a5c9b6 Mon Sep 17 00:00:00 2001 From: wangyb0625 Date: Thu, 28 Jul 2022 16:10:50 +0800 Subject: [PATCH 523/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B5=84=E6=96=99?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangyb0625 --- zh-cn/application-dev/reference/apis/js-apis-device-manager.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-device-manager.md b/zh-cn/application-dev/reference/apis/js-apis-device-manager.md index d37d15441a..73847e295e 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-device-manager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-device-manager.md @@ -59,7 +59,7 @@ createDeviceManager(bundleName: string, callback: AsyncCallback<DeviceManager | -------- | -------- | -------- | -------- | | deviceId | string | 是 | 设备的唯一标识。 | | deviceName | string | 是 | 设备名称。 | -| deviceType | [DeviceType](#deviceType) | 是 | 设备类型。 | +| deviceType | [DeviceType](#devicetype) | 是 | 设备类型。 | | networkId8+ | string | 是 | 设备网络标识。 | -- GitLab From 5913d20eb5d1bea9cc169440eb93484258721b1d Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 28 Jul 2022 08:16:12 +0000 Subject: [PATCH 524/868] update zh-cn/application-dev/reference/apis/js-apis-inputmethod.md. Signed-off-by: LiAn --- .../reference/apis/js-apis-inputmethod.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-inputmethod.md b/zh-cn/application-dev/reference/apis/js-apis-inputmethod.md index 09f9074786..fb79e60c51 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-inputmethod.md +++ b/zh-cn/application-dev/reference/apis/js-apis-inputmethod.md @@ -2,7 +2,8 @@ 本模块提供对输入法框架的管理,包括隐藏输入法、查询已安装的输入法列表和显示输入法选择对话框。 -> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> **说明:** +> > 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 @@ -111,7 +112,7 @@ switchInputMethod(target: InputmethodProperty): Promise<boolean> **返回值:** | 类型 | 说明 | | ----------------------------------------- | ---------------------------- | - | [Promise](#Promise) | 回调返回切换后的输入法。 | + | Promise\ | 回调返回切换后的输入法。 | **示例:** @@ -123,7 +124,7 @@ switchInputMethod(target: InputmethodProperty): Promise<boolean> ``` ## InputMethodController -下列API示例中都需使用[getInputMethodController](#getInputMethodController)回调获取到InputMethodController实例,再通过此实例调用对应方法。 +下列API示例中都需使用[getInputMethodController](#getinputmethodcontroller)回调获取到InputMethodController实例,再通过此实例调用对应方法。 ### stopInput @@ -171,7 +172,7 @@ stopInput(): Promise<boolean> ## InputMethodSetting8+ -下列API示例中都需使用[getInputMethodSetting](#getInputMethodSetting)回调获取到InputMethodSetting实例,再通过此实例调用对应方法。 +下列API示例中都需使用[getInputMethodSetting](#getinputmethodsetting)回调获取到InputMethodSetting实例,再通过此实例调用对应方法。 ### listInputMethod -- GitLab From 5918469cdd205eea0cd4b9ad1474c3b448899f9c Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 28 Jul 2022 08:17:54 +0000 Subject: [PATCH 525/868] update zh-cn/application-dev/reference/apis/js-apis-uitest.md. Signed-off-by: LiAn --- zh-cn/application-dev/reference/apis/js-apis-uitest.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-uitest.md b/zh-cn/application-dev/reference/apis/js-apis-uitest.md index 1d2473acf7..75cd6d8c3e 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-uitest.md +++ b/zh-cn/application-dev/reference/apis/js-apis-uitest.md @@ -23,7 +23,7 @@ import {UiDriver, BY, MatchPattern, ResizeDirection, WindowMode} from '@ohos.uit ## By UiTest框架通过By类提供了丰富的控件特征描述API,用于进行控件筛选来匹配/查找出目标控件。
-By提供的API能力具有以下几个特点:
1、支持单属性匹配和多属性组合匹配,例如同时指定目标控件text和id。
2、控件属性支持多种匹配模式。
3、支持控件绝对定位,相对定位,可通过[By.isBefore](#byisbefore)和[By.isAfter](#byisafter)等API限定邻近控件特征进行辅助定位。
By类提供的所有API均为同步接口,建议使用者通过静态构造器BY来链式创建By对象。 +By提供的API能力具有以下几个特点:
1、支持单属性匹配和多属性组合匹配,例如同时指定目标控件text和id。
2、控件属性支持多种匹配模式。
3、支持控件绝对定位,相对定位,可通过[By.isBefore](#isbefore)和[By.isAfter](#isafter)等API限定邻近控件特征进行辅助定位。
By类提供的所有API均为同步接口,建议使用者通过静态构造器BY来链式创建By对象。 ```js BY.text('123').type('button') -- GitLab From 8e7f1ce8f5ebdb0a5b2e0697a88cdb82d0d99e4b Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 28 Jul 2022 08:20:37 +0000 Subject: [PATCH 526/868] update zh-cn/application-dev/reference/apis/js-apis-uitest.md. Signed-off-by: LiAn --- zh-cn/application-dev/reference/apis/js-apis-uitest.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-uitest.md b/zh-cn/application-dev/reference/apis/js-apis-uitest.md index 75cd6d8c3e..62303e6e2b 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-uitest.md +++ b/zh-cn/application-dev/reference/apis/js-apis-uitest.md @@ -1566,7 +1566,7 @@ getWindowMode(): Promise\ | 类型 | 说明 | | ------------------------------------------------ | ------------------------------------- | -| Promise\<[WindowMode](#WindowMode9+)> | 以Promise形式返回窗口的窗口模式信息。 | +| Promise\<[WindowMode](#windowmode9)> | 以Promise形式返回窗口的窗口模式信息。 | **示例:** @@ -1695,7 +1695,7 @@ resize(wide: number, height: number, direction: ResizeDirection): Promise\ | --------- | ------------------------------------------------ | ---- | ------------------------------------------------------------ | | wide | number | 是 | 以number的形式传入调整后窗口的宽度。 | | height | number | 是 | 以number的形式传入调整后窗口的高度。 | -| direction | [ResizeDirection](#resizedirection9+) | 是 | 以[ResizeDirection](#ResizeDirection9+)的形式传入窗口调整的方向。 | +| direction | [ResizeDirection](#resizedirection9) | 是 | 以[ResizeDirection](#resizedirection9)的形式传入窗口调整的方向。 | **返回值:** -- GitLab From 8099207549b7fcd68cac8be2f2f64b7f92da8672 Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 28 Jul 2022 08:24:05 +0000 Subject: [PATCH 527/868] update zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md. Signed-off-by: LiAn --- .../reference/arkui-ts/ts-basic-components-image.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md index a22b6dbc6f..b66dec8654 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md @@ -45,7 +45,7 @@ Image(src: string | PixelMap | Resource) | 名称 | 参数类型 | 默认值 | 描述 | | --------------------- | ---------------------------------------- | ------------------------ | ---------------------------------------- | | alt | string \| [Resource](../../ui/ts-types.md#resource类型) | - | 加载时显示的占位图,支持本地图片和网络图片。 | -| objectFit | [ImageFit](#imagefit枚举说明) | ImageFit.Cover | 设置图片的缩放类型。 | +| objectFit | ImageFit | ImageFit.Cover | 设置图片的缩放类型。 | | objectRepeat | [ImageRepeat](ts-appendix-enums.md#imagerepeat) | NoRepeat | 设置图片的重复样式。
> **说明:**
> - svg类型图源不支持该属性。 | | interpolation | [ImageInterpolation](#imageinterpolation) | ImageInterpolation.None | 设置图片的插值效果,仅针对图片放大插值。
> **说明:**
> - svg类型图源不支持该属性。
> - PixelMap资源不支持该属性。 | | renderMode | [ImageRenderMode](#imagerendermode) | ImageRenderMode.Original | 设置图片渲染的模式。
> **说明:**
> - svg类型图源不支持该属性。 | -- GitLab From 4cff227b54606d40fb733cf2ef6c3573261764fe Mon Sep 17 00:00:00 2001 From: wangyb0625 Date: Thu, 28 Jul 2022 16:25:24 +0800 Subject: [PATCH 528/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=8B=B1=E6=96=87md?= =?UTF-8?q?=20Signed-off-by:=20wangyb0625=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- en/application-dev/reference/apis/js-apis-device-manager.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/en/application-dev/reference/apis/js-apis-device-manager.md b/en/application-dev/reference/apis/js-apis-device-manager.md index 93ab553ef1..9396e64222 100644 --- a/en/application-dev/reference/apis/js-apis-device-manager.md +++ b/en/application-dev/reference/apis/js-apis-device-manager.md @@ -80,7 +80,8 @@ Defines device information. | -------- | -------- | -------- | -------- | | deviceId | number | Yes| Unique device identifier.| | deviceName | string | Yes| Device name.| -| deviceType | number | Yes| Device type.| +| deviceType | [DeviceType](#devicetype) | Yes| Device type.| +| networkId8+ | string | Yes | Device networkId. | ## DeviceManager -- GitLab From 1aa5c3e2cf9e682af755831d58b0523b0f079fa8 Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 28 Jul 2022 08:25:37 +0000 Subject: [PATCH 529/868] update zh-cn/application-dev/reference/arkui-ts/ts-universal-events-click.md. Signed-off-by: LiAn --- .../reference/arkui-ts/ts-universal-events-click.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-events-click.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-events-click.md index 87355fc2a9..78689dca4d 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-events-click.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-events-click.md @@ -37,8 +37,8 @@ | -------------- | -------------------------- | ------------------- | | width | number | 目标元素的宽度,单位为vp。 | | height | number | 目标元素的高度,单位为vp。 | -| position | [Position](#position8对象说明) | 目标元素左上角相对父元素左上角的位置。 | -| globalPosition | [Position](#position8对象说明) | 目标元素左上角相对页面左上角的位置。 | +| position | Position | 目标元素左上角相对父元素左上角的位置。 | +| globalPosition | Position | 目标元素左上角相对页面左上角的位置。 | ## Position8+对象说明 | 属性名称 | 参数类型 | 描述 | -- GitLab From 31b73a195a407038e234cd89414259bf03e3436d Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 28 Jul 2022 08:26:59 +0000 Subject: [PATCH 530/868] update zh-cn/application-dev/ui/ts-framework-directory.md. Signed-off-by: LiAn --- zh-cn/application-dev/ui/ts-framework-directory.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/ui/ts-framework-directory.md b/zh-cn/application-dev/ui/ts-framework-directory.md index 5bb1202317..b4a7b831db 100644 --- a/zh-cn/application-dev/ui/ts-framework-directory.md +++ b/zh-cn/application-dev/ui/ts-framework-directory.md @@ -26,6 +26,6 @@ FA应用的eTS模块(entry/src/main)的典型开发目录结构如下: > **说明:** > -> - 资源目录resources文件夹位于src/main下,此目录下资源文件的详细规范以及子目录结构规范参看[资源文件的分类](basic-resource-file-categories.md)。 +> - 资源目录resources文件夹位于src/main下,此目录下资源文件的详细规范以及子目录结构规范参看[资源文件的分类](ui-ts-basic-resource-file-categories.md)。 > > - 页面支持导入TypeScript和JavaScript文件。 -- GitLab From 888cd1fc4265b9b5e6845d84b22c027663b9cf0b Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 28 Jul 2022 08:27:54 +0000 Subject: [PATCH 531/868] update zh-cn/application-dev/ui/ts-types.md. Signed-off-by: LiAn --- zh-cn/application-dev/ui/ts-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/ui/ts-types.md b/zh-cn/application-dev/ui/ts-types.md index dac58cd282..7fe41c4e11 100644 --- a/zh-cn/application-dev/ui/ts-types.md +++ b/zh-cn/application-dev/ui/ts-types.md @@ -60,7 +60,7 @@ 资源引用类型,用于设置组件属性的值。 -可以通过`$r`或者`$rawfile`创建Resource类型对象,详见[资源访问](ts-application-resource-access.md)。 +可以通过`$r`或者`$rawfile`创建Resource类型对象,详见[资源访问](ts-resource-access.md)。 - `$r('belonging.type.name')` -- GitLab From 454dc36c6b4115584b6c6ef024294c92e473670a Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 28 Jul 2022 08:34:26 +0000 Subject: [PATCH 532/868] update zh-cn/application-dev/reference/apis/js-apis-inputdevice.md. Signed-off-by: LiAn --- zh-cn/application-dev/reference/apis/js-apis-inputdevice.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-inputdevice.md b/zh-cn/application-dev/reference/apis/js-apis-inputdevice.md index 5e62f5e143..6c6aa4804d 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-inputdevice.md +++ b/zh-cn/application-dev/reference/apis/js-apis-inputdevice.md @@ -246,7 +246,7 @@ getKeyboardType(deviceId: number, callback: AsyncCallback<KeyboardType>): | 参数 | 类型 | 必填 | 说明 | | -------- | ---------------------------------------- | ---- | --------------------------------- | | deviceId | number | 是 | 输入设备的唯一标识,同一个物理设备反复插拔,其设备id会发生变化。 | -| callback | AsyncCallback<[KeyboardType](#keyboardtype)> | 是 | 回调函数,异步返回查询结果。 | +| callback | AsyncCallback<[KeyboardType](#keyboardtype9)> | 是 | 回调函数,异步返回查询结果。 | **示例**: @@ -269,7 +269,7 @@ getKeyboardType(deviceId: number): Promise<KeyboardType> | 参数 | 说明 | | ---------------------------------------- | ------------------- | -| Promise<[KeyboardType](#keyboardtype)> | Promise实例,用于异步获取结果。 | +| Promise<[KeyboardType](#keyboardtype9)> | Promise实例,用于异步获取结果。 | **示例**: @@ -337,7 +337,7 @@ inputDevice.getKeyboardType(1).then((ret)=>{ | 名称 | 参数类型 | 说明 | | ----------------------- | ------------------------- | -------- | | source | [SourceType](#sourcetype) | 轴的输入源类型。 | -| axis | [AxisType](#axistype) | 轴的类型。 | +| axis | [AxisType](#axistype9) | 轴的类型。 | | max | number | 轴的最大值。 | | min | number | 轴的最小值。 | | fuzz9+ | number | 轴的模糊值。 | -- GitLab From d518b37eb6da2dc8df8c150a92a4ec1dbe928164 Mon Sep 17 00:00:00 2001 From: shawn_he Date: Thu, 28 Jul 2022 16:36:11 +0800 Subject: [PATCH 533/868] update doc Signed-off-by: shawn_he --- .../subsystems/subsys-dfx-hisysevent-tool.md | 134 ++++++++++-------- 1 file changed, 74 insertions(+), 60 deletions(-) diff --git a/en/device-dev/subsystems/subsys-dfx-hisysevent-tool.md b/en/device-dev/subsystems/subsys-dfx-hisysevent-tool.md index 7e6b3a45e7..15fd622015 100644 --- a/en/device-dev/subsystems/subsys-dfx-hisysevent-tool.md +++ b/en/device-dev/subsystems/subsys-dfx-hisysevent-tool.md @@ -1,12 +1,13 @@ -# HiSysEvent Tool Usage +# HiSysEvent Tool Usage -## Overview + +## Overview The HiSysEvent tool is a command line tool preconfigured in the **/system/bin** directory of the system. You can use this tool to subscribe to real-time system events or query historical system vents. -## Subscribing to Real-Time System Events +## Subscribing to Real-Time System Events -- Command for subscribing to real-time system events: +- Command for subscribing to real-time system events: ``` hisysevent -r @@ -15,10 +16,10 @@ The HiSysEvent tool is a command line tool preconfigured in the **/system/bin** Description of command options: | Option| Description| - | -------- | --------- | - | -r  | Subscribes to real-time system events based on the default settings. When this option is specified, any real-time system event will be printed on the console.| + | -------- | -------- | + | -r | Subscribes to real-time system events based on the default settings. When this option is specified, any real-time system event will be printed on the console.| -- Command for enabling the debugging mode: +- Command for enabling the debugging mode: ``` hisysevent -r -d @@ -27,10 +28,10 @@ The HiSysEvent tool is a command line tool preconfigured in the **/system/bin** Description of command options: | Option| Description| - | -------- | --------- | - | -d | Subscribes to real-time system events in debugging mode.| + | -------- | -------- | + | -d | Subscribes to real-time system events in debugging mode.| -- Command for subscribing to real-time system events by event tag: +- Command for subscribing to real-time system events by event tag: ``` hisysevent -r -t [-c [WHOLE_WORD|PREFIX|REGULAR]] @@ -39,24 +40,22 @@ The HiSysEvent tool is a command line tool preconfigured in the **/system/bin** Description of command options: | Option| Description| - | -------- | --------- | - | -t  | Event tag used to filter subscribed real-time system events.| - | -c  | Matching rule for event tags. The options can be **WHOLE_WORD**, **PREFIX**, or **REGULAR**.| + | -------- | -------- | + | -t | Event tag used to filter subscribed real-time system events.| + | -c | Matching rule for event tags. The options can be **WHOLE_WORD**, **PREFIX**, or **REGULAR**.| Example: ``` - # hisysevent -r -t "TAG" -c PREFIX - {"domain_":"ARKUI","name_":"UI_BLOCK_6S","type_":1,"time_":1501940269812,"tz_":"+0000","tag_":"TAG1","pid_":1428,"tid_":1452,"uid_":10001,"level_":"CRITICAL","info_":""} - # hisysevent -r -t "TA\w{0,1}" -c REGULAR - {"domain_":"WINDOWMANAGER","name_":"NO_FOCUS_WINDOW","type_":1,"time_":1501940269802,"tz_":"+0000","tag_":"TAG","pid_":1428,"tid_":1433,"uid_":10001,"level_":"CRITICAL","info_":""} - {"domain_":"ARKUI","name_":"UI_BLOCK_6S","type_":1,"time_":1501940269812,"tz_":"+0000","tag_":"TAG1","pid_":1428,"tid_":1452,"uid_":10001,"level_":"CRITICAL","info_":""} - # hisysevent -r -t "TA\w+" -c REGULAR - {"domain_":"WINDOWMANAGER","name_":"NO_FOCUS_WINDOW","type_":1,"time_":1501940269802,"tz_":"+0000","tag_":"TAG","pid_":1428,"tid_":1433,"uid_":10001,"level_":"CRITICAL","info_":""} - {"domain_":"ARKUI","name_":"UI_BLOCK_6S","type_":1,"time_":1501940269812,"tz_":"+0000","tag_":"TAG1","pid_":1428,"tid_":1452,"uid_":10001,"level_":"CRITICAL","info_":""} + # hisysevent -r -t "STA" -c PREFIX + {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501963670809,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805200750","HAPPEN_TIME":1501963670809,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"4973863135535405472","info_":""} + # hisysevent -r -t "STAw{0,6}" -c REGULAR + {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501963793206,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805200953","HAPPEN_TIME":1501963793206,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"16367997008075110557","info_":""} + # hisysevent -r -t "STA\w+" -c REGULAR + {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501963863393,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805201103","HAPPEN_TIME":1501963863393,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"5522352691813553392","info_":""} ``` -- Command for subscribing to real-time system events by event domain and event name: +- Command for subscribing to real-time system events by event domain and event name: ``` hisysevent -r -o -n [-c [WHOLE_WORD|PREFIX|REGULAR]] @@ -65,31 +64,29 @@ The HiSysEvent tool is a command line tool preconfigured in the **/system/bin** Description of command options: | Option| Description| - | -------- | --------- | - | -o | Event domain used to filter subscribed real-time system events.| - | -n | Event name used to filter subscribed real-time system events.| - | -c | Matching rule for event domains and event names. The options can be **WHOLE_WORD**, **PREFIX**, or **REGULAR**.| + | -------- | -------- | + | -o | Event domain used to filter subscribed real-time system events.| + | -n | Event name used to filter subscribed real-time system events.| + | -c | Matching rule for event domains and event names. The options can be **WHOLE_WORD**, PREFIX, or **REGULAR**.| Example: ``` - # hisysevent -r -o "DOMAINA" -n "EVENTNAMEA" - {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":1501940269802,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""} - # hisysevent -r -o "DOMA\w{0,10}" -n "EVENT\w+" -c REULAR - {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":1501940269802,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""} - {"domain_":"DOMAINABC","name_":"EVENTNAMEABC","type_":1,"time_":1501940269938,"tz_":"+0000","pid_":1428,"tid_":1336,"uid_":10002,"level_":"CRITICAL","info_":""} - # hisysevent -r -o "DOMA\w{0,10}" -c REGULAR - {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":1501940269802,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""} - {"domain_":"DOMAINABC","name_":"EVENTNAMEABC","type_":1,"time_":1501940269938,"tz_":"+0000","pid_":1428,"tid_":1336,"uid_":10002,"level_":"CRITICAL","info_":""} - {"domain_":"DOMAINABC","name_":"EVENTNAMEB","type_":1,"time_":1501940279938,"tz_":"+0000","pid_":1428,"tid_":1344,"uid_":10002,"level_":"CRITICAL","info_":""} + # hisysevent -r -o "RELIABILITY" -n "APP_FREEZE" + {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501963989773,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805201309","HAPPEN_TIME":1501963989773,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"16367997008075110557","info_":""} + # hisysevent -r -o "RELIABI\w{0,8}" -n "APP_FREEZE" -c REGULAR + {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501964144383,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805201544","HAPPEN_TIME":1501964144383,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"13456525196455104060","info_":""} + # hisysevent -r -o "RELIABI\w+" -c REGULAR + {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501964193466,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805201633","HAPPEN_TIME":1501964193466,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"12675246910904037271","info_":""} ``` - >![](../public_sys-resources/icon-note.gif) **NOTE:** - >If **-t**, **-o**, and **-n** are specified, the system checks whether the configured event tag is null. If the event tag is not null, the system filters system events based on the matching rules for the event tag. Otherwise, the system filters system events based on the matching rules for the event domain and event name. + > **NOTE** + > If **-t**, **-o**, and **-n** are specified, the system checks whether the configured event tag is null. If the event tag is not null, the system filters system events based on the matching rules for the event tag. Otherwise, the system filters system events based on the matching rules for the event domain and event name. + -## Querying Historical System Events +## Querying Historical System Events -- Command for querying historical system events: +- Command for querying historical system events: ``` hisysevent -l @@ -98,10 +95,10 @@ The HiSysEvent tool is a command line tool preconfigured in the **/system/bin** Description of command options: | Option| Description| - | -------- | --------- | - | -l | Queries historical system events based on the default settings. A maximum of 1,000 latest system events will be returned.| + | -------- | -------- | + | -l | Queries historical system events based on the default settings. A maximum of 1,000 latest system events will be returned.| -- Command for querying historical system events within the specified period of time: +- Command for querying historical system events within the specified period of time: ``` hisysevent -l -s -e @@ -110,21 +107,20 @@ The HiSysEvent tool is a command line tool preconfigured in the **/system/bin** Description of command options: | Option| Description| - | -------- | --------- | - | -s | Start time for querying historical system events. Only system events generated after the start time are returned.| - | -e | End time for querying historical system events. Only system events generated before the end time are returned.| + | -------- | -------- | + | -s | Start time for querying historical system events. Only system events generated after the start time are returned.| + | -e | End time for querying historical system events. Only system events generated before the end time are returned.| Example: ``` - # hisysevent -l -s 20207388633 -e 20207389000 - {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207388633,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""} - {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207388634,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""} - {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207388900,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""} - {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207389000,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""} + # hisysevent -l -s 1501964222980 -e 1501964222996 + {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501964222980,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805201702","HAPPEN_TIME":1501964222980,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"10435592800188571430","info_":""} + {"domain_":"GRAPHIC","name_":"NO_DRAW","type_":1,"time_":1501964222980,"tz_":"+0000","pid_":1505,"tid_":1585,"uid_":10002,"PID":1505,"UID":10002,"ABILITY_NAME":"","MSG":"It took 1957104259905ns to draw, UI took 0ns to draw, RSRenderThread took 8962625ns to draw, RSRenderThread dropped 0 UI Frames","level_":"MINOR","id_":"1708287249901948387","info_":"isResolved,eventId:0"} + {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501964222994,"tz_":"+0000","pid_":623,"tid_":1445,"uid_":1201,"SUB_EVENT_TYPE":"NO_DRAW","EVENT_TIME":"20170805201702","MODULE":"NO_DRAW","PNAME":"NO_DRAW","REASON":"NO_DRAW","DIAG_INFO":"","STACK":"SUMMARY:\n","HIVIEW_LOG_FILE_PATHS":["/data/log/faultlog/faultlogger/appfreeze-NO_DRAW-10002-20170805201702"],"DOMAIN":"GRAPHIC","STRING_ID":"NO_DRAW","PID":1505,"UID":10002,"PACKAGE_NAME":"NO_DRAW","PROCESS_NAME":"","MSG":"It took 1956945826265ns to draw, UI took 0ns to draw, RSRenderThread took 9863293ns to draw, RSRenderThread dropped 0 UI Frames\n","level_":"CRITICAL","tag_":"STABILITY","id_":"10448522101019619655","info_":""} ``` -- Command for setting the maximum number of historical events that can be queried: +- Command for setting the maximum number of historical events that can be queried: ``` hisysevent -l -m @@ -133,18 +129,36 @@ The HiSysEvent tool is a command line tool preconfigured in the **/system/bin** Description of command options: | Option| Description| - | -------- | --------- | - | -m | Maximum number of historical system events that can be queried. The value ranges from **0** to **1000**. The number of returned system events is not more than the value of this parameter.| + | -------- | -------- | + | -m | Maximum number of historical system events that can be queried. The value ranges from **0** to **1000**. The number of returned system events is not more than the value of this parameter.| Example: ``` - # hisysevent -l -s 20207388633 -e 20207389000 -m 3 - {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207388634,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""} - {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207388900,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""} - {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207389000,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""} - # hisysevent -l -m 2 - {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207388633,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""} - {"domain_":"DOMAINA","name_":"EVENTNAMEA","type_":1,"time_":20207388634,"tz_":"+0000","pid_":1428,"tid_":1333,"uid_":10002,"level_":"CRITICAL","info_":""} + # hisysevent -l -s 1501964222980 -e 1501964222996 -m 1 + {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501964222980,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805201702","HAPPEN_TIME":1501964222980,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"10435592800188571430","info_":""} + ``` + +## System Event Validity Check + +- Enabling system event validity check + + ``` + hisysevent -v ``` + + Description of command options: + + | Option| Description| + | -------- | -------- | + | -v | Used with the subscription command **-r** and query command **-l**. If system event validity check is enabled, invalid content contained in system events will be highlighted in red.| + Example: + + ``` + # hisysevent -v -l -s 1501964222980 -e 1501964222996 + # The **HAPPEN_TIME** and **VERSION** fields are not configured in the YAML file for the **APP_FREEZE** event that belongs to the **RELIABILITY** domain. Therefore, the two fields are highlighted in red. + {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501964222980,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805201702","HAPPEN_TIME":1501964222980,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"10435592800188571430","info_":""} + # hisysevent -v -r -o "RELIABILITY" -n "APP_FREEZE" + {"domain_":"RELIABILITY","name_":"APP_FREEZE","type_":1,"time_":1501964644584,"pid_":1505,"uid_":10002,"FAULT_TYPE":"4","MODULE":"com.ohos.screenlock","REASON":"NO_DRAW","SUMMARY":"SUMMARY:\n","LOG_PATH":"/data/log/faultlog/faultlogger/appfreeze-com.ohos.screenlock-10002-20170805202404","HAPPEN_TIME":1501964644584,"VERSION":"1.0.0","level_":"CRITICAL","tag_":"STABILITY","id_":"11097868872446282676","info_":""} + ``` -- GitLab From 338357deb240f7826d0980d731b37d01e5628c45 Mon Sep 17 00:00:00 2001 From: wangyb0625 Date: Thu, 28 Jul 2022 16:42:53 +0800 Subject: [PATCH 534/868] 21 Signed-off-by: wangyb0625 --- en/application-dev/reference/apis/js-apis-device-manager.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-device-manager.md b/en/application-dev/reference/apis/js-apis-device-manager.md index 9396e64222..93ab553ef1 100644 --- a/en/application-dev/reference/apis/js-apis-device-manager.md +++ b/en/application-dev/reference/apis/js-apis-device-manager.md @@ -80,8 +80,7 @@ Defines device information. | -------- | -------- | -------- | -------- | | deviceId | number | Yes| Unique device identifier.| | deviceName | string | Yes| Device name.| -| deviceType | [DeviceType](#devicetype) | Yes| Device type.| -| networkId8+ | string | Yes | Device networkId. | +| deviceType | number | Yes| Device type.| ## DeviceManager -- GitLab From 3f836baaf11de918d883818b5659a21520454e70 Mon Sep 17 00:00:00 2001 From: wangyb0625 Date: Thu, 28 Jul 2022 16:53:41 +0800 Subject: [PATCH 535/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B7=B3=E8=BD=AC?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E4=B8=BA=E5=B0=8F=E5=86=99=20Signed-off-by:?= =?UTF-8?q?=20wangyb0625=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/apis/js-apis-device-manager.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-device-manager.md b/zh-cn/application-dev/reference/apis/js-apis-device-manager.md index 73847e295e..fe4a208c3c 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-device-manager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-device-manager.md @@ -102,12 +102,12 @@ createDeviceManager(bundleName: string, callback: AsyncCallback<DeviceManager | 名称 | 类型 | 必填 | 描述 | | -------- | -------- | -------- | -------- | | subscribeId | number | 是 | 发现标识,用于标识不同的发现周期。 | -| mode | [DiscoverMode ](#discoverMode) | 否 | 发现模式。 | -| medium | [ExchangeMedium](#exchangeMedium) | 否 | 发现类型。 | -| freq | [ExchangeFreq](#exchangeFreq) | 否 | 发现频率。 | +| mode | [DiscoverMode ](#discovermode) | 否 | 发现模式。 | +| medium | [ExchangeMedium](#exchangemedium) | 否 | 发现类型。 | +| freq | [ExchangeFreq](#exchangefreq) | 否 | 发现频率。 | | isSameAccount | boolean | 否 | 是否同账号。 | | isWakeRemote | boolean | 否 | 是否唤醒设备。 | -| capability | [SubscribeCap](#subscribeCap) | 否 | 发现能力。 | +| capability | [SubscribeCap](#subscribecap) | 否 | 发现能力。 | ## DiscoverMode @@ -341,7 +341,7 @@ startDeviceDiscovery(subscribeInfo: SubscribeInfo): void - 参数: | 名称 | 参数类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | - | subscribeInfo | [SubscribeInfo](#subscribeInfo) | 是 | 发现信息。 | + | subscribeInfo | [SubscribeInfo](#subscribeinfo) | 是 | 发现信息。 | - 示例: ```js @@ -389,8 +389,8 @@ authenticateDevice(deviceInfo: DeviceInfo, authParam: AuthParam, callback: Async - 参数: | 名称 | 参数类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | - | deviceInfo | [DeviceInfo](#deviceInfo) | 是 | 设备信息。 | - | authParam | [AuthParam](#authParam) | 是 | 认证参数。 | + | deviceInfo | [DeviceInfo](#deviceinfo) | 是 | 设备信息。 | + | authParam | [AuthParam](#authparam) | 是 | 认证参数。 | | callback | AsyncCallback<{ deviceId: string, pinToken ?: number }> | 是 | 认证结果回调。 | - 示例: @@ -426,11 +426,11 @@ unAuthenticateDevice(deviceInfo: DeviceInfo): void - 参数: | 名称 | 参数类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | - | deviceInfo | [DeviceInfo](#deviceInfo) | 是 | 设备信息。 | + | deviceInfo | [DeviceInfo](#deviceinfo) | 是 | 设备信息。 | - 示例: ```js - dmInstance.unAuthenticateDevice(deviceInfo); + dmInstance.unAuthenticateDevice(deviceinfo); ``` @@ -445,7 +445,7 @@ verifyAuthInfo(authInfo: AuthInfo, callback: AsyncCallback<{deviceId: string, le - 参数: | 名称 | 参数类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | - | authInfo | [AuthInfo](#authInfo) | 是 | 认证信息。 | + | authInfo | [AuthInfo](#authinfo) | 是 | 认证信息。 | | authInfo | AsyncCallback<{ deviceId: string, level: number }> | 是 | 验证结果回调。 | - 示例: -- GitLab From 5ee263ba5e3816efc55582a3eaf75c90ead9ff4b Mon Sep 17 00:00:00 2001 From: jiao_yanlin Date: Thu, 28 Jul 2022 16:54:54 +0800 Subject: [PATCH 536/868] Sample code format modification Signed-off-by: jiao_yanlin --- .../reference/apis/js-apis-audio.md | 403 +++++++++--------- 1 file changed, 200 insertions(+), 203 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-audio.md b/zh-cn/application-dev/reference/apis/js-apis-audio.md index 7a1e682f0b..b79b92ed7f 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-audio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-audio.md @@ -83,7 +83,7 @@ var audioStreamInfo = { var audioRendererInfo = { content: audio.ContentType.CONTENT_TYPE_SPEECH, usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION, - rendererFlags: 1 + rendererFlags: 0 } var audioRendererOptions = { @@ -136,7 +136,7 @@ var audioStreamInfo = { var audioRendererInfo = { content: audio.ContentType.CONTENT_TYPE_SPEECH, usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION, - rendererFlags: 1 + rendererFlags: 0 } var audioRendererOptions = { @@ -149,7 +149,7 @@ audio.createAudioRenderer(audioRendererOptions).then((data) => { audioRenderer = data; console.info('AudioFrameworkRenderLog: AudioRenderer Created : Success : Stream Type: SUCCESS'); }).catch((err) => { - console.info('AudioFrameworkRenderLog: AudioRenderer Created : ERROR : '+err.message); + console.info('AudioFrameworkRenderLog: AudioRenderer Created : ERROR : ' + err.message); }); ``` @@ -181,7 +181,7 @@ var audioStreamInfo = { var audioCapturerInfo = { source: audio.SourceType.SOURCE_TYPE_MIC, - capturerFlags: 1 + capturerFlags: 0 } var audioCapturerOptions = { @@ -233,7 +233,7 @@ var audioStreamInfo = { var audioCapturerInfo = { source: audio.SourceType.SOURCE_TYPE_MIC, - capturerFlags: 1 + capturerFlags: 0 } var audioCapturerOptions = { @@ -246,7 +246,7 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => { audioCapturer = data; console.info('AudioCapturer Created : Success : Stream Type: SUCCESS'); }).catch((err) => { - console.info('AudioCapturer Created : ERROR : '+err.message); + console.info('AudioCapturer Created : ERROR : ' + err.message); }); ``` @@ -1912,35 +1912,34 @@ getCurrentAudioRendererInfoArray(callback: AsyncCallback<AudioRendererChangeI **示例:** ``` audioStreamManager.getCurrentAudioRendererInfoArray(async (err, AudioRendererChangeInfoArray) => { - console.info('[GET_RENDERER_STATE_1_CALLBACK] **** Get Callback Called ****'); - if (err) { - console.log('getCurrentAudioRendererInfoArray :ERROR: '+err.message); - resultFlag = false; - } else { - if (AudioRendererChangeInfoArray !=null) { - for (let i=0;i { - console.log('getCurrentAudioRendererInfoArray :ERROR: '+err.message); - resultFlag = false; + console.log('getCurrentAudioRendererInfoArray :ERROR: ' + err.message); + resultFlag = false; }); ``` @@ -2013,23 +2011,23 @@ audioStreamManager.getCurrentAudioCapturerInfoArray(async (err, AudioCapturerCha console.log('getCurrentAudioCapturerInfoArray :ERROR: '+err.message); resultFlag = false; } else { - if (AudioCapturerChangeInfoArray !=null) { - for (let i=0;i { - console.log('getCurrentAudioCapturerInfoArray :ERROR: '+err.message); + console.log('getCurrentAudioCapturerInfoArray :ERROR: ' + err.message); resultFlag = false; }); ``` @@ -2099,25 +2097,25 @@ on(type: "audioRendererChange", callback: Callback<AudioRendererChangeInfoArr **示例:** ``` audioStreamManagerCB.on('audioRendererChange', (AudioRendererChangeInfoArray) => { - for (let i=0; i { - for (let i=0; i { - console.info(Tag+'Get AudioStream Manager : ERROR : '+err.message); + console.info(Tag + 'Get AudioStream Manager : ERROR : ' + err.message); }); audioManager.getStreamManager((err, data) => { if (err) { - console.error(Tag+'Get AudioStream Manager : ERROR : '+err.message); + console.error(Tag + 'Get AudioStream Manager : ERROR : ' + err.message); } else { audioStreamManagerCB = data; - console.info(Tag+'Get AudioStream Manager : Success '); + console.info(Tag + 'Get AudioStream Manager : Success '); } }); audioStreamManagerCB.on('audioRendererChange', (AudioRendererChangeInfoArray) => { - for (let i=0; i { - for (let i=0; i { console.log('Renderer usage:' + rendererInfo.usage); console.log('Renderer flags:' + rendererInfo.rendererFlags); }).catch((err) => { - console.log('AudioFrameworkRenderLog: RendererInfo :ERROR: '+err.message); + console.log('AudioFrameworkRenderLog: RendererInfo :ERROR: ' + err.message); resultFlag = false; }); ``` @@ -2616,7 +2613,7 @@ start(): Promise audioRenderer.start().then(() => { console.log('Renderer started'); }).catch((err) => { - console.log('ERROR: '+err.message); + console.log('ERROR: ' + err.message); }); ``` @@ -2716,7 +2713,7 @@ drain(): Promise\ audioRenderer.drain().then(() => { console.log('Renderer drained successfully'); }).catch((err) => { - console.log('ERROR: '+err.message); + console.log('ERROR: '+ err.message); }); ``` @@ -2766,7 +2763,7 @@ stop(): Promise\ audioRenderer.stop().then(() => { console.log('Renderer stopped successfully'); }).catch((err) => { - console.log('ERROR: '+err.message); + console.log('ERROR: ' + err.message); }); ``` @@ -2816,7 +2813,7 @@ release(): Promise\ audioRenderer.release().then(() => { console.log('Renderer released successfully'); }).catch((err) => { - console.log('ERROR: '+err.message); + console.log('ERROR: '+ err.message); }); ``` @@ -2852,7 +2849,7 @@ var audioStreamInfo = { var audioRendererInfo = { content: audio.ContentType.CONTENT_TYPE_SPEECH, usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION - rendererFlags: 1 + rendererFlags: 0 } var audioRendererOptions = { @@ -2864,14 +2861,14 @@ audio.createAudioRenderer(audioRendererOptions).then((data)=> { audioRenderer = data; console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS'); }).catch((err) => { - console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message); + console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: ' + err.message); }); var bufferSize; audioRenderer.getBufferSize().then((data)=> { - console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data); + console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS ' + data); bufferSize = data; }).catch((err) => { - console.info.('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message); + console.info.('AudioFrameworkRenderLog: getBufferSize: ERROR: ' + err.message); }); console.info('Buffer size:'+bufferSize); var context = featureAbility.getContext(); @@ -2920,7 +2917,7 @@ var audioStreamInfo = { var audioRendererInfo = { content: audio.ContentType.CONTENT_TYPE_SPEECH, usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION, - rendererFlags: 1 + rendererFlags: 0 } var audioRendererOptions = { @@ -2932,14 +2929,14 @@ audio.createAudioRenderer(audioRendererOptions).then((data) => { audioRenderer = data; console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS'); }).catch((err) => { - console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message); + console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: ' + err.message); }); var bufferSize; audioRenderer.getBufferSize().then((data) => { - console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data); + console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS ' + data); bufferSize = data; }).catch((err) => { - console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message); + console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: ' + err.message); }); console.info('BufferSize: ' + bufferSize); var context = featureAbility.getContext(); @@ -2955,7 +2952,7 @@ audioRenderer.write(buf).then((writtenbytes) => { console.log('Actual written bytes: ' + writtenbytes); } }).catch((err) => { - console.log('ERROR: '+err.message); + console.log('ERROR: '+ err.message); }); ``` @@ -3059,7 +3056,7 @@ var audioStreamInfo = { var audioRendererInfo = { content: audio.ContentType.CONTENT_TYPE_SPEECH, usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION, - rendererFlags: 1 + rendererFlags: 0 } var audioRendererOptions = { @@ -3071,14 +3068,14 @@ audio.createAudioRenderer(audioRendererOptions).then((data) => { audioRenderer = data; console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS'); }).catch((err) => { - console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message); + console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: ' + err.message); }); var bufferSize; audioRenderer.getBufferSize().then((data) => { - console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data); - bufferSize=data; + console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS ' + data); + bufferSize = data; }).catch((err) => { - console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message); + console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: ' + err.message); }); ``` @@ -3265,7 +3262,7 @@ var audioRendererOptions = { } let audioRenderer = await audio.createAudioRenderer(audioRendererOptions); let mode = 1; -audioRenderer.setInterruptMode(mode,(err,data)=>{ +audioRenderer.setInterruptMode(mode, (err, data)=>{ if(err){ console.log("setInterruptMode Fail:" + err.message); } @@ -3312,12 +3309,12 @@ audioRenderer.on('interrupt', async(interruptEvent) => { console.info('AudioInterruptMusic: renderInstant started :SUCCESS '); started = true; }).catch((err) => { - console.info('AudioInterruptMusic: renderInstant start :ERROR : '+err.message); + console.info('AudioInterruptMusic: renderInstant start :ERROR : ' + err.message); started = false; }); if (started) { isPlay = true; - console.info('AudioInterruptMusic Renderer started : isPlay : '+isPlay); + console.info('AudioInterruptMusic Renderer started : isPlay : ' + isPlay); } else { console.error('AudioInterruptMusic Renderer start failed'); } @@ -3679,7 +3676,7 @@ var audioStreamInfo = { var audioCapturerInfo = { source: audio.SourceType.SOURCE_TYPE_MIC, - capturerFlags: 1 + capturerFlags: 0 } var audioCapturer; @@ -3688,19 +3685,19 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => { audioCapturer = data; console.info('AudioFrameworkRecLog: AudioCapturer Created: SUCCESS'); }).catch((err) => { - console.info('AudioFrameworkRecLog: AudioCapturer Created: ERROR: '+err.message); + console.info('AudioFrameworkRecLog: AudioCapturer Created: ERROR: ' + err.message); }); audioCapturer.start().then(() => { console.info('AudioFrameworkRecLog: ---------START---------'); console.info('AudioFrameworkRecLog: Capturer started: SUCCESS'); - console.info('AudioFrameworkRecLog: AudioCapturer: STATE: '+audioCapturer.state); + console.info('AudioFrameworkRecLog: AudioCapturer: STATE: ' + audioCapturer.state); console.info('AudioFrameworkRecLog: Capturer started: SUCCESS '); if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) { console.info('AudioFrameworkRecLog: AudioCapturer is in Running State'); } }).catch((err) => { - console.info('AudioFrameworkRecLog: Capturer start :ERROR : '+err.message); - stateFlag=false; + console.info('AudioFrameworkRecLog: Capturer start :ERROR : ' + err.message); + stateFlag = false; }); ``` @@ -3755,7 +3752,7 @@ audioCapturer.stop().then(() => { console.info('AudioFrameworkRecLog: State is Stopped': '); } }).catch((err) => { - console.info('AudioFrameworkRecLog: Capturer stop: ERROR: '+err.message); + console.info('AudioFrameworkRecLog: Capturer stop: ERROR: '+ err.message); }); ``` @@ -3807,10 +3804,10 @@ var stateFlag; audioCapturer.release().then(() => { console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------'); console.info('AudioFrameworkRecLog: Capturer release : SUCCESS'); - console.info('AudioFrameworkRecLog: AudioCapturer : STATE : '+audioCapturer.state); - console.info('AudioFrameworkRecLog: stateFlag : '+stateFlag); + console.info('AudioFrameworkRecLog: AudioCapturer : STATE : ' + audioCapturer.state); + console.info('AudioFrameworkRecLog: stateFlag : ' + stateFlag); }).catch((err) => { - console.info('AudioFrameworkRecLog: Capturer stop: ERROR: '+err.message); + console.info('AudioFrameworkRecLog: Capturer stop: ERROR: ' + err.message); }); ``` @@ -3836,10 +3833,10 @@ read(size: number, isBlockingRead: boolean, callback: AsyncCallback { - console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS '+ data); + console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS ' + data); bufferSize = data; }).catch((err) => { - console.info('AudioFrameworkRecLog: getBufferSize: EROOR: '+ err.message); + console.info('AudioFrameworkRecLog: getBufferSize: EROOR: ' + err.message); }); audioCapturer.read(bufferSize, true, async(err, buffer) => { if (!err) { @@ -3875,16 +3872,16 @@ read(size: number, isBlockingRead: boolean): Promise ``` var bufferSize; audioCapturer.getBufferSize().then((data) => { - console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS '+data); + console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS ' + data); bufferSize = data; }).catch((err) => { - console.info('AudioFrameworkRecLog: getBufferSize: ERROR '+err.message); + console.info('AudioFrameworkRecLog: getBufferSize: ERROR ' + err.message); }); console.info('Buffer size: ' + bufferSize); audioCapturer.read(bufferSize, true).then((buffer) => { console.info('buffer read successfully'); }).catch((err) => { - console.info('ERROR : '+err.message); + console.info('ERROR : ' + err.message); }); ``` @@ -3932,7 +3929,7 @@ getAudioTime(): Promise audioCapturer.getAudioTime().then((audioTime) => { console.info('AudioFrameworkRecLog: AudioCapturer getAudioTime : Success' + audioTime ); }).catch((err) => { - console.info('AudioFrameworkRecLog: AudioCapturer Created : ERROR : '+err.message); + console.info('AudioFrameworkRecLog: AudioCapturer Created : ERROR : ' + err.message); }); ``` @@ -3960,7 +3957,7 @@ audioCapturer.getBufferSize((err, bufferSize) => { audioCapturer.read(bufferSize, true).then((buffer) => { console.info('Buffer read is ' + buffer ); }).catch((err) => { - console.info('AudioFrameworkRecLog: AudioCapturer Created : ERROR : '+err.message); + console.info('AudioFrameworkRecLog: AudioCapturer Created : ERROR : ' + err.message); }); } }); @@ -3986,10 +3983,10 @@ getBufferSize(): Promise ``` var bufferSize; audioCapturer.getBufferSize().then((data) => { - console.info('AudioFrameworkRecLog: getBufferSize :SUCCESS '+ data); + console.info('AudioFrameworkRecLog: getBufferSize :SUCCESS ' + data); bufferSize = data; }).catch((err) => { - console.info('AudioFrameworkRecLog: getBufferSize :ERROR : '+ err.message); + console.info('AudioFrameworkRecLog: getBufferSize :ERROR : ' + err.message); }); ``` -- GitLab From de8142b63a9e703280008adaac329d32ab128c4b Mon Sep 17 00:00:00 2001 From: weishaoxiong Date: Thu, 28 Jul 2022 17:04:44 +0800 Subject: [PATCH 537/868] =?UTF-8?q?Signed-off-by:=20weishaoxiong=20=20fix:=20wallpaper=E9=83=A8=E4=BB=B6?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E7=9A=84=E5=AE=8C=E6=95=B4=E6=80=A7=E5=92=8C?= =?UTF-8?q?=E4=B8=80=E8=87=B4=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/apis/js-apis-wallpaper.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-wallpaper.md b/zh-cn/application-dev/reference/apis/js-apis-wallpaper.md index bc165fd64f..06786292b2 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-wallpaper.md +++ b/zh-cn/application-dev/reference/apis/js-apis-wallpaper.md @@ -389,7 +389,7 @@ reset(wallpaperType: WallpaperType): Promise<void> 移除指定类型的壁纸,恢复为默认显示的壁纸。 -**需要权限:**ohos.permission.SET_WALLPAPER +**需要权限**:ohos.permission.SET_WALLPAPER **系统能力**: SystemCapability.MiscServices.Wallpaper @@ -422,7 +422,7 @@ setWallpaper(source: string | image.PixelMap, wallpaperType: WallpaperType, call 将指定资源设置为指定类型的壁纸。 -**需要权限:** ohos.permission.SET_WALLPAPER +**需要权限**:ohos.permission.SET_WALLPAPER **系统能力**: SystemCapability.MiscServices.Wallpaper @@ -530,7 +530,7 @@ getFile(wallpaperType: WallpaperType, callback: AsyncCallback<number>): vo 获取指定类型的壁纸文件。 -**需要权限**:ohos.permission.GET_WALLPAPER、ohos.permission.READ_USER_STORAGE +**需要权限**:ohos.permission.GET_WALLPAPER 和 ohos.permission.READ_USER_STORAGE **系统能力**: SystemCapability.MiscServices.Wallpaper @@ -559,7 +559,7 @@ getFile(wallpaperType: WallpaperType): Promise<number> 获取指定类型的壁纸文件。 -**需要权限:** ohos.permission.GET_WALLPAPER、ohos.permission.READ_USER_STORAGE +**需要权限**:ohos.permission.GET_WALLPAPER 和 ohos.permission.READ_USER_STORAGE **系统能力**: SystemCapability.MiscServices.Wallpaper @@ -592,7 +592,7 @@ getPixelMap(wallpaperType: WallpaperType, callback: AsyncCallback<image.Pixel 获取壁纸图片的像素图。 -**需要权限**:ohos.permission.GET_WALLPAPER、ohos.permission.READ_USER_STORAGE +**需要权限**:ohos.permission.GET_WALLPAPER 和 ohos.permission.READ_USER_STORAGE **系统能力**: SystemCapability.MiscServices.Wallpaper @@ -621,7 +621,7 @@ getPixelMap(wallpaperType: WallpaperType): Promise<image.PixelMap> 获取壁纸图片的像素图。 -**需要权限**:ohos.permission.GET_WALLPAPER、ohos.permission.READ_USER_STORAGE +**需要权限**:ohos.permission.GET_WALLPAPER 和 ohos.permission.READ_USER_STORAGE **系统能力**: SystemCapability.MiscServices.Wallpaper -- GitLab From 29c5d437fb8c577ec0ec1adfe64234e74e1194cb Mon Sep 17 00:00:00 2001 From: shawn_he Date: Thu, 28 Jul 2022 17:10:02 +0800 Subject: [PATCH 538/868] update docs Signed-off-by: shawn_he --- en/application-dev/internationalization/intl-guidelines.md | 2 +- en/application-dev/reference/apis/js-apis-usb.md | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/en/application-dev/internationalization/intl-guidelines.md b/en/application-dev/internationalization/intl-guidelines.md index 09bc3b7333..34d2d1b19a 100644 --- a/en/application-dev/internationalization/intl-guidelines.md +++ b/en/application-dev/internationalization/intl-guidelines.md @@ -292,7 +292,7 @@ Use [RelativeTimeFormat](../reference/apis/js-apis-intl.md) APIs to format the r Alternatively, use your own locale and formatting parameters to create a **RelativeTimeFormat** object. Formatting parameters are optional. For a full list of formatting parameters, see [ RelativeTimeFormatInputOptions](../reference/apis/js-apis-intl.md). ``` - var relativeTimeFormat = new intl.RelativeTimeFormat("zh-CN", {numeric: "always", style: "long"}; + var relativeTimeFormat = new intl.RelativeTimeFormat("zh-CN", {numeric: "always", style: "long"}); ``` 2. Format the relative time.
diff --git a/en/application-dev/reference/apis/js-apis-usb.md b/en/application-dev/reference/apis/js-apis-usb.md index 83ed07f3f7..71b0490ea8 100644 --- a/en/application-dev/reference/apis/js-apis-usb.md +++ b/en/application-dev/reference/apis/js-apis-usb.md @@ -1,6 +1,9 @@ # USB -> **NOTE**
+This module provides USB device management functions, including USB device list query, bulk data transfer, control transfer, and permission control. + +> **NOTE** +> > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import -- GitLab From e09e1db0e22cf6625b915f819de8c6b57dc2a625 Mon Sep 17 00:00:00 2001 From: wangyb0625 Date: Thu, 28 Jul 2022 17:11:13 +0800 Subject: [PATCH 539/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangyb0625 --- zh-cn/application-dev/reference/apis/js-apis-device-manager.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-device-manager.md b/zh-cn/application-dev/reference/apis/js-apis-device-manager.md index fe4a208c3c..a2b19045d6 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-device-manager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-device-manager.md @@ -545,7 +545,7 @@ off(type: 'deviceFound', callback?: Callback<{ subscribeId: number, device: D | 名称 | 参数类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 取消注册设备发现回调。 | - | callback | Callback<{ subscribeId: number, device: DeviceInfo }> | 是 | 指示要取消注册的设备发现回调,返回设备状态和设备信息。 | + | callback | Callback<{ subscribeId: number, device: [DeviceInfo](#deviceinfo) }> | 是 | 指示要取消注册的设备发现回调,返回设备状态和设备信息。 | - 示例: ```js -- GitLab From b5102f6b774e5c547dbcea266765fe581248dcb9 Mon Sep 17 00:00:00 2001 From: wusongqing Date: Thu, 28 Jul 2022 17:20:00 +0800 Subject: [PATCH 540/868] add hdi-design-specifications EN against 5261 Signed-off-by: wusongqing --- en/design/figures/HDI-Review-Process.png | Bin 0 -> 49823 bytes en/design/hdi-design-specifications.md | 486 +++++++++++++++++++++++ 2 files changed, 486 insertions(+) create mode 100644 en/design/figures/HDI-Review-Process.png create mode 100644 en/design/hdi-design-specifications.md diff --git a/en/design/figures/HDI-Review-Process.png b/en/design/figures/HDI-Review-Process.png new file mode 100644 index 0000000000000000000000000000000000000000..7ba581237d86b0de4b6f6ec68bc066b3714adbbd GIT binary patch literal 49823 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%0D0g?zBf$&)(~kTy&pjp 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 if the operation is successful. + * @return Returns a non-zero value if the operation fails. + */ +GetExecutorInfo([out] struct ExecutorInfo executorInfo); +``` + +### Programming Languages + +To ensure data interworking between HDIs implemented in different programming languages, follow the restrictions below when using data types in the HDI description. + +#### Constraints on using basic data types + +| IDL Data Type | C++ Data Type | C Data Type | Data Length (Bytes)| +| -------------- | ----------- | --------------- | ----------- | +| void | void | void | NA | +| boolean | bool | bool | 1 | +| byte | int8_t | int8_t | 1 | +| short | int16_t | int16_t | 2 | +| int | int32_t | int32_t | 4 | +| long | int64_t | int64_t | 8 | +| float | float | float | 4 | +| double | double | double | 8 | +| String | std::string | char*, int size | NA | +| unsigned char | uint8_t | uint8_t | 1 | +| unsigned short | uint16_t | uint16_t | 2 | +| unsigned int | uint32_t | uint32_t | 4 | +| unsigned long | uint64_t | uint64_t | 8 | + +#### Constraints on Using Container Types + +| IDL Container Data Type| C++ Data Type | C Data Type | +| ----------- | ------------ | ----------- | +| List | std::list | T*,int size | + +#### Constraints on Using Array Types + +| IDL Array Data Type| C++ Data Type | C Data Type | +| --------- | -------------- | ----------- | +| T[] | std::vector | T*,int size | + +#### Constraints on Using Custom Types + +| IDL Custom Data Type| C++ Data Type| C Data Type | +| ------- | ------- | ------ | +| struct | struct | struct | +| enum | enum | enum | + + +## Supplementary Notes +The beta period of this document is one month from the release date. During this period, your comments are well welcome. -- GitLab From 7f8d2c7c416bc90eb1b60198e2a71f1c089331df Mon Sep 17 00:00:00 2001 From: wusongqing Date: Thu, 28 Jul 2022 17:33:16 +0800 Subject: [PATCH 541/868] update docs against 6465 Signed-off-by: wusongqing --- .../apis/js-apis-bundle-ApplicationInfo.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-bundle-ApplicationInfo.md b/en/application-dev/reference/apis/js-apis-bundle-ApplicationInfo.md index 185338803c..94182ce291 100644 --- a/en/application-dev/reference/apis/js-apis-bundle-ApplicationInfo.md +++ b/en/application-dev/reference/apis/js-apis-bundle-ApplicationInfo.md @@ -1,17 +1,15 @@ # ApplicationInfo +The **ApplicationInfo** module provides application information. Unless otherwise specified, all attributes are obtained through **GET_BUNDLE_DEFAULT**. + > **NOTE** > > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. -Provides the application information. - ## ApplicationInfo **System capability**: SystemCapability.BundleManager.BundleFramework - - | Name | Type | Readable| Writable| Description | | -------------------------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ | | name | string | Yes | No | Application name. | @@ -26,16 +24,19 @@ Provides the application information. | process | string | Yes | No | Process in which the application runs. If this parameter is not set, the bundle name is used. | | supportedModes | number | Yes | No | Running modes supported by the application. | | moduleSourceDirs | Array\ | Yes | No | Relative paths for storing application resources. | -| permissions | Array\ | Yes | No | Permissions required for accessing the application. | +| permissions | Array\ | Yes | No | Permissions required for accessing the application.
The value is obtained by passing **GET_APPLICATION_INFO_WITH_PERMISSION**.| | moduleInfos | Array\<[ModuleInfo](js-apis-bundle-ModuleInfo.md)> | Yes | No | Application module information. | | entryDir | string | Yes | No | Path for storing application files. | | codePath8+ | string | Yes | No | Installation directory of the application. | -| metaData8+ | Map\> | Yes | No | Custom metadata of the application. | -| metadata9+ | Map\> | Yes | No | Metadata of the application. | +| metaData8+ | Map\> | Yes | No | Custom metadata of the application.
The value is obtained by passing **GET_APPLICATION_INFO_WITH_METADATA**.| +| metadata9+ | Map\> | Yes | No | Metadata of the application.
The value is obtained by passing **GET_APPLICATION_INFO_WITH_METADATA**.| | removable8+ | boolean | Yes | No | Whether the application is removable. | | accessTokenId8+ | number | Yes | No | Access token ID of the application. | | uid8+ | number | Yes | No | UID of the application. | | entityType8+ | string | Yes | No | Entity type of the application. | -| fingerprint9+ | string | Yes | No | Signing certificate fingerprint of the application, that is, the SHA-256 checksum of the signing certificate that you request for the application.| +| fingerprint9+ | string | Yes | No | Signing certificate fingerprint of the application, that is, the SHA-256 checksum of the signing certificate that you request for the application.
The value is obtained by passing **GET_APPLICATION_INFO_WITH_CERTIFICATE_FINGERPRINT**.| +| iconResource9+ | [Resource](js-apis-resource-manager.md#resource9) | Yes| No| Icon resource of the application.| +| labelResource9+ | [Resource](js-apis-resource-manager.md#resource9) | Yes| No| Label resource of the application.| +| descriptionResource9+ | [Resource](js-apis-resource-manager.md#resource9) | Yes| No| Description resource of the application.| | appDistributionType9+ | string | Yes | No | Distribution type of the application signing certificate. The options are **app_gallery**, **enterprise**, **os_integration**, and **crowdtesting**. | | appProvisionType9+ | string | Yes | No | Type of the application signing certificate file. The options are **debug** and **release**.| -- GitLab From 094c8381b524d856d09a79cdbe9627e7ec16c778 Mon Sep 17 00:00:00 2001 From: wusongqing Date: Thu, 28 Jul 2022 17:35:03 +0800 Subject: [PATCH 542/868] update docs against 6587 Signed-off-by: wusongqing --- .../reference/apis/js-apis-util.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-util.md b/en/application-dev/reference/apis/js-apis-util.md index a4ae0d235f..afa1c20bcd 100755 --- a/en/application-dev/reference/apis/js-apis-util.md +++ b/en/application-dev/reference/apis/js-apis-util.md @@ -61,7 +61,7 @@ Obtains detailed information about a system error code. **Example** ```js - var errnum = 10; // 10 is the system error code. + var errnum = 10; // 10 is a system error code. var result = util.getErrorString(errnum); console.log("result = " + result); ``` @@ -104,14 +104,16 @@ Calls back an asynchronous function. In the callback, the first parameter indica promiseWrapper(original: (err: Object, value: Object) => void): Object -> **Introduce**
-> Deprecated starting from API version 9, it is recommended to use [util.promisify9 +] (\utilpromisify9) instead. +> **NOTE** +> +> This API is deprecated since API version 9. You are advised to use **[util.promisify9+](#utilpromisify9)** instead. Processes an asynchronous function and returns a promise version. **System capability**: SystemCapability.Utils.Lang **Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | original | Function | Yes| Asynchronous function.| @@ -136,7 +138,7 @@ Processes an asynchronous function and returns a promise version. promisify(original: (err: Object, value: Object) => void): Function -Processes an asynchronous function and returns a promise function. +Processes an asynchronous function and returns a promise. **System capability**: SystemCapability.Utils.Lang @@ -148,7 +150,7 @@ Processes an asynchronous function and returns a promise function. **Return value** | Type| Description| | -------- | -------- | -| Function | Function in the error-first style (that is, **(err, value) =>...** is called as the last parameter) and the promise version.| +| Function | Function in the error-first style (that is, **(err, value) =>...** is called as the last parameter) and the promise.| **Example** ```js @@ -165,7 +167,6 @@ Processes an asynchronous function and returns a promise function. }) ``` - ## TextDecoder ### Attributes @@ -217,7 +218,7 @@ Decodes the input content. **Parameters** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| input | Unit8Array | Yes| Uint8Array to decode.| +| input | Uint8Array | Yes| Uint8Array to decode.| | options | Object | No| Options related to decoding.| **Table 2** options @@ -982,7 +983,6 @@ Performs subsequent operations after a value is removed. **Example** ```js var arr = []; - var arr = []; class ChildLruBuffer extends util.LruBuffer { constructor() -- GitLab From 55f3a13f5664c5b3580af62cd4dbbd754681a7ec Mon Sep 17 00:00:00 2001 From: wusongqing Date: Thu, 28 Jul 2022 17:38:34 +0800 Subject: [PATCH 543/868] update docs against 6610 Signed-off-by: wusongqing --- en/application-dev/ability/stage-ability.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/en/application-dev/ability/stage-ability.md b/en/application-dev/ability/stage-ability.md index 5b61bcec4b..e1d67a295b 100644 --- a/en/application-dev/ability/stage-ability.md +++ b/en/application-dev/ability/stage-ability.md @@ -78,29 +78,29 @@ To create Page abilities for an application in the stage model, you must impleme onCreate(want, launchParam) { console.log("MainAbility onCreate") } - + onDestroy() { console.log("MainAbility onDestroy") } - + onWindowStageCreate(windowStage) { console.log("MainAbility onWindowStageCreate") - + windowStage.loadContent("pages/index").then((data) => { console.log("MainAbility load content succeed with data: " + JSON.stringify(data)) }).catch((error) => { console.error("MainAbility load content failed with error: " + JSON.stringify(error)) }) } - + onWindowStageDestroy() { console.log("MainAbility onWindowStageDestroy") } - + onForeground() { console.log("MainAbility onForeground") } - + onBackground() { console.log("MainAbility onBackground") } @@ -300,7 +300,7 @@ export default class MainAbility extends Ability { Obtain the `want` parameter that contains the page information from the custom component and process the route based on the URI. ```ts -import router from '@system.router' +import router from '@ohos.router' @Entry @Component -- GitLab From 1a71afe393b8c876dce02cd915b6b22027c1b7b3 Mon Sep 17 00:00:00 2001 From: wusongqing Date: Thu, 28 Jul 2022 17:40:50 +0800 Subject: [PATCH 544/868] update docs against 6625 Signed-off-by: wusongqing --- .../reference/apis/js-apis-medialibrary.md | 248 ++++++++++++------ 1 file changed, 161 insertions(+), 87 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-medialibrary.md b/en/application-dev/reference/apis/js-apis-medialibrary.md index 3d2f6f3e97..91059df152 100644 --- a/en/application-dev/reference/apis/js-apis-medialibrary.md +++ b/en/application-dev/reference/apis/js-apis-medialibrary.md @@ -49,7 +49,9 @@ getMediaLibrary(): MediaLibrary Obtains a **MediaLibrary** instance, which is used to access and modify personal media data such as audios, videos, images, and documents. -> **Note**: This API is no longer maintained since API version 8. You are advised to use [mediaLibrary.getMediaLibrary8+](#medialibrarygetmedialibrary8) instead. +> **NOTE** +> +> This API is no longer maintained since API version 8. You are advised to use [mediaLibrary.getMediaLibrary8+](#medialibrarygetmedialibrary8) instead. **System capability**: SystemCapability.Multimedia.MediaLibrary.Core @@ -99,7 +101,9 @@ media.getFileAssets(imagesfetchOp, (error, fetchFileResult) => { console.info('mediaLibraryTest : ASSET_CALLBACK fetchFileResult success'); fetchFileResult.getAllObject((err, fileAssetList) => { if (fileAssetList != undefined) { - fileAssetList.forEach(getAllObjectInfo); + fileAssetList.forEach(function(getAllObjectInfo){ + console.info("getAllObjectInfo.displayName :" + getAllObjectInfo.displayName); + }); } }); } @@ -137,7 +141,7 @@ let imagesfetchOp = { selectionArgs: [imageType.toString()], }; media.getFileAssets(imagesfetchOp).then(function(fetchFileResult){ - console.info("getFileAssets successfully:"+ JSON.stringify(dir)); + console.info("getFileAssets successfully: image number is "+ fetchFileResult.getCount()); }).catch(function(err){ console.info("getFileAssets failed with error:"+ err); }); @@ -161,7 +165,7 @@ Subscribes to the media library changes. This API uses an asynchronous callback **Example** ``` -mediaLibrary.on('imageChange', () => { +media.on('imageChange', () => { // image file had changed, do something }) ``` @@ -449,7 +453,9 @@ storeMediaAsset(option: MediaAssetOption, callback: AsyncCallback<string>) Stores a media asset. This API uses an asynchronous callback to return the URI that stores the media asset. -> **NOTE**
This API is deprecated since API version 9. +> **NOTE** +> +> This API is deprecated since API version 9. **System capability**: SystemCapability.Multimedia.MediaLibrary.Core @@ -485,7 +491,9 @@ storeMediaAsset(option: MediaAssetOption): Promise<string> Stores a media asset. This API uses a promise to return the URI that stores the media asset. -> **NOTE**
This API is deprecated since API version 9. +> **NOTE** +> +> This API is deprecated since API version 9. **System capability**: SystemCapability.Multimedia.MediaLibrary.Core @@ -524,7 +532,9 @@ startImagePreview(images: Array<string>, index: number, callback: AsyncCal Starts image preview, with the first image to preview specified. This API can be used to preview local images whose URIs start with **dataability://** or online images whose URIs start with **https://**. It uses an asynchronous callback to return the execution result. -> **NOTE**
This API is deprecated since API version 9. +> **NOTE** +> +> This API is deprecated since API version 9. You are advised to use the **\<[Image](../arkui-ts/ts-basic-components-image.md)>** component instead. The **\** component can be used to render and display local and online images. **System capability**: SystemCapability.Multimedia.MediaLibrary.Core @@ -566,7 +576,9 @@ startImagePreview(images: Array<string>, callback: AsyncCallback<void&g Starts image preview. This API can be used to preview local images whose URIs start with **dataability://** or online images whose URIs start with **https://**. It uses an asynchronous callback to return the execution result. -> **NOTE**
This API is deprecated since API version 9. +> **NOTE** +> +> This API is deprecated since API version 9. You are advised to use the **\<[Image](../arkui-ts/ts-basic-components-image.md)>** component instead. The **** component can be used to render and display local images and network images. **System capability**: SystemCapability.Multimedia.MediaLibrary.Core @@ -606,7 +618,9 @@ startImagePreview(images: Array<string>, index?: number): Promise<void& Starts image preview, with the first image to preview specified. This API can be used to preview local images whose URIs start with dataability:// or online images whose URIs start with https://. It uses a promise to return the execution result. -> **NOTE**
This API is deprecated since API version 9. +> **NOTE** +> +> This API is deprecated since API version 9. You are advised to use the **\<[Image](../arkui-ts/ts-basic-components-image.md)>** component instead. The **** component can be used to render and display local images and network images. **System capability**: SystemCapability.Multimedia.MediaLibrary.Core @@ -651,7 +665,9 @@ startMediaSelect(option: MediaSelectOption, callback: AsyncCallback<Array< Starts media selection. This API uses an asynchronous callback to return the list of URIs that store the selected media assets. -> **NOTE**
This API is deprecated since API version 9. +> **NOTE** +> +> This API is deprecated since API version 9. You are advised to use the system app Gallery instead. Gallery is a built-in visual resource access application that provides features such as image and video management and browsing. For details about how to use Gallery, visit [OpenHarmony/applications_photos](https://gitee.com/openharmony/applications_photos). **System capability**: SystemCapability.Multimedia.MediaLibrary.Core @@ -666,7 +682,7 @@ Starts media selection. This API uses an asynchronous callback to return the lis ``` let option = { - type : "image", + type : "media", count : 2 }; mediaLibrary.getMediaLibrary().startMediaSelect(option, (err, value) => { @@ -686,7 +702,9 @@ startMediaSelect(option: MediaSelectOption): Promise<Array<string>> Starts media selection. This API uses a promise to return the list of URIs that store the selected media assets. -> **NOTE**
This API is deprecated since API version 9. +> **NOTE** +> +> This API is deprecated since API version 9. You are advised to use the system app Gallery instead. Gallery is a built-in visual resource access application that provides features such as image and video management and browsing. For details about how to use Gallery, visit [OpenHarmony/applications_photos](https://gitee.com/openharmony/applications_photos). **System capability**: SystemCapability.Multimedia.MediaLibrary.Core @@ -706,7 +724,7 @@ Starts media selection. This API uses a promise to return the list of URIs that ``` let option = { - type : "image", + type : "media", count : 2 }; mediaLibrary.getMediaLibrary().startMediaSelect(option).then((value) => { @@ -745,7 +763,7 @@ Provides APIs for encapsulating file asset attributes. | width | number | Yes | No | Image width, in pixels. | | height | number | Yes | No | Image height, in pixels. | | orientation | number | Yes | Yes | Image display direction (clockwise rotation angle, for example, 0, 90, or 180, in degrees).| -| duration8+ | number | Yes | No | Duration, in seconds. | +| duration8+ | number | Yes | No | Duration, in ms. | | albumId | number | Yes | No | ID of the album to which the file belongs. | | albumUri8+ | string | Yes | No | URI of the album to which the file belongs. | | albumName | string | Yes | No | Name of the album to which the file belongs. | @@ -771,6 +789,7 @@ Checks whether this file asset is a directory. This API uses an asynchronous cal ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -806,6 +825,7 @@ Checks whether this file asset is a directory. This API uses a promise to return ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -843,6 +863,7 @@ Commits the modification in this file asset to the database. This API uses an as ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -879,6 +900,7 @@ Commits the modification in this file asset to the database. This API uses a pro ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -899,9 +921,11 @@ open(mode: string, callback: AsyncCallback<number>): void Opens this file asset. This API uses an asynchronous callback to return the result. -Note: Currently, the write operations are mutually exclusive. After the write operation is complete, you must call **close** to release the resource. +> **NOTE** +> +> Currently, the write operations are mutually exclusive. After the write operation is complete, you must call **close** to release the resource. -**Required permissions**: ohos.permission.READ_MEDIA (when **mode** is set to **r**) and ohos.permission.WRITE_MEDIA (when **mode** is set to **w**) +**Required permissions**: ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA **System capability**: SystemCapability.Multimedia.MediaLibrary.Core @@ -919,7 +943,7 @@ async function example() { let mediaType = mediaLibrary.MediaType.IMAGE; let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE; const path = await media.getPublicDirectory(DIR_IMAGE); - asset = await media.createAsset(mediaType, "image00003.jpg", path); + const asset = await media.createAsset(mediaType, "image00003.jpg", path); asset.open('rw', (openError, fd) => { if(fd > 0){ asset.close(fd); @@ -936,9 +960,11 @@ open(mode: string): Promise<number> Opens this file asset. This API uses a promise to return the result. -Note: Currently, the write operations are mutually exclusive. After the write operation is complete, you must call **close** to release the resource. +> **NOTE** +> +> Currently, the write operations are mutually exclusive. After the write operation is complete, you must call **close** to release the resource. -**Required permissions**: ohos.permission.READ_MEDIA (when **mode** is set to **r**) and ohos.permission.WRITE_MEDIA (when **mode** is set to **w**) +**Required permissions**: ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA **System capability**: SystemCapability.Multimedia.MediaLibrary.Core @@ -946,7 +972,7 @@ Note: Currently, the write operations are mutually exclusive. After the write op | Name | Type | Mandatory | Description | | ---- | ------ | ---- | ----------------------------------- | -| mode | string | Yes | Mode of opening the file, for example, **r** (read-only), **w** (write-only), and **rw** (read-write).| +| mode | string | Yes | Mode of opening the file, for example, **'r'** (read-only), **'w'** (write-only), and **'rw'** (read-write).| **Return value** @@ -961,7 +987,7 @@ async function example() { let mediaType = mediaLibrary.MediaType.IMAGE; let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE; const path = await media.getPublicDirectory(DIR_IMAGE); - asset = await media.createAsset(mediaType, "image00003.jpg", path); + const asset = await media.createAsset(mediaType, "image00003.jpg", path); asset.open('rw') .then((fd) => { console.info('File fd!' + fd); @@ -978,7 +1004,7 @@ close(fd: number, callback: AsyncCallback<void>): void Closes this file asset. This API uses an asynchronous callback to return the result. -**Required permissions**: ohos.permission.READ_MEDIA (when **mode** is set to **r**) and ohos.permission.WRITE_MEDIA (when **mode** is set to **w**) +**Required permissions**: ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA **System capability**: SystemCapability.Multimedia.MediaLibrary.Core @@ -993,6 +1019,7 @@ Closes this file asset. This API uses an asynchronous callback to return the res ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1002,13 +1029,19 @@ async function example() { }; const fetchFileResult = await media.getFileAssets(getImageOp); const asset = await fetchFileResult.getFirstObject(); - asset.close(fd, (closeErr) => { - if (closeErr != undefined) { - console.info('mediaLibraryTest : close : FAIL ' + closeErr.message); - console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL'); - } else { - console.info("=======asset.close success====>"); - } + asset.open('rw').then((fd) => { + console.info('File fd!' + fd); + asset.close(fd, (closeErr) => { + if (closeErr != undefined) { + console.info('mediaLibraryTest : close : FAIL ' + closeErr.message); + console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL'); + } else { + console.info("=======asset.close success====>"); + } + }); + }) + .catch((err) => { + console.info('File err!' + err); }); } ``` @@ -1019,7 +1052,7 @@ close(fd: number): Promise<void> Closes this file asset. This API uses a promise to return the result. -**Required permissions**: ohos.permission.READ_MEDIA (when **mode** is set to **'r'**) and ohos.permission.WRITE_MEDIA (when **mode** is set to **'w'**) +**Required permissions**: ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA **System capability**: SystemCapability.Multimedia.MediaLibrary.Core @@ -1039,6 +1072,7 @@ Closes this file asset. This API uses a promise to return the result. ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1048,14 +1082,20 @@ async function example() { }; const fetchFileResult = await media.getFileAssets(getImageOp); const asset = await fetchFileResult.getFirstObject(); - asset.close(fd).then((closeErr) => { - if (closeErr != undefined) { - console.info('mediaLibraryTest : close : FAIL ' + closeErr.message); - console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL'); + asset.open('rw').then((fd) => { + console.info('File fd!' + fd); + asset.close(fd).then((closeErr) => { + if (closeErr != undefined) { + console.info('mediaLibraryTest : close : FAIL ' + closeErr.message); + console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL'); - } else { - console.info("=======asset.close success====>"); - } + } else { + console.info("=======asset.close success====>"); + } + }); + }) + .catch((err) => { + console.info('File err!' + err); }); } ``` @@ -1080,6 +1120,7 @@ Obtains the thumbnail of this file asset. This API uses an asynchronous callback ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1116,6 +1157,7 @@ Obtains the thumbnail of this file asset, with the thumbnail size passed. This A ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1123,6 +1165,7 @@ async function example() { order: fileKeyObj.DATE_ADDED + " DESC", extendArgs: "", }; + let size = { width: 720, height: 720 }; const fetchFileResult = await media.getFileAssets(getImageOp); const asset = await fetchFileResult.getFirstObject(); asset.getThumbnail(size, (err, pixelmap) => { @@ -1157,6 +1200,7 @@ Obtains the thumbnail of this file asset, with the thumbnail size passed. This A ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1164,6 +1208,7 @@ async function example() { order: fileKeyObj.DATE_ADDED + " DESC", extendArgs: "", }; + let size = { width: 720, height: 720 }; const fetchFileResult = await media.getFileAssets(getImageOp); const asset = await fetchFileResult.getFirstObject(); asset.getThumbnail(size) @@ -1197,6 +1242,7 @@ Favorites or unfavorites this file asset. This API uses an asynchronous callback ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1238,6 +1284,7 @@ Favorites or unfavorites this file asset. This API uses a promise to return the ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1275,6 +1322,7 @@ Checks whether this file asset is favorited. This API uses an asynchronous callb ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1314,6 +1362,7 @@ Checks whether this file asset is favorited. This API uses a promise to return t ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1354,6 +1403,7 @@ Files in the trash are not actually deleted. You can set **isTrash** to **false* ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1398,6 +1448,7 @@ Files in the trash are not actually deleted. You can set **isTrash** to **false* ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1435,6 +1486,7 @@ Checks whether this file asset is in the trash. This API uses an asynchronous ca ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1448,7 +1500,7 @@ async function example() { function isTrashCallBack(err, isTrash) { if (isTrash == true) { console.info('mediaLibraryTest : ASSET_CALLBACK ASSET_CALLBACK isTrash = ' + isTrash); - asset.trash(true, trashCallBack); + asset.trash(true, istrashCallBack); } else { console.info('mediaLibraryTest : ASSET_CALLBACK isTrash Unsuccessfull = ' + err); @@ -1479,6 +1531,7 @@ Checks whether this file asset is in the trash. This API uses a promise to retur ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1518,6 +1571,8 @@ Obtains the total number of files in the result set. ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey + let fileType = mediaLibrary.MediaType.FILE; let getFileCountOneOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', selectionArgs: [fileType.toString()], @@ -1547,6 +1602,7 @@ Checks whether the cursor is in the last row of the result set. ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1584,6 +1640,7 @@ Releases and invalidates this **FetchFileResult** instance. Other APIs in this i ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1614,6 +1671,7 @@ Obtains the first file asset in the result set. This API uses an asynchronous ca ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1622,12 +1680,12 @@ async function example() { extendArgs: "", }; let fetchFileResult = await media.getFileAssets(getImageOp); - fetchFileResult.getFirstObject((err, value) => { + fetchFileResult.getFirstObject((err, fileAsset) => { if (err) { console.error('Failed '); return; } - console.log(value); + console.log('fileAsset.displayName : ' + fileAsset.displayName); }) } ``` @@ -1650,6 +1708,7 @@ Obtains the first file asset in the result set. This API uses a promise to retur ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1672,8 +1731,6 @@ async function example() { Obtains the next file asset in the result set. This API uses an asynchronous callback to return the result. -**Required permissions**: ohos.permission.READ_MEDIA - **System capability**: SystemCapability.Multimedia.MediaLibrary.Core **Parameters** @@ -1686,6 +1743,7 @@ Obtains the next file asset in the result set. This API uses an asynchronous cal ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1694,12 +1752,12 @@ async function example() { extendArgs: "", }; let fetchFileResult = await media.getFileAssets(getImageOp); - fetchFileResult.getNextObject((err, value) => { + fetchFileResult.getNextObject((err, fileAsset) => { if (err) { console.error('Failed '); return; } - console.log(value); + console.log('fileAsset.displayName : ' + fileAsset.displayName); }) } ``` @@ -1710,8 +1768,6 @@ async function example() { Obtains the next file asset in the result set. This API uses a promise to return the result. -**Required permissions**: ohos.permission.READ_MEDIA - **System capability**: SystemCapability.Multimedia.MediaLibrary.Core **Return value** @@ -1724,6 +1780,7 @@ Obtains the next file asset in the result set. This API uses a promise to return ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1734,7 +1791,7 @@ async function example() { let fetchFileResult = await media.getFileAssets(getImageOp); const fetchCount = fetchFileResult.getCount(); console.info('mediaLibraryTest : count:' + fetchCount); - fileAsset = await fetchFileResult.getNextObject(); + let fileAsset = await fetchFileResult.getNextObject(); } ``` @@ -1756,6 +1813,7 @@ Obtains the last file asset in the result set. This API uses an asynchronous cal ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1764,12 +1822,12 @@ async function example() { extendArgs: "", }; let fetchFileResult = await media.getFileAssets(getImageOp); - fetchFileResult.getLastObject((err, value) => { + fetchFileResult.getLastObject((err, fileAsset) => { if (err) { console.error('Failed '); return; } - console.log(value); + console.log('fileAsset.displayName : ' + fileAsset.displayName); }) } ``` @@ -1792,6 +1850,7 @@ Obtains the last file asset in the result set. This API uses a promise to return ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1823,6 +1882,7 @@ Obtains a file asset with the specified index in the result set. This API uses a ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1831,12 +1891,12 @@ async function example() { extendArgs: "", }; let fetchFileResult = await media.getFileAssets(getImageOp); - fetchFileResult.getPositionObject(0, (err, value) => { + fetchFileResult.getPositionObject(0, (err, fileAsset) => { if (err) { console.error('Failed '); return; } - console.log(value); + console.log('fileAsset.displayName : ' + fileAsset.displayName); }) } ``` @@ -1847,8 +1907,6 @@ getPositionObject(index: number): Promise<FileAsset> Obtains a file asset with the specified index in the result set. This API uses a promise to return the result. -**Required permissions**: ohos.permission.READ_MEDIA - **System capability**: SystemCapability.Multimedia.MediaLibrary.Core **Parameters** @@ -1867,6 +1925,7 @@ Obtains a file asset with the specified index in the result set. This API uses a ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1875,12 +1934,12 @@ async function example() { extendArgs: "", }; let fetchFileResult = await media.getFileAssets(getImageOp); - fetchFileResult.getPositionObject(1, (err, value) => { + fetchFileResult.getPositionObject(1, (err, fileAsset) => { if (err) { console.error('Failed '); return; } - console.log(value); + console.log('fileAsset.displayName : ' + fileAsset.displayName); }) } ``` @@ -1891,8 +1950,6 @@ getAllObject(callback: AsyncCallback<Array<FileAsset>>): void Obtains all the file assets in the result set. This API uses an asynchronous callback to return the result. -**Required permissions**: ohos.permission.READ_MEDIA - **System capability**: SystemCapability.Multimedia.MediaLibrary.Core **Parameters** @@ -1905,6 +1962,7 @@ Obtains all the file assets in the result set. This API uses an asynchronous cal ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -1913,12 +1971,12 @@ async function example() { extendArgs: "", }; let fetchFileResult = await media.getFileAssets(getImageOp); - fetchFileResult.getAllObject((err, value) => { + fetchFileResult.getAllObject((err, fileAsset) => { if (err) { console.error('Failed '); return; } - console.log(value); + console.log('fileAsset.displayName : ' + fileAsset.displayName); }) } ``` @@ -1941,6 +1999,7 @@ Obtains all the file assets in the result set. This API uses a promise to return ``` async function example() { + let fileKeyObj = mediaLibrary.FileKey let imageType = mediaLibrary.MediaType.IMAGE; let getImageOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', @@ -2068,6 +2127,10 @@ async function example() { selections: '', selectionArgs: [], }; + let fileNoArgsfetchOp = { + selections: '', + selectionArgs: [], + } const albumList = await media.getAlbums(AlbumNoArgsfetchOp); const album = albumList[0]; album.getFileAssets(fileNoArgsfetchOp, getFileAssetsCallBack); @@ -2107,6 +2170,10 @@ async function example() { selections: '', selectionArgs: [], }; + let fileNoArgsfetchOp = { + selections: '', + selectionArgs: [], + } const albumList = await media.getAlbums(AlbumNoArgsfetchOp); const album = albumList[0]; album.getFileAssets(fileNoArgsfetchOp).then(function(albumFetchFileResult){ @@ -2120,8 +2187,9 @@ async function example() { ## PeerInfo8+ Describes information about a registered device. +This is a system API. -**System capability**: SystemCapability.Multimedia.MediaLibrary.Core +**System capability**: SystemCapability.Multimedia.MediaLibrary.DistributedCore | Name | Type | Readable| Writable| Description | | ---------- | -------------------------- | ---- | ---- | ---------------- | @@ -2138,12 +2206,12 @@ Enumerates media types. **System capability**: SystemCapability.Multimedia.MediaLibrary.Core -| Name | Default Value| Description| -| ----- | ------ | ---- | -| FILE | 1 | File.| -| IMAGE | 3 | Image.| -| VIDEO | 4 | Video.| -| AUDIO | 5 | Audio.| +| Name | Description| +| ----- | ---- | +| FILE | File.| +| IMAGE | Image.| +| VIDEO | Video.| +| AUDIO | Audio.| ## FileKey8+ @@ -2166,7 +2234,7 @@ Enumerates key file information. | TITLE | title | Title in the file. | | ARTIST | artist | Artist of the file. | | AUDIOALBUM | audio_album | Audio album. | -| DURATION | duration | Duration, in seconds. | +| DURATION | duration | Duration, in ms. | | WIDTH | width | Image width, in pixels. | | HEIGHT | height | Image height, in pixels. | | ORIENTATION | orientation | Image display direction (clockwise rotation angle, for example, 0, 90, and 180, in degrees).| @@ -2179,30 +2247,31 @@ Enumerates directory types. **System capability**: SystemCapability.Multimedia.MediaLibrary.Core -| Name | Default Value| Description | -| ------------- | ------ | ------------------ | -| DIR_CAMERA | 0 | Directory of camera files.| -| DIR_VIDEO | 1 | Directory of video files. | -| DIR_IMAGE | 2 | Directory of image files. | -| DIR_AUDIO | 3 | Directory of audio files. | -| DIR_DOCUMENTS | 4 | Directory of documents. | -| DIR_DOWNLOAD | 5 | Download directory. | +| Name | Description | +| ------------- | ------------------ | +| DIR_CAMERA | Directory of camera files.| +| DIR_VIDEO | Directory of video files. | +| DIR_IMAGE | Directory of image files. | +| DIR_AUDIO | Directory of audio files. | +| DIR_DOCUMENTS | Directory of documents. | +| DIR_DOWNLOAD | Download directory. | ## DeviceType8+ Enumerates device types. +This is a system API. -**System capability**: SystemCapability.Multimedia.MediaLibrary.Core +**System capability**: SystemCapability.Multimedia.MediaLibrary.DistributedCore -| Name | Default Value| Description | -| ------------ | ------ | ---------- | -| TYPE_UNKNOWN | 0 | Unknown.| -| TYPE_LAPTOP | 1 | Laptop.| -| TYPE_PHONE | 2 | Phone. | -| TYPE_TABLET | 3 | Tablet. | -| TYPE_WATCH | 4 | Smart watch. | -| TYPE_CAR | 5 | Vehicle-mounted device. | -| TYPE_TV | 6 | TV. | +| Name | Description | +| ------------ | ---------- | +| TYPE_UNKNOWN | Unknown.| +| TYPE_LAPTOP | Laptop.| +| TYPE_PHONE | Phone. | +| TYPE_TABLET | Tablet. | +| TYPE_WATCH | Smart watch. | +| TYPE_CAR | Vehicle-mounted device. | +| TYPE_TV | TV. | ## MediaFetchOptions7+ @@ -2222,6 +2291,7 @@ Describes options for fetching media files. ## Size8+ Describes the image size. +**System capability**: SystemCapability.Multimedia.MediaLibrary.Core | Name | Type | Readable | Writable | Description | | ------ | ------ | ---- | ---- | -------- | @@ -2232,7 +2302,9 @@ Describes the image size. Implements the media asset option. -> **NOTE**
This API is deprecated since API version 9. +> **NOTE** +> +> This API is deprecated since API version 9. **System capability**: SystemCapability.Multimedia.MediaLibrary.Core @@ -2247,7 +2319,9 @@ Implements the media asset option. Describes media selection option. -> **NOTE**
This API is deprecated since API version 9. +> **NOTE** +> +> This API is deprecated since API version 9. **System capability**: SystemCapability.Multimedia.MediaLibrary.Core -- GitLab From 182b60dcc0d2631ef7878ce9a809fc9d0b5cf7e6 Mon Sep 17 00:00:00 2001 From: shawn_he Date: Thu, 28 Jul 2022 17:42:46 +0800 Subject: [PATCH 545/868] update doc Signed-off-by: shawn_he --- .../subsys-dfx-hisysevent-overview.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 en/device-dev/subsystems/subsys-dfx-hisysevent-overview.md diff --git a/en/device-dev/subsystems/subsys-dfx-hisysevent-overview.md b/en/device-dev/subsystems/subsys-dfx-hisysevent-overview.md new file mode 100644 index 0000000000..d5ea1ec452 --- /dev/null +++ b/en/device-dev/subsystems/subsys-dfx-hisysevent-overview.md @@ -0,0 +1,22 @@ +# HiSysEvent Overview + + +## Introduction + +HiSysEvent provides event logging APIs for OpenHarmony to record important information of key processes during system running, helping you locate faults. In addition, you can upload the log data to the cloud for big data analytics. + +The key modules of HiSysEvent are described as follows: + +- Event configuration: enables you to define HiSysEvent events in YAML files. + +- Trace point configuration: provides trace point APIs and supports flushing of HiSysEvent events to disks. + +- Event subscription: provides APIs for you to subscribe to HiSysEvent events by event domain and event name. + +- Event query: provides APIs for you to query HiSysEvent events by event domain and event name. + +- Event debugging tool: allows you to subscribe to real-time HiSysEvent events and query historical HiSysEvent events. + +## Reference + +For more information about the source code and usage of HiSysEvent, access the [HiSysEvent code repository](https://gitee.com/openharmony/hiviewdfx_hisysevent). -- GitLab From edab3cd5d05d1daf6687217c117cb5c4d449e128 Mon Sep 17 00:00:00 2001 From: HelloCrease Date: Thu, 28 Jul 2022 17:42:20 +0800 Subject: [PATCH 546/868] update docs Signed-off-by: HelloCrease --- .../reference/apis/js-apis-update.md | 642 +++++++++--------- .../arkui-ts/ts-basic-components-image.md | 8 +- 2 files changed, 325 insertions(+), 325 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-update.md b/zh-cn/application-dev/reference/apis/js-apis-update.md index 58e88f5c8d..7a0303d76c 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-update.md +++ b/zh-cn/application-dev/reference/apis/js-apis-update.md @@ -29,9 +29,9 @@ getOnlineUpdater(upgradeInfo: UpgradeInfo): Updater **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ----------- | --------------------------- | ---- | ---- | -| upgradeInfo | [UpgradeInfo](#upgradeinfo) | 是 | 升级信息对象 | +| 参数名 | 类型 | 必填 | 说明 | +| ----------- | --------------------------- | ---- | ------ | +| upgradeInfo | [UpgradeInfo](#upgradeinfo) | 是 | 升级信息对象 | **返回值:** @@ -67,8 +67,8 @@ getRestorer(): Restorer **返回值:** -| 类型 | 说明 | -| ------------------- | ---- | +| 类型 | 说明 | +| --------------------- | ------ | | [Restorer](#restorer) | 恢复出厂对象 | **示例:** @@ -91,8 +91,8 @@ getLocalUpdater(): LocalUpdater **返回值:** -| 类型 | 说明 | -| ------------------- | ---- | +| 类型 | 说明 | +| ----------------------------- | ------ | | [LocalUpdater](#localupdater) | 本地升级对象 | **示例:** @@ -119,8 +119,8 @@ checkNewVersion(callback: AsyncCallback\): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | -------------- | | callback | AsyncCallback\<[CheckResult](#checkresult)> | 是 | 回调函数,返回搜包结果对象。 | **示例:** @@ -143,8 +143,8 @@ checkNewVersion(): Promise\ **返回值:** -| 类型 | 说明 | -| ---------------------------------------- | ---------------- | +| 类型 | 说明 | +| ------------------------------------- | ------------------- | | Promise\<[CheckResult](#checkresult)> | Promise对象,返回搜包结果对象。 | **示例:** @@ -171,8 +171,8 @@ getNewVersionInfo(callback: AsyncCallback\): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------------- | | callback | AsyncCallback\<[NewVersionInfo](#newversioninfo)> | 是 | 回调函数,返回新版本信息对象。 | **示例:** @@ -196,8 +196,8 @@ getNewVersionInfo(): Promise\ **返回值:** -| 类型 | 说明 | -| ---------------------------------------- | ---------------- | +| 类型 | 说明 | +| ---------------------------------------- | -------------------- | | Promise\<[NewVersionInfo](#newversioninfo)> | Promise对象,返回新版本信息对象。 | **示例:** @@ -223,11 +223,11 @@ getNewVersionDescription(versionDigestInfo: VersionDigestInfo, descriptionOption **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | -| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | -| descriptionOptions | [DescriptionOptions](#descriptionoptions) | 是 | 描述文件选项 | -| callback | AsyncCallback\>) | 是 | 回调函数,返回新版本描述文件 | +| 参数名 | 类型 | 必填 | 说明 | +| ------------------ | ---------------------------------------- | ---- | -------------- | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| descriptionOptions | [DescriptionOptions](#descriptionoptions) | 是 | 描述文件选项 | +| callback | AsyncCallback\>) | 是 | 回调函数,返回新版本描述文件 | **示例:** @@ -261,15 +261,15 @@ getNewVersionDescription(versionDigestInfo: VersionDigestInfo, descriptionOption **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | -| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| 参数名 | 类型 | 必填 | 说明 | +| ------------------ | ---------------------------------------- | ---- | ------ | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | | descriptionOptions | [DescriptionOptions](#descriptionoptions) | 是 | 描述文件选项 | **返回值:** -| 类型 | 说明 | -| ---------------------------------------- | ---------------- | +| 类型 | 说明 | +| ---------------------------------------- | ------------------- | | Promise\> | Promise对象,返回新版本描述文件 | **示例:** @@ -305,8 +305,8 @@ getCurrentVersionInfo(callback: AsyncCallback\): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------- | | callback | AsyncCallback\<[CurrentVersionInfo](#currentversioninfo)> | 是 | 回调函数,返回当前版本信息对象。 | **示例:** @@ -331,8 +331,8 @@ getCurrentVersionInfo(): Promise\ **返回值:** -| 类型 | 说明 | -| ---------------------------------------- | ---------------- | +| 类型 | 说明 | +| ---------------------------------------- | ------------------- | | Promise\<[CurrentVersionInfo](#currentversioninfo)> | Promise对象,返回当前版本对象。 | **示例:** @@ -359,10 +359,10 @@ getCurrentVersionDescription(descriptionOptions: DescriptionOptions, callback: A **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | -| descriptionOptions | [DescriptionOptions](#descriptionoptions) | 是 | 描述文件选项 | -| callback | AsyncCallback\>) | 是 | 回调函数,返回当前版本描述文件 | +| 参数名 | 类型 | 必填 | 说明 | +| ------------------ | ---------------------------------------- | ---- | --------------- | +| descriptionOptions | [DescriptionOptions](#descriptionoptions) | 是 | 描述文件选项 | +| callback | AsyncCallback\>) | 是 | 回调函数,返回当前版本描述文件 | **示例:** @@ -391,14 +391,14 @@ getCurrentVersionDescription(descriptionOptions: DescriptionOptions): Promise\> | Promise对象,返回当前版本描述文件 | **示例:** @@ -429,8 +429,8 @@ getTaskInfo(callback: AsyncCallback\): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------- | ---- | ---------------- | | callback | AsyncCallback\<[TaskInfo](#taskinfo)> | 是 | 回调函数,返回升级任务信息对象。 | **示例:** @@ -453,8 +453,8 @@ getTaskInfo(): Promise\ **返回值:** -| 类型 | 说明 | -| ---------------------------------------- | ---------------- | +| 类型 | 说明 | +| ------------------------------- | ------------------- | | Promise\<[TaskInfo](#taskinfo)> | Promise对象,返回任务信息对象。 | **示例:** @@ -479,11 +479,11 @@ download(versionDigestInfo: VersionDigestInfo, downloadOptions: DownloadOptions, **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | -| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | -| downloadOptions | [DownloadOptions](#downloadoptions) | 是 | 下载选项 | -| callback | AsyncCallback\ | 是 | 回调函数。当下载成功时,err为undefined,否则为错误对象。 | +| 参数名 | 类型 | 必填 | 说明 | +| ----------------- | --------------------------------------- | ---- | ---------------------------------- | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| downloadOptions | [DownloadOptions](#downloadoptions) | 是 | 下载选项 | +| callback | AsyncCallback\ | 是 | 回调函数。当下载成功时,err为undefined,否则为错误对象。 | **示例:** @@ -515,15 +515,15 @@ download(versionDigestInfo: VersionDigestInfo, downloadOptions: DownloadOptions) **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | +| 参数名 | 类型 | 必填 | 说明 | +| ----------------- | --------------------------------------- | ---- | ------ | | versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | -| downloadOptions | [DownloadOptions](#downloadoptions) | 是 | 下载选项 | +| downloadOptions | [DownloadOptions](#downloadoptions) | 是 | 下载选项 | **返回值:** -| 类型 | 说明 | -| ---------------------------------------- | ---------------- | +| 类型 | 说明 | +| -------------- | -------------------------- | | Promise\ | Promise对象。无返回结果的Promise对象。 | **示例:** @@ -558,11 +558,11 @@ resumeDownload(versionDigestInfo: VersionDigestInfo, resumeDownloadOptions: Resu **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | -| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | -| resumeDownloadOptions | [ResumeDownloadOptions](#resumedownloadoptions) | 是 | 恢复下载选项 | -| callback | AsyncCallback\ | 是 | 回调函数。当恢复下载成功时,err为undefined,否则为错误对象。 | +| 参数名 | 类型 | 必填 | 说明 | +| --------------------- | ---------------------------------------- | ---- | ------------------------------------ | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| resumeDownloadOptions | [ResumeDownloadOptions](#resumedownloadoptions) | 是 | 恢复下载选项 | +| callback | AsyncCallback\ | 是 | 回调函数。当恢复下载成功时,err为undefined,否则为错误对象。 | **示例:** @@ -593,15 +593,15 @@ resumeDownload(versionDigestInfo: VersionDigestInfo, resumeDownloadOptions: Resu **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | -| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| 参数名 | 类型 | 必填 | 说明 | +| --------------------- | ---------------------------------------- | ---- | ------ | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | | resumeDownloadOptions | [ResumeDownloadOptions](#resumedownloadoptions) | 是 | 恢复下载选项 | **返回值:** -| 类型 | 说明 | -| ---------------------------------------- | ---------------- | +| 类型 | 说明 | +| -------------- | -------------------------- | | Promise\ | Promise对象。无返回结果的Promise对象。 | **示例:** @@ -635,11 +635,11 @@ pauseDownload(versionDigestInfo: VersionDigestInfo, pauseDownloadOptions: PauseD **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | -| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | -| pauseDownloadOptions | [PauseDownloadOptions](#pausedownloadoptions) | 是 | 暂停下载选项 | -| callback | AsyncCallback\ | 是 | 回调函数。当暂停下载成功时,err为undefined,否则为错误对象。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------------------- | ---------------------------------------- | ---- | ------------------------------------ | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| pauseDownloadOptions | [PauseDownloadOptions](#pausedownloadoptions) | 是 | 暂停下载选项 | +| callback | AsyncCallback\ | 是 | 回调函数。当暂停下载成功时,err为undefined,否则为错误对象。 | **示例:** @@ -670,15 +670,15 @@ pauseDownload(versionDigestInfo: VersionDigestInfo, pauseDownloadOptions: PauseD **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | -| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| 参数名 | 类型 | 必填 | 说明 | +| -------------------- | ---------------------------------------- | ---- | ------ | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | | pauseDownloadOptions | [PauseDownloadOptions](#pausedownloadoptions) | 是 | 暂停下载选项 | **返回值:** -| 类型 | 说明 | -| ---------------------------------------- | ---------------- | +| 类型 | 说明 | +| -------------- | -------------------------- | | Promise\ | Promise对象。无返回结果的Promise对象。 | **示例:** @@ -712,11 +712,11 @@ upgrade(versionDigestInfo: VersionDigestInfo, upgradeOptions: UpgradeOptions, ca **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | -| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | -| upgradeOptions | [UpgradeOptions](#upgradeoptions) | 是 | 更新选项 | -| callback | AsyncCallback\ | 是 | 回调函数。当升级执行成功时,err为undefined,否则为错误对象。 | +| 参数名 | 类型 | 必填 | 说明 | +| ----------------- | --------------------------------------- | ---- | ------------------------------------ | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| upgradeOptions | [UpgradeOptions](#upgradeoptions) | 是 | 更新选项 | +| callback | AsyncCallback\ | 是 | 回调函数。当升级执行成功时,err为undefined,否则为错误对象。 | **示例:** @@ -747,15 +747,15 @@ upgrade(versionDigestInfo: VersionDigestInfo, upgradeOptions: UpgradeOptions): P **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | +| 参数名 | 类型 | 必填 | 说明 | +| ----------------- | --------------------------------------- | ---- | ------ | | versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | -| upgradeOptions | [UpgradeOptions](#upgradeoptions) | 是 | 更新选项 | +| upgradeOptions | [UpgradeOptions](#upgradeoptions) | 是 | 更新选项 | **返回值:** -| 类型 | 说明 | -| ---------------------------------------- | ---------------- | +| 类型 | 说明 | +| -------------- | -------------------------- | | Promise\ | Promise对象。无返回结果的Promise对象。 | **示例:** @@ -789,11 +789,11 @@ clearError(versionDigestInfo: VersionDigestInfo, clearOptions: ClearOptions, cal **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | -| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | -| clearOptions | [ClearOptions](#clearoptions) | 是 | 清除选项 | -| callback | AsyncCallback\ | 是 | 回调函数。当清除异常成功时,err为undefined,否则为错误对象。 | +| 参数名 | 类型 | 必填 | 说明 | +| ----------------- | --------------------------------------- | ---- | ------------------------------------ | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| clearOptions | [ClearOptions](#clearoptions) | 是 | 清除选项 | +| callback | AsyncCallback\ | 是 | 回调函数。当清除异常成功时,err为undefined,否则为错误对象。 | **示例:** @@ -824,15 +824,15 @@ clearError(versionDigestInfo: VersionDigestInfo, clearOptions: ClearOptions): Pr **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | +| 参数名 | 类型 | 必填 | 说明 | +| ----------------- | --------------------------------------- | ---- | ------ | | versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | -| clearOptions | [ClearOptions](#clearoptions) | 是 | 更新选项 | +| clearOptions | [ClearOptions](#clearoptions) | 是 | 更新选项 | **返回值:** -| 类型 | 说明 | -| ---------------------------------------- | ---------------- | +| 类型 | 说明 | +| -------------- | -------------------------- | | Promise\ | Promise对象。无返回结果的Promise对象。 | **示例:** @@ -866,8 +866,8 @@ getUpgradePolicy(callback: AsyncCallback\): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | ---------- | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------------- | | callback | AsyncCallback\<[UpgradePolicy](#upgradepolicy)> | 是 | 回调函数,返回升级策略信息对象 | **示例:** @@ -891,8 +891,8 @@ getUpgradePolicy(): Promise\ **返回值:** -| 类型 | 说明 | -| --------------------------------------- | ----------------- | +| 类型 | 说明 | +| ---------------------------------------- | --------------------- | | Promise\<[UpgradePolicy](#upgradepolicy)> | Promise对象,返回升级策略信息对象。 | **示例:** @@ -918,10 +918,10 @@ setUpgradePolicy(policy: UpgradePolicy, callback: AsyncCallback\): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | ---------- | -| policy | [UpgradePolicy](#upgradepolicy) | 是 | 升级策略 | -| callback | AsyncCallback\ | 是 | 回调函数,返回设置结果对象 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------- | ---- | ------------- | +| policy | [UpgradePolicy](#upgradepolicy) | 是 | 升级策略 | +| callback | AsyncCallback\ | 是 | 回调函数,返回设置结果对象 | **示例:** @@ -948,14 +948,14 @@ setUpgradePolicy(policy: UpgradePolicy): Promise\ **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ----------------------------- | ---- | ------ | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------------------------------- | ---- | ---- | | policy | [UpgradePolicy](#upgradepolicy) | 是 | 升级策略 | **返回值:** -| 类型 | 说明 | -| ---------------- | --------------- | +| 类型 | 说明 | +| -------------- | ------------------- | | Promise\ | Promise对象,返回设置结果对象。 | **示例:** @@ -985,8 +985,8 @@ terminateUpgrade(callback: AsyncCallback\): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | -------------------------------------- | | callback | AsyncCallback\ | 是 | 回调函数。当清除升级缓存成功时,err为undefined,否则为错误对象。 | **示例:** @@ -1009,8 +1009,8 @@ terminateUpgrade(): Promise\ **返回值:** -| 类型 | 说明 | -| ---------------------------------------- | ---------------- | +| 类型 | 说明 | +| -------------- | -------------------------- | | Promise\ | Promise对象。无返回结果的Promise对象。 | **示例:** @@ -1033,10 +1033,10 @@ on(eventClassifyInfo: EventClassifyInfo, taskCallback: UpgradeTaskCallback): voi **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | -| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | 是 | 事件信息 | -| taskCallback | [UpgradeTaskCallback](#upgradetaskcallback) | 是 | 事件回调 | +| 参数名 | 类型 | 必填 | 说明 | +| ----------------- | ---------------------------------------- | ---- | ---- | +| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | 是 | 事件信息 | +| taskCallback | [UpgradeTaskCallback](#upgradetaskcallback) | 是 | 事件回调 | **示例:** @@ -1060,10 +1060,10 @@ off(eventClassifyInfo: EventClassifyInfo, taskCallback?: UpgradeTaskCallback): v **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | -| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | 是 | 事件信息 | -| taskCallback | [UpgradeTaskCallback](#upgradetaskcallback) | 否 | 事件回调 | +| 参数名 | 类型 | 必填 | 说明 | +| ----------------- | ---------------------------------------- | ---- | ---- | +| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | 是 | 事件信息 | +| taskCallback | [UpgradeTaskCallback](#upgradetaskcallback) | 否 | 事件回调 | **示例:** @@ -1092,8 +1092,8 @@ factoryReset(callback: AsyncCallback\): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | -------------------------------------- | | callback | AsyncCallback\ | 是 | 回调函数。当恢复出厂执行成功时,err为undefined,否则为错误对象。 | **示例:** @@ -1116,8 +1116,8 @@ factoryReset(): Promise\ **返回值:** -| 类型 | 说明 | -| ---------------------------------------- | ---------------- | +| 类型 | 说明 | +| -------------- | -------------------------- | | Promise\ | Promise对象。无返回结果的Promise对象。 | **示例:** @@ -1144,11 +1144,11 @@ verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string, callback: Asyn **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | -| upgradeFile | [UpgradeFile](#upgradefile) | 是 | 升级文件 | -| certsFile | string | 是 | 证书文件路径 | -| callback | AsyncCallback\ | 是 | 回调函数,返回升级包校验结果对象 | +| 参数名 | 类型 | 必填 | 说明 | +| ----------- | --------------------------- | ---- | ---------------- | +| upgradeFile | [UpgradeFile](#upgradefile) | 是 | 升级文件 | +| certsFile | string | 是 | 证书文件路径 | +| callback | AsyncCallback\ | 是 | 回调函数,返回升级包校验结果对象 | **示例:** @@ -1175,15 +1175,15 @@ verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string): Promise\ | Promise对象,返回升级包校验结果对象。 | **示例:** @@ -1211,10 +1211,10 @@ applyNewVersion(upgradeFiles: Array<[UpgradeFile](#upgradefile)>, callback: Asyn **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | -| upgradeFile | Array<[UpgradeFile](#upgradefile)> | 是 | 升级文件 | -| callback | AsyncCallback\ | 是 | 回调函数。当安装升级包执行成功时,err为undefined,否则为错误对象。 | +| 参数名 | 类型 | 必填 | 说明 | +| ----------- | ---------------------------------- | ---- | --------------------------------------- | +| upgradeFile | Array<[UpgradeFile](#upgradefile)> | 是 | 升级文件 | +| callback | AsyncCallback\ | 是 | 回调函数。当安装升级包执行成功时,err为undefined,否则为错误对象。 | **示例:** @@ -1241,8 +1241,8 @@ applyNewVersion(upgradeFiles: Array<[UpgradeFile](#upgradefile)>): Promise\ | Promise对象。无返回结果的Promise对象。 | **示例:** @@ -1268,10 +1268,10 @@ on(eventClassifyInfo: EventClassifyInfo, taskCallback: UpgradeTaskCallback): voi **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | -| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | 是 | 事件信息 | -| taskCallback | [UpgradeTaskCallback](#upgradetaskcallback) | 是 | 事件回调 | +| 参数名 | 类型 | 必填 | 说明 | +| ----------------- | ---------------------------------------- | ---- | ---- | +| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | 是 | 事件信息 | +| taskCallback | [UpgradeTaskCallback](#upgradetaskcallback) | 是 | 事件回调 | **示例:** @@ -1297,10 +1297,10 @@ off(eventClassifyInfo: EventClassifyInfo, taskCallback?: UpgradeTaskCallback): v **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | --------- | -| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | 是 | 事件信息 | -| taskCallback | [UpgradeTaskCallback](#upgradetaskcallback) | 是 | 事件回调 | +| 参数名 | 类型 | 必填 | 说明 | +| ----------------- | ---------------------------------------- | ---- | ---- | +| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | 是 | 事件信息 | +| taskCallback | [UpgradeTaskCallback](#upgradetaskcallback) | 是 | 事件回调 | **示例:** @@ -1323,10 +1323,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| upgradeApp | string | 是 | 调用方包名 | -| businessType | [BusinessType](#businesstype) | 是 | 升级业务类型 | +| 名称 | 参数类型 | 必填 | 说明 | +| ------------ | ----------------------------- | ---- | ------ | +| upgradeApp | string | 是 | 调用方包名 | +| businessType | [BusinessType](#businesstype) | 是 | 升级业务类型 | ## BusinessType @@ -1334,10 +1334,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| vendor | [BusinessVendor](#businessvendor) | 是 | 供应商 | -| subType | [BusinessSubType](#businesssubtype) | 是 | 类型 | +| 名称 | 参数类型 | 必填 | 说明 | +| ------- | ----------------------------------- | ---- | ---- | +| vendor | [BusinessVendor](#businessvendor) | 是 | 供应商 | +| subType | [BusinessSubType](#businesssubtype) | 是 | 类型 | ## CheckResult @@ -1345,10 +1345,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| isExistNewVersion | bool | 是 | 是否有新版本 | -| newVersionInfo | [NewVersionInfo](#newversioninfo) | 否 | 新版本数据 | +| 名称 | 参数类型 | 必填 | 说明 | +| ----------------- | --------------------------------- | ---- | ------ | +| isExistNewVersion | bool | 是 | 是否有新版本 | +| newVersionInfo | [NewVersionInfo](#newversioninfo) | 否 | 新版本数据 | ## NewVersionInfo @@ -1356,10 +1356,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要 | -| versionComponents | Array\<[VersionComponent](#versioncomponent)> | 是 | 版本组件 | +| 名称 | 参数类型 | 必填 | 说明 | +| ----------------- | ---------------------------------------- | ---- | ---- | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要 | +| versionComponents | Array\<[VersionComponent](#versioncomponent)> | 是 | 版本组件 | ## VersionDigestInfo @@ -1367,9 +1367,9 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| versionDigest | string | 是 | 版本摘要 | +| 名称 | 参数类型 | 必填 | 说明 | +| ------------- | ------ | ---- | ---- | +| versionDigest | string | 是 | 版本摘要 | ## VersionComponent @@ -1377,16 +1377,16 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| componentId | number | 是 | 组件标识 | -| componentType | [ComponentType](#componentyype) | 是 | 组件类型 | -| upgradeAction | [UpgradeAction](#upgradeaction) | 是 | 升级方式 | -| displayVersion | string | 是 | 显示版本号 | -| innerVersion | string | 是 | 版本号 | -| size | number | 是 | 升级包大小 | -| effectiveMode | [EffectiveMode](#effectivemode) | 是 | 生效模式 | -| descriptionInfo | [DescriptionInfo](#descriptioninfo) | 是 | 版本描述文件信息 | +| 名称 | 参数类型 | 必填 | 说明 | +| --------------- | ----------------------------------- | ---- | -------- | +| componentId | number | 是 | 组件标识 | +| componentType | [ComponentType](#componenttype) | 是 | 组件类型 | +| upgradeAction | [UpgradeAction](#upgradeaction) | 是 | 升级方式 | +| displayVersion | string | 是 | 显示版本号 | +| innerVersion | string | 是 | 版本号 | +| size | number | 是 | 升级包大小 | +| effectiveMode | [EffectiveMode](#effectivemode) | 是 | 生效模式 | +| descriptionInfo | [DescriptionInfo](#descriptioninfo) | 是 | 版本描述文件信息 | ## DescriptionOptions @@ -1394,10 +1394,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| format | [DescriptionFormat](#descriptionformat) | 是 | 描述文件格式 | -| language | string | 是 | 描述文件语言 | +| 名称 | 参数类型 | 必填 | 说明 | +| -------- | --------------------------------------- | ---- | ------ | +| format | [DescriptionFormat](#descriptionformat) | 是 | 描述文件格式 | +| language | string | 是 | 描述文件语言 | ## ComponentDescription @@ -1405,10 +1405,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| componentId | string | 是 | 组件标识 | -| descriptionInfo | [DescriptionInfo](#descriptioninfo) | 是 | 描述文件信息 | +| 名称 | 参数类型 | 必填 | 说明 | +| --------------- | ----------------------------------- | ---- | ------ | +| componentId | string | 是 | 组件标识 | +| descriptionInfo | [DescriptionInfo](#descriptioninfo) | 是 | 描述文件信息 | ## DescriptionInfo @@ -1416,10 +1416,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| descriptionType | [DescriptionType](#descriptiontype) | 是 | 描述文件类型 | -| content | string | 是 | 描述文件内容 | +| 名称 | 参数类型 | 必填 | 说明 | +| --------------- | ----------------------------------- | ---- | ------ | +| descriptionType | [DescriptionType](#descriptiontype) | 是 | 描述文件类型 | +| content | string | 是 | 描述文件内容 | ## CurrentVersionInfo @@ -1427,11 +1427,11 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| osVersion | string | 是 | 系统版本号 | -| deviceName | string | 是 | 设备名 | -| versionComponents | Array\<[VersionComponent](#vesioncomponent)> | 否 | 版本组件 | +| 名称 | 参数类型 | 必填 | 说明 | +| ----------------- | ---------------------------------------- | ---- | ----- | +| osVersion | string | 是 | 系统版本号 | +| deviceName | string | 是 | 设备名 | +| versionComponents | Array\<[VersionComponent](#versioncomponent)> | 否 | 版本组件 | ## DownloadOptions @@ -1439,10 +1439,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| allowNetwork | [NetType](#nettype) | 是 | 网络类型 | -| order | [Order](#order) | 是 | 升级指令 | +| 名称 | 参数类型 | 必填 | 说明 | +| ------------ | ------------------- | ---- | ---- | +| allowNetwork | [NetType](#nettype) | 是 | 网络类型 | +| order | [Order](#order) | 是 | 升级指令 | ## ResumeDownloadOptions @@ -1450,9 +1450,9 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| allowNetwork | [NetType](#nettype) | 是 | 网络类型 | +| 名称 | 参数类型 | 必填 | 说明 | +| ------------ | ------------------- | ---- | ---- | +| allowNetwork | [NetType](#nettype) | 是 | 网络类型 | ## PauseDownloadOptions @@ -1460,9 +1460,9 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| isAllowAutoResume | bool | 是 | 是否允许自动恢复 | +| 名称 | 参数类型 | 必填 | 说明 | +| ----------------- | ---- | ---- | -------- | +| isAllowAutoResume | bool | 是 | 是否允许自动恢复 | ## UpgradeOptions @@ -1470,9 +1470,9 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| order | [Order](#order) | 是 | 升级指令 | +| 名称 | 参数类型 | 必填 | 说明 | +| ----- | --------------- | ---- | ---- | +| order | [Order](#order) | 是 | 升级指令 | ## ClearOptions @@ -1480,9 +1480,9 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| status | [UpgradeStatus](#upgradestatus) | 是 | 异常状态 | +| 名称 | 参数类型 | 必填 | 说明 | +| ------ | ------------------------------- | ---- | ---- | +| status | [UpgradeStatus](#upgradestatus) | 是 | 异常状态 | ## UpgradePolicy @@ -1490,11 +1490,11 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| downloadStrategy | bool | 是 | 自动下载策略 | -| autoUpgradeStrategy | bool | 是 | 自动升级策略 | -| autoUpgradePeriods | Array\<[UpgradePeriod](#upgradeperiod)> | 是 | 自动升级时间段 | +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------------------- | ---- | ------- | +| downloadStrategy | bool | 是 | 自动下载策略 | +| autoUpgradeStrategy | bool | 是 | 自动升级策略 | +| autoUpgradePeriods | Array\<[UpgradePeriod](#upgradeperiod)> | 是 | 自动升级时间段 | ## UpgradePeriod @@ -1502,10 +1502,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| start | number | 是 | 开始时间 | -| end | number | 是 | 结束时间 | +| 名称 | 参数类型 | 必填 | 说明 | +| ----- | ------ | ---- | ---- | +| start | number | 是 | 开始时间 | +| end | number | 是 | 结束时间 | ## TaskInfo @@ -1513,10 +1513,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| existTask | bool | 是 | 是否存在任务 | -| taskBody | [TaskBody](#taskinfo) | 是 | 任务数据 | +| 名称 | 参数类型 | 必填 | 说明 | +| --------- | --------------------- | ---- | ------ | +| existTask | bool | 是 | 是否存在任务 | +| taskBody | [TaskBody](#taskinfo) | 是 | 任务数据 | ## EventInfo @@ -1524,10 +1524,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| eventId | [EventId](#eventid) | 是 | 事件ID | -| taskBody | [TaskBody](#taskinfo) | 是 | 任务数据 | +| 名称 | 参数类型 | 必填 | 说明 | +| -------- | --------------------- | ---- | ---- | +| eventId | [EventId](#eventid) | 是 | 事件ID | +| taskBody | [TaskBody](#taskinfo) | 是 | 任务数据 | ## TaskBody @@ -1535,15 +1535,15 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要 | -| status | [UpgradeStatus](#upgradestatus) | 是 | 升级状态 | -| subStatus | number | 否 | 子状态 | -| progress | number | 是 | 进度 | -| installMode | number | 是 | 安装模式 | -| errorMessages | Array\<[ErrorMessage](#errormessage)> | 否 | 错误信息 | -| versionComponents | Array\<[VersionComponent](#versioncomponent)> | 是 | 版本组件 | +| 名称 | 参数类型 | 必填 | 说明 | +| ----------------- | ---------------------------------------- | ---- | ---- | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要 | +| status | [UpgradeStatus](#upgradestatus) | 是 | 升级状态 | +| subStatus | number | 否 | 子状态 | +| progress | number | 是 | 进度 | +| installMode | number | 是 | 安装模式 | +| errorMessages | Array\<[ErrorMessage](#errormessage)> | 否 | 错误信息 | +| versionComponents | Array\<[VersionComponent](#versioncomponent)> | 是 | 版本组件 | ## ErrorMessage @@ -1551,10 +1551,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| errorCode | number | 是 | 错误码 | -| errorMessage | string | 是 | 错误描述 | +| 名称 | 参数类型 | 必填 | 说明 | +| ------------ | ------ | ---- | ---- | +| errorCode | number | 是 | 错误码 | +| errorMessage | string | 是 | 错误描述 | ## EventClassifyInfo @@ -1562,10 +1562,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| eventClassify | [EventClassify](#eventclassify) | 是 | 事件类型 | -| extraInfo | string | 是 | 额外信息 | +| 名称 | 参数类型 | 必填 | 说明 | +| ------------- | ------------------------------- | ---- | ---- | +| eventClassify | [EventClassify](#eventclassify) | 是 | 事件类型 | +| extraInfo | string | 是 | 额外信息 | ## UpgradeFile @@ -1573,10 +1573,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| fileType | [ComponentType](#componenttype) | 是 | 文件类型 | -| filePath | string | 是 | 文件路径 | +| 名称 | 参数类型 | 必填 | 说明 | +| -------- | ------------------------------- | ---- | ---- | +| fileType | [ComponentType](#componenttype) | 是 | 文件类型 | +| filePath | string | 是 | 文件路径 | ## UpgradeTaskCallback @@ -1586,9 +1586,9 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| --------------- | ---------------------------------------- | ---- | ---- | -| eventInfo | [EventInfo](#eventinfo) | 是 | 事件信息 | +| 名称 | 参数类型 | 必填 | 说明 | +| --------- | ----------------------- | ---- | ---- | +| eventInfo | [EventInfo](#eventinfo) | 是 | 事件信息 | ## BusinessVendor @@ -1596,9 +1596,9 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 参数名 | 默认值 | 说明 | -| ------------------- | ---- | -------- | -| PUBLIC | "public" | 开源 | +| 参数名 | 默认值 | 说明 | +| ------ | -------- | ---- | +| PUBLIC | "public" | 开源 | ## BusinessSubType @@ -1606,9 +1606,9 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 参数名 | 默认值 | 说明 | -| ------------------- | ---- | -------- | -| FIRMWARE | 1 | 固件 | +| 参数名 | 默认值 | 说明 | +| -------- | ---- | ---- | +| FIRMWARE | 1 | 固件 | ## ComponentType @@ -1616,9 +1616,9 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 参数名 | 默认值 | 说明 | -| ------------------- | ---- | -------- | -| OTA | 1 | 固件 | +| 参数名 | 默认值 | 说明 | +| ---- | ---- | ---- | +| OTA | 1 | 固件 | ## UpgradeAction @@ -1626,10 +1626,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 参数名 | 默认值 | 说明 | -| ------------------- | ---- | -------- | -| UPGRADE | "upgrade" | 差分包 | -| RECOVERY | "recovery" | 修复包 | +| 参数名 | 默认值 | 说明 | +| -------- | ---------- | ---- | +| UPGRADE | "upgrade" | 差分包 | +| RECOVERY | "recovery" | 修复包 | ## EffectiveMode @@ -1637,11 +1637,11 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 参数名 | 默认值 | 说明 | -| ------------------- | ---- | -------- | -| COLD | 1 | 冷升级 | -| LIVE | 2 | 热升级 | -| LIVE_AND_COLD | 3 | 融合升级 | +| 参数名 | 默认值 | 说明 | +| ------------- | ---- | ---- | +| COLD | 1 | 冷升级 | +| LIVE | 2 | 热升级 | +| LIVE_AND_COLD | 3 | 融合升级 | ## DescriptionType @@ -1649,10 +1649,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 参数名 | 默认值 | 说明 | -| ------------------- | ---- | -------- | -| CONTENT | 0 | 内容 | -| URI | 1 | 链接 | +| 参数名 | 默认值 | 说明 | +| ------- | ---- | ---- | +| CONTENT | 0 | 内容 | +| URI | 1 | 链接 | ## DescriptionFormat @@ -1660,10 +1660,10 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 参数名 | 默认值 | 说明 | -| ------------------- | ---- | -------- | -| STANDARD | 0 | 标准格式 | -| SIMPLIFIED | 1 | 简易格式 | +| 参数名 | 默认值 | 说明 | +| ---------- | ---- | ---- | +| STANDARD | 0 | 标准格式 | +| SIMPLIFIED | 1 | 简易格式 | ## NetType @@ -1671,13 +1671,13 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 参数名 | 默认值 | 说明 | -| ------------------- | ---- | -------- | -| CELLULAR | 1 | 数据网络 | -| METERED_WIFI | 2 | 热点WIFI | -| NOT_METERED_WIFI | 4 | 非热点WIFI | -| WIFI | 6 | WIFI | -| CELLULAR_AND_WIFI | 7 | 数据网络和WIFI | +| 参数名 | 默认值 | 说明 | +| ----------------- | ---- | --------- | +| CELLULAR | 1 | 数据网络 | +| METERED_WIFI | 2 | 热点WIFI | +| NOT_METERED_WIFI | 4 | 非热点WIFI | +| WIFI | 6 | WIFI | +| CELLULAR_AND_WIFI | 7 | 数据网络和WIFI | ## Order @@ -1685,13 +1685,13 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 参数名 | 默认值 | 说明 | -| ------------------- | ---- | -------- | -| DOWNLOAD | 1 | 下载 | -| INSTALL | 2 | 安装 | -| DOWNLOAD_AND_INSTALL | 3 | 下载并安装 | -| APPLY | 4 | 生效 | -| INSTALL_AND_APPLY | 6 | 安装并生效 | +| 参数名 | 默认值 | 说明 | +| -------------------- | ---- | ----- | +| DOWNLOAD | 1 | 下载 | +| INSTALL | 2 | 安装 | +| DOWNLOAD_AND_INSTALL | 3 | 下载并安装 | +| APPLY | 4 | 生效 | +| INSTALL_AND_APPLY | 6 | 安装并生效 | ## UpgradeStatus @@ -1699,18 +1699,18 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 参数名 | 默认值 | 说明 | -| ------------------- | ---- | -------- | -| WAITING_DOWNLOAD | 20 | 待下载 | -| DOWNLOADING | 21 | 下载中 | -| DOWNLOAD_PAUSED | 22 | 下载暂停 | -| DOWNLOAD_FAIL | 23 | 下载失败 | -| WAITING_INSTALL | 30 | 待安装 | -| UPDATING | 31 | 更新中 | -| WAITING_APPLY | 40 | 待生效 | -| APPLYING | 21 | 生效中 | -| UPGRADE_SUCCESS | 50 | 升级成功 | -| UPGRADE_FAIL | 51 | 升级失败 | +| 参数名 | 默认值 | 说明 | +| ---------------- | ---- | ---- | +| WAITING_DOWNLOAD | 20 | 待下载 | +| DOWNLOADING | 21 | 下载中 | +| DOWNLOAD_PAUSED | 22 | 下载暂停 | +| DOWNLOAD_FAIL | 23 | 下载失败 | +| WAITING_INSTALL | 30 | 待安装 | +| UPDATING | 31 | 更新中 | +| WAITING_APPLY | 40 | 待生效 | +| APPLYING | 21 | 生效中 | +| UPGRADE_SUCCESS | 50 | 升级成功 | +| UPGRADE_FAIL | 51 | 升级失败 | ## EventClassify @@ -1718,9 +1718,9 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 参数名 | 默认值 | 说明 | -| ------------------- | ---- | -------- | -| TASK | 0x01000000 | 任务事件 | +| 参数名 | 默认值 | 说明 | +| ---- | ---------- | ---- | +| TASK | 0x01000000 | 任务事件 | ## EventId @@ -1728,22 +1728,22 @@ localUpdater.off(eventClassifyInfo, onTaskUpdate); **系统能力**:SystemCapability.Update.UpdateService -| 参数名 | 默认值 | 说明 | -| ------------------- | ---- | -------- | -| EVENT_TASK_BASE | 0x01000000 | 任务事件 | -| EVENT_TASK_RECEIVE | 0x01000001 | 收到任务 | -| EVENT_TASK_CANCEL | 0x01000010 | 取消任务 | -| EVENT_DOWNLOAD_WAIT | 0x01000011 | 待下载 | -| EVENT_DOWNLOAD_START | 0x01000100 | 开始下载 | -| EVENT_DOWNLOAD_UPDATE | 0x01000101 | 下载进度更新 | -| EVENT_DOWNLOAD_PAUSE | 0x01000110 | 下载暂停 | -| EVENT_DOWNLOAD_RESUME | 0x01000111 | 恢复下载 | -| EVENT_DOWNLOAD_SUCCESS | 0x01001000 | 下载成功 | -| EVENT_DOWNLOAD_FAIL | 0x01001001 | 下载失败 | -| EVENT_UPGRADE_WAIT | 0x01001010 | 待升级 | -| EVENT_UPGRADE_START | 0x01001011 | 开始升级 | -| EVENT_UPGRADE_UPDATE | 0x01001100 | 升级中 | -| EVENT_APPLY_WAIT | 0x01001101 | 待生效 | -| EVENT_APPLY_START | 0x01001110 | 开始生效 | -| EVENT_UPGRADE_SUCCESS | 0x01001111 | 更新成功 | -| EVENT_UPGRADE_FAIL | 0x01010000 | 更新失败 | +| 参数名 | 默认值 | 说明 | +| ---------------------- | ---------- | ------ | +| EVENT_TASK_BASE | 0x01000000 | 任务事件 | +| EVENT_TASK_RECEIVE | 0x01000001 | 收到任务 | +| EVENT_TASK_CANCEL | 0x01000010 | 取消任务 | +| EVENT_DOWNLOAD_WAIT | 0x01000011 | 待下载 | +| EVENT_DOWNLOAD_START | 0x01000100 | 开始下载 | +| EVENT_DOWNLOAD_UPDATE | 0x01000101 | 下载进度更新 | +| EVENT_DOWNLOAD_PAUSE | 0x01000110 | 下载暂停 | +| EVENT_DOWNLOAD_RESUME | 0x01000111 | 恢复下载 | +| EVENT_DOWNLOAD_SUCCESS | 0x01001000 | 下载成功 | +| EVENT_DOWNLOAD_FAIL | 0x01001001 | 下载失败 | +| EVENT_UPGRADE_WAIT | 0x01001010 | 待升级 | +| EVENT_UPGRADE_START | 0x01001011 | 开始升级 | +| EVENT_UPGRADE_UPDATE | 0x01001100 | 升级中 | +| EVENT_APPLY_WAIT | 0x01001101 | 待生效 | +| EVENT_APPLY_START | 0x01001110 | 开始生效 | +| EVENT_UPGRADE_SUCCESS | 0x01001111 | 更新成功 | +| EVENT_UPGRADE_FAIL | 0x01010000 | 更新失败 | diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md index b66dec8654..c38f05907f 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md @@ -34,9 +34,9 @@ Image(src: string | PixelMap | Resource) **参数:** -| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | -| ------ | ------------------------------------------------------------ | ---- | ------ | ------------------------------------------------------------ | -| src | string\| [PixelMap](../apis/js-apis-image.md#pixelmap7)\| [Resource](../../ui/ts-types.md#resource类型) | 是 | - | 图片的数据源,支持本地图片和网络图片。
当使用相对路径引用图片资源时,例如`Image("common/test.jpg")`,不支持该Image组件被跨包/跨模块调用,建议使用`$r`方式来管理需全局使用的图片资源。
\- 支持的图片格式包括png、jpg、bmp、svg和gif。
\- 支持`Base64`字符串。格式`data:image/[png\|jpeg\|bmp\|webp];base64,[base64 data]`, 其中`[base64 data]`为`Base64`字符串数据。
\- 支持`dataability://`路径前缀的字符串,用于访问通过data ability提供的图片路径。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ---- | ---------------------------------------- | ---- | ---- | ---------------------------------------- | +| src | string\| [PixelMap](../apis/js-apis-image.md#pixelmap7)\| [Resource](../../ui/ts-types.md#resource类型) | 是 | - | 图片的数据源,支持本地图片和网络图片。
当使用相对路径引用图片资源时,例如`Image("common/test.jpg")`,不支持该Image组件被跨包/跨模块调用,建议使用`$r`方式来管理需全局使用的图片资源。
\- 支持的图片格式包括png、jpg、bmp、svg和gif。
\- 支持`Base64`字符串。格式`data:image/[png\|jpeg\|bmp\|webp];base64,[base64 data]`, 其中`[base64 data]`为`Base64`字符串数据。
\- 支持`dataability://`路径前缀的字符串,用于访问通过data ability提供的图片路径。 | ## 属性 @@ -45,7 +45,7 @@ Image(src: string | PixelMap | Resource) | 名称 | 参数类型 | 默认值 | 描述 | | --------------------- | ---------------------------------------- | ------------------------ | ---------------------------------------- | | alt | string \| [Resource](../../ui/ts-types.md#resource类型) | - | 加载时显示的占位图,支持本地图片和网络图片。 | -| objectFit | ImageFit | ImageFit.Cover | 设置图片的缩放类型。 | +| objectFit | ImageFit | ImageFit.Cover | 设置图片的缩放类型。 | | objectRepeat | [ImageRepeat](ts-appendix-enums.md#imagerepeat) | NoRepeat | 设置图片的重复样式。
> **说明:**
> - svg类型图源不支持该属性。 | | interpolation | [ImageInterpolation](#imageinterpolation) | ImageInterpolation.None | 设置图片的插值效果,仅针对图片放大插值。
> **说明:**
> - svg类型图源不支持该属性。
> - PixelMap资源不支持该属性。 | | renderMode | [ImageRenderMode](#imagerendermode) | ImageRenderMode.Original | 设置图片渲染的模式。
> **说明:**
> - svg类型图源不支持该属性。 | -- GitLab From e12c0e98f2e4f374fdef222d658b4d3a6f5aa929 Mon Sep 17 00:00:00 2001 From: wusongqing Date: Thu, 28 Jul 2022 17:43:21 +0800 Subject: [PATCH 547/868] update docs against 6623 Signed-off-by: wusongqing --- .../reference/apis/js-apis-router.md | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-router.md b/en/application-dev/reference/apis/js-apis-router.md index c9b06ebe5b..ac9435450c 100644 --- a/en/application-dev/reference/apis/js-apis-router.md +++ b/en/application-dev/reference/apis/js-apis-router.md @@ -29,7 +29,7 @@ Navigates to a specified page in the application. **Example** - ```js +```js router.push({ url: 'pages/routerpage2', params: { @@ -39,7 +39,7 @@ router.push({ }, }, }); - ``` +``` ## router.push9+ push(options: RouterOptions, mode: RouterMode): void @@ -56,7 +56,7 @@ Navigates to a specified page in the application. **Example** - ```js +```js router.push({ url: 'pages/routerpage2/routerpage2', params: { @@ -66,11 +66,11 @@ router.push({ }, }, },router.RouterMode.Standard); - ``` +``` ## router.replace -replace(options: RouterOptions, mode?: RouterMode): void +replace(options: RouterOptions): void Replaces the current page with another one in the application and destroys the current page. @@ -83,14 +83,14 @@ Replaces the current page with another one in the application and destroys the c **Example** - ```js +```js router.replace({ url: 'pages/detail', params: { data1: 'message', }, }); - ``` +``` ## router.replace9+ @@ -108,14 +108,14 @@ Replaces the current page with another one in the application and destroys the c **Example** - ```js +```js router.replace({ url: 'pages/detail/detail', params: { data1: 'message', }, }, router.RouterMode.Standard); - ``` +``` ## router.back @@ -132,9 +132,9 @@ Returns to the previous page or a specified page. **Example** - ```js -router.back({uri:'pages/detail'}); - ``` +```js +router.back({url:'pages/detail'}); +``` ## router.clear @@ -146,9 +146,9 @@ Clears all historical pages in the stack and retains only the current page at th **Example** - ```js +```js router.clear(); - ``` +``` ## router.getLength @@ -164,10 +164,10 @@ Obtains the number of pages in the current stack. | string | Number of pages in the stack. The maximum value is **32**.| **Example** - ```js +```js var size = router.getLength(); console.log('pages stack size = ' + size); - ``` +``` ## router.getState @@ -242,9 +242,9 @@ Disables the display of a confirm dialog box before returning to the previous pa **System capability**: SystemCapability.ArkUI.ArkUI.Full **Example** - ```js +```js router.disableAlertBeforeBackPage(); - ``` +``` ## router.getParams @@ -270,7 +270,7 @@ router.getParams(); Describes the page routing options. -**System capability**: SystemCapability.ArkUI.ArkUI.Full +**System capability**: SystemCapability.ArkUI.ArkUI.Lite | Name | Type | Mandatory| Description | | ------ | ------ | ---- | ------------------------------------------------------------ | @@ -314,7 +314,7 @@ export default { // detail page export default { onInit() { - console.info('showData1:' + router.getParams().data1); + console.info('showData1:' + router.getParams()[data1]); } } ``` -- GitLab From c31daf2520f861cfaf20dd7f7d254647d9fe2fa7 Mon Sep 17 00:00:00 2001 From: wangyb0625 Date: Thu, 28 Jul 2022 17:44:03 +0800 Subject: [PATCH 548/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9deviceInfo=20Signed-o?= =?UTF-8?q?ff-by:=20wangyb0625=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/application-dev/reference/apis/js-apis-device-manager.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-device-manager.md b/zh-cn/application-dev/reference/apis/js-apis-device-manager.md index a2b19045d6..adc870047f 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-device-manager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-device-manager.md @@ -430,7 +430,7 @@ unAuthenticateDevice(deviceInfo: DeviceInfo): void - 示例: ```js - dmInstance.unAuthenticateDevice(deviceinfo); + dmInstance.unAuthenticateDevice(deviceInfo); ``` -- GitLab From 5be375247738a9362c3e24476c1b85b012d5cad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Thu, 28 Jul 2022 09:48:17 +0000 Subject: [PATCH 549/868] =?UTF-8?q?master=EF=BC=9Adatabase/database-mdds-g?= =?UTF-8?q?uidelines.md=EF=BC=9A=E5=88=86=E5=B8=83=E5=BC=8F=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9C=8D=E5=8A=A1=E6=8C=87=E5=8D=97=E4=BC=98=E5=8C=96?= =?UTF-8?q?=EF=BC=8C=E9=9C=80=E5=90=8C=E6=AD=A5=E7=BF=BB=E8=AF=91=20Signed?= =?UTF-8?q?-off-by:=20@ge-yafang=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../database/database-mdds-guidelines.md | 47 ++++++++++--------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/zh-cn/application-dev/database/database-mdds-guidelines.md b/zh-cn/application-dev/database/database-mdds-guidelines.md index 057a6035fe..4414dbbe71 100644 --- a/zh-cn/application-dev/database/database-mdds-guidelines.md +++ b/zh-cn/application-dev/database/database-mdds-guidelines.md @@ -8,19 +8,18 @@ ## 接口说明 具体分布式数据相关功能接口请见[分布式数据管理](../reference/apis/js-apis-distributed-data.md)。 -OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种功能: **表1** 分布式数据服务关键API功能介绍 -| 功能分类 | 接口名称 | 描述 | -| -------------------------- | ------------------------------------------------------------ | ----------------------------------------------- | -| 分布式数据库创建。 | createKVManager(config: KVManagerConfig, callback: AsyncCallback<KVManager>): void
createKVManager(config: KVManagerConfig): Promise<KVManager> | 创建一个KVManager对象实例,用于管理数据库对象。 | -| 分布式数据库创建。 | getKVStore<T extends KVStore>(storeId: string, options: Options, callback: AsyncCallback<T>): void
getKVStore<T extends KVStore>(storeId: string, options: Options): Promise<T> | 指定Options和storeId,创建并获取KVStore数据库。 | -| 分布式数据增、删、改、查。 | put(key: string, value: Uint8Array \| string \| number \| boolean, callback: AsyncCallback<void>): void
put(key: string, value: Uint8Array \| string \| number \| boolean): Promise<void> | 插入和更新数据。 | -| 分布式数据增、删、改、查。 | delete(key: string, callback: AsyncCallback<void>): void
delete(key: string): Promise<void> | 删除数据。 | -| 分布式数据增、删、改、查。 | get(key: string, callback: AsyncCallback<Uint8Array \| string \| boolean \| number>): void
get(key: string): Promise<Uint8Array \| string \| boolean \| number> | 查询数据。 | -| 订阅分布式数据变化。 | on(event: 'dataChange', type: SubscribeType, observer: Callback<ChangeNotification>): void
on(event: 'syncComplete', syncCallback: Callback<Array<[string, number]>>): void | 订阅数据库中数据的变化。 | -| 分布式数据同步。 | sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void | 在手动模式下,触发数据库同步。 | +| 接口名称 | 描述 | +| ------------------------------------------------------------ | ----------------------------------------------- | +| createKVManager(config:KVManagerConfig,callback:AsyncCallback<KVManager>):void
createKVManager(config:KVManagerConfig):Promise<KVManager> | 创建一个`KVManager`对象实例,用于管理数据库对象。 | +| getKVStore<TextendsKVStore>(storeId:string,options:Options,callback:AsyncCallback<T>):void
getKVStore<TextendsKVStore>(storeId:string,options:Options):Promise<T> | 指定`Options`和`storeId`,创建并获取`KVStore`数据库。 | +| put(key:string,value:Uint8Array\|string\|number\|boolean,callback:AsyncCallback<void>):void
put(key:string,value:Uint8Array\|string\|number\|boolean):Promise<void> | 插入和更新数据。 | +| delete(key:string,callback:AsyncCallback<void>):void
delete(key:string):Promise<void> | 删除数据。 | +| get(key:string,callback:AsyncCallback<Uint8Array\|string\|boolean\|number>):void
get(key:string):Promise<Uint8Array\|string\|boolean\|number> | 查询数据。 | +| on(event:'dataChange',type:SubscribeType,observer:Callback<ChangeNotification>):void
on(event:'syncComplete',syncCallback:Callback<Array<[string,number]>>):void | 订阅数据库中数据的变化。 | +| sync(deviceIdList:string[],mode:SyncMode,allowedDelayMs?:number):void | 在手动模式下,触发数据库同步。 | @@ -35,7 +34,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种 ``` 2. 根据配置构造分布式数据库管理类实例。 - 1. 根据应用上下文创建KvManagerConfig对象。 + 1. 根据应用上下文创建`kvManagerConfig`对象。 2. 创建分布式数据库管理器实例。 以下为创建分布式数据库管理器的代码示例: @@ -64,7 +63,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种 3. 获取/创建分布式数据库。 1. 声明需要创建的分布式数据库ID描述。 - 2. 创建分布式数据库,建议关闭自动同步功能(autoSync:false),需要同步时主动调用sync接口。 + 2. 创建分布式数据库,建议关闭自动同步功能(`autoSync:false`),需要同步时主动调用`sync`接口。 以下为创建分布式数据库的代码示例: ```js @@ -91,9 +90,10 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种 } ``` - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 组网设备间同步数据的场景,建议在应用启动时打开分布式数据库,获取数据库的句柄。在该句柄(如上例中的kvStore)的生命周期内无需重复创建数据库,可直接使用句柄对数据库进行数据的插入等操作。 - + > **说明:** + > + > 组网设备间同步数据的场景,建议在应用启动时打开分布式数据库,获取数据库的句柄。在该句柄(如示例中的`kvStore`)的生命周期内无需重复创建数据库,可直接使用句柄对数据库进行数据的插入等操作。 + 4. 订阅分布式数据变化。 以下为订阅单版本分布式数据库数据变化通知的代码示例: ```js @@ -103,7 +103,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种 ``` 5. 将数据写入分布式数据库。 - 1. 构造需要写入分布式数据库的Key(键)和Value(值)。 + 1. 构造需要写入分布式数据库的`Key`(键)和`Value`(值)。 2. 将键值数据写入分布式数据库。 以下为将字符串类型键值数据写入分布式数据库的代码示例: @@ -125,7 +125,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种 ``` 6. 查询分布式数据库数据。 - 1. 构造需要从单版本分布式数据库中查询的Key(键)。 + 1. 构造需要从单版本分布式数据库中查询的`Key`(键)。 2. 从单版本分布式数据库中获取数据。 以下为从分布式数据库中查询字符串类型数据的代码示例: @@ -149,9 +149,13 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种 ``` 7. 同步数据到其他设备。 - 1.选择同一组网环境下的设备以及同步模式,进行数据同步。 + 选择同一组网环境下的设备以及同步模式,进行数据同步。 - 以下为单版本分布式数据库进行数据同步的代码示例,其中deviceIds可由deviceManager调用getTrustedDeviceListSync()方法得到,1000表示最大延迟时间为1000ms: + > **说明**: + > + > 其中`deviceManager`模块的接口均为系统接口。 + + 以下为单版本分布式数据库进行数据同步的代码示例: ```js import deviceManager from '@ohos.distributedHardware.deviceManager'; @@ -160,7 +164,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种 deviceManager.createDeviceManager("bundleName", (err, value) => { if (!err) { devManager = value; - // get deviceIds + // deviceIds由deviceManager调用getTrustedDeviceListSync方法得到 let deviceIds = []; if (devManager != null) { var devices = devManager.getTrustedDeviceListSync(); @@ -169,6 +173,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种 } } try{ + // 1000表示最大延迟时间为1000ms kvStore.sync(deviceIds, distributedData.SyncMode.PUSH_ONLY, 1000); }catch (e) { console.log("An unexpected error occurred. Error:" + e); @@ -181,4 +186,4 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种 - [`DistributedDataGobang`:分布式五子棋(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/data/DistributedDataGobang) - [`DDMQuery`:结果集与谓词(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/data/DDMQuery) - [`KvStore`:分布式数据库(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/data/Kvstore) -- [分布式数据库(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Data/JsDistributedData) +- [分布式数据库(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Data/JsDistributedData) \ No newline at end of file -- GitLab From 19c412a84ee2ad207a703bf3f1d7713238ee0215 Mon Sep 17 00:00:00 2001 From: gmy Date: Thu, 28 Jul 2022 17:34:08 +0800 Subject: [PATCH 550/868] update docs Signed-off-by: gmy --- .../arkui-ts/ts-basic-components-progress.md | 6 +++- .../arkui-ts/ts-basic-components-slider.md | 32 +++++++++---------- .../reference/arkui-ts/ts-container-scroll.md | 14 +++++--- 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-progress.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-progress.md index 45c6e0a64f..fc70ceca6f 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-progress.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-progress.md @@ -88,7 +88,11 @@ struct ProgressExample { Text('Capsule Progress').fontSize(9).fontColor(0xCCCCCC).width('90%') Row({ space: 40 }) { Progress({ value: 10, type: ProgressType.Capsule }).width(100).height(50) - Progress({ value: 20, total: 150, type: ProgressType.Capsule }).color(Color.Grey).value(50).width(100).height(50) + Progress({ value: 20, total: 150, type: ProgressType.Capsule }) + .color(Color.Grey) + .value(50) + .width(100) + .height(50) } }.width('100%').margin({ top: 30 }) } diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-slider.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-slider.md index e1757785d1..bc01e8bd1f 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-slider.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-slider.md @@ -33,39 +33,39 @@ Slider(value:{value?: number, min?: number, max?: number, step?: number, style?: | reverse8+ | boolean | 否 | false | 设置滑动条取值范围是否反向。 | - SliderStyle枚举说明 - | 名称 | 描述 | + | 名称 | 描述 | | -------- | -------- | - | OutSet | 滑块在滑轨上。 | - | InSet | 滑块在滑轨内。 | + | OutSet | 滑块在滑轨上。 | + | InSet | 滑块在滑轨内。 | ## 属性 不支持触摸热区设置。 -| 名称 | 参数类型 | 默认值 | 描述 | +| 名称 | 参数类型 | 默认值 | 描述 | | -------- | -------- | -------- | -------- | -| blockColor | Color | - | 设置滑块的颜色。 | -| trackColor | Color | - | 设置滑轨的背景颜色。 | -| selectedColor | Color | - | 设置滑轨的已滑动颜色。 | -| showSteps | boolean | false | 设置当前是否显示步长刻度值。 | -| showTips | boolean | false | 设置滑动时是否显示气泡提示百分比。 | +| blockColor | Color | - | 设置滑块的颜色。 | +| trackColor | Color | - | 设置滑轨的背景颜色。 | +| selectedColor | Color | - | 设置滑轨的已滑动颜色。 | +| showSteps | boolean | false | 设置当前是否显示步长刻度值。 | +| showTips | boolean | false | 设置滑动时是否显示气泡提示百分比。 | ## 事件 通用事件仅支持:OnAppear,OnDisAppear。 -| 名称 | 功能描述 | +| 名称 | 功能描述 | | -------- | -------- | -| onChange(callback: (value: number, mode: SliderChangeMode) => void) | Slider滑动时触发事件回调。
value:当前进度值。
mode:拖动状态。 | +| onChange(callback: (value: number, mode: SliderChangeMode) => void) | Slider滑动时触发事件回调。
value:当前进度值。
mode:拖动状态。 | - SliderChangeMode枚举说明 - | 名称 | 描述 | - | -------- | -------- | - | Begin | 用户开始拖动滑块。 | - | Moving | 用户拖动滑块中。 | - | End | 用户结束拖动滑块。 | + | 名称 | 值 | 描述 | + | -------- | -------- | -------- | + | Begin | 0 | 用户开始拖动滑块。 | + | Moving | 1 | 用户拖动滑块中。 | + | End | 2 | 用户结束拖动滑块。 | ## 示例 diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-scroll.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-scroll.md index 1eae6ea455..08577a7f5c 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-container-scroll.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-scroll.md @@ -173,14 +173,20 @@ struct ScrollExample { Column() { ForEach(this.arr, (item) => { Text(item.toString()) - .width('90%').height(150).backgroundColor(0xFFFFFF) - .borderRadius(15).fontSize(16).textAlign(TextAlign.Center) + .width('90%') + .height(150) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(16) + .textAlign(TextAlign.Center) .margin({ top: 10 }) }, item => item) }.width('100%') } - .scrollable(ScrollDirection.Vertical).scrollBar(BarState.On) - .scrollBarColor(Color.Gray).scrollBarWidth(30) + .scrollable(ScrollDirection.Vertical) + .scrollBar(BarState.On) + .scrollBarColor(Color.Gray) + .scrollBarWidth(30) .onScroll((xOffset: number, yOffset: number) => { console.info(xOffset + ' ' + yOffset) }) -- GitLab From d8d1ddd5bde00a5e64db51ffaa72e88d4f709fc6 Mon Sep 17 00:00:00 2001 From: wusongqing Date: Thu, 28 Jul 2022 18:04:29 +0800 Subject: [PATCH 551/868] add js-apis-application-abilityManager EN Signed-off-by: wusongqing --- .../js-apis-application-abilityManager.md | 266 ++++++++++++++++++ 1 file changed, 266 insertions(+) create mode 100644 en/application-dev/reference/apis/js-apis-application-abilityManager.md diff --git a/en/application-dev/reference/apis/js-apis-application-abilityManager.md b/en/application-dev/reference/apis/js-apis-application-abilityManager.md new file mode 100644 index 0000000000..2a7827180f --- /dev/null +++ b/en/application-dev/reference/apis/js-apis-application-abilityManager.md @@ -0,0 +1,266 @@ +# AbilityManager + +The **AbilityManager** module provides APIs for obtaining, adding, and modifying ability running information and state information. + +> **NOTE** +> +> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> The APIs of this module are system APIs and cannot be called by third-party applications. + +# Modules to Import + +```js +import AbilityManager from '@ohos.application.abilityManager' +``` + +## AbilityState + +Enumerates the ability states. + +**System capability**: SystemCapability.Ability.AbilityRuntime.Core + +| Name| Value| Description| +| -------- | -------- | -------- | +| INITIAL | 0 | The ability is in the initial state.| +| FOREGROUND | 9 | The ability is in the foreground state. | +| BACKGROUND | 10 | The ability is in the background state. | +| FOREGROUNDING | 11 | The ability is in the foregrounding state. | +| BACKGROUNDING | 12 | The ability is in the backgrounding state. | + +## updateConfiguration + +updateConfiguration(config: Configuration, callback: AsyncCallback\): void + +Updates the configuration. This API uses an asynchronous callback to return the result. + +**Permission required**: ohos.permission.UPDATE_CONFIGURATION + +**System capability**: SystemCapability.Ability.AbilityRuntime.Core + +**Parameters** + +| Name | Type | Mandatory | Description | +| --------- | ---------------------------------------- | ---- | -------------- | +| config | Configuration | Yes | New configuration.| +| callback | AsyncCallback\ | Yes | Callback used to return the result. | + +**Example** + +```js +import abilitymanager from '@ohos.application.abilityManager'; + +var config = { + language: 'chinese' +} + +abilitymanager.updateConfiguration(config, () => { + console.log('------------ updateConfiguration -----------'); +}) +``` + +## updateConfiguration + +updateConfiguration(config: Configuration): Promise\ + +Updates the configuration. This API uses a promise to return the result. + +**Permission required**: ohos.permission.UPDATE_CONFIGURATION + +**System capability**: SystemCapability.Ability.AbilityRuntime.Core + +**Parameters** + +| Name | Type | Mandatory | Description | +| --------- | ---------------------------------------- | ---- | -------------- | +| config | Configuration | Yes | New configuration.| + +**Return value** + +| Type | Description | +| ---------------------------------------- | ------- | +| Promise\ | Promise used to return the result.| + +**Example** + +```js +import abilitymanager from '@ohos.application.abilityManager'; + +var config = { + language: 'chinese' +} + +abilitymanager.updateConfiguration(config).then(() => { + console.log('updateConfiguration success'); +}).catch((err) => { + console.log('updateConfiguration fail'); +}) +``` + +## getAbilityRunningInfos + +getAbilityRunningInfos(callback: AsyncCallback\>): void + +Obtains the ability running information. This API uses an asynchronous callback to return the result. + +**Required permissions**: ohos.permission.GET_RUNNING_INFO + +**System capability**: SystemCapability.Ability.AbilityRuntime.Core + +**Parameters** + +| Name | Type | Mandatory | Description | +| --------- | ---------------------------------------- | ---- | -------------- | +| callback | AsyncCallback\> | Yes | Callback used to return the result. | + +**Example** + +```js +import abilitymanager from '@ohos.application.abilityManager'; + +abilitymanager.getAbilityRunningInfos((err,data) => { + console.log("getAbilityRunningInfos err: " + err + " data: " + JSON.stringify(data)); +}); +``` + +## getAbilityRunningInfos + +getAbilityRunningInfos(): Promise\> + +Obtains the ability running information. This API uses a promise to return the result. + +**Required permissions**: ohos.permission.GET_RUNNING_INFO + +**System capability**: SystemCapability.Ability.AbilityRuntime.Core + +**Return value** + +| Type | Description | +| ---------------------------------------- | ------- | +| Promise\> | Promise used to return the result.| + +**Example** + +```js +import abilitymanager from '@ohos.application.abilityManager'; + +abilitymanager.getAbilityRunningInfos().then((data) => { + console.log("getAbilityRunningInfos data: " + JSON.stringify(data)) +}).catch((err) => { + console.log("getAbilityRunningInfos err: " + err) +}); +``` + +## getExtensionRunningInfos9+ + +getExtensionRunningInfos(upperLimit: number, callback: AsyncCallback\>): void + +Obtains the extension running information. This API uses an asynchronous callback to return the result. + +**Required permissions**: ohos.permission.GET_RUNNING_INFO + +**System capability**: SystemCapability.Ability.AbilityRuntime.Core + +**Parameters** + +| Name | Type | Mandatory | Description | +| --------- | ---------------------------------------- | ---- | -------------- | +| upperLimit | number | Yes| Maximum number of messages that can be obtained.| +| callback | AsyncCallback\> | Yes | Callback used to return the result. | + +**Example** + +```js +import abilitymanager from '@ohos.application.abilityManager'; + +var upperLimit = 0; + +abilitymanager.getExtensionRunningInfos(upperLimit, (err,data) => { + console.log("getExtensionRunningInfos err: " + err + " data: " + JSON.stringify(data)); +}); +``` + +## getExtensionRunningInfos9+ + +getExtensionRunningInfos(upperLimit: number): Promise\> + +Obtains the extension running information. This API uses a promise to return the result. + +**Required permissions**: ohos.permission.GET_RUNNING_INFO + +**System capability**: SystemCapability.Ability.AbilityRuntime.Core + +**Parameters** + +| Name | Type | Mandatory | Description | +| --------- | ---------------------------------------- | ---- | -------------- | +| upperLimit | number | Yes| Maximum number of messages that can be obtained.| + +**Return value** + +| Type | Description | +| ---------------------------------------- | ------- | +| Promise\> | Promise used to return the result.| + +**Example** + +```js +import abilitymanager from '@ohos.application.abilityManager'; + +var upperLimit = 0; + +abilitymanager.getExtensionRunningInfos(upperLimit).then((data) => { + console.log("getAbilityRunningInfos data: " + JSON.stringify(data)); +}).catch((err) => { + console.log("getAbilityRunningInfos err: " + err); +}) +``` + +## getTopAbility9+ + +getTopAbility(callback: AsyncCallback\): void; + +Obtains the top ability, which is the ability that has the window focus. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Ability.AbilityRuntime.Core + +**Parameters** + +| Name | Type | Mandatory | Description | +| --------- | ---------------------------------------- | ---- | -------------- | +| callback | AsyncCallback\ | Yes | Callback used to return the result. | + +**Example** + +```js +import abilitymanager from '@ohos.application.abilityManager'; + +abilitymanager.getTopAbility((err,data) => { + console.log("getTopAbility err: " + err + " data: " + JSON.stringify(data)); +}); +``` + +## getTopAbility9+ + +getTopAbility(): Promise\; + +Obtains the top ability, which is the ability that has the window focus. This API uses a promise to return the result. + +**System capability**: SystemCapability.Ability.AbilityRuntime.Core + +**Return value** + +| Type | Description | +| ---------------------------------------- | ------- | +| Promise\| Promise used to return the result.| + +**Example** + +```js +import abilitymanager from '@ohos.application.abilityManager'; + +abilitymanager.getTopAbility().then((data) => { + console.log("getTopAbility data: " + JSON.stringify(data)); +}).catch((err) => { + console.log("getTopAbility err: " + err); +}) +``` -- GitLab From c704725bdccd2455e806958ce491f4963f8ed5e1 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 28 Jul 2022 10:17:54 +0000 Subject: [PATCH 552/868] update zh-cn/application-dev/reference/apis/js-apis-radio.md. Signed-off-by: zengyawen --- zh-cn/application-dev/reference/apis/js-apis-radio.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-radio.md b/zh-cn/application-dev/reference/apis/js-apis-radio.md index 6e8a6b65b2..90f0cbfd4f 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-radio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-radio.md @@ -1753,7 +1753,7 @@ promise.then(data => { | 名称 | 类型 | 说明 | | ----------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| networkType | [NetworkType](#networkType) | 获取服务单元的网络类型。 | +| networkType | [NetworkType](#networktype) | 获取服务单元的网络类型。 | | isCamped | boolean | 获取服务单元的状态。 | | timeStamp | number | 获取单元格信息时获取时间戳。 | | signalInformation | [SignalInformation](#signalinformation) | 信号信息。 | -- GitLab From a6fe39d15ec2f0d7d39881d9802645378fba3897 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 28 Jul 2022 10:19:42 +0000 Subject: [PATCH 553/868] update zh-cn/application-dev/reference/apis/js-apis-audio.md. Signed-off-by: zengyawen --- zh-cn/application-dev/reference/apis/js-apis-audio.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-audio.md b/zh-cn/application-dev/reference/apis/js-apis-audio.md index b79b92ed7f..bb42c3e74f 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-audio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-audio.md @@ -2092,7 +2092,7 @@ on(type: "audioRendererChange", callback: Callback<AudioRendererChangeInfoArr | 名称 | 类型 | 必填 | 说明 | | -------- | ---------- | --------- | ------------------------------------------------------------------------ | | type | string | 是 | 事件类型,支持的事件`'audioRendererChange'`:当音频渲染器发生更改时触发。 | -| callback | Callback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarry9)> | 是 | 回调函数。 | +| callback | Callback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是 | 回调函数。 | **示例:** ``` @@ -2154,7 +2154,7 @@ on(type: "audioCapturerChange", callback: Callback<AudioCapturerChangeInfoArr | 名称 | 类型 | 必填 | 说明 | | -------- | ------- | --------- | ------------------------------------------------------------------- ---- | | type | string | 是 | 事件类型,支持的事件`'audioCapturerChange'`:当音频采集器发生更改时触发。 | -| callback | Callback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarry9)> | 是 | 回调函数。 | +| callback | Callback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是 | 回调函数。 | **示例:** ``` @@ -2353,7 +2353,7 @@ audioStreamManagerCB.on('audioRendererChange', (AudioRendererChangeInfoArray) = | -------------------| ----------------------------------------- | ---- | ---- | ---------------------------- | | streamId | number | 是 | 否 | 音频流唯一id。 | | clientUid | number | 是 | 否 | 音频渲染器客户端应用程序的Uid。
此接口为系统接口,三方应用不支持调用。 | -| capturerInfo | [AudioCapturerInfo](#audiocaptureinfo8) | 是 | 否 | 音频渲染器信息。 | +| capturerInfo | [AudioCapturerInfo](#audiocapturerinfo8) | 是 | 否 | 音频渲染器信息。 | | capturerState | [AudioState](#audiostate) | 是 | 否 | 音频状态。
此接口为系统接口,三方应用不支持调用。| ## AudioCapturerChangeInfoArray9+ -- GitLab From d11a24ac9fac18bc0c295293fc7fe6acf3ac3941 Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 10:27:21 +0000 Subject: [PATCH 554/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E9=93=BE=E6=8E=A5=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/hdi-apis/pin__auth_2_i_executor_8idl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_8idl.md b/zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_8idl.md index 66e82d37d3..b642de4759 100644 --- a/zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_8idl.md +++ b/zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_8idl.md @@ -15,7 +15,7 @@ | 类 | 描述 | | -------- | -------- | -| [IExecutor](interface_i_executor.md) | 定义执行器接口,用于获取执行器,获取凭据模版信息,注册人脸特征模版,进行用户人脸认证,删除人脸特征模版等。 [更多...](interface_i_executor.md) | +| [IExecutor](interface_pin_i_executor.md) | 定义执行器标准API接口。接口可用于获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。 [更多...](interface_pin_i_executor.md) | ### 变量 -- GitLab From 41ef1efe0393243c46cd2d84dfa1a2d46565b266 Mon Sep 17 00:00:00 2001 From: liu-binjun Date: Wed, 27 Jul 2022 20:47:29 +0800 Subject: [PATCH 555/868] bugfix:fix doc errors Signed-off-by: liu-binjun --- .../reference/apis/js-apis-geolocation.md | 1260 +++++++++++++---- .../reference/apis/js-apis-geolocation.md | 1246 ++++++++++++---- 2 files changed, 1927 insertions(+), 579 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-geolocation.md b/en/application-dev/reference/apis/js-apis-geolocation.md index 01a012065a..d08cc7aafb 100644 --- a/en/application-dev/reference/apis/js-apis-geolocation.md +++ b/en/application-dev/reference/apis/js-apis-geolocation.md @@ -8,8 +8,7 @@ Location services provide basic functions such as GNSS positioning, network posi ## Modules to Import - -``` +```js import geolocation from '@ohos.geolocation'; ``` @@ -23,7 +22,8 @@ Registers a listener for location changes with a location request initiated. **System capability**: SystemCapability.Location.Location.Core -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | type | string | Yes| Event type. The value **locationChange** indicates a location change event.| @@ -31,9 +31,9 @@ Registers a listener for location changes with a location request initiated. | callback | Callback<[Location](#location)> | Yes| Callback used to return the location change event.| -- Example +**Example** - ``` + ```js var requestInfo = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0}; var locationChange = (location) => { console.log('locationChanger: data: ' + JSON.stringify(location)); @@ -52,16 +52,17 @@ Unregisters the listener for location changes with the corresponding location re **System capability**: SystemCapability.Location.Location.Core -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | type | string | Yes| Event type. The value **locationChange** indicates a location change event.| | callback | Callback<[Location](#location)> | No| Callback used to return the location change event.| -- Example +**Example** - ``` + ```js var requestInfo = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0}; var locationChange = (location) => { console.log('locationChanger: data: ' + JSON.stringify(location)); @@ -81,18 +82,19 @@ Registers a listener for location service status change events. **System capability**: SystemCapability.Location.Location.Core -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | type | string | Yes| Event type. The value **locationServiceState** indicates a location service status change event.| | callback | Callback<boolean> | Yes| Callback used to return the location service status change event.| -- Example +**Example** - ``` + ```js var locationServiceState = (state) => { - console.log('locationServiceState: ' + state); + console.log('locationServiceState: ' + JSON.stringify(state)); } geolocation.on('locationServiceState', locationServiceState); ``` @@ -108,18 +110,19 @@ Unregisters the listener for location service status change events. **System capability**: SystemCapability.Location.Location.Core -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | type | string | Yes| Event type. The value **locationServiceState** indicates a location service status change event.| | callback | Callback<boolean> | No| Callback used to return the location service status change event.| -- Example +**Example** - ``` + ```js var locationServiceState = (state) => { - console.log('locationServiceState: state: ' + state); + console.log('locationServiceState: state: ' + JSON.stringify(state)); } geolocation.on('locationServiceState', locationServiceState); geolocation.off('locationServiceState', locationServiceState); @@ -136,7 +139,8 @@ Registers a listener for cached GNSS location reports. **System capability**: SystemCapability.Location.Location.Gnss -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | type | string | Yes| Event type. The value **cachedGnssLocationsReporting** indicates reporting of cached GNSS locations.| @@ -144,11 +148,11 @@ Registers a listener for cached GNSS location reports. | callback | Callback<boolean> | Yes| Callback used to return cached GNSS locations.| -- Example +**Example** - ``` + ```js var cachedLocationsCb = (locations) => { - console.log('cachedGnssLocationsReporting: locations: ' + locations); + console.log('cachedGnssLocationsReporting: locations: ' + JSON.stringify(locations)); } var requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true}; geolocation.on('cachedGnssLocationsReporting', requestInfo, cachedLocationsCb); @@ -165,18 +169,19 @@ Unregisters the listener for cached GNSS location reports. **System capability**: SystemCapability.Location.Location.Gnss -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | type | string | Yes| Event type. The value **cachedGnssLocationsReporting** indicates reporting of cached GNSS locations.| | callback | Callback<boolean> | No| Callback used to return cached GNSS locations.| -- Example +**Example** - ``` + ```js var cachedLocationsCb = (locations) => { - console.log('cachedGnssLocationsReporting: locations: ' + locations); + console.log('cachedGnssLocationsReporting: locations: ' + JSON.stringify(locations)); } var requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true}; geolocation.on('cachedGnssLocationsReporting', requestInfo, cachedLocationsCb); @@ -194,18 +199,19 @@ Registers a listener for GNSS satellite status change events. **System capability**: SystemCapability.Location.Location.Gnss -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | type | string | Yes| Event type. The value **gnssStatusChange** indicates a GNSS satellite status change.| | callback | Callback<SatelliteStatusInfo> | Yes| Callback used to return GNSS satellite status changes.| -- Example +**Example** - ``` + ```js var gnssStatusCb = (satelliteStatusInfo) => { - console.log('gnssStatusChange: ' + satelliteStatusInfo); + console.log('gnssStatusChange: ' + JSON.stringify(satelliteStatusInfo)); } geolocation.on('gnssStatusChange', gnssStatusCb); ``` @@ -221,17 +227,18 @@ Unregisters the listener for GNSS satellite status change events. **System capability**: SystemCapability.Location.Location.Gnss -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | type | string | Yes| Event type. The value **gnssStatusChange** indicates a GNSS satellite status change.| | callback | Callback<SatelliteStatusInfo> | No| Callback used to return GNSS satellite status changes.| -- Example +**Example** - ``` + ```js var gnssStatusCb = (satelliteStatusInfo) => { - console.log('gnssStatusChange: ' + satelliteStatusInfo); + console.log('gnssStatusChange: ' + JSON.stringify(satelliteStatusInfo)); } geolocation.on('gnssStatusChange', gnssStatusCb); geolocation.off('gnssStatusChange', gnssStatusCb); @@ -248,18 +255,19 @@ Registers a listener for GNSS NMEA message change events. **System capability**: SystemCapability.Location.Location.Gnss -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | type | string | Yes| Event type. The value **nmeaMessageChange** indicates a GNSS NMEA message change.| | callback | Callback<string> | Yes| Callback used to return GNSS NMEA message changes.| -- Example +**Example** - ``` + ```js var nmeaCb = (str) => { - console.log('nmeaMessageChange: ' + str); + console.log('nmeaMessageChange: ' + JSON.stringify(str)); } geolocation.on('nmeaMessageChange', nmeaCb ); ``` @@ -275,18 +283,19 @@ Unregisters the listener for GNSS NMEA message change events. **System capability**: SystemCapability.Location.Location.Gnss -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | type | string | Yes| Event type. The value **nmeaMessageChange** indicates a GNSS NMEA message change.| | callback | Callback<string> | No| Callback used to return GNSS NMEA message changes.| -- Example +**Example** - ``` + ```js var nmeaCb = (str) => { - console.log('nmeaMessageChange: ' + str); + console.log('nmeaMessageChange: ' + JSON.stringify(str)); } geolocation.on('nmeaMessageChange', nmeaCb); geolocation.off('nmeaMessageChange', nmeaCb); @@ -303,7 +312,8 @@ Registers a listener for status change events of the specified geofence. **System capability**: SystemCapability.Location.Location.Geofence -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | type | string | Yes| Event type. The value **fenceStatusChange** indicates a geofence status change.| @@ -311,52 +321,29 @@ Registers a listener for status change events of the specified geofence. | want | WantAgent | Yes| **WantAgent** used to return geofence (entrance or exit) events.| -- Example +**Example** - ``` - import WantAgent from '@ohos.wantAgent'; - import { OperationType, WantAgentFlags } from '@ohos.wantagent'; - // WantAgent object - var wantAgent; - // getWantAgent callback - function getWantAgentCallback(err, data) { - console.info("==========================>getWantAgentCallback=======================>"); - if (err.code == 0) { - wantAgent = data; - } else { - console.info('----getWantAgent failed!----'); - } - } - // WantAgentInfo object - var wantAgentInfo = { + ```js + import geolocation from '@ohos.geolocation'; + import wantAgent from '@ohos.wantAgent'; + + let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.MainAbility" action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", - parameters: - { - mykey0: 2222, - mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", - mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], - mykey6: true, - } } ], - operationType: OperationType.START_ABILITIES, + operationType: wantAgent.OperationType.START_ABILITY, requestCode: 0, - wantAgentFlags:[WantAgentFlags.UPDATE_PRESENT_FLAG] - } - WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) - var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}}; - geolocation.on('fenceStatusChange', requestInfo, wantAgent); + wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] + }; + + wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { + var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}}; + geolocation.on('fenceStatusChange', requestInfo, wantAgentObj); + }); ``` @@ -370,60 +357,91 @@ Unregisters the listener for status change events of the specified geofence. **System capability**: SystemCapability.Location.Location.Geofence -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | type | string | Yes| Event type. The value **fenceStatusChange** indicates a geofence status change.| | request | GeofenceRequest | Yes| Geofencing request.| | want | WantAgent | Yes| **WantAgent** used to return geofence (entrance or exit) events.| -- Example +**Example** - ``` - import WantAgent from '@ohos.wantAgent'; - import { OperationType, WantAgentFlags } from '@ohos.wantagent'; - // WantAgent object - var wantAgent; - // getWantAgent callback - function getWantAgentCallback(err, data) { - console.info("==========================>getWantAgentCallback=======================>"); - if (err.code == 0) { - wantAgent = data; - } else { - console.info('----getWantAgent failed!----'); - } - } - // WantAgentInfo object - var wantAgentInfo = { + ```js + import geolocation from '@ohos.geolocation'; + import wantAgent from '@ohos.wantAgent'; + + let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.MainAbility" action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", - parameters: - { - mykey0: 2222, - mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", - mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], - mykey6: true, - } } ], - operationType: OperationType.START_ABILITIES, + operationType: wantAgent.OperationType.START_ABILITY, requestCode: 0, - wantAgentFlags:[WantAgentFlags.UPDATE_PRESENT_FLAG] + wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] + }; + + wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { + var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}}; + geolocation.on('fenceStatusChange', requestInfo, wantAgentObj); + geolocation.off('fenceStatusChange', requestInfo, wantAgentObj); + }); + ``` + + +## geolocation.on('countryCodeChange')9+ + +on(type: 'countryCodeChange', callback: Callback<CountryCode>) : void; + +Subscribe to country code information reporting events. + +**System capability**: SystemCapability.Location.Location.Core + +**Parameters** + + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | type | string | Yes| Event type. The value is "countrycodechange", which means subscribing to the submission of country code information. | + | callback | Callback<CountryCode> | Yes | Callback is used to receive the country code information report. | + + +**Example** + + ```js + var callback = (code) => { + console.log('countryCodeChange: ' + JSON.stringify(code)); + } + geolocation.on('countryCodeChange', callback); + ``` + + +## geolocation.off('countryCodeChange')9+ + +off(type: 'countryCodeChange', callback?: Callback<CountryCode>) : void; + +Unsubscribe from the country code to report events. + +**System capability**: SystemCapability.Location.Location.Core + +**Parameters** + + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | type | string | Yes| Event type. The value is "countrycodechange", which means unsubscribing to the submission of country code information. | + | callback | Callback<CountryCode> | Yes | Callback is used to receive the country code information report. | + + +**Example** + + ```js + var callback = (code) => { + console.log('countryCodeChange: ' + JSON.stringify(code)); } - WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) - var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}}; - geolocation.on('fenceStatusChange', requestInfo, wantAgent); - geolocation.off('fenceStatusChange', requestInfo, wantAgent); + geolocation.on('countryCodeChange', callback); + geolocation.off('countryCodeChange', callback); ``` @@ -438,18 +456,24 @@ Obtains the current location. This API uses an asynchronous callback to return t **System capability**: SystemCapability.Location.Location.Core -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | request | [CurrentLocationRequest](#currentlocationrequest) | No| Location request.| | callback | AsyncCallback<[Location](#location)> | Yes| Callback used to return the current location.| -- Example +**Example** - ``` + ```js var requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0}; var locationChange = (err, location) => { - console.log('locationChanger: ' + err + 'data: ' + location); + if (err) { + console.log('locationChanger: err=' + JSON.stringify(err)); + } + if (location) { + console.log('locationChanger: location=' + JSON.stringify(location)); + } }; geolocation.getCurrentLocation(requestInfo, locationChange); geolocation.getCurrentLocation(locationChange); @@ -467,22 +491,24 @@ Obtains the current location. This API uses a promise to return the result. **System capability**: SystemCapability.Location.Location.Core -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | request | [CurrentLocationRequest](#currentlocationrequest) | No| Location request.| -- Return value +**Return value** + | Name| Description| | -------- | -------- | | Promise<[Location](#location)> | Promise used to return the current location.| -- Example +**Example** - ``` + ```js var requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0}; - locationEventListener.getCurrentLocation(requestInfo).then((result) => { + geolocation.getCurrentLocation(requestInfo).then((result) => { console.log('current location: ' + JSON.stringify(result)); }); ``` @@ -498,17 +524,23 @@ Obtains the previous location. This API uses an asynchronous callback to return **System capability**: SystemCapability.Location.Location.Core -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | callback | AsyncCallback<[Location](#location)> | Yes| Callback used to return the previous location.| -- Example +**Example** - ``` + ```js geolocation.getLastLocation((err, data) => { - console.log('getLastLocation: ' + err + " data: " + JSON.stringify(data)); + if (err) { + console.log('getLastLocation: err=' + JSON.stringify(err)); + } + if (data) { + console.log('getLastLocation: data=' + JSON.stringify(data)); + } }); ``` @@ -523,15 +555,16 @@ Obtains the previous location. This API uses a promise to return the result. **System capability**: SystemCapability.Location.Location.Core -- Return value +**Return value** + | Name| Description| | -------- | -------- | | Promise<[Location](#location)> | Promise used to return the previous location.| -- Example +**Example** - ``` + ```js geolocation.getLastLocation().then((result) => { console.log('getLastLocation: result: ' + JSON.stringify(result)); }); @@ -549,17 +582,22 @@ Checks whether the location service is enabled. This API uses an asynchronous ca **System capability**: SystemCapability.Location.Location.Core -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | callback | AsyncCallback<boolean> | Yes| Callback used to return the location service status.| - -- Example +**Example** - ``` + ```js geolocation.isLocationEnabled((err, data) => { - console.log('isLocationEnabled: ' + err + " data: " + data); + if (err) { + console.log('isLocationEnabled: err=' + JSON.stringify(err)); + } + if (data) { + console.log('isLocationEnabled: data=' + JSON.stringify(data)); + } }); ``` @@ -574,14 +612,15 @@ Checks whether the location service is enabled. This API uses a promise to retur **System capability**: SystemCapability.Location.Location.Core -- Return value +**Return value** + | Name| Description| | -------- | -------- | | Promise<boolean> | Promise used to return the location service status.| -- Example +**Example** - ``` + ```js geolocation.isLocationEnabled().then((result) => { console.log('promise, isLocationEnabled: ' + result); }); @@ -599,17 +638,22 @@ Requests to enable the location service. This API uses an asynchronous callback **System capability**: SystemCapability.Location.Location.Core -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | callback | AsyncCallback<boolean> | Yes| Callback used to return the location service status.| - -- Example +**Example** - ``` + ```js geolocation.requestEnableLocation((err, data) => { - console.log('requestEnableLocation: ' + err + " data: " + data); + if (err) { + console.log('requestEnableLocation: err=' + JSON.stringify(err)); + } + if (data) { + console.log('requestEnableLocation: data=' + JSON.stringify(data)); + } }); ``` @@ -624,17 +668,17 @@ Requests to enable the location service. This API uses a promise to return the r **System capability**: SystemCapability.Location.Location.Core -- Return value +**Return value** + | Name| Description| | -------- | -------- | | Promise<boolean> | Promise used to return the location service status.| - -- Example +**Example** - ``` + ```js geolocation.requestEnableLocation().then((result) => { - console.log('promise, requestEnableLocation: ' + result); + console.log('promise, requestEnableLocation: ' + JSON.stringify(result)); }); ``` @@ -645,23 +689,28 @@ enableLocation(callback: AsyncCallback<boolean>) : void; Enables the location service. This API uses an asynchronous callback to return the result. -This is a system API and cannot be called by third-party applications. +**System API**: This is a system API and cannot be called by third-party applications. -**Permission required**: ohos.permission.LOCATION +**Permission required**: ohos.permission.MANAGE_SECURE_SETTINGS **System capability**: SystemCapability.Location.Location.Core -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | callback | AsyncCallback<boolean> | Yes| Callback used to return the location service status.| - -- Example +**Example** - ``` + ```js geolocation.enableLocation((err, data) => { - console.log('enableLocation: ' + err + " data: " + data); + if (err) { + console.log('enableLocation: err=' + JSON.stringify(err)); + } + if (data) { + console.log('enableLocation: data=' + JSON.stringify(data)); + } }); ``` @@ -672,23 +721,23 @@ enableLocation() : Promise<boolean> Enables the location service. This API uses a promise to return the result. -This is a system API and cannot be called by third-party applications. +**System API**: This is a system API and cannot be called by third-party applications. -**Permission required**: ohos.permission.LOCATION +**Permission required**: ohos.permission.MANAGE_SECURE_SETTINGS **System capability**: SystemCapability.Location.Location.Core -- Return value +**Return value** + | Name| Description| | -------- | -------- | | Promise<boolean> | Promise used to return the location service status.| - -- Example +**Example** - ``` + ```js geolocation.enableLocation().then((result) => { - console.log('promise, enableLocation: ' + result); + console.log('promise, enableLocation: ' + JSON.stringify(result)); }); ``` @@ -698,23 +747,28 @@ disableLocation(callback: AsyncCallback<boolean>) : void; Disables the location service. This API uses an asynchronous callback to return the result. -This is a system API and cannot be called by third-party applications. +**System API**: This is a system API and cannot be called by third-party applications. -**Permission required**: ohos.permission.LOCATION +**Permission required**: ohos.permission.MANAGE_SECURE_SETTINGS **System capability**: SystemCapability.Location.Location.Core -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | callback | AsyncCallback<boolean> | Yes| Callback used to return the location service status.| - -- Example +**Example** - ``` + ```js geolocation.disableLocation((err, data) => { - console.log('disableLocation: ' + err + " data: " + data); + if (err) { + console.log('disableLocation: err=' + JSON.stringify(err)); + } + if (data) { + console.log('disableLocation: data=' + JSON.stringify(data)); + } }); ``` @@ -725,23 +779,23 @@ disableLocation() : Promise<boolean> Disables the location service. This API uses a promise to return the result. -This is a system API and cannot be called by third-party applications. +**System API**: This is a system API and cannot be called by third-party applications. -**Permission required**: ohos.permission.LOCATION +**Permission required**: ohos.permission.MANAGE_SECURE_SETTINGS **System capability**: SystemCapability.Location.Location.Core -- Return value +**Return value** + | Name| Description| | -------- | -------- | | Promise<boolean> | Promise used to return the location service status.| - -- Example +**Example** - ``` + ```js geolocation.disableLocation().then((result) => { - console.log('promise, disableLocation: ' + result); + console.log('promise, disableLocation: ' + JSON.stringify(result)); }); ``` @@ -755,17 +809,22 @@ Checks whether the (reverse) geocoding service is available. This API uses an as **System capability**: SystemCapability.Location.Location.Geocoder -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | callback | AsyncCallback<boolean> | Yes| Callback used to return the (reverse) geocoding service status.| - -- Example +**Example** - ``` + ```js geolocation.isGeoServiceAvailable((err, data) => { - console.log('isGeoServiceAvailable: ' + err + " data: " + data); + if (err) { + console.log('isGeoServiceAvailable: err=' + JSON.stringify(err)); + } + if (data) { + console.log('isGeoServiceAvailable: data=' + JSON.stringify(data)); + } }); ``` @@ -780,22 +839,21 @@ Checks whether the (reverse) geocoding service is available. This API uses a pro **System capability**: SystemCapability.Location.Location.Geocoder -- Return value +**Return value** + | Name| Description| | -------- | -------- | | Promise<boolean> | Promise used to return the (reverse) geocoding service status.| - -- Example +**Example** - ``` + ```js geolocation.isGeoServiceAvailable().then((result) => { - console.log('promise, isGeoServiceAvailable: ' + result); + console.log('promise, isGeoServiceAvailable: ' + JSON.stringify(result)); }); ``` - ## geolocation.getAddressesFromLocation getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>) : void @@ -806,18 +864,24 @@ Converts coordinates into geographic description through reverse geocoding. This **System capability**: SystemCapability.Location.Location.Geocoder -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | Yes| Reverse geocoding request.| | callback | AsyncCallback<Array<[GeoAddress](#geoaddress)>> | Yes| Callback used to return the reverse geocoding result.| -- Example +**Example** - ``` + ```js var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1}; geolocation.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => { - console.log('getAddressesFromLocation: ' + err + " data: " + JSON.stringify(data)); + if (err) { + console.log('getAddressesFromLocation: err=' + JSON.stringify(err)); + } + if (data) { + console.log('getAddressesFromLocation: data=' + JSON.stringify(data)); + } }); ``` @@ -832,19 +896,21 @@ Converts coordinates into geographic description through reverse geocoding. This **System capability**: SystemCapability.Location.Location.Geocoder -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | Yes| Reverse geocoding request.| -- Return value +**Return value** + | Name| Description| | -------- | -------- | | Promise<Array<[GeoAddress](#geoaddress)>> | Promise used to return the reverse geocoding result.| -- Example +**Example** - ``` + ```js var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1}; geolocation.getAddressesFromLocation(reverseGeocodeRequest).then((data) => { console.log('getAddressesFromLocation: ' + JSON.stringify(data)); @@ -862,19 +928,24 @@ Converts geographic description into coordinates through geocoding. This API use **System capability**: SystemCapability.Location.Location.Geocoder -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | request | [GeoCodeRequest](#geocoderequest) | Yes| Geocoding request.| | callback | AsyncCallback<Array<[GeoAddress](#geoaddress)>> | Yes| Callback used to return the geocoding result.| - -- Example +**Example** - ``` + ```js var geocodeRequest = {"description": "No. xx, xx Road, Pudong District, Shanghai", "maxItems": 1}; geolocation.getAddressesFromLocationName(geocodeRequest, (err, data) => { - console.log('getAddressesFromLocationName: ' + err + " data: " + JSON.stringify(data)); + if (err) { + console.log('getAddressesFromLocationName: err=' + JSON.stringify(err)); + } + if (data) { + console.log('getAddressesFromLocationName: data=' + JSON.stringify(data)); + } }); ``` @@ -889,19 +960,21 @@ Converts geographic description into coordinates through geocoding. This API use **System capability**: SystemCapability.Location.Location.Geocoder -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | request | [GeoCodeRequest](#geocoderequest) | Yes| Geocoding request.| -- Return value +**Return value** + | Name| Description| | -------- | -------- | | Promise<Array<[GeoAddress](#geoaddress)>> | Callback used to return the geocoding result.| -- Example +**Example** - ``` + ```js var geocodeRequest = {"description": "No. xx, xx Road, Pudong District, Shanghai", "maxItems": 1}; geolocation.getAddressesFromLocationName(geocodeRequest).then((result) => { console.log('getAddressesFromLocationName: ' + JSON.stringify(result)); @@ -909,7 +982,6 @@ Converts geographic description into coordinates through geocoding. This API use ``` - ## geolocation.getCachedGnssLocationsSize8+ getCachedGnssLocationsSize(callback: AsyncCallback<number>) : void; @@ -920,16 +992,22 @@ Obtains the number of cached GNSS locations. **System capability**: SystemCapability.Location.Location.Gnss -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | callback | AsyncCallback<number> | Yes| Callback used to return the number of cached GNSS locations. | -- Example +**Example** - ``` + ```js geolocation.getCachedGnssLocationsSize((err, size) => { - console.log('getCachedGnssLocationsSize: err:' + err + " size: " + size); + if (err) { + console.log('getCachedGnssLocationsSize: err=' + JSON.stringify(err)); + } + if (size) { + console.log('getCachedGnssLocationsSize: size=' + JSON.stringify(size)); + } }); ``` @@ -944,16 +1022,17 @@ Obtains the number of cached GNSS locations. **System capability**: SystemCapability.Location.Location.Gnss -- Return value +**Return value** + | Name| Description| | -------- | -------- | | Promise<number> | Promise used to return the number of cached GNSS locations.| -- Example +**Example** - ``` + ```js geolocation.getCachedGnssLocationsSize().then((result) => { - console.log('promise, getCachedGnssLocationsSize: ' + result); + console.log('promise, getCachedGnssLocationsSize: ' + JSON.stringify(result)); }); ``` @@ -968,16 +1047,22 @@ Obtains all cached GNSS locations and clears the GNSS cache queue. **System capability**: SystemCapability.Location.Location.Gnss -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | callback | AsyncCallback<boolean> | Yes| Callback used to return the operation result.| -- Example +**Example** - ``` + ```js geolocation.flushCachedGnssLocations((err, result) => { - console.log('flushCachedGnssLocations: err:' + err + " result: " + result); + if (err) { + console.log('flushCachedGnssLocations: err=' + JSON.stringify(err)); + } + if (result) { + console.log('flushCachedGnssLocations: result=' + JSON.stringify(result)); + } }); ``` @@ -992,16 +1077,17 @@ Obtains all cached GNSS locations and clears the GNSS cache queue. **System capability**: SystemCapability.Location.Location.Gnss -- Return value +**Return value** + | Name| Description| | -------- | -------- | | Promise<boolean> | Promise used to return the operation result.| -- Example +**Example** - ``` + ```js geolocation.flushCachedGnssLocations().then((result) => { - console.log('promise, flushCachedGnssLocations: ' + result); + console.log('promise, flushCachedGnssLocations: ' + JSON.stringify(result)); }); ``` @@ -1016,18 +1102,24 @@ Sends an extended command to the location subsystem. This API can only be called **System capability**: SystemCapability.Location.Location.Core -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | command | LocationCommand | Yes| Extended command (string) to be sent.| | callback | AsyncCallback<boolean> | Yes| Callback used to return the operation result.| -- Example +**Example** - ``` + ```js var requestInfo = {'scenario': 0x301, 'command': "command_1"}; geolocation.sendCommand(requestInfo, (err, result) => { - console.log('sendCommand: err:' + err + " result: " + result); + if (err) { + console.log('sendCommand: err=' + JSON.stringify(err)); + } + if (result) { + console.log('sendCommand: result=' + JSON.stringify(result)); + } }); ``` @@ -1042,22 +1134,24 @@ Sends an extended command to the location subsystem. This API can only be called **System capability**: SystemCapability.Location.Location.Core -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | command | LocationCommand | Yes| Extended command (string) to be sent.| -- Return value +**Return value** + | Name| Description| | -------- | -------- | | Promise<boolean> | Callback used to return the operation result.| -- Example +**Example** - ``` + ```js var requestInfo = {'scenario': 0x301, 'command': "command_1"}; geolocation.sendCommand(requestInfo).then((result) => { - console.log('promise, sendCommand: ' + result); + console.log('promise, sendCommand: ' + JSON.stringify(result)); }); ``` @@ -1068,23 +1162,29 @@ isLocationPrivacyConfirmed(type : LocationPrivacyType, callback: AsyncCallback&l Checks whether a user agrees with the privacy statement of the location service. This API can only be called by system applications. -This is a system API and cannot be called by third-party applications. +**System API**: This is a system API and cannot be called by third-party applications. **Permission required**: ohos.permission.LOCATION **System capability**: SystemCapability.Location.Location.Core -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | type | LocationPrivacyType | Yes| Privacy statement type, for example, privacy statement displayed in the startup wizard or privacy statement displayed when enabling the location service.| | callback | AsyncCallback<boolean> | Yes| Callback used to return the result, which indicates whether the user agrees with the privacy statement.| -- Example +**Example** - ``` + ```js geolocation.isLocationPrivacyConfirmed(1, (err, result) => { - console.log('isLocationPrivacyConfirmed: err:' + err + " result: " + result); + if (err) { + console.log('isLocationPrivacyConfirmed: err=' + JSON.stringify(err)); + } + if (result) { + console.log('isLocationPrivacyConfirmed: result=' + JSON.stringify(result)); + } }); ``` @@ -1095,27 +1195,29 @@ isLocationPrivacyConfirmed(type : LocationPrivacyType,) : Promise<boolean> Checks whether a user agrees with the privacy statement of the location service. This API can only be called by system applications. -This is a system API and cannot be called by third-party applications. +**System API**: This is a system API and cannot be called by third-party applications. **Permission required**: ohos.permission.LOCATION **System capability**: SystemCapability.Location.Location.Core -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | type | LocationPrivacyType | Yes| Privacy statement type, for example, privacy statement displayed in the startup wizard or privacy statement displayed when enabling the location service.| -- Return value +**Return value** + | Name| Description| | -------- | -------- | | Promise<boolean> | Callback used to return the result, which indicates whether the user agrees with the privacy statement.| -- Example +**Example** - ``` + ```js geolocation.isLocationPrivacyConfirmed(1).then((result) => { - console.log('promise, isLocationPrivacyConfirmed: ' + result); + console.log('promise, isLocationPrivacyConfirmed: ' + JSON.stringify(result)); }); ``` @@ -1126,24 +1228,30 @@ setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed: boolean Sets the user confirmation status for the privacy statement of the location service. This API can only be called by system applications. -This is a system API and cannot be called by third-party applications. +**System API**: This is a system API and cannot be called by third-party applications. **Permission required**: ohos.permission.LOCATION **System capability**: SystemCapability.Location.Location.Core -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | type | LocationPrivacyType | Yes| Privacy statement type, for example, privacy statement displayed in the startup wizard or privacy statement displayed when enabling the location service.| | isConfirmed | boolean | Yes| Callback used to return the result, which indicates whether the user agrees with the privacy statement.| | callback | AsyncCallback<boolean> | Yes| Callback used to return the operation result.| -- Example +**Example** - ``` + ```js geolocation.setLocationPrivacyConfirmStatus(1, true, (err, result) => { - console.log('isLocationPrivacyConfirmed: err:' + err + " result: " + result); + if (err) { + console.log('setLocationPrivacyConfirmStatus: err=' + JSON.stringify(err)); + } + if (result) { + console.log('setLocationPrivacyConfirmStatus: result=' + JSON.stringify(result)); + } }); ``` @@ -1154,32 +1262,540 @@ setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed : boolea Sets the user confirmation status for the privacy statement of the location service. This API can only be called by system applications. -This is a system API and cannot be called by third-party applications. +**System API**: This is a system API and cannot be called by third-party applications. **Permission required**: ohos.permission.LOCATION **System capability**: SystemCapability.Location.Location.Core -- Parameters +**Parameters** + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | type | LocationPrivacyType | Yes| Privacy statement type, for example, privacy statement displayed in the startup wizard or privacy statement displayed when enabling the location service.| | isConfirmed | boolean | Yes| Callback used to return the result, which indicates whether the user agrees with the privacy statement.| -- Return value +**Return value** + | Name| Description| | -------- | -------- | | Promise<boolean> | Callback used to return the operation result.| -- Example +**Example** - ``` + ```js geolocation.setLocationPrivacyConfirmStatus(1, true).then((result) => { - console.log('promise, setLocationPrivacyConfirmStatus: ' + result); + console.log('promise, setLocationPrivacyConfirmStatus: ' + JSON.stringify(result)); + }); + ``` + + +## geolocation.getCountryCode9+ + +getCountryCode(callback: AsyncCallback<CountryCode>) : void; + +Query the current country code. + +**System capability**: SystemCapability.Location.Location.Core + +**Parameters** + + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | callback | AsyncCallback<CountryCode> | Yes | Callback is used to receive the country code. | + +**Example**: + + ```js + geolocation.getCountryCode((err, result) => { + if (err) { + console.log('getCountryCode: err=' + JSON.stringify(err)); + } + if (result) { + console.log('getCountryCode: result=' + JSON.stringify(result)); + } + }); + ``` + + +## geolocation.getCountryCode9+ + +getCountryCode() : Promise<CountryCode>; + +Query the current country code. + +**System capability**: SystemCapability.Location.Location.Core + +**Parameters** + +None + +**Return value** + + | Name| Description| + | -------- | -------- | + | Promise<CountryCode> | return country code. | + +**Example**: + + ```js + geolocation.getCountryCode() + .then((result) => { + console.log('promise, getCountryCode: result=' + JSON.stringify(result)); + }) + .catch((error) => { + console.log('promise, getCountryCode: error=' + JSON.stringify(error)); + }); + ``` + + +## geolocation.enableLocationMock9+ + +enableLocationMock(scenario?: LocationRequestScenario, callback: AsyncCallback<void>) : void; + +Enable the position simulation function of a scene, and only one scene can be enabled at the same time. + +**System capability**: SystemCapability.Location.Location.Core + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | scenario | LocationRequestScenario | No | Indicates under what scenario the position simulation function is enabled. | + | callback | AsyncCallback<void> | Yes | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. | + +**Example**: + + ```js + var request = {"scenario": 0x0301}; + geolocation.enableLocationMock(request, (err, result) => { + if (err) { + console.log('enableLocationMock: err=' + JSON.stringify(err)); + } + if (result) { + console.log('enableLocationMock: result=' + JSON.stringify(result)); + } + }); + ``` + +## geolocation.enableLocationMock9+ + +enableLocationMock(scenario?: LocationRequestScenario) : Promise<void>; + +Enable the position simulation function of a scene, and only one scene can be enabled at the same time. + +**System capability**: SystemCapability.Location.Location.Core + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | scenario | LocationRequestScenario | No | Indicates which scene's position simulation function is enabled. If this parameter is not carried, it means that the position simulation function of all scenes is enabled. | + + +**Return value** + + | Name| Description| + | -------- | -------- | + | Promise<void> | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. | + +**Example**: + + ```js + var request = {"scenario": 0x0301}; + geolocation.enableLocationMock(request) + .then((result) => { + if (result) { + console.log('promise, enableLocationMock: result=' + JSON.stringify(result)); + } + }) + .catch((error) => { + if (error) { + console.log('promise, enableLocationMock: error=' + JSON.stringify(error)); + } + }); + ``` + + +## geolocation.disableLocationMock9+ + +disableLocationMock(scenario?: LocationRequestScenario, callback: AsyncCallback<void>) : void; + +To disable the position simulation function. + +**System capability**: SystemCapability.Location.Location.Core + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | scenario | LocationRequestScenario | No | Indicates to disable the position simulation function of a scene. If this parameter is not carried, it means to disable the position simulation function of all scenes. | + | callback | AsyncCallback<void> | Yes | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. | + +**Example**: + + ```js + var request = {"scenario": 0x0301}; + geolocation.disableLocationMock(request, (err, result) => { + if (err) { + console.log('disableLocationMock: err=' + JSON.stringify(err)); + } + if (result) { + console.log('disableLocationMock: result=' + JSON.stringify(result)); + } + }); + ``` + + +## geolocation.disableLocationMock9+ + +disableLocationMock(scenario?: LocationRequestScenario) : Promise<void>; + +To disable the position simulation function. + +**System capability**: SystemCapability.Location.Location.Core + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | scenario | LocationRequestScenario | No | Indicates to disable the position simulation function of a scene. If this parameter is not carried, it means to disable the position simulation function of all scenes. | + +**Return value** + + | Name| Description| + | -------- | -------- | + | Promise<void> | It is used to receive the execution result. If the execution is successful, it will return nullptr, otherwise it will return an error message | + +**Example**: + + ```js + var request = {"scenario": 0x0301}; + geolocation.disableLocationMock(request) + .then((result) => { + if (result) { + console.log('promise, disableLocationMock: result=' + JSON.stringify(result)); + } + }) + .catch((error) => { + if (error) { + console.log('promise, disableLocationMock: error=' + JSON.stringify(error)); + } + }); + ``` + + +## geolocation.setMockedLocations9+ + +setMockedLocations(config: LocationMockConfig, callback: AsyncCallback<void>) : void; + +Set the simulated location information, and then report the simulated location at the time interval carried in the interface. + +**System capability**: SystemCapability.Location.Location.Core + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | config | LocationMockConfig | Yes | Indicates the configuration parameters of location simulation, including the time interval of simulation location reporting and the array of simulation locations. | + | callback | AsyncCallback<void> | Yes | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. | + +**Example**: + + ```js + var locations = [ + {"latitude": 30.12, "longitude": 120.11, "altitude": 123, "accuracy": 1, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 1000000000, "additionSize": 0, "isFromMock": true}, + {"latitude": 31.13, "longitude": 121.11, "altitude": 123, "accuracy": 2, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 2000000000, "additionSize": 0, "isFromMock": true}, + {"latitude": 32.14, "longitude": 122.11, "altitude": 123, "accuracy": 3, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 3000000000, "additionSize": 0, "isFromMock": true}, + {"latitude": 33.15, "longitude": 123.11, "altitude": 123, "accuracy": 4, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 4000000000, "additionSize": 0, "isFromMock": true}, + {"latitude": 34.16, "longitude": 124.11, "altitude": 123, "accuracy": 5, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 5000000000, "additionSize": 0, "isFromMock": true} + ]; + var config = {"timeInterval": 5, "locations": locations}; + geolocation.setMockedLocations(config, (err, data) => { + if (err) { + console.log('setMockedLocations: err=' + JSON.stringify(err)); + } + if (data) { + console.log('setMockedLocations: data=' + JSON.stringify(data)); + } + }); + ``` + +## geolocation.setMockedLocations9+ + +setMockedLocations(config: LocationMockConfig) : Promise<void>; + +Set the simulated location information, and then report the simulated location at the time interval carried in the interface. + +**System capability**: SystemCapability.Location.Location.Core + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | config | LocationMockConfig | Yes | Indicates the configuration parameters of location simulation, including the time interval of simulation location reporting and the array of simulation locations. | + +**Return value** + + | Name| Description| + | -------- | -------- | + | Promise<void> | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. | + +**Example**: + + ```js + var locations = [ + {"latitude": 30.12, "longitude": 120.11, "altitude": 123, "accuracy": 1, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 1000000000, "additionSize": 0, "isFromMock": true}, + {"latitude": 31.13, "longitude": 121.11, "altitude": 123, "accuracy": 2, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 2000000000, "additionSize": 0, "isFromMock": true}, + {"latitude": 32.14, "longitude": 122.11, "altitude": 123, "accuracy": 3, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 3000000000, "additionSize": 0, "isFromMock": true}, + {"latitude": 33.15, "longitude": 123.11, "altitude": 123, "accuracy": 4, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 4000000000, "additionSize": 0, "isFromMock": true}, + {"latitude": 34.16, "longitude": 124.11, "altitude": 123, "accuracy": 5, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 5000000000, "additionSize": 0, "isFromMock": true} + ]; + var config = {"timeInterval": 5, "locations":locations}; + geolocation.setMockedLocations(config) + .then((result) => { + if (result) { + console.log('promise, setMockedLocations: result=' + JSON.stringify(result)); + } + }) + .catch((error) => { + if (error) { + console.log('promise, setMockedLocations: error=' + JSON.stringify(error)); + } + }); + ``` + + + +## geolocation.enableReverseGeocodingMock9+ + +enableReverseGeocodingMock(callback: AsyncCallback<void>) : void; + +Enable reverse geocoding simulation function. + +**System capability**: SystemCapability.Location.Location.Core + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | callback | AsyncCallback<void> | Yes | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. | + +**Example**: + + ```js + geolocation.enableReverseGeocodingMock((err, data) => { + if (err) { + console.log('enableReverseGeocodingMock: err=' + JSON.stringify(err)); + } + if (data) { + console.log('enableReverseGeocodingMock: data=' + JSON.stringify(data)); + } + }); + ``` + + +## geolocation.enableReverseGeocodingMock9+ + +enableReverseGeocodingMock() : Promise<void>; + +Enable reverse geocoding simulation function. + +**System capability**: SystemCapability.Location.Location.Core + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters**: + +None + +**Return value** + + | Name| Description| + | -------- | -------- | + | Promise<void> | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. | + +**Example**: + + ```js + geolocation.enableReverseGeocodingMock() + .then((result) => { + if (result) { + console.log('promise, enableReverseGeocodingMock: result=' + JSON.stringify(result)); + } + }) + .catch((error) => { + if (error) { + console.log('promise, enableReverseGeocodingMock: error=' + JSON.stringify(error)); + } + }); + ``` + + +## geolocation.disableReverseGeocodingMock9+ + +disableReverseGeocodingMock(callback: AsyncCallback<void>) : void; + +Disable reverse geocoding simulation function. + +**System capability**: SystemCapability.Location.Location.Core + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters**: + + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | callback | AsyncCallback<void> | Yes | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message | + +**Example**: + + ```js + geolocation.disableReverseGeocodingMock((err, result) => { + if (err) { + console.log('disableReverseGeocodingMock: err=' + JSON.stringify(err)); + } + if (result) { + console.log('disableReverseGeocodingMock: result=' + JSON.stringify(result)); + } + }); + ``` + + +## geolocation.disableReverseGeocodingMock9+ + +disableReverseGeocodingMock() : Promise<void>; + +Disable reverse geocoding simulation function. + +**System capability**: SystemCapability.Location.Location.Core + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters**: + +None + +**Return value** + + | Name| Description| + | -------- | -------- | + | Promise<void> | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. | + +**Example**: + + ```js + geolocation.disableReverseGeocodingMock() + .then((result) => { + if (result) { + console.log('promise, disableReverseGeocodingMock: result=' + JSON.stringify(result)); + } + }) + .catch((error) => { + if (error) { + console.log('promise, disableReverseGeocodingMock: error=' + JSON.stringify(error)); + } + }); + ``` + + +## geolocation.setReverseGeocodingMockInfo9+ + +setReverseGeocodingMockInfo(mockInfos: Array<ReverseGeocodingMockInfo>, callback: AsyncCallback<void>) : void; + +Set the configuration information of the reverse geocoding simulation function, including the corresponding relationship between location and place name. If the location information is in the configuration information during the subsequent reverse geocoding query, the corresponding place name will be returned. + +**System capability**: SystemCapability.Location.Location.Core + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | mockInfos | Array<ReverseGeocodingMockInfo> | Yes | An array of configuration parameters indicating the inverse geocoding simulation function. The configuration parameters of the inverse geocoding simulation function include a location and a place name. | + | callback | AsyncCallback<void> | Yes | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. | + +**Example**: + + ```js + var mockInfos = [ + {"location": {"locale": "shanghai", "latitude": 30.12, "longitude": 120.11, "maxItems": 1}, "geoAddress": {"locale": "shanghai", "latitude": 30.12, "longitude": 120.11, "maxItems": 1, "isFromMock": true}}, + {"location": {"locale": "beijing", "latitude": 31.12, "longitude": 121.11, "maxItems": 1}, "geoAddress": {"locale": "beijing", "latitude": 31.12, "longitude": 121.11, "maxItems": 1, "isFromMock": true}}, + {"location": {"locale": "shenzhen", "latitude": 32.12, "longitude": 122.11, "maxItems": 1}, "geoAddress": {"locale": "shenzhen", "latitude": 32.12, "longitude": 122.11, "maxItems": 1, "isFromMock": true}}, + {"location": {"locale": "wuhan", "latitude": 33.12, "longitude": 123.11, "maxItems": 1}, "geoAddress": {"locale": "wuhan", "latitude": 33.12, "longitude": 123.11, "maxItems": 1, "isFromMock": true}}, + {"location": {"locale": "chengdu", "latitude": 34.12, "longitude": 124.11, "maxItems": 1}, "geoAddress": {"locale": "chengdu", "latitude": 34.12, "longitude": 124.11, "maxItems": 1, "isFromMock": true}}, + ]; + geolocation.setReverseGeocodingMockInfo(mockInfos, (err, data) => { + if (err) { + console.log('promise, setReverseGeocodingMockInfo, err:' + JSON.stringify(err)); + } + if (data) { + console.log('promise, setReverseGeocodingMockInfo, data:' + JSON.stringify(data)); + } }); ``` +## geolocation.setReverseGeocodingMockInfo9+ + +setReverseGeocodingMockInfo(mockInfos: Array<ReverseGeocodingMockInfo>) : Promise<void>; + +Set the configuration information of the reverse geocoding simulation function, including the corresponding relationship between location and place name. If the location information is in the configuration information during the subsequent reverse geocoding query, the corresponding place name will be returned. + +**System capability**: SystemCapability.Location.Location.Core + +**System API**: This is a system API and cannot be called by third-party applications. + +**Parameters** + + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | mockInfos | Array<ReverseGeocodingMockInfo> | Yes | An array of configuration parameters indicating the inverse geocoding simulation function. The configuration parameters of the inverse geocoding simulation function include a location and a place name. | + +**Return value** + + | Name| Description| + | -------- | -------- | + | Promise<void> | It is used to receive the execution result. If the execution is successful, it will return nullptr. Otherwise, it will return an error message. | + +**Example**: + + ```js + var mockInfos = [ + {"location": {"locale": "shanghai", "latitude": 30.12, "longitude": 120.11, "maxItems": 1}, "geoAddress": {"locale": "shanghai", "latitude": 30.12, "longitude": 120.11, "maxItems": 1, "isFromMock": true}}, + {"location": {"locale": "beijing", "latitude": 31.12, "longitude": 121.11, "maxItems": 1}, "geoAddress": {"locale": "beijing", "latitude": 31.12, "longitude": 121.11, "maxItems": 1, "isFromMock": true}}, + {"location": {"locale": "shenzhen", "latitude": 32.12, "longitude": 122.11, "maxItems": 1}, "geoAddress": {"locale": "shenzhen", "latitude": 32.12, "longitude": 122.11, "maxItems": 1, "isFromMock": true}}, + {"location": {"locale": "wuhan", "latitude": 33.12, "longitude": 123.11, "maxItems": 1}, "geoAddress": {"locale": "wuhan", "latitude": 33.12, "longitude": 123.11, "maxItems": 1, "isFromMock": true}}, + {"location": {"locale": "chengdu", "latitude": 34.12, "longitude": 124.11, "maxItems": 1}, "geoAddress": {"locale": "chengdu", "latitude": 34.12, "longitude": 124.11, "maxItems": 1, "isFromMock": true}}, + ]; + geolocation.setReverseGeocodingMockInfo(mockInfos) + .then((result) => { + if (result) { + console.log('promise, setReverseGeocodingMockInfo: result=' + JSON.stringify(result)); + } + }) + .catch((error) => { + if (error) { + console.log('promise, setReverseGeocodingMockInfo: error=' + JSON.stringify(error)); + } + }); + ``` + ## LocationRequestPriority @@ -1225,13 +1841,15 @@ Enumerates error codes of the location service. | Name| Default Value| Description| | -------- | -------- | -------- | -| INPUT_PARAMS_ERROR | 101 | Incorrect input parameters.| -| REVERSE_GEOCODE_ERROR | 102 | Failed to call the reverse geocoding API.| -| GEOCODE_ERROR | 103 | Failed to call the geocoding API.| -| LOCATOR_ERROR | 104 | Failed to obtain the location.| -| LOCATION_SWITCH_ERROR | 105 | Failed to change the location service switch.| -| LAST_KNOWN_LOCATION_ERROR | 106 | Failed to obtain the previous location.| -| LOCATION_REQUEST_TIMEOUT_ERROR | 107 | Failed to obtain the location within the specified time.| +| NOT_SUPPORTED9+ | 100 | Indicates that the interface function is not supported. | +| INPUT_PARAMS_ERROR7+ | 101 | Incorrect input parameters.| +| REVERSE_GEOCODE_ERROR7+ | 102 | Failed to call the reverse geocoding API.| +| GEOCODE_ERROR7+ | 103 | Failed to call the geocoding API.| +| LOCATOR_ERROR7+ | 104 | Failed to obtain the location.| +| LOCATION_SWITCH_ERROR7+ | 105 | Failed to change the location service switch.| +| LAST_KNOWN_LOCATION_ERROR7+ | 106 | Failed to obtain the previous location.| +| LOCATION_REQUEST_TIMEOUT_ERROR7+ | 107 | Failed to obtain the location within the specified time.| +| QUERY_COUNTRY_CODE_ERROR9+ | 108 | Indicates that the country code query failed. | ## ReverseGeoCodeRequest @@ -1279,24 +1897,25 @@ Defines a geographic location. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| latitude | number | No| Latitude information. A positive value indicates north latitude, and a negative value indicates south latitude.| -| longitude | number | No| Longitude information. A positive value indicates east longitude , and a negative value indicates west longitude .| -| locale | string | No| Language used for the location description. **zh** indicates Chinese, and **en** indicates English.| -| placeName | string | No| Landmark of the location.| -| countryCode | string | No| Country code.| -| countryName | string | No| Country name.| -| administrativeArea | string | No| Administrative region name.| -| subAdministrativeArea | string | No| Sub-administrative region name.| -| locality | string | No| Locality information. | -| subLocality | string | No| Sub-locality information. | -| roadName | string | No| Road name.| -| subRoadName | string | No| Auxiliary road information.| -| premises | string | No| House information.| -| postalCode | string | No| Postal code.| -| phoneNumber | string | No| Phone number.| -| addressUrl | string | No| Website URL.| -| descriptions | Array<string> | No| Additional description.| -| descriptionsSize | number | No| Total number of additional descriptions.| +| latitude7+ | number | No| Latitude information. A positive value indicates north latitude, and a negative value indicates south latitude.| +| longitude7+ | number | No| Longitude information. A positive value indicates east longitude , and a negative value indicates west longitude .| +| locale7+ | string | No| Language used for the location description. **zh** indicates Chinese, and **en** indicates English.| +| placeName7+ | string | No| Landmark of the location.| +| countryCode7+ | string | No| Country code.| +| countryName7+ | string | No| Country name.| +| administrativeArea7+ | string | No| Administrative region name.| +| subAdministrativeArea7+ | string | No| Sub-administrative region name.| +| locality7+ | string | No| Locality information. | +| subLocality7+ | string | No| Sub-locality information. | +| roadName7+ | string | No| Road name.| +| subRoadName7+ | string | No| Auxiliary road information.| +| premises7+ | string | No| House information.| +| postalCode7+ | string | No| Postal code.| +| phoneNumber7+ | string | No| Phone number.| +| addressUrl7+ | string | No| Website URL.| +| descriptions7+ | Array<string> | No| Additional description.| +| descriptionsSize7+ | number | No| Total number of additional descriptions.| +| isFromMock9+ | Boolean | No | Indicates whether the geographical name information comes from the reverse geocoding simulation function. | ## LocationRequest @@ -1434,13 +2053,68 @@ Defines a location. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| latitude | number | Yes| Latitude information. A positive value indicates north latitude, and a negative value indicates south latitude.| -| longitude | number | Yes| Longitude information. A positive value indicates east longitude , and a negative value indicates west longitude .| -| altitude | number | Yes| Location altitude, in meters.| -| accuracy | number | Yes| Location accuracy, in meters.| -| speed | number | Yes| Speed, in m/s.| -| timeStamp | number | Yes| Location timestamp in the UTC format.| -| direction | number | Yes| Direction information.| -| timeSinceBoot | number | Yes| Location timestamp since boot.| -| additions | Array<string> | No| Additional information.| -| additionSize | number | No| Number of additional descriptions.| +| latitude7+ | number | Yes| Latitude information. A positive value indicates north latitude, and a negative value indicates south latitude.| +| longitude7+ | number | Yes| Longitude information. A positive value indicates east longitude , and a negative value indicates west longitude .| +| altitude7+ | number | Yes| Location altitude, in meters.| +| accuracy7+ | number | Yes| Location accuracy, in meters.| +| speed7+ | number | Yes| Speed, in m/s.| +| timeStamp7+ | number | Yes| Location timestamp in the UTC format.| +| direction7+ | number | Yes| Direction information.| +| timeSinceBoot7+ | number | Yes| Location timestamp since boot.| +| additions7+ | Array<string> | No| Additional information.| +| additionSize7+ | number | No| Number of additional descriptions.| +| isFromMock9+ | Boolean | No | Indicates whether the location information comes from the location simulation function. | + + +## ReverseGeocodingMockInfo9+ + +The configuration information of the reverse geocoding simulation function includes a location information and a place name information. + +**System capability**:SystemCapability.Location.Location.Core + +**System API**: This is a system API and cannot be called by third-party applications. + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| location | ReverseGeoCodeRequest | Yes | Indicates longitude and latitude information. | +| geoAddress | GeoAddress | Yes | Represents a geographic location. | + + +## LocationMockConfig9+ + +The configuration parameters of the location simulation function include the time interval of the simulation position report and the array of simulation locations. + +**System capability**: SystemCapability.Location.Location.Core + +**System API**: This is a system API and cannot be called by third-party applications. + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| timeInterval | number | Yes | Indicates the time interval of analog location reporting, in seconds. | +| locations | Array<Location> | Yes | Represents an array of mocked locations. | + + +## CountryCode9+ + +The country code information structure contains the country code string and the source information of the country code. + +**System capability**: SystemCapability.Location.Location.Core + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| country | string | Yes | Represents the country code string. | +| type | CountryCodeType | Yes | Indicates the source of country code information. | + + +## CountryCodeType9+ + +Country code source type. + +**System capability**: SystemCapability.Location.Location.Core + +| Name| Default Value| Description| +| -------- | -------- | -------- | +| COUNTRY_CODE_FROM_LOCALE | 1 | The country code obtained from the language configuration information of the globalization module. | +| COUNTRY_CODE_FROM_SIM | 2 | The country code obtained from the SIM card. | +| COUNTRY_CODE_FROM_LOCATION | 3 | Based on the user's location information, the country code is queried through reverse geocoding. | +| COUNTRY_CODE_FROM_NETWORK | 4 | The country code obtained from the cellular network registration information. | \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/js-apis-geolocation.md b/zh-cn/application-dev/reference/apis/js-apis-geolocation.md index 77ef5727a7..af1e4a3017 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-geolocation.md +++ b/zh-cn/application-dev/reference/apis/js-apis-geolocation.md @@ -8,8 +8,7 @@ ## 导入模块 - -``` +```js import geolocation from '@ohos.geolocation'; ``` @@ -23,7 +22,8 @@ on(type: 'locationChange', request: LocationRequest, callback: Callback<Locat **系统能力**:SystemCapability.Location.Location.Core -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 设置事件类型。type为“locationChange”,表示位置变化。 | @@ -31,9 +31,9 @@ on(type: 'locationChange', request: LocationRequest, callback: Callback<Locat | callback | Callback<[Location](#location)> | 是 | 接收位置变化状态变化监听。 | -- 示例: +**示例** - ``` + ```js var requestInfo = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0}; var locationChange = (location) => { console.log('locationChanger: data: ' + JSON.stringify(location)); @@ -52,16 +52,17 @@ off(type: 'locationChange', callback?: Callback<Location>) : void **系统能力**:SystemCapability.Location.Location.Core -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 设置事件类型。type为“locationChange”,表示位置变化。 | | callback | Callback<[Location](#location)> | 否 | 接收位置变化状态变化监听。 | -- 示例: +**示例** - ``` + ```js var requestInfo = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0}; var locationChange = (location) => { console.log('locationChanger: data: ' + JSON.stringify(location)); @@ -81,18 +82,19 @@ on(type: 'locationServiceState', callback: Callback<boolean>) : void **系统能力**:SystemCapability.Location.Location.Core -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 设置事件类型。type为“locationServiceState”,表示位置服务状态。 | | callback | Callback<boolean> | 是 | 接收位置服务状态变化监听。 | -- 示例: +**示例** - ``` + ```js var locationServiceState = (state) => { - console.log('locationServiceState: ' + state); + console.log('locationServiceState: ' + JSON.stringify(state)); } geolocation.on('locationServiceState', locationServiceState); ``` @@ -108,18 +110,19 @@ off(type: 'locationServiceState', callback?: Callback<boolean>) : void; **系统能力**:SystemCapability.Location.Location.Core -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 设置事件类型。type为“locationServiceState”,表示位置服务状态。 | | callback | Callback<boolean> | 否 | 接收位置服务状态变化监听。 | -- 示例: +**示例** - ``` + ```js var locationServiceState = (state) => { - console.log('locationServiceState: state: ' + state); + console.log('locationServiceState: state: ' + JSON.stringify(state)); } geolocation.on('locationServiceState', locationServiceState); geolocation.off('locationServiceState', locationServiceState); @@ -136,7 +139,8 @@ on(type: 'cachedGnssLocationsReporting', request: CachedGnssLocationsRequest, ca **系统能力**:SystemCapability.Location.Location.Gnss -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 设置事件类型。type为“cachedGnssLocationsReporting”,表示GNSS缓存定位结果上报。 | @@ -144,11 +148,11 @@ on(type: 'cachedGnssLocationsReporting', request: CachedGnssLocationsRequest, ca | callback | Callback<boolean> | 是 | 接收GNSS缓存位置上报。 | -- 示例: +**示例** - ``` + ```js var cachedLocationsCb = (locations) => { - console.log('cachedGnssLocationsReporting: locations: ' + locations); + console.log('cachedGnssLocationsReporting: locations: ' + JSON.stringify(locations)); } var requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true}; geolocation.on('cachedGnssLocationsReporting', requestInfo, cachedLocationsCb); @@ -165,18 +169,19 @@ off(type: 'cachedGnssLocationsReporting', callback?: Callback<Array<Locati **系统能力**:SystemCapability.Location.Location.Gnss -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 设置事件类型。type为“cachedGnssLocationsReporting”,表示GNSS缓存定位结果上报。 | | callback | Callback<boolean> | 否 | 接收GNSS缓存位置上报。 | -- 示例: +**示例** - ``` + ```js var cachedLocationsCb = (locations) => { - console.log('cachedGnssLocationsReporting: locations: ' + locations); + console.log('cachedGnssLocationsReporting: locations: ' + JSON.stringify(locations)); } var requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true}; geolocation.on('cachedGnssLocationsReporting', requestInfo, cachedLocationsCb); @@ -194,18 +199,19 @@ on(type: 'gnssStatusChange', callback: Callback<SatelliteStatusInfo>) : vo **系统能力**:SystemCapability.Location.Location.Gnss -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 设置事件类型。type为“gnssStatusChange”,表示订阅GNSS卫星状态信息上报。 | | callback | Callback<SatelliteStatusInfo> | 是 | 接收GNSS卫星状态信息上报。 | -- 示例: +**示例** - ``` + ```js var gnssStatusCb = (satelliteStatusInfo) => { - console.log('gnssStatusChange: ' + satelliteStatusInfo); + console.log('gnssStatusChange: ' + JSON.stringify(satelliteStatusInfo)); } geolocation.on('gnssStatusChange', gnssStatusCb); ``` @@ -221,17 +227,18 @@ off(type: 'gnssStatusChange', callback?: Callback<SatelliteStatusInfo>) : **系统能力**:SystemCapability.Location.Location.Gnss -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 设置事件类型。type为“gnssStatusChange”,表示订阅GNSS卫星状态信息上报。 | | callback | Callback<SatelliteStatusInfo> | 否 | 接收GNSS卫星状态信息上报。 | -- 示例: +**示例** - ``` + ```js var gnssStatusCb = (satelliteStatusInfo) => { - console.log('gnssStatusChange: ' + satelliteStatusInfo); + console.log('gnssStatusChange: ' + JSON.stringify(satelliteStatusInfo)); } geolocation.on('gnssStatusChange', gnssStatusCb); geolocation.off('gnssStatusChange', gnssStatusCb); @@ -248,18 +255,19 @@ on(type: 'nmeaMessageChange', callback: Callback<string>) : void; **系统能力**:SystemCapability.Location.Location.Gnss -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 设置事件类型。type为“nmeaMessageChange”,表示订阅GNSS NMEA信息上报。 | | callback | Callback<string> | 是 | 接收GNSS NMEA信息上报。 | -- 示例: +**示例** - ``` + ```js var nmeaCb = (str) => { - console.log('nmeaMessageChange: ' + str); + console.log('nmeaMessageChange: ' + JSON.stringify(str)); } geolocation.on('nmeaMessageChange', nmeaCb ); ``` @@ -275,18 +283,19 @@ off(type: 'nmeaMessageChange', callback?: Callback<string>) : void; **系统能力**:SystemCapability.Location.Location.Gnss -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 设置事件类型。type为“nmeaMessageChange”,表示订阅GNSS NMEA信息上报。 | | callback | Callback<string> | 否 | 接收GNSS NMEA信息上报。 | -- 示例: +**示例** - ``` + ```js var nmeaCb = (str) => { - console.log('nmeaMessageChange: ' + str); + console.log('nmeaMessageChange: ' + JSON.stringify(str)); } geolocation.on('nmeaMessageChange', nmeaCb); geolocation.off('nmeaMessageChange', nmeaCb); @@ -303,7 +312,8 @@ on(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent) : void; **系统能力**:SystemCapability.Location.Location.Geofence -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 设置事件类型。type为“fenceStatusChange”,表示订阅围栏事件上报。 | @@ -311,52 +321,29 @@ on(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent) : void; | want | WantAgent | 是 | 用于接收地理围栏事件上报(进出围栏)。 | -- 示例: +**示例** - ``` - import WantAgent from '@ohos.wantAgent'; - import { OperationType, WantAgentFlags } from '@ohos.wantagent'; - //wantAgent对象 - var wantAgent; - //getWantAgent回调 - function getWantAgentCallback(err, data) { - console.info("==========================>getWantAgentCallback=======================>"); - if (err.code == 0) { - wantAgent = data; - } else { - console.info('----getWantAgent failed!----'); - } - } - //WantAgentInfo对象 - var wantAgentInfo = { + ```js + import geolocation from '@ohos.geolocation'; + import wantAgent from '@ohos.wantAgent'; + + let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.MainAbility" action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", - parameters: - { - mykey0: 2222, - mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", - mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], - mykey6: true, - } } ], - operationType: OperationType.START_ABILITIES, + operationType: wantAgent.OperationType.START_ABILITY, requestCode: 0, - wantAgentFlags:[WantAgentFlags.UPDATE_PRESENT_FLAG] - } - WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) - var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}}; - geolocation.on('fenceStatusChange', requestInfo, wantAgent); + wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] + }; + + wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { + var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}}; + geolocation.on('fenceStatusChange', requestInfo, wantAgentObj); + }); ``` @@ -370,60 +357,91 @@ off(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent) : void **系统能力**:SystemCapability.Location.Location.Geofence -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 设置事件类型。type为“fenceStatusChange”,表示订阅围栏事件上报。 | | request | GeofenceRequest | 是 | 围栏的配置参数。 | | want | WantAgent | 是 | 用于接收地理围栏事件上报(进出围栏)。 | -- 示例: +**示例** - ``` - import WantAgent from '@ohos.wantAgent'; - import { OperationType, WantAgentFlags } from '@ohos.wantagent'; - //wantAgent对象 - var wantAgent; - //getWantAgent回调 - function getWantAgentCallback(err, data) { - console.info("==========================>getWantAgentCallback=======================>"); - if (err.code == 0) { - wantAgent = data; - } else { - console.info('----getWantAgent failed!----'); - } - } - //WantAgentInfo对象 - var wantAgentInfo = { + ```js + import geolocation from '@ohos.geolocation'; + import wantAgent from '@ohos.wantAgent'; + + let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.MainAbility" action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", - parameters: - { - mykey0: 2222, - mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", - mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], - mykey6: true, - } } ], - operationType: OperationType.START_ABILITIES, + operationType: wantAgent.OperationType.START_ABILITY, requestCode: 0, - wantAgentFlags:[WantAgentFlags.UPDATE_PRESENT_FLAG] + wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] + }; + + wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { + var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}}; + geolocation.on('fenceStatusChange', requestInfo, wantAgentObj); + geolocation.off('fenceStatusChange', requestInfo, wantAgentObj); + }); + ``` + + +## geolocation.on('countryCodeChange')9+ + +on(type: 'countryCodeChange', callback: Callback<CountryCode>) : void; + +订阅国家码信息上报事件。 + +**系统能力**:SystemCapability.Location.Location.Core + +**参数**: + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | type | string | 是 | 设置事件类型。type为“countryCodeChange”,表示订阅国家码信息上报。 | + | callback | Callback<CountryCode> | 是 | 接收国家码信息上报。 | + + +**示例** + + ```js + var callback = (code) => { + console.log('countryCodeChange: ' + JSON.stringify(code)); + } + geolocation.on('countryCodeChange', callback); + ``` + + +## geolocation.off('countryCodeChange')9+ + +off(type: 'countryCodeChange', callback?: Callback<CountryCode>) : void; + +取消订阅国家码上报事件。 + +**系统能力**:SystemCapability.Location.Location.Core + +**参数**: + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | type | string | 是 | 设置事件类型。type为“countryCodeChange”,表示取消订阅国家码信息上报。 | + | callback | Callback<CountryCode> | 是 | 接收国家码信息上报。 | + + +**示例** + + ```js + var callback = (code) => { + console.log('countryCodeChange: ' + JSON.stringify(code)); } - WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) - var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}}; - geolocation.on('fenceStatusChange', requestInfo, wantAgent); - geolocation.off('fenceStatusChange', requestInfo, wantAgent); + geolocation.on('countryCodeChange', callback); + geolocation.off('countryCodeChange', callback); ``` @@ -438,18 +456,24 @@ getCurrentLocation(request: CurrentLocationRequest, callback: AsyncCallback<L **系统能力**:SystemCapability.Location.Location.Core -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | request | [CurrentLocationRequest](#currentlocationrequest) | 否 | 设置位置请求参数。 | | callback | AsyncCallback<[Location](#location)> | 是 | 用来接收位置信息的回调。 | -- 示例: +**示例** - ``` + ```js var requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0}; var locationChange = (err, location) => { - console.log('locationChanger: ' + err + 'data: ' + location); + if (err) { + console.log('locationChanger: err=' + JSON.stringify(err)); + } + if (location) { + console.log('locationChanger: location=' + JSON.stringify(location)); + } }; geolocation.getCurrentLocation(requestInfo, locationChange); geolocation.getCurrentLocation(locationChange); @@ -467,22 +491,24 @@ getCurrentLocation(request?: CurrentLocationRequest) : Promise<Location> **系统能力**:SystemCapability.Location.Location.Core -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | request | [CurrentLocationRequest](#currentlocationrequest) | 否 | 设置位置请求参数。 | -- 返回值: +**返回值**: + | 参数名 | 说明 | | -------- | -------- | | Promise<[Location](#location)> | 返回位置信息。 | -- 示例: +**示例** - ``` + ```js var requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0}; - locationEventListener.getCurrentLocation(requestInfo).then((result) => { + geolocation.getCurrentLocation(requestInfo).then((result) => { console.log('current location: ' + JSON.stringify(result)); }); ``` @@ -498,17 +524,23 @@ getLastLocation(callback: AsyncCallback<Location>) : void **系统能力**:SystemCapability.Location.Location.Core -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<[Location](#location)> | 是 | 用来接收上次位置的回调。 | -- 示例: +**示例** - ``` + ```js geolocation.getLastLocation((err, data) => { - console.log('getLastLocation: ' + err + " data: " + JSON.stringify(data)); + if (err) { + console.log('getLastLocation: err=' + JSON.stringify(err)); + } + if (data) { + console.log('getLastLocation: data=' + JSON.stringify(data)); + } }); ``` @@ -523,15 +555,16 @@ getLastLocation() : Promise<Location> **系统能力**:SystemCapability.Location.Location.Core -- 返回值: +**返回值**: + | 参数名 | 说明 | | -------- | -------- | | Promise<[Location](#location)> | 返回上次位置信息。 | -- 示例: +**示例** - ``` + ```js geolocation.getLastLocation().then((result) => { console.log('getLastLocation: result: ' + JSON.stringify(result)); }); @@ -549,17 +582,22 @@ isLocationEnabled(callback: AsyncCallback<boolean>) : void **系统能力**:SystemCapability.Location.Location.Core -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<boolean> | 是 | 用来接收位置服务状态的回调。 | - -- 示例: +**示例** - ``` + ```js geolocation.isLocationEnabled((err, data) => { - console.log('isLocationEnabled: ' + err + " data: " + data); + if (err) { + console.log('isLocationEnabled: err=' + JSON.stringify(err)); + } + if (data) { + console.log('isLocationEnabled: data=' + JSON.stringify(data)); + } }); ``` @@ -574,16 +612,17 @@ isLocationEnabled() : Promise<boolean> **系统能力**:SystemCapability.Location.Location.Core -- 返回值: +**返回值**: + | 参数名 | 说明 | | -------- | -------- | | Promise<boolean> | 返回位置服务是否可用的状态。 | -- 示例: +**示例** - ``` + ```js geolocation.isLocationEnabled().then((result) => { - console.log('promise, isLocationEnabled: ' + result); + console.log('promise, isLocationEnabled: ' + JSON.stringify(result)); }); ``` @@ -599,17 +638,22 @@ requestEnableLocation(callback: AsyncCallback<boolean>) : void **系统能力**:SystemCapability.Location.Location.Core -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<boolean> | 是 | 用来接收位置服务状态的回调。 | - -- 示例: +**示例** - ``` + ```js geolocation.requestEnableLocation((err, data) => { - console.log('requestEnableLocation: ' + err + " data: " + data); + if (err) { + console.log('requestEnableLocation: err=' + JSON.stringify(err)); + } + if (data) { + console.log('requestEnableLocation: data=' + JSON.stringify(data)); + } }); ``` @@ -624,17 +668,17 @@ requestEnableLocation() : Promise<boolean> **系统能力**:SystemCapability.Location.Location.Core -- 返回值: +**返回值**: + | 参数名 | 说明 | | -------- | -------- | | Promise<boolean> | 返回位置服务是否可用。 | - -- 示例: +**示例** - ``` + ```js geolocation.requestEnableLocation().then((result) => { - console.log('promise, requestEnableLocation: ' + result); + console.log('promise, requestEnableLocation: ' + JSON.stringify(result)); }); ``` @@ -647,21 +691,26 @@ enableLocation(callback: AsyncCallback<boolean>) : void; **系统API**:此接口为系统接口,三方应用不支持调用。 -**需要权限**:ohos.permission.LOCATION +**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS **系统能力**:SystemCapability.Location.Location.Core -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<boolean> | 是 | 用来接收位置服务状态的回调。 | - -- 示例: +**示例** - ``` + ```js geolocation.enableLocation((err, data) => { - console.log('enableLocation: ' + err + " data: " + data); + if (err) { + console.log('enableLocation: err=' + JSON.stringify(err)); + } + if (data) { + console.log('enableLocation: data=' + JSON.stringify(data)); + } }); ``` @@ -674,21 +723,21 @@ enableLocation() : Promise<boolean> **系统API**:此接口为系统接口,三方应用不支持调用。 -**需要权限**:ohos.permission.LOCATION +**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS **系统能力**:SystemCapability.Location.Location.Core -- 返回值: +**返回值**: + | 参数名 | 说明 | | -------- | -------- | | Promise<boolean> | 返回位置服务是否可用。 | - -- 示例: +**示例** - ``` + ```js geolocation.enableLocation().then((result) => { - console.log('promise, enableLocation: ' + result); + console.log('promise, enableLocation: ' + JSON.stringify(result)); }); ``` @@ -700,21 +749,26 @@ disableLocation(callback: AsyncCallback<boolean>) : void; **系统API**:此接口为系统接口,三方应用不支持调用。 -**需要权限**:ohos.permission.LOCATION +**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS **系统能力**:SystemCapability.Location.Location.Core -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<boolean> | 是 | 用来接收位置服务状态的回调。 | - -- 示例: +**示例** - ``` + ```js geolocation.disableLocation((err, data) => { - console.log('disableLocation: ' + err + " data: " + data); + if (err) { + console.log('disableLocation: err=' + JSON.stringify(err)); + } + if (data) { + console.log('disableLocation: data=' + JSON.stringify(data)); + } }); ``` @@ -727,21 +781,21 @@ disableLocation() : Promise<boolean> **系统API**:此接口为系统接口,三方应用不支持调用。 -**需要权限**:ohos.permission.LOCATION +**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS **系统能力**:SystemCapability.Location.Location.Core -- 返回值: +**返回值**: + | 参数名 | 说明 | | -------- | -------- | | Promise<boolean> | 返回位置服务是否可用。 | - -- 示例: +**示例** - ``` + ```js geolocation.disableLocation().then((result) => { - console.log('promise, disableLocation: ' + result); + console.log('promise, disableLocation: ' + JSON.stringify(result)); }); ``` @@ -755,17 +809,22 @@ isGeoServiceAvailable(callback: AsyncCallback<boolean>) : void **系统能力**:SystemCapability.Location.Location.Geocoder -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<boolean> | 是 | 用来接收地理编码服务状态的回调。 | - -- 示例: +**示例** - ``` + ```js geolocation.isGeoServiceAvailable((err, data) => { - console.log('isGeoServiceAvailable: ' + err + " data: " + data); + if (err) { + console.log('isGeoServiceAvailable: err=' + JSON.stringify(err)); + } + if (data) { + console.log('isGeoServiceAvailable: data=' + JSON.stringify(data)); + } }); ``` @@ -780,22 +839,21 @@ isGeoServiceAvailable() : Promise<boolean> **系统能力**:SystemCapability.Location.Location.Geocoder -- 返回值: +**返回值**: + | 参数名 | 说明 | | -------- | -------- | | Promise<boolean> | 返回地理编码服务是否可用的状态。 | - -- 示例: +**示例** - ``` + ```js geolocation.isGeoServiceAvailable().then((result) => { - console.log('promise, isGeoServiceAvailable: ' + result); + console.log('promise, isGeoServiceAvailable: ' + JSON.stringify(result)); }); ``` - ## geolocation.getAddressesFromLocation getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>) : void @@ -806,18 +864,24 @@ getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback **系统能力**:SystemCapability.Location.Location.Geocoder -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | 是 | 设置逆地理编码请求的相关参数。 | | callback | AsyncCallback<Array<[GeoAddress](#geoaddress)>> | 是 | 设置接收逆地理编码请求的回调参数。 | -- 示例: +**示例** - ``` + ```js var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1}; geolocation.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => { - console.log('getAddressesFromLocation: ' + err + " data: " + JSON.stringify(data)); + if (err) { + console.log('getAddressesFromLocation: err=' + JSON.stringify(err)); + } + if (data) { + console.log('getAddressesFromLocation: data=' + JSON.stringify(data)); + } }); ``` @@ -832,19 +896,21 @@ getAddressesFromLocation(request: ReverseGeoCodeRequest) : Promise<Array<G **系统能力**:SystemCapability.Location.Location.Geocoder -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | 是 | 设置逆地理编码请求的相关参数。 | -- 返回值: +**返回值**: + | 参数名 | 说明 | | -------- | -------- | | Promise<Array<[GeoAddress](#geoaddress)>> | 返回地理描述信息。 | -- 示例: +**示例** - ``` + ```js var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1}; geolocation.getAddressesFromLocation(reverseGeocodeRequest).then((data) => { console.log('getAddressesFromLocation: ' + JSON.stringify(data)); @@ -862,19 +928,24 @@ getAddressesFromLocationName(request: GeoCodeRequest, callback: AsyncCallback< **系统能力**:SystemCapability.Location.Location.Geocoder -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | request | [GeoCodeRequest](#geocoderequest) | 是 | 设置地理编码请求的相关参数。 | | callback | AsyncCallback<Array<[GeoAddress](#geoaddress)>> | 是 | 设置接收地理编码请求的回调参数。 | - -- 示例: +**示例** - ``` + ```js var geocodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1}; geolocation.getAddressesFromLocationName(geocodeRequest, (err, data) => { - console.log('getAddressesFromLocationName: ' + err + " data: " + JSON.stringify(data)); + if (err) { + console.log('getAddressesFromLocationName: err=' + JSON.stringify(err)); + } + if (data) { + console.log('getAddressesFromLocationName: data=' + JSON.stringify(data)); + } }); ``` @@ -889,19 +960,21 @@ getAddressesFromLocationName(request: GeoCodeRequest) : Promise<Array<GeoA **系统能力**:SystemCapability.Location.Location.Geocoder -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | request | [GeoCodeRequest](#geocoderequest) | 是 | 设置地理编码请求的相关参数。 | -- 返回值: +**返回值**: + | 参数名 | 说明 | | -------- | -------- | | Promise<Array<[GeoAddress](#geoaddress)>> | 设置接收地理编码请求的回调参数。 | -- 示例: +**示例** - ``` + ```js var geocodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1}; geolocation.getAddressesFromLocationName(geocodeRequest).then((result) => { console.log('getAddressesFromLocationName: ' + JSON.stringify(result)); @@ -909,7 +982,6 @@ getAddressesFromLocationName(request: GeoCodeRequest) : Promise<Array<GeoA ``` - ## geolocation.getCachedGnssLocationsSize8+ getCachedGnssLocationsSize(callback: AsyncCallback<number>) : void; @@ -920,16 +992,22 @@ getCachedGnssLocationsSize(callback: AsyncCallback<number>) : void; **系统能力**:SystemCapability.Location.Location.Gnss -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<number> | 是 | 用来接收GNSS芯片缓存位置个数的回调。 | -- 示例: +**示例** - ``` + ```js geolocation.getCachedGnssLocationsSize((err, size) => { - console.log('getCachedGnssLocationsSize: err:' + err + " size: " + size); + if (err) { + console.log('getCachedGnssLocationsSize: err=' + JSON.stringify(err)); + } + if (size) { + console.log('getCachedGnssLocationsSize: size=' + JSON.stringify(size)); + } }); ``` @@ -944,16 +1022,17 @@ getCachedGnssLocationsSize() : Promise<number>; **系统能力**:SystemCapability.Location.Location.Gnss -- 返回值: +**返回值**: + | 参数名 | 说明 | | -------- | -------- | | Promise<number> | 返回GNSS缓存位置的个数。 | -- 示例: +**示例** - ``` + ```js geolocation.getCachedGnssLocationsSize().then((result) => { - console.log('promise, getCachedGnssLocationsSize: ' + result); + console.log('promise, getCachedGnssLocationsSize: ' + JSON.stringify(result)); }); ``` @@ -968,16 +1047,22 @@ flushCachedGnssLocations(callback: AsyncCallback<boolean>) : void; **系统能力**:SystemCapability.Location.Location.Gnss -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<boolean> | 是 | 用来接收清空GNSS芯片缓存位置操作的结果。 | -- 示例: +**示例** - ``` + ```js geolocation.flushCachedGnssLocations((err, result) => { - console.log('flushCachedGnssLocations: err:' + err + " result: " + result); + if (err) { + console.log('flushCachedGnssLocations: err=' + JSON.stringify(err)); + } + if (result) { + console.log('flushCachedGnssLocations: result=' + JSON.stringify(result)); + } }); ``` @@ -992,16 +1077,17 @@ flushCachedGnssLocations() : Promise<boolean>; **系统能力**:SystemCapability.Location.Location.Gnss -- 返回值: +**返回值**: + | 参数名 | 说明 | | -------- | -------- | | Promise<boolean> | 清空所有GNSS缓存位置是否成功。 | -- 示例: +**示例** - ``` + ```js geolocation.flushCachedGnssLocations().then((result) => { - console.log('promise, flushCachedGnssLocations: ' + result); + console.log('promise, flushCachedGnssLocations: ' + JSON.stringify(result)); }); ``` @@ -1016,18 +1102,24 @@ sendCommand(command: LocationCommand, callback: AsyncCallback<boolean>) : **系统能力**:SystemCapability.Location.Location.Core -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | command | LocationCommand | 是 | 指定目标场景,和将要发送的命令(字符串)。 | | callback | AsyncCallback<boolean> | 是 | 用来接收命令发送的结果。 | -- 示例: +**示例** - ``` + ```js var requestInfo = {'scenario': 0x301, 'command': "command_1"}; geolocation.sendCommand(requestInfo, (err, result) => { - console.log('sendCommand: err:' + err + " result: " + result); + if (err) { + console.log('sendCommand: err=' + JSON.stringify(err)); + } + if (result) { + console.log('sendCommand: result=' + JSON.stringify(result)); + } }); ``` @@ -1042,22 +1134,24 @@ sendCommand(command: LocationCommand) : Promise<boolean>; **系统能力**:SystemCapability.Location.Location.Core -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | command | LocationCommand | 是 | 指定目标场景,和将要发送的命令(字符串)。 | -- 返回值: +**返回值**: + | 参数名 | 说明 | | -------- | -------- | | Promise<boolean> | 表示命令发送成功或失败。 | -- 示例: +**示例** - ``` + ```js var requestInfo = {'scenario': 0x301, 'command': "command_1"}; geolocation.sendCommand(requestInfo).then((result) => { - console.log('promise, sendCommand: ' + result); + console.log('promise, sendCommand: ' + JSON.stringify(result)); }); ``` @@ -1074,17 +1168,23 @@ isLocationPrivacyConfirmed(type : LocationPrivacyType, callback: AsyncCallback&l **系统能力**:SystemCapability.Location.Location.Core -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | LocationPrivacyType | 是 | 指定隐私申明场景,例如开机向导中的隐私申明、开启网络定位功能时弹出的隐私申明等。 | | callback | AsyncCallback<boolean> | 是 | 表示用户是否同意定位服务隐私申明。 | -- 示例: +**示例** - ``` + ```js geolocation.isLocationPrivacyConfirmed(1, (err, result) => { - console.log('isLocationPrivacyConfirmed: err:' + err + " result: " + result); + if (err) { + console.log('isLocationPrivacyConfirmed: err=' + JSON.stringify(err)); + } + if (result) { + console.log('isLocationPrivacyConfirmed: result=' + JSON.stringify(result)); + } }); ``` @@ -1101,21 +1201,23 @@ isLocationPrivacyConfirmed(type : LocationPrivacyType,) : Promise<boolean> **系统能力**:SystemCapability.Location.Location.Core -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | LocationPrivacyType | 是 | 指定隐私申明场景,例如开机向导中的隐私申明、开启网络定位功能时弹出的隐私申明等。 | -- 返回值: +**返回值**: + | 参数名 | 说明 | | -------- | -------- | | Promise<boolean> | 表示用户是否同意定位服务隐私申明。 | -- 示例: +**示例** - ``` + ```js geolocation.isLocationPrivacyConfirmed(1).then((result) => { - console.log('promise, isLocationPrivacyConfirmed: ' + result); + console.log('promise, isLocationPrivacyConfirmed: ' + JSON.stringify(result)); }); ``` @@ -1132,18 +1234,24 @@ setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed: boolean **系统能力**:SystemCapability.Location.Location.Core -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | LocationPrivacyType | 是 | 指定隐私申明场景,例如开机向导中的隐私申明、开启网络定位功能时弹出的隐私申明等。 | | isConfirmed | boolean | 是 | 表示用户是否同意定位服务隐私申明。 | | callback | AsyncCallback<boolean> | 是 | 表示操作是否成功。 | -- 示例: +**示例** - ``` + ```js geolocation.setLocationPrivacyConfirmStatus(1, true, (err, result) => { - console.log('isLocationPrivacyConfirmed: err:' + err + " result: " + result); + if (err) { + console.log('setLocationPrivacyConfirmStatus: err=' + JSON.stringify(err)); + } + if (result) { + console.log('setLocationPrivacyConfirmStatus: result=' + JSON.stringify(result)); + } }); ``` @@ -1160,26 +1268,534 @@ setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed : boolea **系统能力**:SystemCapability.Location.Location.Core -- 参数: +**参数**: + | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | LocationPrivacyType | 是 | 指定隐私申明场景,例如开机向导中的隐私申明、开启网络定位功能时弹出的隐私申明等。 | | isConfirmed | boolean | 是 | 表示用户是否同意定位服务隐私申明。 | -- 返回值: +**返回值**: + | 参数名 | 说明 | | -------- | -------- | | Promise<boolean> | 表示操作是否成功。 | -- 示例: +**示例** - ``` + ```js geolocation.setLocationPrivacyConfirmStatus(1, true).then((result) => { - console.log('promise, setLocationPrivacyConfirmStatus: ' + result); + console.log('promise, setLocationPrivacyConfirmStatus: ' + JSON.stringify(result)); + }); + ``` + + +## geolocation.getCountryCode9+ + +getCountryCode(callback: AsyncCallback<CountryCode>) : void; + +查询当前的国家码。 + +**系统能力**:SystemCapability.Location.Location.Core + +**参数**: + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | callback | AsyncCallback<CountryCode> | 是 | 用来接收国家码。 | + +**示例** + + ```js + geolocation.getCountryCode((err, result) => { + if (err) { + console.log('getCountryCode: err=' + JSON.stringify(err)); + } + if (result) { + console.log('getCountryCode: result=' + JSON.stringify(result)); + } + }); + ``` + + +## geolocation.getCountryCode9+ + +getCountryCode() : Promise<CountryCode>; + +查询当前的国家码。 + +**系统能力**:SystemCapability.Location.Location.Core + +**参数**: + +无 + +**返回值**: + + | 参数名 | 说明 | + | -------- | -------- | + | Promise<CountryCode> | 返回国家码。 | + +**示例** + + ```js + geolocation.getCountryCode() + .then((result) => { + console.log('promise, getCountryCode: result=' + JSON.stringify(result)); + }) + .catch((error) => { + console.log('promise, getCountryCode: error=' + JSON.stringify(error)); + }); + ``` + + +## geolocation.enableLocationMock9+ + +enableLocationMock(scenario?: LocationRequestScenario, callback: AsyncCallback<void>) : void; + +使能某个场景的位置模拟功能,同一时间只能使能一个场景的位置模拟功能。 + +**系统能力**:SystemCapability.Location.Location.Core + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +**参数**: + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | scenario | LocationRequestScenario | 否 | 指示在什么场景下使能位置模拟功能。 | + | callback | AsyncCallback<void> | 是 | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 | + +**示例** + + ```js + var request = {"scenario": 0x0301}; + geolocation.enableLocationMock(request, (err, result) => { + if (err) { + console.log('enableLocationMock: err=' + JSON.stringify(err)); + } + if (result) { + console.log('enableLocationMock: result=' + JSON.stringify(result)); + } + }); + ``` + +## geolocation.enableLocationMock9+ + +enableLocationMock(scenario?: LocationRequestScenario) : Promise<void>; + +使能某个场景的位置模拟功能,同一时间只能使能一个场景的位置模拟功能。 + +**系统能力**:SystemCapability.Location.Location.Core + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +**参数**: + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | scenario | LocationRequestScenario | 否 | 指示使能什么场景的位置模拟功能。如果不携带该参数则表示使能所有场景的位置模拟功能。 | + + +**返回值**: + + | 参数名 | 说明 | + | -------- | -------- | + | Promise<void> | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 | + +**示例** + + ```js + var request = {"scenario": 0x0301}; + geolocation.enableLocationMock(request) + .then((result) => { + if (result) { + console.log('promise, enableLocationMock: result=' + JSON.stringify(result)); + } + }) + .catch((error) => { + if (error) { + console.log('promise, enableLocationMock: error=' + JSON.stringify(error)); + } + }); + ``` + + +## geolocation.disableLocationMock9+ + +disableLocationMock(scenario?: LocationRequestScenario, callback: AsyncCallback<void>) : void; + +去使能位置模拟功能。 + +**系统能力**:SystemCapability.Location.Location.Core + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +**参数**: + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | scenario | LocationRequestScenario | 否 | 指示去使能某个场景的位置模拟功能。如果不携带该参数则表示去使能所有场景的位置模拟功能。 | + | callback | AsyncCallback<void> | 是 | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 | + +**示例** + + ```js + var request = {"scenario": 0x0301}; + geolocation.disableLocationMock(request, (err, result) => { + if (err) { + console.log('disableLocationMock: err=' + JSON.stringify(err)); + } + if (result) { + console.log('disableLocationMock: result=' + JSON.stringify(result)); + } + }); + ``` + + +## geolocation.disableLocationMock9+ + +disableLocationMock(scenario?: LocationRequestScenario) : Promise<void>; + +去使能位置模拟功能。 + +**系统能力**:SystemCapability.Location.Location.Core + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +**参数**: + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | scenario | LocationRequestScenario | 否 | 指示去使能某个场景的位置模拟功能。如果不携带该参数则表示去使能所有场景的位置模拟功能。 | + +**返回值**: + + | 参数名 | 说明 | + | -------- | -------- | + | Promise<void> | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 | + +**示例** + + ```js + var request = {"scenario": 0x0301}; + geolocation.disableLocationMock(request) + .then((result) => { + if (result) { + console.log('promise, disableLocationMock: result=' + JSON.stringify(result)); + } + }) + .catch((error) => { + if (error) { + console.log('promise, disableLocationMock: error=' + JSON.stringify(error)); + } + }); + ``` + + +## geolocation.setMockedLocations9+ + +setMockedLocations(config: LocationMockConfig, callback: AsyncCallback<void>) : void; + +设置模拟的位置信息,后面会以该接口中携带的时间间隔上报模拟位置。 + +**系统能力**:SystemCapability.Location.Location.Core + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +**参数**: + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | config | LocationMockConfig | 是 | 指示位置模拟的配置参数,包含模拟位置上报的时间间隔和模拟位置数组。 | + | callback | AsyncCallback<void> | 是 | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 | + +**示例** + + ```js + var locations = [ + {"latitude": 30.12, "longitude": 120.11, "altitude": 123, "accuracy": 1, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 1000000000, "additionSize": 0, "isFromMock": true}, + {"latitude": 31.13, "longitude": 121.11, "altitude": 123, "accuracy": 2, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 2000000000, "additionSize": 0, "isFromMock": true}, + {"latitude": 32.14, "longitude": 122.11, "altitude": 123, "accuracy": 3, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 3000000000, "additionSize": 0, "isFromMock": true}, + {"latitude": 33.15, "longitude": 123.11, "altitude": 123, "accuracy": 4, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 4000000000, "additionSize": 0, "isFromMock": true}, + {"latitude": 34.16, "longitude": 124.11, "altitude": 123, "accuracy": 5, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 5000000000, "additionSize": 0, "isFromMock": true} + ]; + var config = {"timeInterval": 5, "locations": locations}; + geolocation.setMockedLocations(config, (err, data) => { + if (err) { + console.log('setMockedLocations: err=' + JSON.stringify(err)); + } + if (data) { + console.log('setMockedLocations: data=' + JSON.stringify(data)); + } + }); + ``` + +## geolocation.setMockedLocations9+ + +setMockedLocations(config: LocationMockConfig) : Promise<void>; + +设置模拟的位置信息,后面会以该接口中携带的时间间隔上报模拟位置。 + +**系统能力**:SystemCapability.Location.Location.Core + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +**参数**: + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | config | LocationMockConfig | 是 | 指示位置模拟的配置参数,包含模拟位置上报的时间间隔和模拟位置数组。 | + +**返回值**: + + | 参数名 | 说明 | + | -------- | -------- | + | Promise<void> | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 | + +**示例** + + ```js + var locations = [ + {"latitude": 30.12, "longitude": 120.11, "altitude": 123, "accuracy": 1, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 1000000000, "additionSize": 0, "isFromMock": true}, + {"latitude": 31.13, "longitude": 121.11, "altitude": 123, "accuracy": 2, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 2000000000, "additionSize": 0, "isFromMock": true}, + {"latitude": 32.14, "longitude": 122.11, "altitude": 123, "accuracy": 3, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 3000000000, "additionSize": 0, "isFromMock": true}, + {"latitude": 33.15, "longitude": 123.11, "altitude": 123, "accuracy": 4, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 4000000000, "additionSize": 0, "isFromMock": true}, + {"latitude": 34.16, "longitude": 124.11, "altitude": 123, "accuracy": 5, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 5000000000, "additionSize": 0, "isFromMock": true} + ]; + var config = {"timeInterval": 5, "locations":locations}; + geolocation.setMockedLocations(config) + .then((result) => { + if (result) { + console.log('promise, setMockedLocations: result=' + JSON.stringify(result)); + } + }) + .catch((error) => { + if (error) { + console.log('promise, setMockedLocations: error=' + JSON.stringify(error)); + } + }); + ``` + + + +## geolocation.enableReverseGeocodingMock9+ + +enableReverseGeocodingMock(callback: AsyncCallback<void>) : void; + +使能逆地理编码模拟功能。 + +**系统能力**:SystemCapability.Location.Location.Core + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +**参数**: + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | callback | AsyncCallback<void> | 是 | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 | + +**示例** + + ```js + geolocation.enableReverseGeocodingMock((err, data) => { + if (err) { + console.log('enableReverseGeocodingMock: err=' + JSON.stringify(err)); + } + if (data) { + console.log('enableReverseGeocodingMock: data=' + JSON.stringify(data)); + } }); ``` +## geolocation.enableReverseGeocodingMock9+ + +enableReverseGeocodingMock() : Promise<void>; + +使能逆地理编码模拟功能。 + +**系统能力**:SystemCapability.Location.Location.Core + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +**参数**: + +无 + +**返回值**: + + | 参数名 | 说明 | + | -------- | -------- | + | Promise<void> | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 | + +**示例** + + ```js + geolocation.enableReverseGeocodingMock() + .then((result) => { + if (result) { + console.log('promise, enableReverseGeocodingMock: result=' + JSON.stringify(result)); + } + }) + .catch((error) => { + if (error) { + console.log('promise, enableReverseGeocodingMock: error=' + JSON.stringify(error)); + } + }); + ``` + + +## geolocation.disableReverseGeocodingMock9+ + +disableReverseGeocodingMock(callback: AsyncCallback<void>) : void; + +去使能逆地理编码模拟功能。 + +**系统能力**:SystemCapability.Location.Location.Core + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +**参数**: + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | callback | AsyncCallback<void> | 是 | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 | + +**示例** + + ```js + geolocation.disableReverseGeocodingMock((err, result) => { + if (err) { + console.log('disableReverseGeocodingMock: err=' + JSON.stringify(err)); + } + if (result) { + console.log('disableReverseGeocodingMock: result=' + JSON.stringify(result)); + } + }); + ``` + + +## geolocation.disableReverseGeocodingMock9+ + +disableReverseGeocodingMock() : Promise<void>; + +去使能逆地理编码模拟功能。 + +**系统能力**:SystemCapability.Location.Location.Core + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +**参数**: + +无 + +**返回值**: + + | 参数名 | 说明 | + | -------- | -------- | + | Promise<void> | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 | + +**示例** + + ```js + geolocation.disableReverseGeocodingMock() + .then((result) => { + if (result) { + console.log('promise, disableReverseGeocodingMock: result=' + JSON.stringify(result)); + } + }) + .catch((error) => { + if (error) { + console.log('promise, disableReverseGeocodingMock: error=' + JSON.stringify(error)); + } + }); + ``` + + +## geolocation.setReverseGeocodingMockInfo9+ + +setReverseGeocodingMockInfo(mockInfos: Array<ReverseGeocodingMockInfo>, callback: AsyncCallback<void>) : void; + +设置逆地理编码模拟功能的配置信息,包含了位置和地名的对应关系,后续进行逆地理编码查询时如果位置信息位于配置信息中,就返回对应的地名。 + +**系统能力**:SystemCapability.Location.Location.Core + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +**参数**: + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | mockInfos | Array<ReverseGeocodingMockInfo> | 是 | 指示逆地理编码模拟功能的配置参数数组。逆地理编码模拟功能的配置参数包含了一个位置和一个地名。 | + | callback | AsyncCallback<void> | 是 | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 | + +**示例** + + ```js + var mockInfos = [ + {"location": {"locale": "shanghai", "latitude": 30.12, "longitude": 120.11, "maxItems": 1}, "geoAddress": {"locale": "shanghai", "latitude": 30.12, "longitude": 120.11, "maxItems": 1, "isFromMock": true}}, + {"location": {"locale": "beijing", "latitude": 31.12, "longitude": 121.11, "maxItems": 1}, "geoAddress": {"locale": "beijing", "latitude": 31.12, "longitude": 121.11, "maxItems": 1, "isFromMock": true}}, + {"location": {"locale": "shenzhen", "latitude": 32.12, "longitude": 122.11, "maxItems": 1}, "geoAddress": {"locale": "shenzhen", "latitude": 32.12, "longitude": 122.11, "maxItems": 1, "isFromMock": true}}, + {"location": {"locale": "wuhan", "latitude": 33.12, "longitude": 123.11, "maxItems": 1}, "geoAddress": {"locale": "wuhan", "latitude": 33.12, "longitude": 123.11, "maxItems": 1, "isFromMock": true}}, + {"location": {"locale": "chengdu", "latitude": 34.12, "longitude": 124.11, "maxItems": 1}, "geoAddress": {"locale": "chengdu", "latitude": 34.12, "longitude": 124.11, "maxItems": 1, "isFromMock": true}}, + ]; + geolocation.setReverseGeocodingMockInfo(mockInfos, (err, data) => { + if (err) { + console.log('promise, setReverseGeocodingMockInfo, err:' + JSON.stringify(err)); + } + if (data) { + console.log('promise, setReverseGeocodingMockInfo, data:' + JSON.stringify(data)); + } + }); + ``` + + +## geolocation.setReverseGeocodingMockInfo9+ + +setReverseGeocodingMockInfo(mockInfos: Array<ReverseGeocodingMockInfo>) : Promise<void>; + +设置逆地理编码模拟功能的配置信息,包含了位置和地名的对应关系,后续进行逆地理编码查询时如果位置信息位于配置信息中,就返回对应的地名。 + +**系统能力**:SystemCapability.Location.Location.Core + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +**参数**: + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | mockInfos | Array<ReverseGeocodingMockInfo> | 是 | 指示逆地理编码模拟功能的配置信息数组。逆地理编码模拟功能的配置信息包含了一个位置和一个地名。 | + +**返回值**: + + | 参数名 | 说明 | + | -------- | -------- | + | Promise<void> | 用来接收执行结果,如果执行成功就返回nullptr,否则就返回错误信息。 | + +**示例** + + ```js + var mockInfos = [ + {"location": {"locale": "shanghai", "latitude": 30.12, "longitude": 120.11, "maxItems": 1}, "geoAddress": {"locale": "shanghai", "latitude": 30.12, "longitude": 120.11, "maxItems": 1, "isFromMock": true}}, + {"location": {"locale": "beijing", "latitude": 31.12, "longitude": 121.11, "maxItems": 1}, "geoAddress": {"locale": "beijing", "latitude": 31.12, "longitude": 121.11, "maxItems": 1, "isFromMock": true}}, + {"location": {"locale": "shenzhen", "latitude": 32.12, "longitude": 122.11, "maxItems": 1}, "geoAddress": {"locale": "shenzhen", "latitude": 32.12, "longitude": 122.11, "maxItems": 1, "isFromMock": true}}, + {"location": {"locale": "wuhan", "latitude": 33.12, "longitude": 123.11, "maxItems": 1}, "geoAddress": {"locale": "wuhan", "latitude": 33.12, "longitude": 123.11, "maxItems": 1, "isFromMock": true}}, + {"location": {"locale": "chengdu", "latitude": 34.12, "longitude": 124.11, "maxItems": 1}, "geoAddress": {"locale": "chengdu", "latitude": 34.12, "longitude": 124.11, "maxItems": 1, "isFromMock": true}}, + ]; + geolocation.setReverseGeocodingMockInfo(mockInfos) + .then((result) => { + if (result) { + console.log('promise, setReverseGeocodingMockInfo: result=' + JSON.stringify(result)); + } + }) + .catch((error) => { + if (error) { + console.log('promise, setReverseGeocodingMockInfo: error=' + JSON.stringify(error)); + } + }); + ``` + ## LocationRequestPriority @@ -1225,13 +1841,15 @@ setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed : boolea | 名称 | 默认值 | 说明 | | -------- | -------- | -------- | -| INPUT_PARAMS_ERROR | 101 | 表示输入参数错误。 | -| REVERSE_GEOCODE_ERROR | 102 | 表示逆地理编码接口调用失败。 | -| GEOCODE_ERROR | 103 | 表示地理编码接口调用失败。 | -| LOCATOR_ERROR | 104 | 表示定位失败。 | -| LOCATION_SWITCH_ERROR | 105 | 表示定位开关。 | -| LAST_KNOWN_LOCATION_ERROR | 106 | 表示获取上次位置失败。 | -| LOCATION_REQUEST_TIMEOUT_ERROR | 107 | 表示单次定位,没有在指定时间内返回位置。 | +| NOT_SUPPORTED9+ | 100 | 表示该接口功能不支持。 | +| INPUT_PARAMS_ERROR7+ | 101 | 表示输入参数错误。 | +| REVERSE_GEOCODE_ERROR7+ | 102 | 表示逆地理编码接口调用失败。 | +| GEOCODE_ERROR7+ | 103 | 表示地理编码接口调用失败。 | +| LOCATOR_ERROR7+ | 104 | 表示定位失败。 | +| LOCATION_SWITCH_ERROR7+ | 105 | 表示定位开关。 | +| LAST_KNOWN_LOCATION_ERROR7+ | 106 | 表示获取上次位置失败。 | +| LOCATION_REQUEST_TIMEOUT_ERROR7+ | 107 | 表示单次定位,没有在指定时间内返回位置。 | +| QUERY_COUNTRY_CODE_ERROR9+ | 108 | 表示国家码查询失败。 | ## ReverseGeoCodeRequest @@ -1279,24 +1897,25 @@ setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed : boolea | 名称 | 参数类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | -| latitude | number | 否 | 表示纬度信息,正值表示北纬,负值表示南纬。 | -| longitude | number | 否 | 表示经度信息,正值表示东经,负值表是西经。 | -| locale | string | 否 | 表示位置描述信息的语言,“zh”代表中文,“en”代表英文。 | -| placeName | string | 否 | 表示地区信息。 | -| countryCode | string | 否 | 表示国家码信息。 | -| countryName | string | 否 | 表示国家信息。 | -| administrativeArea | string | 否 | 表示省份区域信息。 | -| subAdministrativeArea | string | 否 | 表示表示子区域信息。 | -| locality | string | 否 | 表示城市信息。 | -| subLocality | string | 否 | 表示子城市信息。 | -| roadName | string | 否 | 表示路名信息。 | -| subRoadName | string | 否 | 表示子路名信息。 | -| premises | string | 否 | 表示门牌号信息。 | -| postalCode | string | 否 | 表示邮政编码信息。 | -| phoneNumber | string | 否 | 表示联系方式信息。 | -| addressUrl | string | 否 | 表示位置信息附件的网址信息。 | -| descriptions | Array<string> | 否 | 表示附加的描述信息。 | -| descriptionsSize | number | 否 | 表示附加的描述信息数量。 | +| latitude7+ | number | 否 | 表示纬度信息,正值表示北纬,负值表示南纬。 | +| longitude7+ | number | 否 | 表示经度信息,正值表示东经,负值表是西经。 | +| locale7+ | string | 否 | 表示位置描述信息的语言,“zh”代表中文,“en”代表英文。 | +| placeName7+ | string | 否 | 表示地区信息。 | +| countryCode7+ | string | 否 | 表示国家码信息。 | +| countryName7+ | string | 否 | 表示国家信息。 | +| administrativeArea7+ | string | 否 | 表示省份区域信息。 | +| subAdministrativeArea7+ | string | 否 | 表示表示子区域信息。 | +| locality7+ | string | 否 | 表示城市信息。 | +| subLocality7+ | string | 否 | 表示子城市信息。 | +| roadName7+ | string | 否 | 表示路名信息。 | +| subRoadName7+ | string | 否 | 表示子路名信息。 | +| premises7+ | string | 否 | 表示门牌号信息。 | +| postalCode7+ | string | 否 | 表示邮政编码信息。 | +| phoneNumber7+ | string | 否 | 表示联系方式信息。 | +| addressUrl7+ | string | 否 | 表示位置信息附件的网址信息。 | +| descriptions7+ | Array<string> | 否 | 表示附加的描述信息。 | +| descriptionsSize7+ | number | 否 | 表示附加的描述信息数量。 | +| isFromMock9+ | Boolean | 否 | 表示地名信息是否来自于逆地理编码模拟功能。 | ## LocationRequest @@ -1434,13 +2053,68 @@ GNSS围栏的配置参数。目前只支持圆形围栏。 | 名称 | 参数类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | -| latitude | number | 是 | 表示纬度信息,正值表示北纬,负值表示南纬。 | -| longitude | number | 是 | 表示经度信息,正值表示东经,负值表是西经。 | -| altitude | number | 是 | 表示高度信息,单位米。 | -| accuracy | number | 是 | 表示精度信息,单位米。 | -| speed | number | 是 | 表示速度信息,单位米每秒。 | -| timeStamp | number | 是 | 表示位置时间戳,UTC格式。 | -| direction | number | 是 | 表示航向信息。 | -| timeSinceBoot | number | 是 | 表示位置时间戳,开机时间格式。 | -| additions | Array<string> | 否 | 附加信息。 | -| additionSize | number | 否 | 附加信息数量。 | +| latitude7+ | number | 是 | 表示纬度信息,正值表示北纬,负值表示南纬。 | +| longitude7+ | number | 是 | 表示经度信息,正值表示东经,负值表是西经。 | +| altitude7+ | number | 是 | 表示高度信息,单位米。 | +| accuracy7+ | number | 是 | 表示精度信息,单位米。 | +| speed7+ | number | 是 | 表示速度信息,单位米每秒。 | +| timeStamp7+ | number | 是 | 表示位置时间戳,UTC格式。 | +| direction7+ | number | 是 | 表示航向信息。 | +| timeSinceBoot7+ | number | 是 | 表示位置时间戳,开机时间格式。 | +| additions7+ | Array<string> | 否 | 附加信息。 | +| additionSize7+ | number | 否 | 附加信息数量。 | +| isFromMock9+ | Boolean | 否 | 表示位置信息是否来自于位置模拟功能。 | + + +## ReverseGeocodingMockInfo9+ + +逆地理编码模拟功能的配置信息,包含一个位置信息和一个地名信息。 + +**系统能力**:SystemCapability.Location.Location.Core + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +| 名称 | 参数类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| location | ReverseGeoCodeRequest | 是 | 表示经纬度信息。 | +| geoAddress | GeoAddress | 是 | 表示地名信息。 | + + +## LocationMockConfig9+ + +位置模拟功能的配置参数,包含了模拟位置上报的时间间隔和模拟位置数组。 + +**系统能力**:SystemCapability.Location.Location.Core + +**系统API**:此接口为系统接口,三方应用不支持调用。 + +| 名称 | 参数类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| timeInterval | number | 是 | 表示模拟位置上报的时间间隔,单位是秒。 | +| locations | Array<Location> | 是 | 表示模拟位置数组。 | + + +## CountryCode9+ + +国家码信息结构体,包含国家码字符串和国家码的来源信息。 + +**系统能力**:SystemCapability.Location.Location.Core + +| 名称 | 参数类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| country | string | 是 | 表示国家码字符串。 | +| type | CountryCodeType | 是 | 表示国家码信息来源。 | + + +## CountryCodeType9+ + +国家码来源类型。 + +**系统能力**:SystemCapability.Location.Location.Core + +| 名称 | 默认值 | 说明 | +| -------- | -------- | -------- | +| COUNTRY_CODE_FROM_LOCALE | 1 | 从全球化模块的语言配置信息中获取到的国家码。 | +| COUNTRY_CODE_FROM_SIM | 2 | 从SIM卡中获取到的国家码。 | +| COUNTRY_CODE_FROM_LOCATION | 3 | 基于用户的位置信息,通过逆地理编码查询到的国家码。 | +| COUNTRY_CODE_FROM_NETWORK | 4 | 从蜂窝网络注册信息中获取到的国家码。 | \ No newline at end of file -- GitLab From 529ff1fcd6ccffa59996dd996931a2937e2b2ea9 Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 10:33:10 +0000 Subject: [PATCH 556/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E9=93=BE=E6=8E=A5=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/hdi-apis/interface_pin_i_executor.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md b/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md index 84471c4498..78e2069a18 100644 --- a/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md +++ b/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md @@ -60,7 +60,7 @@ IExecutor::Authenticate ([in] unsigned long scheduleId, [in] unsigned long templ | scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | | templateId | 指定要认证的模版ID。 | | extraInfo | 其他相关信息,用于支持信息扩展。 | -| callbackObj | 回调对象[IExecutorCallback](interface_i_executor_callback.md)。 | +| callbackObj | 回调对象[IExecutorCallback](interface_pin_i_executor_callback.md)。 | **返回:** @@ -134,7 +134,7 @@ IExecutor::Enroll ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo | -------- | -------- | | scheduleId | 调度ID,用于标识一次操作请求的调度过程。 | | extraInfo | 其他相关信息,用于支持信息扩展。 | -| callbackObj | 回调对象[IExecutorCallback](interface_i_executor_callback.md)。 | +| callbackObj | 回调对象[IExecutorCallback](interface_pin_i_executor_callback.md)。 | **返回:** @@ -261,7 +261,7 @@ IExecutor::SendCommand ([in] int commandId, [in] unsigned char[] extraInfo, [in] | -------- | -------- | | commandId | 操作命令ID[CommandId](_hdf_pin_auth.md#commandid)。 | | extraInfo | 其他相关信息,用于支持信息扩展。 | -| callbackObj | 回调对象[IExecutorCallback](interface_i_executor_callback.md)。 | +| callbackObj | 回调对象[IExecutorCallback](interface_pin_i_executor_callback.md)。 | **返回:** -- GitLab From 510a1ec70863104a0e5104a1664ce910d22cbed9 Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 10:35:55 +0000 Subject: [PATCH 557/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E9=93=BE=E6=8E=A5=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/hdi-apis/interface_pin_i_executor.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md b/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md index 78e2069a18..16a7d13ecb 100644 --- a/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md +++ b/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md @@ -20,10 +20,10 @@ | [h2GetExecutorInfo](#getexecutorinfo) ([out] struct [ExecutorInfo](_executor_info.md) executorInfo) | 获取执行器信息,口令认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。 [更多...](#getexecutorinfo) | | [OnRegisterFinish](#onregisterfinish) ([in] unsigned long[] templateIdList, [in] unsigned char[] frameworkPublicKey, [in] unsigned char[] extraInfo) | 完成执行器注册,对口令模版信息进行对账,用于删除无效的口令模板及相关信息。 [更多...](#onregisterfinish) | | [OnSetData](interface_i_executor.md#onsetdata) ([in] unsigned long scheduleId, [in] unsigned long authSubType, [in] unsigned char[] data) | 设置口令数据,口令认证驱动处理注册或认证口令请求时,如果口令数据由口令认证服务获取,需要通过该接口将口令数据传给口令认证驱动。 [更多...](interface_i_executor.md#onsetdata) | -| [Enroll](#enroll) ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_i_executor_callback.md) callbackObj) | 注册口令。 [更多...](#enroll) | -| [Authenticate](#authenticate) ([in] unsigned long scheduleId, [in] unsigned long templateId, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_i_executor_callback.md) callbackObj) | 认证口令。 [ERROR:Invalid link:zh-cn_topic_0000001304382272.xml#xref15713627408,link:zh-cn_topic_0000001304382272.xml](zh-cn_topic_0000001304382272.xml) | +| [Enroll](#enroll) ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_pin_i_executor_callback.md) callbackObj) | 注册口令。 [更多...](#enroll) | +| [Authenticate](#authenticate) ([in] unsigned long scheduleId, [in] unsigned long templateId, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_pin_i_executor_callback.md) callbackObj) | 认证口令。 [ERROR:Invalid link:zh-cn_topic_0000001304382272.xml#xref15713627408,link:zh-cn_topic_0000001304382272.xml](zh-cn_topic_0000001304382272.xml) | | [Delete](#delete) ([in] unsigned long templateId) | 删除口令。 [更多...](#delete) | -| [SendCommand](#sendcommand) ([in] int commandId, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_i_executor_callback.md) callbackObj) | 发送口令认证功能相关操作命令。 [更多...](#sendcommand) | +| [SendCommand](#sendcommand) ([in] int commandId, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_pin_i_executor_callback.md) callbackObj) | 发送口令认证功能相关操作命令。 [更多...](#sendcommand) | ## **详细描述** -- GitLab From ff16b47f5f1da8fedd6a48732fab89fe2262251d Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 10:39:35 +0000 Subject: [PATCH 558/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E9=93=BE=E6=8E=A5=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hdi-apis/pin__auth_2_i_executor_callback_8idl.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_callback_8idl.md b/zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_callback_8idl.md index 39258b4678..39df7ba902 100644 --- a/zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_callback_8idl.md +++ b/zh-cn/device-dev/reference/hdi-apis/pin__auth_2_i_executor_callback_8idl.md @@ -15,7 +15,7 @@ | 类 | 描述 | | -------- | -------- | -| [IExecutorCallback](interface_i_executor_callback.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见[IExecutor](interface_i_executor.md)。 [更多...](interface_i_executor_callback.md) | +| [IExecutorCallback](interface_pin_i_executor_callback.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见[IExecutor](interface_pin_i_executor.md)。 [更多...](interface_pin_i_executor_callback.md) | ### 变量 @@ -27,7 +27,7 @@ ## **详细描述** -定义异步API接口回调,用于返回异步接口的请求处理结果和获取信息。使用细节见[IExecutor](interface_i_executor.md)。 +定义异步API接口回调,用于返回异步接口的请求处理结果和获取信息。使用细节见[IExecutor](interface_pin_i_executor.md)。 **Since:** -- GitLab From dbee1cda2d380771d6a57c8d5888656f79c8c022 Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 10:44:14 +0000 Subject: [PATCH 559/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E9=93=BE=E6=8E=A5=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/hdi-apis/interface_i_pin_auth_interface.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_i_pin_auth_interface.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_pin_auth_interface.md index bff63979bd..d527843010 100644 --- a/zh-cn/device-dev/reference/hdi-apis/interface_i_pin_auth_interface.md +++ b/zh-cn/device-dev/reference/hdi-apis/interface_i_pin_auth_interface.md @@ -15,7 +15,7 @@ | Public 成员函数 | 描述 | | -------- | -------- | -| [GetExecutorList](#getexecutorlist) ([out] [IExecutor](interface_i_executor.md)[] executorList) | 获取执行器列表,口令认证服务进程启动进行初始化操作时通过该接口获取口令认证驱动支持的执行器列表。 [更多...](#getexecutorlist) | +| [GetExecutorList](#getexecutorlist) ([out] [IExecutor](interface_i_pin_executor.md)[] executorList) | 获取执行器列表,口令认证服务进程启动进行初始化操作时通过该接口获取口令认证驱动支持的执行器列表。 [更多...](#getexecutorlist) | ## **详细描述** @@ -49,7 +49,7 @@ IPinAuthInterface::GetExecutorList ([out] IExecutor[] executorList) | 名称 | 描述 | | -------- | -------- | -| executorList | 执行器对象列表[IExecutor](interface_i_executor.md)。 | +| executorList | 执行器对象列表[IExecutor](interface_i_pin_executor.md)。 | **返回:** -- GitLab From abc1bd79491edc973684f0f9f78b6fa48fc95bf3 Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 10:46:15 +0000 Subject: [PATCH 560/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E9=93=BE=E6=8E=A5=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/hdi-apis/interface_i_pin_auth_interface.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_i_pin_auth_interface.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_pin_auth_interface.md index d527843010..c6d110537f 100644 --- a/zh-cn/device-dev/reference/hdi-apis/interface_i_pin_auth_interface.md +++ b/zh-cn/device-dev/reference/hdi-apis/interface_i_pin_auth_interface.md @@ -15,7 +15,7 @@ | Public 成员函数 | 描述 | | -------- | -------- | -| [GetExecutorList](#getexecutorlist) ([out] [IExecutor](interface_i_pin_executor.md)[] executorList) | 获取执行器列表,口令认证服务进程启动进行初始化操作时通过该接口获取口令认证驱动支持的执行器列表。 [更多...](#getexecutorlist) | +| [GetExecutorList](#getexecutorlist) ([out] [IExecutor](interface_pin_i_executor.md)[] executorList) | 获取执行器列表,口令认证服务进程启动进行初始化操作时通过该接口获取口令认证驱动支持的执行器列表。 [更多...](#getexecutorlist) | ## **详细描述** @@ -49,7 +49,7 @@ IPinAuthInterface::GetExecutorList ([out] IExecutor[] executorList) | 名称 | 描述 | | -------- | -------- | -| executorList | 执行器对象列表[IExecutor](interface_i_pin_executor.md)。 | +| executorList | 执行器对象列表[IExecutor](interface_pin_i_executor.md)。 | **返回:** -- GitLab From 6bf81a5302f57721c81bab6b091ae9570179424e Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 10:49:05 +0000 Subject: [PATCH 561/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md b/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md index 16a7d13ecb..f2ec31e36b 100644 --- a/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md +++ b/zh-cn/device-dev/reference/hdi-apis/interface_pin_i_executor.md @@ -17,7 +17,7 @@ | -------- | -------- | | [GetTemplateInfo](interface_i_executor.md#gettemplateinfo) ([in] unsigned long templateId, [out] struct [TemplateInfo](_template_info.md) templateInfo) | 获取凭据模版信息。 [更多...](interface_i_executor.md#gettemplateinfo) | | [Cancel](interface_i_executor.md#cancel) ([in] unsigned long scheduleId) | 取消操作请求。 [更多...](interface_i_executor.md#cancel) | -| [h2GetExecutorInfo](#getexecutorinfo) ([out] struct [ExecutorInfo](_executor_info.md) executorInfo) | 获取执行器信息,口令认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。 [更多...](#getexecutorinfo) | +| [GetExecutorInfo](#getexecutorinfo) ([out] struct [ExecutorInfo](_executor_info.md) executorInfo) | 获取执行器信息,口令认证服务将执行器注册到用户认证框架时需要通过该接口获取对应信息。 [更多...](#getexecutorinfo) | | [OnRegisterFinish](#onregisterfinish) ([in] unsigned long[] templateIdList, [in] unsigned char[] frameworkPublicKey, [in] unsigned char[] extraInfo) | 完成执行器注册,对口令模版信息进行对账,用于删除无效的口令模板及相关信息。 [更多...](#onregisterfinish) | | [OnSetData](interface_i_executor.md#onsetdata) ([in] unsigned long scheduleId, [in] unsigned long authSubType, [in] unsigned char[] data) | 设置口令数据,口令认证驱动处理注册或认证口令请求时,如果口令数据由口令认证服务获取,需要通过该接口将口令数据传给口令认证驱动。 [更多...](interface_i_executor.md#onsetdata) | | [Enroll](#enroll) ([in] unsigned long scheduleId, [in] unsigned char[] extraInfo, [in] [IExecutorCallback](interface_pin_i_executor_callback.md) callbackObj) | 注册口令。 [更多...](#enroll) | -- GitLab From d8948c149cf2aaa1cc7ef15df322fedf8902fbfe Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 10:52:59 +0000 Subject: [PATCH 562/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E9=93=BE=E6=8E=A5=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/device-dev/reference/hdi-apis/_hdf_pin_auth.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/_hdf_pin_auth.md b/zh-cn/device-dev/reference/hdi-apis/_hdf_pin_auth.md index a26f8a42ad..a77c46f01e 100644 --- a/zh-cn/device-dev/reference/hdi-apis/_hdf_pin_auth.md +++ b/zh-cn/device-dev/reference/hdi-apis/_hdf_pin_auth.md @@ -19,7 +19,7 @@ | 类 | 描述 | | -------- | -------- | | [IExecutor](interface_pin_i_executor.md) | 定义执行器标准API接口。接口可用于获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。[更多...](interface_pin_i_executor.md) | -| [IExecutorCallback](interface_i_executor_callback.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见[IExecutor](interface_i_executor.md)。 [更多...](interface_i_executor_callback.md) | +| [IExecutorCallback](interface_pin_i_executor_callback.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见[IExecutor](interface_i_executor.md)。 [更多...](interface_pin_i_executor_callback.md) | | [IPinAuthInterface](interface_i_pin_auth_interface.md) | 定义获取口令认证驱动的执行器列表接口。 [更多...](interface_i_pin_auth_interface.md) | | [ExecutorInfo](_executor_info.md) | 执行器信息。 [更多...](_executor_info.md) | | [TemplateInfo](_template_info.md) | 凭据模版信息。 [更多...](_template_info.md) | -- GitLab From d3b787a712fa9c258a6e5dc324b91e307b6dc5ea Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 10:55:00 +0000 Subject: [PATCH 563/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E9=93=BE=E6=8E=A5=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/device-dev/reference/hdi-apis/_hdf_pin_auth.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/_hdf_pin_auth.md b/zh-cn/device-dev/reference/hdi-apis/_hdf_pin_auth.md index a77c46f01e..10de6c4064 100644 --- a/zh-cn/device-dev/reference/hdi-apis/_hdf_pin_auth.md +++ b/zh-cn/device-dev/reference/hdi-apis/_hdf_pin_auth.md @@ -19,7 +19,7 @@ | 类 | 描述 | | -------- | -------- | | [IExecutor](interface_pin_i_executor.md) | 定义执行器标准API接口。接口可用于获取执行器信息,获取凭据模版信息,注册口令,认证口令,删除口令等。[更多...](interface_pin_i_executor.md) | -| [IExecutorCallback](interface_pin_i_executor_callback.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见[IExecutor](interface_i_executor.md)。 [更多...](interface_pin_i_executor_callback.md) | +| [IExecutorCallback](interface_pin_i_executor_callback.md) | 定义异步API接口回调,用于返回异步接口的请求处理结果和信息。使用细节见[IExecutor](interface_pin_i_executor.md)。 [更多...](interface_pin_i_executor_callback.md) | | [IPinAuthInterface](interface_i_pin_auth_interface.md) | 定义获取口令认证驱动的执行器列表接口。 [更多...](interface_i_pin_auth_interface.md) | | [ExecutorInfo](_executor_info.md) | 执行器信息。 [更多...](_executor_info.md) | | [TemplateInfo](_template_info.md) | 凭据模版信息。 [更多...](_template_info.md) | -- GitLab From 10f7b64702f67bd2136bf7f610f7553a9cf67c0c Mon Sep 17 00:00:00 2001 From: HelloCrease Date: Thu, 28 Jul 2022 18:55:41 +0800 Subject: [PATCH 564/868] fixed c78b616 from https://gitee.com/HelloCrease/docs/pulls/7353 update docs Signed-off-by: HelloCrease --- .../arkui-ts/ts-basic-components-button.md | 49 +- .../arkui-ts/ts-basic-components-web.md | 832 +++++++++--------- 2 files changed, 441 insertions(+), 440 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md index 234c8df164..8c92eb8a03 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md @@ -3,7 +3,7 @@ 按钮组件,可快速创建不同样式的按钮。 > **说明:** -> 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 +> 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 ## 权限列表 @@ -21,44 +21,44 @@ - Button(options?: {type?: ButtonType, stateEffect?: boolean}) **表1** options参数说明 - - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | -------- | -------- | -------- | -------- | -------- | - | type | ButtonType | 否 | Capsule | 描述按钮风格。 | - | stateEffect | boolean | 否 | true | 按钮按下时是否开启切换效果,当状态置为false时,点击效果关闭。 | + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ----------- | ---------- | ---- | ------- | --------------------------------- | + | type | ButtonType | 否 | Capsule | 描述按钮风格。 | + | stateEffect | boolean | 否 | true | 按钮按下时是否开启切换效果,当状态置为false时,点击效果关闭。 | -- Button(label?: [ResourceStr](../../ui/ts-types.md), options?: { type?: ButtonType, stateEffect?: boolean }) + +- Button(label?: ResourceStr, options?: { type?: ButtonType, stateEffect?: boolean }) 使用文本内容创建相应的按钮组件,此时Button无法包含子组件。 **表2** value参数说明 - - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | -------- | -------- | -------- | -------- | -------- | - | label | [ResourceStr](../../ui/ts-types.md) | 否 | - | 按钮文本内容。 | - | options | Object | 否 | - | 见options参数说明。 | + + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | ------- | ----------------------------------- | ---- | ---- | ------------- | + | label | [ResourceStr](../../ui/ts-types.md) | 否 | - | 按钮文本内容。 | + | options | Object | 否 | - | 见options参数说明。 | ## 属性 -| 名称 | 参数类型 | 默认值 | 描述 | -| -------- | -------- | -------- | -------- | -| type | ButtonType | Capsule | 设置Button样式。 | -| stateEffect | boolean | true | 状态切换时是否开启切换效果,当状态置为false时,点击效果关闭。 | +| 名称 | 参数类型 | 默认值 | 描述 | +| ----------- | ---------- | ------- | --------------------------------- | +| type | ButtonType | Capsule | 设置Button样式。 | +| stateEffect | boolean | true | 状态切换时是否开启切换效果,当状态置为false时,点击效果关闭。 | - ButtonType枚举说明 - | 名称 | 描述 | - | -------- | -------- | + | 名称 | 描述 | + | ------- | ------------------ | | Capsule | 胶囊型按钮(圆角默认为高度的一半)。 | - | Circle | 圆形按钮。 | - | Normal | 普通按钮(默认不带圆角)。 | + | Circle | 圆形按钮。 | + | Normal | 普通按钮(默认不带圆角)。 | > **说明:** -> - 按钮圆角通过[通用属性borderRadius设置](ts-universal-attributes-border.md)(不支持通过border接口设置圆角)。 -> - 当按钮类型为Capsule时,borderRadius设置不生效,按钮圆角始终为高度的一半。 -> - 当按钮类型为Circle时,borderRadius即为按钮半径,若未设置borderRadius按钮半径则为宽、高中较小值的一半。 -> - 按钮文本通过[通用文本样式](ts-universal-attributes-text-style.md)进行设置。 +> - 按钮圆角通过[通用属性borderRadius设置](ts-universal-attributes-border.md)(不支持通过border接口设置圆角)。 +> - 当按钮类型为Capsule时,borderRadius设置不生效,按钮圆角始终为高度的一半。 +> - 当按钮类型为Circle时,borderRadius即为按钮半径,若未设置borderRadius按钮半径则为宽、高中较小值的一半。 +> - 按钮文本通过[通用文本样式](ts-universal-attributes-text-style.md)进行设置。 ## 示例 @@ -75,6 +75,7 @@ struct ButtonExample { Button('Ok', { type: ButtonType.Normal, stateEffect: true }).borderRadius(8).backgroundColor(0x317aff).width(90) Button({ type: ButtonType.Normal, stateEffect: true }) { Row() { + // 图片建议通过$r创建Resource对象引入 Image($r('app.media.loading')).width(20).height(20).margin({ left: 12 }) Text('loading').fontSize(12).fontColor(0xffffff).margin({ left: 5, right: 12 }) }.alignItems(VerticalAlign.Center) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md index 223d4b5dc4..fb2b6a8ef1 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md @@ -17,10 +17,10 @@ Web(options: { src: string, controller?: WebController }) **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ---------- | ------------------------------- | ---- | ------ | -------------- | - | src | string | 是 | - | 网页资源地址。 | - | controller | [WebController](#webcontroller) | 否 | - | 控制器。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ---------- | ------------------------------- | ---- | ---- | ------- | +| src | string | 是 | - | 网页资源地址。 | +| controller | [WebController](#webcontroller) | 否 | - | 控制器。 | **示例:** ```ts @@ -52,9 +52,9 @@ domStorageAccess(domStorageAccess: boolean) 设置是否开启文档对象模型存储接口(DOM Storage API)权限,默认未开启。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | domStorageAccess | boolean | 是 | - | 设置是否开启文档对象模型存储接口(DOM Storage API)权限。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ---------------- | ------- | ---- | ---- | ------------------------------------ | +| domStorageAccess | boolean | 是 | - | 设置是否开启文档对象模型存储接口(DOM Storage API)权限。 | **示例:** ```ts @@ -76,12 +76,12 @@ domStorageAccess(domStorageAccess: boolean) fileAccess(fileAccess: boolean) -设置是否开启通过[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)访问应用中rawfile路径的文件, 默认启用。 +设置是否开启通过[$rawfile(filepath/filename)](../../ui/ts-resource-access.md)访问应用中rawfile路径的文件, 默认启用。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | fileAccess | boolean | 是 | - | 设置是否开启通过[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)访问应用中rawfile路径的文件。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ---------- | ------- | ---- | ---- | ---------------------------------------- | +| fileAccess | boolean | 是 | - | 设置是否开启通过[$rawfile(filepath/filename)](../../ui/ts-resource-access.md)访问应用中rawfile路径的文件。 | **示例:** ```ts @@ -103,12 +103,12 @@ fileAccess(fileAccess: boolean) fileFromUrlAccess(fileFromUrlAccess: boolean) -设置是否允许通过网页中的JavaScript脚本访问[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)的内容,默认未启用。 +设置是否允许通过网页中的JavaScript脚本访问[$rawfile(filepath/filename)](../../ui/ts-resource-access.md)的内容,默认未启用。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | fileFromUrlAccess | boolean | 是 | - | 设置是否允许通过网页中的JavaScript脚本访问[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)的内容。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ----------------- | ------- | ---- | ---- | ---------------------------------------- | +| fileFromUrlAccess | boolean | 是 | - | 设置是否允许通过网页中的JavaScript脚本访问[$rawfile(filepath/filename)](../../ui/ts-resource-access.md)的内容。 | **示例:** ```ts @@ -133,9 +133,9 @@ imageAccess(imageAccess: boolean) 设置是否允许自动加载图片资源,默认允许。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | imageAccess | boolean | 是 | - | 设置是否允许自动加载图片资源。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ----------- | ------- | ---- | ---- | --------------- | +| imageAccess | boolean | 是 | - | 设置是否允许自动加载图片资源。 | **示例:** ```ts @@ -161,12 +161,12 @@ javaScriptProxy(javaScriptProxy: { object: object, name: string, methodList: Arr 注入JavaScript对象到window对象中,并在window对象中调用该对象的方法。所有参数不支持更新。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | object | object | 是 | - | 参与注册的对象。只能声明方法,不能声明属性。 | - | name | string | 是 | - | 注册对象的名称,与window中调用的对象名一致。 | - | methodList | Array\ | 是 | - | 参与注册的应用侧JavaScript对象的方法。| - +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ---------- | --------------- | ---- | ---- | ------------------------- | +| object | object | 是 | - | 参与注册的对象。只能声明方法,不能声明属性。 | +| name | string | 是 | - | 注册对象的名称,与window中调用的对象名一致。 | +| methodList | Array\ | 是 | - | 参与注册的应用侧JavaScript对象的方法。 | + **示例:** ```ts // xxx.ets @@ -207,9 +207,9 @@ javaScriptAccess(javaScriptAccess: boolean) 设置是否允许执行JavaScript脚本,默认允许执行。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | javaScriptAccess | boolean | 是 | - | 是否允许执行JavaScript脚本。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ---------------- | ------- | ---- | ---- | ------------------- | +| javaScriptAccess | boolean | 是 | - | 是否允许执行JavaScript脚本。 | **示例:** ```ts @@ -234,9 +234,9 @@ mixedMode(mixedMode: MixedMode) 设置是否允许加载超文本传输协议(HTTP)和超文本传输安全协议(HTTPS)混合内容,默认不允许加载HTTP和HTTPS混合内容。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | mixedMode | [MixedMode](#mixedmode枚举说明) | 是 | - | 要设置的混合内容。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| --------- | --------------------------- | ---- | ---- | --------- | +| mixedMode | [MixedMode](#mixedmode枚举说明) | 是 | - | 要设置的混合内容。 | **示例:** ```ts @@ -262,9 +262,9 @@ onlineImageAccess(onlineImageAccess: boolean) 设置是否允许从网络加载图片资源(通过HTTP和HTTPS访问的资源),默认允许访问。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | onlineImageAccess | boolean | 是 | - | 设置是否允许从网络加载图片资源。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ----------------- | ------- | ---- | ---- | ---------------- | +| onlineImageAccess | boolean | 是 | - | 设置是否允许从网络加载图片资源。 | **示例:** ```ts @@ -289,9 +289,9 @@ zoomAccess(zoomAccess: boolean) 设置是否支持手势进行缩放,默认允许执行缩放。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | zoomAccess | boolean | 是 | - | 设置是否支持手势进行缩放。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ---------- | ------- | ---- | ---- | ------------- | +| zoomAccess | boolean | 是 | - | 设置是否支持手势进行缩放。 | **示例:** ```ts @@ -316,9 +316,9 @@ overviewModeAccess(overviewModeAccess: boolean) 设置是否使用概览模式加载网页,默认使用该方式。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | overviewModeAccess | boolean | 是 | - | 设置是否使用概览模式加载网页。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------------------ | ------- | ---- | ---- | --------------- | +| overviewModeAccess | boolean | 是 | - | 设置是否使用概览模式加载网页。 | **示例:** ```ts @@ -343,9 +343,9 @@ databaseAccess(databaseAccess: boolean) 设置是否开启数据库存储API权限,默认不开启。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | databaseAccess | boolean | 是 | - | 设置是否开启数据库存储API权限。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| -------------- | ------- | ---- | ---- | ----------------- | +| databaseAccess | boolean | 是 | - | 设置是否开启数据库存储API权限。 | ```ts // xxx.ets @@ -369,9 +369,9 @@ cacheMode(cacheMode: CacheMode) 设置缓存模式。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | cacheMode | [CacheMode](#cachemode枚举说明) | 是 | - | 要设置的缓存模式。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| --------- | --------------------------- | ---- | ---- | --------- | +| cacheMode | [CacheMode](#cachemode枚举说明) | 是 | - | 要设置的缓存模式。 | **示例:** ```ts @@ -397,9 +397,9 @@ textZoomAtio(textZoomAtio: number) 设置页面的文本缩放百分比,默认为100%。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | textZoomAtio | number | 是 | - | 要设置的页面的文本缩放百分比。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------------ | ------ | ---- | ---- | --------------- | +| textZoomAtio | number | 是 | - | 要设置的页面的文本缩放百分比。 | **示例:** ```ts @@ -425,9 +425,9 @@ userAgent(userAgent: string) 设置用户代理。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | userAgent | string | 是 | - | 要设置的用户代理。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| --------- | ------ | ---- | ---- | --------- | +| userAgent | string | 是 | - | 要设置的用户代理。 | **示例:** ```ts @@ -461,16 +461,16 @@ onAlert(callback: (event?: { url: string; message: string; result: JsResult }) = 网页触发alert()告警弹窗时触发回调。 **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | url | string | 当前显示弹窗所在网页的URL。| - | message | string | 弹窗中显示的信息。 | - | result | [JsResult](#jsresult) | 通知Web组件用户操作行为。| +| 参数名 | 参数类型 | 参数描述 | +| ------- | --------------------- | --------------- | +| url | string | 当前显示弹窗所在网页的URL。 | +| message | string | 弹窗中显示的信息。 | +| result | [JsResult](#jsresult) | 通知Web组件用户操作行为。 | **返回值:** - | 类型 | 说明 | - |----------|------| - | boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。 | +| 类型 | 说明 | +| ------- | ---------------------------------------- | +| boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。 | **示例:** ```ts @@ -510,16 +510,16 @@ onBeforeUnload(callback: (event?: { url: string; message: string; result: JsResu 刷新或关闭场景下,在即将离开当前页面时触发此回调。 **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | url | string | 当前显示弹窗所在网页的URL。| - | message | string | 弹窗中显示的信息。 | - | result | [JsResult](#jsresult) | 通知Web组件用户操作行为。| +| 参数名 | 参数类型 | 参数描述 | +| ------- | --------------------- | --------------- | +| url | string | 当前显示弹窗所在网页的URL。 | +| message | string | 弹窗中显示的信息。 | +| result | [JsResult](#jsresult) | 通知Web组件用户操作行为。 | **返回值:** - | 类型 | 说明 | - |----------|------| - | boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。 | +| 类型 | 说明 | +| ------- | ---------------------------------------- | +| boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。 | **示例:** ```ts @@ -550,16 +550,16 @@ onConfirm(callback: (event?: { url: string; message: string; result: JsResult }) 网页调用confirm()告警时触发此回调。 **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | url | string | 当前显示弹窗所在网页的URL。| - | message | string | 弹窗中显示的信息。 | - | result | [JsResult](#jsresult) | 通知Web组件用户操作行为。| +| 参数名 | 参数类型 | 参数描述 | +| ------- | --------------------- | --------------- | +| url | string | 当前显示弹窗所在网页的URL。 | +| message | string | 弹窗中显示的信息。 | +| result | [JsResult](#jsresult) | 通知Web组件用户操作行为。 | **返回值:** - | 类型 | 说明 | - |----------|------| - | boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。 | +| 类型 | 说明 | +| ------- | ---------------------------------------- | +| boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。 | **示例:** ```ts @@ -601,16 +601,16 @@ onConfirm(callback: (event?: { url: string; message: string; result: JsResult }) onPrompt(callback: (event?: { url: string; message: string; value: string; result: JsResult }) => boolean) **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | url | string | 当前显示弹窗所在网页的URL。| - | message | string | 弹窗中显示的信息。 | - | result | [JsResult](#jsresult) | 通知Web组件用户操作行为。| +| 参数名 | 参数类型 | 参数描述 | +| ------- | --------------------- | --------------- | +| url | string | 当前显示弹窗所在网页的URL。 | +| message | string | 弹窗中显示的信息。 | +| result | [JsResult](#jsresult) | 通知Web组件用户操作行为。 | **返回值:** - | 类型 | 说明 | - |----------|------| - | boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。 | +| 类型 | 说明 | +| ------- | ---------------------------------------- | +| boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。 | **示例:** ```ts @@ -640,14 +640,14 @@ onConsole(callback: (event?: { message: ConsoleMessage }) => boolean) 通知宿主应用JavaScript console消息。 **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | message | [ConsoleMessage](#consolemessage) | 触发的控制台信息。 | +| 参数名 | 参数类型 | 参数描述 | +| ------- | --------------------------------- | --------- | +| message | [ConsoleMessage](#consolemessage) | 触发的控制台信息。 | **返回值:** - | 类型 | 说明 | - |----------|------| - | boolean | 当返回true时,该条消息将不会再打印至控制台,反之仍会打印至控制台。 | +| 类型 | 说明 | +| ------- | ----------------------------------- | +| boolean | 当返回true时,该条消息将不会再打印至控制台,反之仍会打印至控制台。 | **示例:** ```ts @@ -677,12 +677,12 @@ onConsole(callback: (event?: { message: ConsoleMessage }) => boolean) onDownloadStart(callback: (event?: { url: string, userAgent: string, contentDisposition: string, mimetype: string, contentLength: number }) => void) **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | url | string | 文件下载的URL。 | - | contentDisposition | string | 服务器返回的 Content-Disposition响应头,可能为空。 | - | mimetype | string | 服务器返回内容媒体类型(MIME)信息。 | - | contentLength | contentLength | 服务器返回文件的长度。 | +| 参数名 | 参数类型 | 参数描述 | +| ------------------ | ------------- | ----------------------------------- | +| url | string | 文件下载的URL。 | +| contentDisposition | string | 服务器返回的 Content-Disposition响应头,可能为空。 | +| mimetype | string | 服务器返回内容媒体类型(MIME)信息。 | +| contentLength | contentLength | 服务器返回文件的长度。 | **示例:** ```ts @@ -714,10 +714,10 @@ onErrorReceive(callback: (event?: { request: WebResourceRequest, error: WebResou 网页加载遇到错误时触发该回调。出于性能考虑,建议此回调中尽量执行简单逻辑。 **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | request | [WebResourceRequest](#webresourcerequest) | 网页请求的封装信息。 | - | error | [WebResourceError](#webresourceerror) | 网页加载资源错误的封装信息 。 | +| 参数名 | 参数类型 | 参数描述 | +| ------- | ---------------------------------------- | --------------- | +| request | [WebResourceRequest](#webresourcerequest) | 网页请求的封装信息。 | +| error | [WebResourceError](#webresourceerror) | 网页加载资源错误的封装信息 。 | **示例:** ```ts @@ -756,10 +756,10 @@ onHttpErrorReceive(callback: (event?: { request: WebResourceRequest, response: W 网页加载资源遇到的HTTP错误(响应码>=400)时触发该回调。 **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | request | [WebResourceRequest](#webresourcerequest) | 网页请求的封装信息。 | - | error | [WebResourceError](#webresourceerror) | 网页加载资源错误的封装信息 。 | +| 参数名 | 参数类型 | 参数描述 | +| ------- | ---------------------------------------- | --------------- | +| request | [WebResourceRequest](#webresourcerequest) | 网页请求的封装信息。 | +| error | [WebResourceError](#webresourceerror) | 网页加载资源错误的封装信息 。 | **示例:** ```ts @@ -802,13 +802,13 @@ onHttpErrorReceive(callback: (event?: { request: WebResourceRequest, response: W onPageBegin(callback: (event?: { url: string }) => void) - + 网页开始加载时触发该回调,且只在主frame触发,iframe或者frameset的内容加载时不会触发此回调。 **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | url | string | 页面的URL地址。 | +| 参数名 | 参数类型 | 参数描述 | +| ---- | ------ | --------- | +| url | string | 页面的URL地址。 | **示例:** ```ts @@ -833,13 +833,13 @@ onPageBegin(callback: (event?: { url: string }) => void) onPageEnd(callback: (event?: { url: string }) => void) - + 网页加载完成时触发该回调,且只在主frame触发。 **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | url | string | 页面的URL地址。 | +| 参数名 | 参数类型 | 参数描述 | +| ---- | ------ | --------- | +| url | string | 页面的URL地址。 | **示例:** ```ts @@ -867,9 +867,9 @@ onProgressChange(callback: (event?: { newProgress: number }) => void) 网页加载进度变化时触发该回调。 **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | newProgress | number | 新的加载进度,取值范围为0到100的整数。 | +| 参数名 | 参数类型 | 参数描述 | +| ----------- | ------ | --------------------- | +| newProgress | number | 新的加载进度,取值范围为0到100的整数。 | **示例:** ```ts @@ -897,9 +897,9 @@ onTitleReceive(callback: (event?: { title: string }) => void) 网页document标题更改时触发该回调。 **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | title | string | document标题内容。 | +| 参数名 | 参数类型 | 参数描述 | +| ----- | ------ | ------------- | +| title | string | document标题内容。 | **示例:** ```ts @@ -927,10 +927,10 @@ onRefreshAccessedHistory(callback: (event?: { url: string, isRefreshed: boolean 加载网页页面完成时触发该回调,用于应用更新其访问的历史链接。 **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | url | string | 访问的url。 | - | isRefreshed | boolean | true表示该页面是被重新加载的,false表示该页面是新加载的。 | +| 参数名 | 参数类型 | 参数描述 | +| ----------- | ------- | --------------------------------- | +| url | string | 访问的url。 | +| isRefreshed | boolean | true表示该页面是被重新加载的,false表示该页面是新加载的。 | **示例:** ```ts @@ -958,9 +958,9 @@ onRenderExited(callback: (event?: { renderExitReason: RenderExitReason }) => voi 应用渲染进程异常退出时触发该回调。 **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | renderExitReason | [RenderExitReason](#renderexitreason枚举说明) | 渲染进程进程异常退出的具体原因。 | +| 参数名 | 参数类型 | 参数描述 | +| ---------------- | ---------------------------------------- | ---------------- | +| renderExitReason | [RenderExitReason](#renderexitreason枚举说明) | 渲染进程进程异常退出的具体原因。 | **示例:** ```ts @@ -988,10 +988,10 @@ onShowFileSelector(callback: (event?: { result: FileSelectorResult, fileSelector 调用此函数以处理具有“文件”输入类型的HTML表单,以响应用户按下的“选择文件”按钮。 **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | result | [FileSelectorResult](#fileselectorresult9) | 用于通知Web组件文件选择的结果。 | - | fileSelector | [FileSelectorParam](#fileselectorparam9) | 文件选择器的相关信息。 | +| 参数名 | 参数类型 | 参数描述 | +| ------------ | ---------------------------------------- | ----------------- | +| result | [FileSelectorResult](#fileselectorresult9) | 用于通知Web组件文件选择的结果。 | +| fileSelector | [FileSelectorParam](#fileselectorparam9) | 文件选择器的相关信息。 | **示例:** ```ts @@ -1036,14 +1036,14 @@ onUrlLoadIntercept(callback: (event?: { data:string | WebResourceRequest }) => b 当Web组件加载url之前触发该回调,用于是否阻止此次访问。 **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | data | string / [WebResourceRequest](#webresourcerequest) | url的相关信息。 | +| 参数名 | 参数类型 | 参数描述 | +| ---- | ---------------------------------------- | --------- | +| data | string / [WebResourceRequest](#webresourcerequest) | url的相关信息。 | **返回值:** - | 类型 | 说明 | - |----------|------| - | boolean | 返回true表示阻止此次加载,否则允许此次加载。 | +| 类型 | 说明 | +| ------- | ------------------------ | +| boolean | 返回true表示阻止此次加载,否则允许此次加载。 | **示例:** ```ts @@ -1072,14 +1072,14 @@ onInterceptRequest9+(callback: (event?: { request: WebResourceRequest}) => WebRe 当Web组件加载url之前触发该回调,用于拦截url并返回响应数据。 **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | request | [WebResourceRequest](#webresourcerequest) | url请求的相关信息。 | +| 参数名 | 参数类型 | 参数描述 | +| ------- | ---------------------------------------- | ----------- | +| request | [WebResourceRequest](#webresourcerequest) | url请求的相关信息。 | **返回值:** - | 类型 | 说明 | - |----------|------| - | [WebResourceResponse](#webresourceresponse) | 返回响应数据为空表示按原来方式加载,否则加载响应数据。 | +| 类型 | 说明 | +| ---------------------------------------- | --------------------------- | +| [WebResourceResponse](#webresourceresponse) | 返回响应数据为空表示按原来方式加载,否则加载响应数据。 | **示例:** ```ts @@ -1134,16 +1134,16 @@ onHttpAuthRequest(callback: (event?: { handler: HttpAuthHandler, host: string, r 通知收到http auth认证请求。 **参数:** - | 参数名 | 参数类型 | 参数描述 | - | ------ | -------- | ------------------------- | - | handler | [HttpAuthHandler](#httpauthhandler9) | 通知Web组件用户操作行为。 | - | host | string | HTTP身份验证凭据应用的主机。 | - | realm | string | HTTP身份验证凭据应用的域。 | +| 参数名 | 参数类型 | 参数描述 | +| ------- | ------------------------------------ | ---------------- | +| handler | [HttpAuthHandler](#httpauthhandler9) | 通知Web组件用户操作行为。 | +| host | string | HTTP身份验证凭据应用的主机。 | +| realm | string | HTTP身份验证凭据应用的域。 | **返回值:** - | 类型 | 说明 | - |----------|------| - | boolean | 返回false表示此次认证失败,否则成功。 | +| 类型 | 说明 | +| ------- | --------------------- | +| boolean | 返回false表示此次认证失败,否则成功。 | **示例:** ```ts @@ -1196,9 +1196,9 @@ getLineNumber(): number 获取ConsoleMessage的行数。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | number | 返回ConsoleMessage的行数。 | +| 类型 | 说明 | +| ------ | -------------------- | +| number | 返回ConsoleMessage的行数。 | ### getMessage @@ -1207,9 +1207,9 @@ getMessage(): string 获取ConsoleMessage的日志信息。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | string | 返回ConsoleMessage的日志信息。 | +| 类型 | 说明 | +| ------ | ---------------------- | +| string | 返回ConsoleMessage的日志信息。 | ### getMessageLevel @@ -1218,9 +1218,9 @@ getMessageLevel(): MessageLevel 获取ConsoleMessage的信息级别。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | [MessageLevel](#messagelevel枚举说明) | 返回ConsoleMessage的信息级别。 | +| 类型 | 说明 | +| --------------------------------- | ---------------------- | +| [MessageLevel](#messagelevel枚举说明) | 返回ConsoleMessage的信息级别。 | ### getSourceId @@ -1229,9 +1229,9 @@ getSourceId(): string 获取网页源文件路径和名字。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | string | 返回网页源文件路径和名字。 | +| 类型 | 说明 | +| ------ | ------------- | +| string | 返回网页源文件路径和名字。 | ## JsResult @@ -1256,9 +1256,9 @@ handlePromptConfirm(result: string): void 通知Web组件用户确认弹窗操作及对话框内容。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | result | string | 是 | - | 用户输入的对话框内容。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------ | ------ | ---- | ---- | ----------- | +| result | string | 是 | - | 用户输入的对话框内容。 | ## WebResourceError @@ -1271,9 +1271,9 @@ getErrorCode(): number 获取加载资源的错误码。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | number | 返回加载资源的错误码。 | +| 类型 | 说明 | +| ------ | ----------- | +| number | 返回加载资源的错误码。 | ### getErrorInfo @@ -1282,9 +1282,9 @@ getErrorInfo(): string 获取加载资源的错误信息。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | string | 返回加载资源的错误信息。 | +| 类型 | 说明 | +| ------ | ------------ | +| string | 返回加载资源的错误信息。 | ## WebResourceRequest @@ -1297,9 +1297,9 @@ getResponseHeader() : Array\ 获取资源请求头信息。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | Array\<[Header](#header)\> | 返回资源请求头信息。 | +| 类型 | 说明 | +| -------------------------- | ---------- | +| Array\<[Header](#header)\> | 返回资源请求头信息。 | ### getRequestUrl @@ -1308,9 +1308,9 @@ getRequestUrl(): string 获取资源请求的URL信息。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | string | 返回资源请求的URL信息。 | +| 类型 | 说明 | +| ------ | ------------- | +| string | 返回资源请求的URL信息。 | ### isMainFrame @@ -1319,9 +1319,9 @@ isMainFrame(): boolean 判断资源请求是否为主frame。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | boolean | 返回资源请求是否为主frame。 | +| 类型 | 说明 | +| ------- | ---------------- | +| boolean | 返回资源请求是否为主frame。 | ### isRedirect @@ -1330,9 +1330,9 @@ isRedirect(): boolean 判断资源请求是否被服务端重定向。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | boolean | 返回资源请求是否被服务端重定向。 | +| 类型 | 说明 | +| ------- | ---------------- | +| boolean | 返回资源请求是否被服务端重定向。 | ### isRequestGesture @@ -1341,18 +1341,18 @@ isRequestGesture(): boolean 获取资源请求是否与手势(如点击)相关联。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | boolean | 返回资源请求是否与手势(如点击)相关联。 | +| 类型 | 说明 | +| ------- | -------------------- | +| boolean | 返回资源请求是否与手势(如点击)相关联。 | ## Header Web组件返回的请求/响应头对象。 -| 名称 | 类型 | 描述 | -| ----------- | -------- | -------------------- | -| headerKey | string | 请求/响应头的key。 | -| headerValue | string | 请求/响应头的value。 | +| 名称 | 类型 | 描述 | +| ----------- | ------ | ------------- | +| headerKey | string | 请求/响应头的key。 | +| headerValue | string | 请求/响应头的value。 | ## WebResourceResponse @@ -1366,9 +1366,9 @@ getReasonMessage(): string 获取资源响应的状态码描述。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | string | 返回资源响应的状态码描述。 | +| 类型 | 说明 | +| ------ | ------------- | +| string | 返回资源响应的状态码描述。 | ### getResponseCode @@ -1377,9 +1377,9 @@ getResponseCode(): number 获取资源响应的状态码。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | number | 返回资源响应的状态码。 | +| 类型 | 说明 | +| ------ | ----------- | +| number | 返回资源响应的状态码。 | ### getResponseData @@ -1388,9 +1388,9 @@ getResponseData(): string 获取资源响应数据。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | string | 返回资源响应数据。 | +| 类型 | 说明 | +| ------ | --------- | +| string | 返回资源响应数据。 | ### getResponseEncoding @@ -1399,9 +1399,9 @@ getResponseEncoding(): string 获取资源响应的编码。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | string | 返回资源响应的编码。 | +| 类型 | 说明 | +| ------ | ---------- | +| string | 返回资源响应的编码。 | ### getResponseHeader @@ -1410,9 +1410,9 @@ getResponseHeader() : Array\ 获取资源响应头。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | Array\<[Header](#header)\> | 返回资源响应头。 | +| 类型 | 说明 | +| -------------------------- | -------- | +| Array\<[Header](#header)\> | 返回资源响应头。 | ### getResponseMimeType @@ -1421,9 +1421,9 @@ getResponseMimeType(): string 获取资源响应的媒体(MIME)类型。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | string | 返回资源响应的媒体(MIME)类型。 | +| 类型 | 说明 | +| ------ | ------------------ | +| string | 返回资源响应的媒体(MIME)类型。 | ### setResponseData9+ @@ -1432,9 +1432,9 @@ setResponseData(data: string) 设置资源响应数据。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | data | string | 是 | - | 要设置的资源响应数据。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ---- | ------ | ---- | ---- | ----------- | +| data | string | 是 | - | 要设置的资源响应数据。 | ### setResponseEncoding9+ @@ -1443,9 +1443,9 @@ setResponseEncoding(encoding: string) 设置资源响应的编码。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | encoding | string | 是 | - | 要设置的资源响应的编码。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| -------- | ------ | ---- | ---- | ------------ | +| encoding | string | 是 | - | 要设置的资源响应的编码。 | ### setResponseMimeType9+ @@ -1454,9 +1454,9 @@ setResponseMimeType(mimeType: string) 设置资源响应的媒体(MIME)类型。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | mimeType | string | 是 | - | 要设置的资源响应的媒体(MIME)类型。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| -------- | ------ | ---- | ---- | -------------------- | +| mimeType | string | 是 | - | 要设置的资源响应的媒体(MIME)类型。 | ### setReasonMessage9+ @@ -1465,9 +1465,9 @@ setReasonMessage(reason: string) 设置资源响应的状态码描述。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | reason | string | 是 | - | 要设置的资源响应的状态码描述。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------ | ------ | ---- | ---- | --------------- | +| reason | string | 是 | - | 要设置的资源响应的状态码描述。 | ### setResponseHeader9+ @@ -1476,9 +1476,9 @@ setResponseHeader(header: Array\) 设置资源响应头。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | header | Array\<[Header](#header)\> | 是 | - | 要设置的资源响应头。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------ | -------------------------- | ---- | ---- | ---------- | +| header | Array\<[Header](#header)\> | 是 | - | 要设置的资源响应头。 | ### setResponseCode9+ @@ -1487,9 +1487,9 @@ setResponseCode(code: number) 设置资源响应的状态码。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | code | number | 是 | - | 要设置的资源响应的状态码。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ---- | ------ | ---- | ---- | ------------- | +| code | number | 是 | - | 要设置的资源响应的状态码。 | ## FileSelectorResult9+ @@ -1502,9 +1502,9 @@ handleFileList(fileList: Array\): void 通知Web组件进行文件选择操作。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | fileList | Array\ | 是 | - | 需要进行操作的文件列表。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| -------- | --------------- | ---- | ---- | ------------ | +| fileList | Array\ | 是 | - | 需要进行操作的文件列表。 | ## FileSelectorParam9+ @@ -1517,9 +1517,9 @@ getTitle(): string 获取文件选择器标题。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | string | 返回文件选择器标题。 | +| 类型 | 说明 | +| ------ | ---------- | +| string | 返回文件选择器标题。 | ### getMode9+ @@ -1528,9 +1528,9 @@ getMode(): FileSelectorMode 获取文件选择器的模式。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | [FileSelectorMode](#fileselectormode枚举说明) | 返回文件选择器的模式。 | +| 类型 | 说明 | +| ---------------------------------------- | ----------- | +| [FileSelectorMode](#fileselectormode枚举说明) | 返回文件选择器的模式。 | ### getAcceptType9+ @@ -1539,9 +1539,9 @@ getAcceptType(): Array\ 获取文件过滤类型。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | Array\ | 返回文件过滤类型。 | +| 类型 | 说明 | +| --------------- | --------- | +| Array\ | 返回文件过滤类型。 | ### isCapture9+ @@ -1550,9 +1550,9 @@ isCapture(): boolean 获取是否调用多媒体能力。 **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | boolean | 返回是否调用多媒体能力。 | +| 类型 | 说明 | +| ------- | ------------ | +| boolean | 返回是否调用多媒体能力。 | ## HttpAuthHandler9+ @@ -1572,15 +1572,15 @@ confirm(userName: string, pwd: string): boolean **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | -------- | -------- | ---- | ------ | -------------- | - | userName | string | 是 | - | HTTP认证用户名。| - | pwd | string | 是 | - | HTTP认证密码。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| -------- | ------ | ---- | ---- | ---------- | +| userName | string | 是 | - | HTTP认证用户名。 | +| pwd | string | 是 | - | HTTP认证密码。 | **返回值:** - | 类型 | 说明 | - | -------- | ------------------------------- | - | boolean | 认证成功返回true,失败返回false。 | +| 类型 | 说明 | +| ------- | --------------------- | +| boolean | 认证成功返回true,失败返回false。 | ### isHttpAuthInfoSaved9+ @@ -1589,9 +1589,9 @@ isHttpAuthInfoSaved(): boolean 通知Web组件用户使用服务器缓存的账号密码认证。 **返回值:** - | 类型 | 说明 | - | -------- | ------------------------------------- | - | boolean | 存在密码认证成功返回true,其他返回false。| +| 类型 | 说明 | +| ------- | ------------------------- | +| boolean | 存在密码认证成功返回true,其他返回false。 | ## WebController @@ -1610,9 +1610,9 @@ accessBackward(): boolean 当前页面是否可后退,即当前页面是否有返回历史记录。 **返回值:** - | 类型 | 说明 | - | -------- | ------------------------------------- | - | boolean | 可以后退返回true,否则返回false。 | +| 类型 | 说明 | +| ------- | --------------------- | +| boolean | 可以后退返回true,否则返回false。 | **示例:** ```ts @@ -1642,9 +1642,9 @@ accessForward(): boolean 当前页面是否可前进,即当前页面是否有前进历史记录。 **返回值:** - | 类型 | 说明 | - | -------- | ------------------------------------- | - | boolean | 可以前进返回true,否则返回false。 | +| 类型 | 说明 | +| ------- | --------------------- | +| boolean | 可以前进返回true,否则返回false。 | **示例:** ```ts @@ -1675,14 +1675,14 @@ accessStep(step: number): boolean **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------------------------ | - | step | number | 是 | - | 要跳转的步数,正数代表前进,负数代表后退。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ---- | ------ | ---- | ---- | --------------------- | +| step | number | 是 | - | 要跳转的步数,正数代表前进,负数代表后退。 | **返回值:** - | 类型 | 说明 | - | -------- | ------------------ | - | boolean | 页面是否前进或后退 | +| 类型 | 说明 | +| ------- | --------- | +| boolean | 页面是否前进或后退 | **示例:** ```ts @@ -1765,9 +1765,9 @@ backOrForward(step: number): void 按照历史栈,前进或者后退指定步长的页面,当历史栈中不存在对应步长的页面时,不会进行页面跳转。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ---- | ------ | ---- | ---- | ---------------------------------------- | - | step | number | 是 |- |需要前进或后退的步长。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ---- | ------ | ---- | ---- | ----------- | +| step | number | 是 | - | 需要前进或后退的步长。 | **示例:** ```ts @@ -1794,9 +1794,9 @@ deleteJavaScriptRegister(name: string) 删除通过registerJavaScriptProxy注册到window上的指定name的应用侧JavaScript对象。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------------------------------------------ | - | name | string | 是 | - | 注册对象的名称,可在网页侧JavaScript中通过此名称调用应用侧JavaScript对象。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ---- | ------ | ---- | ---- | ---------------------------------------- | +| name | string | 是 | - | 注册对象的名称,可在网页侧JavaScript中通过此名称调用应用侧JavaScript对象。 | **示例:** ```ts @@ -1826,9 +1826,9 @@ getHitTest(): HitTestType 获取当前被点击区域的元素类型。 **返回值:** - | 类型 | 说明 | - | -------- | ------------------ | - | [HitTestType](#hittesttype枚举说明) | 被点击区域的元素类型。 | +| 类型 | 说明 | +| ------------------------------- | ----------- | +| [HitTestType](#hittesttype枚举说明) | 被点击区域的元素类型。 | **示例:** ```ts @@ -1857,9 +1857,9 @@ getHitTestValue(): HitTestValue 获取当前被点击区域的元素信息。 **返回值:** - | 类型 | 说明 | - |----------|------| - | [HitTestValue](#hittestvalue9) | 点击区域的元素信息。 | +| 类型 | 说明 | +| ------------------------------ | ---------- | +| [HitTestValue](#hittestvalue9) | 点击区域的元素信息。 | **示例:** ```ts @@ -1889,9 +1889,9 @@ getWebId(): number 获取当前Web组件的索引值,用于多个Web组件的管理。 **返回值:** - | 类型 | 说明 | - |----------|------| - | number | 当前Web组件的索引值。 | +| 类型 | 说明 | +| ------ | ------------ | +| number | 当前Web组件的索引值。 | **示例:** ```ts @@ -1920,9 +1920,9 @@ getTitle(): string 获取当前网页的标题。 **返回值:** - | 类型 | 说明 | - |----------|------| - | string | 当前网页的标题。 | +| 类型 | 说明 | +| ------ | -------- | +| string | 当前网页的标题。 | **示例:** ```ts @@ -1951,9 +1951,9 @@ getPageHeight(): number 获取当前网页的页面高度。 **返回值:** - | 类型 | 说明 | - |----------|------| - | number | 当前网页的页面高度。 | +| 类型 | 说明 | +| ------ | ---------- | +| number | 当前网页的页面高度。 | **示例:** ```ts @@ -1982,9 +1982,9 @@ getDefaultUserAgent(): string 获取当前默认用户代理。 **返回值:** - | 类型 | 说明 | - |----------|------| - | string | 默认用户代理。 | +| 类型 | 说明 | +| ------ | ------- | +| string | 默认用户代理。 | **示例:** ```ts @@ -2018,13 +2018,13 @@ baseUrl为空时,通过”data“协议加载指定的一段字符串。 当baseUrl为“http/https"协议时,编码后的data字符串将被Web组件以类似loadUrl的方式以非编码字符串处理。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ---------- | -------- | ---- | ------ | ------------------------------------------------------------ | - | data | string | 是 | - | 按照”Base64“或者”URL"编码后的一段字符串。 | - | mimeType | string | 是 | - | 媒体类型(MIME)。 | - | encoding | string | 是 | - | 编码类型,具体为“Base64"或者”URL编码。 | - | baseUrl | string | 否 | - | 指定的一个URL路径(“http”/“https”/"data"协议),并由Web组件赋值给window.origin。 | - | historyUrl | string | 否 | - | 历史记录URL。非空时,可被历史记录管理,实现前后后退功能。当baseUrl为空时,此属性无效。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ---------- | ------ | ---- | ---- | ---------------------------------------- | +| data | string | 是 | - | 按照”Base64“或者”URL"编码后的一段字符串。 | +| mimeType | string | 是 | - | 媒体类型(MIME)。 | +| encoding | string | 是 | - | 编码类型,具体为“Base64"或者”URL编码。 | +| baseUrl | string | 否 | - | 指定的一个URL路径(“http”/“https”/"data"协议),并由Web组件赋值给window.origin。 | +| historyUrl | string | 否 | - | 历史记录URL。非空时,可被历史记录管理,实现前后后退功能。当baseUrl为空时,此属性无效。 | **示例:** ```ts @@ -2061,10 +2061,10 @@ loadUrl(options: { url: string | Resource, headers?: Array\ }) 而通过registerJavaScriptProxy注入的对象,在loadUrl导航到新的页面也会有效。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------- | ---------------------------------- | ---- | ------ | --------------------- | - | url | string | 是 | - | 需要加载的 URL。 | - | headers | Array\<[Header](#header)\> | 否 | [] | URL的附加HTTP请求头。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------- | -------------------------- | ---- | ---- | -------------- | +| url | string | 是 | - | 需要加载的 URL。 | +| headers | Array\<[Header](#header)\> | 否 | [] | URL的附加HTTP请求头。 | **示例:** ```ts @@ -2144,9 +2144,9 @@ zoom(factor: number): void 调整当前网页的缩放比例。 **参数:** - | 参数名 | 参数类型 | 必填 | 参数描述 | - |--------|----------|------|---------| - | factor | number | 是 | 基于当前网页所需调整的相对缩放比例,正值为放大,负值为缩小。 | +| 参数名 | 参数类型 | 必填 | 参数描述 | +| ------ | ------ | ---- | ------------------------------ | +| factor | number | 是 | 基于当前网页所需调整的相对缩放比例,正值为放大,负值为缩小。 | **示例:** ```ts @@ -2175,9 +2175,9 @@ zoomIn(): boolean 调用此接口将当前网页进行放大,比列20%。 **返回值:** - | 类型 | 说明 | - |----------|------| - | boolean | 放大操作是否成功执行。 | +| 类型 | 说明 | +| ------- | ----------- | +| boolean | 放大操作是否成功执行。 | **示例:** ```ts @@ -2206,9 +2206,9 @@ zoomOut(): boolean 调用此接口将当前网页进行缩小,比列20%。 **返回值:** - | 类型 | 说明 | - |----------|------| - | boolean | 缩小操作是否成功执行。 | +| 类型 | 说明 | +| ------- | ----------- | +| boolean | 缩小操作是否成功执行。 | **示例:** ```ts @@ -2264,11 +2264,11 @@ registerJavaScriptProxy(options: { object: object, name: string, methodList: Arr 注入JavaScript对象到window对象中,并在window对象中调用该对象的方法。注册后,须调用refresh接口生效。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ---------- | --------------- | ---- | ------ | ------------------------------------------------------------ | - | object | object | 是 | - | 参与注册的应用侧JavaScript对象。只能声明方法,不能声明属性 。其中方法的参数和返回类型只能为string,number,boolean | - | name | string | 是 | - | 注册对象的名称,与window中调用的对象名一致。注册后window对象可以通过此名字访问应用侧JavaScript对象。 | - | methodList | Array\ | 是 | - | 参与注册的应用侧JavaScript对象的方法。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ---------- | --------------- | ---- | ---- | ---------------------------------------- | +| object | object | 是 | - | 参与注册的应用侧JavaScript对象。只能声明方法,不能声明属性 。其中方法的参数和返回类型只能为string,number,boolean | +| name | string | 是 | - | 注册对象的名称,与window中调用的对象名一致。注册后window对象可以通过此名字访问应用侧JavaScript对象。 | +| methodList | Array\ | 是 | - | 参与注册的应用侧JavaScript对象的方法。 | **示例:** ```ts @@ -2302,7 +2302,7 @@ registerJavaScriptProxy(options: { object: object, name: string, methodList: Arr } } ``` - + ```html @@ -2328,10 +2328,10 @@ runJavaScript(options: { script: string, callback?: (result: string) => void }) 异步执行JavaScript脚本,并通过回调方式返回脚本执行的结果。runJavaScript需要在loadUrl完成后,比如onPageEnd中调用。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | -------- | ------------------------ | ---- | ------ | ------------------------------------------------------------ | - | script | string | 是 | - | JavaScript脚本。 | - | callback | (result: string) => void | 否 | - | 回调执行JavaScript脚本结果。JavaScript脚本若执行失败或无返回值时,返回null。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| -------- | ------------------------ | ---- | ---- | ---------------------------------------- | +| script | string | 是 | - | JavaScript脚本。 | +| callback | (result: string) => void | 否 | - | 回调执行JavaScript脚本结果。JavaScript脚本若执行失败或无返回值时,返回null。 | **示例:** ```ts @@ -2437,9 +2437,9 @@ getCookieManager(): WebCookie 获取web组件cookie管理对象。 **返回值:** - | 类型 | 说明 | - | --------- | -------------------------------------------------------- | - | WebCookie | web组件cookie管理对象,参考[WebCookie](#webcookie)定义。 | +| 类型 | 说明 | +| --------- | ---------------------------------------- | +| WebCookie | web组件cookie管理对象,参考[WebCookie](#webcookie)定义。 | **示例:** ```ts @@ -2470,9 +2470,9 @@ getType(): HitTestType 获取当前被点击区域的元素类型。 **返回值:** - | 类型 | 说明 | - |----------|------| - | [HitTestType](#hittesttype枚举说明) | 当前被点击区域的元素类型。 | +| 类型 | 说明 | +| ------------------------------- | ------------- | +| [HitTestType](#hittesttype枚举说明) | 当前被点击区域的元素类型。 | ### getExtra9+ getExtra(): string @@ -2480,9 +2480,9 @@ getExtra(): string 若被点击区域为图片或链接,则附加参数信息为其url地址。 **返回值:** - | 类型 | 说明 | - |----------|------| - | string | 点击区域的附加参数信息。 | +| 类型 | 说明 | +| ------ | ------------ | +| string | 点击区域的附加参数信息。 | ## WebCookie @@ -2494,15 +2494,15 @@ setCookie(url: string, value: string): boolean 设置cookie,该方法为同步方法。设置成功返回true,否则返回false。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | ------------------------- | - | url | string | 是 | - | 要设置的cookie所属的url。 | - | value | string | 是 | - | cookie的值。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ----- | ------ | ---- | ---- | ----------------- | +| url | string | 是 | - | 要设置的cookie所属的url。 | +| value | string | 是 | - | cookie的值。 | **返回值:** - | 类型 | 说明 | - | -------- | -------------------- | - | boolean | 设置cookie是否成功。 | +| 类型 | 说明 | +| ------- | ------------- | +| boolean | 设置cookie是否成功。 | **示例:** ```ts @@ -2531,9 +2531,9 @@ saveCookieSync(): boolean 将当前存在内存中的cookie同步到磁盘中,该方法为同步方法。 **返回值:** - | 类型 | 说明 | - | -------- | ---------------------------------- | - | boolean | 同步内存cookie到磁盘操作是否成功。 | +| 类型 | 说明 | +| ------- | -------------------- | +| boolean | 同步内存cookie到磁盘操作是否成功。 | **示例:** ```ts @@ -2566,9 +2566,9 @@ static existHttpAuthCredentials(): boolean 判断是否存在任何已保存的HTTP身份验证凭据,该方法为同步方法。存在返回true,不存在返回false。 **返回值:** - | 类型 | 说明 | - | -------- | ----------------------------------- | - | boolean | 是否存在任何已保存的HTTP身份验证凭据。存在返回true,不存在返回false | +| 类型 | 说明 | +| ------- | ---------------------------------------- | +| boolean | 是否存在任何已保存的HTTP身份验证凭据。存在返回true,不存在返回false | **示例:** ```ts @@ -2626,15 +2626,15 @@ static getHttpAuthCredentials(host: string, realm: string): Array\ 检索给定主机和域的HTTP身份验证凭据,该方法为同步方法。检索成功返回一个包含用户名和密码的组数,检索不成功返回空数组。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | ------ | -------- | ---- | ------ | -------------------------- | - | host | string | 是 | - | HTTP身份验证凭据应用的主机。 | - | realm | string | 是 | - | HTTP身份验证凭据应用的域。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ----- | ------ | ---- | ---- | ---------------- | +| host | string | 是 | - | HTTP身份验证凭据应用的主机。 | +| realm | string | 是 | - | HTTP身份验证凭据应用的域。 | **返回值:** - | 类型 | 说明 | - | ---------------- | --------------------------------------------- | - | Array\ | 包含用户名和密码的组数,检索失败返回空数组。 | +| 类型 | 说明 | +| --------------- | ---------------------- | +| Array\ | 包含用户名和密码的组数,检索失败返回空数组。 | **示例:** ```ts @@ -2670,12 +2670,12 @@ static saveHttpAuthCredentials(host: string, realm: string, username: string, pa 保存给定主机和域的HTTP身份验证凭据,该方法为同步方法。 **参数:** - | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | - | -------- | -------- | ---- | ------ | -------------------------- | - | host | string | 是 | - | HTTP身份验证凭据应用的主机。 | - | realm | string | 是 | - | HTTP身份验证凭据应用的域。 | - | username | string | 是 | - | 用户名。 | - | password | string | 是 | - | 密码。 | +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| -------- | ------ | ---- | ---- | ---------------- | +| host | string | 是 | - | HTTP身份验证凭据应用的主机。 | +| realm | string | 是 | - | HTTP身份验证凭据应用的域。 | +| username | string | 是 | - | 用户名。 | +| password | string | 是 | - | 密码。 | **示例:** ```ts @@ -2733,9 +2733,9 @@ static deleteOrigin(origin : string): void 清除指定源所使用的存储。 **参数:** - | 参数名 | 参数类型 | 必填 | 说明 | - |---------|---------|-----|-----| - | origin | string | 是 | 指定源的字符串索引。 | +| 参数名 | 参数类型 | 必填 | 说明 | +| ------ | ------ | ---- | ---------- | +| origin | string | 是 | 指定源的字符串索引。 | **示例:** ```ts @@ -2765,9 +2765,9 @@ static getOrigins(callback: AsyncCallback>) : void 以回调方式异步获取当前使用Web SQL数据库的所有源的信息。 **参数:** - | 参数名 | 参数类型 | 必填 | 说明 | - |---------|---------|-----|----| - | callback | AsyncCallback> | 是 | 以数组方式返回源的信息,信息内容参考WebStorageOrigin。| +| 参数名 | 参数类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ----------------------------------- | +| callback | AsyncCallback> | 是 | 以数组方式返回源的信息,信息内容参考WebStorageOrigin。 | **示例:** ```ts @@ -2807,9 +2807,9 @@ static getOrigins() : Promise> 以Promise方式异步获取当前使用Web SQL数据库的所有源的信息。 **返回值:** - | 类型 | 说明 | - |------|------| - | Promise> | Promise实例,用于获取当前所有源的信息,信息内容参考WebStorageOrigin。 | +| 类型 | 说明 | +| ---------------------------------------- | ---------------------------------------- | +| Promise> | Promise实例,用于获取当前所有源的信息,信息内容参考WebStorageOrigin。 | **示例:** ```ts @@ -2849,10 +2849,10 @@ static getOriginQuota(origin : string, callback : AsyncCallback) : void 使用callback回调异步获取指定源的Web SQL数据库的存储配额,配额以字节为单位。 **参数:** - | 参数名 | 参数类型 | 必填 | 说明 | - |----------|-----------|------|------| - | origin | string | 是 | 指定源的字符串索引 | - | callback | AsyncCallback | 是 | 指定源的存储配额。 | +| 参数名 | 参数类型 | 必填 | 说明 | +| -------- | --------------------- | ---- | --------- | +| origin | string | 是 | 指定源的字符串索引 | +| callback | AsyncCallback | 是 | 指定源的存储配额。 | **示例:** ```ts @@ -2888,14 +2888,14 @@ static getOriginQuota(origin : string) : Promise 以Promise方式异步获取指定源的Web SQL数据库的存储配额,配额以字节为单位。 **参数:** - | 参数名 | 参数类型 | 必填 | 说明 | - |----------|---------|------|-------| - | origin | string | 是 | 指定源的字符串索引。 | +| 参数名 | 参数类型 | 必填 | 说明 | +| ------ | ------ | ---- | ---------- | +| origin | string | 是 | 指定源的字符串索引。 | **返回值:** - | 类型 | 说明 | - |------|------| - | Promise | Promise实例,用于获取指定源的存储配额。 | +| 类型 | 说明 | +| --------------- | ----------------------- | +| Promise | Promise实例,用于获取指定源的存储配额。 | **示例:** ```ts @@ -2931,10 +2931,10 @@ static getOriginUsage(origin : string, callback : AsyncCallback) : void 以回调方式异步获取指定源的Web SQL数据库的存储量,存储量以字节为单位。 **参数:** - | 参数名 | 参数类型 | 必填 | 说明 | - |----------|----------|------|------| - | origin | string | 是 | 指定源的字符串索引。 | - | callback | AsyncCallback | 是 | 指定源的存储量。 | +| 参数名 | 参数类型 | 必填 | 说明 | +| -------- | --------------------- | ---- | ---------- | +| origin | string | 是 | 指定源的字符串索引。 | +| callback | AsyncCallback | 是 | 指定源的存储量。 | **示例:** ```ts @@ -2970,14 +2970,14 @@ static getOriginUsage(origin : string) : Promise 以Promise方式异步获取指定源的Web SQL数据库的存储量,存储量以字节为单位。 **参数:** - | 参数名 | 参数类型 | 必填 | 说明 | - |----------|----------|------|------| - | origin | string | 是 | 指定源的字符串索引。 | +| 参数名 | 参数类型 | 必填 | 说明 | +| ------ | ------ | ---- | ---------- | +| origin | string | 是 | 指定源的字符串索引。 | **返回值:** - | 类型 | 说明 | - |------|------| - | Promise | Promise实例,用于获取指定源的存储量。 | +| 类型 | 说明 | +| --------------- | ---------------------- | +| Promise | Promise实例,用于获取指定源的存储量。 | **示例:** ```ts @@ -3012,16 +3012,16 @@ static getOriginUsage(origin : string) : Promise 提供Web SQL数据库的使用信息。 **参数:** - | 参数名 | 参数类型 | 必填 | 说明 | - |----------|----------|------|------| - | origin | string | 是 | 指定源的字符串索引。 | - | usage | number | 是 | 指定源的存储量。 | - | quota | number | 是 | 指定源的存储配额。 | +| 参数名 | 参数类型 | 必填 | 说明 | +| ------ | ------ | ---- | ---------- | +| origin | string | 是 | 指定源的字符串索引。 | +| usage | number | 是 | 指定源的存储量。 | +| quota | number | 是 | 指定源的存储配额。 | ## MessageLevel枚举说明 -| 名称 | 描述 | -| ----- | :--------- | +| 名称 | 描述 | +| ----- | :---- | | Debug | 调试级别。 | | Error | 错误级别。 | | Info | 消息级别。 | @@ -3032,46 +3032,46 @@ static getOriginUsage(origin : string) : Promise onRenderExited接口返回的渲染进程退出的具体原因。 -| 名称 | 描述 | -| -------------------------- | ---------------------------- | -| ProcessAbnormalTermination | 渲染进程异常退出。 | -| ProcessWasKilled | 收到SIGKILL,或被手动终止。 | -| ProcessCrashed | 渲染进程崩溃退出,如段错误。 | -| ProcessOom | 程序内存不足。 | -| ProcessExitUnknown | 其他原因。 | +| 名称 | 描述 | +| -------------------------- | ----------------- | +| ProcessAbnormalTermination | 渲染进程异常退出。 | +| ProcessWasKilled | 收到SIGKILL,或被手动终止。 | +| ProcessCrashed | 渲染进程崩溃退出,如段错误。 | +| ProcessOom | 程序内存不足。 | +| ProcessExitUnknown | 其他原因。 | ## MixedMode枚举说明 -| 名称 | 描述 | -| ---------- | ----------------------------------------------------------- | +| 名称 | 描述 | +| ---------- | ---------------------------------- | | All | 允许加载HTTP和HTTPS混合内容。所有不安全的内容都可以被加载。 | -| Compatible | 混合内容兼容性模式,部分不安全的内容可能被加载。 | -| None | 不允许加载HTTP和HTTPS混合内容。 | +| Compatible | 混合内容兼容性模式,部分不安全的内容可能被加载。 | +| None | 不允许加载HTTP和HTTPS混合内容。 | ## CacheMode枚举说明 -| 名称 | 描述 | -| ------- | ------------------------------------------------------------ | +| 名称 | 描述 | +| ------- | ------------------------------------ | | Default | 使用未过期的cache加载资源,如果cache中无该资源则从网络中获取。 | -| None | 加载资源使用cache,如果cache中无该资源则从网络中获取。 | -| Online | 加载资源不使用cache,全部从网络中获取。 | -| Only | 只从cache中加载资源。 | +| None | 加载资源使用cache,如果cache中无该资源则从网络中获取。 | +| Online | 加载资源不使用cache,全部从网络中获取。 | +| Only | 只从cache中加载资源。 | ## FileSelectorMode枚举说明 -| 名称 | 描述 | -| -------------------- | -------------------- | -| FileOpenMode | 打开上传单个文件。 | -| FileOpenMultipleMode | 打开上传多个文件。 | +| 名称 | 描述 | +| -------------------- | ---------- | +| FileOpenMode | 打开上传单个文件。 | +| FileOpenMultipleMode | 打开上传多个文件。 | | FileOpenFolderMode | 打开上传文件夹模式。 | -| FileSaveMode | 文件保存模式。 | +| FileSaveMode | 文件保存模式。 | ## HitTestType枚举说明 - | 名称 | 描述 | - | ------------- | ----------------------------------------- | - | EditText | 可编辑的区域。 | - | Email | 电子邮件地址。 | - | HttpAnchor | 超链接,其src为http。 | - | HttpAnchorImg | 带有超链接的图片,其中超链接的src为http。 | - | Img | HTML::img标签。 | - | Map | 地理地址。 | - | Unknown | 未知内容。 | \ No newline at end of file +| 名称 | 描述 | +| ------------- | ------------------------ | +| EditText | 可编辑的区域。 | +| Email | 电子邮件地址。 | +| HttpAnchor | 超链接,其src为http。 | +| HttpAnchorImg | 带有超链接的图片,其中超链接的src为http。 | +| Img | HTML::img标签。 | +| Map | 地理地址。 | +| Unknown | 未知内容。 | \ No newline at end of file -- GitLab From eebc7e4b9dc42459e5178e1865a40a959943ac9f Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 28 Jul 2022 11:10:55 +0000 Subject: [PATCH 565/868] update en/application-dev/website.md. Signed-off-by: zengyawen --- en/application-dev/website.md | 456 +++++++++++++++++----------------- 1 file changed, 229 insertions(+), 227 deletions(-) diff --git a/en/application-dev/website.md b/en/application-dev/website.md index c2f862100e..f76b6b05e5 100644 --- a/en/application-dev/website.md +++ b/en/application-dev/website.md @@ -115,10 +115,9 @@ - [Directory Structure](ui/ts-framework-directory.md) - [Rules for Accessing Application Code Files](ui/ts-framework-file-access-rules.md) - ["js" Tag](ui/ts-framework-js-tag.md) - - Resource Access - - [Accessing Application Resources](ui/ts-application-resource-access.md) - - [Accessing System Resources](ui/ts-system-resource-access.md) - - [Media Resource Types](ui/ts-media-resource-type.md) + - Resource Management + - [Resource File Categories](ui/ui-ts-basic-resource-file-categories.md) + - [Accessing Resources](ui/ts-resource-access.md) - [Pixel Units](ui/ts-pixel-units.md) - [Types](ui/ts-types.md) - Declarative Syntax @@ -147,6 +146,7 @@ - [@Link](ui/ts-component-states-link.md) - Managing Application States - [AppStorage](ui/ts-application-states-appstorage.md) + - [LocalStorage](ui/ui-ts-local-storage.md) - [PersistentStorage](ui/ts-application-states-apis-persistentstorage.md) - [Environment](ui/ts-application-states-apis-environment.md) - Managing Other States @@ -324,99 +324,98 @@ - [Codelabs](https://gitee.com/openharmony/codelabs) - API References - Component Reference (JavaScript-based Web-like Development Paradigm) - - Components - - Common - - [Universal Attributes](reference/arkui-js/js-components-common-attributes.md) - - [Universal Styles](reference/arkui-js/js-components-common-styles.md) - - [Universal Events](reference/arkui-js/js-components-common-events.md) - - [Universal Methods](reference/arkui-js/js-components-common-methods.md) - - [Animation Styles](reference/arkui-js/js-components-common-animation.md) - - [Gradient Styles](reference/arkui-js/js-components-common-gradient.md) - - [Transition Styles](reference/arkui-js/js-components-common-transition.md) - - [Media Query](reference/arkui-js/js-components-common-mediaquery.md) - - [Custom Font Styles](reference/arkui-js/js-components-common-customizing-font.md) - - [Atomic Layout](reference/arkui-js/js-components-common-atomic-layout.md) - - Container Component - - [badge](reference/arkui-js/js-components-container-badge.md) - - [dialog](reference/arkui-js/js-components-container-dialog.md) - - [div](reference/arkui-js/js-components-container-div.md) - - [form](reference/arkui-js/js-components-container-form.md) - - [list](reference/arkui-js/js-components-container-list.md) - - [list-item](reference/arkui-js/js-components-container-list-item.md) - - [list-item-group](reference/arkui-js/js-components-container-list-item-group.md) - - [panel](reference/arkui-js/js-components-container-panel.md) - - [popup](reference/arkui-js/js-components-container-popup.md) - - [refresh](reference/arkui-js/js-components-container-refresh.md) - - [stack](reference/arkui-js/js-components-container-stack.md) - - [stepper](reference/arkui-js/js-components-container-stepper.md) - - [stepper-item](reference/arkui-js/js-components-container-stepper-item.md) - - [swiper](reference/arkui-js/js-components-container-swiper.md) - - [tabs](reference/arkui-js/js-components-container-tabs.md) - - [tab-bar](reference/arkui-js/js-components-container-tab-bar.md) - - [tab-content](reference/arkui-js/js-components-container-tab-content.md) - - Basic Components - - [button](reference/arkui-js/js-components-basic-button.md) - - [chart](reference/arkui-js/js-components-basic-chart.md) - - [divider](reference/arkui-js/js-components-basic-divider.md) - - [image](reference/arkui-js/js-components-basic-image.md) - - [image-animator](reference/arkui-js/js-components-basic-image-animator.md) - - [input](reference/arkui-js/js-components-basic-input.md) - - [label](reference/arkui-js/js-components-basic-label.md) - - [marquee](reference/arkui-js/js-components-basic-marquee.md) - - [menu](reference/arkui-js/js-components-basic-menu.md) - - [option](reference/arkui-js/js-components-basic-option.md) - - [picker](reference/arkui-js/js-components-basic-picker.md) - - [picker-view](reference/arkui-js/js-components-basic-picker-view.md) - - [piece](reference/arkui-js/js-components-basic-piece.md) - - [progress](reference/arkui-js/js-components-basic-progress.md) - - [qrcode](reference/arkui-js/js-components-basic-qrcode.md) - - [rating](reference/arkui-js/js-components-basic-rating.md) - - [richtext](reference/arkui-js/js-components-basic-richtext.md) - - [search](reference/arkui-js/js-components-basic-search.md) - - [select](reference/arkui-js/js-components-basic-select.md) - - [slider](reference/arkui-js/js-components-basic-slider.md) - - [span](reference/arkui-js/js-components-basic-span.md) - - [switch](reference/arkui-js/js-components-basic-switch.md) - - [text](reference/arkui-js/js-components-basic-text.md) - - [textarea](reference/arkui-js/js-components-basic-textarea.md) - - [toolbar](reference/arkui-js/js-components-basic-toolbar.md) - - [toolbar-item](reference/arkui-js/js-components-basic-toolbar-item.md) - - [toggle](reference/arkui-js/js-components-basic-toggle.md) - - [web](reference/arkui-js/js-components-basic-web.md) - - [xcomponent](reference/arkui-js/js-components-basic-xcomponent.md) - - Media Components - - [video](reference/arkui-js/js-components-media-video.md) - - Canvas Components - - [canvas](reference/arkui-js/js-components-canvas-canvas.md) - - [CanvasRenderingContext2D](reference/arkui-js/js-components-canvas-canvasrenderingcontext2d.md) - - [Image](reference/arkui-js/js-components-canvas-image.md) - - [CanvasGradient](reference/arkui-js/js-components-canvas-canvasgradient.md) - - [ImageData](reference/arkui-js/js-components-canvas-imagedata.md) - - [Path2D](reference/arkui-js/js-components-canvas-path2d.md) - - [ImageBitmap](reference/arkui-js/js-components-canvas-imagebitmap.md) - - [OffscreenCanvas](reference/arkui-js/js-components-canvas-offscreencanvas.md) - - [OffscreenCanvasRenderingContext2D](reference/arkui-js/js-offscreencanvasrenderingcontext2d.md) - - Grid - - [Basic Concepts](reference/arkui-js/js-components-grid-basic-concepts.md) - - [grid-container](reference/arkui-js/js-components-grid-container.md) - - [grid-row](reference/arkui-js/js-components-grid-row.md) - - [grid-col](reference/arkui-js/js-components-grid-col.md) - - SVG Components - - [Universal Attributes](reference/arkui-js/js-components-svg-common-attributes.md) - - [svg](reference/arkui-js/js-components-svg.md) - - [rect](reference/arkui-js/js-components-svg-rect.md) - - [circle](reference/arkui-js/js-components-svg-circle.md) - - [ellipse](reference/arkui-js/js-components-svg-ellipse.md) - - [path](reference/arkui-js/js-components-svg-path.md) - - [line](reference/arkui-js/js-components-svg-line.md) - - [polyline](reference/arkui-js/js-components-svg-polyline.md) - - [polygon](reference/arkui-js/js-components-svg-polygon.md) - - [text](reference/arkui-js/js-components-svg-text.md) - - [tspan](reference/arkui-js/js-components-svg-tspan.md) - - [textPath](reference/arkui-js/js-components-svg-textpath.md) - - [animate](reference/arkui-js/js-components-svg-animate.md) - - [animateMotion](reference/arkui-js/js-components-svg-animatemotion.md) - - [animateTransform](reference/arkui-js/js-components-svg-animatetransform.md) + - Universal Component Information + - [Universal Attributes](reference/arkui-js/js-components-common-attributes.md) + - [Universal Styles](reference/arkui-js/js-components-common-styles.md) + - [Universal Events](reference/arkui-js/js-components-common-events.md) + - [Universal Methods](reference/arkui-js/js-components-common-methods.md) + - [Animation Styles](reference/arkui-js/js-components-common-animation.md) + - [Gradient Styles](reference/arkui-js/js-components-common-gradient.md) + - [Transition Styles](reference/arkui-js/js-components-common-transition.md) + - [Media Query](reference/arkui-js/js-components-common-mediaquery.md) + - [Custom Font Styles](reference/arkui-js/js-components-common-customizing-font.md) + - [Atomic Layout](reference/arkui-js/js-components-common-atomic-layout.md) + - Container Component + - [badge](reference/arkui-js/js-components-container-badge.md) + - [dialog](reference/arkui-js/js-components-container-dialog.md) + - [div](reference/arkui-js/js-components-container-div.md) + - [form](reference/arkui-js/js-components-container-form.md) + - [list](reference/arkui-js/js-components-container-list.md) + - [list-item](reference/arkui-js/js-components-container-list-item.md) + - [list-item-group](reference/arkui-js/js-components-container-list-item-group.md) + - [panel](reference/arkui-js/js-components-container-panel.md) + - [popup](reference/arkui-js/js-components-container-popup.md) + - [refresh](reference/arkui-js/js-components-container-refresh.md) + - [stack](reference/arkui-js/js-components-container-stack.md) + - [stepper](reference/arkui-js/js-components-container-stepper.md) + - [stepper-item](reference/arkui-js/js-components-container-stepper-item.md) + - [swiper](reference/arkui-js/js-components-container-swiper.md) + - [tabs](reference/arkui-js/js-components-container-tabs.md) + - [tab-bar](reference/arkui-js/js-components-container-tab-bar.md) + - [tab-content](reference/arkui-js/js-components-container-tab-content.md) + - Basic Components + - [button](reference/arkui-js/js-components-basic-button.md) + - [chart](reference/arkui-js/js-components-basic-chart.md) + - [divider](reference/arkui-js/js-components-basic-divider.md) + - [image](reference/arkui-js/js-components-basic-image.md) + - [image-animator](reference/arkui-js/js-components-basic-image-animator.md) + - [input](reference/arkui-js/js-components-basic-input.md) + - [label](reference/arkui-js/js-components-basic-label.md) + - [marquee](reference/arkui-js/js-components-basic-marquee.md) + - [menu](reference/arkui-js/js-components-basic-menu.md) + - [option](reference/arkui-js/js-components-basic-option.md) + - [picker](reference/arkui-js/js-components-basic-picker.md) + - [picker-view](reference/arkui-js/js-components-basic-picker-view.md) + - [piece](reference/arkui-js/js-components-basic-piece.md) + - [progress](reference/arkui-js/js-components-basic-progress.md) + - [qrcode](reference/arkui-js/js-components-basic-qrcode.md) + - [rating](reference/arkui-js/js-components-basic-rating.md) + - [richtext](reference/arkui-js/js-components-basic-richtext.md) + - [search](reference/arkui-js/js-components-basic-search.md) + - [select](reference/arkui-js/js-components-basic-select.md) + - [slider](reference/arkui-js/js-components-basic-slider.md) + - [span](reference/arkui-js/js-components-basic-span.md) + - [switch](reference/arkui-js/js-components-basic-switch.md) + - [text](reference/arkui-js/js-components-basic-text.md) + - [textarea](reference/arkui-js/js-components-basic-textarea.md) + - [toolbar](reference/arkui-js/js-components-basic-toolbar.md) + - [toolbar-item](reference/arkui-js/js-components-basic-toolbar-item.md) + - [toggle](reference/arkui-js/js-components-basic-toggle.md) + - [web](reference/arkui-js/js-components-basic-web.md) + - [xcomponent](reference/arkui-js/js-components-basic-xcomponent.md) + - Media Components + - [video](reference/arkui-js/js-components-media-video.md) + - Canvas Components + - [canvas](reference/arkui-js/js-components-canvas-canvas.md) + - [CanvasRenderingContext2D](reference/arkui-js/js-components-canvas-canvasrenderingcontext2d.md) + - [Image](reference/arkui-js/js-components-canvas-image.md) + - [CanvasGradient](reference/arkui-js/js-components-canvas-canvasgradient.md) + - [ImageData](reference/arkui-js/js-components-canvas-imagedata.md) + - [Path2D](reference/arkui-js/js-components-canvas-path2d.md) + - [ImageBitmap](reference/arkui-js/js-components-canvas-imagebitmap.md) + - [OffscreenCanvas](reference/arkui-js/js-components-canvas-offscreencanvas.md) + - [OffscreenCanvasRenderingContext2D](reference/arkui-js/js-offscreencanvasrenderingcontext2d.md) + - Grid Components + - [Basic Concepts](reference/arkui-js/js-components-grid-basic-concepts.md) + - [grid-container](reference/arkui-js/js-components-grid-container.md) + - [grid-row](reference/arkui-js/js-components-grid-row.md) + - [grid-col](reference/arkui-js/js-components-grid-col.md) + - SVG Components + - [Universal Attributes](reference/arkui-js/js-components-svg-common-attributes.md) + - [svg](reference/arkui-js/js-components-svg.md) + - [rect](reference/arkui-js/js-components-svg-rect.md) + - [circle](reference/arkui-js/js-components-svg-circle.md) + - [ellipse](reference/arkui-js/js-components-svg-ellipse.md) + - [path](reference/arkui-js/js-components-svg-path.md) + - [line](reference/arkui-js/js-components-svg-line.md) + - [polyline](reference/arkui-js/js-components-svg-polyline.md) + - [polygon](reference/arkui-js/js-components-svg-polygon.md) + - [text](reference/arkui-js/js-components-svg-text.md) + - [tspan](reference/arkui-js/js-components-svg-tspan.md) + - [textPath](reference/arkui-js/js-components-svg-textpath.md) + - [animate](reference/arkui-js/js-components-svg-animate.md) + - [animateMotion](reference/arkui-js/js-components-svg-animatemotion.md) + - [animateTransform](reference/arkui-js/js-components-svg-animatetransform.md) - Custom Components - [Basic Usage](reference/arkui-js/js-components-custom-basic-usage.md) - [Style Inheritance](reference/arkui-js/js-components-custom-style.md) @@ -425,137 +424,140 @@ - [Event Parameter](reference/arkui-js/js-components-custom-event-parameter.md) - [slot](reference/arkui-js/js-components-custom-slot.md) - [Lifecycle Definition](reference/arkui-js/js-components-custom-lifecycle.md) - - Appendix - - [Type Attributes](reference/arkui-js/js-appendix-types.md) + - [Data Type Attributes](reference/arkui-js/js-appendix-types.md) - Component Reference (TypeScript-based Declarative Development Paradigm) - - Components - - Universal Components - - Universal Events - - [Click Event](reference/arkui-ts/ts-universal-events-click.md) - - [Touch Event](reference/arkui-ts/ts-universal-events-touch.md) - - [Show/Hide Event](reference/arkui-ts/ts-universal-events-show-hide.md) - - [Drag/Drop Event](reference/arkui-ts/ts-universal-events-drag-drop.md) - - [Key Event](reference/arkui-ts/ts-universal-events-key.md) - - [Focus Event](reference/arkui-ts/ts-universal-focus-event.md) - - [Mouse Event](reference/arkui-ts/ts-universal-mouse-key.md) - - [Component Area Change Event](reference/arkui-ts/ts-universal-component-area-change-event.md) - - Universal Attributes - - [Size](reference/arkui-ts/ts-universal-attributes-size.md) - - [Location](reference/arkui-ts/ts-universal-attributes-location.md) - - [Layout Constraints](reference/arkui-ts/ts-universal-attributes-layout-constraints.md) - - [Flex Layout](reference/arkui-ts/ts-universal-attributes-flex-layout.md) - - [Border](reference/arkui-ts/ts-universal-attributes-border.md) - - [Background](reference/arkui-ts/ts-universal-attributes-background.md) - - [Opacity](reference/arkui-ts/ts-universal-attributes-opacity.md) - - [Visibility](reference/arkui-ts/ts-universal-attributes-visibility.md) - - [Enable/Disable](reference/arkui-ts/ts-universal-attributes-enable.md) - - [Overlay](reference/arkui-ts/ts-universal-attributes-overlay.md) - - [Z-order Control](reference/arkui-ts/ts-universal-attributes-z-order.md) - - [Transformation](reference/arkui-ts/ts-universal-attributes-transformation.md) - - [Image Effect Configuration](reference/arkui-ts/ts-universal-attributes-image-effect.md) - - [Shape Clipping](reference/arkui-ts/ts-universal-attributes-sharp-clipping.md) - - [Text Style](reference/arkui-ts/ts-universal-attributes-text-style.md) - - [Grid](reference/arkui-ts/ts-universal-attributes-grid.md) - - [Gradient Color](reference/arkui-ts/ts-universal-attributes-gradient-color.md) - - [Popup Control](reference/arkui-ts/ts-universal-attributes-popup.md) - - [Menu Control](reference/arkui-ts/ts-universal-attributes-menu.md) - - [Click Control](reference/arkui-ts/ts-universal-attributes-click.md) - - [Focus Control](reference/arkui-ts/ts-universal-attributes-focus.md) - - [Hover Effect](reference/arkui-ts/ts-universal-attributes-hover-effect.md) - - [Component ID](reference/arkui-ts/ts-universal-attributes-component-id.md) - - [Touch Target](reference/arkui-ts/ts-universal-attributes-touch-target.md) - - [Polymorphic Style](reference/arkui-ts/ts-universal-attributes-polymorphic-style.md) - - Gesture Processing - - [Gesture Binding Methods](reference/arkui-ts/ts-gesture-settings.md) - - Basic Gestures - - [TapGesture](reference/arkui-ts/ts-basic-gestures-tapgesture.md) - - [LongPressGesture](reference/arkui-ts/ts-basic-gestures-longpressgesture.md) - - [PanGesture](reference/arkui-ts/ts-basic-gestures-pangesture.md) - - [PinchGesture](reference/arkui-ts/ts-basic-gestures-pinchgesture.md) - - [RotationGesture](reference/arkui-ts/ts-basic-gestures-rotationgesture.md) - - [SwipeGesture](reference/arkui-ts/ts-basic-gestures-swipegesture.md) - - [Combined Gestures](reference/arkui-ts/ts-combined-gestures.md) - - Basic Components - - [Blank](reference/arkui-ts/ts-basic-components-blank.md) - - [Button](reference/arkui-ts/ts-basic-components-button.md) - - [Checkbox](reference/arkui-ts/ts-basic-components-checkbox.md) - - [CheckboxGroup](reference/arkui-ts/ts-basic-components-checkboxgroup.md) - - [DataPanel](reference/arkui-ts/ts-basic-components-datapanel.md) - - [DatePicker](reference/arkui-ts/ts-basic-components-datepicker.md) - - [Divider](reference/arkui-ts/ts-basic-components-divider.md) - - [Gauge](reference/arkui-ts/ts-basic-components-gauge.md) - - [Image](reference/arkui-ts/ts-basic-components-image.md) - - [ImageAnimator](reference/arkui-ts/ts-basic-components-imageanimator.md) - - [LoadingProgress](reference/arkui-ts/ts-basic-components-loadingprogress.md) - - [Marquee](reference/arkui-ts/ts-basic-components-marquee.md) - - [Navigation](reference/arkui-ts/ts-basic-components-navigation.md) - - [PatternLock](reference/arkui-ts/ts-basic-components-patternlock.md) - - [PluginComponent](reference/arkui-ts/ts-basic-components-plugincomponent.md) - - [Progress](reference/arkui-ts/ts-basic-components-progress.md) - - [QRCode](reference/arkui-ts/ts-basic-components-qrcode.md) - - [Radio](reference/arkui-ts/ts-basic-components-radio.md) - - [Rating](reference/arkui-ts/ts-basic-components-rating.md) - - [RichText](reference/arkui-ts/ts-basic-components-richtext.md) - - [ScrollBar](reference/arkui-ts/ts-basic-components-scrollbar.md) - - [Search](reference/arkui-ts/ts-basic-components-search.md) - - [Select](reference/arkui-ts/ts-basic-components-select.md) - - [Slider](reference/arkui-ts/ts-basic-components-slider.md) - - [Span](reference/arkui-ts/ts-basic-components-span.md) - - [Stepper](reference/arkui-ts/ts-basic-components-stepper.md) - - [StepperItem](reference/arkui-ts/ts-basic-components-stepperitem.md) - - [Text](reference/arkui-ts/ts-basic-components-text.md) - - [TextArea](reference/arkui-ts/ts-basic-components-textarea.md) - - [TextClock](reference/arkui-ts/ts-basic-components-textclock.md) - - [TextInput](reference/arkui-ts/ts-basic-components-textinput.md) - - [TextPicker](reference/arkui-ts/ts-basic-components-textpicker.md) - - [TextTimer](reference/arkui-ts/ts-basic-components-texttimer.md) - - [TimePicker](reference/arkui-ts/ts-basic-components-timepicker.md) - - [Toggle](reference/arkui-ts/ts-basic-components-toggle.md) - - [Web](reference/arkui-ts/ts-basic-components-web.md) - - [XComponent](reference/arkui-ts/ts-basic-components-xcomponent.md) - - Container Components - - [AlphabetIndexer](reference/arkui-ts/ts-container-alphabet-indexer.md) - - [Badge](reference/arkui-ts/ts-container-badge.md) - - [Column](reference/arkui-ts/ts-container-column.md) - - [ColumnSplit](reference/arkui-ts/ts-container-columnsplit.md) - - [Counter](reference/arkui-ts/ts-container-counter.md) - - [Flex](reference/arkui-ts/ts-container-flex.md) - - [GridContainer](reference/arkui-ts/ts-container-gridcontainer.md) - - [Grid](reference/arkui-ts/ts-container-grid.md) - - [GridItem](reference/arkui-ts/ts-container-griditem.md) - - [List](reference/arkui-ts/ts-container-list.md) - - [ListItem](reference/arkui-ts/ts-container-listitem.md) - - [Navigator](reference/arkui-ts/ts-container-navigator.md) - - [Panel](reference/arkui-ts/ts-container-panel.md) - - [Refresh](reference/arkui-ts/ts-container-refresh.md) - - [Row](reference/arkui-ts/ts-container-row.md) - - [RowSplit](reference/arkui-ts/ts-container-rowsplit.md) - - [Scroll](reference/arkui-ts/ts-container-scroll.md) - - [SideBarContainer](reference/arkui-ts/ts-container-sidebarcontainer.md) - - [Stack](reference/arkui-ts/ts-container-stack.md) - - [Swiper](reference/arkui-ts/ts-container-swiper.md) - - [Tabs](reference/arkui-ts/ts-container-tabs.md) - - [TabContent](reference/arkui-ts/ts-container-tabcontent.md) - - Media Components - - [Video](reference/arkui-ts/ts-media-components-video.md) - - Drawing Components - - [Circle](reference/arkui-ts/ts-drawing-components-circle.md) - - [Ellipse](reference/arkui-ts/ts-drawing-components-ellipse.md) - - [Line](reference/arkui-ts/ts-drawing-components-line.md) - - [Polyline](reference/arkui-ts/ts-drawing-components-polyline.md) - - [Polygon](reference/arkui-ts/ts-drawing-components-polygon.md) - - [Path](reference/arkui-ts/ts-drawing-components-path.md) - - [Rect](reference/arkui-ts/ts-drawing-components-rect.md) - - [Shape](reference/arkui-ts/ts-drawing-components-shape.md) - - Canvas Components - - [Canvas](reference/arkui-ts/ts-components-canvas-canvas.md) - - [CanvasRenderingContext2D](reference/arkui-ts/ts-canvasrenderingcontext2d.md) - - [OffscreenCanvasRenderingConxt2D](reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md) - - [Lottie](reference/arkui-ts/ts-components-canvas-lottie.md) - - [Path2D](reference/arkui-ts/ts-components-canvas-path2d.md) - - [CanvasGradient](reference/arkui-ts/ts-components-canvas-canvasgradient.md) - - [ImageBitmap](reference/arkui-ts/ts-components-canvas-imagebitmap.md) - - [ImageData](reference/arkui-ts/ts-components-canvas-imagedata.md) + - Universal Component Information + - Universal Events + - [Click Event](reference/arkui-ts/ts-universal-events-click.md) + - [Touch Event](reference/arkui-ts/ts-universal-events-touch.md) + - [Show/Hide Event](reference/arkui-ts/ts-universal-events-show-hide.md) + - [Drag/Drop Event](reference/arkui-ts/ts-universal-events-drag-drop.md) + - [Key Event](reference/arkui-ts/ts-universal-events-key.md) + - [Focus Event](reference/arkui-ts/ts-universal-focus-event.md) + - [Mouse Event](reference/arkui-ts/ts-universal-mouse-key.md) + - [Component Area Change Event](reference/arkui-ts/ts-universal-component-area-change-event.md) + - [Visible Area Change Event](reference/arkui-ts/ts-universal-component-visible-area-change-event.md) + - Universal Attributes + - [Size](reference/arkui-ts/ts-universal-attributes-size.md) + - [Location](reference/arkui-ts/ts-universal-attributes-location.md) + - [Layout Constraints](reference/arkui-ts/ts-universal-attributes-layout-constraints.md) + - [Flex Layout](reference/arkui-ts/ts-universal-attributes-flex-layout.md) + - [Border](reference/arkui-ts/ts-universal-attributes-border.md) + - [ͼƬ߿](reference/arkui-ts/ts-universal-attributes-border-image.md) + - [Background](reference/arkui-ts/ts-universal-attributes-background.md) + - [Opacity](reference/arkui-ts/ts-universal-attributes-opacity.md) + - [Visibility](reference/arkui-ts/ts-universal-attributes-visibility.md) + - [Enable/Disable](reference/arkui-ts/ts-universal-attributes-enable.md) + - [Overlay](reference/arkui-ts/ts-universal-attributes-overlay.md) + - [Z-order Control](reference/arkui-ts/ts-universal-attributes-z-order.md) + - [Transformation](reference/arkui-ts/ts-universal-attributes-transformation.md) + - [Image Effect Configuration](reference/arkui-ts/ts-universal-attributes-image-effect.md) + - [Shape Clipping](reference/arkui-ts/ts-universal-attributes-sharp-clipping.md) + - [Text Style](reference/arkui-ts/ts-universal-attributes-text-style.md) + - [Grid](reference/arkui-ts/ts-universal-attributes-grid.md) + - [Gradient Color](reference/arkui-ts/ts-universal-attributes-gradient-color.md) + - [Popup Control](reference/arkui-ts/ts-universal-attributes-popup.md) + - [Menu Control](reference/arkui-ts/ts-universal-attributes-menu.md) + - [Click Control](reference/arkui-ts/ts-universal-attributes-click.md) + - [Focus Control](reference/arkui-ts/ts-universal-attributes-focus.md) + - [Hover Effect](reference/arkui-ts/ts-universal-attributes-hover-effect.md) + - [Component ID](reference/arkui-ts/ts-universal-attributes-component-id.md) + - [Touch Target](reference/arkui-ts/ts-universal-attributes-touch-target.md) + - [Polymorphic Style](reference/arkui-ts/ts-universal-attributes-polymorphic-style.md) + - Gesture Processing + - [Gesture Binding Methods](reference/arkui-ts/ts-gesture-settings.md) + - Basic Gestures + - [TapGesture](reference/arkui-ts/ts-basic-gestures-tapgesture.md) + - [LongPressGesture](reference/arkui-ts/ts-basic-gestures-longpressgesture.md) + - [PanGesture](reference/arkui-ts/ts-basic-gestures-pangesture.md) + - [PinchGesture](reference/arkui-ts/ts-basic-gestures-pinchgesture.md) + - [RotationGesture](reference/arkui-ts/ts-basic-gestures-rotationgesture.md) + - [SwipeGesture](reference/arkui-ts/ts-basic-gestures-swipegesture.md) + - [Combined Gestures](reference/arkui-ts/ts-combined-gestures.md) + - Basic Components + - [Blank](reference/arkui-ts/ts-basic-components-blank.md) + - [Button](reference/arkui-ts/ts-basic-components-button.md) + - [Checkbox](reference/arkui-ts/ts-basic-components-checkbox.md) + - [CheckboxGroup](reference/arkui-ts/ts-basic-components-checkboxgroup.md) + - [DataPanel](reference/arkui-ts/ts-basic-components-datapanel.md) + - [DatePicker](reference/arkui-ts/ts-basic-components-datepicker.md) + - [Divider](reference/arkui-ts/ts-basic-components-divider.md) + - [Gauge](reference/arkui-ts/ts-basic-components-gauge.md) + - [Image](reference/arkui-ts/ts-basic-components-image.md) + - [ImageAnimator](reference/arkui-ts/ts-basic-components-imageanimator.md) + - [LoadingProgress](reference/arkui-ts/ts-basic-components-loadingprogress.md) + - [Marquee](reference/arkui-ts/ts-basic-components-marquee.md) + - [Navigation](reference/arkui-ts/ts-basic-components-navigation.md) + - [PatternLock](reference/arkui-ts/ts-basic-components-patternlock.md) + - [PluginComponent](reference/arkui-ts/ts-basic-components-plugincomponent.md) + - [Progress](reference/arkui-ts/ts-basic-components-progress.md) + - [QRCode](reference/arkui-ts/ts-basic-components-qrcode.md) + - [Radio](reference/arkui-ts/ts-basic-components-radio.md) + - [Rating](reference/arkui-ts/ts-basic-components-rating.md) + - [RemoteWindow](reference/arkui-ts/ts-basic-components-remotewindow.md) + - [RichText](reference/arkui-ts/ts-basic-components-richtext.md) + - [ScrollBar](reference/arkui-ts/ts-basic-components-scrollbar.md) + - [Search](reference/arkui-ts/ts-basic-components-search.md) + - [Select](reference/arkui-ts/ts-basic-components-select.md) + - [Slider](reference/arkui-ts/ts-basic-components-slider.md) + - [Span](reference/arkui-ts/ts-basic-components-span.md) + - [Stepper](reference/arkui-ts/ts-basic-components-stepper.md) + - [StepperItem](reference/arkui-ts/ts-basic-components-stepperitem.md) + - [Text](reference/arkui-ts/ts-basic-components-text.md) + - [TextArea](reference/arkui-ts/ts-basic-components-textarea.md) + - [TextClock](reference/arkui-ts/ts-basic-components-textclock.md) + - [TextInput](reference/arkui-ts/ts-basic-components-textinput.md) + - [TextPicker](reference/arkui-ts/ts-basic-components-textpicker.md) + - [TextTimer](reference/arkui-ts/ts-basic-components-texttimer.md) + - [TimePicker](reference/arkui-ts/ts-basic-components-timepicker.md) + - [Toggle](reference/arkui-ts/ts-basic-components-toggle.md) + - [Web](reference/arkui-ts/ts-basic-components-web.md) + - [XComponent](reference/arkui-ts/ts-basic-components-xcomponent.md) + - Container Components + - [AbilityComponent](reference/arkui-ts/ts-container-ability-component.md) + - [AlphabetIndexer](reference/arkui-ts/ts-container-alphabet-indexer.md) + - [Badge](reference/arkui-ts/ts-container-badge.md) + - [Column](reference/arkui-ts/ts-container-column.md) + - [ColumnSplit](reference/arkui-ts/ts-container-columnsplit.md) + - [Counter](reference/arkui-ts/ts-container-counter.md) + - [Flex](reference/arkui-ts/ts-container-flex.md) + - [GridContainer](reference/arkui-ts/ts-container-gridcontainer.md) + - [Grid](reference/arkui-ts/ts-container-grid.md) + - [GridItem](reference/arkui-ts/ts-container-griditem.md) + - [List](reference/arkui-ts/ts-container-list.md) + - [ListItem](reference/arkui-ts/ts-container-listitem.md) + - [Navigator](reference/arkui-ts/ts-container-navigator.md) + - [Panel](reference/arkui-ts/ts-container-panel.md) + - [Refresh](reference/arkui-ts/ts-container-refresh.md) + - [RelativeContainer](reference/arkui-ts/ts-container-relativecontainer.md) + - [Row](reference/arkui-ts/ts-container-row.md) + - [RowSplit](reference/arkui-ts/ts-container-rowsplit.md) + - [Scroll](reference/arkui-ts/ts-container-scroll.md) + - [SideBarContainer](reference/arkui-ts/ts-container-sidebarcontainer.md) + - [Stack](reference/arkui-ts/ts-container-stack.md) + - [Swiper](reference/arkui-ts/ts-container-swiper.md) + - [Tabs](reference/arkui-ts/ts-container-tabs.md) + - [TabContent](reference/arkui-ts/ts-container-tabcontent.md) + - Media Components + - [Video](reference/arkui-ts/ts-media-components-video.md) + - Drawing Components + - [Circle](reference/arkui-ts/ts-drawing-components-circle.md) + - [Ellipse](reference/arkui-ts/ts-drawing-components-ellipse.md) + - [Line](reference/arkui-ts/ts-drawing-components-line.md) + - [Polyline](reference/arkui-ts/ts-drawing-components-polyline.md) + - [Polygon](reference/arkui-ts/ts-drawing-components-polygon.md) + - [Path](reference/arkui-ts/ts-drawing-components-path.md) + - [Rect](reference/arkui-ts/ts-drawing-components-rect.md) + - [Shape](reference/arkui-ts/ts-drawing-components-shape.md) + - Canvas Components + - [Canvas](reference/arkui-ts/ts-components-canvas-canvas.md) + - [CanvasRenderingContext2D](reference/arkui-ts/ts-canvasrenderingcontext2d.md) + - [OffscreenCanvasRenderingConxt2D](reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md) + - [Lottie](reference/arkui-ts/ts-components-canvas-lottie.md) + - [Path2D](reference/arkui-ts/ts-components-canvas-path2d.md) + - [CanvasGradient](reference/arkui-ts/ts-components-canvas-canvasgradient.md) + - [ImageBitmap](reference/arkui-ts/ts-components-canvas-imagebitmap.md) + - [ImageData](reference/arkui-ts/ts-components-canvas-imagedata.md) - Animation - [AnimatorProperty](reference/arkui-ts/ts-animatorproperty.md) - [Explicit Animation](reference/arkui-ts/ts-explicit-animation.md) -- GitLab From dd9e2f3b83311f03365dcb9b62a86813c80c8b61 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 28 Jul 2022 11:16:13 +0000 Subject: [PATCH 566/868] update en/application-dev/website.md. Signed-off-by: zengyawen --- en/application-dev/website.md | 47 +++++++++++++++-------------------- 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/en/application-dev/website.md b/en/application-dev/website.md index f76b6b05e5..a844297e6e 100644 --- a/en/application-dev/website.md +++ b/en/application-dev/website.md @@ -182,7 +182,7 @@ - Common Event and Notification - [Common Event and Notification Overview](notification/notification-brief.md) - - [Common Event Development](notification/common-event.md) + - [Common Event Development](notification/common-event.md) - [Notification Development](notification/notification-guidelines.md) - Agent-Powered Scheduled Reminder - [Agent-Powered Scheduled Reminder Overview](notification/background-agent-scheduled-reminder-overview.md) @@ -190,13 +190,13 @@ - [Debugging Assistant Usage](notification/assistant-guidelines.md) - Window Manager - Window - - [Window Overview](windowmanager/window-overview.md) + - [Window Overview](windowmanager/window-overview.md) - [Window Development](windowmanager/window-guidelines.md) - - Display + - Display - [Display Overview](windowmanager/display-overview.md) - - [Display Development](windowmanager/display-guidelines.md) + - [Display Development](windowmanager/display-guidelines.md) - Screenshot - - [Screenshot Overview](windowmanager/screenshot-overview.md) + - [Screenshot Overview](windowmanager/screenshot-overview.md) - [Screenshot Development](windowmanager/screenshot-guidelines.md) - WebGL - [WebGL Overview](webgl/webgl-overview.md) @@ -213,9 +213,9 @@ - [OpenSL ES Audio Recording Development](media/opensles-capture.md) - [Audio Interruption Mode Development](media/audio-interruptmode.md) - Video - - [Video Playback Development](media/video-playback.md) + - [Video Playback Development](media/video-playback.md) - [Video Recording Development](media/video-recorder.md) - - Image + - Image - [Image Development](media/image.md) - Camera - [Camera Development](media/camera.md) @@ -229,7 +229,7 @@ - [User Authentication Overview](security/userauth-overview.md) - [User Authentication Development](security/userauth-guidelines.md) - Key Management - - [HUKS Overview](security/huks-overview.md) + - [HUKS Overview](security/huks-overview.md) - [HUKS Development](security/huks-guidelines.md) - hapsigner - [hapsigner Overview](security/hapsigntool-overview.md) @@ -242,14 +242,13 @@ - [Socket Connection](connectivity/socket-connection.md) - IPC & RPC - [IPC & RPC Overview](connectivity/ipc-rpc-overview.md) - - [IPC & RPC Development](connectivity/ipc-rpc-development-guideline.md) + - [IPC & RPC Development](connectivity/ipc-rpc-development-guideline.md) - [Subscribing to State Changes of a Remote Object](connectivity/subscribe-remote-state.md) - Telephony - [Telephony Service Overview](telephony/telephony-overview.md) - [Redirecting to the Dial Screen](telephony/jumping-to-the-dial-screen.md) - [Obtaining Current Cellular Network Signal Information](telephony/cellular-network-signal-info.md) - - Data Management - + - Data Management - Distributed Data Service - [Distributed Data Service Overview](database/database-mdds-overview.md) - [Distributed Data Service Development](database/database-mdds-guidelines.md) @@ -259,9 +258,9 @@ - Preferences - [Preferences Overview](database/database-preference-overview.md) - [Preferences Development](database/database-preference-guidelines.md) - - Distributed Data Object + - Distributed Data Object - [Distributed Data Object Overview](database/database-distributedobject-overview.md) - - [Distributed Data Object Development](database/database-distributedobject-guidelines.md) + - [Distributed Data Object Development](database/database-distributedobject-guidelines.md) - Task Management - Background Task Management - [Background Task Management Overview](task-management/background-task-overview.md) @@ -270,7 +269,6 @@ - [Work Scheduler Overview](task-management/work-scheduler-overview.md) - [Work Scheduler Development](task-management/work-scheduler-dev-guide.md) - Device - - USB Service - [USB Service Overview](device/usb-overview.md) - [USB Service Development](device/usb-guidelines.md) @@ -278,46 +276,41 @@ - [Location Overview](device/device-location-overview.md) - [Obtaining Device Location Information](device/device-location-info.md) - [Geocoding and Reverse Geocoding Capabilities](device/device-location-geocoding.md) - - Sensor + - Sensor - [Sensor Overview](device/sensor-overview.md) - - [Sensor Development](device/sensor-guidelines.md) + - [Sensor Development](device/sensor-guidelines.md) - Vibrator - [Vibrator Overview](device/vibrator-overview.md) - - [Vibrator Development](device/vibrator-guidelines.md) + - [Vibrator Development](device/vibrator-guidelines.md) - Update Service - - [Sample Server Overview](device/sample-server-overview.md) + - [Sample Server Overview](device/sample-server-overview.md) - [Sample Server Development](device/sample-server-guidelines.md) - Device Usage Statistics - - [Device Usage Statistics Overview](device-usage-statistics/device-usage-statistics-overview.md) - [Device Usage Statistics Development](device-usage-statistics/device-usage-statistics-dev-guide.md) - DFX - - Application Event Logging - [Overview of Application Event Logging](dfx/hiappevent-overview.md) - [Development of Application Event Logging](dfx/hiappevent-guidelines.md) - Performance Tracing - - [Overview of Performance Tracing](dfx/hitracemeter-overview.md) + - [Overview of Performance Tracing](dfx/hitracemeter-overview.md) - [Development of Performance Tracing](dfx/hitracemeter-guidelines.md) - - Distributed Call Chain Tracing + - Distributed Call Chain Tracing - [Overview of Distributed Call Chain Tracing](dfx/hitracechain-overview.md) - [Development of Distributed Call Chain Tracing](dfx/hitracechain-guidelines.md) - Error Management - - [Development of Error Manager](dfx/errormanager-guidelines.md) + - [Development of Error Manager](dfx/errormanager-guidelines.md) - Internationalization - - [Internationalization Overview](internationalization/international-overview.md) - - [Internationalization Development (intl)](internationalization/intl-guidelines.md) + - [Internationalization Development (intl)](internationalization/intl-guidelines.md) - [Internationalization Development (i18n)](internationalization/i18n-guidelines.md) - [OpenHarmony IDL Specifications and User Guide](IDL/idl-guidelines.md) - Native APIs - - [Using Native APIs in Application Projects](napi/napi-guidelines.md) - [Drawing Development](napi/drawing-guidelines.md) - [Native Window Development](napi/native-window-guidelines.md) - [Raw File Development](napi/rawfile-guidelines.md) - Tools - - [DevEco Studio (OpenHarmony) User Guide](quick-start/deveco-studio-user-guide-for-openharmony.md) - Hands-On Tutorials - [Samples](https://gitee.com/openharmony/app_samples/blob/master/README.md) -- GitLab From ef2dd0fac473c8af876b3c6e7628311e57ad24ce Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 11:44:53 +0000 Subject: [PATCH 567/868] =?UTF-8?q?=E8=A1=A5=E5=85=85=E7=BC=BA=E5=A4=B1?= =?UTF-8?q?=E6=9E=9A=E4=B8=BE=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/hdi-apis/_hdf_user_auth.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/zh-cn/device-dev/reference/hdi-apis/_hdf_user_auth.md b/zh-cn/device-dev/reference/hdi-apis/_hdf_user_auth.md index 7b93380140..abdbc3ced7 100644 --- a/zh-cn/device-dev/reference/hdi-apis/_hdf_user_auth.md +++ b/zh-cn/device-dev/reference/hdi-apis/_hdf_user_auth.md @@ -36,6 +36,7 @@ | [AuthType](#authtype) : int {   PIN = 1, FACE = 2, FINGERPRINT = 4, ALL = 0 } | 枚举用户认证凭据类型。 [更多...](#authtype) | | [ExecutorRole](#executorrole) : int {   COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 } | 枚举执行器角色。 [更多...](#executorrole) | | [ExecutorSecureLevel](#executorsecurelevel) : int {   ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 } | 枚举执行器安全等级。 [更多...](#executorsecurelevel) | +| [PinSubType](#pinsubtype) : int {   PIN\_SIX = 10000, PIN\_NUMBER = 10001, PIN\_MIX = 10002 } | 口令认证子类型。 [更多...](#pinsubtype) | ### 变量 @@ -113,3 +114,21 @@ enum ExecutorSecureLevel : int | ESL1 | 执行器安全级别为1,关键操作在有访问控制的执行环境中完成。 | | ESL2 | 执行器安全级别为2,关键操作在可信执行环境中完成。 | | ESL3 | 执行器安全级别为3,关键操作在高安环境如独立安全芯片中完成。 | + + +### PinSubType + + +``` +enum PinSubType : int +``` + +**描述:** + +口令认证子类型。 + + | 枚举值 | 描述 | +| -------- | -------- | +| PIN_SIX | 六位口令密码。 | +| PIN_NUMBER| 数字口令密码。 | +| PIN_MIX | 混合密码。 | -- GitLab From 167f0e9c864c0982adb6aadb678f5a85d317df34 Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 11:46:27 +0000 Subject: [PATCH 568/868] =?UTF-8?q?=E8=A1=A5=E5=85=85=E7=BC=BA=E5=A4=B1?= =?UTF-8?q?=E6=9E=9A=E4=B8=BE=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/device-dev/reference/hdi-apis/_user_auth_types_8idl.md | 1 + 1 file changed, 1 insertion(+) diff --git a/zh-cn/device-dev/reference/hdi-apis/_user_auth_types_8idl.md b/zh-cn/device-dev/reference/hdi-apis/_user_auth_types_8idl.md index a017cbea7b..fe89671560 100644 --- a/zh-cn/device-dev/reference/hdi-apis/_user_auth_types_8idl.md +++ b/zh-cn/device-dev/reference/hdi-apis/_user_auth_types_8idl.md @@ -35,6 +35,7 @@ | [AuthType](_hdf_user_auth.md#authtype) : int {   PIN = 1, FACE = 2, FINGERPRINT = 4, ALL = 0 } | 枚举用户认证凭据类型。 [更多...](_hdf_user_auth.md#authtype) | | [ExecutorRole](_hdf_user_auth.md#executorrole) : int {   COLLECTOR = 1, VERIFIER = 2, ALL_IN_ONE = 3 } | 枚举执行器角色。 [更多...](_hdf_user_auth.md#executorrole) | | [ExecutorSecureLevel](_hdf_user_auth.md#executorsecurelevel) : int {   ESL0 = 0, ESL1 = 1, ESL2 = 2, ESL3 = 3 } | 枚举执行器安全等级。 [更多...](_hdf_user_auth.md#executorsecurelevel) | +| [PinSubType](_hdf_user_auth.md#pinsubtype) : int {   PIN\_SIX = 10000, PIN\_NUMBER = 10001, PIN\_MIX = 10002 } | 口令认证子类型。 [更多...](_hdf_user_auth.md#pinsubtype) | ### 变量 -- GitLab From 93feed87b4a8e73c3af9a3c2beed109ea53d3178 Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 11:49:00 +0000 Subject: [PATCH 569/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E9=93=BE=E6=8E=A5=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/hdi-apis/interface_i_user_auth_interface.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_i_user_auth_interface.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_user_auth_interface.md index ab757df991..3037366cd9 100644 --- a/zh-cn/device-dev/reference/hdi-apis/interface_i_user_auth_interface.md +++ b/zh-cn/device-dev/reference/hdi-apis/interface_i_user_auth_interface.md @@ -429,7 +429,7 @@ IUserAuthInterface::GetUserInfo([in] int userId, [out] unsigned long secureUid, | -------- | -------- | | userId | 用户ID。 | | secureUid | 安全用户ID。 | -| pinSubType | 口令认证子类型 {\@link PinSubType}。 | +| pinSubType | 口令认证子类型[pinSubType](_hdf_user_auth.md#pinsubtype)。 | | infos | 注册信息[EnrolledInfo](_enrolled_info.md)。 | **返回:** -- GitLab From 4928e920887d9c9da6f01ff2b8185354888933ab Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 11:51:12 +0000 Subject: [PATCH 570/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8F=8F=E8=BF=B0=20?= =?UTF-8?q?Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/hdi-apis/interface_i_user_auth_interface.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/interface_i_user_auth_interface.md b/zh-cn/device-dev/reference/hdi-apis/interface_i_user_auth_interface.md index 3037366cd9..435ef85b8d 100644 --- a/zh-cn/device-dev/reference/hdi-apis/interface_i_user_auth_interface.md +++ b/zh-cn/device-dev/reference/hdi-apis/interface_i_user_auth_interface.md @@ -429,7 +429,7 @@ IUserAuthInterface::GetUserInfo([in] int userId, [out] unsigned long secureUid, | -------- | -------- | | userId | 用户ID。 | | secureUid | 安全用户ID。 | -| pinSubType | 口令认证子类型[pinSubType](_hdf_user_auth.md#pinsubtype)。 | +| pinSubType | 口令认证子类型,请参考[PinSubType](_hdf_user_auth.md#pinsubtype)。 | | infos | 注册信息[EnrolledInfo](_enrolled_info.md)。 | **返回:** -- GitLab From 03a44675ce863e6d06b22a211ebe37a3ea59df5b Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Thu, 28 Jul 2022 20:57:14 +0800 Subject: [PATCH 571/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: duangavin123 --- en/contribute/OpenHarmony-hdf-coding-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/contribute/OpenHarmony-hdf-coding-guide.md b/en/contribute/OpenHarmony-hdf-coding-guide.md index 84deab62a8..2349d0148c 100644 --- a/en/contribute/OpenHarmony-hdf-coding-guide.md +++ b/en/contribute/OpenHarmony-hdf-coding-guide.md @@ -190,7 +190,7 @@ root { [Description] The HDF places the same type of devices in the same host. You can develop and deploy the driver functionalities of the host by layer, so that one driver has multiple nodes. The following figure shows the HDF driver model. -![HDFDriverModel.png]( ../device-dev/driver/figures/HDFDriverModel.png) +![hdf-driver-model.png]( ../device-dev/driver/figures/hdf-driver-model.png) Place devices of the same type in the same host. When adding a device, check whether the host of the same type already exists. If such a host already exists, configure the device in the host. Do not configure the same host again. A device belongs to only one driver. Therefore, do not configure the same device in different hosts. -- GitLab From 468a640ee805af0810b40f074970a46ac2ff5724 Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Thu, 28 Jul 2022 13:06:59 +0000 Subject: [PATCH 572/868] update en/device-dev/driver/driver-platform-i2c-des.md. Signed-off-by: duangavin123 --- en/device-dev/driver/driver-platform-i2c-des.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/device-dev/driver/driver-platform-i2c-des.md b/en/device-dev/driver/driver-platform-i2c-des.md index 0cd8cc6526..9ba71d0900 100644 --- a/en/device-dev/driver/driver-platform-i2c-des.md +++ b/en/device-dev/driver/driver-platform-i2c-des.md @@ -64,7 +64,7 @@ The figure below illustrates how to use the APIs. **Figure 2** Using I2C driver APIs -![](figures/using-i2c-process.png "process-of-using-an-i2c-device") +![](figures/using-I2C-process.png "process-of-using-an-i2c-device") ### Opening an I2C Controller
-- GitLab From 2c7427a5d46fb71521a20d6493354b758264d23b Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Thu, 28 Jul 2022 13:08:58 +0000 Subject: [PATCH 573/868] update en/device-dev/driver/driver-platform-spi-des.md. Signed-off-by: duangavin123 --- en/device-dev/driver/driver-platform-spi-des.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/device-dev/driver/driver-platform-spi-des.md b/en/device-dev/driver/driver-platform-spi-des.md index 066b92ea23..8c536413b9 100644 --- a/en/device-dev/driver/driver-platform-spi-des.md +++ b/en/device-dev/driver/driver-platform-spi-des.md @@ -107,7 +107,7 @@ SPI communication is usually initiated by the SPI controller and is operated as The figure below illustrates how to use the APIs. **Figure 2** Using SPI driver APIs -![](figures/using-spi-process.png "process-of-using-an-spi-device") +![](figures/using-SPI-process.png "process-of-using-an-spi-device") ### Obtaining an SPI Device Handle -- GitLab From 54d35059c67c27be1dbe64bb72bdeee781f69fb0 Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Thu, 28 Jul 2022 13:09:49 +0000 Subject: [PATCH 574/868] update en/device-dev/driver/driver-platform-uart-des.md. Signed-off-by: duangavin123 --- en/device-dev/driver/driver-platform-uart-des.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/device-dev/driver/driver-platform-uart-des.md b/en/device-dev/driver/driver-platform-uart-des.md index 20340bfd49..5c52adac89 100644 --- a/en/device-dev/driver/driver-platform-uart-des.md +++ b/en/device-dev/driver/driver-platform-uart-des.md @@ -106,7 +106,7 @@ The UART interface defines a set of common functions for operating a UART port, The figure below illustrates how to use the APIs. **Figure 3** Using UART driver APIs -![](figures/using-uart-process.png "process-of-using-a-uart-device") +![](figures/using-UART-process.png "process-of-using-a-uart-device") ### Obtaining a UART Device Handle -- GitLab From 36bc7ddb8dae2d1a3add41a0fac370975fa2fc0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Fri, 29 Jul 2022 01:55:40 +0000 Subject: [PATCH 575/868] update zh-cn/application-dev/reference/apis/js-apis-data-dataShare.md. Signed-off-by: @ge-yafang --- zh-cn/application-dev/reference/apis/js-apis-data-dataShare.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-dataShare.md b/zh-cn/application-dev/reference/apis/js-apis-data-dataShare.md index 19acb3eb1b..f999b5a949 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-data-dataShare.md +++ b/zh-cn/application-dev/reference/apis/js-apis-data-dataShare.md @@ -689,7 +689,7 @@ getFileTypes(uri: string, mimeTypeFilter: string, callback: AsyncCallback<Arr | -------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | uri | string | 是 | 指示要获取的文件的路径。 | | mimeTypeFilter | string | 是 | 指示要筛选的MIME类型。例如:
“\*/\*”:获取支持的所有类型。
“image/\*”:获取主类型image,子类型为任何类型的MIME。
”\*/jpg”:获取子类型为jpg,主类型为任何类型的MIME。 | -| callback | openFile(uri: string, mode: string, callback: AsyncCallback) {    let err = {"code":0};    let fd = 0;    callback(err,fd);}ts | 是 | 回调函数。当获取支持的文件的MIME类型成功,err为undefined,data为获取到的匹配的MIME类型数组;否则为错误对象。 | +| callback | AsyncCallback> | 是 | 回调函数。当获取支持的文件的MIME类型成功,err为undefined,data为获取到的匹配的MIME类型数组;否则为错误对象。 | **示例:** -- GitLab From c803030132425c1a4fc8d42d5e35b464c43113ee Mon Sep 17 00:00:00 2001 From: Mupceet Date: Fri, 29 Jul 2022 02:19:07 +0000 Subject: [PATCH 576/868] update zh-cn/device-dev/subsystems/subsys-boot-init-jobs.md. Signed-off-by: Mupceet --- .../subsystems/subsys-boot-init-jobs.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/zh-cn/device-dev/subsystems/subsys-boot-init-jobs.md b/zh-cn/device-dev/subsystems/subsys-boot-init-jobs.md index a01d244546..52e2fe1650 100644 --- a/zh-cn/device-dev/subsystems/subsys-boot-init-jobs.md +++ b/zh-cn/device-dev/subsystems/subsys-boot-init-jobs.md @@ -160,6 +160,20 @@ job就是命令集合,jobs管理就是对要执行的一组命令集合进行 小型系统和标准系统 + + + write + + + write filename value
如:write /data/testfile 0 + + + 写文件命令。后面跟两个参数,第一个参数是文件的绝对路径,第二个参数是要写入文件的字符串。 + + + 标准系统 + + stop @@ -300,6 +314,20 @@ job就是命令集合,jobs管理就是对要执行的一组命令集合进行 小型系统和标准系统 + + + syncexec + + + syncexec 可执行文件路径 可执行文件传的参数
如:syncexec /system/bin/udevadm trigger + + + 同步执行,syncexec 会调用wait等待子进程结束。参数个数不超过10个。 + + + 标准系统 + + mknode -- GitLab From 6f6e7f9eedb1527a259c2de220ffd0f33e10c56d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Fri, 29 Jul 2022 02:31:59 +0000 Subject: [PATCH 577/868] =?UTF-8?q?application-dev/reference/apis/js-apis-?= =?UTF-8?q?window.md=EF=BC=9A=E7=B3=BB=E7=BB=9F=E6=8E=A5=E5=8F=A3=E7=9A=84?= =?UTF-8?q?=E8=AF=B4=E6=98=8E=E6=8C=89=E7=85=A7=E6=A8=A1=E6=9D=BF=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20Signed-off-by:=20ge-yafang=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/apis/js-apis-window.md | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-window.md b/zh-cn/application-dev/reference/apis/js-apis-window.md index cae0c7d608..fab396216d 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-window.md +++ b/zh-cn/application-dev/reference/apis/js-apis-window.md @@ -27,19 +27,19 @@ import window from '@ohos.window'; | ----------------- | ------ | ------------------ | | TYPE_APP | 0 | 表示应用子窗口。此接口仅可在FA模型下使用。 | | TYPE_SYSTEM_ALERT | 1 | 表示系统告警窗口。 | -| TYPE_INPUT_METHOD9+ | 2 | 表示输入法窗口。此接口仅可在Stage模型下使用。
此接口为系统接口,三方应用不支持调用。 | -| TYPE_STATUS_BAR9+ | 3 | 表示状态栏窗口。此接口仅可在Stage模型下使用。
此接口为系统接口,三方应用不支持调用。 | -| TYPE_PANEL9+ | 4 | 表示通知栏。此接口仅可在Stage模型下使用。
此接口为系统接口,三方应用不支持调用。 | -| TYPE_KEYGUARD9+ | 5 | 表示锁屏。此接口仅可在Stage模型下使用。
此接口为系统接口,三方应用不支持调用。 | -| TYPE_VOLUME_OVERLAY9+ | 6 | 表示音量条。此接口仅可在Stage模型下使用。
此接口为系统接口,三方应用不支持调用。 | -| TYPE_NAVIGATION_BAR9+ | 7 | 表示导航栏窗口。此接口仅可在Stage模型下使用。
此接口为系统接口,三方应用不支持调用。 | +| TYPE_INPUT_METHOD9+ | 2 | 表示输入法窗口。此接口仅可在Stage模型下使用。
此接口为系统接口。 | +| TYPE_STATUS_BAR9+ | 3 | 表示状态栏窗口。此接口仅可在Stage模型下使用。
此接口为系统接口。 | +| TYPE_PANEL9+ | 4 | 表示通知栏。此接口仅可在Stage模型下使用。
此接口为系统接口。 | +| TYPE_KEYGUARD9+ | 5 | 表示锁屏。此接口仅可在Stage模型下使用。
此接口为系统接口。 | +| TYPE_VOLUME_OVERLAY9+ | 6 | 表示音量条。此接口仅可在Stage模型下使用。
此接口为系统接口。 | +| TYPE_NAVIGATION_BAR9+ | 7 | 表示导航栏窗口。此接口仅可在Stage模型下使用。
此接口为系统接口。 | | TYPE_FLOAT9+ | 8 | 表示悬浮窗。此接口仅可在Stage模型下使用。
**需要权限:** ohos.permission.SYSTEM_FLOAT_WINDOW | -| TYPE_WALLPAPER9+ | 9 | 表示壁纸。此接口仅可在Stage模型下使用。
此接口为系统接口,三方应用不支持调用。 | -| TYPE_DESKTOP9+ | 10 | 表示桌面。此接口仅可在Stage模型下使用。
此接口为系统接口,三方应用不支持调用。 | -| TYPE_LAUNCHER_RECENT9+ | 11 | 表示多任务中心。此接口仅可在Stage模型下使用。
此接口为系统接口,三方应用不支持调用。 | -| TYPE_LAUNCHER_DOCK9+ | 12 | 表示桌面Dock栏。此接口仅可在Stage模型下使用。
此接口为系统接口,三方应用不支持调用。 | -| TYPE_VOICE_INTERACTION9+ | 13 | 表示智慧语音。此接口仅可在Stage模型下使用。
此接口为系统接口,三方应用不支持调用。 | -| TYPE_POINTER9+ | 14 | 表示鼠标。此接口仅可在Stage模型下使用。
此接口为系统接口,三方应用不支持调用。 | +| TYPE_WALLPAPER9+ | 9 | 表示壁纸。此接口仅可在Stage模型下使用。
此接口为系统接口。 | +| TYPE_DESKTOP9+ | 10 | 表示桌面。此接口仅可在Stage模型下使用。
此接口为系统接口。 | +| TYPE_LAUNCHER_RECENT9+ | 11 | 表示多任务中心。此接口仅可在Stage模型下使用。
此接口为系统接口。 | +| TYPE_LAUNCHER_DOCK9+ | 12 | 表示桌面Dock栏。此接口仅可在Stage模型下使用。
此接口为系统接口。 | +| TYPE_VOICE_INTERACTION9+ | 13 | 表示智慧语音。此接口仅可在Stage模型下使用。
此接口为系统接口。 | +| TYPE_POINTER9+ | 14 | 表示鼠标。此接口仅可在Stage模型下使用。
此接口为系统接口。 | ## AvoidAreaType7+ @@ -58,7 +58,7 @@ import window from '@ohos.window'; 窗口模式枚举。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -74,7 +74,7 @@ import window from '@ohos.window'; 窗口布局模式枚举。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -123,7 +123,7 @@ import window from '@ohos.window'; 单个导航栏或状态栏回调信息。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -139,7 +139,7 @@ import window from '@ohos.window'; 当前系统栏回调信息集合。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -544,7 +544,7 @@ minimizeAll(id: number, callback: AsyncCallback<void>): void 最小化某显示设备下的所有窗口。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -582,7 +582,7 @@ minimizeAll(id: number): Promise<void> 最小化某显示设备下的所有窗口。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -624,7 +624,7 @@ toggleShownStateForAllAppWindows(callback: AsyncCallback<void>): void 多窗口快速切换时隐藏或者恢复应用窗口。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -651,7 +651,7 @@ toggleShownStateForAllAppWindows(): Promise<void> 多窗口快速切换时隐藏或者恢复应用窗口。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -677,7 +677,7 @@ setWindowLayoutMode(mode: WindowLayoutMode, callback: AsyncCallback<void>) 设置窗口布局模式。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -701,7 +701,7 @@ setWindowLayoutMode(mode: WindowLayoutMode): Promise<void> 设置窗口布局模式。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -734,7 +734,7 @@ on(type: 'systemBarTintChange', callback: Callback<SystemBarTintState>): v 开启状态栏、导航栏属性变化的监听。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -759,7 +759,7 @@ off(type: 'systemBarTintChange', callback?: Callback<SystemBarTintState >) 关闭状态栏、导航栏属性变化的监听。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -788,7 +788,7 @@ hide (callback: AsyncCallback<void>): void 隐藏当前窗口,使用callback异步回调。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -816,7 +816,7 @@ hide(): Promise<void> 隐藏当前窗口,使用Promise异步回调。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -1066,7 +1066,7 @@ setWindowType(type: WindowType, callback: AsyncCallback<void>): void 设置窗口类型,使用callback异步回调。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -1096,7 +1096,7 @@ setWindowType(type: WindowType): Promise<void> 设置窗口类型,使用Promise异步回调。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -1929,7 +1929,7 @@ windowClass.off('keyboardHeightChange'); on(type: 'touchOutside', callback: Callback<void>): void 开启本窗口区域范围外的点击事件的监听。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -1953,7 +1953,7 @@ windowClass.on('touchOutside', () => { off(type: 'touchOutside', callback?: Callback<void>): void 关闭本窗口区域范围外的点击事件的监听。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -2681,7 +2681,7 @@ setForbidSplitMove(isForbidSplitMove: boolean, callback: AsyncCallback<void&g 设置窗口在分屏模式下是否被禁止移动,使用callback异步回调。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -2712,7 +2712,7 @@ setForbidSplitMove(isForbidSplitMove: boolean): Promise<void> 设置窗口在分屏模式下是否被禁止移动,使用Promise异步回调。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core @@ -3216,7 +3216,7 @@ disableWindowDecor(): void 此接口仅可在Stage模型下使用。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core -- GitLab From f43ef04e3bc79943a63ab6cfc289a807bd68eb5b Mon Sep 17 00:00:00 2001 From: guodongqi Date: Thu, 28 Jul 2022 19:44:07 +0800 Subject: [PATCH 578/868] fix: modify conflict description Signed-off-by: guodongqi --- zh-cn/design/figures/API-Category.png | Bin 331023 -> 88424 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/zh-cn/design/figures/API-Category.png b/zh-cn/design/figures/API-Category.png index 22813ba83cd97c5017cb79b468bdcc416886022a..263d76da6de621a7e2a4ad23fbb907426b334dce 100644 GIT binary patch literal 88424 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 HD~QWp9q1O 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ʍnIr7T7QINkCfn#9X9o@C{wZWUQDnT7Qbu5}* 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

1Ni&55SyIW^h#}9bGMt+tRnDiWH8) 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[](../public_sys-resources/icon-caution.gif) **CAUTION**
->Define component attributes, such as the name, source code directory, function description, mandatory or not, build targets, RAM, ROM, build outputs, adapted kernels, configurable features, and dependencies, in the JSON file of the subsystem in the **build/lite/components** directory. When adding a component, add its definition to the JSON file of the corresponding subsystem. The component configured for a product must have been defined in a subsystem. Otherwise, the verification will fail. +> ![icon-caution.gif](../public_sys-resources/icon-caution.gif) **CAUTION**
+> The .json file of the subsystem in the **build/lite/components** directory contains component attributes, including the name, source code directory, function description, mandatory or not, build targets, RAM, ROM, build outputs, adapted kernels, configurable features, and dependencies of the component. When adding a component, add the component information in the .json file of the corresponding subsystem. The component configured for a product must have been defined in a subsystem. Otherwise, the verification will fail. ``` component ├── interfaces │ ├── innerkits # APIs exposed internally among components -│ └── kits # App APIs provided for app developers +│ └── kits # APIs provided for application developers ├── frameworks # Framework implementation ├── services # Service implementation -└── BUILD.gn # Build script +├── BUILD.gn # Build script ``` -The following example shows how to define attributes of the sensor component of the pan-sensor subsystem: + The following example shows how to configure attributes of the sensor service component of the pan-sensor subsystem: + + ``` + { + "name": "@ohos/sensor_lite", # OpenHarmony Package Manager (HPM) component name, in the @Organization/Component name format. + "description": "Sensor services", # Description of the component functions. + "version": "3.1", # Version, which must be the same as the version of OpenHarmony. + "license": "MIT", # Component license. + "publishAs": "code-segment", # Mode for publishing the HPM package. The default value is code-segment. + "segment": { + "destPath": "" + }, # Code restoration path (source code path) set when "publishAs is code-segment. + "dirs": {"base/sensors/sensor_lite"} # Directory structure of the HPM package. This field is mandatory and can be left empty. + "scripts": {}, # Scripts to be executed. This field is mandatory and can be left empty. + "licensePath": "COPYING", + "readmePath": { + "en": "README.rst" + }, + "component": { # Component attributes. + "name": "sensor_lite", # Component name. + "subsystem": "", # Subsystem to which the component belongs. + "syscap": [], # System capabilities provided by the component for applications. + "features": [], # List of the component's configurable features. Generally, this parameter corresponds to sub_component in build and can be configured. + "adapted_system_type": [], # Adapted system types, which can be mini, small, and standard. Multiple values are allowed. + "rom": "92KB", # Size of the component's ROM. + "ram": "~200KB", # Size of the component's RAM. + "deps": { + "components": [ # Other components on which this component depends. + "samgr_lite" + ], + "third_party": [ # Third-party open-source software on which this component depends. + "bounds_checking_function" + ] + } + "build": { # Build-related configurations. + "sub_component": [ + ""//base/sensors/sensor_lite/services:sensor_service"", # Component build entry + ], # Component build entry. Configure the module here. + "inner_kits": [], # APIs between components. + "test": [] # Entry for building the component's test cases. + } + } + } + ``` + + Observe the following rules when writing the component's **BUILD.gn**: + +- The build target name must be the same as the component name. + +- Define the configurable features in the **BUILD.gn** file of the component. Name the configurable features in the ohos_{subsystem}*{component}*{feature} format. Define the features in component description and configure them in the **config.json** file. + +- Define macros in the OHOS_{SUBSYSTEM}*{COMPONENT}*{FEATURE} format. + + > ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
+ > The component build script is written in GN. For details about how to use GN, see [GN Quick Start Guide](https://gn.googlesource.com/gn/+/master/docs/quick_start.md). The component is the build target, which can be a static library, a dynamic library, an executable file, or a group. + + The following example shows the **foundation/graphic/ui/BUILD.gn** file for a graphics UI component: + + ``` + # Declare the configurable features of the component. + declare_args() { + enable_ohos_graphic_ui_animator = false # Whether to enable animation. + ohos_ohos_graphic_ui_font = "vector" # Configurable font type, which can be vector or bitmap. + } -``` -{ - "components": [ - { - "component": "sensor_lite", # Component name - "description": "Sensor services", # Brief description of the component - "optional": "true", # Whether the component is mandatory for the system - "dirs": [ # Source code directory of the component - "base/sensors/sensor_lite" - ], - "targets": [ # Build entry of the component - "//base/sensors/sensor_lite/services:sensor_service" - ], - "rom": "92KB", # Component ROM - "ram": "~200KB", # Component RAM (estimated) - "output": [ "libsensor_frameworks.so" ], # Component build outputs - "adapted_kernel": [ "liteos_a" ], # Adapted kernel for the component - "features": [], # Configurable features of the component - "deps": { - "components": [ # Other components on which the component depends - "samgr_lite" - ], - "third_party": [ # Open-source third-party software on which the component depends - "bounds_checking_function" + # Basic component functions. + shared_library("base") { + sources = [ + ... + ] + include_dirs = [ + ... + ] + } + + # Build only when the animator is enabled. + if(enable_ohos_graphic_ui_animator ) { + shared_library("animator") { + sources = [ + ... ] + include_dirs = [ + ... + ] + deps = [ :base ] } } - ] -} -``` - -Observe the following rules when configuring **BUILD.gn**: - -- The build target name must be the same as the component name. -- Define the configurable features in the **BUILD.gn** file of the component. Name the configurable features in the **ohos\_**\{_subsystem_\}**\_**\{_component_\}**\_**\{_feature_\} format. Define the features in component description and configure them in the **config.json** file. -- Define macros in the **OHOS\_**\{_SUBSYSTEM_\}**\_**\{_COMPONENT_\}**\_**\{_FEATURE_\} format. - - >![](../public_sys-resources/icon-note.gif) **NOTE**
GN is used as the build script language for components. For details about how to use GN, see [GN Quick Start Guide](https://gn.googlesource.com/gn/+/master/docs/quick_start.md). In GN, a component is a target to build, which can be a static library, a dynamic library, an executable file, or a group. + ... + # It is recommended that the target name be the same as the name of the component, which can be an executable file (.bin), shared_library (.so file), static_library (.a file), or a group. + executable("ui") { + deps = [ + ":base" + ] + # The animator feature is configured by the product. + if(enable_ohos_graphic_ui_animator ) { + deps += [ + "animator" + ] + } + } + ``` -The following example shows how to build the **foundation/graphic/ui/BUILD.gn** file for a graphics UI component: +### Chipset Solution -``` - # Declare the configurable features of the component - declare_args() { - enable_ohos_graphic_ui_animator = false # Animation switch - ohos_ohos_graphic_ui_font = "vector" # Configurable font type, which can be vector or bitmap - } - - # Basic component functions - shared_library("base") { - sources = [ - ...... - ] - include_dirs = [ - ...... - ] - } - - # Build only when the animator is enabled - if(enable_ohos_graphic_ui_animator ) { - shared_library("animator") { - sources = [ - ...... - ] - include_dirs = [ - ...... - ] - deps = [ :base ] - } - } - ...... - # It is recommended that the target name be the same as the component name, which can be an executable .bin file, shared_library (.so file), static_library (.a file), or a group. - executable("ui") { - deps = [ - ":base" - ] - - # The animator feature is configured by the product. - if(enable_ohos_graphic_ui_animator ) { - deps += [ - "animator" - ] - } - } -``` +The chipset solution is a special component. It is built based on a development board, including the drivers, device API adaptation, and SDK. -### Chipset +The source code path is named in the **device/{Development board}/{Chipset solution vendor}** format. -- The chipset solution is a complete solution based on a development board. The solution includes the drivers, API adaptation, and SDK. -- The chipset solution is a special component, whose source code directory is named in the _**device**/\{Chipset solution vendor\}/\{Development board\}_ format. -- The chipset component is built by default based on the development board selected by the product. +The chipset solution component is built by default based on the development board selected. -The chipset solution directory tree is as follows: +The chipset solution directory structure is as follows: ``` device -└── company # Chipset solution vendor - └── board # Name of the development board - ├── BUILD.gn # Build script - ├── hals # Southbound APIs for OS adaptation - ├── linux # Linux kernel version (optional) - │ └── config.gni # Build options for the Linux version - └── liteos_a # LiteOS kernel version (optional) - └── config.gni # Build options for the LiteOS Cortex-A version +└── board # Chipset solution vendor + └── company # Development board name + ├── BUILD.gn # Build script + ├── hals # OS device API adaptation + ├── linux # (Optional) Linux kernel version + │ └── config.gni # Linux build configuration + └── liteos_a # (Optional) LiteOS kernel version + └── config.gni # LiteOS_A build configuration ``` ->![](../public_sys-resources/icon-note.gif) **NOTE**
->The **config.gni** file contains build-related configurations of the development board. The parameters in the file are globally visible to the system and can be used to build all OS components during the build process. +> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
+> The **config.gni** file contains build-related configuration of the development board. The parameters in the file are used to build all OS components, and are globally visible to the system during the build process. -The **config.gni** file contains the following key parameters: +- The **config.gni** file contains the following key parameters: -``` -kernel_type: kernel used by the development board, for example, liteos_a, liteos_m, or linux. -kernel_version: kernel version used by the development board, for example, 4.19. -board_cpu: CPU of the development board, for example, cortex-a7 or riscv32. -board_arch: chipset architecture of the development board, for example, armv7-a or rv32imac. -board_toolchain: name of the customized build toolchain used by the development board, for example, gcc-arm-none-eabi. If this field is not specified, ohos-clang will be used by default. -board_toolchain_prefix: prefix of the build toolchain, for example, gcc-arm-none-eabi. -board_toolchain_type: build toolchain type, for example, gcc or clang. Currently, only GCC and clang are supported. -board_cflags: build options of the .c file configured for the development board. -board_cxx_flags: build options of the .cpp file configured for the development board. -board_ld_flags: link options configured for the development board. -``` + ``` + kernel_type: Kernel used by the development board, for example, LiteOS_A, LiteOS_M, or Linux. + kernel_version: Kernel version of the development board, for example, 4.19. + board_cpu: CPU of the development board, for example, Cortex-A7 or RISCV32. + board_arch: Chipset architecture of the development board, for example, ARMv7-A or RV32IMAC. + board_toolchain: Name of the customized build toolchain used by the development board, for example, gcc-arm-none-eabi. If this field is not specified, ohos-clang will be used by default. + board_toolchain_prefix: Prefix of the toolchain, for example, gcc-arm-none-eabi. + board_toolchain_type: Toolchain type. Currently, only GCC and clang are supported. + board_cflags: Build options of the .c file configured for the development board. + board_cxx_flags: Build options of the .cpp file configured for the development board. + board_ld_flags: Linking options configured for the development board. + ``` -### Product +### Product Solution -The product solution is a complete product based on a development board. It includes the OS adaptation, component assembly configuration, startup configuration, and file system configuration. The source code directory of a product solution is named in the **vendor**/\{_Product solution vendor_\}/\{_Product name_\} format. A product solution is also a special component. +The product solution is a special component. It is a product built based on a development board. It includes the OS adaptation, component assembly and configuration, startup configuration, and file system configuration. The source code directory is named in the **vendor**/{*Product solution vendor*}/{*Product name*} format. -The product solution directory tree is as follows: +The product solution directory structure is as follows: ``` vendor @@ -232,172 +250,162 @@ vendor │ ├── BUILD.gn # Product build script │ └── config.json # Product configuration file │ └── fs.yml # File system packaging configuration - └── ...... + └── ... ``` ->![](../public_sys-resources/icon-caution.gif) **CAUTION**
->Create directories and files based on the preceding rules for new products. The Compilation and Building subsystem scans the configured products based on the rules. +> ![icon-caution.gif](/public_sys-resources/icon-caution.gif) **CAUTION**
+> Follow the preceding rules to create directories and files for new products. The Compilation and Building subsystem scans the configured products based on the rules. The key directories and files are described as follows: -- **vendor/company/product/init\_configs/etc** - - This folder contains the **rcS**, **S**_xxx_, and **fstab** scripts. The **init** process runs the **rcS**, **fstab**, and **S**_00_-_xxx_ scripts in sequence before starting system services. The **S**_xxx_ script contains content related to the development board and product. It is used to create device nodes and directories, scan device nodes, and change file permissions. These scripts are copied from the **BUILD.gn** file to the **out** directory of the product as required and packaged into the **rootfs** image. +1. **vendor/company/product/init_configs/etc** + + This folder contains the rcS, Sxxx, and fstab scripts. The init process runs the rcS, fstab, and S00-xxx scripts in sequence before starting system services. The **S***xxx* script is used to create device nodes and directories, scan device nodes, and change file permissions for the development board and product. These scripts are copied from the **BUILD.gn** file to the **out** directory of the product as required and packaged into the **rootfs** image. -- **vendor/company/product/init\_configs/init.cfg** +2. **vendor/company/product/init_configs/init.cfg** - This file is the configuration file for the **init** process to start services. Currently, the following commands are supported: + This file is the configuration file for the **init** process to start services. Currently, the following commands are supported: - - **start**: starts a service. - - **mkdir**: creates a folder. - - **chmod**: changes the permission on a specified directory or file. - - **chown**: changes the owner group of a specified directory or file. - - **mount**: mounts a device. + - **start**: starts a service. +- **mkdir**: creates a folder. + + - **chmod**: changes the permission on a specified directory or file. +- **chown**: changes the owner group of a specified directory or file. + - **mount**: mounts a device. - The fields in the file are described as follows: + The fields in the file are described as follows: -``` -{ - "jobs" : [{ # Job array. A job corresponds to a command set. Jobs are executed in the following sequence: pre-init > init > post-init. + ``` + { + "jobs" : [{ # Job array. A job corresponds to a command set. Jobs are executed in the following sequence: pre-init > init > post-init. "name" : "pre-init", - "cmds" : [ - "mkdir /storage/data", # Create a directory. - "chmod 0755 /storage/data", # Change the permission, which is in 0xxx format, for example, 0755. - "mkdir /storage/data/log", - "chmod 0755 /storage/data/log", - "chown 4 4 /storage/data/log", # Change the owner group. The first number indicates the UID, and the second indicates the GID. - ...... - "mount vfat /dev/mmcblock0 /sdcard rw, umask=000" # The command is in the mount [File system type][source] [target] [flags] [data] format. - # Currently, flags can only be nodev, noexec, nosuid, or rdonly. - ] - }, { - "name" : "init", - "cmds" : [ # Start services based on the sequence of the cmds array. - "start shell", # Note that there is only one space between start and the service name. - ...... - "start service1" - ] - }, { - "name" : "post-init", # Job that is finally executed. Operations performed after the init process is started, for example, mounting a device after the driver initialization. - "cmds" : [] - } - ], - "services" : [{ # Service array. A service corresponds to a process. - "name" : "shell", # Service name - "path" : ["/sbin/getty", "-n", "-l", "/bin/sh", "-L", "115200", "ttyS000", "vt100"], # Full path of the executable file. It must start with "path". - "uid" : 0, # Process UID, which must be the same as that in the binary file. - "gid" : 0, # Process GID, which must be the same as that in the binary file. - "once" : 0, # Whether the process is a one-off process. 1: The proces is a one-off process. The init process does not restart it after the process exits. 0: The process is not a one-off process. The init process restarts it if the process exits. - "importance" : 0, # Whether the process is a key process. 1: The process is a key process. If it exits, the init process restarts the board. 0: The process is not a key process. If it exits, the init process does not restart the board. - "caps" : [4294967295] - }, - ...... - ] -} -``` - -- **vendor/company/product/init\_configs/hals** - - This file stores the content related to OS adaptation of the product. For details about APIs for implementing OS adaptation, see the readme file of each component. - -- **vendor/company/product/config.json** - - The **config.json** file is the main entry for the build and contains configurations of the development board, OS components, and kernel. - - The following example shows the **config.json** file of the IP camera developed based on the hispark\_taurus development board: - -``` -{ - "product_name": "ipcamera", # Product name - "version": "3.0", # config.json version, which is 3.0 - "type": "small", # System type, which can be mini, small, or standard - "ohos_version": "OpenHarmony 1.0", # OS version - "device_company": "hisilicon", # Chipset vendor - "board": "hispark_taurus", # Name of the development board - "kernel_type": "liteos_a", # Kernel type - "kernel_version": "3.0.0", # Kernel version - "subsystems": [ - { - "subsystem": "aafwk", # Subsystem - "components": [ - { "component": "ability", "features":[ "enable_ohos_appexecfwk_feature_ability = true" ] } # Component and its features - ] - }, - { - ...... - } - ...... - More subsystems and components - } -} -``` - -- **vendor/company/product/fs.yml** - - This file packages the build result to create a configuration file system image, for example, **rootfs.img** \(user-space root file system\) and **userfs.img** \(readable and writable file\). It consists of multiple lists, and each list corresponds to a file system. The fields are described as follows: - -``` -fs_dir_name: (Mandatory) declares the name of the file system, for example, rootfs or userfs. -fs_dirs: (Optional) configures the mapping between the file directory in the out directory and the system file directory. Each file directory corresponds to a list. -source_dir: (Optional) specifies the target file directory in the out directory. If this field is missing, an empty directory will be created in the file system based on target_dir. -target_dir: (Mandatory) specifies the corresponding file directory in the file system. -ignore_files: (Optional) declares ignored files during the copy operation. -dir_mode: (Optional) specifies the file directory permission, which is set to 755 by default. -file_mode: (Optional) declares permissions of all files in the directory, which is set to 555 by default. -fs_filemode: (Optional) configures files that require special permissions. Each file corresponds to a list. -file_dir: (Mandatory) specifies the detailed file path in the file system. -file_mode: (Mandatory) declares file permissions. -fs_symlink: (Optional) configures the soft link of the file system. -fs_make_cmd: (Mandatory) creates the file system script. The script provided by the OS is stored in the build/lite/make_rootfs directory. Linux, LiteOS, ext4, jffs2, and vfat are supported. Chipset vendors can also customize the script as required. -fs_attr: (Optional) dynamically adjusts the file system based on configuration items. -``` - -The **fs\_symlink** and **fs\_make\_cmd** fields support the following variables: - -- $\{root\_path\} - - Code root directory, which corresponds to **$\{ohos\_root\_path\}** of GN - -- $\{out\_path\} - - **out** directory of the product, which corresponds to **$\{root\_out\_dir\}** of GN - -- $\{fs\_dir\} - - File system directory, which consists of the following variables - - - $\{root\_path\} - - $\{fs\_dir\_name\} - ->![](../public_sys-resources/icon-note.gif) **NOTE**
->**fs.yml** is optional and does not need to be configured for devices without a file system. + "cmds" : [ + "mkdir /storage/data", # Create a directory. + "chmod 0755 /storage/data", #Modify the permissions. The format of the permission value is 0xxx, for example, 0755. + "mkdir /storage/data/log", + "chmod 0755 /storage/data/log", + "chown 4 4 /storage/data/log", # Change the owner group. The first number is the user ID (UID), and the second number is the group ID (GID). + ... + "mount vfat /dev/mmcblock0 /sdcard rw,umask=000" # The command format is mount [File system type] [source] [target] [flags] [data]. + # The value of flags can be nodev, noexec, nosuid, or rdonly only. + ] + }, { + "name" : "init", + "cmds" : [ # Start services based on the sequence of the cmds array. + "start shell", # There is only one space between start and the service name. + ... + "start service1" + ] + }, { + "name" : "post-init", # Job that is finally executed. Operations performed after the init process is started, for example, mounting a device after the driver initialization). + "cmds" : [] + } + ], + "services" : [{ # Service array. A service corresponds to a process. + "name" : "shell", # Service name. + "path" : ["/sbin/getty", "-n", "-l", "/bin/sh", "-L", "115200", "ttyS000", "vt100"], # Full path of the executable file. It must start with "path". + "uid" : 0, # Process UID, which must be the same as that in the binary file. + "gid" : 0, # Process GID, which must be the same as that in the binary file. + "once" : 0, # Whether the process is a one-off process. The value 1 indicates that process is a one-off process, and the value 0 indicates the opposite. The init process does not restart the one-off process after the process exits. + "importance" : 0, # Whether the process is a key process. The value 1 indicates a key process, and the value 0 indicates the opposite. If a key process exits, the init process will restart the board. + "caps" : [4294967295] + }, + ... + ] + } + ``` + +3. **vendor/company/product/init_configs/hals** -- **vendor/company/product/BUILD.gn** + This file contains the OS adaptation of the product. For details about APIs for implementing OS adaptation, see the readme file of each component. - This file is the entry for building the source code of the solution vendor and copying the startup configuration file. The **BUILD.gn** file in the corresponding product directory will be built by default if a product is selected. The following example shows how to build the **BUILD.gn** file of a product: +4. **vendor/company/product/config.json** -``` -group("product") { # The target name must be the same as the product name (level-3 directory name under the product directory). - deps = [] - # Copy the init configuration. - deps += [ "init_configs" ] - # Others - ...... -} -``` + The **config.json** file is the main entry for the build and contains configurations of the development board, OS, and kernel. + The following example shows the **config.json** file of the IP camera developed based on the hispark_taurus board: -## Usage Guidelines + ``` + { + "product_name": "ipcamera", # Product name + "version": "3.0", # Version of config.json. The value is 3.0. + "type": "small", # System type. The value can be mini, small, or standard. + "ohos_version": "OpenHarmony 1.0", # OS version + "device_company": "hisilicon", # Chipset vendor + "board": "hispark_taurus", # Name of the development board + "kernel_type": "liteos_a", # Kernel type + "kernel_version": "3.0.0", # Kernel version + "subsystems": [ + { + "subsystem": "aafwk", # Subsystem + "components": [ + { "component": "ability", "features":[ "enable_ohos_appexecfwk_feature_ability = true" ] } # Selected component and feature configuration + ] + }, + { + ... + } + ... + More subsystems and components + } + } + ``` + +5. **vendor/company/product/fs.yml** + + This file defines the process for creating a file system image, for example, **rootfs.img** (user-space root file system) and **userfs.img** (readable and writable file). It consists of multiple lists, and each list corresponds to a file system. The fields are described as follows: + + ``` + fs_dir_name: (Mandatory) specifies name of the file system, for example, rootfs or userfs. + fs_dirs: (Optional) specifies the mapping between the file directory in the out directory and the system file directory. Each file directory corresponds to a list. + source_dir: (Optional) specifies target file directory in the out directory. If this field is not specified, an empty directory will be created in the file system based on target_dir. + target_dir: (Mandatory) specifies the file directory in the file system. + ignore_files: (Optional) declares ignored files during the copy operation. + dir_mode: (Optional) specifies the file directory permissions. The default value is 755. + file_mode: (Optional) specifies the permissions of all files in the directory. The default value is 555. + fs_filemode: (Optional) specifies the files that require special permissions. Each file corresponds to a list. + file_dir: (Mandatory) specifies the detailed file path in the file system. + file_mode: (Mandatory) declares file permissions. + fs_symlink: (Optional) specifies the soft link of the file system. + fs_make_cmd: (Mandatory) creates the file system script. The script provided by the OS is located in the build/lite/make_rootfs directory. Linux, LiteOS, ext4, jffs2, and vfat are supported. Chipset vendors can also customize the script as required. + fs_attr: (Optional) dynamically adjusts the file system based on configuration items. + ``` + + The **fs_symlink** and **fs_make_cmd** fields support the following variables: + + - ${root_path}: code root directory, which corresponds to **${ohos_root_path}** of GN. + - ${out_path}: **out** directory of the product, which corresponds to **${root_out_dir}** of GN. + - ${fs_dir}: file system directory, which consists of variables ${root_path} and ${fs_dir_name}. +> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
+> **fs.yml** is optional and not required for devices without a file system. + +6. **vendor/company/product/BUILD.gn** + + This file provides the product built entry. It is used to build the source code of the solution vendor and copy the startup configuration file. The **BUILD.gn** file in the corresponding product directory will be built by default if a product is selected. + + The following is an example of the **BUILD.gn** file of a product: + + ``` + group("product") { # The name must be the same as the product name (level-3 directory name under the product directory). + deps = [] + # Copy the init configuration. + deps += [ "init_configs" ] + # Others + ... + } + ``` + +## Guidelines ### Prerequisites -The development environment has GN, Ninja, Python 3.7.4 or later, and hb available. For details about installation methods, see [Environment Setup](../quick-start/quickstart-lite-env-setup.md). +The development environment has GN, Ninja, Python 3.9.2 or later, and hb available. For details about the installation method, see [Setting Up Environments for the Mini and Small Systems](../quick-start/quickstart-lite-env-setup.md). ### Using hb -**hb** is a command line tool for OpenHarmony to execute build commands. Common hb commands are described as follows: +**hb** is an OpenHarmony command line tool for executing build commands. Common hb commands are described as follows: -**hb set** + **hb set** ``` hb set -h @@ -410,13 +418,15 @@ optional arguments: -p, --product Set OHOS board and kernel ``` -- **hb set** \(without argument\): starts the default setting process. -- **hb set -root** _dir_: sets the root directory of the code. -- **hb set -p**: sets the product to build. +- If you run **hb set** with no argument, the default setting process starts. + +- You can run **hb set -root** *dir* to set the root directory of the source code. + +- You can run **hb set -p** to set the product to build. **hb env** -Displays the current configuration. +Displays the current settings. ``` hb env @@ -428,57 +438,66 @@ hb env [OHOS INFO] device path: xxx/device/hisilicon/hispark_taurus/sdk_linux_4.19 ``` -**hb build** + **hb build** ``` hb build -h -usage: hb build [-h] [-b BUILD_TYPE] [-c COMPILER] [-t [TEST [TEST ...]]] - [--dmverity] [--tee] [-p PRODUCT] [-f] [-n] - [-T [TARGET [TARGET ...]]] [-v] [-shs] [--patch] +usage: hb build [-h] [-b BUILD_TYPE] [-c COMPILER] [-t [TEST [TEST ...]]] [-cpu TARGET_CPU] [--dmverity] [--tee] + [-p PRODUCT] [-f] [-n] [-T [TARGET [TARGET ...]]] [-v] [-shs] [--patch] [--compact-mode] + [--gn-args GN_ARGS] [--keep-ninja-going] [--build-only-gn] [--log-level LOG_LEVEL] [--fast-rebuild] + [--device-type DEVICE_TYPE] [--build-variant BUILD_VARIANT] [component [component ...]] positional arguments: - component name of the component + component name of the component, mini/small only optional arguments: -h, --help show this help message and exit -b BUILD_TYPE, --build_type BUILD_TYPE - release or debug version + release or debug version, mini/small only -c COMPILER, --compiler COMPILER - specify compiler + specify compiler, mini/small only -t [TEST [TEST ...]], --test [TEST [TEST ...]] compile test suit - --dmverity Enable dmverity + -cpu TARGET_CPU, --target-cpu TARGET_CPU + select cpu + --dmverity enable dmverity --tee Enable tee -p PRODUCT, --product PRODUCT - build a specified product with - {product_name}@{company}, eg: camera@huawei + build a specified product with {product_name}@{company} -f, --full full code compilation -n, --ndk compile ndk -T [TARGET [TARGET ...]], --target [TARGET [TARGET ...]] - Compile single target + compile single target -v, --verbose show all command lines while building -shs, --sign_haps_by_server sign haps by server --patch apply product patch before compiling - - --dmverity Enable dmverity - -p PRODUCT, --product PRODUCT - build a specified product with - {product_name}@{company}, eg: ipcamera@hisilcon - -f, --full full code compilation - -T [TARGET [TARGET ...]], --target [TARGET [TARGET ...]] - Compile single target + --compact-mode compatible with standard build system set to false if we use build.sh as build entrance + --gn-args GN_ARGS specifies gn build arguments, eg: --gn-args="foo="bar" enable=true blah=7" + --keep-ninja-going keeps ninja going until 1000000 jobs fail + --build-only-gn only do gn parse, donot run ninja + --log-level LOG_LEVEL + specifies the log level during compilationyou can select three levels: debug, info and error + --fast-rebuild it will skip prepare, preloader, gn_gen steps so we can enable it only when there is no change + for gn related script + --device-type DEVICE_TYPE + specifies device type + --build-variant BUILD_VARIANT + specifies device operating mode ``` -- **hb build** \(without argument\): builds the code based on the configured code directory, product, and options. The **-f** option deletes all products to be built, which is equivalent to running **hb clean** and **hb build**. -- **hb build** _\{component\_name\}_: builds a product component separately based on the development board and kernel set for the product, for example, **hb build kv\_store**. -- **hb build -p ipcamera@hisilicon**: skips the **set** step and builds the product directly. -- You can run **hb build** in **device/device\_company/board** to select the kernel and start the build based on the current development board and the selected kernel to generate an image that contains the kernel and driver only. +- If you run **hb build** with no argument, the previously configured code directory, product, and options are used for the build. The **-f** option deletes all products to be built. It is equivalent to running **hb clean** and **hb build**. + +- You can run **hb build** *{component_name}* to build product components separately based on the development board and kernel set for the product, for example, **hb build kv_store**. + +- You can run **hb build -p ipcamera@hisilicon** to skip the setting step and build the product directly. + +- You can run **hb build** in **device/board/device_company** to select the kernel and build an image that contains the kernel and drivers only based on the current development board and the selected kernel. **hb clean** -You can run **hb clean** to clear the build result of the product in the **out** directory and retain the **args.gn** and **build.log** files only. To clear files in a specified directory, add the directory parameter to the command, for example, **hb clean out/xxx/xxx**. +You can run **hb clean** to delete all the files except **args.gn** and **build.log** in the **out** directory. To clear files in a specified directory, add the directory parameter to the command, for example, **hb clean out/board/product**. By default, the files in the **out** directory are cleared. ``` hb clean @@ -495,477 +514,468 @@ optional arguments: To add a component, determine the subsystem to which the component belongs and the component name, and then perform the following steps: -1. Add the component build script after the source code development is complete. - - The following example adds the **BUILD.gn** script \(stored in the **applications/sample/hello\_world** directory\) to build the **hello\_world** component \(as an executable file\). +1. Add the component build script after the source code development is complete. + + The following example shows the **BUILD.gn** script (in the **applications/sample/hello_world** directory) for the **hello_world** executable file. - ``` - executable("hello_world") { - include_dirs = [ - "include", - ] - sources = [ - "src/hello_world.c" + ``` + executable("hello_world") { + include_dirs = [ + "include", ] - } - ``` - - The above script is used to build **hello\_world** that can run on OpenHarmony. - - To build the preceding component separately, select a product via the **hb set** command and run the **-T** command. - - ``` - hb build -f -T //applications/sample/hello_world - ``` - - After the component functions are verified on the development board, perform steps 2 to 4 to configure the component to the product. - -2. Add component description. - - The component description is stored in the **build/lite/components** directory. New components must be added to the JSON file of the corresponding subsystem. The component description must contain the following fields: - - - **component**: name of the component - - **description**: brief description of the component - - **optional**: whether the component is optional - - **dirs**: source code directory of the component - - **targets**: component build entry - - For example, to add the **hello\_world** component to the application subsystem, add the **hello\_world** object to the **applications.json** file. - - ``` - { - "components": [ - { - "component": "hello_world", - "description": "Hello world.", - "optional": "true", - "dirs": [ - "applications/sample/hello_world" - ], - "targets": [ - "//applications/sample/hello_world" - ] - }, - ... + sources = [ + "src/hello_world.c" + ] + } + ``` + + This script can be used to build a file named **hello_world** that can run on OpenHarmony. + + To build the preceding component separately, run **hb set** to select a product and run the following command to build **hello_world** separately. + + ``` + hb build -f -T //applications/sample/hello_world + ``` + + After the component functions are verified on the development board, perform steps 2 to 4 to add the component to the product. + +2. Add the component description. + + The component description is stored in the **build/lite/components** directory. Add the new component to the .json file of the corresponding subsystem. The component description must contain the following fields: + + - **component**: component name. + - **description**: description of the component functions. + - **optional**: whether the component is optional. + - **dirs**: source code directory of the component. + - **targets**: component build entry. + + The following is an example of adding the **hello_world** component to the **applications.json** file. + + ``` + { + "components": [ + { + "component": "hello_world", + "description": "Hello world.", + "optional": "true", + "dirs": [ + "applications/sample/hello_world" + ], + "targets": [ + "//applications/sample/hello_world" + ] + }, + ... + ] + } + ``` + +3. Add the component to the product. + + The product configuration file **config.json** is located in the **vendor/company/product/** directory. This file contains the product name, OpenHarmony version, device vendor, development board, kernel type, kernel version, subsystems, and components. The following example adds **hello_world** to the **my_product.json** file: + + ``` + { + "product_name": "hello_world_test", + "ohos_version": "OpenHarmony 1.0", + "device_company": "hisilicon", + "board": "hispark_taurus", + "kernel_type": "liteos_a", + "kernel_version": "1.0.0", + "subsystems": [ + { + "subsystem": "applications", + "components": [ + { "component": "hello_world", "features":[] } + ] + }, + ... ] - } - ``` - -3. Configure the component for the product. - - The **config.json** file is stored in the **vendor/company/product/** directory. The file must contain the product name, OpenHarmony version, device vendor, development board, kernel type, kernel version, and the subsystem and component to configure. The following example adds the **hello\_world** component to the **my\_product.json** configuration file: - - ``` - { - "product_name": "hello_world_test", - "ohos_version": "OpenHarmony 1.0", - "device_company": "hisilicon", - "board": "hispark_taurus", - "kernel_type": "liteos_a", - "kernel_version": "1.0.0", - "subsystems": [ - { - "subsystem": "applications", - "components": [ - { "component": "hello_world", "features":[] } - ] - }, - ... - ] - } - ``` - -4. Build the product. - - 1. Run the **hb set** command in the root code directory and select the product. - - 2. Run the **hb build** command. + } + ``` +4. Build the product. + + 1. Run the **hb set** command in the root code directory and select the product. + + 2. Run the **hb build** command. ### Adding a Chipset Solution The following uses the RTL8720 development board provided by Realtek as an example. To a chipset solution, perform the following steps: -1. Create a directory for the chipset solution. - - To create a directory based on [Configuration Rules](#configuration-rules), run the following command in the root code directory: - - ``` - mkdir -p device/realtek/rtl8720 - ``` - -2. Create a directory for kernel adaptation and build the **config.gni** file of the development board. - - For example, to adapt the LiteOS-A kernel to the RTL8720 development board, configure the **device/realtek/rtl8720/liteos\_a/config.gni** file as follows: - - ``` - # Kernel type, e.g. "linux", "liteos_a", "liteos_m". - kernel_type = "liteos_a" - - # Kernel version. - kernel_version = "3.0.0" - - # Board CPU type, e.g. "cortex-a7", "riscv32". - board_cpu = "real-m300" - - # Board arch, e.g. "armv7-a", "rv32imac". - board_arch = "" - - # Toolchain name used for system compiling. - # E.g. gcc-arm-none-eabi, arm-linux-harmonyeabi-gcc, ohos-clang, riscv32-unknown-elf. - # Note: The default toolchain is "ohos-clang". It's not mandatory if you use the default toochain. - board_toolchain = "gcc-arm-none-eabi" - - # The toolchain path instatlled, it's not mandatory if you have added toolchian path to your ~/.bashrc. - board_toolchain_path = - rebase_path("//prebuilts/gcc/linux-x86/arm/gcc-arm-none-eabi/bin", - root_build_dir) - - # Compiler prefix. - board_toolchain_prefix = "gcc-arm-none-eabi-" - - # Compiler type, "gcc" or "clang". - board_toolchain_type = "gcc" - - # Board related common compile flags. - board_cflags = [] - board_cxx_flags = [] - board_ld_flags = [] - ``` - -3. Build the script. - - Create the **BUILD.gn** file in the development board directory. The target name must be the same as that of the development board. The content in the **device/realtek/rtl8720/BUILD.gn** file is configured as follows: - - ``` - group("rtl8720") { # The target can be shared_library, static_library, or an executable file. - # Content - ...... - } - ``` - -4. Build the chipset solution. - - Run the **hb build** command in the development board directory to start the build. - +1. Create a directory for the chipset solution based on the [configuration rules](#chipset-solution). + Run the following command in the root directory of the code: + + ``` + mkdir -p device/board/realtek/rtl8720 + ``` + +2. Create a directory for kernel adaptation and write the **config.gni** file of the development board. + For example, to adapt the LiteOS-A kernel to the RTL8720 development board, write the **device/realtek/rtl8720/liteo_a/config.gni** file as follows: + + ``` + # Kernel type, e.g. "linux", "liteos_a", "liteos_m". + kernel_type = "liteos_a" + + # Kernel version. + kernel_version = "3.0.0" + + # Board CPU type, e.g. "cortex-a7", "riscv32". + board_cpu = "real-m300" + + # Board arch, e.g. "armv7-a", "rv32imac". + board_arch = "" + + # Toolchain name used for system compiling. + # E.g. gcc-arm-none-eabi, arm-linux-harmonyeabi-gcc, ohos-clang, riscv32-unknown-elf. + # Note: The default toolchain is "ohos-clang". It's not mandatory if you use the default toochain. + board_toolchain = "gcc-arm-none-eabi" + + # The toolchain path installed, it's not mandatory if you have added toolchain path to your ~/.bashrc. + board_toolchain_path = + rebase_path("//prebuilts/gcc/linux-x86/arm/gcc-arm-none-eabi/bin", + root_build_dir) + + # Compiler prefix. + board_toolchain_prefix = "gcc-arm-none-eabi-" + + # Compiler type, "gcc" or "clang". + board_toolchain_type = "gcc" + + # Board related common compile flags. + board_cflags = [] + board_cxx_flags = [] + board_ld_flags = [] + ``` + +3. Write the build script. + Create the **BUILD.gn** file in the development board directory. The target name must be the same as that of the development board. The following is an example of the **device/realtek/rtl8720/BUILD.gn** file for the RTL8720 development board: + + ``` + group("rtl8720") { # The build target can be shared_library, static_library, or an executable file. + # Content + ... + } + ``` + +4. Build the chipset solution. + + Run the **hb build** command in the development board directory to start the build. ### Adding a Product Solution -You can use the Compilation and Building subsystem to customize product solutions by assembling chipset solutions and components. The procedure is as follows: - -1. Create a product directory. - - The following uses the Wi-Fi IoT component on the RTL8720 development board as an example. Run the following command in the root code directory to create a product directory based on [Configuration Rules](#configuration-rules): - - ``` - mkdir -p vendor/my_company/wifiiot - ``` - -2. Assemble the product. - - Create the **config.json** file in the product directory. The **vendor/my\_company/wifiiot/config.json** file is as follows: - - ``` - { - "product_name": "wifiiot", # Product name - "version": "3.0", # config.json version, which is 3.0 - "type": "small", # System type, which can be mini, small, or standard - "ohos_version": "OpenHarmony 1.0", # OS version - "device_company": "realtek", # Name of the chipset solution vendor - "board": "rtl8720", # Name of the development board - "kernel_type": "liteos_m", # Kernel type - "kernel_version": "3.0.0", # Kernel version - "subsystems": [ - { - "subsystem": "kernel", # Subsystem - "components": [ - { "component": "liteos_m", "features":[] } # Component and its features - ] - }, - ... - { - More subsystems and components - } - ] - } - ``` - - Before the build, the Compilation and Building subsystem checks the validity of fields, including **device\_company**, **board**, **kernel\_type**, **kernel\_version**, **subsystem**, and **component**. The **device\_company**, **board**, **kernel\_type**, and **kernel\_version** fields must match the current chipset solution, and **subsystem** and **component** must match the component description in the **build/lite/components** file. - -3. Implement adaptation to OS APIs. - - Create the **hals** directory in the product directory and store the source code as well as the build script for OS adaptation in this directory. - -4. Configure the system service. - - Create the **init\_configs** directory in the product directory and then the **init.cfg** file in the newly created directory. Configure the system service to be started. - -5. \(Optional\) Configure the init process only for the Linux kernel. - - Create the **etc** directory in the **init\_configs** directory, and then the **init.d** folder and the **fstab** file in the newly created directory. Then, create the **rcS** and **S**_xxx_ files in the **init.d** file and edit them based on product requirements. - -6. \(Optional\) Configure the file system image only for the development board that supports the file system. - - Create the **fs.yml** file in the product directory and configure it as required. A typical **fs.yml** file is as follows: - - ``` - - - fs_dir_name: rootfs # Image name - fs_dirs: - - - # Copy the files in the out/my_board/my_product/bin directory to the rootfs/bin directory and ignore the .bin files related to testing. - source_dir: bin - target_dir: bin - ignore_files: - - Test.bin - - TestSuite.bin - - - # Copy the files in the out/my_board/my_product/libs directory to the rootfs/lib directory, ignore all .a files, and set the file permissions to 644 and folder permissions 755. - source_dir: libs - target_dir: lib - ignore_files: - - .a - dir_mode: 755 - file_mode: 644 - - - source_dir: usr/lib - target_dir: usr/lib - ignore_files: - - .a - dir_mode: 755 - file_mode: 644 - - - source_dir: config - target_dir: etc - - - source_dir: system - target_dir: system - - - source_dir: sbin - target_dir: sbin - - - source_dir: usr/bin - target_dir: usr/bin - - - source_dir: usr/sbin - target_dir: usr/sbin - - - # Create an empty proc directory. - target_dir: proc - - - target_dir: mnt - - - target_dir: opt - - - target_dir: tmp - - - target_dir: var - - - target_dir: sys - - - source_dir: etc - target_dir: etc - - - source_dir: vendor - target_dir: vendor - - - target_dir: storage - - fs_filemode: - - - file_dir: lib/ld-uClibc-0.9.33.2.so - file_mode: 555 - - - file_dir: lib/ld-2.24.so - file_mode: 555 - - - file_dir: etc/init.cfg - file_mode: 400 - fs_symlink: - - - # Create the soft link ld-musl-arm.so.1 -> libc.so in the rootfs/lib directory. - source: libc.so - link_name: ${fs_dir}/lib/ld-musl-arm.so.1 - - - source: mksh - link_name: ${fs_dir}/bin/sh - - - source: mksh - link_name: ${fs_dir}/bin/shell - fs_make_cmd: - # Create an ext4 image for the rootfs directory using the script. - - ${root_path}/build/lite/make_rootfs/rootfsimg_linux.sh ${fs_dir} ext4 - - - fs_dir_name: userfs - fs_dirs: - - - source_dir: storage/etc - target_dir: etc - - - source_dir: data - target_dir: data - fs_make_cmd: - - ${root_path}/build/lite/make_rootfs/rootfsimg_linux.sh ${fs_dir} ext4 - - ``` - -7. \(Optional\) Configure patches if the product and components need to be patched. - - Create the **patch.yml** file in the product directory and configure it as required. A typical **patch.yml** file is as follows: - - ``` - # Directory in which the patch is to be installed - foundation/communication/dsoftbus: - # Directory in which the patch is stored - - foundation/communication/dsoftbus/1.patch - - foundation/communication/dsoftbus/2.patch - third_party/wpa_supplicant: - - third_party/wpa_supplicant/1.patch - - third_party/wpa_supplicant/2.patch - - third_party/wpa_supplicant/3.patch - ... - ``` - - If you add **--patch** when running the **hb build** command, the patch file can be added to the specified directory before the build. - - ``` - hb build -f --patch - ``` - -8. Build the script. - - Create the **BUILD.gn** file in the product directory and write the script. The following **BUILD.gn** file uses the Wi-Fi IoT component in [1](#li1970321162111) as an example: - - ``` - group("wifiiot") { # The target name must be the same as the product name. - deps = [] - # Copy the init configuration. - deps += [ "init_configs" ] - # Build the hals directory. - deps += [ "hals" ] - # Others - ...... - } - ``` - -9. Build the product. - - Run the **hb set** command in the code root directory, select the new product as prompted, and run the **hb build** command. - +You can customize a product solution by flexibly assembling a chipset solution and components. The procedure is as follows: + +1. Create a product directory based on the [configuration rules](#product-solution). + + The following uses the Wi-Fi IoT module on the RTL8720 development board as an example. Run the following command in the root directory to create a product directory: + + ``` + mkdir -p vendor/my_company/wifiiot + ``` + +2. Assemble the product. + + Create a **config.json** file, for example for wifiiot, in the product directory. The **vendor/my_company/wifiiot/config.json** file is as follows: + + ``` + { + "product_name": "wifiiot", # Product name + "version": "3.0", # Version of config.json. The value is 3.0. + "type": "small", # System type. The value can be mini, small, or standard. + "ohos_version": "OpenHarmony 1.0", # OS version + "device_company": "realtek", # Name of the chipset solution vendor + "board": "rtl8720", # Name of the development board + "kernel_type": "liteos_m", # Kernel type + "kernel_version": "3.0.0", # Kernel version + "subsystems": [ + { + "subsystem": "kernel", # Subsystem + "components": [ + { "component": "liteos_m", "features":[] } # Component and its features + ] + }, + ... + { + More subsystems and components + } + ] + } + ``` + +> ![icon-caution.gif](../public_sys-resources/icon-caution.gif) **CAUTION**
+> Before the build, the Compilation and Building subsystem checks the validity of fields in **config.json**. The **device_company**, **board**, **kernel_type**, and **kernel_version** fields must match the fields of the chipset solution, and **subsystem** and **component** must match the component description in the **build/lite/components** file. + +3. Implement adaptation to OS APIs. + + Create the **hals** directory in the product directory and save the source code as well as the build script for OS adaptation in this directory. + +4. Configure system services. + + Create the **init_configs** directory in the product directory and then the **init.cfg** file in the **init_configs** directory, and configure the system services to be started. + +5. (Optional) Configure the init process for the Linux kernel. + + Create the **etc** directory in the **init_configs** directory, and then the **init.d** folder and the **fstab** file in the **etc** directory. Then, create the **rcS** and **S***xxx* files in the **init.d** file and edit them based on product requirements. + +6. (Optional) Configure the file system image for the development board that supports the file system. + + Create a **fs.yml** file in the product directory and configure it as required. A typical **fs.yml** file is as follows: + + ``` + - + fs_dir_name: rootfs # Image name + fs_dirs: + - + # Copy the files in the out/my_board/my_product/bin directory to the rootfs/bin directory and ignore the .bin files related to testing. + source_dir: bin + target_dir: bin + ignore_files: + - Test.bin + - TestSuite.bin + - + # Copy the files in the out/my_board/my_product/libs directory to the rootfs/lib directory, ignore all .a files, and set the file permissions to 644 and folder permissions 755. + source_dir: libs + target_dir: lib + ignore_files: + - .a + dir_mode: 755 + file_mode: 644 + - + source_dir: usr/lib + target_dir: usr/lib + ignore_files: + - .a + dir_mode: 755 + file_mode: 644 + - + source_dir: config + target_dir: etc + - + source_dir: system + target_dir: system + - + source_dir: sbin + target_dir: sbin + - + source_dir: usr/bin + target_dir: usr/bin + - + source_dir: usr/sbin + target_dir: usr/sbin + - + # Create an empty proc directory. + target_dir: proc + - + target_dir: mnt + - + target_dir: opt + - + target_dir: tmp + - + target_dir: var + - + target_dir: sys + - + source_dir: etc + target_dir: etc + - + source_dir: vendor + target_dir: vendor + - + target_dir: storage + + fs_filemode: + - + file_dir: lib/ld-uClibc-0.9.33.2.so + file_mode: 555 + - + file_dir: lib/ld-2.24.so + file_mode: 555 + - + file_dir: etc/init.cfg + file_mode: 400 + fs_symlink: + - + # Create the soft link ld-musl-arm.so.1 -> libc.so in the rootfs/lib directory. + source: libc.so + link_name: ${fs_dir}/lib/ld-musl-arm.so.1 + - + source: mksh + link_name: ${fs_dir}/bin/sh + - + source: mksh + link_name: ${fs_dir}/bin/shell + fs_make_cmd: + # Run the script to create an ext4 image from rootfs. + - ${root_path}/build/lite/make_rootfs/rootfsimg_linux.sh ${fs_dir} ext4 + - + fs_dir_name: userfs + fs_dirs: + - + source_dir: storage/etc + target_dir: etc + - + source_dir: data + target_dir: data + fs_make_cmd: + - ${root_path}/build/lite/make_rootfs/rootfsimg_linux.sh ${fs_dir} ext4 + + ``` + +7. (Optional) Configure patches if the product and components need to be patched. + + Create a **patch.yml** file in the product directory and configure it as required. A typical **patch.yml** file is as follows: + + ``` + # Directory in which the patch is to be installed + foundation/communication/dsoftbus: + # Directory in which the patch is stored. + - foundation/communication/dsoftbus/1.patch + - foundation/communication/dsoftbus/2.patch + third_party/wpa_supplicant: + - third_party/wpa_supplicant/1.patch + - third_party/wpa_supplicant/2.patch + - third_party/wpa_supplicant/3.patch + ... + ``` + + Add **--patch** when running the **hb build** command. Then, the patch files can be added to the specified directory before the build. + + ``` + hb build -f --patch + ``` + +8. Write the build script. + + Create a **BUILD.gn** file in the product directory and write the script. The following **BUILD.gn** file uses the Wi-Fi IoT module in step 1 as an example: + + ``` + group("wifiiot") { # The target name must be the same as the product name. + deps = [] + # Copy the init configuration. + deps += [ "init_configs" ] + # Add **hals**. + deps += [ "hals" ] + # Others + ... + } + ``` + +9. Build the product. + + Run the **hb set** command in the code root directory, select the new product as prompted, and run the **hb build** command. ## Troubleshooting -### Invalid -- w Option - -- **Symptom** - - The build fails, and "usr/sbin/ninja: invalid option -- w" is displayed. - -- **Cause** - - The Ninja version in the build environment is outdated and does not support the **--w** option. - -- **Solution** - - Uninstall Ninja and GN and follow the instructions provided in [IDE](../get-code/gettools-ide.md) to install Ninja and GN of the required version. - - -### Library ncurses Not Found - -- **Symptom** - - The build fails, and "/usr/bin/ld: cannot find -lncurses" is displayed. - -- **Cause** - - The ncurses library is not installed. - -- **Solution** - - ``` - sudo apt-get install lib32ncurses5-dev - ``` - - -### mcopy not Found - -- **Symptom** - - The build fails, and "line 77: mcopy: command not found" is displayed. - -- **Cause** - - mcopy is not installed. - -- **Solution** - - ``` - sudo apt-get install dosfstools mtools - ``` - - -### No riscv File or Directory - -- **Symptom** - - The build fails, and the following information is displayed: +### "usr/sbin/ninja: invalid option -- w" Displayed During the Build Process - riscv32-unknown-elf-gcc: error trying to exec 'cc1': execvp: No such file or directory. +- **Symptom** + + The build fails, and **usr/sbin/ninja: invalid option -- w** is displayed. -- **Cause** +- **Possible Causes** + + The Ninja version in use does not support the **--w** option. - Permission is required to access files in the **riscv** compiler directory. +- **Solution** + + Uninstall Ninja and GN, and [install Ninja and GN of the required version](../get-code/gettools-ide.md). -- **Solution** +### "/usr/bin/ld: cannot find -lncurses" Displayed During the Build Process - Run the following command to query the directory where **gcc\_riscv32** is located: +- **Symptom** + + The build fails, and **/usr/bin/ld: cannot find -lncurses** is displayed. - ``` - which riscv32-unknown-elf-gcc - ``` +- **Possible Causes** + + The ncurses library is not installed. + +- **Solution** + + ``` + sudo apt-get install lib32ncurses5-dev + ``` - Run the **chmod** command to change the directory permission to **755**. +### "line 77: mcopy: command not found" Displayed During the Build Process +- **Symptom** + + The build fails, and **line 77: mcopy: command not found** is displayed. -### No Crypto +- **Possible Causes** + + mcopy is not installed. -- **Symptom** +- **Solution** + + ``` + sudo apt-get install dosfstools mtools + ``` - The build fails, and "No component named 'Crypto'" is displayed. +### "riscv32-unknown-elf-gcc: error trying to exec 'cc1': execvp: No such file or directory" Displayed During the Build Process -- **Cause** +- **Symptom** + + The build fails, and the following information is displayed:
**riscv32-unknown-elf-gcc: error trying to exec 'cc1': execvp: No such file or directory** - Crypto is not installed in Python 3. +- **Possible Causes** + + Permission is required to access files in the RISC-V compiler directory. -- **Solution** - 1. Run the following command to query the Python version: +- **Solution** - ``` - python3 --version - ``` + 1. Run the following command to locate **gcc_riscv32**: - 2. Ensure that Python 3.7 or later is installed, and then run the following command to install pycryptodome: + ``` + which riscv32-unknown-elf-gcc + ``` - ``` - sudo pip3 install pycryptodome - ``` + 2. Run the **chmod** command to change the directory permission to **755**. + + -### Unexpected Operator +### "No module named 'Crypto'" Displayed During the Build Process -- **Symptom** +- **Symptom** + + The build fails, and **No module named 'Crypto'** is displayed. - The build fails, and "xx.sh \[: xx unexpected operator" is displayed. +- **Possible Causes** + + Crypto is not installed in Python 3. -- **Cause** +- **Solution** + + 1. Run the following command to query the Python version: + + ``` + python3 --version + ``` + + 2. Ensure that Python 3.9.2 or later is installed, and then run the following command to install PyCryptodome: + + ``` + sudo pip3 install pycryptodome + ``` - The build environment is shell, not bash. +### "xx.sh : xx unexpected operator" Displayed During the Build Process -- **Solution** +- **Symptom** + + The build fails, and **xx.sh [: xx unexpected operator** is displayed. - ``` - sudo rm -rf /bin/sh - sudo ln -s /bin/bash /bin/sh - ``` +- **Possible Causes** + + The build environment shell is not bash. +- **Solution** + + ``` + sudo rm -rf /bin/sh + sudo ln -s /bin/bash /bin/sh + ``` diff --git a/en/device-dev/subsystems/subsys-build-standard-large.md b/en/device-dev/subsystems/subsys-build-standard-large.md index 588d41c974..d1f3eb9fd8 100644 --- a/en/device-dev/subsystems/subsys-build-standard-large.md +++ b/en/device-dev/subsystems/subsys-build-standard-large.md @@ -1,226 +1,813 @@ -# Building the Standard System
+# Building the Standard System -## Overview +## Overview -The compilation and building subsystem provides a framework based on Generate Ninja \(GN\) and Ninja. This subsystem allows you to: +The Compilation and Building subsystem provides a build framework based on Generate Ninja (GN) and Ninja. This subsystem allows you to: -- Build products based on different chipset platforms, for example, Hi3516D V300. +- Build products based on different chipset platforms, for example, hispark_taurus_standard. -- Package capabilities required by a product by assembling modules based on the product configuration. +- Package capabilities required by a product by assembling components based on the product configuration. -### Basic Concepts +### Basic Concepts -It is considered best practice to learn the following basic concepts before you start building: +Learn the following basic concepts before you start: -- **Platform** +- Platform + + A platform consists of the development board and kernel. The supported subsystems and components vary with the platform. - A platform is a combination of development boards and kernels. +- Subsystem + + OpenHarmony is designed with a layered architecture, which consists of the kernel layer, system service layer, framework layer, and application layer from the bottom up. System functions are developed by levels, from system to subsystem and then to component. In a multi-device deployment scenario, you can customize subsystems and components as required. A subsystem, as a logical concept, consists of the least required components. - Supported subsystems and modules vary according to the platform. +- Component + + A component is a reusable software unit that contains source code, configuration files, resource files, and build scripts. Integrated in binary mode, a component can be built and tested independently. -- **Subsystems** +- GN + + GN is short for Generate Ninja. It is used to build Ninja files. - OpenHarmony is designed with a layered architecture, which from bottom to top consists of the kernel layer, system service layer, framework layer, and application layer. System functions are expanded by levels, from system to subsystem, and further to module. In a multi-device deployment scenario, unnecessary subsystems and modules can be excluded from the system as required. A subsystem is a logical concept and is a flexible combination of functions. +- Ninja + + Ninja is a small high-speed building system. -- **Module** +### Working Principles - A module is a reusable software binary unit that contains source code, configuration files, resource files, and build scripts. A module can be built independently, integrated in binary mode, and then tested independently. +The process for building an OpenHarmony system is as follows: -- **GN** +- Parsing commands: Parse the name of the product to build and load related configurations. - GN is short for Generate Ninja, which is used to generate Ninja files. +- Running GN: Configure the toolchain and global options based on the product name and compilation type. -- **Ninja** +- Running Ninja: Start building and generate a product distribution. - Ninja is a small high-speed build system. +### Constraints +- You need to obtain the source code using method 3 described in [Obtaining Source Code](../get-code/sourcecode-acquire.md). -### Working Principles +- Ubuntu 18.04 or later must be used. -The process to build OpenHarmony is as follows: +- You must install the software packages required for build. + The command is as follows: + + ``` + # Run the script in the home directory. + # ./build/build_scripts/env_setup.sh + # Do not run the command as the **root** user. Otherwise, the environment variables will be added to the **root** user. If your **shell** is not **bash** or **Zsh**, you need to manually configure the following content to your environment variables after the execution. To view your environment variables, run the **cd** command to go to your home directory and view the hidden files. + # export PATH=/home/tools/llvm/bin:$PATH + # export PATH=/home/tools/hc-gen:$PATH + # export PATH=/home/tools/gcc_riscv32/bin:$PATH + # export PATH=/home/tools/ninja:$PATH + # export PATH=/home/tools/node-v12.20.0-linux-x64/bin:$PATH + # export PATH=/home/tools/gn:$PATH + # export PATH=/root/.local/bin:$PATH + + # If you do not need to run the script, you need to install the following: + apt-get update -y + apt-get install -y apt-utils binutils bison flex bc build-essential make mtd-utils gcc-arm-linux-gnueabi u-boot-tools python3.9.2 python3-pip git zip unzip curl wget gcc g++ ruby dosfstools mtools default-jre default-jdk scons python3-distutils perl openssl libssl-dev cpio git-lfs m4 ccache zlib1g-dev tar rsync liblz4-tool genext2fs binutils-dev device-tree-compiler e2fsprogs git-core gnupg gnutls-bin gperf lib32ncurses5-dev libffi-dev zlib* libelf-dev libx11-dev libgl1-mesa-dev lib32z1-dev xsltproc x11proto-core-dev libc6-dev-i386 libxml2-dev lib32z-dev libdwarf-dev + apt-get install -y grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5 libncurses5-dev libncursesw5 libstdc++6 python2.7 gcc-arm-none-eabi vim ssh locales doxygen + # Install the following modules for Python: + chmod +x /usr/bin/repo + pip3 install --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple requests setuptools pymongo kconfiglib pycryptodome ecdsa ohos-build pyyaml prompt_toolkit==1.0.14 redis json2html yagmail python-jenkins + pip3 install esdk-obs-python --trusted-host pypi.org + pip3 install six --upgrade --ignore-installed six + #You also need to install LLVM, hc-gen, gcc_riscv32, Ninja, node-v14.15.4-linux-x64, and GN, and import the non-bash or non-Zsh configuration in the shell to your environment variables. + ``` -- Parsing commands: Parse the name of the product to build and load related configurations. -- Running GN: Configure toolchains and global options based on the parsed product name and compilation type. -- Running Ninja: Start building and generate a product distribution. -### Limitations and Constraints -- You must download the source code using method 3 described in [Source Code Acquisition](../get-code/sourcecode-acquire.md). -- The build environment must be Ubuntu 18.04 or later. -- You must install the software package required for build. +## Building Guidelines - The installation command is as follows: +### Directory Structure - ``` - sudo apt-get install binutils git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 - ``` +``` +/build # Directory for build -## Compilation and Building Guidelines +├── __pycache__ +├── build_scripts/ # Python scripts for build +├── common/ +├── config/ # Build-related configurations +├── core +│ └── gn/ # BUILD.gn configuration + └── build_scripts/ +├── docs +gn_helpers.py* +lite/ # hb and preloader entry +misc/ +├── ohos # Process for building and packaging OpenHarmony +│ ├── kits # Kits build and packaging templates and processing +│ ├── ndk # NDK templates and processing +│ ├── notice # Notice templates and processing +│ ├── packages # Distribution packaging templates and processing +│ ├── sa_profile # SA profiles and processing +│ ├── sdk # SDK templates and processing, which contains the module configuration in the SDK +│ └── testfwk # Testing-related processing +├── ohos.gni* # Common .gni files for importing a module at a time. +├── ohos_system.prop +├── ohos_var.gni* +├── prebuilts_download.sh* +├── print_python_deps.py* +├── scripts/ +├── subsystem_config.json +├── subsystem_config_example.json +├── templates/ # C/C++ build templates +├── test.gni* +├── toolchain # Build toolchain configuration +├── tools # Common tools +├── version.gni +├── zip.py* -### Directory Structure -``` -/build # Primary directory -├── config # Build configuration items -├── core -│ └── gn # Build entry BUILD.gn configuration -├── loader # Loader of module configuration, which also generates a template for the module -├── ohos # Configuration of the process for building and packaging OpenHarmony -│ ├── kits # Build and packaging templates and processing flow for kits -│ ├── ndk # NDK template and processing flow -│ ├── notice # Notice template and processing flow -│ ├── packages # Distribution packaging template and processing flow -│ ├── sa_profile # SA template and processing flow -│ ├── sdk # SDK template and processing flow, which contains the module configuration in the SDK -│ └── testfwk # Processing flow related to the test -├── scripts # Build-related Python script -├── templates # C/C++ build templates -└── toolchain # Toolchain configuration ``` -### Build Command +### Build Command -- Run the following command in the root directory of the source code to build the full distribution: +- Run the following command in the root directory of the source code to build a full distribution: - ``` - ./build.sh --product-name {product_name} - ``` + ``` - **product\_name** indicates the product supported by the current distribution, for example, hispark_taurus_standard. + ./build.sh --product-name {product_name} + + ``` - The image generated after build is stored in the **out/{device_name}/packages/phone/images/** directory. + **{product_name}** specifies the product platform supported by the current distribution, for example, **hispark_taurus_standard**. -- The build command supports the following options: + The image generated is stored in the **out/{device_name}/packages/phone/images/** directory. - ``` - --product-name # (Mandatory) Name of the product to build, for example, Hi3516D V300 - --build-target # (Optional) One or more build targets - --gn-args # (Optional) One or more gn parameters - --ccache # (Optional) Use of Ccache for build. This option takes effect only when Ccache is installed on the local PC. - ``` +- The **./build.sh** command supports the following options: + ``` + -h, --help # Display help information and exit. + --source-root-dir=SOURCE_ROOT_DIR # Specify the path. + --product-name=PRODUCT_NAME # Specify the product name. + --device-name=DEVICE_NAME # Specify the device name. + --target-cpu=TARGET_CPU # Specify the CPU. + --target-os=TARGET_OS # Specify the operating system. + -T BUILD_TARGET, --build-target=BUILD_TARGET # specifies one or more targets to build. + --gn-args=GN_ARGS # Specify GN parameters. + --ninja-args=NINJA_ARGS # Specify Ninja parameters. + -v, --verbose # Display all commands used. + --keep-ninja-going # Keep Ninja going until 1,000,000 jobs fail. + --sparse-image + --jobs=JOBS + --export-para=EXPORT_PARA + --build-only-gn # Perform GN parsing and does not run Ninja. + --ccache # (Optional) Use ccache for build. You need to install ccache locally. + --fast-rebuild # Whether to use fast rebuild. The default value is False. + --log-level=LOG_LEVEL # Specify the log level during the build. The options are debug, info, and error. The default value is info. + --device-type=DEVICE_TYPE # Specify the device type. The default value is default. + --build-variant=BUILD_VARIANT # Specify the device operation mode. The default value is user. -### How to Develop + ``` -1. Add a module. +### How to Develop - The following steps use a custom module as an example to describe how to build the module, including build a library, an executable file, and a configuration file. +1. Add a component. + + The following use a custom component as an example to describe how to write .gn scripts for a library, an executable file, and a configuration file. + + In this example, **partA** consists of **feature1**, **feature2**, and **feature3**, which represent a dynamic library, an executable file, and an etc configuration file, respectively. + + Add **partA** to a subsystem, for example, **subsystem_examples** (defined in the **test/examples/** directory). + - The example module **partA** consists of **feature1**, **feature2**, and **feature3**. The target is a dynamic library for **feature1**, an executable file for **feature2**, and an etc configuration file for **feature3**. +The directory structure of **partA** is as follows: - Add **partA** to a subsystem, for example, **subsystem\_examples** \(defined in the **test/examples/** directory\). +``` + + test/examples/partA + ├── feature1 + │ ├── BUILD.gn + │ ├── include + │ │ └── helloworld1.h + │ └── src + │ └── helloworld1.cpp + ├── feature2 + │ ├── BUILD.gn + │ ├── include + │ │ └── helloworld2.h + │ └── src + │ └── helloworld2.cpp + └── feature3 + ├── BUILD.gn + └── src + └── config.conf + +``` - The complete directory structure of **partA** is as follows: +(a) Write **test/examples/partA/feature1/BUILD.gn** for the dynamic library. - ``` - test/examples/partA - ├── feature1 - │ ├── BUILD.gn - │ ├── include - │ │ └── helloworld1.h - │ └── src - │ └── helloworld1.cpp - ├── feature2 - │ ├── BUILD.gn - │ ├── include - │ │ └── helloworld2.h - │ └── src - │ └── helloworld2.cpp - └── feature3 - ├── BUILD.gn - └── src - └── config.conf - ``` +``` + + config("helloworld_lib_config") { + include_dirs = [ "include" ] +} + + ohos_shared_library("helloworld_lib") { + sources = [ + "include/helloworld1.h", + "src/helloworld1.cpp", + ] + public_configs = [ ":helloworld_lib_config" ] + part_name = "partA" +} + +``` - Example 1: GN script \(**test/examples/partA/feature1/BUILD.gn**\) for building a dynamic library +(b) Write **test/examples/partA/feature2/BUILD.gn** for the executable file. - ``` - config("helloworld_lib_config") { +``` + + ohos_executable("helloworld_bin") { + sources = [ + "src/helloworld2.cpp" + ] include_dirs = [ "include" ] - } - - ohos_shared_library("helloworld_lib") { - sources = [ - "include/helloworld1.h", - "src/helloworld1.cpp", + deps = [ # Dependent modules in the component + "../feature1:helloworld_lib" + ] + external_deps = [ "partB:module1" ] # (Optional) Dependent modules of another component are named in Component name:Module name format. + install_enable = true # By default, the executable file is not installed. You need to set this parameter to true for installation. + part_name = "partA" +} + +``` + +(c) Write **test/examples/partA/feature3/BUILD.gn** for the etc module. + +``` + + ohos_prebuilt_etc("feature3_etc") { + source = "src/config.conf" + relative_install_dir = "init" # (Optional) Relative directory for installing the module. The default installation directory is **/system/etc**. + part_name = "partA" +} + +``` + + (d) Add the module configuration **test/examples/bundle.json** to the **bundle.json** file of the component. Each component has a **bundle.json** file in the root directory of the component. The sample code is as follows: + + ``` + { + "name": "@ohos/, # OpenHarmony Package Manager (HPM) component name, in the "@Organization/Component name" format. + "description": "xxxxxxxxxxxxxxxxxxx", # Description of the component functions. + "version": "3.1", # Version, which must be the same as the version of OpenHarmony. + "license": "MIT", # Component license. + "publishAs": "code-segment", # Mode for publishing the HPM package. The default value is code-segment. + "segment": { + "destPath": "" + }, # Set the code restoration path (source code path) when publishAs is code-segment. + "dirs": {}, # Directory structure of the HPM package. This field is mandatory and can be left empty. + "scripts": {}, # Scripts to be executed. This field is mandatory and can be left empty. + "licensePath": "COPYING", # Path of the module's license. + "readmePath": { + "en": "README.rst" + }, # Path of module's reademe.opensource. + "component": { # Component attributes. + "name": "", # Component name. + "subsystem": "", # Subsystem to which the component belongs. + "syscap": [], # System capabilities provided by the component for applications. + "features": [], # List of the component's configurable features. Generally, this parameter corresponds to sub_component in build and can be configured. + "adapted_system_type": [], # Adapted system types, which can be mini, small, and standard. Multiple values are allowed. + "rom": "xxxKB" # ROM baseline. If there is no baseline, enter the current value. + "ram": "xxxKB", # RAM baseline. If there is no baseline, enter the current value. + "deps": { + "components": [], # Other components on which this component depends. + "third_party": [] # Third-party open-source software on which this component depends. + }, + "build": { # Build-related configurations. + "sub_component": [], # Component build entry. Configure the module here. + "inner_kits": [], # APIs between components. + "test": [] # Entry for building the component's test cases. + } + } + } + ``` + +2. Add the component to the product configuration file. + Add the component to **//vendor/{*product_company*}/{*product-name*}/config.json**. + + For example, add "subsystem_examples:partA" to the product **config.json** file. **partA** will be built and packaged into the distribution. + +3. Start the build. + For example, run the following command to build **hispark_taurus_standard**: + + ``` + + ./build.sh --product-name hispark_taurus_standard --ccache + + ``` + +4. Obtain the build result. + You can obtain the generated files from the **out/hispark_taurus/** directory and the image in the **out/hispark_taurus/packages/phone/images/** directory. + +## FAQs + +### How Do I Build a Module and Package It into a Distribution? + +- Set **part_name** for the module. A module can belong to only one part. + +- Add the module to **component.build.sub_component** of the component, or define the dependency between the module and the modules in **component.build.sub_component**. + +- Add the component to the component list of the product. + +### How Do I Set deps and external_deps? + +When adding a module, you need to declare its dependencies in **BUILD.gn**. **deps** specifies dependent modules in the same component, and **external_deps** specifies dependent modules between components. + +The dependency between modules can be classified into: + +**deps**: The dependent module to be added belongs to the same component with the current module. For example, module 2 depends on module 1, and modules 1 and 2 belong to the same component. + +**external_deps**: The dependent module to be added belongs to another component. For example, module 2 depends on module 1, and modules 1 and 2 belong to different components. + +- Example of **deps**: + + ``` + import("//build/ohos.gni") + ohos_shared_library("module1") { + ... + part_name = "part1" # (Mandatory) Name of the component to which the module belongs. + ... + } + ``` + + ``` + import("//build/ohos.gni") + ohos_shared_library("module2") { + ... + deps = [ + "GN target of module 1", + ... + ] # Intra-component dependency + part_name = "part1" # (Mandatory) Name of the part to which the module belongs. + } + ``` + +- Example of **external_deps**: + + ``` + import("//build/ohos.gni") + ohos_shared_library("module1") { + ... + part_name = "part1" # (Mandatory) Name of the component to which the module belongs. + ... + } + ``` + +- **bundle.json** file of the component to which module 1 belongs + + ``` + { + "name": "@ohos/", # HPM component name, in the "@Organization/Component name" format. + "description": "xxxxxxxxxxxxxxxx", # Description of the component functions. + "version": "3.1", # Version, which must be the same as the version of OpenHarmony. + "license": "MIT", # Component license. + "publishAs": "code-segment", # Mode for publishing the HPM package. The default value is code-segment. + "segment": { + "destPath": "" + }, # Code restoration path (source code path) when publishAs is code-segment. + "dirs": {}, # Directory structure of the HPM package. This field is mandatory and can be left empty. + "scripts": {}, # Scripts to be executed. This field is mandatory and can be left empty. + "licensePath "licensePath": "COPYING", + ": "COPYING", + "readmePath": { + "en": "README.rst" + }, + "component": { # Component attributes. + "name": "", # Component name. + "subsystem": "", # Subsystem to which the component belongs. + "syscap": [], # System capabilities provided by the component for applications. + "features": [], # List of the component's configurable features. Generally, this parameter corresponds to sub_component in build and can be configured. + "adapted_system_type": [], # Adapted system types, which can be mini, small, and standard. Multiple values are allowed. + "rom": "xxxKB" # ROM baseline. If there is no baseline, enter the current value. + "ram": "xxxKB", # RAM baseline. If there is no baseline, enter the current value. + "deps": { + "components": [], # Other components on which this component depends. + "third_party": [] # Third-party open-source software on which this component depends. + }, + "build": { # Build-related configurations. + "sub_component": ["part1"], # Component build entry. All modules of the component are listed here. + "inner_kits": [], # APIs between components. + { + "header": { + "header_base": "Header file directory", # Directory of the header files. + "header_files": [ + "Header file name" + ] # List of header file names. + }, + "name": "GN target of module 1" + }, + ], + "test": [] # Entry for building the component's test cases. + } + } + } + ``` + + ``` + import("//build/ohos.gni") + ohos_shared_library("module2") { + ... + external_deps = [ + "part1:module1", + ... + ] # Inter-component dependency. The dependent module must be declared in **inner_kits** by the dependent component. + part_name = "part2" # (Mandatory) Name of the component to which the module belongs. + } + + ``` + +> ![icon-caution.gif](../public_sys-resources/icon-caution.gif) **CAUTION**
+> The values of **external_deps** are in the *Component name*:*Module name* format. The module name must exist in **inner_kits** of the dependent component. + + + + + +### How Do I Add a Module to a Standard System? + +You may need to: + +- Add a module to an existing component. + +- Add a module to a new component. + +- Add a module to a new subsystem. + +#### Adding a Module to an Existing Component + +1. Configure the **BUILD.gn** file in the module directory and select the corresponding template. + + Follow the procedure for adding a module to an existing component. Note that **part_name** in the **BUILD.gn** file is the name of the existing component. +2. Modify the **bundle.json** file. "GN target of the module in the component" + + ``` + { + "name": "@ohos/, # HPM component name, in the "@Organization/Component name" format. + "description": "xxxxxxxxxxxxxxxxxxx", # Description of the component functions. + "version": "3.1", # Version, which must be the same as the version of OpenHarmony. + "license": "MIT", # Component license. + "publishAs": "code-segment", # Mode for publishing the HPM package. The default value is code-segment. + "segment": { + "destPath": "third_party/nghttp2" + }, # Code restoration path (source code path) when publishAs is code-segment. + "dirs": {}, # Directory structure of the HPM package. This field is mandatory and can be left empty. + "scripts": {}, # Scripts to be executed. This field is mandatory and can be left empty. + "licensePath": "COPYING", + "readmePath": { + "en": "README.rst" + }, + "component": { # Component attributes. + "name": "", # Component name. + "subsystem": "", # Subsystem to which the component belongs. + "syscap": [], # System capabilities provided by the component for applications. + "features": [], # List of the component's configurable features. Generally, this parameter corresponds to sub_component in build and can be configured. + "adapted_system_type": [], # Adapted system types, which can be mini, small, and standard. Multiple values are allowed. + "rom": "xxxKB" # ROM baseline. If there is no baseline, enter the current value. + "ram": "xxxKB", # RAM baseline. If there is no baseline, enter the current value. + "deps": { + "components": [], # Other components on which this component depends. + "third_party": [] # Third-party open-source software on which this component depends. + }, + + "build": { # Build-related configurations + "sub_component": [ + "//foundation/arkui/napi:napi_packages", # Existing module 1 + "//foundation/arkui/napi:napi_packages_ndk" # Existing module 2 + "//foundation/arkui/napi:new" # Module to add + ], # Component build entry. Configure the module here. + "inner_kits": [], # APIs between components + "test": [] # Entry for building the component's test cases. + } + } + } + ``` + + Note that the **bundle.json** file must be in the folder of the corresponding subsystem. + +#### Creating a Component and Adding a Module + +1. Configure the **BUILD.gn** file in the module directory and select the corresponding template. Note that **part_name** in the **BUILD.gn** file is the name of the newly added component. + +2. Create a **bundle.json** file in the folder of the corresponding subsystem. + + The **bundle.json** file consists of two parts: **subsystem** and **parts**. Add the component information to **parts**. When adding a component, you need to specify the **sub_component** of the component. If there are APIs provided for other components, add them in **inner_kits**. If there are test cases, add them in **test**. + +3. Add the new component to the end of existing components in **//vendor/{product_company}/{product-name}/config.json**. + + ``` + "subsystems": [ + { + "subsystem": "Name of the subsystem to which the component belongs", + "components": [ + {"component": "Component 1 name", "features":[]}, # Existing component 1 in the subsystem + { "component": "Component 2 name", "features":[] }, # Existing component 2 in the subsystem + {"component": "New component name", "features":[]} # New component in the subsystem + ] + }, + ... + ] + ``` + +#### Creating a Subsystem and Adding a Module + +1. Configure the **BUILD.gn** file in the module directory and select the corresponding template. + + Note that **part_name** in the **BUILD.gn** file is the name of the newly added component. + +2. Create a **bundle.json** file in the folder of the component of the subsystem. + + This step is the same as the step in "Creating a Component and Adding a Module." + +3. Modify the **subsystem_config.json** file in the **build** directory. + + ``` + { + "Subsystem 1 name": { # Existing subsystem 1 + "path": "Subsystem 1 directory", + "name": "Subsystem 1 name" + }, + "Subsystem 2 name": { # Existing subsystem 2 + "path": "Subsystem 2 directory", + "name": "Subsystem 2 name" + }, + "Subsystem name new": { # Subsystem to add + "path": "New subsystem directory", + "name": "New subsystem name" + }, + ... + } + ``` + + This file defines the subsystems and their paths. To add a subsystem, specify **path** and **name** for the subsystem. + +4. If **product-name** in the **//vendor/{product_company}/{product-name}** directory is **hispark_taurus_standard**, add the new component information to the end of existing components in the **config.json** file. + + ``` + "subsystems": [ + { + "subsystem": "arkui", # Name of the existing subsystem + "components": [ # All components of the subsystem + { + "component": "ace_engine_standard", # Name of the existing component + "features": [] + }, + { + "component": "napi", # Name of the existing component + "features": [] + } + { + "component": "component_new1", # Name of the new component added to the existing subsystem + "features": [] + } + ] + }, + { + "subsystem": "subsystem_new", # Name of the new subsystem to add + "components": [ + { + "component": "component_new2", # Name of the component added to the new subsystem + "features": [] + } + ] + }, + ... + ] + ``` + Verification: + - Check that **module_list** in the **BUILD.gn** file in the component directory under the corresponding subsystem directory contains the target defined in the **BUILD.gn** file of the new module. + - Check the .so file or binary file generated in the image created. + +#### Configuration Files + +There are four OpenHarmony configuration files. + +1. **vendor\Product vendor\Product name\config.json** + + ``` + { + "product_name": "MyProduct", + "version": "3.0", + "type": "standard", + "target_cpu": "arm", + "ohos_version": "OpenHarmony 1.0", + "device_company": "MyProductVendor", + "board": "MySOC", + "enable_ramdisk": true, + "subsystems": [ + { + "subsystem": "ace", + "components": [ + { "component": "ace_engine_lite", "features":[""] } + ] + }, + ... ] - public_configs = [ ":helloworld_lib_config" ] - part_name = "partA" + } + + ``` + This file specifies the name, manufacturer, device, version, type of system to be built, and subsystems of the product. + +2. **subsystem_config.json** in the **build** directory + + ``` + { + "arkui": { + "path": "foundation/arkui", + "name": "arkui" + }, + "ai": { + "path": "foundation/ai", + "name": "ai" + }, + ...... } - ``` + ``` + This file contains subsystem information. You need to configure **name** and **path** for each subsystem. + +3. **bundle.json** of a subsystem + + ``` + { + "name": "@ohos/, # HPM component name, in the "@Organization/Component name" format. + "description": "xxxxxxxxxxxxxxxxxxx", # Description of the component functions. + "version": "3.1", # Version, which must be the same as the version of OpenHarmony. + "license": "MIT", # Component license. + "publishAs": "code-segment", # Mode for publishing the HPM package. The default value is code-segment. + "segment": { + "destPath": "" + }, # Code restoration path (source code path) when publishAs is code-segment. + "dirs": {}, # Directory structure of the HPM package. This field is mandatory and can be left empty. + "scripts": {}, # Scripts to be executed. This field is mandatory and can be left empty. + "licensePath": "COPYING", + "readmePath": { + "en": "README.rst" + }, + "component": { # Component attributes. + "name": "", # Component name. + "subsystem": "", # Subsystem to which the component belongs. + "syscap": [], # System capabilities provided by the component for applications. + "features": [], # List of the component's configurable features. Generally, this parameter corresponds to sub_component in build and can be configured. + "adapted_system_type": [], # Adapted system types, which can be mini, small, and standard. Multiple values are allowed. + "rom": "xxxKB" # ROM baseline. If there is no baseline, enter the current value. + "ram": "xxxKB", # RAM baseline. If there is no baseline, enter the current value. + "deps": { + "components": [], # Other components on which this component depends. + "third_party": [] # Third-party open-source software on which this component depends. + }, + "build": { # Build-related configurations. + "sub_component": ["gn target of the module"], # Component build entry + "inner_kits": [], # APIs between components. + "test": [] # Entry for building the component's test cases. + } + } + } + ``` + The **bundle.json** file defines the components of a subsystem. + + Each component contains the module's target **component.build.sub_component**, **component.build.inner_kits** for interaction between components, and test cases **component.build.test_list**. The **component.build.sub_component** is mandatory. + +4. **BUILD.gn** of each module + + You can create **BUILD.gn** from a template or using the GN syntax. + +### How Do I Build a HAP? + +#### **HAP Description** + +An OpenHarmony Ability Package (HAP) includes resources, raw assets, JS assets, native libraries, and **config.json**. + +#### **Templates** - Example 2: GN script \(**test/examples/partA/feature2/BUILD.gn**\) for building an executable file +The compilation and build subsystem provides four templates for building HAPs. The templates are integrated in **ohos.gni**. Before using the templates, import **build/ohos.gni**. + +1. **ohos_resources** + + This template declares resource targets. After a target is built by restool, an index file is generated. The resource source file and index file are both packaged into the HAP. + + A **ResourceTable.h** file is also generated after resource building. This header file can be referenced if the resource target is relied on. + + The resource target name must end with **resources**, **resource**, or **res**. Otherwise, a build error may occur. + + The following variables are supported: + + - **sources**: a list of resource paths. + - **hap_profile**: **config.json** of the HAP required for resource building. + - **deps**: (optional) dependency of the current target. + +2. **ohos_assets** + + This template declares asset targets. + + Beware that the spelling is "assets" as opposed to "assert". + + The asset target name must end with **assets** or **asset**. + + The following variables are supported: + + - **sources**: a list for raw asset paths. + - **deps**: (optional) dependency of the current target. + +3. **ohos_js_assets** + + This template declares a JS resource target. The JS resource is the executable part of an L2 HAP. + + The JS asset target name must end with **assets** or **asset**. + + The following variables are supported: + + - **source_dir**: JS resource path, which is of the string type. + - **deps**: (optional) dependency of the current target. + +4. **ohos_hap** + + This template declares a HAP target. A HAP that will be generated and packaged into the system image. + + The following variables are supported: + + - **hap_profile**: **config.json** of the HAP. + - **deps**: dependency of the current target. + - **shared_libraries**: native libraries on which the current target depends. + - **hap_name**: (optional) name of the HAP. The default value is the target name. + - **final_hap_path**: (optional) destination path of the HAP. It takes precedence over **hap_name**. + - **subsystem_name**: name of the subsystem to which the HAP belongs. The value must be the same as that in **bundle.json**. Otherwise, the HAP will fail to be installed in the system image. + - **part_name**: name of the component to which the HAP belongs. The value must be the same as that in **bundle.json**. + - **js2abc**: whether to convert the HAP into ARK bytecode. + - **certificate_profile**: certificate profile of the HAP, which is used for signature. For details about signatures, see [Configuring Signature Information](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-debugging-and-running-0000001263040487#section17660437768). + - **certificate_file**: Certificate file. You must apply for the certificate and its profile from the official OpenHarmony website. + - **keystore_path**: keystore file, which is used for signature. + - **keystore_password**: keystore password, which is used for signature. + - **key_alias**: key alias. + - **module_install_name**: name of the HAP used during installation. + - **module_install_dir**: installation path. The default path is **system/app**. + +**HAP Example** ``` - ohos_executable("helloworld_bin") { - sources = [ - "src/helloworld2.cpp" + import("//build/ohos.gni") # Import **ohos.gni**. + ohos_hap("clock") { + hap_profile = "./src/main/config.json" # config.json + deps = [ + ":clock_js_assets", # JS assets + ":clock_resources", # Resources ] - include_dirs = [ "include" ] - deps = [ # Dependent submodule - "../feature1:helloworld_lib" + shared_libraries = [ + "//third_party/libpng:libpng", # Native library ] - external_deps = [ "partB:module1" ] # (Optional) If there is a cross-module dependency, the format is "module name: submodule name" - install_enable = true # By default, the executable file is not installed. You need to set this parameter to true for installation. - part_name = "partA" + certificate_profile = "../signature/systemui.p7b" # Certificate profile + hap_name = "SystemUI-NavigationBar" # HAP name + part_name = "prebuilt_hap" + subsystem_name = "applications" + } + ohos_js_assets("clock_js_assets") { + source_dir = "./src/main/js/default" + } + ohos_resources("clock_resources") { + sources = [ "./src/main/resources" ] + hap_profile = "./src/main/config.json" } ``` - Example 3: GN script \(**test/examples/partA/feature3/BUILD.gn**\) for building the etc configuration file \(submodule\). +### What Does an Open-Source Software Notice Collect? - ``` - ohos_prebuilt_etc("feature3_etc") { - source = "src/config.conf" - relative_install_dir = "init" # (Optional) Directory for installing the submodule, which is relative to the default installation directory (/system/etc) - part_name = "partA" - } - ``` +#### Information to Collect - Example 4: Adding the module configuration file **test/examples/ohos.build** to the **ohos.build** file of this subsystem. Each subsystem has an **ohos.build** file in its root directory. Example: +The notice collects only the licenses of the modules packaged in the image. For example, the licenses of the tools (such as Clang, Python, and Ninja) used during the build process are not collected. - ``` - "partA": { - "module_list": [ - "//test/examples/partA/feature1:helloworld_lib", - "//test/examples/partA/feature2:helloworld_bin", - "//test/examples/partA/feature3:feature3_etc", - ], - "inner_kits": [ - - ], - "system_kits": [ - - ], - "test_list": [ - - ] - } - ``` +A static library itself is not packaged. However, if it is packaged into the system as part of a dynamic library or executable file, the license of the static library will be collected for completeness. - The declaration of a module contains the following parts: +The final **Notice.txt** file must include all licenses used by the files in the image and the mapping between modules and licenses. - - **module\_list**: submodule list of the module - - **inner\_kits**: APIs for other modules that depend on this module through **external\_deps** - - **system\_kits**: APIs for developers - - **test\_list**: test cases for the submodules of the module +The **Notice.txt** file is located in the **/system/etc/** directory. -2. Add the module to the product configuration file. +#### Rules for Collecting Information - Add the module to the product configuration file **//vendor/{product_company}/{product-name}/config.json**. +Licenses are collected by priority. - Add "subsystem\_examples:partA" to the product configuration file. **partA** will be built and packaged into the distribution. +1. Licenses that are directly declared in a module's **BUILD.gn** are given the top priority. The following is an example: -3. Build the module. + ``` + ohos_shared_library("example") { + ... + license_file = "path-to-license-file" + ... + } + ``` - For example, run the following command to build hispark_taurus_standard: +2. If there is no explicitly declared license, the build script searches for the **Readme.OpenSource** file in the directory of **BUILD.gn**, parses the file, and collects the obtained licenses. + If the **Readme.OpenSource** file does not contain license information, an error will be reported. - ``` - ./build.sh --product-name hispark_taurus_standard --ccache - ``` +3. If the **Readme.OpenSource** file does not exist, the build script searches for the **License**, **Copyright**, and **Notice** files from the current directory to the root directory of the source code by default. If obtained license information will be used as the licenses of the module. + +4. If no license is found, the default license (Apache License 2.0) will be used. -4. Obtain the build result. +Check items: - Files generated during the build process are stored in the **out/hispark_taurus/** directory, and the generated image is stored in the **out/hispark_taurus/packages/phone/images/** directory. +1. For third-party open-source software, such as OpenSSL and ICU, **Readme.OpenSource** must be configured in the source code directory. Check whether **Readme.OpenSource** is in the same directory as **BUILD.gn** and whether the license configured in **Readme.OpenSource** is valid. +2. If the source code is not licensed under the Apache License 2.0, the corresponding license file must be provided in the source code directory or declared by **license_file** for the module. +3. If the source code file added to **BUILD.gn** is not from the current directory, check whether the license in the repository where the source code file is located is the same as that in the repository of **BUILD.gn**. License inconsistency entails follow-up operations. -- GitLab From c97c80bf107f6311451d365527dc9548964c84de Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 03:10:47 +0000 Subject: [PATCH 470/868] =?UTF-8?q?=E5=90=8C=E6=AD=A5input=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E7=9A=84struct=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/hdi-apis/_device_info.md | 126 ++++-------------- 1 file changed, 25 insertions(+), 101 deletions(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/_device_info.md b/zh-cn/device-dev/reference/hdi-apis/_device_info.md index 592bd0305d..d70dedd180 100644 --- a/zh-cn/device-dev/reference/hdi-apis/_device_info.md +++ b/zh-cn/device-dev/reference/hdi-apis/_device_info.md @@ -1,4 +1,4 @@ -# DeviceInfo +# InputDeviceInfo ## **概述** @@ -15,180 +15,104 @@ | Public 属性 | 描述 | | -------- | -------- | -| [devIndex](#devindex) | 设备索引 | -| [fd](#fd) | 设备对应的文件描述符 | -| [service](#service) | 设备对应的服务 | -| [listener](#listener) | 设备对应的事件监听器 | -| [devType](#devtype) | 设备类型 | -| [powerStatus](#powerstatus) | 电源状态 | +| [devIndex](#devindex) | 设备索引 | +| [devType](#devtype) | 设备类型 | | [chipInfo](#chipinfo) [CHIP_INFO_LEN] | 驱动芯片编码信息 | -| [vendorName](#vendorname) [VENDOR_NAME_LEN] | 模组厂商名 | +| [vendorName](#vendorname) [VENDOR_NAME_LEN] | 模组厂商名 | | [chipName](#chipname) [CHIP_NAME_LEN] | 驱动芯片型号 | -| [devNodePath](#devnodepath) [MAX_NODE_PATH_LEN] | 设备文件路径 | -| [solutionX](#solutionx) | x方向分辨率 | -| [solutionY](#solutiony) | y方向分辨率 | -| [callback](#callback) | 数据上报回调函数 [InputReportEventCb](_input_report_event_cb.md) | +| [attrSet](#attrset)| 设备属性。 | +| [abilitySet](#abilityset)| 设备能力属性。| + ## **详细描述** -input设备基础设备信息 +Input设备基础设备信息。 ## **类成员变量说明** -### callback - - -``` -InputReportEventCb* DeviceInfo::callback -``` - -**描述:** - -数据上报回调函数 [InputReportEventCb](_input_report_event_cb.md) - - ### chipInfo ``` -char DeviceInfo::chipInfo[CHIP_INFO_LEN] +char InputDeviceInfo::chipInfo[CHIP_INFO_LEN] ``` **描述:** -驱动芯片编码信息 +驱动芯片编码信息。 ### chipName ``` -char DeviceInfo::chipName[CHIP_NAME_LEN] +char InputDeviceInfo::chipName[CHIP_NAME_LEN] ``` **描述:** -驱动芯片型号 +驱动芯片型号。 ### devIndex ``` -uint32_t DeviceInfo::devIndex +uint32_t InputDeviceInfo::devIndex ``` **描述:** -设备索引 - - -### devNodePath - - -``` -char DeviceInfo::devNodePath[MAX_NODE_PATH_LEN] -``` - -**描述:** +设备索引。 -设备文件路径 ### devType ``` -uint32_t DeviceInfo::devType -``` - -**描述:** - -设备类型 - - -### fd - - -``` -int32_t DeviceInfo::fd -``` - -**描述:** - -设备对应的文件描述符 - - -### listener - - -``` -void* DeviceInfo::listener -``` - -**描述:** - -设备对应的事件监听器 - - -### powerStatus - - -``` -uint32_t DeviceInfo::powerStatus -``` - -**描述:** - -电源状态 - - -### service - - -``` -void* DeviceInfo::service +uint32_t InputDeviceInfo::devType ``` **描述:** -设备对应的服务 +设备类型。 -### solutionX +### vendorName ``` -uint32_t DeviceInfo::solutionX +char InputDeviceInfo::vendorName[VENDOR_NAME_LEN] ``` **描述:** -x方向分辨率 +模组厂商名。 -### solutionY +### attrSet ``` -uint32_t DeviceInfo::solutionY +InputDevAttr InputDeviceInfo::attrSet ``` **描述:** -y方向分辨率 +设备属性。 -### vendorName +### abilitySet ``` -char DeviceInfo::vendorName[VENDOR_NAME_LEN] +InputDevAbility InputDeviceInfo::abilitySet ``` **描述:** -模组厂商名 +设备能力属性。 \ No newline at end of file -- GitLab From d20708d902e40df3c701519a2f57f4fabc13479c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Thu, 28 Jul 2022 03:19:30 +0000 Subject: [PATCH 471/868] update zh-cn/application-dev/reference/apis/js-apis-data-preferences.md. Signed-off-by: @ge-yafang --- .../application-dev/reference/apis/js-apis-data-preferences.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-preferences.md b/zh-cn/application-dev/reference/apis/js-apis-data-preferences.md index 8ed0dd29df..827571daed 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-data-preferences.md +++ b/zh-cn/application-dev/reference/apis/js-apis-data-preferences.md @@ -681,7 +681,7 @@ data_preferences.getPreferences(this.context, 'mystore', function (err, preferen **系统能力:** SystemCapability.DistributedDataManager.Preferences.Core -| 名称 | 说明 | +| 类型 | 说明 | | -------------- | ------------------------------ | | number | 表示值类型为数字。 | | string | 表示值类型为字符串。 | -- GitLab From a809d4643c8d157ef13d52c1c0955a7fe720dbfc Mon Sep 17 00:00:00 2001 From: realice Date: Thu, 28 Jul 2022 11:22:29 +0800 Subject: [PATCH 472/868] =?UTF-8?q?=E8=B5=84=E6=96=99=EF=BC=9A=E6=88=AA?= =?UTF-8?q?=E5=B1=8F=E7=9B=91=E5=90=AC=E3=80=81=E7=AA=97=E5=8F=A3=E6=88=AA?= =?UTF-8?q?=E5=9B=BE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: realice Change-Id: Iaf510e30c51429647fdf86d62afd90bea7874e82 --- .../reference/apis/js-apis-screenshot.md | 50 +++++---- .../reference/apis/js-apis-window.md | 104 ++++++++++++++++++ 2 files changed, 130 insertions(+), 24 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-screenshot.md b/zh-cn/application-dev/reference/apis/js-apis-screenshot.md index 6871f0ce05..c0126a92a3 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-screenshot.md +++ b/zh-cn/application-dev/reference/apis/js-apis-screenshot.md @@ -68,29 +68,30 @@ save(options?: ScreenshotOptions, callback: AsyncCallback<image.PixelMap>) | 参数名 | 类型 | 必填 | 说明 | | -------- | --------------------------------------- | ---- | ------------------------------------------------------------ | | options | [ScreenshotOptions](#screenshotoptions) | 否 | 该类型的参数包含screenRect,imageSize,rotation, displayId四个参数,可以分别设置这四个参数。 | -| callback | AsyncCallback<image.PixelMap> | 是 | 回调函数。返回一个PixelMap对象。 | +| callback | AsyncCallback<[image.PixelMap](js-apis-image.md#pixelmap7)> | 是 | 回调函数。返回一个PixelMap对象。 | **示例:** ```js - var ScreenshotOptions = { - "screenRect": { - "left": 200, - "top": 100, - "width": 200, - "height": 200}, - "imageSize": { - "width": 300, - "height": 300}, - "rotation": 0, - "displayId": 0 + var screenshotOptions = { + "screenRect": { + "left": 200, + "top": 100, + "width": 200, + "height": 200}, + "imageSize": { + "width": 300, + "height": 300}, + "rotation": 0, + "displayId": 0 }; - screenshot.save(ScreenshotOptions, (err, data) => { - if (err) { - console.error('Failed to save the screenshot. Error: ' + JSON.stringify(err)); - return; - } - console.info('Screenshot saved. Data: ' + JSON.stringify(data)); + screenshot.save(screenshotOptions, (err, pixelMap) => { + if (err) { + console.log('Failed to save screenshot: ' + JSON.stringify(err)); + return; + } + console.log('Succeeded in saving sreenshot. Pixel bytes number: ' + pixelMap.getPixelBytesNumber()); + pixelMap.release(); // PixelMap使用完后及时释放内存 }); ``` @@ -114,12 +115,12 @@ save(options?: ScreenshotOptions): Promise<image.PixelMap> | 类型 | 说明 | | ----------------------------- | ----------------------------------------------- | -| Promise<image.PixelMap> | Promise对象。返回一个PixelMap对象。 | +| Promise<[image.PixelMap](js-apis-image.md#pixelmap7)> | Promise对象。返回一个PixelMap对象。 | **示例:** ```js - var ScreenshotOptions = { + var screenshotOptions = { "screenRect": { "left": 200, "top": 100, @@ -131,10 +132,11 @@ save(options?: ScreenshotOptions): Promise<image.PixelMap> "rotation": 0, "displayId": 0 }; - let promise = screenshot.save(ScreenshotOptions); - promise.then(() => { - console.log('screenshot save success'); + let promise = screenshot.save(screenshotOptions); + promise.then((pixelMap) => { + console.log('Succeeded in saving sreenshot. Pixel bytes number: ' + pixelMap.getPixelBytesNumber()); + pixelMap.release(); // PixelMap使用完后及时释放内存 }).catch((err) => { - console.log('screenshot save fail: ' + JSON.stringify(err)); + console.log('Failed to save screenshot: ' + JSON.stringify(err)); }); ``` diff --git a/zh-cn/application-dev/reference/apis/js-apis-window.md b/zh-cn/application-dev/reference/apis/js-apis-window.md index a4e79f184e..cae0c7d608 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-window.md +++ b/zh-cn/application-dev/reference/apis/js-apis-window.md @@ -1970,6 +1970,57 @@ off(type: 'touchOutside', callback?: Callback<void>): void windowClass.off('touchOutside'); ``` +### on('screenshot')9+ + +on(type: 'screenshot', callback: Callback<void>): void + +开启截屏事件的监听。 + +**系统能力:** SystemCapability.WindowManager.WindowManager.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 监听事件,固定为'screenshot',即截屏事件。 | +| callback | Callback<void> | 是 | 回调函数。发生截屏事件时的回调。 | + +**示例:** + +```js +windowClass.on('screenshot', () => { + console.info('screenshot happened'); +}); +``` + +### off('screenshot')9+ + +off(type: 'screenshot', callback?: Callback<void>): void + +关闭截屏事件的监听。 + +**系统能力:** SystemCapability.WindowManager.WindowManager.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 监听事件,固定为'screenshot',即截屏事件。 | +| callback | Callback<void> | 否 | 回调函数。发生截屏事件时的回调。 | + +**示例:** + +```js +var callback = ()=>{ + console.info('screenshot happened'); +} +windowClass.on('screenshot', callback) +windowClass.off('screenshot', callback) + +// 如果通过on开启多个callback进行监听,同时关闭所有监听: +windowClass.off('screenshot'); +``` + ### isSupportWideGamut8+ isSupportWideGamut(callback: AsyncCallback<boolean>): void @@ -2689,6 +2740,59 @@ promise.then((data)=> { }); ``` +### snapshot9+ + +snapshot(callback: AsyncCallback<image.PixelMap>): void + +获取窗口截图,使用callback异步回调。 + +**系统能力:** SystemCapability.WindowManager.WindowManager.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ----------- | ------------------------- | ---- | -------------------- | +| callback | AsyncCallback<[image.PixelMap](js-apis-image.md#pixelmap7)> | 是 | 回调函数。 | + +**示例:** + +```js +windowClass.snapshot((err, data) => { + if (err.code) { + console.error('Failed to snapshot window. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in snapshotting window. Pixel bytes number: ' + pixelMap.getPixelBytesNumber()); + data.release(); // PixelMap使用完后及时释放内存 +}); +``` + +### snapshot9+ + +snapshot(): Promise<image.PixelMap> + +获取窗口截图,使用Promise异步回调。 + +**系统能力:** SystemCapability.WindowManager.WindowManager.Core + +**返回值:** + +| 类型 | 说明 | +| ------------------- | ------------------------- | +| Promise<[image.PixelMap](js-apis-image.md#pixelmap7)> | Promise对象。返回当前窗口截图。 | + +**示例:** + +```js +let promise = windowClass.snapshot(); +promise.then((pixelMap)=> { + console.info('Succeeded in snapshotting window. Pixel bytes number: ' + pixelMap.getPixelBytesNumber()); + pixelMap.release(); // PixelMap使用完后及时释放内存 +}).catch((err)=>{ + console.error('Failed to snapshot window. Cause:' + JSON.stringify(err)); +}); +``` + ## WindowStageEventType9+ WindowStage生命周期。 -- GitLab From 11b047cd33d5e05c59f95206ba1d4b68aa9c39d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Thu, 28 Jul 2022 03:23:12 +0000 Subject: [PATCH 473/868] update zh-cn/application-dev/reference/apis/js-apis-data-ability.md. Signed-off-by: @ge-yafang --- zh-cn/application-dev/reference/apis/js-apis-data-ability.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-ability.md b/zh-cn/application-dev/reference/apis/js-apis-data-ability.md index aa8b98db48..4f8e0a3e01 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-data-ability.md +++ b/zh-cn/application-dev/reference/apis/js-apis-data-ability.md @@ -789,7 +789,7 @@ notIn(field: string, value: Array<ValueType>): DataAbilityPredicates **系统能力:** SystemCapability.DistributedDataManager.DataShare.Core。 -| 名称 | 说明 | +| 类型 | 说明 | | ------- | -------------------- | | number | 表示值类型为数字。 | | string | 表示值类型为字符。 | -- GitLab From 4d9913bed0d9e56360edcfa1de5a89c595497545 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 28 Jul 2022 03:33:51 +0000 Subject: [PATCH 474/868] update zh-cn/application-dev/reference/apis/js-apis-media.md. Signed-off-by: zengyawen --- zh-cn/application-dev/reference/apis/js-apis-media.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index 88e0e86c69..5882c5475a 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -276,8 +276,8 @@ Codec MIME类型枚举。 | 名称 | 类型 | 可读 | 可写 | 说明 | | ------------------------------- | ----------------------------------- | ---- | ---- | ------------------------------------------------------------ | -| src | string | 是 | 是 | 音频媒体URI,支持当前主流的视频格式(m4a、aac、mp3、ogg、wav)。
**支持路径示例**:
1. fd类型播放:fd://xx
![](figures/zh-cn_image_url.png)
2. http网络播放: http://xx
3. https网络播放: https://xx
4. hls网络播放路径:http://xx或者https://xx
**注意事项**:
**需要权限:** ohos.permission.READ_MEDIA;如果需要使用网络素材,还需要申请ohos.permission.INTERNET。 | -| fdSrc9+ | [AVFileDescriptor](#interruptmode9) | 是 | 是 | 音频媒体文件描述,使用场景:应用中的音频资源被连续存储在同一个文件中。
**使用示例**:
假设一个连续存储的音乐文件:
音乐1(地址偏移:0,字节长度:100)
音乐2(地址偏移:101,字节长度:50)
音乐3(地址偏移:151,字节长度:150)
1. 播放音乐1:AVFileDescriptor { fd = 资源句柄; offset = 0; lengt = 100; }
2. 播放音乐2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }
3. 播放音乐3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }
假设是一个独立的音乐文件: 请使用src=fd://xx
**注意事项**:
**需要权限:** ohos.permission.READ_MEDIA; | +| src | string | 是 | 是 | 音频媒体URI,支持当前主流的视频格式(m4a、aac、mp3、ogg、wav)。
**支持路径示例**:
1. fd类型播放:fd://xx
![](figures/zh-cn_image_url.png)
2. http网络播放: http://xx
3. https网络播放: https://xx
4. hls网络播放路径:http://xx或者https://xx
**需要权限:** ohos.permission.READ_MEDIA;如果需要使用网络素材,还需要申请ohos.permission.INTERNET。 | +| fdSrc9+ | [AVFileDescriptor](#interruptmode9) | 是 | 是 | 音频媒体文件描述,使用场景:应用中的音频资源被连续存储在同一个文件中。
**使用示例**:
假设一个连续存储的音乐文件:
音乐1(地址偏移:0,字节长度:100)
音乐2(地址偏移:101,字节长度:50)
音乐3(地址偏移:151,字节长度:150)
1. 播放音乐1:AVFileDescriptor { fd = 资源句柄; offset = 0; lengt = 100; }
2. 播放音乐2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }
3. 播放音乐3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }
假设是一个独立的音乐文件: 请使用src=fd://xx
**注意事项**:
**需要权限:** ohos.permission.READ_MEDIA | | loop | boolean | 是 | 是 | 音频循环播放属性,设置为'true'表示循环播放。 | | audioInterruptMode9+ | [InterruptMode](#interruptmode9) | 是 | 是 | 音频焦点模型。 | | currentTime | number | 是 | 否 | 音频的当前播放位置,单位为毫秒(ms)。 | @@ -694,8 +694,8 @@ audioPlayer.setVolume(3); //设置volume为无效值,触发'error'事件 | 名称 | 类型 | 可读 | 可写 | 说明 | | ------------------------ | ---------------------------------- | ---- | ---- | ------------------------------------------------------------ | -| url8+ | string | 是 | 是 | 视频媒体URL,支持当前主流的视频格式(mp4、mpeg-ts、webm、mkv)。
**支持路径示例**:
1. fd类型播放:fd://xx
![](figures/zh-cn_image_url.png)
2. http网络播放: http://xx
3. https网络播放: https://xx
4. hls网络播放路径:http://xx或者https://xx
**注意事项**:
**需要权限:** ohos.permission.READ_MEDIA;如果需要使用网络素材,还需要申请ohos.permission.INTERNET。 | -| fdSrc9+ | [AVFileDescriptor](#interruptmode9) | 是 | 是 | 音频媒体文件描述,使用场景:应用中的音频资源被连续存储在同一个文件中。
**使用示例**:
假设一个连续存储的音乐文件:
音乐1(地址偏移:0,字节长度:100)
音乐2(地址偏移:101,字节长度:50)
音乐3(地址偏移:151,字节长度:150)
1. 播放音乐1:AVFileDescriptor { fd = 资源句柄; offset = 0; lengt = 100; }
2. 播放音乐2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }
3. 播放音乐3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }
假设是一个独立的音乐文件: 请使用src=fd://xx
**注意事项**:
**需要权限:** ohos.permission.READ_MEDIA; | +| url8+ | string | 是 | 是 | 视频媒体URL,支持当前主流的视频格式(mp4、mpeg-ts、webm、mkv)。
**支持路径示例**:
1. fd类型播放:fd://xx
![](figures/zh-cn_image_url.png)
2. http网络播放: http://xx
3. https网络播放: https://xx
4. hls网络播放路径:http://xx或者https://xx
**需要权限:** ohos.permission.READ_MEDIA;如果需要使用网络素材,还需要申请ohos.permission.INTERNET。 | +| fdSrc9+ | [AVFileDescriptor](#interruptmode9) | 是 | 是 | 音频媒体文件描述,使用场景:应用中的音频资源被连续存储在同一个文件中。
**使用示例**:
假设一个连续存储的音乐文件:
音乐1(地址偏移:0,字节长度:100)
音乐2(地址偏移:101,字节长度:50)
音乐3(地址偏移:151,字节长度:150)
1. 播放音乐1:AVFileDescriptor { fd = 资源句柄; offset = 0; lengt = 100; }
2. 播放音乐2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }
3. 播放音乐3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }
假设是一个独立的音乐文件: 请使用src=fd://xx
**注意事项**:
**需要权限:** ohos.permission.READ_MEDIA | | loop8+ | boolean | 是 | 是 | 视频循环播放属性,设置为'true'表示循环播放。 | | videoScaleType9+ | [VideoScaleType](#videoscaletype9) | 是 | 是 | 视频缩放模式。 | | audioInterruptMode9+ | [InterruptMode](#interruptmode9) | 是 | 是 | 音频焦点模型。 | @@ -2020,7 +2020,7 @@ prepare(config: VideoRecorderConfig): Promise\; 异步方式进行视频录制的参数设置。通过Promise获取返回值。 -**需要权限:** ohos.permission.MICROPHONE,ohos.permission.CAMERA +**需要权限:** ohos.permission.MICROPHONE **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -- GitLab From e35f5f7afce13d8e97c147564e41bf37fe442063 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 28 Jul 2022 03:35:15 +0000 Subject: [PATCH 475/868] update zh-cn/application-dev/reference/apis/js-apis-media.md. Signed-off-by: zengyawen --- zh-cn/application-dev/reference/apis/js-apis-media.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index 5882c5475a..f8964e2aea 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -1365,7 +1365,7 @@ videoPlayer.setSpeed(speed).then() => { selectBitrate(bitrate:number, callback: AsyncCallback\): void -通过回调方式设置码率,通过[availableBitratesCollect](#on('availableBitratesCollect')9+)获取当前码流支持的Bitrate。 +通过回调方式设置码率,通过[availableBitratesCollect](#onavailablebitratescollect9)获取当前码流支持的Bitrate。 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer @@ -1393,7 +1393,7 @@ videoPlayer.selectBitrate(bitrate, (err, result) => { selectBitrate(bitrate:number): Promise\ -通过Promise方式设置码率,通过[availableBitratesCollect](#on('availableBitratesCollect')9+)获取当前码流支持的Bitrate。 +通过Promise方式设置码率,通过[availableBitratesCollect](#onavailablebitratescollect9)获取当前码流支持的Bitrate。 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -- GitLab From 81432dbfaa31957361e2e9234bc081fee0dbe1f5 Mon Sep 17 00:00:00 2001 From: anyueling Date: Thu, 28 Jul 2022 11:39:23 +0800 Subject: [PATCH 476/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9md=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: anyueling --- .../reference/apis/js-apis-request.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-request.md b/zh-cn/application-dev/reference/apis/js-apis-request.md index e035d2ffaa..c81a137828 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-request.md +++ b/zh-cn/application-dev/reference/apis/js-apis-request.md @@ -341,6 +341,8 @@ remove(callback: AsyncCallback<boolean>): void ## UploadConfig +**需要权限**:ohos.permission.INTERNET + **系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Upload。 | 名称 | 类型 | 必填 | 说明 | @@ -354,7 +356,9 @@ remove(callback: AsyncCallback<boolean>): void ## File -**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Upload。 +**需要权限**:ohos.permission.INTERNET + +**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Download | 名称 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | @@ -366,8 +370,9 @@ remove(callback: AsyncCallback<boolean>): void ## RequestData -**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Upload。 +**需要权限**:ohos.permission.INTERNET +**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Download | 名称 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | name | string | 是 | 表示表单元素的名称。 | @@ -939,6 +944,8 @@ resume(callback: AsyncCallback<void>): void ## DownloadConfig +**需要权限**:ohos.permission.INTERNET + **系统能力**: SystemCapability.MiscServices.Download | 名称 | 类型 | 必填 | 说明 | @@ -955,6 +962,8 @@ resume(callback: AsyncCallback<void>): void ## DownloadInfo7+ +**需要权限**:ohos.permission.INTERNET + **系统能力**: SystemCapability.MiscServices.Download | 名称 | 类型 | 必填 | 说明 | -- GitLab From 8cea6f3752d7367ebecb9f8842123a5d401b5bcc Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Thu, 28 Jul 2022 11:23:47 +0800 Subject: [PATCH 477/868] update docs Signed-off-by: Annie_wang --- .../subsystems/subsys-build-gn-kconfig-visual-config-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/device-dev/subsystems/subsys-build-gn-kconfig-visual-config-guide.md b/en/device-dev/subsystems/subsys-build-gn-kconfig-visual-config-guide.md index b926e59fed..f6f28d7352 100644 --- a/en/device-dev/subsystems/subsys-build-gn-kconfig-visual-config-guide.md +++ b/en/device-dev/subsystems/subsys-build-gn-kconfig-visual-config-guide.md @@ -30,7 +30,7 @@ Kconfig visual configuration has the following advantages: 2. Set up the environment. - The Kconfiglib required for environment configuration has been embedded in the OpenHarmony hb tool. For details about how to install the hb tool, see [Installing hb](../quick-start/quickstart-lite-env-setup.md#installing-hb). + The Kconfiglib required for environment configuration has been embedded in the OpenHarmony hb tool. For details about how to install the hb tool, see [Installing hb](../quick-start/quickstart-lite-env-setup.md). 3. Open the Kconfig configuration interface. -- GitLab From f417c01ff79dd5aadbf91f8cba8bc9de04170bfa Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 28 Jul 2022 03:41:47 +0000 Subject: [PATCH 478/868] update zh-cn/application-dev/reference/apis/js-apis-radio.md. Signed-off-by: zengyawen --- zh-cn/application-dev/reference/apis/js-apis-radio.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-radio.md b/zh-cn/application-dev/reference/apis/js-apis-radio.md index b8665dec70..6e8a6b65b2 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-radio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-radio.md @@ -1886,7 +1886,7 @@ Nr的选择模式。 | 名称 | 类型 | 说明 | | ---------------------- | ------------------------------------------------- | -------------- | | isNetworkSearchSuccess | boolean | 网络搜索成功。 | -| networkSearchResult | Array<[NetworkInformation](#networkInformation)\> | 网络搜索结果。 | +| networkSearchResult | Array<[NetworkInformation](#networkinformation)\> | 网络搜索结果。 | ## NetworkInformation @@ -1900,7 +1900,7 @@ Nr的选择模式。 | --------------- | ----------------------------------------- | -------------- | | operatorName | string | 运营商的名称。 | | operatorNumeric | string | 运营商数字。 | -| state | [NetworkInformation](#networkInformation) | 网络信息状态。 | +| state | [NetworkInformationState](#networkinformationstate) | 网络信息状态。 | | radioTech | string | 无线电技术。 | ## NetworkInformationState -- GitLab From 52d8f85793bd8b15be96590d80bf87bc969bacb5 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 28 Jul 2022 03:42:40 +0000 Subject: [PATCH 479/868] update zh-cn/application-dev/reference/apis/js-apis-call.md. Signed-off-by: zengyawen --- zh-cn/application-dev/reference/apis/js-apis-call.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-call.md b/zh-cn/application-dev/reference/apis/js-apis-call.md index a2a58a10f0..485b10f670 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-call.md +++ b/zh-cn/application-dev/reference/apis/js-apis-call.md @@ -1864,7 +1864,7 @@ promise.then(data => { separateConference\(callId: number, callback: AsyncCallback\): void -断开会议电话。使用callback异步回调。 +分离会议电话。使用callback异步回调。 此接口为系统接口。 @@ -1890,7 +1890,7 @@ call.separateConference(1, (err, data) => { separateConference\(callId: number\): Promise -断开会议电话。使用Promise异步回调。 +分离会议电话。使用Promise异步回调。 此接口为系统接口。 -- GitLab From 6a0e7883ce5acabb3b961976c4f1c84205967a7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Thu, 28 Jul 2022 03:42:45 +0000 Subject: [PATCH 480/868] update zh-cn/application-dev/reference/apis/js-apis-data-rdb.md. Signed-off-by: ge-yafang --- .../reference/apis/js-apis-data-rdb.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md b/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md index ed678b96b9..031eaf5924 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md +++ b/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md @@ -1992,7 +1992,7 @@ try { **系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。 -| 名称 | 说明 | +| 类型 | 说明 | | -------- | -------- | | number | 表示值类型为数字。 | | string | 表示值类型为字符。 | @@ -2001,14 +2001,13 @@ try { ## ValuesBucket -用于存储键值对。 +用于存储键值对的类型。 **系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。 -| 名称 | 参数类型 | 必填 | 说明 | -| -------- | -------- | -------- | -------- | -| [key: string] | [ValueType](#valuetype)\| Uint8Array \| null | 是 | 用于存储键值对。 | - +| 键类型 | 值类型 | +| -------- | -------- | +| string | [ValueType](#valuetype)\| Uint8Array \| null | ## SyncMode8+ -- GitLab From 4a6fb790f7f0d60cb80509af2ba0f0688c1e4903 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Thu, 28 Jul 2022 03:47:09 +0000 Subject: [PATCH 481/868] update zh-cn/application-dev/reference/apis/js-apis-data-ValuesBucket.md. Signed-off-by: @ge-yafang --- .../reference/apis/js-apis-data-ValuesBucket.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-ValuesBucket.md b/zh-cn/application-dev/reference/apis/js-apis-data-ValuesBucket.md index 7190b74c45..a533ef34ce 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-data-ValuesBucket.md +++ b/zh-cn/application-dev/reference/apis/js-apis-data-ValuesBucket.md @@ -20,7 +20,7 @@ import { ValuesBucket } from '@ohos.data.ValuesBucket'; **系统能力:** SystemCapability.DistributedDataManager.DataShare.Core -| 名称 | 说明 | +| 类型 | 说明 | | ------- | -------------------- | | number | 表示字段类型为数字。 | | string | 表示字段类型为字符串。 | @@ -28,11 +28,10 @@ import { ValuesBucket } from '@ohos.data.ValuesBucket'; ## ValuesBucket -该类型用于存储一系列键值对。 +用于存储键值对的类型。 **系统能力:** SystemCapability.DistributedDataManager.DataShare.Core -| 名称 | 参数类型 | 必填 | 说明 | -| ------------- | --------------------------------------------- | ---- | ------------------------------------------------------------ | -| [key: string] | [ValueType](#valuetype)\| Uint8Array \| null | 是 | 键的类型为字符串型;值的类型可以为数字、字符串、布尔值、无符号整型8位数组、空值。 | - +| 键类型 | 值类型 | +| ------------- | --------------------------------------------- | +| string | [ValueType](#valuetype)\| Uint8Array \| null | -- GitLab From 4d6780faef922fd4e26d17c9dc9a801c0ec7b3b5 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 28 Jul 2022 03:49:01 +0000 Subject: [PATCH 482/868] update zh-cn/application-dev/reference/apis/js-apis-sim.md. Signed-off-by: zengyawen --- zh-cn/application-dev/reference/apis/js-apis-sim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-sim.md b/zh-cn/application-dev/reference/apis/js-apis-sim.md index 49a02e0b4d..30ff0f47c3 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-sim.md +++ b/zh-cn/application-dev/reference/apis/js-apis-sim.md @@ -2133,7 +2133,7 @@ getOperatorConfigs(slotId: number): Promise> | 类型 | 说明 | | --------------------------------------------------- | ----------------------------- | -| Promise> | 以Promise形式返回运营商配置。 | +| Promise> | 以Promise形式返回运营商配置。 | **示例:** -- GitLab From 2662931f13f58e57dc6f6fc38987886ec0716dd6 Mon Sep 17 00:00:00 2001 From: anyueling Date: Thu, 28 Jul 2022 11:49:15 +0800 Subject: [PATCH 483/868] =?UTF-8?q?=E4=BF=AE=E6=94=B9md=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: anyueling --- zh-cn/application-dev/reference/apis/js-apis-request.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-request.md b/zh-cn/application-dev/reference/apis/js-apis-request.md index c81a137828..8f614569de 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-request.md +++ b/zh-cn/application-dev/reference/apis/js-apis-request.md @@ -18,7 +18,7 @@ import request from '@ohos.request'; 在开发FA模型下的应用程序时,需要在config.json配置文件中对应用结构进行声明,在config.json文件中增加network标签,属性标识 "cleartextTraffic": true。即: -``` +```js var config = { "deviceConfig": { "default": { -- GitLab From 0cefc41e4e9ab7559929b707b6a88e502dd10d32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Thu, 28 Jul 2022 03:49:34 +0000 Subject: [PATCH 484/868] update zh-cn/application-dev/reference/apis/js-apis-data-storage.md. Signed-off-by: @ge-yafang --- zh-cn/application-dev/reference/apis/js-apis-data-storage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-storage.md b/zh-cn/application-dev/reference/apis/js-apis-data-storage.md index e0e2307ced..bf111b8806 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-data-storage.md +++ b/zh-cn/application-dev/reference/apis/js-apis-data-storage.md @@ -793,7 +793,7 @@ off(type: 'change', callback: Callback<StorageObserver>): void **系统能力:** SystemCapability.DistributedDataManager.Preferences.Core -| 名称 | 说明 | +| 类型 | 说明 | | ------- | -------------------- | | number | 表示值类型为数字。 | | string | 表示值类型为字符。 | -- GitLab From c61be155b07340197b488c4d3296c967f5ee9157 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 28 Jul 2022 03:51:47 +0000 Subject: [PATCH 485/868] update zh-cn/application-dev/reference/apis/js-apis-sim.md. Signed-off-by: zengyawen --- .../reference/apis/js-apis-sim.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-sim.md b/zh-cn/application-dev/reference/apis/js-apis-sim.md index 30ff0f47c3..2b6bd5ab5c 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-sim.md +++ b/zh-cn/application-dev/reference/apis/js-apis-sim.md @@ -2163,7 +2163,7 @@ queryIccDiallingNumbers(slotId: number, type: ContactType, callback: AsyncCallba | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------------------------ | ---- | ---------------------------------------------------------- | | slotId | number | 是 | 卡槽ID。
- 0:卡槽1
- 1:卡槽2 | -| type | ContactType | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | +| type | [ContactType](#contactype8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | | callback | AsyncCallback> | 是 | 回调函数。 | **示例:** @@ -2192,7 +2192,7 @@ queryIccDiallingNumbers(slotId: number, type: ContactType): Promise- 0:卡槽1
- 1:卡槽2 | -| type | ContactType | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | +| type | [ContactType](#contactype8) | 是 | 联系人类型。
1 : GENERAL_CONTACT
2 : FIXED_DIALING | **返回值:** @@ -2829,7 +2829,7 @@ SIM卡状态。 | LOCK_OFF | 0 | 锁关闭状态 | | LOCK_ON | 1 | 锁开启状态 | -## **PersoLockType**8+ +## PersoLockType8+ 定制锁类型。 @@ -2850,7 +2850,7 @@ SIM卡状态。 | SIM_PIN_LOCK | 8 | 定制SIM的PIN锁*(参照 3GPP TS 22.022 [33])* | | SIM_PUK_LOCK | 9 | 定制SIM的PUK锁 | -## **LockStatusResponse**7+ +## LockStatusResponse7+ 锁状态响应。 @@ -2863,7 +2863,7 @@ SIM卡状态。 | result | number | 当前操作的结果 | | remain?: number | number | 剩余次数(可以为空) | -## **LockInfo**8+ +## LockInfo8+ 锁状态响应。 @@ -2877,7 +2877,7 @@ SIM卡状态。 | password | string | 密码 | | state | [LockState](#lockstate8) | 锁状态 | -## **PersoLockInfo**8+ +## PersoLockInfo8+ 锁状态响应。 @@ -2890,7 +2890,7 @@ SIM卡状态。 | lockType | [PersoLockType](#persolocktype8) | 定制锁的类型 | | password | string | 密码 | -## **IccAccountInfo**7+ +## IccAccountInfo7+ Icc账户信息。 @@ -2908,7 +2908,7 @@ Icc账户信息。 | showName | string | SIM卡显示名称 | | showNumber | string | SIM卡显示号码 | -## **OperatorConfig**8+ +## OperatorConfig8+ 运营商配置。 @@ -2921,7 +2921,7 @@ Icc账户信息。 | field | string | 字段 | | value | string | 值 | -## **DiallingNumbersInfo**8+ +## DiallingNumbersInfo8+ 拨号号码信息。 @@ -2936,7 +2936,7 @@ Icc账户信息。 | recordNumber | number | 记录编号 | | pin2 | string | pin2密码 | -## **ContactType**8+ +## ContactType8+ 联系人类型。 -- GitLab From c92fbc28a192063f3494b4be92abc5a77daae210 Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 28 Jul 2022 03:52:47 +0000 Subject: [PATCH 486/868] update zh-cn/application-dev/ui/ui-js-components-canvasrenderingcontext2d.md. Signed-off-by: LiAn --- .../ui/ui-js-components-canvasrenderingcontext2d.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/ui/ui-js-components-canvasrenderingcontext2d.md b/zh-cn/application-dev/ui/ui-js-components-canvasrenderingcontext2d.md index 35e71ec12f..85a737f4d7 100644 --- a/zh-cn/application-dev/ui/ui-js-components-canvasrenderingcontext2d.md +++ b/zh-cn/application-dev/ui/ui-js-components-canvasrenderingcontext2d.md @@ -638,7 +638,7 @@ export default { img.src = 'common/images/2.png'; // 设置图片宽度 img.width= 150; - // 设置图高度 + // 设置图片高度 img.height=150; // 图片平铺容器 var pat = ctx.createPattern(img, 'repeat');ctx.fillStyle = pat; -- GitLab From ded9b38b2d45cb3919af0e759942ad4ca1c90d06 Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 28 Jul 2022 03:53:29 +0000 Subject: [PATCH 487/868] update zh-cn/application-dev/reference/arkui-ts/ts-universal-component-visible-area-change-event.md. Signed-off-by: LiAn --- .../ts-universal-component-visible-area-change-event.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-component-visible-area-change-event.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-component-visible-area-change-event.md index ab6dbb0ceb..7fdd4c2bbf 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-component-visible-area-change-event.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-component-visible-area-change-event.md @@ -2,7 +2,7 @@ 组件可见区域变化事件指组件在屏幕中显示的面积变化,提供了判断组件是否完全或部分显示在屏幕中的能力,通常适用于像广告曝光埋点之类的场景。 -> **说明:**从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 +> **说明:** 从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 ## 权限列表 -- GitLab From 5da51378430a1ed2ec501ad6c92c4d5513409971 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 28 Jul 2022 03:56:22 +0000 Subject: [PATCH 488/868] update zh-cn/application-dev/reference/apis/js-apis-sms.md. Signed-off-by: zengyawen --- zh-cn/application-dev/reference/apis/js-apis-sms.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-sms.md b/zh-cn/application-dev/reference/apis/js-apis-sms.md index 4fd42d04b1..7176a910ed 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-sms.md +++ b/zh-cn/application-dev/reference/apis/js-apis-sms.md @@ -818,7 +818,7 @@ getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean, callback | slotId | number | 是 | SIM卡槽ID:
- 0:卡槽1
- 1:卡槽2 | | message | string | 是 | 消息 | | force7bit | boolean | 是 | 是否使用7bit编码 | -| callback | AsyncCallback<[SmsSegmentsInfo](#<smssegmentsinfo8)> | 是 | 回调函数 | +| callback | AsyncCallback<[SmsSegmentsInfo](#smssegmentsinfo8)> | 是 | 回调函数 | **示例:** @@ -852,7 +852,7 @@ getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean): Promise | 类型 | 说明 | | ------------------------------------------------------- | ----------------------------- | -| Promise<[SmsSegmentsInfo](#<smssegmentsinfo8)> | 以Promise形式返回短信段信息。 | +| Promise<[SmsSegmentsInfo](#smssegmentsinfo8)> | 以Promise形式返回短信段信息。 | **示例:** @@ -1209,7 +1209,7 @@ promise.then(data => { | 参数名 | 类型 | 必填 | 说明 | | ----------- | ------------------------------------------------------------ | ---- | --------- | | messageType | [MessageType](#messagetype8) | 是 | 消息类型 | -| mmsType | [MmsSendReq](#mmssendreq8) \|[MmsSendConf](#mmssendconf8) \|[MmsNotificationInd](#mmsnotificationind8) \|[MmsRespInd](#mmsrespind8) \|[MmsRetrieveConf](#mmsretrieveconf8)\|[MmsAcknowledgeInd](#mmsacknowledgeind8)\|[MmsDeliveryInd](#mmsdeliveryind8)\|[MmsReadOrigInd](#mmsreadorigInd8)\|[MmsReadRecInd](#mmsreadorigind8) | 是 | pdu头类型 | +| mmsType | [MmsSendReq](#mmssendreq8) \|[MmsSendConf](#mmssendconf8) \|[MmsNotificationInd](#mmsnotificationind8) \|[MmsRespInd](#mmsrespind8) \|[MmsRetrieveConf](#mmsretrieveconf8)\|[MmsAcknowledgeInd](#mmsacknowledgeind8)\|[MmsDeliveryInd](#mmsdeliveryind8)\|[MmsReadOrigInd](#mmsreadorigind8)\|[MmsReadRecInd](#mmsreadrecind8) | 是 | pdu头类型 | | attachment | Array<[MmsAttachment](#mmsattachment8)\> | 否 | 附件 | ## MmsSendReq8+ -- GitLab From facf07dfb6fd9d17f9d6db240c5e9c5293bee821 Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 28 Jul 2022 03:56:23 +0000 Subject: [PATCH 489/868] update zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md. Signed-off-by: LiAn --- .../application-dev/reference/apis/js-apis-inputconsumer.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md b/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md index 6ec2d41663..971755d021 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md +++ b/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md @@ -32,7 +32,7 @@ on(type: "key", keyOptions: KeyOptions, callback: Callback<KeyOptions>): v | 参数 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 监听输入事件类型,只支持“key”。 | -| keyOptions | [keyOptions](#keyOptions) | 是 | 组合键选项,用来指定组合键输入时应该符合的条件。 | +| keyOptions | [keyOptions](#keyoptions) | 是 | 组合键选项,用来指定组合键输入时应该符合的条件。 | | callback | Callback<KeyOptions> | 是 | 回调函数。当满足条件的按键输入产生时,回调到此函数,以传入的KeyOptions为入参。 | **示例:** @@ -62,7 +62,7 @@ off(type: "key", keyOptions: KeyOptions, callback?: Callback<KeyOptions>): | 参数 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 监听输入事件类型,只支持“key”。 | -| keyOptions | [keyOptions](#keyOptions) | 是 | 开始监听时传入的keyOptions。 | +| keyOptions | [keyOptions](#keyoptions) | 是 | 开始监听时传入的keyOptions。 | | callback | Callback<KeyOptions> | 是 | 开始监听时与KeyOption一同传入的回调函数 。 | **示例:** @@ -77,7 +77,7 @@ inputConsumer.off('key', keyOptions, callback); ``` -## KeyOption +## KeyOptions 组合键输入事件发生时,组合键满足的选项。 -- GitLab From 50ada2abd254eb50c5767c4f3b39367d933d39e2 Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 28 Jul 2022 03:59:07 +0000 Subject: [PATCH 490/868] update zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md. Signed-off-by: LiAn --- zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md b/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md index 971755d021..2edc2a93ee 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md +++ b/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md @@ -83,7 +83,7 @@ inputConsumer.off('key', keyOptions, callback); 此接口为系统接口。 -**系统能力:**SystemCapability.MultimodalInput.Input.InputConsumer +**系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer | 参数 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | -- GitLab From 969e175ae16985f83408cbdd381b41316ab88601 Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 28 Jul 2022 03:59:45 +0000 Subject: [PATCH 491/868] update zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md. Signed-off-by: LiAn --- zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md b/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md index 2edc2a93ee..7b7acad618 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md +++ b/zh-cn/application-dev/reference/apis/js-apis-inputconsumer.md @@ -2,7 +2,7 @@ InputConsumer模块提供对按键事件的监听。 -> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> **说明:** > > - 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > -- GitLab From ebe58147412f24dfd140131580a984a25110f1b2 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 28 Jul 2022 04:01:43 +0000 Subject: [PATCH 492/868] update zh-cn/application-dev/reference/apis/js-apis-sms.md. Signed-off-by: zengyawen --- zh-cn/application-dev/reference/apis/js-apis-sms.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-sms.md b/zh-cn/application-dev/reference/apis/js-apis-sms.md index 7176a910ed..65468e08ba 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-sms.md +++ b/zh-cn/application-dev/reference/apis/js-apis-sms.md @@ -1307,7 +1307,7 @@ promise.then(data => { | from | [MmsAddress](#mmsaddress8) | 否 | 来源 | | cc | Array<[MmsAddress](#mmsaddress8)\> | 否 | 抄送 | | subject | string | 否 | 主题 | -| priority | [MmsPriorityType](#mmsPrioritytype8) | 否 | 优先级 | +| priority | [MmsPriorityType](#mmsprioritytype8) | 否 | 优先级 | | deliveryReport | number | 否 | 状态报告 | | readReport | number | 否 | 阅读报告 | | retrieveStatus | number | 否 | 检索状态 | -- GitLab From ecd68d114ac719d864e549158e6ea952525b79a3 Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 28 Jul 2022 04:03:23 +0000 Subject: [PATCH 493/868] update zh-cn/application-dev/reference/apis/js-apis-inputdevice.md. Signed-off-by: LiAn --- .../reference/apis/js-apis-inputdevice.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-inputdevice.md b/zh-cn/application-dev/reference/apis/js-apis-inputdevice.md index 74d20ddb54..5e62f5e143 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-inputdevice.md +++ b/zh-cn/application-dev/reference/apis/js-apis-inputdevice.md @@ -4,7 +4,8 @@ 输入设备管理模块,用于监听输入设备连接、断开和变化,并查看输入设备相关信息。比如监听鼠标插拔,并获取鼠标的id、name和指针移动速度等信息。 -> **说明**:
+> **说明**: +> > 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 @@ -28,7 +29,7 @@ on(type: “change”, listener: Callback<DeviceListener>): void | 参数 | 类型 | 必填 | 说明 | | -------- | ---------------------------------------- | ---- | ----------- | | type | string | 是 | 输入设备的事件类型。 | -| listener | Callback<[DeviceListener](#devicelistener9+)> | 是 | 可上报的输入设备事件。 | +| listener | Callback<[DeviceListener](#devicelistener9)> | 是 | 可上报的输入设备事件。 | **示例**: @@ -63,7 +64,7 @@ off(type: “change”, listener?: Callback<DeviceListener>): void | 参数 | 类型 | 必填 | 说明 | | -------- | ---------------------------------------- | ---- | ----------- | | type | string | 是 | 输入设备的事件类型。 | -| listener | Callback<[DeviceListener](#devicelistener9+)> | 否 | 可上报的输入设备事件。 | +| listener | Callback<[DeviceListener](#devicelistener9)> | 否 | 可上报的输入设备事件。 | **示例**: @@ -358,7 +359,7 @@ inputDevice.getKeyboardType(1).then((ret)=>{ | touchpad | string | 表示输入设备是触摸板。 | | joystick | string | 表示输入设备是操纵杆。 | -## ChangeType +## ChangedType 定义监听设备热插拔事件。 -- GitLab From 0e47e7bf4a28045b82874538620268f7113c8f11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E6=A0=B9=E5=A0=82?= Date: Thu, 28 Jul 2022 04:16:45 +0000 Subject: [PATCH 494/868] Signed-off-by: 18392170496 --- .../reference/apis/js-apis-rpc.md | 193 ++++++++++++++++-- 1 file changed, 178 insertions(+), 15 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-rpc.md b/zh-cn/application-dev/reference/apis/js-apis-rpc.md index 2456ffa333..2fdf3ab5bf 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-rpc.md +++ b/zh-cn/application-dev/reference/apis/js-apis-rpc.md @@ -1322,7 +1322,7 @@ writeFloatArray(floatArray: number[]): boolean **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | - | floatArray | number[] | 是 | 要写入的浮点数组。 | + | floatArray | number[] | 是 | 要写入的浮点数组。由于系统内部对float类型的数据是按照double处理的,使用时对于数组所占的总字节数应按照double类型来计算。 | **返回值:** | 类型 | 说明 | @@ -1349,7 +1349,7 @@ readFloatArray(dataIn: number[]) : void **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | - | dataIn | number[] | 是 | 要读取的浮点数组。 | + | dataIn | number[] | 是 | 要读取的浮点数组。由于系统内部对float类型的数据是按照double处理的,使用时对于数组所占的总字节数应按照double类型来计算。 | **示例:** @@ -1764,20 +1764,20 @@ readException(): void let reply = rpc.MessageParcel.create(); data.writeInt(1); data.writeString("hello"); - proxy.sendRequest(1, data, reply, option) + proxy.sendRequestAsync(1, data, reply, option) .then(function(errCode) { if (errCode === 0) { - console.log("sendRequest got result"); + console.log("sendRequestAsync got result"); reply.readException(); let msg = reply.readString(); console.log("RPCTest: reply msg: " + msg); } else { - console.log("RPCTest: sendRequest failed, errCode: " + errCode); + console.log("RPCTest: sendRequestAsync failed, errCode: " + errCode); } }).catch(function(e) { - console.log("RPCTest: sendRequest got exception: " + e.message); + console.log("RPCTest: sendRequestAsync got exception: " + e.message); }).finally (() => { - console.log("RPCTest: sendRequest ends, reclaim parcel"); + console.log("RPCTest: sendRequestAsync ends, reclaim parcel"); data.reclaim(); reply.reclaim(); }); @@ -2504,7 +2504,7 @@ queryLocalInterface(descriptor: string): IRemoteBroker ### sendRequest(deprecated) > **说明:** -> 从 API Version 8 开始废弃,建议使用[sendRequest8+](#sendrequest8)替代。 +> 从 API Version 8 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9)替代。 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): boolean @@ -2526,7 +2526,10 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options | boolean | 返回一个布尔值,true表示成功,false表示失败。| -### sendRequest8+ +### sendRequest8+(deprecated) + +> **说明:** +> 从 API Version 9 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9)替代。 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise<SendRequestResult> @@ -2534,6 +2537,27 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options **系统能力**:SystemCapability.Communication.IPC.Core +**参数:** + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | code | number | 是 | 本次请求调用的消息码,由通信双方确定。如果接口由IDL工具生成,则消息代码由IDL自动生成。 | + | data | [MessageParcel](#messageparcel) | 是 | 保存待发送数据的 MessageParcel对象。 | + | reply | [MessageParcel](#messageparcel) | 是 | 接收应答数据的MessageParcel对象。 | + | options | [MessageOption](#messageoption) | 是 | 本次请求的同异步模式,默认同步调用。 | + +**返回值:** + | 类型 | 说明 | + | -------- | -------- | + | Promise<SendRequestResult> | 返回一个期约,兑现值是sendRequestResult实例。| + +### sendRequestAsync9+ + +sendRequestAsync(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise<SendRequestResult> + +以同步或异步方式向对端进程发送MessageParcel消息。如果为选项设置了异步模式,则期约立即兑现,reply报文里没有内容。如果为选项设置了同步模式,则期约将在sendRequestAsync返回时兑现,回复内容在reply报文里。 + +**系统能力**:SystemCapability.Communication.IPC.Core + **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | @@ -2653,7 +2677,7 @@ isObjectDead(): boolean ### sendRequest(deprecated) > **说明:** -> 从 API Version 8 开始废弃,建议使用[sendRequest8+](#sendrequest8-2)替代。 +> 从 API Version 8 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9-2)替代。 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): boolean @@ -2715,7 +2739,10 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options reply.reclaim(); ``` -### sendRequest8+ +### sendRequest8+(deprecated) + +> **说明:** +> 从 API Version 9 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9-2)替代。 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise<SendRequestResult> @@ -2782,6 +2809,72 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options }); ``` +### sendRequestAsync9+ + +sendRequestAsync(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise<SendRequestResult> + +以同步或异步方式向对端进程发送MessageParcel消息。如果为选项设置了异步模式,则期约立即兑现,reply报文里没有内容。如果为选项设置了同步模式,则期约将在sendRequestAsync返回时兑现,回复内容在reply报文里。 + +**系统能力**:SystemCapability.Communication.IPC.Core + +**参数:** + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | code | number | 是 | 本次请求调用的消息码,由通信双方确定。如果接口由IDL工具生成,则消息代码由IDL自动生成。 | + | data | [MessageParcel](#messageparcel) | 是 | 保存待发送数据的 MessageParcel对象。 | + | reply | [MessageParcel](#messageparcel) | 是 | 接收应答数据的MessageParcel对象。 | + | options | [MessageOption](#messageoption) | 是 | 本次请求的同异步模式,默认同步调用。 | + +**返回值:** + | 类型 | 说明 | + | -------- | -------- | + | Promise<SendRequestResult> | 返回一个期约,兑现值是sendRequestResult实例。| + +**示例:** + + ``` + import FA from "@ohos.ability.featureAbility"; + let proxy; + let connect = { + onConnect: function(elementName, remoteProxy) { + console.log("RpcClient: js onConnect called."); + proxy = remoteProxy; + }, + onDisconnect: function(elementName) { + console.log("RpcClient: onDisconnect"); + }, + onFailed: function() { + console.log("RpcClient: onFailed"); + } + }; + let want = { + "bundleName": "com.ohos.server", + "abilityName": "com.ohos.server.MainAbility", + }; + FA.connectAbility(want, connect); + let option = new rpc.MessageOption(); + let data = rpc.MessageParcel.create(); + let reply = rpc.MessageParcel.create(); + data.writeInt(1); + data.writeString("hello"); + proxy.sendRequestAsync(1, data, reply, option) + .then(function(result) { + if (result.errCode === 0) { + console.log("sendRequestAsync got result"); + result.reply.readException(); + let msg = result.reply.readString(); + console.log("RPCTest: reply msg: " + msg); + } else { + console.log("RPCTest: sendRequestAsync failed, errCode: " + result.errCode); + } + }).catch(function(e) { + console.log("RPCTest: sendRequestAsync got exception: " + e.message); + }).finally (() => { + console.log("RPCTest: sendRequestAsync ends, reclaim parcel"); + data.reclaim(); + reply.reclaim(); + }); + ``` ### sendRequest8+ @@ -3082,7 +3175,7 @@ isObjectDead(): boolean | -------- | -------- | -------- | | TF_SYNC | 0 | 同步调用。 | | TF_ASYNC | 1 | 异步调用。 | -| TF_ACCEPT_FDS | 0x10 | 指示[sendRequest](#sendrequest8)接口可以返回文件描述符。 | +| TF_ACCEPT_FDS | 0x10 | 指示[sendRequestAsync](#sendrequestAsync)接口可以返回文件描述符。 | | TF_WAIT_TIME | 8 | 等待时间。单位秒。 | @@ -3471,7 +3564,7 @@ RemoteObject构造函数。 ### sendRequest(deprecated) > **说明:** -> 从 API Version 8 开始废弃,建议使用[sendRequest8+](#sendrequest8-4)替代。 +> 从 API Version 8 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9-4)替代。 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): boolean @@ -3535,7 +3628,10 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options ``` -### sendRequest8+ +### sendRequest8+(deprecated) + +> **说明:** +> 从 API Version 9 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9-3)替代。 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise<SendRequestResult> @@ -3604,6 +3700,73 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options }); ``` +### sendRequestAsync9+ + +sendRequestAsync(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise<SendRequestResult> + +以同步或异步方式向对端进程发送MessageParcel消息。如果为选项设置了异步模式,则期约立即兑现,reply报文里没有内容。如果为选项设置了同步模式,则期约将在sendRequestAsync返回时兑现,回复内容在reply报文里。 + +**系统能力**:SystemCapability.Communication.IPC.Core + +**参数:** + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | code | number | 是 | 本次请求调用的消息码,由通信双方确定。如果接口由IDL工具生成,则消息代码由IDL自动生成。 | + | data | [MessageParcel](#messageparcel) | 是 | 保存待发送数据的 MessageParcel对象。 | + | reply | [MessageParcel](#messageparcel) | 是 | 接收应答数据的MessageParcel对象。 | + | options | [MessageOption](#messageoption) | 是 | 本次请求的同异步模式,默认同步调用。 | + +**返回值:** + | 类型 | 说明 | + | -------- | -------- | + | Promise<SendRequestResult> | 返回一个期约,兑现值是sendRequestResult实例。| + +**示例:** + + ``` + class MyDeathRecipient { + onRemoteDied() { + console.log("server died"); + } + } + class TestRemoteObject extends rpc.RemoteObject { + constructor(descriptor) { + super(descriptor); + } + addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean { + return true; + } + removeDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean { + return true; + } + isObjectDead(): boolean { + return false; + } + } + let testRemoteObject = new TestRemoteObject("testObject"); + let option = new rpc.MessageOption(); + let data = rpc.MessageParcel.create(); + let reply = rpc.MessageParcel.create(); + data.writeInt(1); + data.writeString("hello"); + testRemoteObject.sendRequestAsync(1, data, reply, option) + .then(function(result) { + if (result.errCode === 0) { + console.log("sendRequestAsync got result"); + result.reply.readException(); + let msg = result.reply.readString(); + console.log("RPCTest: reply msg: " + msg); + } else { + console.log("RPCTest: sendRequestAsync failed, errCode: " + result.errCode); + } + }).catch(function(e) { + console.log("RPCTest: sendRequestAsync got exception: " + e.message); + }).finally (() => { + console.log("RPCTest: sendRequestAsync ends, reclaim parcel"); + data.reclaim(); + reply.reclaim(); + }); + ``` ### sendRequest8+ @@ -3672,7 +3835,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me onRemoteRequest(code : number, data : MessageParcel, reply: MessageParcel, options : MessageOption): boolean -sendRequest请求的响应处理函数,服务端在该函数里处理请求,回复结果。 +sendRequestAsync请求的响应处理函数,服务端在该函数里处理请求,回复结果。 **系统能力**:SystemCapability.Communication.IPC.Core -- GitLab From 9dcffd77100f6b1ce6c835a3debb32509b841c48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E6=A0=B9=E5=A0=82?= Date: Thu, 28 Jul 2022 04:21:43 +0000 Subject: [PATCH 495/868] update zh-cn/application-dev/reference/apis/js-apis-rpc.md. Signed-off-by: 18392170496 --- zh-cn/application-dev/reference/apis/js-apis-rpc.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-rpc.md b/zh-cn/application-dev/reference/apis/js-apis-rpc.md index 2fdf3ab5bf..bdc3936461 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-rpc.md +++ b/zh-cn/application-dev/reference/apis/js-apis-rpc.md @@ -2677,7 +2677,7 @@ isObjectDead(): boolean ### sendRequest(deprecated) > **说明:** -> 从 API Version 8 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9-2)替代。 +> 从 API Version 8 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9)替代。 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): boolean @@ -2742,7 +2742,7 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options ### sendRequest8+(deprecated) > **说明:** -> 从 API Version 9 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9-2)替代。 +> 从 API Version 9 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9)替代。 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise<SendRequestResult> @@ -3564,7 +3564,7 @@ RemoteObject构造函数。 ### sendRequest(deprecated) > **说明:** -> 从 API Version 8 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9-4)替代。 +> 从 API Version 8 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9)替代。 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): boolean @@ -3631,7 +3631,7 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options ### sendRequest8+(deprecated) > **说明:** -> 从 API Version 9 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9-3)替代。 +> 从 API Version 9 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9)替代。 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise<SendRequestResult> -- GitLab From 1d0ebfb9c83da5f1be06dc6eaf65bbbe7a91134f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E6=A0=B9=E5=A0=82?= Date: Thu, 28 Jul 2022 04:23:43 +0000 Subject: [PATCH 496/868] update zh-cn/application-dev/reference/apis/js-apis-rpc.md. Signed-off-by: 18392170496 --- zh-cn/application-dev/reference/apis/js-apis-rpc.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-rpc.md b/zh-cn/application-dev/reference/apis/js-apis-rpc.md index bdc3936461..a73587f884 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-rpc.md +++ b/zh-cn/application-dev/reference/apis/js-apis-rpc.md @@ -2677,7 +2677,7 @@ isObjectDead(): boolean ### sendRequest(deprecated) > **说明:** -> 从 API Version 8 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9)替代。 +> 从 API Version 8 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9-1)替代。 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): boolean @@ -2742,7 +2742,7 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options ### sendRequest8+(deprecated) > **说明:** -> 从 API Version 9 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9)替代。 +> 从 API Version 9 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9-1)替代。 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise<SendRequestResult> @@ -3564,7 +3564,7 @@ RemoteObject构造函数。 ### sendRequest(deprecated) > **说明:** -> 从 API Version 8 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9)替代。 +> 从 API Version 8 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9-2)替代。 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): boolean @@ -3631,7 +3631,7 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options ### sendRequest8+(deprecated) > **说明:** -> 从 API Version 9 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9)替代。 +> 从 API Version 9 开始废弃,建议使用[sendRequestAsync9+](#sendrequestasync9-2)替代。 sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise<SendRequestResult> -- GitLab From 1dd352b945224c8880af7a01980ab4837f7cf49a Mon Sep 17 00:00:00 2001 From: HYC <11385689+he-yingchuan@user.noreply.gitee.com> Date: Thu, 28 Jul 2022 06:12:14 +0000 Subject: [PATCH 497/868] update zh-cn/application-dev/reference/apis/js-apis-http.md. Signed-off-by: he-yingchuan <1639512223@qq.com> --- .../reference/apis/js-apis-http.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-http.md b/zh-cn/application-dev/reference/apis/js-apis-http.md index 33f83d33ea..54875254f1 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-http.md +++ b/zh-cn/application-dev/reference/apis/js-apis-http.md @@ -1,6 +1,6 @@ # 数据请求 -本模块提供http数据请求能力。应用可以通过HTTP发起一个数据请求,支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。 +本模块提供HTTP数据请求能力。应用可以通过HTTP发起一个数据请求,支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。 >**说明:** > @@ -18,15 +18,15 @@ import http from '@ohos.net.http'; ```js import http from '@ohos.net.http'; -// 每一个httpRequest对应一个http请求任务,不可复用 +// 每一个httpRequest对应一个HTTP请求任务,不可复用 let httpRequest = http.createHttp(); -// 用于订阅http响应头,此接口会比request请求先返回。可以根据业务需要订阅此消息 +// 用于订阅HTTP响应头,此接口会比request请求先返回。可以根据业务需要订阅此消息 // 从API 8开始,使用on('headersReceive', Callback)替代on('headerReceive', AsyncCallback)。 8+ httpRequest.on('headersReceive', (header) => { console.info('header: ' + JSON.stringify(header)); }); httpRequest.request( - // 填写http请求的url地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定 + // 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定 "EXAMPLE_URL", { method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET @@ -38,14 +38,14 @@ httpRequest.request( extraData: { "data": "data to send", }, - connectTimeout: 60000, // 可选,默认为60s - readTimeout: 60000, // 可选,默认为60s + connectTimeout: 60000, // 可选,默认为60000ms + readTimeout: 60000, // 可选,默认为60000ms }, (err, data) => { if (!err) { - // data.result为http响应内容,可根据业务需要进行解析 + // data.result为HTTP响应内容,可根据业务需要进行解析 console.info('Result:' + data.result); console.info('code:' + data.responseCode); - // data.header为http响应头,可根据业务需要进行解析 + // data.header为HTTP响应头,可根据业务需要进行解析 console.info('header:' + JSON.stringify(data.header)); console.info('cookies:' + data.cookies); // 8+ } else { @@ -61,7 +61,7 @@ httpRequest.request( createHttp\(\): HttpRequest -创建一个http,里面包括发起请求、中断请求、订阅/取消订阅HTTP Response Header 事件。每一个HttpRequest对象对应一个Http请求。如需发起多个Http请求,须为每个Http请求创建对应HttpRequest对象。 +创建一个HTTP请求,里面包括发起请求、中断请求、订阅/取消订阅HTTP Response Header事件。每一个HttpRequest对象对应一个HTTP请求。如需发起多个HTTP请求,须为每个HTTP请求创建对应HttpRequest对象。 **系统能力**:SystemCapability.Communication.NetStack @@ -81,7 +81,7 @@ let httpRequest = http.createHttp(); ## HttpRequest -http请求任务。在调用HttpRequest的方法前,需要先通过[createHttp\(\)](#httpcreatehttp)创建一个任务。 +HTTP请求任务。在调用HttpRequest的方法前,需要先通过[createHttp\(\)](#httpcreatehttp)创建一个任务。 ### request @@ -432,9 +432,9 @@ request方法回调函数的返回值类型。 | 参数名 | 类型 | 必填 | 说明 | | -------------------- | -------------------------------------------- | ---- | ------------------------------------------------------------ | -| result | string \| Object \| ArrayBuffer8+ | 是 | Http请求根据响应头中Content-type类型返回对应的响应格式内容:
- application/json:返回JSON格式的字符串,如需Http响应具体内容,需开发者自行解析
- application/octet-stream:ArrayBuffer
- 其他:string | +| result | string \| Object \| ArrayBuffer8+ | 是 | HTTP请求根据响应头中Content-type类型返回对应的响应格式内容:
- application/json:返回JSON格式的字符串,如需HTTP响应具体内容,需开发者自行解析
- application/octet-stream:ArrayBuffer
- 其他:string | | responseCode | [ResponseCode](#responsecode) \| number | 是 | 回调函数执行成功时,此字段为[ResponseCode](#responsecode)。若执行失败,错误码将会从AsyncCallback中的err字段返回。错误码参考[Response错误码](#response常用错误码)。 | -| header | Object | 是 | 发起http请求返回来的响应头。当前返回的是JSON格式字符串,如需具体字段内容,需开发者自行解析。常见字段及解析方式如下:
- Content-Type:header['Content-Type'];
- Status-Line:header['Status-Line'];
- Date:header.Date/header['Date'];
- Server:header.Server/header['Server']; | +| header | Object | 是 | 发起HTTP请求返回来的响应头。当前返回的是JSON格式字符串,如需具体字段内容,需开发者自行解析。常见字段及解析方式如下:
- Content-Type:header['Content-Type'];
- Status-Line:header['Status-Line'];
- Date:header.Date/header['Date'];
- Server:header.Server/header['Server']; | | cookies8+ | Array\ | 是 | 服务器返回的 cookies。 | ## Response常用错误码 -- GitLab From 4f76f7287a38a04d038bc18335bd2cc7981fcb42 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 28 Jul 2022 06:25:46 +0000 Subject: [PATCH 498/868] update zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md. Signed-off-by: zengyawen --- .../reference/apis/js-apis-abilityAccessCtrl.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md b/zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md index af042fbd6f..122835b12e 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md +++ b/zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md @@ -104,7 +104,7 @@ grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFl 授予应用user grant权限,使用Promise方式异步返回结果。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **需要权限:** ohos.permission.GRANT_SENSITIVE_PERMISSIONS @@ -142,7 +142,7 @@ grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFl 授予应用user grant权限,使用callback回调异步返回结果。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **需要权限:** ohos.permission.GRANT_SENSITIVE_PERMISSIONS @@ -178,7 +178,7 @@ revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionF 撤销应用user grant权限,使用Promise方式异步返回结果。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **需要权限:** ohos.permission.REVOKE_SENSITIVE_PERMISSIONS @@ -216,7 +216,7 @@ revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionF 撤销应用user grant权限,使用callback回调异步返回结果。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **需要权限:** ohos.permission.REVOKE_SENSITIVE_PERMISSIONS @@ -252,7 +252,7 @@ getPermissionFlags(tokenID: number, permissionName: string): Promise<number&g 获取指定应用的指定权限的flag,使用Promise方式异步返回结果。 -此接口为系统接口,三方应用不支持调用。 +此接口为系统接口。 **需要权限:** ohos.permission.GET_SENSITIVE_PERMISSIONS or ohos.permission.GRANT_SENSITIVE_PERMISSIONS or ohos.permission.REVOKE_SENSITIVE_PERMISSIONS -- GitLab From 62dc00b9c004ecf51766883d232f34cb7e900cc1 Mon Sep 17 00:00:00 2001 From: zhangxiuping Date: Thu, 28 Jul 2022 12:23:28 +0800 Subject: [PATCH 499/868] fix the version error of some interfaces under path zh-cn/application-dev/reference/apis Signed-off-by: zhangxiuping --- zh-cn/application-dev/reference/apis/js-apis-cardEmulation.md | 2 +- zh-cn/application-dev/reference/apis/js-apis-nfcController.md | 2 +- zh-cn/application-dev/reference/apis/js-apis-nfcTag.md | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-cardEmulation.md b/zh-cn/application-dev/reference/apis/js-apis-cardEmulation.md index 26d43c3715..298ebd4784 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-cardEmulation.md +++ b/zh-cn/application-dev/reference/apis/js-apis-cardEmulation.md @@ -3,7 +3,7 @@ 本模块主要用于操作及管理NFC卡模拟。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** -> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 ## 导入模块 diff --git a/zh-cn/application-dev/reference/apis/js-apis-nfcController.md b/zh-cn/application-dev/reference/apis/js-apis-nfcController.md index 4f07a3ff32..3c5f93e921 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-nfcController.md +++ b/zh-cn/application-dev/reference/apis/js-apis-nfcController.md @@ -3,7 +3,7 @@ 本模块主要用于操作及管理NFC。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** -> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 ## **导入模块** diff --git a/zh-cn/application-dev/reference/apis/js-apis-nfcTag.md b/zh-cn/application-dev/reference/apis/js-apis-nfcTag.md index 87fc40e695..1bdfb12782 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-nfcTag.md +++ b/zh-cn/application-dev/reference/apis/js-apis-nfcTag.md @@ -3,7 +3,7 @@ 本模块主要用于操作及管理NFC Tag。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** -> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 ## **导入模块** @@ -75,4 +75,4 @@ getNfcVTag(tagInfo: TagInfo): NfcVTag | **类型** | **说明** | | -------- | ---------------- | -| NfcVTag | NFC V类型Tag对象 | \ No newline at end of file +| NfcVTag | NFC V类型Tag对象 | -- GitLab From 6295c626bbba0831966b6162e10c16dfb1a97c07 Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Thu, 28 Jul 2022 14:30:42 +0800 Subject: [PATCH 500/868] =?UTF-8?q?=E8=A1=A5=E5=85=85HDI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: duangavin123 --- .../reference/hdi-apis/_input_dev_ability.md | 196 ++++++++++++++++++ .../reference/hdi-apis/_input_dev_attr.md | 58 ++++++ .../reference/hdi-apis/_input_dev_desc.md | 51 +++++ .../reference/hdi-apis/_input_dev_identify.md | 69 ++++++ .../hdi-apis/_input_dimension_info.md | 91 ++++++++ .../reference/hdi-apis/_input_host_cb.md | 44 ++++ .../hdi-apis/_input_hotplug_event.md | 66 ++++++ 7 files changed, 575 insertions(+) create mode 100644 zh-cn/device-dev/reference/hdi-apis/_input_dev_ability.md create mode 100644 zh-cn/device-dev/reference/hdi-apis/_input_dev_attr.md create mode 100644 zh-cn/device-dev/reference/hdi-apis/_input_dev_desc.md create mode 100644 zh-cn/device-dev/reference/hdi-apis/_input_dev_identify.md create mode 100644 zh-cn/device-dev/reference/hdi-apis/_input_dimension_info.md create mode 100644 zh-cn/device-dev/reference/hdi-apis/_input_host_cb.md create mode 100644 zh-cn/device-dev/reference/hdi-apis/_input_hotplug_event.md diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_dev_ability.md b/zh-cn/device-dev/reference/hdi-apis/_input_dev_ability.md new file mode 100644 index 0000000000..d7ec4c6686 --- /dev/null +++ b/zh-cn/device-dev/reference/hdi-apis/_input_dev_ability.md @@ -0,0 +1,196 @@ +# InputDevAbility + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [devProp](#devprop) | 设备属性 | +| [eventType](#eventtype) | 记录支持的事件类型的位图 | +| [absCode](#abscode) | 记录支持的绝对坐标的位图 | +| [relCode](#relcode) | 记录支持的相对坐标的位图 | +| [keyCode](#keycode) | 记录支持的按键值的位图 | +| [ledCode](#ledcode) | 记录设备支持的指示灯的位图 | +| [miscCode](misccode#) |记录设备支持的其他功能的位图 | +| [soundCode](#soundcode) | 记录设备支持的声音或警报的位图 | +| [forceCode](#forcecode) | 记录设备支持的作用力功能的位图 | +| [switchCode](#switchcode) | 记录设备支持的开关功能的位图 | +| [keyType](#keytype) | 按键状态的位图 | +| [ledType](#ledtype) | LED状态的位图 | +| [soundType](#soundtype) | 声音状态的位图 | +| [switchType](#switchtype) | 开关状态的位图 | + +## **详细描述** + +Input设备的能力属性,存储支持事件的位图。用位的方式来表示该Input设备能够上报的事件类型。 + + +## **类成员变量说明** + + +### devProp + + +``` +uint64_t InputDevAbility::devProp[BITS_TO_UINT64(INPUT_PROP_CNT)] +``` + +**描述:** + +设备属性。 + + +### eventType + + +``` +uint64_t InputDevAbility::eventType[BITS_TO_UINT64(EV_CNT)] +``` + +**描述:** + +用于记录支持的事件类型的位图。 + +### absCode + + +``` +uint64_t InputDevAbility::absCode[BITS_TO_UINT64(ABS_CNT)] +``` + +**描述:** + +记录支持的绝对坐标的位图。 + +### relCode + + +``` +uint64_t InputDevAbility::relCode[BITS_TO_UINT64(REL_CNT)] +``` + +**描述:** + +记录支持的相对坐标的位图。 + +### keyCode + + +``` +uint64_t InputDevAbility::keyCode[BITS_TO_UINT64(KEY_CNT)] +``` + +**描述:** + +记录支持的按键值的位图。 + + +### ledCode + + +``` +uint64_t InputDevAbility::ledCode[BITS_TO_UINT64(LED_CNT)] +``` + +**描述:** + +记录设备支持的指示灯的位图。 + + +### miscCode + + +``` +uint64_t InputDevAbility::miscCode[BITS_TO_UINT64(MSC_CNT)] +``` + +**描述:** + +记录设备支持的其他功能的位图。 + + +### soundCode + + +``` +uint64_t InputDevAbility::soundCode[BITS_TO_UINT64(SND_CNT)] +``` + +**描述:** + +记录设备支持的声音或警报的位图。 + + +### forceCode + +``` +uint64_t InputDevAbility::forceCode[BITS_TO_UINT64(HDF_FF_CNT)] +``` + +**描述:** + +记录设备支持的作用力功能的位图。 + + +### switchCode + +``` +uint64_t InputDevAbility::switchCode[BITS_TO_UINT64(SW_CNT)] +``` + +**描述:** + +记录设备支持的开关功能的位图。 + + +### keyType + +``` +uint64_t InputDevAbility::keyType[BITS_TO_UINT64(KEY_CNT)] +``` + +**描述:** + +按键状态的位图。 + + +### ledType + +``` +uint64_t InputDevAbility::ledType[BITS_TO_UINT64(LED_CNT)] +``` + +**描述:** + +LED状态的位图。 + +### soundType + +``` +uint64_t InputDevAbility::soundType[BITS_TO_UINT64(SND_CNT)] +``` + +**描述:** + +声音状态的位图。 + +### switchType + +``` +uint64_t InputDevAbility::switchType[BITS_TO_UINT64(SW_CNT)] +``` + +**描述:** + +开关状态的位图。 + diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_dev_attr.md b/zh-cn/device-dev/reference/hdi-apis/_input_dev_attr.md new file mode 100644 index 0000000000..d6dcb2b379 --- /dev/null +++ b/zh-cn/device-dev/reference/hdi-apis/_input_dev_attr.md @@ -0,0 +1,58 @@ +# InputDevAttr + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [devName](#devname) | 设备名 | +| [id](#id) | 设备识别信息 | +| [axisInfo](#axisinfo) | 设备维度信息 | + +## **详细描述** + +Input设备属性。 + + +## **类成员变量说明** + + +### devName + +``` +char InputDevAttr::devName[DEV_NAME_LEN] +``` + +**描述:** + +设备名。 + +### id + +``` +InputDevIdentify InputDevAttr::id +``` + +**描述:** + +设备识别信息。 + +### axisInfo + +``` +InputDimensionInfo InputDevAttr::axisInfo[ABS_CNT]; +``` + +**描述:** + +设备维度信息。 \ No newline at end of file diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_dev_desc.md b/zh-cn/device-dev/reference/hdi-apis/_input_dev_desc.md new file mode 100644 index 0000000000..5950fca754 --- /dev/null +++ b/zh-cn/device-dev/reference/hdi-apis/_input_dev_desc.md @@ -0,0 +1,51 @@ +# InputDevDesc + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [devIndex](#devindex) | 设备索引 | +| [devType](#devtype) | 设备类型 | + + +## **详细描述** + +Input设备描述信息。 + + +## **类成员变量说明** + + +### devIndex + + +``` +uint32_t InputHotPlugEvent::devIndex +``` + +**描述:** + +设备索引。 + + +### devType + + +``` +uint32_t InputHotPlugEvent::devType +``` + +**描述:** + +设备类型。 diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_dev_identify.md b/zh-cn/device-dev/reference/hdi-apis/_input_dev_identify.md new file mode 100644 index 0000000000..8520f5f62c --- /dev/null +++ b/zh-cn/device-dev/reference/hdi-apis/_input_dev_identify.md @@ -0,0 +1,69 @@ +# InputDevIdentify + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [busType](#bustype) | 总线类型 | +| [vendor](#vendor) | 生产商编号 | +| [product](#product) | 产品编号 | +| [fuzz](#version) | 版本号 | + +## **详细描述** + +Input设备的识别信息。 + + +## **类成员变量说明** + + +### busType + +``` +uint16_t InputDevIdentify::busType +``` + +**描述:** + +总线类型。 + +### vendor + +``` +uint16_t InputDevIdentify::vendor +``` + +**描述:** + +生产商编号。 + +### product + +``` +uint16_t InputDevIdentify::product +``` + +**描述:** + +产品编号。 + +### version + +``` +uint16_t InputDevIdentify::version +``` + +**描述:** + +版本号。 diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_dimension_info.md b/zh-cn/device-dev/reference/hdi-apis/_input_dimension_info.md new file mode 100644 index 0000000000..bdbbdbd5d3 --- /dev/null +++ b/zh-cn/device-dev/reference/hdi-apis/_input_dimension_info.md @@ -0,0 +1,91 @@ +# InputDimensionInfo + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [axis](#axis) | 坐标轴 | +| [min](#min) | 记录各个坐标的最小值 | +| [max](#max) | 记录各个坐标的最大值 | +| [fuzz](#fuzz) | 记录各个坐标的分辨率 | +| [flat](#flat) | 记录各个坐标的基准值 | +| [range](#range) | 范围 | + +## **详细描述** + +Input设备的维度信息。 + + +## **类成员变量说明** + + +### axis + +``` +int32_t InputDimensionInfo::axis +``` + +**描述:** + +坐标轴。 + +### min + +``` +int32_t InputDimensionInfo::min +``` + +**描述:** + +记录各个坐标的最小值。 + +### max + +``` +int32_t InputDimensionInfo::max +``` + +**描述:** + +记录各个坐标的最大值。 + +### fuzz + +``` +int32_t InputDimensionInfo::fuzz +``` + +**描述:** + +记录各个坐标的分辨率。 + +### flat + +``` +int32_t InputDimensionInfo::flat +``` + +**描述:** + +记录各个坐标的基准值。 + +### range + +``` +int32_t InputDimensionInfo::range +``` + +**描述:** + +范围。 \ No newline at end of file diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_host_cb.md b/zh-cn/device-dev/reference/hdi-apis/_input_host_cb.md new file mode 100644 index 0000000000..372d6d7847 --- /dev/null +++ b/zh-cn/device-dev/reference/hdi-apis/_input_host_cb.md @@ -0,0 +1,44 @@ +# InputHostCb + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| ( [HotPlugCallback](#hotplugcallback) ) (const [InputHotPlugEvent](_input_hotplug_event.md) \*event) | 热插拔事件上报的回调函数。 [更多...](#hotplugcallback) | + + +## **详细描述** + +此结构体定义了热插拔事件上报回调函数并提供给Input服务使用。 + + +## **类成员变量说明** + + +### HotPlugCallback + + +``` +void (* InputHostCb::HotPlugCallback) (const InputHotPlugEvent* event); +``` + +**描述:** + +热插拔事件上报的回调函数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| event | 输入参数,上报的热插拔事件数据。 | \ No newline at end of file diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_hotplug_event.md b/zh-cn/device-dev/reference/hdi-apis/_input_hotplug_event.md new file mode 100644 index 0000000000..1bfe63ea8d --- /dev/null +++ b/zh-cn/device-dev/reference/hdi-apis/_input_hotplug_event.md @@ -0,0 +1,66 @@ +# InputHotPlugEvent + + +## **概述** + +**所属模块:** + +[Input](_input.md) + + +## **汇总** + + +### Public 属性 + + | Public 属性 | 描述 | +| -------- | -------- | +| [devIndex](#devindex) | 设备索引 | +| [devType](#devtype) | 设备类型 | +| [status](#status) | 设备状态| + + +## **详细描述** + +热插拔事件数据包结构。 + + +## **类成员变量说明** + + +### devIndex + + +``` +uint32_t InputHotPlugEvent::devIndex +``` + +**描述:** + +设备索引。 + + +### devType + + +``` +uint32_t InputHotPlugEvent::devType +``` + +**描述:** + +设备类型。 + + +### status + + +``` +uint32_t InputHotPlugEvent::status +``` + +**描述:** + +设备状态。 +- 1:离线 +- 0:在线。 -- GitLab From 8bbc664183e319d06a33396262b1439a38b6dcff Mon Sep 17 00:00:00 2001 From: zhangxiuping Date: Thu, 28 Jul 2022 12:23:28 +0800 Subject: [PATCH 501/868] fix the version error of some interfaces under path zh-cn/application-dev/reference/apis Signed-off-by: zhangxiuping --- zh-cn/application-dev/reference/apis/js-apis-cardEmulation.md | 2 +- zh-cn/application-dev/reference/apis/js-apis-nfcController.md | 2 +- zh-cn/application-dev/reference/apis/js-apis-nfcTag.md | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-cardEmulation.md b/zh-cn/application-dev/reference/apis/js-apis-cardEmulation.md index 26d43c3715..298ebd4784 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-cardEmulation.md +++ b/zh-cn/application-dev/reference/apis/js-apis-cardEmulation.md @@ -3,7 +3,7 @@ 本模块主要用于操作及管理NFC卡模拟。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** -> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 ## 导入模块 diff --git a/zh-cn/application-dev/reference/apis/js-apis-nfcController.md b/zh-cn/application-dev/reference/apis/js-apis-nfcController.md index 4f07a3ff32..3c5f93e921 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-nfcController.md +++ b/zh-cn/application-dev/reference/apis/js-apis-nfcController.md @@ -3,7 +3,7 @@ 本模块主要用于操作及管理NFC。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** -> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 ## **导入模块** diff --git a/zh-cn/application-dev/reference/apis/js-apis-nfcTag.md b/zh-cn/application-dev/reference/apis/js-apis-nfcTag.md index 87fc40e695..1bdfb12782 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-nfcTag.md +++ b/zh-cn/application-dev/reference/apis/js-apis-nfcTag.md @@ -3,7 +3,7 @@ 本模块主要用于操作及管理NFC Tag。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** -> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 ## **导入模块** @@ -75,4 +75,4 @@ getNfcVTag(tagInfo: TagInfo): NfcVTag | **类型** | **说明** | | -------- | ---------------- | -| NfcVTag | NFC V类型Tag对象 | \ No newline at end of file +| NfcVTag | NFC V类型Tag对象 | -- GitLab From aae27c03e860cc889d7986f2772e74ccd1911da6 Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 06:31:22 +0000 Subject: [PATCH 502/868] =?UTF-8?q?=E8=A1=A5=E5=85=85input=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E7=9A=84struct=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device-dev/reference/hdi-apis/input__type_8h.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/input__type_8h.md b/zh-cn/device-dev/reference/hdi-apis/input__type_8h.md index 312d1c9792..908f28bd07 100644 --- a/zh-cn/device-dev/reference/hdi-apis/input__type_8h.md +++ b/zh-cn/device-dev/reference/hdi-apis/input__type_8h.md @@ -15,9 +15,16 @@ | 类 | 描述 | | -------- | -------- | -| [EventPackage](_event_package.md) | Input事件数据包结构 [更多...](_event_package.md) | -| [InputReportEventCb](_input_report_event_cb.md) | 此结构体定义了输入事件回调函数并提供给Input服务使用 [更多...](_input_report_event_cb.md) | -| [DeviceInfo](_device_info.md) | Input设备基础设备信息 [更多...](_device_info.md) | +| [InputEventPackage](_event_package.md) | Input事件数据包结构。 [更多...](_event_package.md) | +| [InputHotPlugEvent](_input_hotplug_event.md) | 热插拔事件数据包结构。 [更多...](_input_hotplug_event.md) | +| [InputDevDesc](_input_dev_desc.md) | Input设备描述信息。 [更多...](_input_dev_desc.md) | +| [InputEventCb](_input_report_event_cb.md) | 此结构体定义了输入事件回调函数并提供给Input服务使用。 [更多...](_input_report_event_cb.md) | +| [InputHostCb](_input_host_cb.md) | 此结构体定义了热插拔事件上报回调函数并提供给Input服务使用。 [更多...](_input_host_cb.md) | +| [InputDevAbility](_input_dev_ability.md) | Input设备的能力属性,存储支持事件的位图。 [更多...](_input_dev_ability.md) | +| [InputDimensionInfo](_input_dimension_info.md) | Input设备的维度信息。 [更多...](_input_dimension_info.md) | +| [InputDevIdentify](_input_dev_identify.md) | Input设备的识别信息。 [更多...](_input_dev_identify.md) | +| [InputDevAttr](_input_dev_attr.md) | Input设备属性。 [更多...](_input_dev_attr.md) | +| [InputDeviceInfo](_device_info.md) | Input设备基础设备信息。 [更多...](_device_info.md) | | [InputExtraCmd](_input_extra_cmd.md) | 扩展指令的数据结构 [更多...](_input_extra_cmd.md) | -- GitLab From 2bc466f4c6a325d5be3347375215fe1b551bd5f8 Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 06:32:27 +0000 Subject: [PATCH 503/868] =?UTF-8?q?=E8=A1=A5=E5=8F=A5=E5=8F=B7=20Signed-of?= =?UTF-8?q?f-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/device-dev/reference/hdi-apis/input__type_8h.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/input__type_8h.md b/zh-cn/device-dev/reference/hdi-apis/input__type_8h.md index 908f28bd07..73d10e58c0 100644 --- a/zh-cn/device-dev/reference/hdi-apis/input__type_8h.md +++ b/zh-cn/device-dev/reference/hdi-apis/input__type_8h.md @@ -25,7 +25,7 @@ | [InputDevIdentify](_input_dev_identify.md) | Input设备的识别信息。 [更多...](_input_dev_identify.md) | | [InputDevAttr](_input_dev_attr.md) | Input设备属性。 [更多...](_input_dev_attr.md) | | [InputDeviceInfo](_device_info.md) | Input设备基础设备信息。 [更多...](_device_info.md) | -| [InputExtraCmd](_input_extra_cmd.md) | 扩展指令的数据结构 [更多...](_input_extra_cmd.md) | +| [InputExtraCmd](_input_extra_cmd.md) | 扩展指令的数据结构。 [更多...](_input_extra_cmd.md) | ### 宏定义 @@ -49,10 +49,10 @@ | 枚举 | 描述 | | -------- | -------- | -| [RetStatus](_input.md#retstatus) { INPUT_SUCCESS = 0, INPUT_FAILURE = -1, INPUT_INVALID_PARAM = -2, INPUT_NOMEM = -3,   INPUT_NULL_PTR = -4, INPUT_TIMEOUT = -5, INPUT_UNSUPPORTED = -6 } | 定义返回值类型 [更多...](_input.md#retstatus) | -| [InputDevType](_input.md#inputdevtype) { INDEV_TYPE_TOUCH, INDEV_TYPE_KEY, INDEV_TYPE_KEYBOARD, INDEV_TYPE_MOUSE,   INDEV_TYPE_BUTTON, INDEV_TYPE_CROWN, INDEV_TYPE_ENCODER, INDEV_TYPE_UNKNOWN } | 定义Input设备类型 [更多...](_input.md#inputdevtype) | -| [PowerStatus](_input.md#powerstatus) { INPUT_RESUME, INPUT_SUSPEND, INPUT_LOW_POWER, INPUT_POWER_STATUS_UNKNOWN } | 定义电源状态 [更多...](_input.md#powerstatus) | -| [CapacitanceTest](_input.md#capacitancetest) { BASE_TEST, FULL_TEST, MMI_TEST, RUNNING_TEST,   TEST_TYPE_UNKNOWN } | 定义容值测试类型 [更多...](_input.md#capacitancetest) | +| [RetStatus](_input.md#retstatus) { INPUT_SUCCESS = 0, INPUT_FAILURE = -1, INPUT_INVALID_PARAM = -2, INPUT_NOMEM = -3,   INPUT_NULL_PTR = -4, INPUT_TIMEOUT = -5, INPUT_UNSUPPORTED = -6 } | 定义返回值类型。 [更多...](_input.md#retstatus) | +| [InputDevType](_input.md#inputdevtype) { INDEV_TYPE_TOUCH, INDEV_TYPE_KEY, INDEV_TYPE_KEYBOARD, INDEV_TYPE_MOUSE,   INDEV_TYPE_BUTTON, INDEV_TYPE_CROWN, INDEV_TYPE_ENCODER, INDEV_TYPE_UNKNOWN } | 定义Input设备类型。 [更多...](_input.md#inputdevtype) | +| [PowerStatus](_input.md#powerstatus) { INPUT_RESUME, INPUT_SUSPEND, INPUT_LOW_POWER, INPUT_POWER_STATUS_UNKNOWN } | 定义电源状态。 [更多...](_input.md#powerstatus) | +| [CapacitanceTest](_input.md#capacitancetest) { BASE_TEST, FULL_TEST, MMI_TEST, RUNNING_TEST,   TEST_TYPE_UNKNOWN } | 定义容值测试类型。 [更多...](_input.md#capacitancetest) | ## **详细描述** -- GitLab From 849c8114aac6798cf289d91fd6826d25438f77e6 Mon Sep 17 00:00:00 2001 From: shawn_he Date: Thu, 28 Jul 2022 14:34:25 +0800 Subject: [PATCH 504/868] update doc Signed-off-by: shawn_he --- .../reference/apis/js-apis-http.md | 69 +++++++++++-------- 1 file changed, 40 insertions(+), 29 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-http.md b/en/application-dev/reference/apis/js-apis-http.md index f1ef654168..9e0e0bf516 100644 --- a/en/application-dev/reference/apis/js-apis-http.md +++ b/en/application-dev/reference/apis/js-apis-http.md @@ -1,6 +1,8 @@ # Data Request ->![](public_sys-resources/icon-note.gif) **NOTE** +This module provides the HTTP data request capability. An application can initiate a data request over HTTP. Common HTTP methods include **GET**, **POST**, **OPTIONS**, **HEAD**, **PUT**, **DELETE**, **TRACE**, and **CONNECT**. + +>**NOTE** > >The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. > @@ -18,17 +20,17 @@ import http from '@ohos.net.http'; // Each HttpRequest corresponds to an HttpRequestTask object and cannot be reused. let httpRequest = http.createHttp(); -// Subscribe to the HTTP response header, which is returned earlier than HttpRequest. You can subscribe to HTTP Response Header events based on service requirements. -// on('headerReceive', AsyncCallback) will be replaced by on('headersReceive', Callback) in API version 8. 8+ +// Subscribe to the HTTP response header, which is returned earlier than httpRequest. Whether to subscribe to the HTTP response header is up to your decision. +// on('headerReceive', AsyncCallback) is replaced by on('headersReceive', Callback) since API version 8. httpRequest.on('headersReceive', (header) => { console.info('header: ' + JSON.stringify(header)); }); httpRequest.request( - // Set the URL of the HTTP request. You need to define the URL. Set the parameters of the request in extraData. + // Customize EXAMPLE_URL on your own. It is up to you whether to add parameters to the URL. "EXAMPLE_URL", { method: http.RequestMethod.POST, // Optional. The default value is http.RequestMethod.GET. - // You can add the header field based on service requirements. + // You can add header fields based on service requirements. header: { 'Content-Type': 'application/json' }, @@ -48,7 +50,7 @@ httpRequest.request( console.info('cookies:' + data.cookies); // 8+ } else { console.info('error:' + JSON.stringify(err)); - // Call the destroy() method to release resources after the call is complete. + // Call the destroy() method to release resources after HttpRequest is complete. httpRequest.destroy(); } } @@ -79,7 +81,7 @@ let httpRequest = http.createHttp(); ## HttpRequest -Defines an **HttpRequest** object. Before invoking HttpRequest APIs, you must call [createHttp\(\)](#httpcreatehttp) to create an **HttpRequestTask** object. +HTTP request task. Before invoking APIs provided by **HttpRequest**, you must call [createHttp\(\)](#httpcreatehttp) to create an **HttpRequestTask** object. ### request @@ -93,9 +95,9 @@ Initiates an HTTP request to a given URL. This API uses an asynchronous callback **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ------------------------------------------------------- | ---- | ----------------------- | -| url | string | Yes | URL for initiating an HTTP request.| +| Name | Type | Mandatory| Description | +| -------- | ---------------------------------------------- | ---- | ----------------------- | +| url | string | Yes | URL for initiating an HTTP request.| | callback | AsyncCallback\<[HttpResponse](#httpresponse)\> | Yes | Callback used to return the result. | **Example** @@ -169,15 +171,15 @@ Initiates an HTTP request to a given URL. This API uses a promise to return the **Parameters** -| Name | Type | Mandatory| Description | -| ------- | ------------------ | ---- | -------------------------------------------------- | -| url | string | Yes | URL for initiating an HTTP request. | +| Name | Type | Mandatory| Description | +| ------- | ------------------ | ---- | ----------------------------------------------- | +| url | string | Yes | URL for initiating an HTTP request. | | options | HttpRequestOptions | Yes | Request options. For details, see [HttpRequestOptions](#httprequestoptions).| **Return value** -| Type | Description | -| :-------------------- | :-------------------------------- | +| Type | Description | +| :------------------------------------- | :-------------------------------- | | Promise<[HttpResponse](#httpresponse)> | Promise used to return the result.| @@ -225,8 +227,7 @@ on\(type: 'headerReceive', callback: AsyncCallback\): void Registers an observer for HTTP Response Header events. >![](public_sys-resources/icon-note.gif) **NOTE** -> -> This API has been deprecated. You are advised to use [on\('headersReceive'\)8+](#onheadersreceive8) instead. +>This API has been deprecated. You are advised to use [on\('headersReceive'\)8+](#onheadersreceive8) instead. **System capability**: SystemCapability.Communication.NetStack @@ -308,7 +309,6 @@ off\(type: 'headersReceive', callback?: Callback\): void Unregisters the observer for HTTP Response Header events. >![](public_sys-resources/icon-note.gif) **NOTE** -> >You can pass the callback of the **on** function if you want to cancel listening for a certain type of event. If you do not pass the callback, you will cancel listening for all events. **System capability**: SystemCapability.Communication.NetStack @@ -355,13 +355,13 @@ Specifies the type and value range of the optional parameters in the HTTP reques **System capability**: SystemCapability.Communication.NetStack -| Name | Type | Mandatory| Description | -| -------------- | ------------------------------------ | ---- | ---------------------------------------------------------- | -| method | [RequestMethod](#requestmethod) | No | Request method. | +| Name | Type | Mandatory| Description | +| -------------- | --------------------------------------------- | ---- | ------------------------------------------------------------ | +| method | [RequestMethod](#requestmethod) | No | Request method. | | extraData | string \| Object \| ArrayBuffer8+ | No | Additional data of the request.
- If the HTTP request uses a POST or PUT method, this parameter serves as the content of the HTTP request.
- If the HTTP request uses a GET, OPTIONS, DELETE, TRACE, or CONNECT method, this parameter is a supplement to the HTTP request parameters and will be added to the URL when the request is sent.8+
- To pass in a string object, you first need to encode the object on your own.8+ | -| header | Object | No | HTTP request header. The default value is {'Content-Type': 'application/json'}.| -| readTimeout | number | No | Read timeout duration. The default value is **60000**, in ms. | -| connectTimeout | number | No | Connection timeout interval. The default value is **60000**, in ms. | +| header | Object | No | HTTP request header. The default value is **{'Content-Type': 'application/json'}**. | +| readTimeout | number | No | Read timeout duration. The default value is **60000**, in ms. | +| connectTimeout | number | No | Connection timeout interval. The default value is **60000**, in ms. | ## RequestMethod @@ -388,13 +388,13 @@ Enumerates the response codes for an HTTP request. | Name | Value | Description | | ----------------- | ---- | ------------------------------------------------------------ | -| OK | 200 | "OK." The request has been processed successfully. This return code is generally used for GET and POST requests. | +| OK | 200 | Request succeeded. The request has been processed successfully. This return code is generally used for GET and POST requests. | | CREATED | 201 | "Created." The request has been successfully sent and a new resource is created. | -| ACCEPTED | 202 | "Accepted." The request has been accepted, but the processing has not been completed. | +| ACCEPTED | 202 | "Accepted." The request has been accepted, but the processing has not been completed. | | NOT_AUTHORITATIVE | 203 | "Non-Authoritative Information." The request is successful. | | NO_CONTENT | 204 | "No Content." The server has successfully fulfilled the request but there is no additional content to send in the response payload body. | | RESET | 205 | "Reset Content." The server has successfully fulfilled the request and desires that the user agent reset the content. | -| PARTIAL | 206 | "Partial Content." The server has successfully fulfilled the partial GET request for a given resource. | +| PARTIAL | 206 | "Partial Content." The server has successfully fulfilled the partial GET request for a given resource. | | MULT_CHOICE | 300 | "Multiple Choices." The requested resource corresponds to any one of a set of representations. | | MOVED_PERM | 301 | "Moved Permanently." The requested resource has been assigned a new permanent URI and any future references to this resource will be redirected to this URI.| | MOVED_TEMP | 302 | "Moved Temporarily." The requested resource is moved temporarily to a different URI. | @@ -418,7 +418,7 @@ Enumerates the response codes for an HTTP request. | REQ_TOO_LONG | 414 | "Request-URI Too Long." The Request-URI is too long for the server to process. | | UNSUPPORTED_TYPE | 415 | "Unsupported Media Type." The server is unable to process the media format in the request. | | INTERNAL_ERROR | 500 | "Internal Server Error." The server encounters an unexpected error that prevents it from fulfilling the request. | -| NOT_IMPLEMENTED | 501 | "Not Implemented." The server does not support the function required to fulfill the request. | +| NOT_IMPLEMENTED | 501 | "Not Implemented." The server does not support the function required to fulfill the request. | | BAD_GATEWAY | 502 | "Bad Gateway." The server acting as a gateway or proxy receives an invalid response from the upstream server.| | UNAVAILABLE | 503 | "Service Unavailable." The server is currently unable to process the request due to a temporary overload or system maintenance. | | GATEWAY_TIMEOUT | 504 | "Gateway Timeout." The server acting as a gateway or proxy does not receive requests from the remote server within the timeout period. | @@ -433,6 +433,17 @@ Defines the response to an HTTP request. | Name | Type | Mandatory| Description | | -------------------- | -------------------------------------------- | ---- | ------------------------------------------------------------ | | result | string \| Object \| ArrayBuffer8+ | Yes | Response content returned based on **Content-type** in the response header:
- application/json: a string in JSON format. If you want to use specific content in the response, you need to implement parsing of that content.
- application/octet-stream: ArrayBuffer
- Others: string| -| responseCode | [ResponseCode](#responsecode) \| number | Yes | Result code for an HTTP request. If the callback function is successfully executed, a result code defined in [ResponseCode](#responsecode) will be returned. Otherwise, an error code will be returned in the **err** field in **AsyncCallback**. The error code can be one of the following:
- 200: common error
- 202: parameter error
- 300: I/O error| +| responseCode | [ResponseCode](#responsecode) \| number | Yes | Result code for an HTTP request. If the callback function is successfully executed, a result code defined in [ResponseCode](#responsecode) will be returned. Otherwise, an error code will be returned in the **err** field in **AsyncCallback**. For details, see [Error Codes](#error-codes).| | header | Object | Yes | Response header. The return value is a string in JSON format. If you want to use specific content in the response, you need to implement parsing of that content. Common fields and parsing methods are as follows:
- Content-Type: header['Content-Type'];
- Status-Line: header['Status-Line'];
- Date: header.Date/header['Date'];
- Server: header.Server/header['Server'];| | cookies8+ | Array\ | Yes | Cookies returned by the server. | + +## Error Codes + +| Error Code| Description | +| ------ | ------------------------------------------------------------ | +| -1 | Incorrect parameters. | +| 3 | Incorrect URL format. | +| 4 | Built-in request function, protocol, or option not found during build. | +| 5 | Unable to resolve the proxy. | +| 6 | Unable to resolve the host. | +| 7 | Unable to connect to the proxy or host. | -- GitLab From febf4a4ae4ed68bde755699d2386a6c7a689a718 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 28 Jul 2022 06:36:16 +0000 Subject: [PATCH 505/868] update zh-cn/application-dev/key-features/multi-device-app-dev/resource-usage.md. Signed-off-by: zengyawen --- .../key-features/multi-device-app-dev/resource-usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/key-features/multi-device-app-dev/resource-usage.md b/zh-cn/application-dev/key-features/multi-device-app-dev/resource-usage.md index 4915ade834..20129df52a 100644 --- a/zh-cn/application-dev/key-features/multi-device-app-dev/resource-usage.md +++ b/zh-cn/application-dev/key-features/multi-device-app-dev/resource-usage.md @@ -38,7 +38,7 @@ 在工程中,通过 "$r('app.type.name')" 的形式引用应用资源。app代表是应用内resources目录中定义的资源;type 代表资源类型(或资源的存放位置),可以取 color、float、string、plural和media,name代表资源命名,由开发者定义资源时确定。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** -> - 可以查看[声明式开发范式资源访问](../../ui/ts-application-resource-access.md),了解资源访问的更多细节。 +> - 可以查看[声明式开发范式资源访问](../../ui/ts-resource-access.md),了解资源访问的更多细节。 > > - 类Web开发范式的资源文件路径及资源限定词的使用与声明式范式不同,详情请参考[类Web开发范式资源限定与访问](../../ui/js-framework-resource-restriction.md)及[类Web开发范式文件组织](../../ui/js-framework-file.md)。 -- GitLab From 9371e10649b637adfe239b0ba87e78d073ba1eca Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 06:36:24 +0000 Subject: [PATCH 506/868] =?UTF-8?q?=E8=A1=A5=E5=85=85struct=20Signed-off-b?= =?UTF-8?q?y:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/device-dev/reference/hdi-apis/_input.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/_input.md b/zh-cn/device-dev/reference/hdi-apis/_input.md index 0cf6068553..9914bfec5d 100644 --- a/zh-cn/device-dev/reference/hdi-apis/_input.md +++ b/zh-cn/device-dev/reference/hdi-apis/_input.md @@ -23,8 +23,15 @@ | [IInputInterface](_i_input_interface.md) | 定义用于提供输入设备驱动能力的接口。[更多...](_i_input_interface.md) | | [InputReporter](_input_reporter.md) | 提供Input设备数据上报相关的接口。 [更多...](_input_reporter.md) | | [InputEventPackage](_event_package.md) | Input事件数据包结构。 [更多...](_event_package.md) | -| [InputReportEventCb](_input_report_event_cb.md) | 此结构体定义了输入事件回调函数并提供给Input服务使用。 [更多...](_input_report_event_cb.md) | -| [DeviceInfo](_device_info.md) | Input设备基础设备信息。 [更多...](_device_info.md) | +| [InputHotPlugEvent](_input_hotplug_event.md) | 热插拔事件数据包结构。 [更多...](_input_hotplug_event.md) | +| [InputDevDesc](_input_dev_desc.md) | Input设备描述信息。 [更多...](_input_dev_desc.md) | +| [InputEventCb](_input_report_event_cb.md) | 此结构体定义了输入事件回调函数并提供给Input服务使用。 [更多...](_input_report_event_cb.md) | +| [InputHostCb](_input_host_cb.md) | 此结构体定义了热插拔事件上报回调函数并提供给Input服务使用。 [更多...](_input_host_cb.md) | +| [InputDevAbility](_input_dev_ability.md) | Input设备的能力属性,存储支持事件的位图。 [更多...](_input_dev_ability.md) | +| [InputDimensionInfo](_input_dimension_info.md) | Input设备的维度信息。 [更多...](_input_dimension_info.md) | +| [InputDevIdentify](_input_dev_identify.md) | Input设备的识别信息。 [更多...](_input_dev_identify.md) | +| [InputDevAttr](_input_dev_attr.md) | Input设备属性。 [更多...](_input_dev_attr.md) | +| [InputDeviceInfo](_device_info.md) | Input设备基础设备信息。 [更多...](_device_info.md) | | [InputExtraCmd](_input_extra_cmd.md) | 扩展指令的数据结构。 [更多...](_input_extra_cmd.md) | @@ -49,10 +56,10 @@ | 枚举 | 描述 | | -------- | -------- | -| [RetStatus](#retstatus) { INPUT_SUCCESS = 0, INPUT_FAILURE = -1, INPUT_INVALID_PARAM = -2, INPUT_NOMEM = -3,   INPUT_NULL_PTR = -4, INPUT_TIMEOUT = -5, INPUT_UNSUPPORTED = -6 } | 定义返回值类型 [更多...](#retstatus) | -| [InputDevType](#inputdevtype) { INDEV_TYPE_TOUCH, INDEV_TYPE_KEY, INDEV_TYPE_KEYBOARD, INDEV_TYPE_MOUSE,   INDEV_TYPE_BUTTON, INDEV_TYPE_CROWN, INDEV_TYPE_ENCODER, INDEV_TYPE_UNKNOWN } | 定义Input设备类型 [更多...](#inputdevtype) | -| [PowerStatus](#powerstatus) { INPUT_RESUME, INPUT_SUSPEND, INPUT_LOW_POWER, INPUT_POWER_STATUS_UNKNOWN } | 定义电源状态 [更多...](#powerstatus) | -| [CapacitanceTest](#capacitancetest) { BASE_TEST, FULL_TEST, MMI_TEST, RUNNING_TEST,   TEST_TYPE_UNKNOWN } | 定义容值测试类型 [更多...](#capacitancetest) | +| [RetStatus](#retstatus) { INPUT_SUCCESS = 0, INPUT_FAILURE = -1, INPUT_INVALID_PARAM = -2, INPUT_NOMEM = -3,   INPUT_NULL_PTR = -4, INPUT_TIMEOUT = -5, INPUT_UNSUPPORTED = -6 } | 定义返回值类型。 [更多...](#retstatus) | +| [InputDevType](#inputdevtype) { INDEV_TYPE_TOUCH, INDEV_TYPE_KEY, INDEV_TYPE_KEYBOARD, INDEV_TYPE_MOUSE,   INDEV_TYPE_BUTTON, INDEV_TYPE_CROWN, INDEV_TYPE_ENCODER, INDEV_TYPE_UNKNOWN } | 定义Input设备类型。 [更多...](#inputdevtype) | +| [PowerStatus](#powerstatus) { INPUT_RESUME, INPUT_SUSPEND, INPUT_LOW_POWER, INPUT_POWER_STATUS_UNKNOWN } | 定义电源状态。 [更多...](#powerstatus) | +| [CapacitanceTest](#capacitancetest) { BASE_TEST, FULL_TEST, MMI_TEST, RUNNING_TEST,   TEST_TYPE_UNKNOWN } | 定义容值测试类型。 [更多...](#capacitancetest) | ### 函数 -- GitLab From 87cae86404ca41d87839b15e3511ceb7eab3cbde Mon Sep 17 00:00:00 2001 From: liwuli Date: Thu, 28 Jul 2022 14:44:17 +0800 Subject: [PATCH 507/868] add PROVISIONING_MESSAGE permission Signed-off-by: liwuli --- zh-cn/application-dev/security/permission-list.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zh-cn/application-dev/security/permission-list.md b/zh-cn/application-dev/security/permission-list.md index e4fcc0ebb4..e661b3eb83 100644 --- a/zh-cn/application-dev/security/permission-list.md +++ b/zh-cn/application-dev/security/permission-list.md @@ -129,4 +129,5 @@ | ohos.permission.ACCESS_IDS | system_core | system_grant | TRUE | 允许应用查询设备的唯一标识符信息。 | | ohos.permission.DUMP | system_core | system_grant | TRUE | 允许导出系统基础信息和SA服务信息。 | | ohos.permission.DISTRIBUTED_SOFTBUS_CENTER | system_basic | system_grant | FALSE | 允许不同设备之间进行组网处理。 | -| ohos.permission.ACCESS_DLP_FILE | system_core | system_grant | TRUE | 允许对DLP文件进行权限配置和管理。 | \ No newline at end of file +| ohos.permission.ACCESS_DLP_FILE | system_core | system_grant | TRUE | 允许对DLP文件进行权限配置和管理。 | +| ohos.permission.PROVISIONING_MESSAGE | system_core | system_grant | TRUE | 允许激活超级设备管理器应用。 | \ No newline at end of file -- GitLab From 9081779059ca40c710b0eb30e5839806d957dec5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E6=A0=B9=E5=A0=82?= Date: Thu, 28 Jul 2022 06:45:26 +0000 Subject: [PATCH 508/868] update zh-cn/application-dev/reference/apis/js-apis-rpc.md. Signed-off-by: 18392170496 --- zh-cn/application-dev/reference/apis/js-apis-rpc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-rpc.md b/zh-cn/application-dev/reference/apis/js-apis-rpc.md index a73587f884..d45b3934bc 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-rpc.md +++ b/zh-cn/application-dev/reference/apis/js-apis-rpc.md @@ -3175,7 +3175,7 @@ isObjectDead(): boolean | -------- | -------- | -------- | | TF_SYNC | 0 | 同步调用。 | | TF_ASYNC | 1 | 异步调用。 | -| TF_ACCEPT_FDS | 0x10 | 指示[sendRequestAsync](#sendrequestAsync)接口可以返回文件描述符。 | +| TF_ACCEPT_FDS | 0x10 | 指示[sendRequestAsync](#sendrequestasync9)接口可以返回文件描述符。 | | TF_WAIT_TIME | 8 | 等待时间。单位秒。 | -- GitLab From 932f05167b5ab2549ba0d9f9f7859505efd399d8 Mon Sep 17 00:00:00 2001 From: RayShih Date: Thu, 28 Jul 2022 14:45:42 +0800 Subject: [PATCH 509/868] fix error link in js-apis-abilityrunninginfo.md Signed-off-by: RayShih --- .../reference/apis/js-apis-abilityrunninginfo.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-abilityrunninginfo.md b/zh-cn/application-dev/reference/apis/js-apis-abilityrunninginfo.md index 33b9ff847a..3c23375859 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-abilityrunninginfo.md +++ b/zh-cn/application-dev/reference/apis/js-apis-abilityrunninginfo.md @@ -25,9 +25,9 @@ abilitymanager.getAbilityRunningInfos((err,data) => { | 名称 | 参数类型 | 可读 | 可写 | 说明 | | -------- | -------- | -------- | -------- | -------- | -| ability | ElementName | 是 | 否 | Ability匹配信息 | -| pid | number | 是 | 否 | 进程ID。 | -| uid | number | 是 | 否 | 用户ID。 | -| processName | string | 是 | 否 | 进程名称。 | -| startTime | number | 是 | 否 | Ability启动时间。 | -| abilityState | [abilityManager.AbilityState](js-apis-abilityManager.md#abilityState) | 是 | 否 | Ability状态。 | \ No newline at end of file +| ability | ElementName | 是 | 否 | Ability匹配信息 | +| pid | number | 是 | 否 | 进程ID。 | +| uid | number | 是 | 否 | 用户ID。 | +| processName | string | 是 | 否 | 进程名称。 | +| startTime | number | 是 | 否 | Ability启动时间。 | +| abilityState | [abilityManager.AbilityState](js-apis-application-abilityManager.md#abilityState) | 是 | 否 | Ability状态。 | \ No newline at end of file -- GitLab From b98a5d9468c2f4ff2d4514d1e1c2adc0feb0cee1 Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 28 Jul 2022 06:46:02 +0000 Subject: [PATCH 510/868] =?UTF-8?q?=E8=A1=A5=E5=85=85input=E7=9A=84struct?= =?UTF-8?q?=20Signed-off-by:=20li-yan339=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/device-dev/reference/hdi-apis/Readme-CN.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/zh-cn/device-dev/reference/hdi-apis/Readme-CN.md b/zh-cn/device-dev/reference/hdi-apis/Readme-CN.md index 5751e1d1d1..98c7de011f 100644 --- a/zh-cn/device-dev/reference/hdi-apis/Readme-CN.md +++ b/zh-cn/device-dev/reference/hdi-apis/Readme-CN.md @@ -122,7 +122,6 @@ - [CompVerInfo](_comp_ver_info.md) - [CredentialInfo](_credential_info.md) - [DeviceFuncs](_device_funcs.md) - - [DeviceInfo](_device_info.md) - [DisplayCapability](_display_capability.md) - [DisplayInfo](_display_info.md) - [DisplayModeInfo](_display_mode_info.md) @@ -153,9 +152,17 @@ - [IInputInterface](_i_input_interface.md) - [ILine](_i_line.md) - [InputController](_input_controller.md) + - [InputDevAbility](_input_dev_ability.md) + - [InputDevAttr](_input_dev_attr.md) + - [InputDevDesc](_input_dev_desc.md) + - [InputDevIdentify](_input_dev_identify.md) + - [InputDeviceInfo](_device_info.md) + - [InputDimensionInfo](_input_dimension_info.md) - [InputEventCb](_input_report_event_cb.md) - [InputEventPackage](_event_package.md) - [InputExtraCmd](_input_extra_cmd.md) + - [InputHostCb](_input_host_cb.md) + - [InputHotPlugEvent](_input_hotplug_event.md) - [InputManager](_input_manager.md) - [InputReporter](_input_reporter.md) - [IPinAuthInterface](interface_i_pin_auth_interface.md) -- GitLab From 0bdb3ebed0d03e40bd2fb44c2aa191ca809edde3 Mon Sep 17 00:00:00 2001 From: RayShih Date: Thu, 28 Jul 2022 14:49:40 +0800 Subject: [PATCH 511/868] fix error link in js-apis-abilityrunninginfo.md Signed-off-by: RayShih --- .../reference/apis/js-apis-abilityrunninginfo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-abilityrunninginfo.md b/zh-cn/application-dev/reference/apis/js-apis-abilityrunninginfo.md index 3c23375859..5f9195932a 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-abilityrunninginfo.md +++ b/zh-cn/application-dev/reference/apis/js-apis-abilityrunninginfo.md @@ -30,4 +30,4 @@ abilitymanager.getAbilityRunningInfos((err,data) => { | uid | number | 是 | 否 | 用户ID。 | | processName | string | 是 | 否 | 进程名称。 | | startTime | number | 是 | 否 | Ability启动时间。 | -| abilityState | [abilityManager.AbilityState](js-apis-application-abilityManager.md#abilityState) | 是 | 否 | Ability状态。 | \ No newline at end of file +| abilityState | [abilityManager.AbilityState](js-apis-application-abilityManager.md#abilitystate) | 是 | 否 | Ability状态。 | \ No newline at end of file -- GitLab From 8cd7bea6509064b46386f6244c371909080dcca4 Mon Sep 17 00:00:00 2001 From: jiao_yanlin Date: Thu, 28 Jul 2022 14:52:18 +0800 Subject: [PATCH 512/868] Sample code format modification Signed-off-by: jiao_yanlin --- .../reference/apis/js-apis-audio.md | 1375 ++++++++--------- 1 file changed, 685 insertions(+), 690 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-audio.md b/zh-cn/application-dev/reference/apis/js-apis-audio.md index 2019664c63..618f1f3e95 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-audio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-audio.md @@ -74,31 +74,31 @@ createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback\ { - if (err) { - console.error(`AudioRenderer Created : Error: ${err.message}`); - } - else { - console.info('AudioRenderer Created : Success : SUCCESS'); - let audioRenderer = data; - } + if (err) { + console.error(`AudioRenderer Created : Error: ${err.message}`); + } + else { + console.info('AudioRenderer Created : Success : SUCCESS'); + let audioRenderer = data; + } }); ``` @@ -128,29 +128,29 @@ createAudioRenderer(options: AudioRendererOptions): Promise import audio from '@ohos.multimedia.audio'; var audioStreamInfo = { - samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100, - channels: audio.AudioChannel.CHANNEL_1, - sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, - encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW + samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100, + channels: audio.AudioChannel.CHANNEL_1, + sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, + encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW } var audioRendererInfo = { - content: audio.ContentType.CONTENT_TYPE_SPEECH, - usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION, - rendererFlags: 1 + content: audio.ContentType.CONTENT_TYPE_SPEECH, + usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION, + rendererFlags: 1 } var audioRendererOptions = { - streamInfo: audioStreamInfo, - rendererInfo: audioRendererInfo + streamInfo: audioStreamInfo, + rendererInfo: audioRendererInfo } var audioRenderer; audio.createAudioRenderer(audioRendererOptions).then((data) => { - audioRenderer = data; - console.info('AudioFrameworkRenderLog: AudioRenderer Created : Success : Stream Type: SUCCESS'); + audioRenderer = data; + console.info('AudioFrameworkRenderLog: AudioRenderer Created : Success : Stream Type: SUCCESS'); }).catch((err) => { - console.info('AudioFrameworkRenderLog: AudioRenderer Created : ERROR : '+err.message); + console.info('AudioFrameworkRenderLog: AudioRenderer Created : ERROR : '+err.message); }); ``` @@ -174,30 +174,30 @@ createAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback