提交 ffea43e9 编写于 作者: Z zengyawen

format modification

Signed-off-by: Nzengyawen <zengyawen1@huawei.com>
上级 70011420
# 应用开发
- [应用开发导读](application-dev-guide.md)
- DevEco Studio(OpenHarmony)使用指南
- [概述](quick-start/deveco-studio-overview.md)
- [版本变更说明](quick-start/deveco-studio-release-notes.md)
- [配置OpenHarmony SDK](quick-start/configuring-openharmony-sdk.md)
- 创建OpenHarmony工程
- [使用工程向导创建新工程](quick-start/use-wizard-to-create-project.md)
- [通过导入Sample方式创建新工程](quick-start/import-sample-to-create-project.md)
- [配置OpenHarmony应用签名信息](quick-start/configuring-openharmony-app-signature.md)
- [安装运行OpenHarmony应用](quick-start/installing-openharmony-app.md)
- [包结构说明](quick-start/package-structure.md)
- 快速入门
- [开发准备](quick-start/start-overview.md)
- [使用JS语言开发](quick-start/start-with-js.md)
- JS UI框架
- [JS UI框架概述](ui/ui-js-overview.md)
- 构建用户界面
- [组件介绍](ui/ui-js-building-ui-component.md)
- 构建布局
- [布局说明](ui/ui-js-building-ui-layout-intro.md)
- [添加标题行和文本区域](ui/ui-js-building-ui-layout-text.md)
- [添加图片区域](ui/ui-js-building-ui-layout-image.md)
- [添加留言区域](ui/ui-js-building-ui-layout-comment.md)
- [添加容器](ui/ui-js-building-ui-layout-external-container.md)
- [添加交互](ui/ui-js-building-ui-interactions.md)
- [动画](ui/ui-js-building-ui-animation.md)
- [事件](ui/ui-js-building-ui-event.md)
- [页面路由](ui/ui-js-building-ui-routes.md)
- [自定义组件](ui/ui-js-custom-components.md)
- 音频
- [音频开发概述](media/audio-overview.md)
- [音频播放开发指导](media/audio-playback.md)
- [音频管理开发指导](media/audio-management.md)
- [音频录制开发指导](media/audio-recorder.md)
- IPC与RPC通信
- [IPC与RPC通信概述](connectivity/ipc-rpc-overview.md)
- [IPC与RPC通信开发指导](connectivity/ipc-rpc-development-guideline.md)
- [远端状态订阅开发实例](connectivity/subscribe-remote-state.md)
- JS 开发参考
- 框架说明
- [文件组织](js-reference/js-framework-file.md)
- [js标签配置](js-reference/js-framework-js-tag.md)
- [app.js](js-reference/js-framework-js-file.md)
- 语法
- [HML语法参考](js-reference/js-framework-syntax-hml.md)
- [CSS语法参考](js-reference/js-framework-syntax-css.md)
- [JS语法参考](js-reference/js-framework-syntax-js.md)
- [生命周期](js-reference/js-framework-lifecycle.md)
- [资源限定与访问](js-reference/js-framework-resource-restriction.md)
- [多语言支持](js-reference/js-framework-multiple-languages.md)
- 组件
- 通用
- [通用属性](js-reference/component/js-components-common-attributes.md)
- [通用样式](js-reference/component/js-components-common-styles.md)
- [通用事件](js-reference/component/js-components-common-events.md)
- [通用方法](js-reference/component/js-components-common-methods.md)
- [动画样式](js-reference/component/js-components-common-animation.md)
- [渐变样式](js-reference/component/js-components-common-gradient.md)
- [转场样式](js-reference/component/js-components-common-transition.md)
- [媒体查询](js-reference/component/js-components-common-mediaquery.md)
- [自定义字体样式](js-reference/component/js-components-common-customizing-font.md)
- [原子布局](js-reference/component/js-components-common-atomic-layout.md)
- 容器组件
- [badge](js-reference/component/js-components-container-badge.md)
- [dialog](js-reference/component/js-components-container-dialog.md)
- [div](js-reference/component/js-components-container-div.md)
- [form](js-reference/component/js-components-container-form.md)
- [list](js-reference/component/js-components-container-list.md)
- [list-item](js-reference/component/js-components-container-list-item.md)
- [list-item-group](js-reference/component/js-components-container-list-item-group.md)
- [panel](js-reference/component/js-components-container-panel.md)
- [popup](js-reference/component/js-components-container-popup.md)
- [refresh](js-reference/component/js-components-container-refresh.md)
- [stack](js-reference/component/js-components-container-stack.md)
- [stepper](js-reference/component/js-components-container-stepper.md)
- [stepper-item](js-reference/component/js-components-container-stepper-item.md)
- [swiper](js-reference/component/js-components-container-swiper.md)
- [tabs](js-reference/component/js-components-container-tabs.md)
- [tab-bar](js-reference/component/js-components-container-tab-bar.md)
- [tab-content](js-reference/component/js-components-container-tab-content.md)
- 基础组件
- [button](js-reference/component/js-components-basic-button.md)
- [chart](js-reference/component/js-components-basic-chart.md)
- [divider](js-reference/component/js-components-basic-divider.md)
- [image](js-reference/component/js-components-basic-image.md)
- [image-animator](js-reference/component/js-components-basic-image-animator.md)
- [input](js-reference/component/js-components-basic-input.md)
- [label](js-reference/component/js-components-basic-label.md)
- [marquee](js-reference/component/js-components-basic-marquee.md)
- [menu](js-reference/component/js-components-basic-menu.md)
- [option](js-reference/component/js-components-basic-option.md)
- [picker](js-reference/component/js-components-basic-picker.md)
- [picker-view](js-reference/component/js-components-basic-picker-view.md)
- [piece](js-reference/component/js-components-basic-piece.md)
- [progress](js-reference/component/js-components-basic-progress.md)
- [qrcode](js-reference/component/js-components-basic-qrcode.md)
- [rating](js-reference/component/js-components-basic-rating.md)
- [richtext](js-reference/component/js-components-basic-richtext.md)
- [search](js-reference/component/js-components-basic-search.md)
- [select](js-reference/component/js-components-basic-select.md)
- [slider](js-reference/component/js-components-basic-slider.md)
- [span](js-reference/component/js-components-basic-span.md)
- [switch](js-reference/component/js-components-basic-switch.md)
- [text](js-reference/component/js-components-basic-text.md)
- [textarea](js-reference/component/js-components-basic-textarea.md)
- [toolbar](js-reference/component/js-components-basic-toolbar.md)
- [toolbar-item](js-reference/component/js-components-basic-toolbar-item.md)
- [toggle](js-reference/component/js-components-basic-toggle.md)
- 媒体组件
- [video](js-reference/component/js-components-media-video.md)
- 画布组件
- [canvas组件](js-reference/component/js-components-canvas-canvas.md)
- [CanvasRenderingContext2D对象](js-reference/component/js-components-canvas-canvasrenderingcontext2d.md)
- [Image对象](js-reference/component/js-components-canvas-image.md)
- [CanvasGradient对象](js-reference/component/js-components-canvas-canvasgradient.md)
- [ImageData对象](js-reference/component/js-components-canvas-imagedata.md)
- [Path2D对象](js-reference/component/js-components-canvas-path2d.md)
- [ImageBitmap对象](js-reference/component/js-components-canvas-imagebitmap.md)
- [OffscreenCanvas对象](js-reference/component/js-components-canvas-offscreencanvas.md)
- [OffscreenCanvasRenderingContext2D对象](js-reference/component/js-components-canvas-offscreencanvasrenderingcontext2d.md)
- 栅格组件
- [基本概念](js-reference/component/js-components-grid-basic-concepts.md)
- [grid-container](js-reference/component/js-components-grid-container.md)
- [grid-row](js-reference/component/js-components-grid-row.md)
- [grid-col](js-reference/component/js-components-grid-col.md)
- svg组件
- [通用属性](js-reference/component/js-components-svg-common-attributes.md)
- [svg](js-reference/component/js-components-svg.md)
- [rect](js-reference/component/js-components-svg-rect.md)
- [circle](js-reference/component/js-components-svg-circle.md)
- [ellipse](js-reference/component/js-components-svg-ellipse.md)
- [path](js-reference/component/js-components-svg-path.md)
- [line](js-reference/component/js-components-svg-line.md)
- [polyline](js-reference/component/js-components-svg-polyline.md)
- [polygon](js-reference/component/js-components-svg-polygon.md)
- [text](js-reference/component/js-components-svg-text.md)
- [tspan](js-reference/component/js-components-svg-tspan.md)
- [textPath](js-reference/component/js-components-svg-textpath.md)
- [animate](js-reference/component/js-components-svg-animate.md)
- [animateMotion](js-reference/component/js-components-svg-animate-motion.md)
- [animateTransform](js-reference/component/js-components-svg-animate-transform.md)
- 自定义组件
- [基本用法](js-reference/component/js-components-custom-basic-usage.md)
- [自定义事件](js-reference/component/js-components-custom-events.md)
- [Props](js-reference/component/js-components-custom-props.md)
- [事件参数](js-reference/component/js-components-custom-event-parameter.md)
- [slot插槽](js-reference/component/js-components-custom-slot.md)
- [生命周期定义](js-reference/component/js-components-custom-lifecycle.md)
- 接口
- 基本功能
- [应用上下文](js-reference/apis/js-apis-system-app.md)
- [日志打印](js-reference/apis/js-apis-basic-features-logs.md)
- [页面路由](js-reference/apis/js-apis-system-router.md)
- [弹窗](js-reference/apis/js-apis-system-prompt.md)
- [应用配置](js-reference/apis/js-apis-system-configuration.md)
- [定时器](js-reference/apis/js-apis-system-timer.md)
- [动画](js-reference/apis/js-apis-animator.md)
- [应用打点](js-reference/apis/js-apis-hiappevent.md)
- [性能打点](js-reference/apis/js-apis-bytrace.md)
- [分布式帐号管理](js-reference/apis/js-apis-distributedaccount.md)
- 媒体
- [音频管理](js-reference/apis/js-apis-audio.md)
- [音频播放](js-reference/apis/js-apis-media.md)
- 数据管理
- [文件管理](js-reference/apis/js-apis-fileio.md)
- [单版本分布式数据库](js-reference/apis/js-apis-data-singlekvstore.md)
- [创建和获取分布式数据库](js-reference/apis/js-apis-data-kvmanager.md)
- [KVManager配置信息](js-reference/apis/js-apis-data-kvmanager-config.md)
- [分布式数据库操作描述](js-reference/apis/js-apis-data-kvstore.md)
- [数据类型描述](js-reference/apis/js-apis-data-type.md)
- [轻量级存储](js-reference/apis/js-apis-data-storage.md)
- 设备管理
- [设备信息](js-reference/apis/js-apis-deviceinfo.md)
- [系统属性](js-reference/apis/js-apis-systemparameter.md)
- [系统恢复](js-reference/apis/js-apis-update.md)
- [显示设备属性](js-reference/apis/js-apis-display.md)
- [电池和充电属性](js-reference/apis/js-apis-batteryinfo.md)
- [设置系统屏幕亮度](js-reference/apis/js-apis-brightness.md)
- [系统电源管理](js-reference/apis/js-apis-power.md)
- [Runninglock锁](js-reference/apis/js-apis-runninglock.md)
- [传感器](js-reference/apis/js-apis-sensor.md)
- [振动](js-reference/apis/js-apis-vibrate.md)
- [国际化(I18n)](js-reference/apis/js-apis-i18n.md)
- [国际化(Intl)](js-reference/apis/js-apis-intl.md)
- [资源管理](js-reference/apis/js-apis-resourcemanage.md)
- [时间设置](js-reference/apis/js-apis-systemtime.md)
- [升级](js-reference/apis/js-apis-libupdateclient.md)
- [获取进程相关的信息](js-reference/apis/js-apis-process.md)
- [字符串编解码](js-reference/apis/js-apis-util.md)
- [启动一个worker](js-reference/apis/js-apis-worker.md)
- [URL字符串解析](js-reference/apis/js-apis-url.md)
# 应用开发导读<a name="ZH-CN_TOPIC_0000001162242674"></a> # 应用开发导读
应用开发文档用于指导开发者通过OpenHarmony提供的接口完成应用开发。当前应用开发文档提供了在标准系统上开发应用的JS接口。 应用开发文档用于指导开发者通过OpenHarmony提供的接口完成应用开发。当前应用开发文档提供了在标准系统上开发应用的JS接口。
在这部分中,开发者可以通过“[入门](https://gitee.com/openharmony/docs/blob/5b6b26c33680dd1162a4df35c896e5ddefcb55b3/zh-cn/application-dev/quick-start/Readme-CN.md)”来了解应用开发的基本方法。完整的接口清单和参考使用指导可参见“[JS开发参考](https://gitee.com/openharmony/docs/blob/5b6b26c33680dd1162a4df35c896e5ddefcb55b3/zh-cn/application-dev/js-reference/Readme-CN.md)”。 在这部分中,开发者可以通过“[入门](quick-start/Readme-CN.md)”来了解应用开发的基本方法。完整的接口清单和参考使用指导可参见“[JS开发参考](js-reference/Readme-CN.md)”。
除此之外,为方便开发者对常用功能进行深入理解,还提供了[UI](https://gitee.com/openharmony/docs/blob/5b6b26c33680dd1162a4df35c896e5ddefcb55b3/zh-cn/application-dev/ui/Readme-CN.md)[媒体](https://gitee.com/openharmony/docs/blob/5b6b26c33680dd1162a4df35c896e5ddefcb55b3/zh-cn/application-dev/media/Readme-CN.md)[网络与连接](https://gitee.com/openharmony/docs/blob/5b6b26c33680dd1162a4df35c896e5ddefcb55b3/zh-cn/application-dev/connectivity/Readme-CN.md)三个模块的开发指南。 除此之外,为方便开发者对常用功能进行深入理解,还提供了[UI](ui/Readme-CN.md)[媒体](media/Readme-CN.md)[网络与连接](connectivity/Readme-CN.md)三个模块的开发指南。
如果需要了解各子系统的原理和基本信息,可以参考“docs/zh-cn/readme”目录中各子系统readme的介绍。 如果需要了解各子系统的原理和基本信息,可以参考“docs/zh-cn/readme”目录中各子系统readme的介绍。
# 网络与连接 # 网络与连接
- [IPC与RPC通信](ipc-rpc.md) - IPC与RPC通信
- [IPC与RPC通信概述](ipc-rpc-overview.md) - [IPC与RPC通信概述](ipc-rpc-overview.md)
- [IPC与RPC通信开发指导](ipc-rpc-development-guideline.md) - [IPC与RPC通信开发指导](ipc-rpc-development-guideline.md)
- [远端状态订阅开发实例](subscribe-remote-state.md) - [远端状态订阅开发实例](subscribe-remote-state.md)
# IPC与RPC通信开发指导<a name="ZH-CN_TOPIC_0000001103710988"></a> # IPC与RPC通信开发指导
- [场景介绍](#section18502174174019) - [场景介绍](#场景介绍)
- [接口说明](#section1633115419401) - [接口说明](#接口说明)
- [开发步骤](#section4207112818418) - [开发步骤](#开发步骤)
## 场景介绍<a name="section18502174174019"></a> ## 场景介绍
IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,包括Proxy和Stub运行在不同设备的情况。 IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,包括Proxy和Stub运行在不同设备的情况。
## 接口说明<a name="section1633115419401"></a>
## 接口说明
**表 1** Native侧IPC接口
**表1** Native侧IPC接口
<a name="table178849240013"></a>
<table><thead align="left"><tr id="row6884924608"><th class="cellrowborder" valign="top" width="14.12141214121412%" id="mcps1.2.4.1.1"><p id="p98846241706"><a name="p98846241706"></a><a name="p98846241706"></a>类/接口</p> | 类/接口 | 方法 | 功能说明 |
</th> | -------- | -------- | -------- |
<th class="cellrowborder" valign="top" width="52.54525452545254%" id="mcps1.2.4.1.2"><p id="p1488482414020"><a name="p1488482414020"></a><a name="p1488482414020"></a>方法</p> | IRemoteBroker | sptr&lt;IRemoteObject&gt;&nbsp;AsObject() | 返回通信对象。派生类需要实现,Stub端返回RemoteObject对象本身,Proxy端返回代理对象。 |
</th> | IRemoteStub | virtual&nbsp;int&nbsp;OnRemoteRequest(uint32_t&nbsp;code,&nbsp;MessageParcel&nbsp;&amp;data,&nbsp;MessageParcel&nbsp;&amp;reply,&nbsp;MessageOption&nbsp;&amp;option) | 请求处理方法,派生类需要重写,处理Proxy的请求并返回结果。 |
<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.3"><p id="p388516244016"><a name="p388516244016"></a><a name="p388516244016"></a>功能说明</p> | IRemoteProxy | | 业务Proxy类派生自IRemoteProxy类。 |
</th>
</tr>
</thead> ## 开发步骤
<tbody><tr id="row15885824402"><td class="cellrowborder" valign="top" width="14.12141214121412%" headers="mcps1.2.4.1.1 "><p id="p08859241008"><a name="p08859241008"></a><a name="p08859241008"></a>IRemoteBroker</p>
</td>
<td class="cellrowborder" valign="top" width="52.54525452545254%" headers="mcps1.2.4.1.2 "><p id="p388572412010"><a name="p388572412010"></a><a name="p388572412010"></a>sptr&lt;IRemoteObject&gt; AsObject()</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p13885724405"><a name="p13885724405"></a><a name="p13885724405"></a>返回通信对象。派生类需要实现,Stub端返回RemoteObject对象本身,Proxy端返回代理对象。</p>
</td>
</tr>
<tr id="row138859241808"><td class="cellrowborder" valign="top" width="14.12141214121412%" headers="mcps1.2.4.1.1 "><p id="p1888515245012"><a name="p1888515245012"></a><a name="p1888515245012"></a>IRemoteStub</p>
</td>
<td class="cellrowborder" valign="top" width="52.54525452545254%" headers="mcps1.2.4.1.2 "><p id="p1388516240011"><a name="p1388516240011"></a><a name="p1388516240011"></a>virtual int OnRemoteRequest(uint32_t code, MessageParcel &amp;data, MessageParcel &amp;reply, MessageOption &amp;option)</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p1188582414016"><a name="p1188582414016"></a><a name="p1188582414016"></a>请求处理方法,派生类需要重写,处理Proxy的请求并返回结果。</p>
</td>
</tr>
<tr id="row108856241904"><td class="cellrowborder" valign="top" width="14.12141214121412%" headers="mcps1.2.4.1.1 "><p id="p6885924609"><a name="p6885924609"></a><a name="p6885924609"></a>IRemoteProxy</p>
</td>
<td class="cellrowborder" valign="top" width="52.54525452545254%" headers="mcps1.2.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p688592413018"><a name="p688592413018"></a><a name="p688592413018"></a>业务Proxy类派生自IRemoteProxy类。</p>
</td>
</tr>
</tbody>
</table>
## 开发步骤<a name="section4207112818418"></a>
**Native侧开发步骤** **Native侧开发步骤**
1. 定义IPC接口ITestAbility 1. 定义IPC接口ITestAbility
SA接口继承IPC基类接口IRemoteBroker,接口里定义描述符、业务函数和消息码,其中业务函数在Proxy端和Stub端都需要实现。 SA接口继承IPC基类接口IRemoteBroker,接口里定义描述符、业务函数和消息码,其中业务函数在Proxy端和Stub端都需要实现。
``` ```
class ITestAbility : public IRemoteBroker { class ITestAbility : public IRemoteBroker {
public: public:
// DECLARE_INTERFACE_DESCRIPTOR是必须的, 入参需使用std::u16string; // DECLARE_INTERFACE_DESCRIPTOR是必须的,入参需使用std::u16string;
DECLARE_INTERFACE_DESCRIPTOR(u"test.ITestAbility"); DECLARE_INTERFACE_DESCRIPTOR(u"test.ITestAbility");
int TRANS_ID_PING_ABILITY = 1; // 定义消息码 int TRANS_ID_PING_ABILITY = 1; // 定义消息码
virtual int TestPingAbility(const std::u16string &dummy) = 0; // 定义业务函数 virtual int TestPingAbility(const std::u16string &dummy) = 0; // 定义业务函数
...@@ -63,8 +38,7 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信, ...@@ -63,8 +38,7 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
``` ```
2. 定义和实现服务端TestAbilityStub 2. 定义和实现服务端TestAbilityStub
该类是和IPC框架相关的实现,需要继承 IRemoteStub&lt;ITestAbility&gt;。Stub端作为接收请求的一端,需重写OnRemoteRequest方法用于接收客户端调用。
该类是和IPC框架相关的实现,需要继承 IRemoteStub<ITestAbility\>。Stub端作为接收请求的一端,需重写OnRemoteRequest方法用于接收客户端调用。
``` ```
class TestAbilityStub : public IRemoteStub<ITestAbility> { class TestAbilityStub : public IRemoteStub<ITestAbility> {
...@@ -90,7 +64,6 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信, ...@@ -90,7 +64,6 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
``` ```
3. 定义服务端业务函数具体实现类TestAbility 3. 定义服务端业务函数具体实现类TestAbility
``` ```
class TestAbility : public TestAbilityStub { class TestAbility : public TestAbilityStub {
public: public:
...@@ -102,9 +75,8 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信, ...@@ -102,9 +75,8 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
} }
``` ```
4. 定义和实现客户端TestAbilityProxy 4. 定义和实现客户端 TestAbilityProxy
该类是Proxy端实现,继承IRemoteProxy&lt;ITestAbility&gt;,调用SendRequest接口向Stub端发送请求,对外暴露服务端提供的能力。
该类是Proxy端实现,继承IRemoteProxy<ITestAbility\>,调用SendRequest接口向Stub端发送请求,对外暴露服务端提供的能力。
``` ```
class TestAbilityProxy : public IRemoteProxy<ITestAbility> { class TestAbilityProxy : public IRemoteProxy<ITestAbility> {
...@@ -120,7 +92,7 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信, ...@@ -120,7 +92,7 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
{ {
} }
int TestAbilityProxy::TestPingService(const std::u16string &dummy) { int TestAbilityProxy::TestPingService(const std::u16string &dummy){
MessageOption option; MessageOption option;
MessageParcel dataParcel, replyParcel; MessageParcel dataParcel, replyParcel;
dataParcel.WriteString16(dummy); dataParcel.WriteString16(dummy);
...@@ -130,9 +102,8 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信, ...@@ -130,9 +102,8 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
} }
``` ```
5. SA注册与启动 5. SA 注册与启动
SA 需要将自己的 TestAbilityStub实例通过 AddSystemAbility接口注册到 SystemAbilityManager,设备内与分布式的注册参数不同。
SA需要将自己的TestAbilityStub实例通过AddSystemAbility接口注册到SystemAbilityManager,设备内与分布式的注册参数不同。
``` ```
// 注册到本设备内 // 注册到本设备内
...@@ -146,8 +117,7 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信, ...@@ -146,8 +117,7 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
int result = samgr->AddSystemAbility(said, new TestAbility(), saExtra); int result = samgr->AddSystemAbility(said, new TestAbility(), saExtra);
``` ```
6. SA获取与调用 6. SA 获取与调用
通过SystemAbilityManager的GetSystemAbility方法可获取到对应SA的代理IRemoteObject,然后构造TestAbilityProxy即可。 通过SystemAbilityManager的GetSystemAbility方法可获取到对应SA的代理IRemoteObject,然后构造TestAbilityProxy即可。
``` ```
...@@ -161,5 +131,3 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信, ...@@ -161,5 +131,3 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
sptr<IRemoteObject> remoteObject = samgr->GetSystemAbility(sdid, deviceId); // deviceId是指定设备的标识符 sptr<IRemoteObject> remoteObject = samgr->GetSystemAbility(sdid, deviceId); // deviceId是指定设备的标识符
sptr<TestAbilityProxy> proxy(new TestAbilityProxy(remoteObject)); // 直接构造具体Proxy sptr<TestAbilityProxy> proxy(new TestAbilityProxy(remoteObject)); // 直接构造具体Proxy
``` ```
# IPC与RPC通信概述<a name="ZH-CN_TOPIC_0000001103870800"></a> # IPC与RPC通信概述
- [基本概念](#section175012297491) - [基本概念](#基本概念)
- [约束与限制](#section2029921310472) - [约束与限制](#约束与限制)
- [相关模块](#section1189019299446) - [相关模块](#相关模块)
## 基本概念<a name="section175012297491"></a> ## 基本概念
IPC(Inter-Process Communication)与RPC(Remote Procedure Call)机制用于实现跨进程通信,不同的是前者使用Binder驱动,用于设备内的跨进程通信,而后者使用软总线驱动,用于跨设备跨进程通信。IPC和RPC通常采用客户端-服务器(Client-Server)模型,服务请求方(Client)可获取提供服务提供方(Server)的代理 (Proxy),并通过此代理读写数据来实现进程间的数据通信。通常,Server会先注册系统能力(System Ability)到系统能力管理者(System Ability Manager,缩写SAMgr)中,SAMgr负责管理这些SA并向Client提供相关的接口。Client要和某个具体的SA通信,必须先从SAMgr中获取该SA的代理,然后使用代理和SA通信。下文使用Proxy表示服务请求方,Stub表示服务提供方。 IPC(Inter-Process Communication)与RPC(Remote Procedure Call)机制用于实现跨进程通信,不同的是前者使用Binder驱动,用于设备内的跨进程通信,而后者使用软总线驱动,用于跨设备跨进程通信。IPC和RPC通常采用客户端-服务器(Client-Server)模型,服务请求方(Client)可获取提供服务提供方(Server)的代理 (Proxy),并通过此代理读写数据来实现进程间的数据通信。通常,Server会先注册系统能力(System Ability)到系统能力管理者(System Ability Manager,缩写SAMgr)中,SAMgr负责管理这些SA并向Client提供相关的接口。Client要和某个具体的SA通信,必须先从SAMgr中获取该SA的代理,然后使用代理和SA通信。下文使用Proxy表示服务请求方,Stub表示服务提供方。
## 约束与限制<a name="section2029921310472"></a>
## 约束与限制
目前暂不支持的场景: 目前暂不支持的场景:
跨设备RPC 跨设备RPC
## 相关模块<a name="section1189019299446"></a>
分布式任务调度子系统 ## 相关模块
分布式任务调度子系统
# IPC与RPC通信<a name="ZH-CN_TOPIC_0000001157385969"></a> # IPC与RPC通信
- **[IPC与RPC通信概述](ipc-rpc-overview.md)** - **[IPC与RPC通信概述](ipc-rpc-overview.md)**
- **[IPC与RPC通信开发指导](ipc-rpc-development-guideline.md)** - **[IPC与RPC通信开发指导](ipc-rpc-development-guideline.md)**
- **[远端状态订阅开发实例](subscribe-remote-state.md)** - **[远端状态订阅开发实例](subscribe-remote-state.md)**
\ No newline at end of file
# 远端状态订阅开发实例<a name="ZH-CN_TOPIC_0000001104030756"></a> # 远端状态订阅开发实例
IPC/RPC 提供对远端 Stub对象状态的订阅机制, 在远端 Stub对象死亡时,可触发死亡通知告诉本地 Proxy对象。这种状态通知订阅并不会自动附加在每个本地 Proxy对象上,需要调用特定接口完成,当不再需要订阅时也需要调用特定接口取消。使用这种订阅机制的用户,需要实现死亡通知接口DeathRecipient并实现onRemoteDied方法,清理资源,该方法会在 远端 Stub对象所在进程死亡,或所在设备离开组网时被回调。值得注意的是,调用这些接口有一定的顺序。首先,必然需要 Proxy订阅 Stub死亡通知,若在订阅期间未发生 Stub死亡,则可在不再需要时取消订阅;若在订阅期间发生 Stub死亡,则会自动触发 Proxy自定义的后续操作,也无需再手动取消订阅。
RPC目前不提供匿名 Stub对象的死亡通知,即只有向 SAMgr注册过的服务才能被订阅死亡通知。 IPC则支持匿名对象的死亡通知。
IPC/RPC提供对远端Stub对象状态的订阅机制, 在远端Stub对象死亡时,可触发死亡通知告诉本地Proxy对象。这种状态通知订阅并不会自动附加在每个本地Proxy对象上,需要调用特定接口完成,当不再需要订阅时也需要调用特定接口取消。使用这种订阅机制的用户,需要实现死亡通知接口DeathRecipient并实现onRemoteDied方法,清理资源,该方法会在远端Stub对象所在进程死亡,或所在设备离开组网时被回调。值得注意的是,调用这些接口有一定的顺序。首先,必然需要Proxy订阅Stub死亡通知,若在订阅期间未发生Stub死亡,则可在不再需要时取消订阅;若在订阅期间发生Stub死亡,则会自动触发Proxy自定义的后续操作,也无需再手动取消订阅。
RPC目前不提供匿名Stub对象的死亡通知,即只有向SAMgr注册过的服务才能被订阅死亡通知。IPC则支持匿名对象的死亡通知。
**Native侧接口** **Native侧接口**
依次为添加对远端Stub对象状态订阅的接口,取消订阅的接口,及感知到远端Stub对象死亡而进行本地操作的接口: 依次为添加对远端Stub对象状态订阅的接口,取消订阅的接口,及感知到远端Stub对象死亡而进行本地操作的接口:
``` ```
bool AddDeathRecipient(const sptr<DeathRecipient> &recipient); bool AddDeathRecipient(const sptr<DeathRecipient> &recipient);
bool RemoveDeathRecipient(const sptr<DeathRecipient> &recipient); bool RemoveDeathRecipient(const sptr<DeathRecipient> &recipient);
void OnRemoteDied(const wptr<IRemoteObject> &object); void OnRemoteDied(const wptr<IRemoteObject> &object);
``` ```
参考代码 参考代码
``` ```
class TestDeathRecipient : public IRemoteObject::DeathRecipient { class TestDeathRecipient : public IRemoteObject::DeathRecipient {
public: public:
virtual void OnRemoteDied(const wptr<IRemoteObject>& remoteObject); virtual void OnRemoteDied(const wptr<IRemoteObject>& remoteObject);
} }
sptr<IRemoteObject::DeathRecipient> deathRecipient (new TestDeathRecipient()); // 构造一个死亡通知对象 sptr<IRemoteObject::DeathRecipient> deathRecipient (new TestDeathRecipient());// 构造一个死亡通知对象
bool result = proxy->AddDeathRecipient(deathRecipient); // 注册死亡通知 bool result = proxy->AddDeathRecipient(deathRecipient); // 注册死亡通知
result = proxy->RemoveDeathRecipient(deathRecipient); // 移除死亡通知 result = proxy->RemoveDeathRecipient(deathRecipient); // 移除死亡通知
``` ```
# JS开发参考 # JS开发参考
- [框架说明](js-framework.md) - 框架说明
- [文件组织](js-framework-file.md) - [文件组织](js-framework-file.md)
- [js标签配置](js-framework-js-tag.md) - [js标签配置](js-framework-js-tag.md)
- [app.js](js-framework-js-file.md) - [app.js](js-framework-js-file.md)
- [语法](js-framework-syntax.md) - 语法
- [HML语法参考](js-framework-syntax-hml.md) - [HML语法参考](js-framework-syntax-hml.md)
- [CSS语法参考](js-framework-syntax-css.md) - [CSS语法参考](js-framework-syntax-css.md)
- [JS语法参考](js-framework-syntax-js.md) - [JS语法参考](js-framework-syntax-js.md)
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
- [多语言支持](js-framework-multiple-languages.md) - [多语言支持](js-framework-multiple-languages.md)
- [组件](component/Readme-CN.md) - [组件](component/Readme-CN.md)
- [通用](component/js-components-common.md) - 通用
- [通用属性](component/js-components-common-attributes.md) - [通用属性](component/js-components-common-attributes.md)
- [通用样式](component/js-components-common-styles.md) - [通用样式](component/js-components-common-styles.md)
- [通用事件](component/js-components-common-events.md) - [通用事件](component/js-components-common-events.md)
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
- [自定义字体样式](component/js-components-common-customizing-font.md) - [自定义字体样式](component/js-components-common-customizing-font.md)
- [原子布局](component/js-components-common-atomic-layout.md) - [原子布局](component/js-components-common-atomic-layout.md)
- [容器组件](component/js-components-container.md) - 容器组件
- [badge](component/js-components-container-badge.md) - [badge](component/js-components-container-badge.md)
- [dialog](component/js-components-container-dialog.md) - [dialog](component/js-components-container-dialog.md)
- [div](component/js-components-container-div.md) - [div](component/js-components-container-div.md)
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
- [tab-bar](component/js-components-container-tab-bar.md) - [tab-bar](component/js-components-container-tab-bar.md)
- [tab-content](component/js-components-container-tab-content.md) - [tab-content](component/js-components-container-tab-content.md)
- [基础组件](component/js-components-basic.md) - 基础组件
- [button](component/js-components-basic-button.md) - [button](component/js-components-basic-button.md)
- [chart](component/js-components-basic-chart.md) - [chart](component/js-components-basic-chart.md)
- [divider](component/js-components-basic-divider.md) - [divider](component/js-components-basic-divider.md)
...@@ -74,10 +74,10 @@ ...@@ -74,10 +74,10 @@
- [toolbar-item](component/js-components-basic-toolbar-item.md) - [toolbar-item](component/js-components-basic-toolbar-item.md)
- [toggle](component/js-components-basic-toggle.md) - [toggle](component/js-components-basic-toggle.md)
- [媒体组件](component/js-components-media.md) - 媒体组件
- [video](component/js-components-media-video.md) - [video](component/js-components-media-video.md)
- [画布组件](component/js-components-canvas.md) - 画布组件
- [canvas组件](component/js-components-canvas-canvas.md) - [canvas组件](component/js-components-canvas-canvas.md)
- [CanvasRenderingContext2D对象](component/js-components-canvas-canvasrenderingcontext2d.md) - [CanvasRenderingContext2D对象](component/js-components-canvas-canvasrenderingcontext2d.md)
- [Image对象](component/js-components-canvas-image.md) - [Image对象](component/js-components-canvas-image.md)
...@@ -88,15 +88,15 @@ ...@@ -88,15 +88,15 @@
- [OffscreenCanvas对象](component/js-components-canvas-offscreencanvas.md) - [OffscreenCanvas对象](component/js-components-canvas-offscreencanvas.md)
- [OffscreenCanvasRenderingContext2D对象](component/js-components-canvas-offscreencanvasrenderingcontext2d.md) - [OffscreenCanvasRenderingContext2D对象](component/js-components-canvas-offscreencanvasrenderingcontext2d.md)
- [栅格组件](component/js-components-grid.md) - 栅格组件
- [基本概念](component/js-components-grid-basic-concepts.md) - [基本概念](component/js-components-grid-basic-concepts.md)
- [grid-container](component/js-components-grid-container.md) - [grid-container](component/js-components-grid-container.md)
- [grid-row](component/js-components-grid-row.md) - [grid-row](component/js-components-grid-row.md)
- [grid-col](component/js-components-grid-col.md) - [grid-col](component/js-components-grid-col.md)
- [svg组件](component/js-components-svg.md) - svg组件
- [通用属性](component/js-components-svg-common-attributes.md) - [通用属性](component/js-components-svg-common-attributes.md)
- [svg](component/js-components-svg-0.md) - [svg](component/js-components-svg.md)
- [rect](component/js-components-svg-rect.md) - [rect](component/js-components-svg-rect.md)
- [circle](component/js-components-svg-circle.md) - [circle](component/js-components-svg-circle.md)
- [ellipse](component/js-components-svg-ellipse.md) - [ellipse](component/js-components-svg-ellipse.md)
...@@ -111,7 +111,7 @@ ...@@ -111,7 +111,7 @@
- [animateMotion](component/js-components-svg-animate-motion.md) - [animateMotion](component/js-components-svg-animate-motion.md)
- [animateTransform](component/js-components-svg-animate-transform.md) - [animateTransform](component/js-components-svg-animate-transform.md)
- [自定义组件](component/js-components-custom.md) - 自定义组件
- [基本用法](component/js-components-custom-basic-usage.md) - [基本用法](component/js-components-custom-basic-usage.md)
- [自定义事件](component/js-components-custom-events.md) - [自定义事件](component/js-components-custom-events.md)
- [Props](component/js-components-custom-props.md) - [Props](component/js-components-custom-props.md)
...@@ -130,7 +130,7 @@ ...@@ -130,7 +130,7 @@
- [Notification模块](apis/js-apis-notification.md) - [Notification模块](apis/js-apis-notification.md)
- [Context模块](apis/js-apis-Context.md) - [Context模块](apis/js-apis-Context.md)
- [基本功能](apis/js-apis-basic-features.md) - 基本功能
- [应用上下文](apis/js-apis-system-app.md) - [应用上下文](apis/js-apis-system-app.md)
- [日志打印](apis/js-apis-basic-features-logs.md) - [日志打印](apis/js-apis-basic-features-logs.md)
- [页面路由](apis/js-apis-system-router.md) - [页面路由](apis/js-apis-system-router.md)
...@@ -142,7 +142,7 @@ ...@@ -142,7 +142,7 @@
- [性能打点](apis/js-apis-bytrace.md) - [性能打点](apis/js-apis-bytrace.md)
- [分布式帐号管理](apis/js-apis-distributedaccount.md) - [分布式帐号管理](apis/js-apis-distributedaccount.md)
- [媒体](apis/js-apis-multmedia.md) - 媒体
- [音频管理](apis/js-apis-audio.md) - [音频管理](apis/js-apis-audio.md)
- [音频播放](apis/js-apis-media.md) - [音频播放](apis/js-apis-media.md)
...@@ -152,7 +152,7 @@ ...@@ -152,7 +152,7 @@
- [SIM卡管理](apis/js-apis-sim.md) - [SIM卡管理](apis/js-apis-sim.md)
- [网络搜索](apis/js-apis-radio.md) - [网络搜索](apis/js-apis-radio.md)
- [数据管理](apis/js-apis-data.md) - 数据管理
- [文件管理](apis/js-apis-fileio.md) - [文件管理](apis/js-apis-fileio.md)
- [单版本分布式数据库](apis/js-apis-data-singlekvstore.md) - [单版本分布式数据库](apis/js-apis-data-singlekvstore.md)
- [创建和获取分布式数据库](apis/js-apis-data-kvmanager.md) - [创建和获取分布式数据库](apis/js-apis-data-kvmanager.md)
...@@ -161,7 +161,7 @@ ...@@ -161,7 +161,7 @@
- [数据类型描述](apis/js-apis-data-type.md) - [数据类型描述](apis/js-apis-data-type.md)
- [轻量级存储](apis/js-apis-data-storage.md) - [轻量级存储](apis/js-apis-data-storage.md)
- [设备管理](apis/js-apis-device-mgmt.md) - 设备管理
- [设备信息](apis/js-apis-deviceinfo.md) - [设备信息](apis/js-apis-deviceinfo.md)
- [系统属性](apis/js-apis-systemparameter.md) - [系统属性](apis/js-apis-systemparameter.md)
- [系统恢复](apis/js-apis-update.md) - [系统恢复](apis/js-apis-update.md)
......
# 拨打电话<a name="ZH-CN_TOPIC_0000001148697292"></a> # 拨打电话
- [导入模块](#section111401036143) - [导入模块](#导入模块)
- [call.dial](#section1961259194312) - [call.dial](#call.dial-callback1)
- [call.dial](#section387281814438) - [call.dial](#call.dial-callback2)
- [call.dial](#section37173354913) - [call.dial](#call.dial-promise)
- [call.hasCall](#section19558123217015) - [call.hasCall](#call.hasCall-callback)
- [call.hasCall](#section12874319303) - [call.hasCall](#call.hasCall-promise)
- [call.getCallState](#section5882223124910) - [call.getCallState](#call.getCallState-callback])
- [call.getCallState](#section198597561794) - [call.getCallState](#call.getCallState-promise)
- [call.isEmergencyPhoneNumber7+](#section8560112174319) - [call.isEmergencyPhoneNumber<sup>7+</sup>](#call.isEmergencyPhoneNumber-callback1)
- [call.isEmergencyPhoneNumber7+](#section9565131204319) - [call.isEmergencyPhoneNumber<sup>7+</sup>](#call.isEmergencyPhoneNumber-callback2)
- [call.isEmergencyPhoneNumber7+](#section5569131234312) - [call.isEmergencyPhoneNumber<sup>7+</sup>](#call.isEmergencyPhoneNumber-promise)
- [call.formatPhoneNumber7+](#section1532018310579) - [call.formatPhoneNumber<sup>7+</sup>](#call.formatPhoneNumber-callback1)
- [call.formatPhoneNumber7+](#section1832553165720) - [call.formatPhoneNumber<sup>7+</sup>](#call.formatPhoneNumber-callback2)
- [call.formatPhoneNumber7+](#section1933033195716) - [call.formatPhoneNumber<sup>7+</sup>](#call.formatPhoneNumber-promise)
- [call.formatPhoneNumberToE1647+](#section10285180112418) - [call.formatPhoneNumberToE164<sup>7+</sup>](#call.formatPhoneNumberToE164-callback)
- [call.formatPhoneNumberToE1647+](#section142931509247) - [call.formatPhoneNumberToE164<sup>7+</sup>](#call.formatPhoneNumberToE164-promise)
- [DialOptions](#section12262183471518) - [DialOptions](#DialOptions)
- [CallState](#section345181318300) - [CallState](#CallState)
- [EmergencyNumberOptions7+](#section03689893518) - [EmergencyNumberOptions<sup>7+</sup>](#EmergencyNumberOptions)
- [NumberFormatOptions7+](#section23348305716) - [NumberFormatOptions<sup>7+</sup>](#NumberFormatOptions)
>**说明:** >**说明:**
> >
>标记7+的表示从API Version 7开始支持,未标记的表示从API Version 6开始支持。 >- 从 API Version 6 开始支持。
>
>- 标记<sup>7+</sup>的接口从API Version 7开始支持。
## 导入模块<a name="section111401036143"></a> ## 导入模块
``` ```
import call from '@ohos.telephony.call'; import call from '@ohos.telephony.call';
``` ```
## call.dial<a name="section1961259194312"></a> ## call.dial<a name=call.dial-callback1></a>
dial\(phoneNumber: string, callback: AsyncCallback<boolean\>\): void dial\(phoneNumber: string, callback: AsyncCallback<boolean\>\): void
...@@ -42,38 +44,10 @@ dial\(phoneNumber: string, callback: AsyncCallback<boolean\>\): void ...@@ -42,38 +44,10 @@ dial\(phoneNumber: string, callback: AsyncCallback<boolean\>\): void
- 参数 - 参数
<a name="table37717572535"></a> | 参数 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row97755715537"><th class="cellrowborder" valign="top" width="19.009999999999998%" id="mcps1.1.5.1.1"><p id="p37714572534"><a name="p37714572534"></a><a name="p37714572534"></a>参数名</p> | -------- | -------- | -------- | -------- |
</th> | phoneNumber | string | 是 |电话号码。|
<th class="cellrowborder" valign="top" width="28.939999999999998%" id="mcps1.1.5.1.2"><p id="p277105735313"><a name="p277105735313"></a><a name="p277105735313"></a>类型</p> | callback |AsyncCallback&lt;boolean&gt;|是|回调函数:<br/>- true:成功。<br/>- false:失败。|
</th>
<th class="cellrowborder" valign="top" width="10.459999999999999%" id="mcps1.1.5.1.3"><p id="p377195716532"><a name="p377195716532"></a><a name="p377195716532"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="41.589999999999996%" id="mcps1.1.5.1.4"><p id="p878957125311"><a name="p878957125311"></a><a name="p878957125311"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row117810571533"><td class="cellrowborder" valign="top" width="19.009999999999998%" headers="mcps1.1.5.1.1 "><p id="p1778145716538"><a name="p1778145716538"></a><a name="p1778145716538"></a>phoneNumber</p>
</td>
<td class="cellrowborder" valign="top" width="28.939999999999998%" headers="mcps1.1.5.1.2 "><p id="p1978165711532"><a name="p1978165711532"></a><a name="p1978165711532"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="10.459999999999999%" headers="mcps1.1.5.1.3 "><p id="p207815717533"><a name="p207815717533"></a><a name="p207815717533"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="41.589999999999996%" headers="mcps1.1.5.1.4 "><p id="p11781757155320"><a name="p11781757155320"></a><a name="p11781757155320"></a>电话号码。</p>
</td>
</tr>
<tr id="row185881325515"><td class="cellrowborder" valign="top" width="19.009999999999998%" headers="mcps1.1.5.1.1 "><p id="p35931313554"><a name="p35931313554"></a><a name="p35931313554"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="28.939999999999998%" headers="mcps1.1.5.1.2 "><p id="p75971305516"><a name="p75971305516"></a><a name="p75971305516"></a>AsyncCallback&lt;boolean&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.459999999999999%" headers="mcps1.1.5.1.3 "><p id="p125951305519"><a name="p125951305519"></a><a name="p125951305519"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="41.589999999999996%" headers="mcps1.1.5.1.4 "><p id="p1276320184611"><a name="p1276320184611"></a><a name="p1276320184611"></a>回调函数:</p>
<a name="ul1468142292116"></a><a name="ul1468142292116"></a><ul id="ul1468142292116"><li>true:成功。</li><li>false:失败。</li></ul>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -84,7 +58,7 @@ dial\(phoneNumber: string, callback: AsyncCallback<boolean\>\): void ...@@ -84,7 +58,7 @@ dial\(phoneNumber: string, callback: AsyncCallback<boolean\>\): void
``` ```
## call.dial<a name="section387281814438"></a> ## call.dial<a name=call.dial-callback2></a>
dial\(phoneNumber: string, options: DialOptions, callback: AsyncCallback<boolean\>\): void dial\(phoneNumber: string, options: DialOptions, callback: AsyncCallback<boolean\>\): void
...@@ -94,47 +68,12 @@ dial\(phoneNumber: string, options: DialOptions, callback: AsyncCallback<boolean ...@@ -94,47 +68,12 @@ dial\(phoneNumber: string, options: DialOptions, callback: AsyncCallback<boolean
- 参数 - 参数
<a name="table11872418104316"></a> | 参数 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row13873518134320"><th class="cellrowborder" valign="top" width="17.66%" id="mcps1.1.5.1.1"><p id="p1873111820437"><a name="p1873111820437"></a><a name="p1873111820437"></a>参数名</p> | ----------- | ---------------------------- | ---- | ------------------------------------------------- |
</th> | phoneNumber | string | 是 | 电话号码。 |
<th class="cellrowborder" valign="top" width="28.18%" id="mcps1.1.5.1.2"><p id="p687301844313"><a name="p687301844313"></a><a name="p687301844313"></a>类型</p> | options | DialOptions | 是 | 通话参数,参考[DialOptions](#DialOptions)。 |
</th> | callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数:<br/>- true:成功。<br/>- false:失败。 |
<th class="cellrowborder" valign="top" width="8.06%" id="mcps1.1.5.1.3"><p id="p19873318114314"><a name="p19873318114314"></a><a name="p19873318114314"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="46.1%" id="mcps1.1.5.1.4"><p id="p1087316184438"><a name="p1087316184438"></a><a name="p1087316184438"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1587321816434"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p13873218194315"><a name="p13873218194315"></a><a name="p13873218194315"></a>phoneNumber</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p11873818114315"><a name="p11873818114315"></a><a name="p11873818114315"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p14873018194316"><a name="p14873018194316"></a><a name="p14873018194316"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p19874418104310"><a name="p19874418104310"></a><a name="p19874418104310"></a>电话号码。</p>
</td>
</tr>
<tr id="row1268000144419"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p46801407448"><a name="p46801407448"></a><a name="p46801407448"></a>options</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p206811503445"><a name="p206811503445"></a><a name="p206811503445"></a>DialOptions</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p1468111016441"><a name="p1468111016441"></a><a name="p1468111016441"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p8681200174415"><a name="p8681200174415"></a><a name="p8681200174415"></a>通话参数,参考<a href="#section12262183471518">DialOptions</a>。</p>
</td>
</tr>
<tr id="row0874181814310"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p88742018194313"><a name="p88742018194313"></a><a name="p88742018194313"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p15874718174310"><a name="p15874718174310"></a><a name="p15874718174310"></a>AsyncCallback&lt;boolean&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p11874151814438"><a name="p11874151814438"></a><a name="p11874151814438"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p2051315401127"><a name="p2051315401127"></a><a name="p2051315401127"></a>回调函数:</p>
<a name="ul7523151914208"></a><a name="ul7523151914208"></a><ul id="ul7523151914208"><li>true:成功。</li><li>false:失败。</li></ul>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -147,7 +86,7 @@ dial\(phoneNumber: string, options: DialOptions, callback: AsyncCallback<boolean ...@@ -147,7 +86,7 @@ dial\(phoneNumber: string, options: DialOptions, callback: AsyncCallback<boolean
``` ```
## call.dial<a name="section37173354913"></a> ## call.dial<a name=call.dial-promise></a>
dial\(phoneNumber: string, options?: DialOptions\): Promise<boolean\> dial\(phoneNumber: string, options?: DialOptions\): Promise<boolean\>
...@@ -157,55 +96,16 @@ dial\(phoneNumber: string, options?: DialOptions\): Promise<boolean\> ...@@ -157,55 +96,16 @@ dial\(phoneNumber: string, options?: DialOptions\): Promise<boolean\>
- 参数 - 参数
<a name="table1170025144917"></a> | 参数 | 类型 | 必填 | 说明 |
| ----------- | ----------- | ---- | ------------------------------------------- |
<table><thead align="left"><tr id="row14171425124919"><th class="cellrowborder" valign="top" width="19.259999999999998%" id="mcps1.1.5.1.1"><p id="p1617102513494"><a name="p1617102513494"></a><a name="p1617102513494"></a>参数名</p> | phoneNumber | string | 是 | 电话号码。 |
</th> | options | DialOptions | 是 | 通话参数,参考[DialOptions](#DialOptions)。 |
<th class="cellrowborder" valign="top" width="20.599999999999998%" id="mcps1.1.5.1.2"><p id="p181711025174911"><a name="p181711025174911"></a><a name="p181711025174911"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="12.35%" id="mcps1.1.5.1.3"><p id="p61711625174917"><a name="p61711625174917"></a><a name="p61711625174917"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="47.79%" id="mcps1.1.5.1.4"><p id="p181715257498"><a name="p181715257498"></a><a name="p181715257498"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row18171162511494"><td class="cellrowborder" valign="top" width="19.259999999999998%" headers="mcps1.1.5.1.1 "><p id="p617113255493"><a name="p617113255493"></a><a name="p617113255493"></a>phoneNumber</p>
</td>
<td class="cellrowborder" valign="top" width="20.599999999999998%" headers="mcps1.1.5.1.2 "><p id="p1817102504916"><a name="p1817102504916"></a><a name="p1817102504916"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="12.35%" headers="mcps1.1.5.1.3 "><p id="p3171162554917"><a name="p3171162554917"></a><a name="p3171162554917"></a></p>
</td>
<td class="cellrowborder" valign="top" width="47.79%" headers="mcps1.1.5.1.4 "><p id="p13171132514919"><a name="p13171132514919"></a><a name="p13171132514919"></a>电话号码。</p>
</td>
</tr>
<tr id="row1717292510494"><td class="cellrowborder" valign="top" width="19.259999999999998%" headers="mcps1.1.5.1.1 "><p id="p7172925154911"><a name="p7172925154911"></a><a name="p7172925154911"></a>options</p>
</td>
<td class="cellrowborder" valign="top" width="20.599999999999998%" headers="mcps1.1.5.1.2 "><p id="p5552285116"><a name="p5552285116"></a><a name="p5552285116"></a>DialOptions</p>
</td>
<td class="cellrowborder" valign="top" width="12.35%" headers="mcps1.1.5.1.3 "><p id="p131725254492"><a name="p131725254492"></a><a name="p131725254492"></a></p>
</td>
<td class="cellrowborder" valign="top" width="47.79%" headers="mcps1.1.5.1.4 "><p id="p15172625154920"><a name="p15172625154920"></a><a name="p15172625154920"></a>通话参数,参考<a href="#section12262183471518">DialOptions</a></p>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table1918382310112"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row7183202315119"><th class="cellrowborder" valign="top" width="26.06%" id="mcps1.1.3.1.1"><p id="p1918414230115"><a name="p1918414230115"></a><a name="p1918414230115"></a>类型</p> | ---------------------- | --------------------------------- |
</th> | Promise&lt;boolean&gt; | 以Promise形式返回拨打电话的结果。 |
<th class="cellrowborder" valign="top" width="73.94%" id="mcps1.1.3.1.2"><p id="p1918412232014"><a name="p1918412232014"></a><a name="p1918412232014"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row2184132316110"><td class="cellrowborder" valign="top" width="26.06%" headers="mcps1.1.3.1.1 "><p id="p1218415231011"><a name="p1218415231011"></a><a name="p1218415231011"></a>Promise&lt;boolean&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="73.94%" headers="mcps1.1.3.1.2 "><p id="p1218411231411"><a name="p1218411231411"></a><a name="p1218411231411"></a>以Promise形式返回拨打电话的结果。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -220,7 +120,7 @@ dial\(phoneNumber: string, options?: DialOptions\): Promise<boolean\> ...@@ -220,7 +120,7 @@ dial\(phoneNumber: string, options?: DialOptions\): Promise<boolean\>
}); });
``` ```
## call.hasCall<a name="section19558123217015"></a> ## call.hasCall<a name=call.hasCall-callback></a>
hasCall\(callback: AsyncCallback<boolean\>\): void hasCall\(callback: AsyncCallback<boolean\>\): void
...@@ -228,29 +128,9 @@ hasCall\(callback: AsyncCallback<boolean\>\): void ...@@ -228,29 +128,9 @@ hasCall\(callback: AsyncCallback<boolean\>\): void
- 参数 - 参数
<a name="table82297481245"></a> | 参数 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row1023013489414"><th class="cellrowborder" valign="top" width="17.66%" id="mcps1.1.5.1.1"><p id="p122303481944"><a name="p122303481944"></a><a name="p122303481944"></a>参数名</p> | -------- | ---------------------------- | ---- | ------------------------------------------------------------ |
</th> | callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数:<br/>- true:当前存在通话。<br/>- false:当前不存在通话。 |
<th class="cellrowborder" valign="top" width="28.18%" id="mcps1.1.5.1.2"><p id="p823018480414"><a name="p823018480414"></a><a name="p823018480414"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="8.06%" id="mcps1.1.5.1.3"><p id="p723013484415"><a name="p723013484415"></a><a name="p723013484415"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="46.1%" id="mcps1.1.5.1.4"><p id="p92305481844"><a name="p92305481844"></a><a name="p92305481844"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row72317481449"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p723154815414"><a name="p723154815414"></a><a name="p723154815414"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p02317481547"><a name="p02317481547"></a><a name="p02317481547"></a>AsyncCallback&lt;boolean&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p82311648043"><a name="p82311648043"></a><a name="p82311648043"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p16933172513276"><a name="p16933172513276"></a><a name="p16933172513276"></a>回调函数:</p>
<a name="ul8778181216283"></a><a name="ul8778181216283"></a><ul id="ul8778181216283"><li>true:当前存在通话。</li><li>false:当前不存在通话。</li></ul>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -261,7 +141,7 @@ hasCall\(callback: AsyncCallback<boolean\>\): void ...@@ -261,7 +141,7 @@ hasCall\(callback: AsyncCallback<boolean\>\): void
``` ```
## call.hasCall<a name="section12874319303"></a> ## call.hasCall<a name=call.hasCall-promise></a>
hasCall\(\): Promise<boolean\> hasCall\(\): Promise<boolean\>
...@@ -269,20 +149,9 @@ hasCall\(\): Promise<boolean\> ...@@ -269,20 +149,9 @@ hasCall\(\): Promise<boolean\>
- 返回值 - 返回值
<a name="table1123111015394"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row0231309398"><th class="cellrowborder" valign="top" width="26.06%" id="mcps1.1.3.1.1"><p id="p162311609398"><a name="p162311609398"></a><a name="p162311609398"></a>类型</p> | ---------------------- | --------------------------------------- |
</th> | Promise&lt;boolean&gt; | 以Promise形式异步返回判断是否存在通话。 |
<th class="cellrowborder" valign="top" width="73.94%" id="mcps1.1.3.1.2"><p id="p923118010397"><a name="p923118010397"></a><a name="p923118010397"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row82319033919"><td class="cellrowborder" valign="top" width="26.06%" headers="mcps1.1.3.1.1 "><p id="p223130143914"><a name="p223130143914"></a><a name="p223130143914"></a>Promise&lt;boolean&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="73.94%" headers="mcps1.1.3.1.2 "><p id="p15231809396"><a name="p15231809396"></a><a name="p15231809396"></a>以Promise形式异步返回判断是否存在通话。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -296,7 +165,7 @@ hasCall\(\): Promise<boolean\> ...@@ -296,7 +165,7 @@ hasCall\(\): Promise<boolean\>
``` ```
## call.getCallState<a name="section5882223124910"></a> ## call.getCallState<a name=call.getCallState-callback></a>
getCallState\(callback: AsyncCallback<CallState\>\): void getCallState\(callback: AsyncCallback<CallState\>\): void
...@@ -304,28 +173,9 @@ getCallState\(callback: AsyncCallback<CallState\>\): void ...@@ -304,28 +173,9 @@ getCallState\(callback: AsyncCallback<CallState\>\): void
- 参数 - 参数
<a name="table640016365210"></a> | 参数 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row11401163612219"><th class="cellrowborder" valign="top" width="17.66%" id="mcps1.1.5.1.1"><p id="p1340115368214"><a name="p1340115368214"></a><a name="p1340115368214"></a>参数名</p> | -------- | -------------------------------------------- | ---- | ------------------------------------ |
</th> | callback | AsyncCallback&lt;[CallState](#CallState)&gt; | 是 | 回调函数:异步返回获取到的通话状态。 |
<th class="cellrowborder" valign="top" width="28.18%" id="mcps1.1.5.1.2"><p id="p840110366210"><a name="p840110366210"></a><a name="p840110366210"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="8.06%" id="mcps1.1.5.1.3"><p id="p240115363216"><a name="p240115363216"></a><a name="p240115363216"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="46.1%" id="mcps1.1.5.1.4"><p id="p1940116361021"><a name="p1940116361021"></a><a name="p1940116361021"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1140120361522"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p9401103618216"><a name="p9401103618216"></a><a name="p9401103618216"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p2401103617217"><a name="p2401103617217"></a><a name="p2401103617217"></a>AsyncCallback&lt;<a href="#section345181318300">CallState</a>&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p4401036423"><a name="p4401036423"></a><a name="p4401036423"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p440103618212"><a name="p440103618212"></a><a name="p440103618212"></a>回调函数,异步返回获取到的通话状态。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -336,7 +186,7 @@ getCallState\(callback: AsyncCallback<CallState\>\): void ...@@ -336,7 +186,7 @@ getCallState\(callback: AsyncCallback<CallState\>\): void
``` ```
## call.getCallState<a name="section198597561794"></a> ## call.getCallState<a name="call.getCallState-promise"></a>
getCallState\(\): Promise<CallState\> getCallState\(\): Promise<CallState\>
...@@ -344,20 +194,9 @@ getCallState\(\): Promise<CallState\> ...@@ -344,20 +194,9 @@ getCallState\(\): Promise<CallState\>
- 返回值 - 返回值
<a name="table58590561095"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row118591561193"><th class="cellrowborder" valign="top" width="26.06%" id="mcps1.1.3.1.1"><p id="p7859056599"><a name="p7859056599"></a><a name="p7859056599"></a>类型</p> | -------------------------------------- | ----------------------------------------- |
</th> | Promise&lt;[CallState](#CallState)&gt; | 以Promise形式异步返回获取通话状态的结果。 |
<th class="cellrowborder" valign="top" width="73.94%" id="mcps1.1.3.1.2"><p id="p085913569919"><a name="p085913569919"></a><a name="p085913569919"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row28591856299"><td class="cellrowborder" valign="top" width="26.06%" headers="mcps1.1.3.1.1 "><p id="p28631116886"><a name="p28631116886"></a><a name="p28631116886"></a>Promise&lt;<a href="#section345181318300">CallState</a>&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="73.94%" headers="mcps1.1.3.1.2 "><p id="p1785920561591"><a name="p1785920561591"></a><a name="p1785920561591"></a>以Promise形式异步返回获取通话状态的结果。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -370,7 +209,7 @@ getCallState\(\): Promise<CallState\> ...@@ -370,7 +209,7 @@ getCallState\(\): Promise<CallState\>
}); });
``` ```
## call.isEmergencyPhoneNumber<sup>7+</sup><a name="section8560112174319"></a> ## call.isEmergencyPhoneNumber<sup>7+</sup><a name=call.isEmergencyPhoneNumber-callback1></a>
isEmergencyPhoneNumber\(phoneNumber: string, callback: AsyncCallback<boolean\>\): void isEmergencyPhoneNumber\(phoneNumber: string, callback: AsyncCallback<boolean\>\): void
...@@ -378,38 +217,10 @@ isEmergencyPhoneNumber\(phoneNumber: string, callback: AsyncCallback<boolean\>\) ...@@ -378,38 +217,10 @@ isEmergencyPhoneNumber\(phoneNumber: string, callback: AsyncCallback<boolean\>\)
- 参数 - 参数
<a name="table3561612104315"></a> | 参数 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row1856113129437"><th class="cellrowborder" valign="top" width="18.399148277197057%" id="mcps1.1.5.1.1"><p id="p756191234312"><a name="p756191234312"></a><a name="p756191234312"></a>参数名</p> | ----------- | ---------------------------- | ---- | ------------------------------------------------------------ |
</th> | phoneNumber | string | 是 | 电话号码。 |
<th class="cellrowborder" valign="top" width="28.010065814943864%" id="mcps1.1.5.1.2"><p id="p105611512184318"><a name="p105611512184318"></a><a name="p105611512184318"></a>类型</p> | callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数,返回判断是否是紧急电话号码的结果:<br/>- true:是紧急电话号码。<br/>- false:不是紧急电话号码。 |
</th>
<th class="cellrowborder" valign="top" width="6.775067750677508%" id="mcps1.1.5.1.3"><p id="p556131217439"><a name="p556131217439"></a><a name="p556131217439"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="46.81571815718158%" id="mcps1.1.5.1.4"><p id="p14561111294319"><a name="p14561111294319"></a><a name="p14561111294319"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row205611412144315"><td class="cellrowborder" valign="top" width="18.399148277197057%" headers="mcps1.1.5.1.1 "><p id="p18562912194314"><a name="p18562912194314"></a><a name="p18562912194314"></a>phoneNumber</p>
</td>
<td class="cellrowborder" valign="top" width="28.010065814943864%" headers="mcps1.1.5.1.2 "><p id="p16562131284317"><a name="p16562131284317"></a><a name="p16562131284317"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="6.775067750677508%" headers="mcps1.1.5.1.3 "><p id="p125621123439"><a name="p125621123439"></a><a name="p125621123439"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.81571815718158%" headers="mcps1.1.5.1.4 "><p id="p1956231274315"><a name="p1956231274315"></a><a name="p1956231274315"></a>电话号码。</p>
</td>
</tr>
<tr id="row75623121435"><td class="cellrowborder" valign="top" width="18.399148277197057%" headers="mcps1.1.5.1.1 "><p id="p185621812124310"><a name="p185621812124310"></a><a name="p185621812124310"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="28.010065814943864%" headers="mcps1.1.5.1.2 "><p id="p2056281215434"><a name="p2056281215434"></a><a name="p2056281215434"></a>AsyncCallback&lt;boolean&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="6.775067750677508%" headers="mcps1.1.5.1.3 "><p id="p7562112144311"><a name="p7562112144311"></a><a name="p7562112144311"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.81571815718158%" headers="mcps1.1.5.1.4 "><p id="p14704625153512"><a name="p14704625153512"></a><a name="p14704625153512"></a>回调函数,返回判断是否是紧急电话号码的结果:</p>
<a name="ul148351751154917"></a><a name="ul148351751154917"></a><ul id="ul148351751154917"><li>true:是紧急电话号码。</li><li>false:不是紧急电话号码。</li></ul>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -420,7 +231,7 @@ isEmergencyPhoneNumber\(phoneNumber: string, callback: AsyncCallback<boolean\>\) ...@@ -420,7 +231,7 @@ isEmergencyPhoneNumber\(phoneNumber: string, callback: AsyncCallback<boolean\>\)
``` ```
## call.isEmergencyPhoneNumber<sup>7+</sup><a name="section9565131204319"></a> ## call.isEmergencyPhoneNumber<sup>7+</sup><a name=call.isEmergencyPhoneNumber-callback2></a>
isEmergencyPhoneNumber\(phoneNumber: string, options: EmergencyNumberOptions, callback: AsyncCallback<boolean\>\): void isEmergencyPhoneNumber\(phoneNumber: string, options: EmergencyNumberOptions, callback: AsyncCallback<boolean\>\): void
...@@ -428,48 +239,11 @@ isEmergencyPhoneNumber\(phoneNumber: string, options: EmergencyNumberOptions, ca ...@@ -428,48 +239,11 @@ isEmergencyPhoneNumber\(phoneNumber: string, options: EmergencyNumberOptions, ca
- 参数 - 参数
<a name="table356561244318"></a> | 参数 | 类型 | 必填 | 说明 |
| ----------- | ---------------------------- | ---- | ------------------------------------------------------------ |
<table><thead align="left"><tr id="row6565101294319"><th class="cellrowborder" valign="top" width="17.65%" id="mcps1.1.5.1.1"><p id="p1956541212432"><a name="p1956541212432"></a><a name="p1956541212432"></a>参数名</p> | phoneNumber | string | 是 | 电话号码。 |
</th> | options | EmergencyNumberOptions | 是 | 手机参数,参考[EmergencyNumberOptions](#EmergencyNumberOptions)。 |
<th class="cellrowborder" valign="top" width="28.189999999999998%" id="mcps1.1.5.1.2"><p id="p25651124437"><a name="p25651124437"></a><a name="p25651124437"></a>类型</p> | callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数,返回判断是否是紧急电话号码的结果:<br/>- true:是紧急电话号码。<br/>- false:不是紧急电话号码。 |
</th>
<th class="cellrowborder" valign="top" width="8.06%" id="mcps1.1.5.1.3"><p id="p1956531210439"><a name="p1956531210439"></a><a name="p1956531210439"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="46.1%" id="mcps1.1.5.1.4"><p id="p1456531218431"><a name="p1456531218431"></a><a name="p1456531218431"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1656581284313"><td class="cellrowborder" valign="top" width="17.65%" headers="mcps1.1.5.1.1 "><p id="p8565141264311"><a name="p8565141264311"></a><a name="p8565141264311"></a>phoneNumber</p>
</td>
<td class="cellrowborder" valign="top" width="28.189999999999998%" headers="mcps1.1.5.1.2 "><p id="p856521210433"><a name="p856521210433"></a><a name="p856521210433"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p05661012194319"><a name="p05661012194319"></a><a name="p05661012194319"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p756631218431"><a name="p756631218431"></a><a name="p756631218431"></a>电话号码。</p>
</td>
</tr>
<tr id="row185660125434"><td class="cellrowborder" valign="top" width="17.65%" headers="mcps1.1.5.1.1 "><p id="p1756620123431"><a name="p1756620123431"></a><a name="p1756620123431"></a>options</p>
</td>
<td class="cellrowborder" valign="top" width="28.189999999999998%" headers="mcps1.1.5.1.2 "><p id="p185661712164316"><a name="p185661712164316"></a><a name="p185661712164316"></a>EmergencyNumberOptions</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p95660122437"><a name="p95660122437"></a><a name="p95660122437"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p15566131219439"><a name="p15566131219439"></a><a name="p15566131219439"></a>手机参数,参考<a href="#section03689893518">EmergencyNumberOptions</a>。</p>
</td>
</tr>
<tr id="row1556601211432"><td class="cellrowborder" valign="top" width="17.65%" headers="mcps1.1.5.1.1 "><p id="p35663128439"><a name="p35663128439"></a><a name="p35663128439"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="28.189999999999998%" headers="mcps1.1.5.1.2 "><p id="p16566151212434"><a name="p16566151212434"></a><a name="p16566151212434"></a>AsyncCallback&lt;boolean&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p1856618121435"><a name="p1856618121435"></a><a name="p1856618121435"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p66331949173811"><a name="p66331949173811"></a><a name="p66331949173811"></a>回调函数,返回判断是否是紧急电话号码的结果:</p>
<a name="ul131711033508"></a><a name="ul131711033508"></a><ul id="ul131711033508"><li>true:是紧急电话号码。</li><li>false:不是紧急电话号码。</li></ul>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -480,7 +254,7 @@ isEmergencyPhoneNumber\(phoneNumber: string, options: EmergencyNumberOptions, ca ...@@ -480,7 +254,7 @@ isEmergencyPhoneNumber\(phoneNumber: string, options: EmergencyNumberOptions, ca
``` ```
## call.isEmergencyPhoneNumber<sup>7+</sup><a name="section5569131234312"></a> ## call.isEmergencyPhoneNumber<sup>7+</sup><a name=call.isEmergencyPhoneNumber-promise></a>
isEmergencyPhoneNumber\(phoneNumber: string, options?: EmergencyNumberOptions\): Promise<boolean\> isEmergencyPhoneNumber\(phoneNumber: string, options?: EmergencyNumberOptions\): Promise<boolean\>
...@@ -488,56 +262,16 @@ isEmergencyPhoneNumber\(phoneNumber: string, options?: EmergencyNumberOptions\): ...@@ -488,56 +262,16 @@ isEmergencyPhoneNumber\(phoneNumber: string, options?: EmergencyNumberOptions\):
- 参数 - 参数
<a name="table456911211435"></a> | 参数 | 类型 | 必填 | 说明 |
| ----------- | ---------------------- | ---- | ------------------------------------------------------------ |
<table><thead align="left"><tr id="row10569171214431"><th class="cellrowborder" valign="top" width="19.259999999999998%" id="mcps1.1.5.1.1"><p id="p7569112164319"><a name="p7569112164319"></a><a name="p7569112164319"></a>参数名</p> | phoneNumber | string | 是 | 电话号码。 |
</th> | options | EmergencyNumberOptions | 是 | 手机参数,参考[EmergencyNumberOptions](#EmergencyNumberOptions)。 |
<th class="cellrowborder" valign="top" width="20.599999999999998%" id="mcps1.1.5.1.2"><p id="p257010121433"><a name="p257010121433"></a><a name="p257010121433"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="12.35%" id="mcps1.1.5.1.3"><p id="p557061274313"><a name="p557061274313"></a><a name="p557061274313"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="47.79%" id="mcps1.1.5.1.4"><p id="p10570181254320"><a name="p10570181254320"></a><a name="p10570181254320"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1656581284313"><td class="cellrowborder" valign="top" width="17.65%" headers="mcps1.1.5.1.1 "><p id="p8565141264311"><a name="p8565141264311"></a><a name="p8565141264311"></a>phoneNumber</p>
</td>
<td class="cellrowborder" valign="top" width="28.189999999999998%" headers="mcps1.1.5.1.2 "><p id="p856521210433"><a name="p856521210433"></a><a name="p856521210433"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p05661012194319"><a name="p05661012194319"></a><a name="p05661012194319"></a></p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p756631218431"><a name="p756631218431"></a><a name="p756631218431"></a>电话号码。</p>
</td>
</tr>
<tr id="row1571151274314"><td class="cellrowborder" valign="top" width="19.259999999999998%" headers="mcps1.1.5.1.1 "><p id="p15571512134310"><a name="p15571512134310"></a><a name="p15571512134310"></a>options</p>
</td>
<td class="cellrowborder" valign="top" width="20.599999999999998%" headers="mcps1.1.5.1.2 "><p id="p165712012204313"><a name="p165712012204313"></a><a name="p165712012204313"></a>EmergencyNumberOptions</p>
</td>
<td class="cellrowborder" valign="top" width="12.35%" headers="mcps1.1.5.1.3 "><p id="p1457151211438"><a name="p1457151211438"></a><a name="p1457151211438"></a></p>
</td>
<td class="cellrowborder" valign="top" width="47.79%" headers="mcps1.1.5.1.4 "><p id="p6571111219434"><a name="p6571111219434"></a><a name="p6571111219434"></a>手机参数,参考<a href="#section03689893518">EmergencyNumberOptions</a></p>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table1757101214316"></a> | 类型 | 说明 |
| ---------------------- | --------------------------------------------------- |
<table><thead align="left"><tr id="row95711912194319"><th class="cellrowborder" valign="top" width="26.06%" id="mcps1.1.3.1.1"><p id="p9571612184311"><a name="p9571612184311"></a><a name="p9571612184311"></a>类型</p> | Promise&lt;boolean&gt; | 以Promise形式异步返回判断是否是紧急电话号码的结果。 |
</th>
<th class="cellrowborder" valign="top" width="73.94%" id="mcps1.1.3.1.2"><p id="p15716124437"><a name="p15716124437"></a><a name="p15716124437"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row14571171294316"><td class="cellrowborder" valign="top" width="26.06%" headers="mcps1.1.3.1.1 "><p id="p175711412184317"><a name="p175711412184317"></a><a name="p175711412184317"></a>Promise&lt;boolean&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="73.94%" headers="mcps1.1.3.1.2 "><p id="p17572181218439"><a name="p17572181218439"></a><a name="p17572181218439"></a>以Promise形式异步返回判断是否是紧急电话号码的结果。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -550,7 +284,7 @@ isEmergencyPhoneNumber\(phoneNumber: string, options?: EmergencyNumberOptions\): ...@@ -550,7 +284,7 @@ isEmergencyPhoneNumber\(phoneNumber: string, options?: EmergencyNumberOptions\):
}); });
``` ```
## call.formatPhoneNumber<sup>7+</sup><a name="section1532018310579"></a> ## call.formatPhoneNumber<sup>7+</sup><a name=call.formatPhoneNumber-callback1></a>
formatPhoneNumber\(phoneNumber: string, callback: AsyncCallback<string\>\): void formatPhoneNumber\(phoneNumber: string, callback: AsyncCallback<string\>\): void
...@@ -558,37 +292,10 @@ formatPhoneNumber\(phoneNumber: string, callback: AsyncCallback<string\>\): void ...@@ -558,37 +292,10 @@ formatPhoneNumber\(phoneNumber: string, callback: AsyncCallback<string\>\): void
- 参数 - 参数
<a name="table17320153175717"></a> | 参数 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row193205315577"><th class="cellrowborder" valign="top" width="19.009999999999998%" id="mcps1.1.5.1.1"><p id="p113201315710"><a name="p113201315710"></a><a name="p113201315710"></a>参数名</p> | ----------- | --------------------------- | ---- | ------------------------------------ |
</th> | phoneNumber | string | 是 | 电话号码。 |
<th class="cellrowborder" valign="top" width="28.939999999999998%" id="mcps1.1.5.1.2"><p id="p63211137575"><a name="p63211137575"></a><a name="p63211137575"></a>类型</p> | callback | AsyncCallback&lt;string&gt; | 是 | 回调函数,返回格式化电话号码的结果。 |
</th>
<th class="cellrowborder" valign="top" width="10.459999999999999%" id="mcps1.1.5.1.3"><p id="p173211133571"><a name="p173211133571"></a><a name="p173211133571"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="41.589999999999996%" id="mcps1.1.5.1.4"><p id="p2032113335712"><a name="p2032113335712"></a><a name="p2032113335712"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row03216319579"><td class="cellrowborder" valign="top" width="19.009999999999998%" headers="mcps1.1.5.1.1 "><p id="p193214385720"><a name="p193214385720"></a><a name="p193214385720"></a>phoneNumber</p>
</td>
<td class="cellrowborder" valign="top" width="28.939999999999998%" headers="mcps1.1.5.1.2 "><p id="p632113175715"><a name="p632113175715"></a><a name="p632113175715"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="10.459999999999999%" headers="mcps1.1.5.1.3 "><p id="p732113175714"><a name="p732113175714"></a><a name="p732113175714"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="41.589999999999996%" headers="mcps1.1.5.1.4 "><p id="p5321103115716"><a name="p5321103115716"></a><a name="p5321103115716"></a>电话号码。</p>
</td>
</tr>
<tr id="row4321193135718"><td class="cellrowborder" valign="top" width="19.009999999999998%" headers="mcps1.1.5.1.1 "><p id="p133228375712"><a name="p133228375712"></a><a name="p133228375712"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="28.939999999999998%" headers="mcps1.1.5.1.2 "><p id="p132212319575"><a name="p132212319575"></a><a name="p132212319575"></a>AsyncCallback&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.459999999999999%" headers="mcps1.1.5.1.3 "><p id="p163226335710"><a name="p163226335710"></a><a name="p163226335710"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="41.589999999999996%" headers="mcps1.1.5.1.4 "><p id="p1732216385712"><a name="p1732216385712"></a><a name="p1732216385712"></a>回调函数,返回格式化电话号码的结果。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -599,7 +306,7 @@ formatPhoneNumber\(phoneNumber: string, callback: AsyncCallback<string\>\): void ...@@ -599,7 +306,7 @@ formatPhoneNumber\(phoneNumber: string, callback: AsyncCallback<string\>\): void
``` ```
## call.formatPhoneNumber<sup>7+</sup><a name="section1832553165720"></a> ## call.formatPhoneNumber<sup>7+</sup><a name=call.formatPhoneNumber-callback2></a>
formatPhoneNumber\(phoneNumber: string, options: NumberFormatOptions, callback: AsyncCallback<string\>\): void formatPhoneNumber\(phoneNumber: string, options: NumberFormatOptions, callback: AsyncCallback<string\>\): void
...@@ -607,46 +314,11 @@ formatPhoneNumber\(phoneNumber: string, options: NumberFormatOptions, callback: ...@@ -607,46 +314,11 @@ formatPhoneNumber\(phoneNumber: string, options: NumberFormatOptions, callback:
- 参数 - 参数
<a name="table193251239574"></a> | 参数 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row1032553195719"><th class="cellrowborder" valign="top" width="17.66%" id="mcps1.1.5.1.1"><p id="p53251333571"><a name="p53251333571"></a><a name="p53251333571"></a>参数名</p> | ----------- | --------------------------- | ---- | ------------------------------------------------------------ |
</th> | phoneNumber | string | 是 | 电话号码。 |
<th class="cellrowborder" valign="top" width="28.18%" id="mcps1.1.5.1.2"><p id="p19326193135718"><a name="p19326193135718"></a><a name="p19326193135718"></a>类型</p> | options | NumberFormatOptions | 是 | 格式化参数,参考[NumberFormatOptions](#NumberFormatOptions)。 |
</th> | callback | AsyncCallback&lt;string&gt; | 是 | 回调函数,返回格式化电话号码的结果。 |
<th class="cellrowborder" valign="top" width="8.06%" id="mcps1.1.5.1.3"><p id="p10326193145710"><a name="p10326193145710"></a><a name="p10326193145710"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="46.1%" id="mcps1.1.5.1.4"><p id="p123267314571"><a name="p123267314571"></a><a name="p123267314571"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row73261035576"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p3326132579"><a name="p3326132579"></a><a name="p3326132579"></a>phoneNumber</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p2326123145710"><a name="p2326123145710"></a><a name="p2326123145710"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p1932613318575"><a name="p1932613318575"></a><a name="p1932613318575"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p1232693125716"><a name="p1232693125716"></a><a name="p1232693125716"></a>电话号码。</p>
</td>
</tr>
<tr id="row13263315573"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p43261395713"><a name="p43261395713"></a><a name="p43261395713"></a>options</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p73271355710"><a name="p73271355710"></a><a name="p73271355710"></a>NumberFormatOptions</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p1832723125714"><a name="p1832723125714"></a><a name="p1832723125714"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p17327831577"><a name="p17327831577"></a><a name="p17327831577"></a>格式化参数,参考<a href="#section23348305716">NumberFormatOptions</a>。</p>
</td>
</tr>
<tr id="row16327035571"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p1132711325712"><a name="p1132711325712"></a><a name="p1132711325712"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p1432715365718"><a name="p1432715365718"></a><a name="p1432715365718"></a>AsyncCallback&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p43271432575"><a name="p43271432575"></a><a name="p43271432575"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p143271737573"><a name="p143271737573"></a><a name="p143271737573"></a>回调函数,返回格式化电话号码的结果。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -659,7 +331,7 @@ formatPhoneNumber\(phoneNumber: string, options: NumberFormatOptions, callback: ...@@ -659,7 +331,7 @@ formatPhoneNumber\(phoneNumber: string, options: NumberFormatOptions, callback:
``` ```
## call.formatPhoneNumber<sup>7+</sup><a name="section1933033195716"></a> ## call.formatPhoneNumber<sup>7+</sup><a name=call.formatPhoneNumber-promise></a>
formatPhoneNumber\(phoneNumber: string, options?: NumberFormatOptions\): Promise<string\> formatPhoneNumber\(phoneNumber: string, options?: NumberFormatOptions\): Promise<string\>
...@@ -667,54 +339,16 @@ formatPhoneNumber\(phoneNumber: string, options?: NumberFormatOptions\): Promise ...@@ -667,54 +339,16 @@ formatPhoneNumber\(phoneNumber: string, options?: NumberFormatOptions\): Promise
- 参数 - 参数
<a name="table183300310578"></a> | 参数 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row183316315578"><th class="cellrowborder" valign="top" width="19.259999999999998%" id="mcps1.1.5.1.1"><p id="p33319314570"><a name="p33319314570"></a><a name="p33319314570"></a>参数名</p> | ----------- | ------------------- | ---- | ------------------------------------------------------------ |
</th> | phoneNumber | string | 是 | 电话号码。 |
<th class="cellrowborder" valign="top" width="20.599999999999998%" id="mcps1.1.5.1.2"><p id="p433193155713"><a name="p433193155713"></a><a name="p433193155713"></a>类型</p> | options | NumberFormatOptions | 是 | 格式化参数,参考[NumberFormatOptions](#NumberFormatOptions)。 |
</th>
<th class="cellrowborder" valign="top" width="12.36%" id="mcps1.1.5.1.3"><p id="p123316311576"><a name="p123316311576"></a><a name="p123316311576"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="47.78%" id="mcps1.1.5.1.4"><p id="p10331193155710"><a name="p10331193155710"></a><a name="p10331193155710"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row933113325719"><td class="cellrowborder" valign="top" width="19.259999999999998%" headers="mcps1.1.5.1.1 "><p id="p163311038579"><a name="p163311038579"></a><a name="p163311038579"></a>phoneNumber</p>
</td>
<td class="cellrowborder" valign="top" width="20.599999999999998%" headers="mcps1.1.5.1.2 "><p id="p163323312579"><a name="p163323312579"></a><a name="p163323312579"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="12.36%" headers="mcps1.1.5.1.3 "><p id="p033213305715"><a name="p033213305715"></a><a name="p033213305715"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="47.78%" headers="mcps1.1.5.1.4 "><p id="p7332531578"><a name="p7332531578"></a><a name="p7332531578"></a>电话号码。</p>
</td>
</tr>
<tr id="row633243175715"><td class="cellrowborder" valign="top" width="19.259999999999998%" headers="mcps1.1.5.1.1 "><p id="p16332133125717"><a name="p16332133125717"></a><a name="p16332133125717"></a>options</p>
</td>
<td class="cellrowborder" valign="top" width="20.599999999999998%" headers="mcps1.1.5.1.2 "><p id="p1233212315572"><a name="p1233212315572"></a><a name="p1233212315572"></a>NumberFormatOptions</p>
</td>
<td class="cellrowborder" valign="top" width="12.36%" headers="mcps1.1.5.1.3 "><p id="p153331032575"><a name="p153331032575"></a><a name="p153331032575"></a>否</p>
</td>
<td class="cellrowborder" valign="top" width="47.78%" headers="mcps1.1.5.1.4 "><p id="p133316365712"><a name="p133316365712"></a><a name="p133316365712"></a>格式化参数,参考<a href="#section23348305716">NumberFormatOptions</a>。</p>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table43332033571"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row9333183165715"><th class="cellrowborder" valign="top" width="26.06%" id="mcps1.1.3.1.1"><p id="p23331439577"><a name="p23331439577"></a><a name="p23331439577"></a>类型</p> | --------------------- | ------------------------------------------- |
</th> | Promise&lt;string&gt; | 以Promise形式异步返回格式化电话号码的结果。 |
<th class="cellrowborder" valign="top" width="73.94%" id="mcps1.1.3.1.2"><p id="p633320345719"><a name="p633320345719"></a><a name="p633320345719"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row2033343125720"><td class="cellrowborder" valign="top" width="26.06%" headers="mcps1.1.3.1.1 "><p id="p733317335716"><a name="p733317335716"></a><a name="p733317335716"></a>Promise&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="73.94%" headers="mcps1.1.3.1.2 "><p id="p1133443125713"><a name="p1133443125713"></a><a name="p1133443125713"></a>以Promise形式异步返回格式化电话号码的结果。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -729,7 +363,7 @@ formatPhoneNumber\(phoneNumber: string, options?: NumberFormatOptions\): Promise ...@@ -729,7 +363,7 @@ formatPhoneNumber\(phoneNumber: string, options?: NumberFormatOptions\): Promise
}); });
``` ```
## call.formatPhoneNumberToE164<sup>7+</sup><a name="section10285180112418"></a> ## call.formatPhoneNumberToE164<sup>7+</sup><a name=call.formatPhoneNumberToE164-callback></a>
formatPhoneNumberToE164\(phoneNumber: string, countryCode: string, callback: AsyncCallback<string\>\): void formatPhoneNumberToE164\(phoneNumber: string, countryCode: string, callback: AsyncCallback<string\>\): void
...@@ -741,46 +375,11 @@ formatPhoneNumberToE164\(phoneNumber: string, countryCode: string, callback: Asy ...@@ -741,46 +375,11 @@ formatPhoneNumberToE164\(phoneNumber: string, countryCode: string, callback: Asy
- 参数 - 参数
<a name="table192869052411"></a> | 参数 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row928613082414"><th class="cellrowborder" valign="top" width="17.66%" id="mcps1.1.5.1.1"><p id="p1328716012245"><a name="p1328716012245"></a><a name="p1328716012245"></a>参数名</p> | ----------- | --------------------------- | ---- | ----------------------------------------------------- |
</th> | phoneNumber | string | 是 | 电话号码。 |
<th class="cellrowborder" valign="top" width="28.18%" id="mcps1.1.5.1.2"><p id="p6287160182414"><a name="p6287160182414"></a><a name="p6287160182414"></a>类型</p> | countryCode | string | 是 | 国家码,支持所有国家码,如:中国(CN)。 |
</th> | callback | AsyncCallback&lt;string&gt; | 是 | 回调函数,返回将电话号码格式化为E.164表示形式的结果。 |
<th class="cellrowborder" valign="top" width="8.06%" id="mcps1.1.5.1.3"><p id="p172872013241"><a name="p172872013241"></a><a name="p172872013241"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="46.1%" id="mcps1.1.5.1.4"><p id="p82877020245"><a name="p82877020245"></a><a name="p82877020245"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row112871803241"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p528717014242"><a name="p528717014242"></a><a name="p528717014242"></a>phoneNumber</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p428717082415"><a name="p428717082415"></a><a name="p428717082415"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p142872015249"><a name="p142872015249"></a><a name="p142872015249"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p528860162412"><a name="p528860162412"></a><a name="p528860162412"></a>电话号码。</p>
</td>
</tr>
<tr id="row828800102417"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p1328812042412"><a name="p1328812042412"></a><a name="p1328812042412"></a>countryCode</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p2125659164714"><a name="p2125659164714"></a><a name="p2125659164714"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p9288140112413"><a name="p9288140112413"></a><a name="p9288140112413"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p1754915382910"><a name="p1754915382910"></a><a name="p1754915382910"></a>国家码,支持所有国家码,如:中国(CN)。</p>
</td>
</tr>
<tr id="row1228890122414"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p1528813082412"><a name="p1528813082412"></a><a name="p1528813082412"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p028810102420"><a name="p028810102420"></a><a name="p028810102420"></a>AsyncCallback&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p2289505245"><a name="p2289505245"></a><a name="p2289505245"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p192897082415"><a name="p192897082415"></a><a name="p192897082415"></a>回调函数,返回将电话号码格式化为E.164表示形式的结果。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -793,7 +392,7 @@ formatPhoneNumberToE164\(phoneNumber: string, countryCode: string, callback: Asy ...@@ -793,7 +392,7 @@ formatPhoneNumberToE164\(phoneNumber: string, countryCode: string, callback: Asy
``` ```
## call.formatPhoneNumberToE164<sup>7+</sup><a name="section142931509247"></a> ## call.formatPhoneNumberToE164<sup>7+</sup><a name=call.formatPhoneNumberToE164-promise></a>
formatPhoneNumberToE164\(phoneNumber: string, countryCode: string\): Promise<string\> formatPhoneNumberToE164\(phoneNumber: string, countryCode: string\): Promise<string\>
...@@ -805,54 +404,16 @@ formatPhoneNumberToE164\(phoneNumber: string, countryCode: string\): Promise<str ...@@ -805,54 +404,16 @@ formatPhoneNumberToE164\(phoneNumber: string, countryCode: string\): Promise<str
- 参数 - 参数
<a name="table929450172416"></a> | 参数 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row629417018244"><th class="cellrowborder" valign="top" width="19.259999999999998%" id="mcps1.1.5.1.1"><p id="p6294140192412"><a name="p6294140192412"></a><a name="p6294140192412"></a>参数名</p> | ----------- | ------ | ---- | ---------------------------------------- |
</th> | phoneNumber | string | 是 | 电话号码。 |
<th class="cellrowborder" valign="top" width="20.599999999999998%" id="mcps1.1.5.1.2"><p id="p142951704244"><a name="p142951704244"></a><a name="p142951704244"></a>类型</p> | countryCode | string | 是 | 国家码,支持所有国家码,如:中国(CN)。 |
</th>
<th class="cellrowborder" valign="top" width="12.36%" id="mcps1.1.5.1.3"><p id="p17295100192410"><a name="p17295100192410"></a><a name="p17295100192410"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="47.78%" id="mcps1.1.5.1.4"><p id="p02952012244"><a name="p02952012244"></a><a name="p02952012244"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row62951502248"><td class="cellrowborder" valign="top" width="19.259999999999998%" headers="mcps1.1.5.1.1 "><p id="p1929519042412"><a name="p1929519042412"></a><a name="p1929519042412"></a>phoneNumber</p>
</td>
<td class="cellrowborder" valign="top" width="20.599999999999998%" headers="mcps1.1.5.1.2 "><p id="p12951018248"><a name="p12951018248"></a><a name="p12951018248"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="12.36%" headers="mcps1.1.5.1.3 "><p id="p17296190132415"><a name="p17296190132415"></a><a name="p17296190132415"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="47.78%" headers="mcps1.1.5.1.4 "><p id="p02966032415"><a name="p02966032415"></a><a name="p02966032415"></a>电话号码。</p>
</td>
</tr>
<tr id="row1929620042416"><td class="cellrowborder" valign="top" width="19.259999999999998%" headers="mcps1.1.5.1.1 "><p id="p129617032419"><a name="p129617032419"></a><a name="p129617032419"></a>countryCode</p>
</td>
<td class="cellrowborder" valign="top" width="20.599999999999998%" headers="mcps1.1.5.1.2 "><p id="p22961403241"><a name="p22961403241"></a><a name="p22961403241"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="12.36%" headers="mcps1.1.5.1.3 "><p id="p179217422351"><a name="p179217422351"></a><a name="p179217422351"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="47.78%" headers="mcps1.1.5.1.4 "><p id="p172967019245"><a name="p172967019245"></a><a name="p172967019245"></a>国家码,如:中国(CN)。</p>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table029711018249"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row429710013243"><th class="cellrowborder" valign="top" width="26.06%" id="mcps1.1.3.1.1"><p id="p162971007247"><a name="p162971007247"></a><a name="p162971007247"></a>类型</p> | --------------------- | ------------------------------------------------------------ |
</th> | Promise&lt;string&gt; | 以Promise形式异步返回将电话号码格式化为E.164表示形式的结果。 |
<th class="cellrowborder" valign="top" width="73.94%" id="mcps1.1.3.1.2"><p id="p8298109247"><a name="p8298109247"></a><a name="p8298109247"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row2298100132414"><td class="cellrowborder" valign="top" width="26.06%" headers="mcps1.1.3.1.1 "><p id="p1229819082416"><a name="p1229819082416"></a><a name="p1229819082416"></a>Promise&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="73.94%" headers="mcps1.1.3.1.2 "><p id="p329830142410"><a name="p329830142410"></a><a name="p329830142410"></a>以Promise形式异步返回将电话号码格式化为E.164表示形式的结果。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -867,130 +428,33 @@ formatPhoneNumberToE164\(phoneNumber: string, countryCode: string\): Promise<str ...@@ -867,130 +428,33 @@ formatPhoneNumberToE164\(phoneNumber: string, countryCode: string\): Promise<str
}); });
``` ```
## DialOptions<a name="section12262183471518"></a> ## DialOptions<a name=DialOptions></a>
拨打电话的可选参数。 拨打电话的可选参数。
| 参数 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| extras | boolean | 否 |根据extras的值判断是否为视频通话,默认为语音通话。<br/>- true:视频通话。<br/>- fasle:语音通话。|
<a name="table426533441512"></a> ## CallState<a name=CallState></a>
<table><thead align="left"><tr id="row1626518342159"><th class="cellrowborder" valign="top" width="11.52%" id="mcps1.1.5.1.1"><p id="p178726479354"><a name="p178726479354"></a><a name="p178726479354"></a>参数名</p>
</th>
<th class="cellrowborder" valign="top" width="14.06%" id="mcps1.1.5.1.2"><p id="p1426519342153"><a name="p1426519342153"></a><a name="p1426519342153"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="10.299999999999999%" id="mcps1.1.5.1.3"><p id="p17265143471517"><a name="p17265143471517"></a><a name="p17265143471517"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="64.12%" id="mcps1.1.5.1.4"><p id="p1126583411512"><a name="p1126583411512"></a><a name="p1126583411512"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row126610344150"><td class="cellrowborder" valign="top" width="11.52%" headers="mcps1.1.5.1.1 "><p id="p010712258546"><a name="p010712258546"></a><a name="p010712258546"></a>extras</p>
</td>
<td class="cellrowborder" valign="top" width="14.06%" headers="mcps1.1.5.1.2 "><p id="p92665347159"><a name="p92665347159"></a><a name="p92665347159"></a>boolean</p>
</td>
<td class="cellrowborder" valign="top" width="10.299999999999999%" headers="mcps1.1.5.1.3 "><p id="p17266183451512"><a name="p17266183451512"></a><a name="p17266183451512"></a></p>
</td>
<td class="cellrowborder" valign="top" width="64.12%" headers="mcps1.1.5.1.4 "><p id="p1958121815414"><a name="p1958121815414"></a><a name="p1958121815414"></a>根据extras的值判断是否为视频通话,默认为语音通话。</p>
<a name="ul123261340174514"></a><a name="ul123261340174514"></a><ul id="ul123261340174514"><li>true:视频通话。</li><li>fasle:语音通话。</li></ul>
</td>
</tbody>
</table>
## CallState<a name="section345181318300"></a>
通话状态码。 通话状态码。
| 变量 | 值 | 说明 |
| -------- | -------- | -------- |
| CALL_STATE_UNKNOWN | -1 | 无效状态,当获取呼叫状态失败时返回。 |
| CALL_STATE_IDLE | 0 | 表示没有正在进行的呼叫。 |
| CALL_STATE_RINGING | 1 | 表示来电正在振铃或等待。 |
| CALL_STATE_OFFHOOK | 2 | 表示至少有一个呼叫处于拨号、通话中或呼叫保持状态,并且没有新的来电振铃或等待。 |
<a name="table126934822015"></a> ## EmergencyNumberOptions<sup>7+</sup><a name=EmergencyNumberOptions></a>
<table><thead align="left"><tr id="row1369315832016"><th class="cellrowborder" valign="top" width="23.79%" id="mcps1.1.4.1.1"><p id="p1871313815402"><a name="p1871313815402"></a><a name="p1871313815402"></a>变量</p>
</th>
<th class="cellrowborder" valign="top" width="18.61%" id="mcps1.1.4.1.2"><p id="p93231392263"><a name="p93231392263"></a><a name="p93231392263"></a></p>
</th>
<th class="cellrowborder" valign="top" width="57.599999999999994%" id="mcps1.1.4.1.3"><p id="p145500193814"><a name="p145500193814"></a><a name="p145500193814"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row206942882013"><td class="cellrowborder" valign="top" width="23.79%" headers="mcps1.1.4.1.1 "><p id="p971155020221"><a name="p971155020221"></a><a name="p971155020221"></a>CALL_STATE_UNKNOWN</p>
</td>
<td class="cellrowborder" valign="top" width="18.61%" headers="mcps1.1.4.1.2 "><p id="p2032318912262"><a name="p2032318912262"></a><a name="p2032318912262"></a>-1</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p85619013384"><a name="p85619013384"></a><a name="p85619013384"></a>无效状态,当获取呼叫状态失败时返回。</p>
</td>
</tr>
<tr id="row116945832019"><td class="cellrowborder" valign="top" width="23.79%" headers="mcps1.1.4.1.1 "><p id="p78281110123613"><a name="p78281110123613"></a><a name="p78281110123613"></a>CALL_STATE_IDLE</p>
</td>
<td class="cellrowborder" valign="top" width="18.61%" headers="mcps1.1.4.1.2 "><p id="p10323097261"><a name="p10323097261"></a><a name="p10323097261"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p55617011389"><a name="p55617011389"></a><a name="p55617011389"></a>表示没有正在进行的呼叫。</p>
</td>
</tr>
<tr id="row253218315237"><td class="cellrowborder" valign="top" width="23.79%" headers="mcps1.1.4.1.1 "><p id="p619455134615"><a name="p619455134615"></a><a name="p619455134615"></a>CALL_STATE_RINGING</p>
</td>
<td class="cellrowborder" valign="top" width="18.61%" headers="mcps1.1.4.1.2 "><p id="p632313942617"><a name="p632313942617"></a><a name="p632313942617"></a>1</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p55610014386"><a name="p55610014386"></a><a name="p55610014386"></a>表示来电正在振铃或等待。</p>
</td>
</tr>
<tr id="row859720172311"><td class="cellrowborder" valign="top" width="23.79%" headers="mcps1.1.4.1.1 "><p id="p106062072312"><a name="p106062072312"></a><a name="p106062072312"></a>CALL_STATE_OFFHOOK</p>
</td>
<td class="cellrowborder" valign="top" width="18.61%" headers="mcps1.1.4.1.2 "><p id="p1432310992611"><a name="p1432310992611"></a><a name="p1432310992611"></a>2</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p16572083814"><a name="p16572083814"></a><a name="p16572083814"></a>表示至少有一个呼叫处于拨号、通话中或呼叫保持状态,并且没有新的来电振铃或等待。</p>
</td>
</tr>
</tbody>
</table>
## EmergencyNumberOptions<sup>7+</sup><a name="section03689893518"></a>
判断是否是紧急电话号码的可选参数。 判断是否是紧急电话号码的可选参数。
| 参数 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| slotId | number | 否 |卡槽ID:<br/>- 0:卡槽1。<br/>- 1:卡槽2。|
<a name="table16368168133516"></a> ## NumberFormatOptions<sup>7+</sup><a name=NumberFormatOptions></a>
<table><thead align="left"><tr id="row1736813813513"><th class="cellrowborder" valign="top" width="11.52%" id="mcps1.1.5.1.1"><p id="p153686819354"><a name="p153686819354"></a><a name="p153686819354"></a>参数名</p>
</th>
<th class="cellrowborder" valign="top" width="14.06%" id="mcps1.1.5.1.2"><p id="p113698823512"><a name="p113698823512"></a><a name="p113698823512"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="10.299999999999999%" id="mcps1.1.5.1.3"><p id="p7369188183517"><a name="p7369188183517"></a><a name="p7369188183517"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="64.12%" id="mcps1.1.5.1.4"><p id="p17369118123514"><a name="p17369118123514"></a><a name="p17369118123514"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row13696810352"><td class="cellrowborder" valign="top" width="11.52%" headers="mcps1.1.5.1.1 "><p id="p2036911812355"><a name="p2036911812355"></a><a name="p2036911812355"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="14.06%" headers="mcps1.1.5.1.2 "><p id="p63691085356"><a name="p63691085356"></a><a name="p63691085356"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.299999999999999%" headers="mcps1.1.5.1.3 "><p id="p036938163510"><a name="p036938163510"></a><a name="p036938163510"></a></p>
</td>
<td class="cellrowborder" valign="top" width="64.12%" headers="mcps1.1.5.1.4 "><p id="p111750457258"><a name="p111750457258"></a><a name="p111750457258"></a>卡槽ID:</p>
<a name="ul134537519529"></a><a name="ul134537519529"></a><ul id="ul134537519529"><li>0:卡槽1。</li><li>1:卡槽2。</li></ul>
</td>
</tr>
</tbody>
</table>
## NumberFormatOptions<sup>7+</sup><a name="section23348305716"></a>
格式化号码的可选参数。 格式化号码的可选参数。
| 参数 | 类型 | 必填 | 说明 |
<a name="table13344318576"></a> | -------- | -------- | -------- | -------- |
<table><thead align="left"><tr id="row53356315717"><th class="cellrowborder" valign="top" width="13.489999999999998%" id="mcps1.1.5.1.1"><p id="p8335536577"><a name="p8335536577"></a><a name="p8335536577"></a>参数名</p> | countryCode | string | 否 |国家码,支持所有国家的国家码,如:中国(CN)。默认为:CN。|
</th>
<th class="cellrowborder" valign="top" width="12.09%" id="mcps1.1.5.1.2"><p id="p203357395714"><a name="p203357395714"></a><a name="p203357395714"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="10.299999999999999%" id="mcps1.1.5.1.3"><p id="p23355355711"><a name="p23355355711"></a><a name="p23355355711"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="64.12%" id="mcps1.1.5.1.4"><p id="p63359315715"><a name="p63359315715"></a><a name="p63359315715"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row5335183165719"><td class="cellrowborder" valign="top" width="13.489999999999998%" headers="mcps1.1.5.1.1 "><p id="p733573105712"><a name="p733573105712"></a><a name="p733573105712"></a>countryCode</p>
</td>
<td class="cellrowborder" valign="top" width="12.09%" headers="mcps1.1.5.1.2 "><p id="p3335735578"><a name="p3335735578"></a><a name="p3335735578"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="10.299999999999999%" headers="mcps1.1.5.1.3 "><p id="p73353313575"><a name="p73353313575"></a><a name="p73353313575"></a></p>
</td>
<td class="cellrowborder" valign="top" width="64.12%" headers="mcps1.1.5.1.4 "><p id="p16200121925613"><a name="p16200121925613"></a><a name="p16200121925613"></a>国家码,支持所有国家的国家码,如:中国(CN),默认为:CN。</p>
</td>
</tr>
</tbody>
</table>
\ No newline at end of file
...@@ -57,7 +57,9 @@ ...@@ -57,7 +57,9 @@
>![](../../public_sys-resources/icon-note.gif) **说明:** >![](../../public_sys-resources/icon-note.gif) **说明:**
>从 API Version 6 开始支持。 >
>- 从 API Version 6 开始支持。
>- 标记<sup>7+</sup>的接口从API Version 7开始支持。
## 导入模块<a name="zh-cn_topic_0000001208447259_s56d19203690d4782bfc74069abb6bd71"></a> ## 导入模块<a name="zh-cn_topic_0000001208447259_s56d19203690d4782bfc74069abb6bd71"></a>
...@@ -72,35 +74,8 @@ import fileio from '@ohos.fileio'; ...@@ -72,35 +74,8 @@ import fileio from '@ohos.fileio';
## 使用说明<a name="zh-cn_topic_0000001208447259_section17323786612"></a> ## 使用说明<a name="zh-cn_topic_0000001208447259_section17323786612"></a>
使用该功能模块对文件/目录进行操作前,需要先获取其绝对路径。 使用该功能模块对文件/目录进行操作前,需要先获取其绝对路径。
“文件/目录绝对路径”=“应用目录路径”+“文件/目录名”。
<a name="zh-cn_topic_0000001208447259_table859142263817"></a> 应用目录路径可通过[Context模块的接口getOrCreateLocalDir](js-apis-Context.md)获取。
<table><thead align="left"><tr id="zh-cn_topic_0000001208447259_row165922243812"><th class="cellrowborder" valign="top" width="21.6%" id="mcps1.1.4.1.1"><p id="zh-cn_topic_0000001208447259_p20593226383"><a name="zh-cn_topic_0000001208447259_p20593226383"></a><a name="zh-cn_topic_0000001208447259_p20593226383"></a>目录类型</p>
</th>
<th class="cellrowborder" valign="top" width="53.57000000000001%" id="mcps1.1.4.1.2"><p id="zh-cn_topic_0000001208447259_p125911229389"><a name="zh-cn_topic_0000001208447259_p125911229389"></a><a name="zh-cn_topic_0000001208447259_p125911229389"></a>说明</p>
</th>
<th class="cellrowborder" valign="top" width="24.830000000000002%" id="mcps1.1.4.1.3"><p id="zh-cn_topic_0000001208447259_p1177425414331"><a name="zh-cn_topic_0000001208447259_p1177425414331"></a><a name="zh-cn_topic_0000001208447259_p1177425414331"></a>相关接口</p>
</th>
</tr>
</thead>
<tbody><tr id="zh-cn_topic_0000001208447259_row14604221386"><td class="cellrowborder" valign="top" width="21.6%" headers="mcps1.1.4.1.1 "><p id="zh-cn_topic_0000001208447259_p0605228382"><a name="zh-cn_topic_0000001208447259_p0605228382"></a><a name="zh-cn_topic_0000001208447259_p0605228382"></a>内部存储的缓存目录</p>
</td>
<td class="cellrowborder" valign="top" width="53.57000000000001%" headers="mcps1.1.4.1.2 "><p id="zh-cn_topic_0000001208447259_p76010229385"><a name="zh-cn_topic_0000001208447259_p76010229385"></a><a name="zh-cn_topic_0000001208447259_p76010229385"></a>可读写,随时可能清除,不保证持久性。一般用作下载临时目录或缓存目录。</p>
</td>
<td class="cellrowborder" valign="top" width="24.830000000000002%" headers="mcps1.1.4.1.3 "><p id="zh-cn_topic_0000001208447259_p1677525420331"><a name="zh-cn_topic_0000001208447259_p1677525420331"></a><a name="zh-cn_topic_0000001208447259_p1677525420331"></a>getCacheDir</p>
</td>
</tr>
<tr id="zh-cn_topic_0000001208447259_row20601622183813"><td class="cellrowborder" valign="top" width="21.6%" headers="mcps1.1.4.1.1 "><p id="zh-cn_topic_0000001208447259_p166062273813"><a name="zh-cn_topic_0000001208447259_p166062273813"></a><a name="zh-cn_topic_0000001208447259_p166062273813"></a>内部存储目录</p>
</td>
<td class="cellrowborder" valign="top" width="53.57000000000001%" headers="mcps1.1.4.1.2 "><p id="zh-cn_topic_0000001208447259_p19601522103813"><a name="zh-cn_topic_0000001208447259_p19601522103813"></a><a name="zh-cn_topic_0000001208447259_p19601522103813"></a>随应用卸载删除。</p>
</td>
<td class="cellrowborder" valign="top" width="24.830000000000002%" headers="mcps1.1.4.1.3 "><p id="zh-cn_topic_0000001208447259_p147753546339"><a name="zh-cn_topic_0000001208447259_p147753546339"></a><a name="zh-cn_topic_0000001208447259_p147753546339"></a>getFilesDir</p>
</td>
</tr>
</tbody>
</table>
“文件/目录绝对路径”=“应用目录路径”+“文件/目录名”
通过上述接口获取到应用目录路径dir,文件名为“xxx.txt”,文件所在绝对路径为: 通过上述接口获取到应用目录路径dir,文件名为“xxx.txt”,文件所在绝对路径为:
``` ```
...@@ -2129,4 +2104,3 @@ isSymbolicLink\(\): boolean ...@@ -2129,4 +2104,3 @@ isSymbolicLink\(\): boolean
let isSymbolicLink = dir.readSync().isSymbolicLink(); let isSymbolicLink = dir.readSync().isSymbolicLink();
``` ```
# 网络搜索<a name="ZH-CN_TOPIC_0000001145113322"></a> # 网络搜索
- [导入模块](#s56d19203690d4782bfc74069abb6bd71) - [导入模块](#导入模块)
- [radio.getRadioTech](#section18401172810207) - [radio.getRadioTech](#radio.getRadioTech-callback)
- [radio.getRadioTech](#section686385662419) - [radio.getRadioTech](#radio.getRadioTech-promise)
- [radio.getNetworkState](#section2090641619263) - [radio.getNetworkState](#radio.getNetworkState-callback1)
- [radio.getNetworkState](#section392520433402) - [radio.getNetworkState](#radio.getNetworkState-callback2)
- [radio.getNetworkState](#section20661545182918) - [radio.getNetworkState](#radio.getNetworkState-promise)
- [radio.getNetworkSelectionMode](#section79561056114711) - [radio.getNetworkSelectionMode](#radio.getNetworkSelectionMode-callback)
- [radio.getNetworkSelectionMode](#section553074612507) - [radio.getNetworkSelectionMode](#radio.getNetworkSelectionMode-promise)
- [radio.getISOCountryCodeForNetwork7+](#section16183194320525) - [radio.getISOCountryCodeForNetwork<sup>7+</sup>](#radio.getISOCountryCodeForNetwork-callback)
- [radio.getISOCountryCodeForNetwork7+](#section56144132559) - [radio.getISOCountryCodeForNetwork<sup>7+</sup>](#radio.getISOCountryCodeForNetwork-promise)
- [radio.getSignalInformation](#section1153532721018) - [radio.getSignalInformation](#radio.getSignalInformation-callback)
- [radio.getSignalInformation](#section1859512161511) - [radio.getSignalInformation](#radio.getSignalInformation-promise)
- [radio.isRadioOn7+](#section5456161711228) - [radio.isRadioOn<sup>7+</sup>](#radio.isRadioOn-callback)
- [radio.isRadioOn7+](#section178817520243) - [radio.isRadioOn<sup>7+</sup>](#radio.isRadioOn-promise)
- [RadioTechnology](#section1072135204020) - [RadioTechnology](#RadioTechnology)
- [SignalInformation](#section10701756164212) - [SignalInformation](#SignalInformation)
- [NetworkType](#section519718112466) - [NetworkType](#NetworkType)
- [NetworkState](#section1691213911470) - [NetworkState](#NetworkState)
- [RegState](#section18174131911514) - [RegState](#RegState)
- [NsaState](#section448018155317) - [NsaState](#NsaState)
- [NetworkSelectionMode](#section14219361268) - [NetworkSelectionMode](#NetworkSelectionMode)
>**说明:** >**说明:**
> >
>标记7+的表示从API Version 7开始支持,未标记的表示从API Version 6开始支持。 >- 从 API Version 6 开始支持。
>- 标记<sup>7+</sup>的接口从API Version 7开始支持。
## 导入模块<a name="s56d19203690d4782bfc74069abb6bd71"></a> ## 导入模块
``` ```
import radio from '@ohos.telephony.radio' import radio from '@ohos.telephony.radio'
``` ```
## radio.getRadioTech<a name="section18401172810207"></a> ## radio.getRadioTech<a name=radio.getRadioTech-callback></a>
getRadioTech\(slotId: number, callback: AsyncCallback<\{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology\}\>\): void getRadioTech\(slotId: number, callback: AsyncCallback<\{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology\}\>\): void
...@@ -43,39 +44,10 @@ getRadioTech\(slotId: number, callback: AsyncCallback<\{psRadioTech: RadioTechno ...@@ -43,39 +44,10 @@ getRadioTech\(slotId: number, callback: AsyncCallback<\{psRadioTech: RadioTechno
- 参数 - 参数
<a name="table799351710213"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row1799411175217"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p899411179212"><a name="p899411179212"></a><a name="p899411179212"></a>参数名</p> | -------- | ------------------------------------------------------------ | ---- | -------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="58.76%" id="mcps1.1.5.1.2"><p id="p9994017112117"><a name="p9994017112117"></a><a name="p9994017112117"></a>类型</p> | callback | AsyncCallback\<{psRadioTech: [RadioTechnology](#RadioTechnology), csRadioTech:[RadioTechnology](#RadioTechnology)}\> | 是 | 回调函数。 |
</th>
<th class="cellrowborder" valign="top" width="10.26%" id="mcps1.1.5.1.3"><p id="p169941617192115"><a name="p169941617192115"></a><a name="p169941617192115"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="19.93%" id="mcps1.1.5.1.4"><p id="p499491722118"><a name="p499491722118"></a><a name="p499491722118"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row107581022174417"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p1231917335444"><a name="p1231917335444"></a><a name="p1231917335444"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="58.76%" headers="mcps1.1.5.1.2 "><p id="p275912223446"><a name="p275912223446"></a><a name="p275912223446"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.26%" headers="mcps1.1.5.1.3 "><p id="p27599224442"><a name="p27599224442"></a><a name="p27599224442"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="19.93%" headers="mcps1.1.5.1.4 "><p id="p111750457258"><a name="p111750457258"></a><a name="p111750457258"></a>卡槽ID。</p>
<p id="p39541754174217"><a name="p39541754174217"></a><a name="p39541754174217"></a>0:卡槽1</p>
<p id="p1016919004317"><a name="p1016919004317"></a><a name="p1016919004317"></a>1:卡槽2</p>
</td>
</tr>
<tr id="row79942177215"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p1299481713210"><a name="p1299481713210"></a><a name="p1299481713210"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="58.76%" headers="mcps1.1.5.1.2 "><p id="p112321515195213"><a name="p112321515195213"></a><a name="p112321515195213"></a>AsyncCallback&lt;{psRadioTech: <a href="#section1072135204020">RadioTechnology</a>, csRadioTech: <a href="#section1072135204020">RadioTechnology</a>}&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.26%" headers="mcps1.1.5.1.3 "><p id="p1599411782114"><a name="p1599411782114"></a><a name="p1599411782114"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="19.93%" headers="mcps1.1.5.1.4 "><p id="p10994181720215"><a name="p10994181720215"></a><a name="p10994181720215"></a>回调函数。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -87,7 +59,7 @@ getRadioTech\(slotId: number, callback: AsyncCallback<\{psRadioTech: RadioTechno ...@@ -87,7 +59,7 @@ getRadioTech\(slotId: number, callback: AsyncCallback<\{psRadioTech: RadioTechno
``` ```
## radio.getRadioTech<a name="section686385662419"></a> ## radio.getRadioTech<a name=radio.getRadioTech-promise></a>
getRadioTech\(slotId: number\): Promise<\{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology\}\> getRadioTech\(slotId: number\): Promise<\{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology\}\>
...@@ -97,47 +69,15 @@ getRadioTech\(slotId: number\): Promise<\{psRadioTech: RadioTechnology, csRadioT ...@@ -97,47 +69,15 @@ getRadioTech\(slotId: number\): Promise<\{psRadioTech: RadioTechnology, csRadioT
- 参数 - 参数
<a name="table125907710127"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row1659112714124"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p175911273125"><a name="p175911273125"></a><a name="p175911273125"></a>参数名</p> | ------ | ------ | ---- | -------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p14591157191213"><a name="p14591157191213"></a><a name="p14591157191213"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p125911791210"><a name="p125911791210"></a><a name="p125911791210"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p1459110712122"><a name="p1459110712122"></a><a name="p1459110712122"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row159111720120"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p14591177151217"><a name="p14591177151217"></a><a name="p14591177151217"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p11591177201215"><a name="p11591177201215"></a><a name="p11591177201215"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p7591117181212"><a name="p7591117181212"></a><a name="p7591117181212"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p359112718122"><a name="p359112718122"></a><a name="p359112718122"></a>卡槽ID。</p>
<p id="p19591137181219"><a name="p19591137181219"></a><a name="p19591137181219"></a>0:卡槽1</p>
<p id="p5591072124"><a name="p5591072124"></a><a name="p5591072124"></a>1:卡槽2</p>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table11130132420365"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row1213092453617"><th class="cellrowborder" valign="top" width="50.94%" id="mcps1.1.3.1.1"><p id="p191308246365"><a name="p191308246365"></a><a name="p191308246365"></a>类型</p> | ------------------------------------------------------------ | ----------------------------------------------- |
</th> | Promise<{psRadioTech: [RadioTechnology](#RadioTechnology), csRadioTech: [RadioTechnology](#RadioTechnology)}> | 以Promise形式返回获取当前接入的CS域和PS域技术。 |
<th class="cellrowborder" valign="top" width="49.059999999999995%" id="mcps1.1.3.1.2"><p id="p513092453618"><a name="p513092453618"></a><a name="p513092453618"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row01311524183615"><td class="cellrowborder" valign="top" width="50.94%" headers="mcps1.1.3.1.1 "><p id="p28631116886"><a name="p28631116886"></a><a name="p28631116886"></a>Promise&lt;{psRadioTech: <a href="#section1072135204020">RadioTechnology</a>, csRadioTech: <a href="#section1072135204020">RadioTechnology</a>}&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="49.059999999999995%" headers="mcps1.1.3.1.2 "><p id="p11311424123610"><a name="p11311424123610"></a><a name="p11311424123610"></a>以Promise形式<span>返回</span><span>获取当前接入的CS域和PS域技术</span>。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -152,7 +92,7 @@ getRadioTech\(slotId: number\): Promise<\{psRadioTech: RadioTechnology, csRadioT ...@@ -152,7 +92,7 @@ getRadioTech\(slotId: number\): Promise<\{psRadioTech: RadioTechnology, csRadioT
``` ```
## radio.getNetworkState<a name="section2090641619263"></a> ## radio.getNetworkState<a name=radio.getNetworkState-callback1></a>
getNetworkState\(callback: AsyncCallback<NetworkState\>\): void getNetworkState\(callback: AsyncCallback<NetworkState\>\): void
...@@ -162,28 +102,9 @@ getNetworkState\(callback: AsyncCallback<NetworkState\>\): void ...@@ -162,28 +102,9 @@ getNetworkState\(callback: AsyncCallback<NetworkState\>\): void
- 参数 - 参数
<a name="table1133014121782"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row4330111211811"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p833161216811"><a name="p833161216811"></a><a name="p833161216811"></a>参数名</p> | -------- | ---------------------------------------------- | ---- | ---------- |
</th> | callback | AsyncCallback\<[NetworkState](#NetworkState)\> | 是 | 回调函数。 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p033111121185"><a name="p033111121185"></a><a name="p033111121185"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p1233110127818"><a name="p1233110127818"></a><a name="p1233110127818"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p1233119121882"><a name="p1233119121882"></a><a name="p1233119121882"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row63317121487"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p633118122815"><a name="p633118122815"></a><a name="p633118122815"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p150313319819"><a name="p150313319819"></a><a name="p150313319819"></a>AsyncCallback&lt;<a href="#section1691213911470">NetworkState</a>&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p3331171217820"><a name="p3331171217820"></a><a name="p3331171217820"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p1533161212817"><a name="p1533161212817"></a><a name="p1533161212817"></a>回调函数。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -194,7 +115,7 @@ getNetworkState\(callback: AsyncCallback<NetworkState\>\): void ...@@ -194,7 +115,7 @@ getNetworkState\(callback: AsyncCallback<NetworkState\>\): void
``` ```
## radio.getNetworkState<a name="section392520433402"></a> ## radio.getNetworkState<a name=radio.getNetworkState-callback2></a>
getNetworkState\(slotId: number, callback: AsyncCallback<NetworkState\>\): void getNetworkState\(slotId: number, callback: AsyncCallback<NetworkState\>\): void
...@@ -204,39 +125,10 @@ getNetworkState\(slotId: number, callback: AsyncCallback<NetworkState\>\): void ...@@ -204,39 +125,10 @@ getNetworkState\(slotId: number, callback: AsyncCallback<NetworkState\>\): void
- 参数 - 参数
<a name="table11928163052718"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row199283309273"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p49281530182712"><a name="p49281530182712"></a><a name="p49281530182712"></a>参数名</p> | -------- | ---------------------------------------------- | ---- | -------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p129283306273"><a name="p129283306273"></a><a name="p129283306273"></a>类型</p> | callback | AsyncCallback\<[NetworkState](#NetworkState)\> | 是 | 回调函数。 |
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p15928123012278"><a name="p15928123012278"></a><a name="p15928123012278"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p79284305276"><a name="p79284305276"></a><a name="p79284305276"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1292853016277"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p9928143082716"><a name="p9928143082716"></a><a name="p9928143082716"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p09298306275"><a name="p09298306275"></a><a name="p09298306275"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p1892914308275"><a name="p1892914308275"></a><a name="p1892914308275"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p1092913032717"><a name="p1092913032717"></a><a name="p1092913032717"></a>卡槽ID。</p>
<p id="p392918309278"><a name="p392918309278"></a><a name="p392918309278"></a>0:卡槽1</p>
<p id="p15929030192713"><a name="p15929030192713"></a><a name="p15929030192713"></a>1:卡槽2</p>
</td>
</tr>
<tr id="row199291302270"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p0929130162711"><a name="p0929130162711"></a><a name="p0929130162711"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p1992993032712"><a name="p1992993032712"></a><a name="p1992993032712"></a>AsyncCallback&lt;<a href="#section1691213911470">NetworkState</a>&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p2929183042710"><a name="p2929183042710"></a><a name="p2929183042710"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p129291308276"><a name="p129291308276"></a><a name="p129291308276"></a>回调函数。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -248,7 +140,7 @@ getNetworkState\(slotId: number, callback: AsyncCallback<NetworkState\>\): void ...@@ -248,7 +140,7 @@ getNetworkState\(slotId: number, callback: AsyncCallback<NetworkState\>\): void
``` ```
## radio.getNetworkState<a name="section20661545182918"></a> ## radio.getNetworkState<a name=radio.getNetworkState-promise></a>
getNetworkState\(slotId?: number\): Promise<NetworkState\> getNetworkState\(slotId?: number\): Promise<NetworkState\>
...@@ -258,47 +150,15 @@ getNetworkState\(slotId?: number\): Promise<NetworkState\> ...@@ -258,47 +150,15 @@ getNetworkState\(slotId?: number\): Promise<NetworkState\>
- 参数 - 参数
<a name="table65021374111"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row150151312414"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p175061334120"><a name="p175061334120"></a><a name="p175061334120"></a>参数名</p> | ------ | ------ | ---- | -------------------------------------- |
</th> | slotId | number | 否 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p195021364111"><a name="p195021364111"></a><a name="p195021364111"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p1350913134110"><a name="p1350913134110"></a><a name="p1350913134110"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p205091319419"><a name="p205091319419"></a><a name="p205091319419"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row6501513184114"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p1931012820452"><a name="p1931012820452"></a><a name="p1931012820452"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p1031014286451"><a name="p1031014286451"></a><a name="p1031014286451"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p1131022813452"><a name="p1131022813452"></a><a name="p1131022813452"></a>否</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p10310928164516"><a name="p10310928164516"></a><a name="p10310928164516"></a>卡槽ID。</p>
<p id="p10311928124516"><a name="p10311928124516"></a><a name="p10311928124516"></a>0:卡槽1</p>
<p id="p131142814456"><a name="p131142814456"></a><a name="p131142814456"></a>1:卡槽2</p>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table041714530438"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row18418853104314"><th class="cellrowborder" valign="top" width="26.419999999999998%" id="mcps1.1.3.1.1"><p id="p11418553184319"><a name="p11418553184319"></a><a name="p11418553184319"></a>类型</p> | ---------------------------------------- | --------------------------- |
</th> | Promise\<[NetworkState](#NetworkState)\> | 以Promise形式返回网络状态。 |
<th class="cellrowborder" valign="top" width="73.58%" id="mcps1.1.3.1.2"><p id="p1941885354313"><a name="p1941885354313"></a><a name="p1941885354313"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row16418253194313"><td class="cellrowborder" valign="top" width="26.419999999999998%" headers="mcps1.1.3.1.1 "><p id="p84416171396"><a name="p84416171396"></a><a name="p84416171396"></a>Promise&lt;<a href="#section1691213911470">NetworkState</a>&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="73.58%" headers="mcps1.1.3.1.2 "><p id="p1537012718231"><a name="p1537012718231"></a><a name="p1537012718231"></a>以Promise形式返回网络状态。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -313,7 +173,7 @@ getNetworkState\(slotId?: number\): Promise<NetworkState\> ...@@ -313,7 +173,7 @@ getNetworkState\(slotId?: number\): Promise<NetworkState\>
``` ```
## radio.getNetworkSelectionMode<a name="section79561056114711"></a> ## radio.getNetworkSelectionMode<a name=radio.getNetworkSelectionMode-callback></a>
getNetworkSelectionMode\(slotId: number, callback: AsyncCallback<NetworkSelectionMode\>\): void getNetworkSelectionMode\(slotId: number, callback: AsyncCallback<NetworkSelectionMode\>\): void
...@@ -321,39 +181,10 @@ getNetworkSelectionMode\(slotId: number, callback: AsyncCallback<NetworkSelectio ...@@ -321,39 +181,10 @@ getNetworkSelectionMode\(slotId: number, callback: AsyncCallback<NetworkSelectio
- 参数 - 参数
<a name="table474813715499"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row1374814711498"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p13748137194915"><a name="p13748137194915"></a><a name="p13748137194915"></a>参数名</p> | -------- | ------------------------------------------------------------ | ---- | -------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p37481719495"><a name="p37481719495"></a><a name="p37481719495"></a>类型</p> | callback | AsyncCallback\<[NetworkSelectionMode](#NetworkSelectionMode)\> | 是 | 回调函数。 |
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p87481714913"><a name="p87481714913"></a><a name="p87481714913"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p9748157124912"><a name="p9748157124912"></a><a name="p9748157124912"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1074857154914"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p1074837134913"><a name="p1074837134913"></a><a name="p1074837134913"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p07489714919"><a name="p07489714919"></a><a name="p07489714919"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p37481717493"><a name="p37481717493"></a><a name="p37481717493"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p17748176496"><a name="p17748176496"></a><a name="p17748176496"></a>卡槽ID。</p>
<p id="p2748673497"><a name="p2748673497"></a><a name="p2748673497"></a>0:卡槽1</p>
<p id="p8748970499"><a name="p8748970499"></a><a name="p8748970499"></a>1:卡槽2</p>
</td>
</tr>
<tr id="row127482774919"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p177481764920"><a name="p177481764920"></a><a name="p177481764920"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p14749275495"><a name="p14749275495"></a><a name="p14749275495"></a>AsyncCallback&lt;<a href="#section14219361268">NetworkSelectionMode</a>&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p874910724910"><a name="p874910724910"></a><a name="p874910724910"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p474917710499"><a name="p474917710499"></a><a name="p474917710499"></a>回调函数。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -365,7 +196,7 @@ getNetworkSelectionMode\(slotId: number, callback: AsyncCallback<NetworkSelectio ...@@ -365,7 +196,7 @@ getNetworkSelectionMode\(slotId: number, callback: AsyncCallback<NetworkSelectio
``` ```
## radio.getNetworkSelectionMode<a name="section553074612507"></a> ## radio.getNetworkSelectionMode<a name=radio.getNetworkSelectionMode-promise></a>
getNetworkSelectionMode\(slotId: number\): Promise<NetworkSelectionMode\> getNetworkSelectionMode\(slotId: number\): Promise<NetworkSelectionMode\>
...@@ -373,47 +204,15 @@ getNetworkSelectionMode\(slotId: number\): Promise<NetworkSelectionMode\> ...@@ -373,47 +204,15 @@ getNetworkSelectionMode\(slotId: number\): Promise<NetworkSelectionMode\>
- 参数 - 参数
<a name="table2530104655016"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row125311446175016"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p1353110468506"><a name="p1353110468506"></a><a name="p1353110468506"></a>参数名</p> | ------ | ------ | ---- | -------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p115311468502"><a name="p115311468502"></a><a name="p115311468502"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p15531204685014"><a name="p15531204685014"></a><a name="p15531204685014"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p10531546105013"><a name="p10531546105013"></a><a name="p10531546105013"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row4531174695017"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p165311746125015"><a name="p165311746125015"></a><a name="p165311746125015"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p185312463502"><a name="p185312463502"></a><a name="p185312463502"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p165311546155018"><a name="p165311546155018"></a><a name="p165311546155018"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p20531204614508"><a name="p20531204614508"></a><a name="p20531204614508"></a>卡槽ID。</p>
<p id="p353134613501"><a name="p353134613501"></a><a name="p353134613501"></a>0:卡槽1</p>
<p id="p85313462508"><a name="p85313462508"></a><a name="p85313462508"></a>1:卡槽2</p>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table549425625112"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row1249475613515"><th class="cellrowborder" valign="top" width="39.129999999999995%" id="mcps1.1.3.1.1"><p id="p9494185617519"><a name="p9494185617519"></a><a name="p9494185617519"></a>类型</p> | -------------------------------------------------------- | ------------------------------- |
</th> | Promise\<[NetworkSelectionMode](#NetworkSelectionMode)\> | 以Promise形式返回当前选网模式。 |
<th class="cellrowborder" valign="top" width="60.870000000000005%" id="mcps1.1.3.1.2"><p id="p1449415610512"><a name="p1449415610512"></a><a name="p1449415610512"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1749495611517"><td class="cellrowborder" valign="top" width="39.129999999999995%" headers="mcps1.1.3.1.1 "><p id="p184941456145112"><a name="p184941456145112"></a><a name="p184941456145112"></a>Promise&lt;<a href="#section14219361268">NetworkSelectionMode</a>&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="60.870000000000005%" headers="mcps1.1.3.1.2 "><p id="p849415562515"><a name="p849415562515"></a><a name="p849415562515"></a>以Promise形式返回当前选网模式。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -428,7 +227,7 @@ getNetworkSelectionMode\(slotId: number\): Promise<NetworkSelectionMode\> ...@@ -428,7 +227,7 @@ getNetworkSelectionMode\(slotId: number\): Promise<NetworkSelectionMode\>
``` ```
## radio.getISOCountryCodeForNetwork<sup>7+</sup><a name="section16183194320525"></a> ## radio.getISOCountryCodeForNetwork<sup>7+</sup><a name=radio.getISOCountryCodeForNetwork-callback></a>
getISOCountryCodeForNetwork\(slotId: number, callback: AsyncCallback<string\>\): void getISOCountryCodeForNetwork\(slotId: number, callback: AsyncCallback<string\>\): void
...@@ -436,39 +235,10 @@ getISOCountryCodeForNetwork\(slotId: number, callback: AsyncCallback<string\>\): ...@@ -436,39 +235,10 @@ getISOCountryCodeForNetwork\(slotId: number, callback: AsyncCallback<string\>\):
- 参数 - 参数
<a name="table577030205412"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row197719017543"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p577117016544"><a name="p577117016544"></a><a name="p577117016544"></a>参数名</p> | -------- | ----------------------- | ---- | ---------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p1177150125418"><a name="p1177150125418"></a><a name="p1177150125418"></a>类型</p> | callback | AsyncCallback\<string\> | 是 | 回调函数。返回国家码,例如:CN(中国)。 |
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p187717019541"><a name="p187717019541"></a><a name="p187717019541"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p87718015419"><a name="p87718015419"></a><a name="p87718015419"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row077118019543"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p1377117013545"><a name="p1377117013545"></a><a name="p1377117013545"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p1572174331119"><a name="p1572174331119"></a><a name="p1572174331119"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p377112016542"><a name="p377112016542"></a><a name="p377112016542"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p13148175975910"><a name="p13148175975910"></a><a name="p13148175975910"></a>卡槽ID。</p>
<p id="p2148659155913"><a name="p2148659155913"></a><a name="p2148659155913"></a>0:卡槽1</p>
<p id="p214855925911"><a name="p214855925911"></a><a name="p214855925911"></a>1:卡槽2</p>
</td>
</tr>
<tr id="row9772701543"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p1977220014542"><a name="p1977220014542"></a><a name="p1977220014542"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p6772160205414"><a name="p6772160205414"></a><a name="p6772160205414"></a>AsyncCallback&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p777220017542"><a name="p777220017542"></a><a name="p777220017542"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p12772150105420"><a name="p12772150105420"></a><a name="p12772150105420"></a>回调函数。返回国家码,例如:CN(中国)。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -480,7 +250,7 @@ getISOCountryCodeForNetwork\(slotId: number, callback: AsyncCallback<string\>\): ...@@ -480,7 +250,7 @@ getISOCountryCodeForNetwork\(slotId: number, callback: AsyncCallback<string\>\):
``` ```
## radio.getISOCountryCodeForNetwork<sup>7+</sup><a name="section56144132559"></a> ## radio.getISOCountryCodeForNetwork<sup>7+</sup><a name=radio.getISOCountryCodeForNetwork-promise></a>
getISOCountryCodeForNetwork\(slotId: number\): Promise<string\> getISOCountryCodeForNetwork\(slotId: number\): Promise<string\>
...@@ -488,47 +258,15 @@ getISOCountryCodeForNetwork\(slotId: number\): Promise<string\> ...@@ -488,47 +258,15 @@ getISOCountryCodeForNetwork\(slotId: number\): Promise<string\>
- 参数 - 参数
<a name="table152728255611"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row927352125610"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p1327372165611"><a name="p1327372165611"></a><a name="p1327372165611"></a>参数名</p> | ------ | ------ | ---- | -------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p172731224566"><a name="p172731224566"></a><a name="p172731224566"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p9273626569"><a name="p9273626569"></a><a name="p9273626569"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p72733245613"><a name="p72733245613"></a><a name="p72733245613"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row32737215613"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p1427311216568"><a name="p1427311216568"></a><a name="p1427311216568"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p202739212562"><a name="p202739212562"></a><a name="p202739212562"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p122731323565"><a name="p122731323565"></a><a name="p122731323565"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p15811441804"><a name="p15811441804"></a><a name="p15811441804"></a>卡槽ID。</p>
<p id="p181241801"><a name="p181241801"></a><a name="p181241801"></a>0:卡槽1</p>
<p id="p18254701"><a name="p18254701"></a><a name="p18254701"></a>1:卡槽2</p>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table13274112165615"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row2274152185612"><th class="cellrowborder" valign="top" width="26.419999999999998%" id="mcps1.1.3.1.1"><p id="p927412275611"><a name="p927412275611"></a><a name="p927412275611"></a>类型</p> | ----------------- | ------------------------------------------------------------ |
</th> | Promise\<string\> | 以Promise形式返回注册网络所在国家的ISO国家码,例如CN(中国)。 |
<th class="cellrowborder" valign="top" width="73.58%" id="mcps1.1.3.1.2"><p id="p2027415216563"><a name="p2027415216563"></a><a name="p2027415216563"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row32748295615"><td class="cellrowborder" valign="top" width="26.419999999999998%" headers="mcps1.1.3.1.1 "><p id="p12274102115614"><a name="p12274102115614"></a><a name="p12274102115614"></a>Promise&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="73.58%" headers="mcps1.1.3.1.2 "><p id="p132743214560"><a name="p132743214560"></a><a name="p132743214560"></a>以Promise形式返回注册网络所在国家的ISO国家码,例如CN(中国)。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -543,7 +281,7 @@ getISOCountryCodeForNetwork\(slotId: number\): Promise<string\> ...@@ -543,7 +281,7 @@ getISOCountryCodeForNetwork\(slotId: number\): Promise<string\>
``` ```
## radio.getSignalInformation<a name="section1153532721018"></a> ## radio.getSignalInformation<a name=radio.getSignalInformation-callback></a>
getSignalInformation\(slotId: number, callback: AsyncCallback<Array<SignalInformation\>\>\): void getSignalInformation\(slotId: number, callback: AsyncCallback<Array<SignalInformation\>\>\): void
...@@ -551,39 +289,10 @@ getSignalInformation\(slotId: number, callback: AsyncCallback<Array<SignalInform ...@@ -551,39 +289,10 @@ getSignalInformation\(slotId: number, callback: AsyncCallback<Array<SignalInform
- 参数 - 参数
<a name="table1061723612116"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row5617336171118"><th class="cellrowborder" valign="top" width="11.03%" id="mcps1.1.5.1.1"><p id="p661833613111"><a name="p661833613111"></a><a name="p661833613111"></a>参数名</p> | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="33.550000000000004%" id="mcps1.1.5.1.2"><p id="p4618133681114"><a name="p4618133681114"></a><a name="p4618133681114"></a>类型</p> | callback | AsyncCallback\<Array\<[SignalInformation](#SignalInformation)\>\> | 是 | 回调函数,返回[SignalInformation](#SignalInformation)对象的数组。 |
</th>
<th class="cellrowborder" valign="top" width="8.92%" id="mcps1.1.5.1.3"><p id="p18618173610115"><a name="p18618173610115"></a><a name="p18618173610115"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="46.5%" id="mcps1.1.5.1.4"><p id="p56180360114"><a name="p56180360114"></a><a name="p56180360114"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1361816361115"><td class="cellrowborder" valign="top" width="11.03%" headers="mcps1.1.5.1.1 "><p id="p1661843641119"><a name="p1661843641119"></a><a name="p1661843641119"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="33.550000000000004%" headers="mcps1.1.5.1.2 "><p id="p1061843651117"><a name="p1061843651117"></a><a name="p1061843651117"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="8.92%" headers="mcps1.1.5.1.3 "><p id="p761175974216"><a name="p761175974216"></a><a name="p761175974216"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.5%" headers="mcps1.1.5.1.4 "><p id="p971654194213"><a name="p971654194213"></a><a name="p971654194213"></a>卡槽ID。</p>
<p id="p8719545423"><a name="p8719545423"></a><a name="p8719545423"></a>0:卡槽1</p>
<p id="p0711254194218"><a name="p0711254194218"></a><a name="p0711254194218"></a>1:卡槽2</p>
</td>
</tr>
<tr id="row1661913611113"><td class="cellrowborder" valign="top" width="11.03%" headers="mcps1.1.5.1.1 "><p id="p10619103610112"><a name="p10619103610112"></a><a name="p10619103610112"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="33.550000000000004%" headers="mcps1.1.5.1.2 "><p id="p8619173671111"><a name="p8619173671111"></a><a name="p8619173671111"></a>AsyncCallback&lt;Array&lt;<a href="#section10701756164212">SignalInformation</a>&gt;&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="8.92%" headers="mcps1.1.5.1.3 "><p id="p861933610118"><a name="p861933610118"></a><a name="p861933610118"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.5%" headers="mcps1.1.5.1.4 "><p id="p861912364116"><a name="p861912364116"></a><a name="p861912364116"></a>回调函数,返回<a href="#section10701756164212">SignalInformation</a>对象的数组。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -595,7 +304,7 @@ getSignalInformation\(slotId: number, callback: AsyncCallback<Array<SignalInform ...@@ -595,7 +304,7 @@ getSignalInformation\(slotId: number, callback: AsyncCallback<Array<SignalInform
``` ```
## radio.getSignalInformation<a name="section1859512161511"></a> ## radio.getSignalInformation<a name=radio.getSignalInformation-promise></a>
getSignalInformation\(slotId: number\): Promise<Array<SignalInformation\>\> getSignalInformation\(slotId: number\): Promise<Array<SignalInformation\>\>
...@@ -603,47 +312,15 @@ getSignalInformation\(slotId: number\): Promise<Array<SignalInformation\>\> ...@@ -603,47 +312,15 @@ getSignalInformation\(slotId: number\): Promise<Array<SignalInformation\>\>
- 参数 - 参数
<a name="table11589811191613"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row558971111617"><th class="cellrowborder" valign="top" width="11.03%" id="mcps1.1.5.1.1"><p id="p658961121619"><a name="p658961121619"></a><a name="p658961121619"></a>参数名</p> | ------ | ------ | ---- | -------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="33.550000000000004%" id="mcps1.1.5.1.2"><p id="p1758941151610"><a name="p1758941151610"></a><a name="p1758941151610"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="13.139999999999999%" id="mcps1.1.5.1.3"><p id="p1758919111164"><a name="p1758919111164"></a><a name="p1758919111164"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="42.28%" id="mcps1.1.5.1.4"><p id="p658916113164"><a name="p658916113164"></a><a name="p658916113164"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row15589191118166"><td class="cellrowborder" valign="top" width="11.03%" headers="mcps1.1.5.1.1 "><p id="p258921171613"><a name="p258921171613"></a><a name="p258921171613"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="33.550000000000004%" headers="mcps1.1.5.1.2 "><p id="p1759018111168"><a name="p1759018111168"></a><a name="p1759018111168"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="13.139999999999999%" headers="mcps1.1.5.1.3 "><p id="p1359051110161"><a name="p1359051110161"></a><a name="p1359051110161"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="42.28%" headers="mcps1.1.5.1.4 "><p id="p488718104314"><a name="p488718104314"></a><a name="p488718104314"></a>卡槽ID。</p>
<p id="p88872817438"><a name="p88872817438"></a><a name="p88872817438"></a>0:卡槽1</p>
<p id="p11887138144315"><a name="p11887138144315"></a><a name="p11887138144315"></a>1:卡槽2</p>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table1159021111163"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row7590811181610"><th class="cellrowborder" valign="top" width="26.06%" id="mcps1.1.3.1.1"><p id="p115901114164"><a name="p115901114164"></a><a name="p115901114164"></a>类型</p> | ----------------------------------------------------------- | ------------------------------------------------------------ |
</th> | Promise\<Array\<[SignalInformation](#SignalInformation)\>\> | 以Promise形式返回网络信号强度[SignalInformation](#SignalInformation)对象的数组。 |
<th class="cellrowborder" valign="top" width="73.94%" id="mcps1.1.3.1.2"><p id="p859016114165"><a name="p859016114165"></a><a name="p859016114165"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row75911811101617"><td class="cellrowborder" valign="top" width="26.06%" headers="mcps1.1.3.1.1 "><p id="p8591171115160"><a name="p8591171115160"></a><a name="p8591171115160"></a>Promise&lt;Array&lt;<a href="#section10701756164212">SignalInformation</a>&gt;&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="73.94%" headers="mcps1.1.3.1.2 "><p id="p159191118166"><a name="p159191118166"></a><a name="p159191118166"></a>以Promise形式返回网络信号强度<a href="#section10701756164212">SignalInformation</a>对象的数组。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -658,7 +335,7 @@ getSignalInformation\(slotId: number\): Promise<Array<SignalInformation\>\> ...@@ -658,7 +335,7 @@ getSignalInformation\(slotId: number\): Promise<Array<SignalInformation\>\>
``` ```
## radio.isRadioOn<sup>7+</sup><a name="section5456161711228"></a> ## radio.isRadioOn<sup>7+</sup><a name=radio.isRadioOn-callback></a>
isRadioOn\(callback: AsyncCallback<boolean\>\): void isRadioOn\(callback: AsyncCallback<boolean\>\): void
...@@ -668,30 +345,9 @@ isRadioOn\(callback: AsyncCallback<boolean\>\): void ...@@ -668,30 +345,9 @@ isRadioOn\(callback: AsyncCallback<boolean\>\): void
- 参数 - 参数
<a name="table16621218192311"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row16628188235"><th class="cellrowborder" valign="top" width="11.03%" id="mcps1.1.5.1.1"><p id="p766231810235"><a name="p766231810235"></a><a name="p766231810235"></a>参数名</p> | -------- | ------------------------ | ---- | ------------------------------------------------------- |
</th> | callback | AsyncCallback\<boolean\> | 是 | 回调函数。<br/>- true:Radio打开<br/>- false:Radio关闭 |
<th class="cellrowborder" valign="top" width="25.77%" id="mcps1.1.5.1.2"><p id="p4663131812313"><a name="p4663131812313"></a><a name="p4663131812313"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="14.45%" id="mcps1.1.5.1.3"><p id="p19663121892310"><a name="p19663121892310"></a><a name="p19663121892310"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="48.75%" id="mcps1.1.5.1.4"><p id="p11663418112315"><a name="p11663418112315"></a><a name="p11663418112315"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row166637182231"><td class="cellrowborder" valign="top" width="11.03%" headers="mcps1.1.5.1.1 "><p id="p116632186237"><a name="p116632186237"></a><a name="p116632186237"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="25.77%" headers="mcps1.1.5.1.2 "><p id="p12663518122318"><a name="p12663518122318"></a><a name="p12663518122318"></a>AsyncCallback&lt;boolean&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="14.45%" headers="mcps1.1.5.1.3 "><p id="p17663121813232"><a name="p17663121813232"></a><a name="p17663121813232"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="48.75%" headers="mcps1.1.5.1.4 "><p id="p766310184235"><a name="p766310184235"></a><a name="p766310184235"></a>回调函数。</p>
<p id="p12663101892317"><a name="p12663101892317"></a><a name="p12663101892317"></a>true:Radio打开</p>
<p id="p8663181852316"><a name="p8663181852316"></a><a name="p8663181852316"></a>false:Radio关闭</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -702,7 +358,7 @@ isRadioOn\(callback: AsyncCallback<boolean\>\): void ...@@ -702,7 +358,7 @@ isRadioOn\(callback: AsyncCallback<boolean\>\): void
``` ```
## radio.isRadioOn<sup>7+</sup><a name="section178817520243"></a> ## radio.isRadioOn<sup>7+</sup><a name=radio.isRadioOn-promise></a>
isRadioOn\(\): Promise<boolean\> isRadioOn\(\): Promise<boolean\>
...@@ -712,22 +368,9 @@ isRadioOn\(\): Promise<boolean\> ...@@ -712,22 +368,9 @@ isRadioOn\(\): Promise<boolean\>
- 返回值 - 返回值
<a name="table1089962622517"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row1290042613253"><th class="cellrowborder" valign="top" width="26.419999999999998%" id="mcps1.1.3.1.1"><p id="p1590072682510"><a name="p1590072682510"></a><a name="p1590072682510"></a>类型</p> | ------------------ | ------------------------------------------------------------ |
</th> | Promise\<boolean\> | 以Promise形式返回判断Radio是否打开的结果。<br/>- true:Radio打开<br/>- false:Radio关闭 |
<th class="cellrowborder" valign="top" width="73.58%" id="mcps1.1.3.1.2"><p id="p1190042652517"><a name="p1190042652517"></a><a name="p1190042652517"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row14900152617253"><td class="cellrowborder" valign="top" width="26.419999999999998%" headers="mcps1.1.3.1.1 "><p id="p2900172614252"><a name="p2900172614252"></a><a name="p2900172614252"></a>Promise&lt;boolean&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="73.58%" headers="mcps1.1.3.1.2 "><p id="p11900182612518"><a name="p11900182612518"></a><a name="p11900182612518"></a>以Promise形式返回判断Radio是否打开的结果。</p>
<p id="p290052615251"><a name="p290052615251"></a><a name="p290052615251"></a>true:Radio打开</p>
<p id="p290018264259"><a name="p290018264259"></a><a name="p290018264259"></a>false:Radio关闭</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -741,419 +384,99 @@ isRadioOn\(\): Promise<boolean\> ...@@ -741,419 +384,99 @@ isRadioOn\(\): Promise<boolean\>
``` ```
## RadioTechnology<a name="section1072135204020"></a> ## RadioTechnology<a name=RadioTechnology></a>
无线接入技术。 无线接入技术。
<a name="table0381514104112"></a> | 变量 | 值 | 说明 |
| ------------------------- | ---- | ------------------------------------------------------------ |
<table><thead align="left"><tr id="row9381121434113"><th class="cellrowborder" valign="top" width="34.953495349534954%" id="mcps1.1.4.1.1"><p id="p1538171414110"><a name="p1538171414110"></a><a name="p1538171414110"></a>变量</p> | RADIO_TECHNOLOGY_UNKNOWN | 0 | 未知无线接入技术(RAT)。 |
</th> | RADIO_TECHNOLOGY_GSM | 1 | 无线接入技术GSM(Global System For Mobile Communication)。 |
<th class="cellrowborder" valign="top" width="11.021102110211022%" id="mcps1.1.4.1.2"><p id="p923145715145"><a name="p923145715145"></a><a name="p923145715145"></a></p> | RADIO_TECHNOLOGY_1XRTT | 2 | 无线接入技术1XRTT(Single-Carrier Radio Transmission Technology)。 |
</th> | RADIO_TECHNOLOGY_WCDMA | 3 | 无线接入技术WCDMA(Wideband Code Division Multiple Access)。 |
<th class="cellrowborder" valign="top" width="54.02540254025403%" id="mcps1.1.4.1.3"><p id="p738101484113"><a name="p738101484113"></a><a name="p738101484113"></a>说明</p> | RADIO_TECHNOLOGY_HSPA | 4 | 无线接入技术HSPA(High Speed Packet Access)。 |
</th> | RADIO_TECHNOLOGY_HSPAP | 5 | 无线接入技术HSPAP(High Speed packet access (HSPA+) )。 |
</tr> | RADIO_TECHNOLOGY_TD_SCDMA | 6 | 无线接入技术TDSCDMA(TimeDivision-Synchronous Code Division Multiple Access)。 |
</thead> | RADIO_TECHNOLOGY_EVDO | 7 | 无线接入技术EVDO(Evolution、Data Only)。 |
<tbody><tr id="row20381111417414"><td class="cellrowborder" valign="top" width="34.953495349534954%" headers="mcps1.1.4.1.1 "><p id="p18382151414110"><a name="p18382151414110"></a><a name="p18382151414110"></a>RADIO_TECHNOLOGY_UNKNOWN</p> | RADIO_TECHNOLOGY_EHRPD | 8 | 无线接入技术EHRPD(Evolved High Rate Package Data)。 |
</td> | RADIO_TECHNOLOGY_LTE | 9 | 无线接入技术LTE(Long Term Evolution)。 |
<td class="cellrowborder" valign="top" width="11.021102110211022%" headers="mcps1.1.4.1.2 "><p id="p1123125741418"><a name="p1123125741418"></a><a name="p1123125741418"></a>0</p> | RADIO_TECHNOLOGY_LTE_CA | 10 | 无线接入技术LTE_CA(Long Term Evolution_Carrier Aggregation)。 |
</td> | RADIO_TECHNOLOGY_IWLAN | 11 | 无线接入技术IWLAN(Industrial Wireless LAN)。 |
<td class="cellrowborder" valign="top" width="54.02540254025403%" headers="mcps1.1.4.1.3 "><p id="p738221417411"><a name="p738221417411"></a><a name="p738221417411"></a>未知无线接入技术(RAT)。</p> | RADIO_TECHNOLOGY_NR | 12 | 无线接入技术NR(New Radio)。 |
</td>
</tr>
<tr id="row6382171434119"><td class="cellrowborder" valign="top" width="34.953495349534954%" headers="mcps1.1.4.1.1 "><p id="p5382014134114"><a name="p5382014134114"></a><a name="p5382014134114"></a>RADIO_TECHNOLOGY_GSM</p> ## SignalInformation<a name=SignalInformation></a>
</td>
<td class="cellrowborder" valign="top" width="11.021102110211022%" headers="mcps1.1.4.1.2 "><p id="p5231257131412"><a name="p5231257131412"></a><a name="p5231257131412"></a>1</p>
</td>
<td class="cellrowborder" valign="top" width="54.02540254025403%" headers="mcps1.1.4.1.3 "><p id="p1426645312125"><a name="p1426645312125"></a><a name="p1426645312125"></a>无线接入技术GSM(Global System For Mobile Communication)。</p>
</td>
</tr>
<tr id="row4382914104115"><td class="cellrowborder" valign="top" width="34.953495349534954%" headers="mcps1.1.4.1.1 "><p id="p10382181464115"><a name="p10382181464115"></a><a name="p10382181464115"></a>RADIO_TECHNOLOGY_1XRTT</p>
</td>
<td class="cellrowborder" valign="top" width="11.021102110211022%" headers="mcps1.1.4.1.2 "><p id="p823195781418"><a name="p823195781418"></a><a name="p823195781418"></a>2</p>
</td>
<td class="cellrowborder" valign="top" width="54.02540254025403%" headers="mcps1.1.4.1.3 "><p id="p63831214174116"><a name="p63831214174116"></a><a name="p63831214174116"></a>无线接入技术1XRTT(Single-Carrier Radio Transmission Technology)。</p>
</td>
</tr>
<tr id="row1383201444113"><td class="cellrowborder" valign="top" width="34.953495349534954%" headers="mcps1.1.4.1.1 "><p id="p16383121420413"><a name="p16383121420413"></a><a name="p16383121420413"></a>RADIO_TECHNOLOGY_WCDMA</p>
</td>
<td class="cellrowborder" valign="top" width="11.021102110211022%" headers="mcps1.1.4.1.2 "><p id="p172345717145"><a name="p172345717145"></a><a name="p172345717145"></a>3</p>
</td>
<td class="cellrowborder" valign="top" width="54.02540254025403%" headers="mcps1.1.4.1.3 "><p id="p838431454114"><a name="p838431454114"></a><a name="p838431454114"></a>无线接入技术WCDMA(Wideband Code Division Multiple Access)。</p>
</td>
</tr>
<tr id="row123841214204119"><td class="cellrowborder" valign="top" width="34.953495349534954%" headers="mcps1.1.4.1.1 "><p id="p19384314164111"><a name="p19384314164111"></a><a name="p19384314164111"></a>RADIO_TECHNOLOGY_HSPA</p>
</td>
<td class="cellrowborder" valign="top" width="11.021102110211022%" headers="mcps1.1.4.1.2 "><p id="p1023457161417"><a name="p1023457161417"></a><a name="p1023457161417"></a>4</p>
</td>
<td class="cellrowborder" valign="top" width="54.02540254025403%" headers="mcps1.1.4.1.3 "><p id="p153841414164111"><a name="p153841414164111"></a><a name="p153841414164111"></a>无线接入技术HSPA(High Speed Packet Access)。</p>
</td>
</tr>
<tr id="row1438561454118"><td class="cellrowborder" valign="top" width="34.953495349534954%" headers="mcps1.1.4.1.1 "><p id="p238581418410"><a name="p238581418410"></a><a name="p238581418410"></a>RADIO_TECHNOLOGY_HSPAP</p>
</td>
<td class="cellrowborder" valign="top" width="11.021102110211022%" headers="mcps1.1.4.1.2 "><p id="p623125720142"><a name="p623125720142"></a><a name="p623125720142"></a>5</p>
</td>
<td class="cellrowborder" valign="top" width="54.02540254025403%" headers="mcps1.1.4.1.3 "><p id="p654462715234"><a name="p654462715234"></a><a name="p654462715234"></a>无线接入技术HSPAP(High Speed packet access (HSPA+) )。</p>
</td>
</tr>
<tr id="row153856148415"><td class="cellrowborder" valign="top" width="34.953495349534954%" headers="mcps1.1.4.1.1 "><p id="p153854146414"><a name="p153854146414"></a><a name="p153854146414"></a>RADIO_TECHNOLOGY_TD_SCDMA</p>
</td>
<td class="cellrowborder" valign="top" width="11.021102110211022%" headers="mcps1.1.4.1.2 "><p id="p5238578147"><a name="p5238578147"></a><a name="p5238578147"></a>6</p>
</td>
<td class="cellrowborder" valign="top" width="54.02540254025403%" headers="mcps1.1.4.1.3 "><p id="p73851614144114"><a name="p73851614144114"></a><a name="p73851614144114"></a>无线接入技术TDSCDMA(TimeDivision-Synchronous Code Division Multiple Access)。</p>
</td>
</tr>
<tr id="row20385914144118"><td class="cellrowborder" valign="top" width="34.953495349534954%" headers="mcps1.1.4.1.1 "><p id="p12386614144116"><a name="p12386614144116"></a><a name="p12386614144116"></a>RADIO_TECHNOLOGY_EVDO</p>
</td>
<td class="cellrowborder" valign="top" width="11.021102110211022%" headers="mcps1.1.4.1.2 "><p id="p13235578149"><a name="p13235578149"></a><a name="p13235578149"></a>7</p>
</td>
<td class="cellrowborder" valign="top" width="54.02540254025403%" headers="mcps1.1.4.1.3 "><p id="p18386214164119"><a name="p18386214164119"></a><a name="p18386214164119"></a>无线接入技术EVDO(Evolution、Data Only)。</p>
</td>
</tr>
<tr id="row14386181444117"><td class="cellrowborder" valign="top" width="34.953495349534954%" headers="mcps1.1.4.1.1 "><p id="p1386161420417"><a name="p1386161420417"></a><a name="p1386161420417"></a>RADIO_TECHNOLOGY_EHRPD</p>
</td>
<td class="cellrowborder" valign="top" width="11.021102110211022%" headers="mcps1.1.4.1.2 "><p id="p4236579145"><a name="p4236579145"></a><a name="p4236579145"></a>8</p>
</td>
<td class="cellrowborder" valign="top" width="54.02540254025403%" headers="mcps1.1.4.1.3 "><p id="p0815111425214"><a name="p0815111425214"></a><a name="p0815111425214"></a>无线接入技术EHRPD(Evolved High Rate Package Data)。</p>
</td>
</tr>
<tr id="row16389101413415"><td class="cellrowborder" valign="top" width="34.953495349534954%" headers="mcps1.1.4.1.1 "><p id="p1139091474115"><a name="p1139091474115"></a><a name="p1139091474115"></a>RADIO_TECHNOLOGY_LTE</p>
</td>
<td class="cellrowborder" valign="top" width="11.021102110211022%" headers="mcps1.1.4.1.2 "><p id="p122395715146"><a name="p122395715146"></a><a name="p122395715146"></a>9</p>
</td>
<td class="cellrowborder" valign="top" width="54.02540254025403%" headers="mcps1.1.4.1.3 "><p id="p639011418416"><a name="p639011418416"></a><a name="p639011418416"></a>无线接入技术LTE(Long Term Evolution)。</p>
</td>
</tr>
<tr id="row53901144414"><td class="cellrowborder" valign="top" width="34.953495349534954%" headers="mcps1.1.4.1.1 "><p id="p4390181484116"><a name="p4390181484116"></a><a name="p4390181484116"></a>RADIO_TECHNOLOGY_LTE_CA</p>
</td>
<td class="cellrowborder" valign="top" width="11.021102110211022%" headers="mcps1.1.4.1.2 "><p id="p162385719147"><a name="p162385719147"></a><a name="p162385719147"></a>10</p>
</td>
<td class="cellrowborder" valign="top" width="54.02540254025403%" headers="mcps1.1.4.1.3 "><p id="p16390121464116"><a name="p16390121464116"></a><a name="p16390121464116"></a>无线接入技术LTE_CA(Long Term Evolution_Carrier Aggregation)。</p>
</td>
</tr>
<tr id="row43905141411"><td class="cellrowborder" valign="top" width="34.953495349534954%" headers="mcps1.1.4.1.1 "><p id="p1739091414110"><a name="p1739091414110"></a><a name="p1739091414110"></a>RADIO_TECHNOLOGY_IWLAN</p>
</td>
<td class="cellrowborder" valign="top" width="11.021102110211022%" headers="mcps1.1.4.1.2 "><p id="p8232057121414"><a name="p8232057121414"></a><a name="p8232057121414"></a>11</p>
</td>
<td class="cellrowborder" valign="top" width="54.02540254025403%" headers="mcps1.1.4.1.3 "><p id="p9391191474110"><a name="p9391191474110"></a><a name="p9391191474110"></a>无线接入技术IWLAN(Industrial Wireless LAN)。</p>
</td>
</tr>
<tr id="row153917149411"><td class="cellrowborder" valign="top" width="34.953495349534954%" headers="mcps1.1.4.1.1 "><p id="p239118143418"><a name="p239118143418"></a><a name="p239118143418"></a>RADIO_TECHNOLOGY_NR</p>
</td>
<td class="cellrowborder" valign="top" width="11.021102110211022%" headers="mcps1.1.4.1.2 "><p id="p7237573146"><a name="p7237573146"></a><a name="p7237573146"></a>12</p>
</td>
<td class="cellrowborder" valign="top" width="54.02540254025403%" headers="mcps1.1.4.1.3 "><p id="p9391121419416"><a name="p9391121419416"></a><a name="p9391121419416"></a>无线接入技术NR(New Radio)。</p>
</td>
</tr>
</tbody>
</table>
## SignalInformation<a name="section10701756164212"></a>
网络信号强度信息对象。 网络信号强度信息对象。
<a name="table15599174814312"></a> | 属性名 | 类型 | 说明 |
<table><thead align="left"><tr id="row125991548184313"><th class="cellrowborder" valign="top" width="34.4034403440344%" id="mcps1.1.4.1.1"><p id="p17599848174311"><a name="p17599848174311"></a><a name="p17599848174311"></a>属性名</p> | ----------- | --------------------------- | ------------------ |
</th> | signalType | [NetworkType](#NetworkType) | 网络信号强度类型。 |
<th class="cellrowborder" valign="top" width="20.89208920892089%" id="mcps1.1.4.1.2"><p id="p165996488433"><a name="p165996488433"></a><a name="p165996488433"></a>类型</p> | signalLevel | number | 网络信号强度等级。 |
</th>
<th class="cellrowborder" valign="top" width="44.704470447044706%" id="mcps1.1.4.1.3"><p id="p559954854315"><a name="p559954854315"></a><a name="p559954854315"></a>说明</p>
</th> ## NetworkType<a name=NetworkType></a>
</tr>
</thead>
<tbody><tr id="row1360044844315"><td class="cellrowborder" valign="top" width="34.4034403440344%" headers="mcps1.1.4.1.1 "><p id="p2600154864317"><a name="p2600154864317"></a><a name="p2600154864317"></a>signalType</p>
</td>
<td class="cellrowborder" valign="top" width="20.89208920892089%" headers="mcps1.1.4.1.2 "><p id="p1960014844311"><a name="p1960014844311"></a><a name="p1960014844311"></a><a href="#section519718112466">NetworkType</a></p>
</td>
<td class="cellrowborder" valign="top" width="44.704470447044706%" headers="mcps1.1.4.1.3 "><p id="p760084810435"><a name="p760084810435"></a><a name="p760084810435"></a>网络信号强度类型。</p>
</td>
</tr>
<tr id="row5600648124317"><td class="cellrowborder" valign="top" width="34.4034403440344%" headers="mcps1.1.4.1.1 "><p id="p1060014884311"><a name="p1060014884311"></a><a name="p1060014884311"></a>signalLevel</p>
</td>
<td class="cellrowborder" valign="top" width="20.89208920892089%" headers="mcps1.1.4.1.2 "><p id="p14600144814436"><a name="p14600144814436"></a><a name="p14600144814436"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="44.704470447044706%" headers="mcps1.1.4.1.3 "><p id="p1360094874317"><a name="p1360094874317"></a><a name="p1360094874317"></a>网络信号强度等级。</p>
</td>
</tr>
</tbody>
</table>
## NetworkType<a name="section519718112466"></a>
网络类型。 网络类型。
<a name="table169468114719"></a> | 变量 | 值 | 说明 |
| -------------------- | ---- | ------------------------------------------------------------ |
<table><thead align="left"><tr id="row19946141204716"><th class="cellrowborder" valign="top" width="29.59%" id="mcps1.1.4.1.1"><p id="p19946111184714"><a name="p19946111184714"></a><a name="p19946111184714"></a>变量</p> | NETWORK_TYPE_UNKNOWN | 0 | 未知网络类型。 |
</th> | NETWORK_TYPE_GSM | 1 | 网络类型为GSM(Global System For Mobile Communication)。 |
<th class="cellrowborder" valign="top" width="11.85%" id="mcps1.1.4.1.2"><p id="p199467115477"><a name="p199467115477"></a><a name="p199467115477"></a></p> | NETWORK_TYPE_CDMA | 2 | 网络类型为CDMA(Code Division Multiple Access)。 |
</th> | NETWORK_TYPE_WCDMA | 3 | 网络类型为WCDMA(Wideband Code Division Multiple Access)。 |
<th class="cellrowborder" valign="top" width="58.56%" id="mcps1.1.4.1.3"><p id="p1387273215116"><a name="p1387273215116"></a><a name="p1387273215116"></a>说明</p> | NETWORK_TYPE_TDSCDMA | 4 | 网络类型为TDSCDMA(TimeDivision-Synchronous Code Division Multiple Access)。 |
</th> | NETWORK_TYPE_LTE | 5 | 网络类型为LTE(Long Term Evolution)。 |
</tr> | NETWORK_TYPE_NR | 6 | 网络类型为5G NR(New Radio)。 |
</thead>
<tbody><tr id="row18947191134714"><td class="cellrowborder" valign="top" width="29.59%" headers="mcps1.1.4.1.1 "><p id="p10947215473"><a name="p10947215473"></a><a name="p10947215473"></a>NETWORK_TYPE_UNKNOWN</p> ## NetworkState<a name=NetworkState></a>
</td>
<td class="cellrowborder" valign="top" width="11.85%" headers="mcps1.1.4.1.2 "><p id="p694715114717"><a name="p694715114717"></a><a name="p694715114717"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="58.56%" headers="mcps1.1.4.1.3 "><p id="p13872123215111"><a name="p13872123215111"></a><a name="p13872123215111"></a>未知网络类型。</p>
</td>
</tr>
<tr id="row19947512478"><td class="cellrowborder" valign="top" width="29.59%" headers="mcps1.1.4.1.1 "><p id="p1994716112477"><a name="p1994716112477"></a><a name="p1994716112477"></a>NETWORK_TYPE_GSM</p>
</td>
<td class="cellrowborder" valign="top" width="11.85%" headers="mcps1.1.4.1.2 "><p id="p09471311474"><a name="p09471311474"></a><a name="p09471311474"></a>1</p>
</td>
<td class="cellrowborder" valign="top" width="58.56%" headers="mcps1.1.4.1.3 "><p id="p18872133231117"><a name="p18872133231117"></a><a name="p18872133231117"></a>网络类型为GSM(Global System For Mobile Communication)。</p>
</td>
</tr>
<tr id="row194716112479"><td class="cellrowborder" valign="top" width="29.59%" headers="mcps1.1.4.1.1 "><p id="p5947181154720"><a name="p5947181154720"></a><a name="p5947181154720"></a>NETWORK_TYPE_CDMA</p>
</td>
<td class="cellrowborder" valign="top" width="11.85%" headers="mcps1.1.4.1.2 "><p id="p494861154718"><a name="p494861154718"></a><a name="p494861154718"></a>2</p>
</td>
<td class="cellrowborder" valign="top" width="58.56%" headers="mcps1.1.4.1.3 "><p id="p76281531111318"><a name="p76281531111318"></a><a name="p76281531111318"></a>网络类型为CDMA(Code Division Multiple Access)。</p>
</td>
</tr>
<tr id="row294817154719"><td class="cellrowborder" valign="top" width="29.59%" headers="mcps1.1.4.1.1 "><p id="p6948121134711"><a name="p6948121134711"></a><a name="p6948121134711"></a>NETWORK_TYPE_WCDMA</p>
</td>
<td class="cellrowborder" valign="top" width="11.85%" headers="mcps1.1.4.1.2 "><p id="p11948612475"><a name="p11948612475"></a><a name="p11948612475"></a>3</p>
</td>
<td class="cellrowborder" valign="top" width="58.56%" headers="mcps1.1.4.1.3 "><p id="p956153291315"><a name="p956153291315"></a><a name="p956153291315"></a>网络类型为WCDMA(Wideband Code Division Multiple Access)。</p>
</td>
</tr>
<tr id="row1794817118475"><td class="cellrowborder" valign="top" width="29.59%" headers="mcps1.1.4.1.1 "><p id="p8948311475"><a name="p8948311475"></a><a name="p8948311475"></a>NETWORK_TYPE_TDSCDMA</p>
</td>
<td class="cellrowborder" valign="top" width="11.85%" headers="mcps1.1.4.1.2 "><p id="p39492134718"><a name="p39492134718"></a><a name="p39492134718"></a>4</p>
</td>
<td class="cellrowborder" valign="top" width="58.56%" headers="mcps1.1.4.1.3 "><p id="p17358203301314"><a name="p17358203301314"></a><a name="p17358203301314"></a>网络类型为TDSCDMA(TimeDivision-Synchronous Code Division Multiple Access)。</p>
</td>
</tr>
<tr id="row39491314476"><td class="cellrowborder" valign="top" width="29.59%" headers="mcps1.1.4.1.1 "><p id="p139491712474"><a name="p139491712474"></a><a name="p139491712474"></a>NETWORK_TYPE_LTE</p>
</td>
<td class="cellrowborder" valign="top" width="11.85%" headers="mcps1.1.4.1.2 "><p id="p139493113479"><a name="p139493113479"></a><a name="p139493113479"></a>5</p>
</td>
<td class="cellrowborder" valign="top" width="58.56%" headers="mcps1.1.4.1.3 "><p id="p17282834141317"><a name="p17282834141317"></a><a name="p17282834141317"></a>网络类型为LTE(Long Term Evolution)。</p>
</td>
</tr>
<tr id="row7949515473"><td class="cellrowborder" valign="top" width="29.59%" headers="mcps1.1.4.1.1 "><p id="p20950151114718"><a name="p20950151114718"></a><a name="p20950151114718"></a>NETWORK_TYPE_NR</p>
</td>
<td class="cellrowborder" valign="top" width="11.85%" headers="mcps1.1.4.1.2 "><p id="p1950131164710"><a name="p1950131164710"></a><a name="p1950131164710"></a>6</p>
</td>
<td class="cellrowborder" valign="top" width="58.56%" headers="mcps1.1.4.1.3 "><p id="p12872143291113"><a name="p12872143291113"></a><a name="p12872143291113"></a>网络类型为5G NR(New Radio)。</p>
</td>
</tr>
</tbody>
</table>
## NetworkState<a name="section1691213911470"></a>
网络注册状态。 网络注册状态。
<a name="table14636181774820"></a> | 变量 | 类型 | 说明 |
<table><thead align="left"><tr id="row1263781714819"><th class="cellrowborder" valign="top" width="21.57%" id="mcps1.1.4.1.1"><p id="p8637131764817"><a name="p8637131764817"></a><a name="p8637131764817"></a>变量</p> | ----------------- | --------------------- | ------------------------------ |
</th> | longOperatorName | string | 注册网络的长运营商名称。 |
<th class="cellrowborder" valign="top" width="17.14%" id="mcps1.1.4.1.2"><p id="p16637317174815"><a name="p16637317174815"></a><a name="p16637317174815"></a>类型</p> | shortOperatorName | string | 注册网络的短运营商名称。 |
</th> | plmnNumeric | string | 注册网络的PLMN码。 |
<th class="cellrowborder" valign="top" width="61.29%" id="mcps1.1.4.1.3"><p id="p1041654112217"><a name="p1041654112217"></a><a name="p1041654112217"></a>说明</p> | isRoaming | boolean | 是否处于漫游状态。 |
</th> | regState | [RegState](#RegState) | 设备的网络注册状态。 |
</tr> | nsaState | [NsaState](#NsaState) | 设备的NSA网络注册状态。 |
</thead> | isCaActive | boolean | CA的状态。 |
<tbody><tr id="row15637917164813"><td class="cellrowborder" valign="top" width="21.57%" headers="mcps1.1.4.1.1 "><p id="p17637617174816"><a name="p17637617174816"></a><a name="p17637617174816"></a>longOperatorName</p> | isEmergency | boolean | 此设备是否只允许拨打紧急呼叫。 |
</td>
<td class="cellrowborder" valign="top" width="17.14%" headers="mcps1.1.4.1.2 "><p id="p86378179487"><a name="p86378179487"></a><a name="p86378179487"></a>string</p>
</td> ## RegState<a name=RegState></a>
<td class="cellrowborder" valign="top" width="61.29%" headers="mcps1.1.4.1.3 "><p id="p124161741172213"><a name="p124161741172213"></a><a name="p124161741172213"></a>注册网络的长运营商名称。</p>
</td>
</tr>
<tr id="row963719172483"><td class="cellrowborder" valign="top" width="21.57%" headers="mcps1.1.4.1.1 "><p id="p6637131716488"><a name="p6637131716488"></a><a name="p6637131716488"></a>shortOperatorName</p>
</td>
<td class="cellrowborder" valign="top" width="17.14%" headers="mcps1.1.4.1.2 "><p id="p8638417184820"><a name="p8638417184820"></a><a name="p8638417184820"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="61.29%" headers="mcps1.1.4.1.3 "><p id="p16416174117229"><a name="p16416174117229"></a><a name="p16416174117229"></a>注册网络的短运营商名称。</p>
</td>
</tr>
<tr id="row15638917184813"><td class="cellrowborder" valign="top" width="21.57%" headers="mcps1.1.4.1.1 "><p id="p063891718484"><a name="p063891718484"></a><a name="p063891718484"></a>plmnNumeric</p>
</td>
<td class="cellrowborder" valign="top" width="17.14%" headers="mcps1.1.4.1.2 "><p id="p126387173485"><a name="p126387173485"></a><a name="p126387173485"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="61.29%" headers="mcps1.1.4.1.3 "><p id="p54168419229"><a name="p54168419229"></a><a name="p54168419229"></a>注册网络的PLMN码。</p>
</td>
</tr>
<tr id="row663811784813"><td class="cellrowborder" valign="top" width="21.57%" headers="mcps1.1.4.1.1 "><p id="p1263811712484"><a name="p1263811712484"></a><a name="p1263811712484"></a>isRoaming</p>
</td>
<td class="cellrowborder" valign="top" width="17.14%" headers="mcps1.1.4.1.2 "><p id="p13638181734816"><a name="p13638181734816"></a><a name="p13638181734816"></a>boolean</p>
</td>
<td class="cellrowborder" valign="top" width="61.29%" headers="mcps1.1.4.1.3 "><p id="p9416114118220"><a name="p9416114118220"></a><a name="p9416114118220"></a>是否处于漫游状态。</p>
</td>
</tr>
<tr id="row063861734816"><td class="cellrowborder" valign="top" width="21.57%" headers="mcps1.1.4.1.1 "><p id="p116394172485"><a name="p116394172485"></a><a name="p116394172485"></a>regState</p>
</td>
<td class="cellrowborder" valign="top" width="17.14%" headers="mcps1.1.4.1.2 "><p id="p1963951713482"><a name="p1963951713482"></a><a name="p1963951713482"></a><a href="#section18174131911514">RegState</a></p>
</td>
<td class="cellrowborder" valign="top" width="61.29%" headers="mcps1.1.4.1.3 "><p id="p12416114142214"><a name="p12416114142214"></a><a name="p12416114142214"></a>设备的网络注册状态。</p>
</td>
</tr>
<tr id="row963941719485"><td class="cellrowborder" valign="top" width="21.57%" headers="mcps1.1.4.1.1 "><p id="p1763919175480"><a name="p1763919175480"></a><a name="p1763919175480"></a>nsaState</p>
</td>
<td class="cellrowborder" valign="top" width="17.14%" headers="mcps1.1.4.1.2 "><p id="p13639111794814"><a name="p13639111794814"></a><a name="p13639111794814"></a><a href="#section448018155317">NsaState</a></p>
</td>
<td class="cellrowborder" valign="top" width="61.29%" headers="mcps1.1.4.1.3 "><p id="p641684114224"><a name="p641684114224"></a><a name="p641684114224"></a>设备的NSA网络注册状态。</p>
</td>
</tr>
<tr id="row163901754816"><td class="cellrowborder" valign="top" width="21.57%" headers="mcps1.1.4.1.1 "><p id="p10639181717481"><a name="p10639181717481"></a><a name="p10639181717481"></a>isCaActive</p>
</td>
<td class="cellrowborder" valign="top" width="17.14%" headers="mcps1.1.4.1.2 "><p id="p96391178489"><a name="p96391178489"></a><a name="p96391178489"></a>boolean</p>
</td>
<td class="cellrowborder" valign="top" width="61.29%" headers="mcps1.1.4.1.3 "><p id="p10416124119227"><a name="p10416124119227"></a><a name="p10416124119227"></a>CA的状态。</p>
</td>
</tr>
<tr id="row126392017124814"><td class="cellrowborder" valign="top" width="21.57%" headers="mcps1.1.4.1.1 "><p id="p1164061784815"><a name="p1164061784815"></a><a name="p1164061784815"></a>isEmergency</p>
</td>
<td class="cellrowborder" valign="top" width="17.14%" headers="mcps1.1.4.1.2 "><p id="p56401317204812"><a name="p56401317204812"></a><a name="p56401317204812"></a>boolean</p>
</td>
<td class="cellrowborder" valign="top" width="61.29%" headers="mcps1.1.4.1.3 "><p id="p1141624122217"><a name="p1141624122217"></a><a name="p1141624122217"></a>此设备是否只允许拨打紧急呼叫。</p>
</td>
</tr>
</tbody>
</table>
## RegState<a name="section18174131911514"></a>
网络注册状态。 网络注册状态。
<a name="table10902144118519"></a> | 变量 | 值 | 说明 |
<table><thead align="left"><tr id="row1290316411519"><th class="cellrowborder" valign="top" width="39.89%" id="mcps1.1.4.1.1"><p id="p13903441175110"><a name="p13903441175110"></a><a name="p13903441175110"></a>变量</p> | ----------------------------- | ---- | -------------------------- |
</th> | REG_STATE_NO_SERVICE | 0 | 设备不能使用任何服务。 |
<th class="cellrowborder" valign="top" width="8.6%" id="mcps1.1.4.1.2"><p id="p114671121109"><a name="p114671121109"></a><a name="p114671121109"></a></p> | REG_STATE_IN_SERVICE | 1 | 设备可以正常使用业务。 |
</th> | REG_STATE_EMERGENCY_CALL_ONLY | 2 | 设备只能使用紧急呼叫业务。 |
<th class="cellrowborder" valign="top" width="51.51%" id="mcps1.1.4.1.3"><p id="p15903144110513"><a name="p15903144110513"></a><a name="p15903144110513"></a>说明</p> | REG_STATE_POWER_OFF | 3 | 蜂窝无线电已关闭。 |
</th>
</tr>
</thead> ## NsaState<a name=NsaState></a>
<tbody><tr id="row890394125118"><td class="cellrowborder" valign="top" width="39.89%" headers="mcps1.1.4.1.1 "><p id="p4903114117517"><a name="p4903114117517"></a><a name="p4903114117517"></a>REG_STATE_NO_SERVICE</p>
</td>
<td class="cellrowborder" valign="top" width="8.6%" headers="mcps1.1.4.1.2 "><p id="p63116311601"><a name="p63116311601"></a><a name="p63116311601"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="51.51%" headers="mcps1.1.4.1.3 "><p id="p11904204116516"><a name="p11904204116516"></a><a name="p11904204116516"></a>设备不能使用任何服务。</p>
</td>
</tr>
<tr id="row69041416512"><td class="cellrowborder" valign="top" width="39.89%" headers="mcps1.1.4.1.1 "><p id="p1990464145113"><a name="p1990464145113"></a><a name="p1990464145113"></a>REG_STATE_IN_SERVICE</p>
</td>
<td class="cellrowborder" valign="top" width="8.6%" headers="mcps1.1.4.1.2 "><p id="p12318311201"><a name="p12318311201"></a><a name="p12318311201"></a>1</p>
</td>
<td class="cellrowborder" valign="top" width="51.51%" headers="mcps1.1.4.1.3 "><p id="p5904124117510"><a name="p5904124117510"></a><a name="p5904124117510"></a>设备可以正常使用业务。</p>
</td>
</tr>
<tr id="row1790444111513"><td class="cellrowborder" valign="top" width="39.89%" headers="mcps1.1.4.1.1 "><p id="p4904124115114"><a name="p4904124115114"></a><a name="p4904124115114"></a>REG_STATE_EMERGENCY_CALL_ONLY</p>
</td>
<td class="cellrowborder" valign="top" width="8.6%" headers="mcps1.1.4.1.2 "><p id="p831103116014"><a name="p831103116014"></a><a name="p831103116014"></a>2</p>
</td>
<td class="cellrowborder" valign="top" width="51.51%" headers="mcps1.1.4.1.3 "><p id="p2905164125113"><a name="p2905164125113"></a><a name="p2905164125113"></a>设备只能使用紧急呼叫业务。</p>
</td>
</tr>
<tr id="row13905134155112"><td class="cellrowborder" valign="top" width="39.89%" headers="mcps1.1.4.1.1 "><p id="p2090554114517"><a name="p2090554114517"></a><a name="p2090554114517"></a>REG_STATE_POWER_OFF</p>
</td>
<td class="cellrowborder" valign="top" width="8.6%" headers="mcps1.1.4.1.2 "><p id="p17311831701"><a name="p17311831701"></a><a name="p17311831701"></a>3</p>
</td>
<td class="cellrowborder" valign="top" width="51.51%" headers="mcps1.1.4.1.3 "><p id="p49051241195116"><a name="p49051241195116"></a><a name="p49051241195116"></a>蜂窝无线电已关闭。</p>
</td>
</tr>
</tbody>
</table>
## NsaState<a name="section448018155317"></a>
非独立组网状态。 非独立组网状态。
<a name="table14733122165317"></a> | 变量 | 值 | 说明 |
<table><thead align="left"><tr id="row17734172155311"><th class="cellrowborder" valign="top" width="31.64%" id="mcps1.1.4.1.1"><p id="p573442114538"><a name="p573442114538"></a><a name="p573442114538"></a>变量</p> | -------------------------- | ---- | ---------------------------------------------------------- |
</th> | NSA_STATE_NOT_SUPPORT | 1 | 设备在不支持NSA的LTE小区下处于空闲状态或连接状态。 |
<th class="cellrowborder" valign="top" width="8.19%" id="mcps1.1.4.1.2"><p id="p93344475918"><a name="p93344475918"></a><a name="p93344475918"></a></p> | NSA_STATE_NO_DETECT | 2 | 在支持NSA但不支持NR覆盖检测的LTE小区下,设备处于空闲状态。 |
</th> | NSA_STATE_CONNECTED_DETECT | 3 | 设备在LTE小区下连接到LTE网络支持NSA和NR覆盖检测。 |
<th class="cellrowborder" valign="top" width="60.17%" id="mcps1.1.4.1.3"><p id="p147341921155319"><a name="p147341921155319"></a><a name="p147341921155319"></a>说明</p> | NSA_STATE_IDLE_DETECT | 4 | 支持NSA和NR覆盖检测的LTE小区下设备处于空闲状态。 |
</th> | NSA_STATE_DUAL_CONNECTED | 5 | 设备在支持NSA的LTE小区下连接到LTE + NR网络。 |
</tr> | NSA_STATE_SA_ATTACHED | 6 | 设备在5GC附着时在NG-RAN小区下空闲或连接到NG-RAN小区。 |
</thead>
<tbody><tr id="row1973402111537"><td class="cellrowborder" valign="top" width="31.64%" headers="mcps1.1.4.1.1 "><p id="p1073502120538"><a name="p1073502120538"></a><a name="p1073502120538"></a>NSA_STATE_NOT_SUPPORT</p>
</td> ## NetworkSelectionMode<a name=NetworkSelectionMode></a>
<td class="cellrowborder" valign="top" width="8.19%" headers="mcps1.1.4.1.2 "><p id="p941614817596"><a name="p941614817596"></a><a name="p941614817596"></a>1</p>
</td>
<td class="cellrowborder" valign="top" width="60.17%" headers="mcps1.1.4.1.3 "><p id="p207355214533"><a name="p207355214533"></a><a name="p207355214533"></a>设备在不支持NSA的LTE小区下处于空闲状态或连接状态。</p>
</td>
</tr>
<tr id="row773514215536"><td class="cellrowborder" valign="top" width="31.64%" headers="mcps1.1.4.1.1 "><p id="p273552135316"><a name="p273552135316"></a><a name="p273552135316"></a>NSA_STATE_NO_DETECT</p>
</td>
<td class="cellrowborder" valign="top" width="8.19%" headers="mcps1.1.4.1.2 "><p id="p24167488593"><a name="p24167488593"></a><a name="p24167488593"></a>2</p>
</td>
<td class="cellrowborder" valign="top" width="60.17%" headers="mcps1.1.4.1.3 "><p id="p1973562110534"><a name="p1973562110534"></a><a name="p1973562110534"></a>在支持NSA但不支持NR覆盖检测的LTE小区下,设备处于空闲状态。</p>
</td>
</tr>
<tr id="row073512214530"><td class="cellrowborder" valign="top" width="31.64%" headers="mcps1.1.4.1.1 "><p id="p1873615217534"><a name="p1873615217534"></a><a name="p1873615217534"></a>NSA_STATE_CONNECTED_DETECT</p>
</td>
<td class="cellrowborder" valign="top" width="8.19%" headers="mcps1.1.4.1.2 "><p id="p164163487594"><a name="p164163487594"></a><a name="p164163487594"></a>3</p>
</td>
<td class="cellrowborder" valign="top" width="60.17%" headers="mcps1.1.4.1.3 "><p id="p14601215104116"><a name="p14601215104116"></a><a name="p14601215104116"></a>设备在LTE小区下连接到LTE网络支持NSA和NR覆盖检测。</p>
</td>
</tr>
<tr id="row873672165310"><td class="cellrowborder" valign="top" width="31.64%" headers="mcps1.1.4.1.1 "><p id="p1873642117539"><a name="p1873642117539"></a><a name="p1873642117539"></a>NSA_STATE_IDLE_DETECT</p>
</td>
<td class="cellrowborder" valign="top" width="8.19%" headers="mcps1.1.4.1.2 "><p id="p141714484593"><a name="p141714484593"></a><a name="p141714484593"></a>4</p>
</td>
<td class="cellrowborder" valign="top" width="60.17%" headers="mcps1.1.4.1.3 "><p id="p0736122115536"><a name="p0736122115536"></a><a name="p0736122115536"></a>支持NSA和NR覆盖检测的LTE小区下设备处于空闲状态。</p>
</td>
</tr>
<tr id="row5736132165315"><td class="cellrowborder" valign="top" width="31.64%" headers="mcps1.1.4.1.1 "><p id="p47378214537"><a name="p47378214537"></a><a name="p47378214537"></a>NSA_STATE_DUAL_CONNECTED</p>
</td>
<td class="cellrowborder" valign="top" width="8.19%" headers="mcps1.1.4.1.2 "><p id="p7417144895917"><a name="p7417144895917"></a><a name="p7417144895917"></a>5</p>
</td>
<td class="cellrowborder" valign="top" width="60.17%" headers="mcps1.1.4.1.3 "><p id="p273710215539"><a name="p273710215539"></a><a name="p273710215539"></a>设备在支持NSA的LTE小区下连接到LTE + NR网络。</p>
</td>
</tr>
<tr id="row17737121165319"><td class="cellrowborder" valign="top" width="31.64%" headers="mcps1.1.4.1.1 "><p id="p1873732111538"><a name="p1873732111538"></a><a name="p1873732111538"></a>NSA_STATE_SA_ATTACHED</p>
</td>
<td class="cellrowborder" valign="top" width="8.19%" headers="mcps1.1.4.1.2 "><p id="p2417154810591"><a name="p2417154810591"></a><a name="p2417154810591"></a>6</p>
</td>
<td class="cellrowborder" valign="top" width="60.17%" headers="mcps1.1.4.1.3 "><p id="p197371921165317"><a name="p197371921165317"></a><a name="p197371921165317"></a>设备在5GC附着时在NG-RAN小区下空闲或连接到NG-RAN小区。</p>
</td>
</tr>
</tbody>
</table>
## NetworkSelectionMode<a name="section14219361268"></a>
选网模式。 选网模式。
<a name="table15891165716617"></a> | 变量 | 值 | 说明 |
| --------------------------- | ---- | -------------- |
<table><thead align="left"><tr id="row689105713614"><th class="cellrowborder" valign="top" width="33.78%" id="mcps1.1.4.1.1"><p id="p589165719612"><a name="p589165719612"></a><a name="p589165719612"></a>变量</p> | NETWORK_SELECTION_UNKNOWN | 0 | 未知选网模式。 |
</th> | NETWORK_SELECTION_AUTOMATIC | 1 | 自动选网模式。 |
<th class="cellrowborder" valign="top" width="15.43%" id="mcps1.1.4.1.2"><p id="p889114571869"><a name="p889114571869"></a><a name="p889114571869"></a></p> | NETWORK_SELECTION_MANUAL | 2 | 手动选网模式。 |
</th> \ No newline at end of file
<th class="cellrowborder" valign="top" width="50.79%" id="mcps1.1.4.1.3"><p id="p04101554174620"><a name="p04101554174620"></a><a name="p04101554174620"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1589117571365"><td class="cellrowborder" valign="top" width="33.78%" headers="mcps1.1.4.1.1 "><p id="p1989275716618"><a name="p1989275716618"></a><a name="p1989275716618"></a>NETWORK_SELECTION_UNKNOWN</p>
</td>
<td class="cellrowborder" valign="top" width="15.43%" headers="mcps1.1.4.1.2 "><p id="p178921578616"><a name="p178921578616"></a><a name="p178921578616"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50.79%" headers="mcps1.1.4.1.3 "><p id="p541011547461"><a name="p541011547461"></a><a name="p541011547461"></a>未知选网模式。</p>
</td>
</tr>
<tr id="row1089245714617"><td class="cellrowborder" valign="top" width="33.78%" headers="mcps1.1.4.1.1 "><p id="p18921557369"><a name="p18921557369"></a><a name="p18921557369"></a>NETWORK_SELECTION_AUTOMATIC</p>
</td>
<td class="cellrowborder" valign="top" width="15.43%" headers="mcps1.1.4.1.2 "><p id="p489255718612"><a name="p489255718612"></a><a name="p489255718612"></a>1</p>
</td>
<td class="cellrowborder" valign="top" width="50.79%" headers="mcps1.1.4.1.3 "><p id="p104105544465"><a name="p104105544465"></a><a name="p104105544465"></a>自动选网模式。</p>
</td>
</tr>
<tr id="row13892155719619"><td class="cellrowborder" valign="top" width="33.78%" headers="mcps1.1.4.1.1 "><p id="p18921571165"><a name="p18921571165"></a><a name="p18921571165"></a>NETWORK_SELECTION_MANUAL</p>
</td>
<td class="cellrowborder" valign="top" width="15.43%" headers="mcps1.1.4.1.2 "><p id="p1489345710611"><a name="p1489345710611"></a><a name="p1489345710611"></a>2</p>
</td>
<td class="cellrowborder" valign="top" width="50.79%" headers="mcps1.1.4.1.3 "><p id="p741015444617"><a name="p741015444617"></a><a name="p741015444617"></a>手动选网模式。</p>
</td>
</tr>
</tbody>
</table>
\ No newline at end of file
# SIM卡管理<a name="ZH-CN_TOPIC_0000001149458512"></a> # SIM卡管理
- [导入模块](#s56d19203690d4782bfc74069abb6bd71) - [导入模块](#导入模块)
- [sim.getSimIccId](#section18529027065) - [sim.getSimIccId](#sim.getSimIccId-callback)
- [sim.getSimIccId](#section9200164911401) - [sim.getSimIccId](#sim.getSimIccId-promise)
- [sim.getDefaultVoiceSlotId7+](#section3313193864611) - [sim.getDefaultVoiceSlotId<sup>7+</sup>](#sim.getDefaultVoiceSlotId-callback)
- [sim.getDefaultVoiceSlotId7+](#section19013665018) - [sim.getDefaultVoiceSlotId<sup>7+</sup>](#sim.getDefaultVoiceSlotId-promise)
- [sim.getISOCountryCodeForSim](#section1429719645712) - [sim.getISOCountryCodeForSim](#sim.getISOCountryCodeForSim-callback)
- [sim.getISOCountryCodeForSim](#section1087375135713) - [sim.getISOCountryCodeForSim](#sim.getISOCountryCodeForSim-promise)
- [sim.getSimOperatorNumeric](#section1245831911019) - [sim.getSimOperatorNumeric](#sim.getSimOperatorNumeric-callback)
- [sim.getSimOperatorNumeric](#section450711512119) - [sim.getSimOperatorNumeric](#sim.getSimOperatorNumeric-promise)
- [sim.getSimSpn](#section18826326532) - [sim.getSimSpn](#sim.getSimSpn-callback)
- [sim.getSimSpn](#section1862714201148) - [sim.getSimSpn](#sim.getSimSpn-promise)
- [sim.getSimState](#section19837481195) - [sim.getSimState](#sim.getSimState-callback)
- [sim.getSimState](#section1763675061914) - [sim.getSimState](#sim.getSimState-promise)
- [sim.getSimGid1](#section18536193963119) - [sim.getSimGid1](#sim.getSimGid1-callback)
- [sim.getSimGid1](#section14446155983211) - [sim.getSimGid1](#sim.getSimGid1-promise)
- [SimState](#section17389192625218) - [SimState](#SimState)
>**说明:** >**说明:**
> >
>标记7+的表示从API Version 7开始支持,未标记的表示从API Version 6开始支持。 >- 从 API Version 6 开始支持。
>- 标记<sup>7+</sup>的接口从API Version 7开始支持。
## 导入模块<a name="s56d19203690d4782bfc74069abb6bd71"></a> ## 导入模块
``` ```
import sim from '@ohos.telephony.sim'; import sim from '@ohos.telephony.sim';
``` ```
## sim.getSimIccId<a name="section18529027065"></a> ## sim.getSimIccId<a name=sim.getSimIccId-callback></a>
getSimIccId\(slotId: number, callback: AsyncCallback<string\>\): void getSimIccId\(slotId: number, callback: AsyncCallback<string\>\): void
...@@ -37,39 +38,10 @@ getSimIccId\(slotId: number, callback: AsyncCallback<string\>\): void ...@@ -37,39 +38,10 @@ getSimIccId\(slotId: number, callback: AsyncCallback<string\>\): void
- 参数 - 参数
<a name="table799351710213"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row1799411175217"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p899411179212"><a name="p899411179212"></a><a name="p899411179212"></a>参数名</p> | -------- | --------------------------- | ---- | -------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p9994017112117"><a name="p9994017112117"></a><a name="p9994017112117"></a>类型</p> | callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。 |
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p169941617192115"><a name="p169941617192115"></a><a name="p169941617192115"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p499491722118"><a name="p499491722118"></a><a name="p499491722118"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row107581022174417"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p1231917335444"><a name="p1231917335444"></a><a name="p1231917335444"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p275912223446"><a name="p275912223446"></a><a name="p275912223446"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p27599224442"><a name="p27599224442"></a><a name="p27599224442"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p111750457258"><a name="p111750457258"></a><a name="p111750457258"></a>卡槽ID。</p>
<p id="p39541754174217"><a name="p39541754174217"></a><a name="p39541754174217"></a>0:卡槽1</p>
<p id="p1016919004317"><a name="p1016919004317"></a><a name="p1016919004317"></a>1:卡槽2</p>
</td>
</tr>
<tr id="row79942177215"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p1299481713210"><a name="p1299481713210"></a><a name="p1299481713210"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p112321515195213"><a name="p112321515195213"></a><a name="p112321515195213"></a>AsyncCallback&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p1599411782114"><a name="p1599411782114"></a><a name="p1599411782114"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p10994181720215"><a name="p10994181720215"></a><a name="p10994181720215"></a>回调函数。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -81,7 +53,7 @@ getSimIccId\(slotId: number, callback: AsyncCallback<string\>\): void ...@@ -81,7 +53,7 @@ getSimIccId\(slotId: number, callback: AsyncCallback<string\>\): void
``` ```
## sim.getSimIccId<a name="section9200164911401"></a> ## sim.getSimIccId<a name=sim.getSimIccId-promise></a>
getSimIccId\(slotId: number\): Promise<string\> getSimIccId\(slotId: number\): Promise<string\>
...@@ -91,47 +63,15 @@ getSimIccId\(slotId: number\): Promise<string\> ...@@ -91,47 +63,15 @@ getSimIccId\(slotId: number\): Promise<string\>
- 参数 - 参数
<a name="table12755202114013"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row167561021508"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p475616211004"><a name="p475616211004"></a><a name="p475616211004"></a>参数名</p> | ------ | ------ | ---- | -------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p157569215016"><a name="p157569215016"></a><a name="p157569215016"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p675682117012"><a name="p675682117012"></a><a name="p675682117012"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p167569211502"><a name="p167569211502"></a><a name="p167569211502"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row375616211805"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p77564211303"><a name="p77564211303"></a><a name="p77564211303"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p88212171916"><a name="p88212171916"></a><a name="p88212171916"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p175711211908"><a name="p175711211908"></a><a name="p175711211908"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p11168161813252"><a name="p11168161813252"></a><a name="p11168161813252"></a>卡槽ID。</p>
<p id="p13165516277"><a name="p13165516277"></a><a name="p13165516277"></a>0:卡槽1</p>
<p id="p31763112279"><a name="p31763112279"></a><a name="p31763112279"></a>1:卡槽2</p>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table11130132420365"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row1213092453617"><th class="cellrowborder" valign="top" width="27.700000000000003%" id="mcps1.1.3.1.1"><p id="p191308246365"><a name="p191308246365"></a><a name="p191308246365"></a>类型</p> | --------------------- | ---------------------------------- |
</th> | Promise&lt;string&gt; | 以Promise形式返回指定卡槽的ICCID。 |
<th class="cellrowborder" valign="top" width="72.3%" id="mcps1.1.3.1.2"><p id="p513092453618"><a name="p513092453618"></a><a name="p513092453618"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row01311524183615"><td class="cellrowborder" valign="top" width="27.700000000000003%" headers="mcps1.1.3.1.1 "><p id="p28631116886"><a name="p28631116886"></a><a name="p28631116886"></a>Promise&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="72.3%" headers="mcps1.1.3.1.2 "><p id="p11311424123610"><a name="p11311424123610"></a><a name="p11311424123610"></a>以Promise形式返回指定卡槽的ICCID。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -144,36 +84,17 @@ getSimIccId\(slotId: number\): Promise<string\> ...@@ -144,36 +84,17 @@ getSimIccId\(slotId: number\): Promise<string\>
}); });
``` ```
## sim.getDefaultVoiceSlotId<sup>7+</sup><a name="section3313193864611"></a> ## sim.getDefaultVoiceSlotId<sup>7+</sup><a name= sim.getDefaultVoiceSlotId-callback></a>
getDefaultVoiceSlotId\(callback: AsyncCallback<number\>\): void<sup>7+</sup> getDefaultVoiceSlotId\(callback: AsyncCallback<number\>\): void
获取默认语音业务的卡槽ID,使用callback方式作为异步方法。 获取默认语音业务的卡槽ID,使用callback方式作为异步方法。
- 参数 - 参数
<a name="table833910237269"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row20339112312269"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p1533932312268"><a name="p1533932312268"></a><a name="p1533932312268"></a>参数名</p> | -------- | --------------------------- | ---- | ---------- |
</th> | callback | AsyncCallback&lt;number&gt; | 是 | 回调函数。 |
<th class="cellrowborder" valign="top" width="38.36%" id="mcps1.1.5.1.2"><p id="p1733922332612"><a name="p1733922332612"></a><a name="p1733922332612"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="10.209999999999999%" id="mcps1.1.5.1.3"><p id="p3339823192619"><a name="p3339823192619"></a><a name="p3339823192619"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="40.38%" id="mcps1.1.5.1.4"><p id="p3339423102617"><a name="p3339423102617"></a><a name="p3339423102617"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row43400238269"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p18340102382611"><a name="p18340102382611"></a><a name="p18340102382611"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="38.36%" headers="mcps1.1.5.1.2 "><p id="p1125151014279"><a name="p1125151014279"></a><a name="p1125151014279"></a>AsyncCallback&lt;number&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.209999999999999%" headers="mcps1.1.5.1.3 "><p id="p6340142310267"><a name="p6340142310267"></a><a name="p6340142310267"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="40.38%" headers="mcps1.1.5.1.4 "><p id="p19176162817"><a name="p19176162817"></a><a name="p19176162817"></a>回调函数。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -184,28 +105,17 @@ getDefaultVoiceSlotId\(callback: AsyncCallback<number\>\): void<sup>7+</sup> ...@@ -184,28 +105,17 @@ getDefaultVoiceSlotId\(callback: AsyncCallback<number\>\): void<sup>7+</sup>
``` ```
## sim.getDefaultVoiceSlotId<sup>7+</sup><a name="section19013665018"></a> ## sim.getDefaultVoiceSlotId<sup>7+</sup><a name=sim.getDefaultVoiceSlotId-promise></a>
getDefaultVoiceSlotId\(\): Promise<number\><sup>7+</sup> getDefaultVoiceSlotId\(\): Promise<number\>
获取默认语音业务的卡槽ID,使用Promise方式作为异步方法。 获取默认语音业务的卡槽ID,使用Promise方式作为异步方法。
- 返回值 - 返回值
<a name="table5831925122216"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row8849255224"><th class="cellrowborder" valign="top" width="27.700000000000003%" id="mcps1.1.3.1.1"><p id="p178452514225"><a name="p178452514225"></a><a name="p178452514225"></a>类型</p> | ----------------- | --------------------------------------- |
</th> | Promise\<number\> | 以Promise形式返回默认语音业务的卡槽ID。 |
<th class="cellrowborder" valign="top" width="72.3%" id="mcps1.1.3.1.2"><p id="p3841925152214"><a name="p3841925152214"></a><a name="p3841925152214"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row208482592212"><td class="cellrowborder" valign="top" width="27.700000000000003%" headers="mcps1.1.3.1.1 "><p id="p98415253228"><a name="p98415253228"></a><a name="p98415253228"></a>Promise&lt;number&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="72.3%" headers="mcps1.1.3.1.2 "><p id="p18841525112217"><a name="p18841525112217"></a><a name="p18841525112217"></a>以Promise形式返回默认语音业务的卡槽ID。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -218,7 +128,7 @@ getDefaultVoiceSlotId\(\): Promise<number\><sup>7+</sup> ...@@ -218,7 +128,7 @@ getDefaultVoiceSlotId\(\): Promise<number\><sup>7+</sup>
}); });
``` ```
## sim.getISOCountryCodeForSim<a name="section1429719645712"></a> ## sim.getISOCountryCodeForSim<a name=sim.getISOCountryCodeForSim-callback></a>
getISOCountryCodeForSim\(slotId: number, callback: AsyncCallback<string\>\): void getISOCountryCodeForSim\(slotId: number, callback: AsyncCallback<string\>\): void
...@@ -226,39 +136,10 @@ getISOCountryCodeForSim\(slotId: number, callback: AsyncCallback<string\>\): voi ...@@ -226,39 +136,10 @@ getISOCountryCodeForSim\(slotId: number, callback: AsyncCallback<string\>\): voi
- 参数 - 参数
<a name="table1338013136526"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row1638121318523"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p6381813195216"><a name="p6381813195216"></a><a name="p6381813195216"></a>参数名</p> | -------- | ----------------------- | ---- | ---------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p238121335213"><a name="p238121335213"></a><a name="p238121335213"></a>类型</p> | callback | AsyncCallback\<string\> | 是 | 回调函数。返回国家码,例如:CN(中国)。 |
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p17381191312526"><a name="p17381191312526"></a><a name="p17381191312526"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p6381141365218"><a name="p6381141365218"></a><a name="p6381141365218"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row163815133526"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p183811313155210"><a name="p183811313155210"></a><a name="p183811313155210"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p8381121335218"><a name="p8381121335218"></a><a name="p8381121335218"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p938110135522"><a name="p938110135522"></a><a name="p938110135522"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p109301512133912"><a name="p109301512133912"></a><a name="p109301512133912"></a>卡槽ID。</p>
<p id="p3106151812284"><a name="p3106151812284"></a><a name="p3106151812284"></a>0:卡槽1</p>
<p id="p39219204289"><a name="p39219204289"></a><a name="p39219204289"></a>1:卡槽2</p>
</td>
</tr>
<tr id="row53821913115213"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p13382201312525"><a name="p13382201312525"></a><a name="p13382201312525"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p123821313175215"><a name="p123821313175215"></a><a name="p123821313175215"></a>AsyncCallback&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p83821613165212"><a name="p83821613165212"></a><a name="p83821613165212"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p103822139529"><a name="p103822139529"></a><a name="p103822139529"></a>回调函数。返回国家码,例如:CN(中国)。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -269,7 +150,7 @@ getISOCountryCodeForSim\(slotId: number, callback: AsyncCallback<string\>\): voi ...@@ -269,7 +150,7 @@ getISOCountryCodeForSim\(slotId: number, callback: AsyncCallback<string\>\): voi
``` ```
## sim.getISOCountryCodeForSim<a name="section1087375135713"></a> ## sim.getISOCountryCodeForSim<a name=sim.getISOCountryCodeForSim-promise></a>
getISOCountryCodeForSim\(slotId: number\): Promise<string\> getISOCountryCodeForSim\(slotId: number\): Promise<string\>
...@@ -277,47 +158,15 @@ getISOCountryCodeForSim\(slotId: number\): Promise<string\> ...@@ -277,47 +158,15 @@ getISOCountryCodeForSim\(slotId: number\): Promise<string\>
- 参数 - 参数
<a name="table53861613185210"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row1138611138529"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p10387813145211"><a name="p10387813145211"></a><a name="p10387813145211"></a>参数名</p> | ------ | ------ | ---- | -------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p16387161365211"><a name="p16387161365211"></a><a name="p16387161365211"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p14387171375217"><a name="p14387171375217"></a><a name="p14387171375217"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p83871813195220"><a name="p83871813195220"></a><a name="p83871813195220"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row038710134529"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p338712139523"><a name="p338712139523"></a><a name="p338712139523"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p193871213125217"><a name="p193871213125217"></a><a name="p193871213125217"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p9387101311525"><a name="p9387101311525"></a><a name="p9387101311525"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p8855241394"><a name="p8855241394"></a><a name="p8855241394"></a>卡槽ID。</p>
<p id="p18408326162810"><a name="p18408326162810"></a><a name="p18408326162810"></a>0:卡槽1</p>
<p id="p14944152992813"><a name="p14944152992813"></a><a name="p14944152992813"></a>1:卡槽2</p>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table101095213292"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row1910911213290"><th class="cellrowborder" valign="top" width="27.74%" id="mcps1.1.3.1.1"><p id="p6110112122911"><a name="p6110112122911"></a><a name="p6110112122911"></a>类型</p> | ----------------- | ------------------------------------------------------------ |
</th> | Promise\<string\> | 以Promise形式返回获取指定卡槽SIM卡的ISO国家码,例如:CN(中国)。 |
<th class="cellrowborder" valign="top" width="72.26%" id="mcps1.1.3.1.2"><p id="p1511072112913"><a name="p1511072112913"></a><a name="p1511072112913"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row31101126298"><td class="cellrowborder" valign="top" width="27.74%" headers="mcps1.1.3.1.1 "><p id="p14110152132916"><a name="p14110152132916"></a><a name="p14110152132916"></a>Promise&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="72.26%" headers="mcps1.1.3.1.2 "><p id="p711013292911"><a name="p711013292911"></a><a name="p711013292911"></a>以Promise形式返回获取指定卡槽SIM卡的ISO国家码,例如:CN(中国)。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -331,7 +180,7 @@ getISOCountryCodeForSim\(slotId: number\): Promise<string\> ...@@ -331,7 +180,7 @@ getISOCountryCodeForSim\(slotId: number\): Promise<string\>
``` ```
## sim.getSimOperatorNumeric<a name="section1245831911019"></a> ## sim.getSimOperatorNumeric<a name=sim.getSimOperatorNumeric-callback></a>
getSimOperatorNumeric\(slotId: number, callback: AsyncCallback<string\>\): void getSimOperatorNumeric\(slotId: number, callback: AsyncCallback<string\>\): void
...@@ -339,39 +188,10 @@ getSimOperatorNumeric\(slotId: number, callback: AsyncCallback<string\>\): void ...@@ -339,39 +188,10 @@ getSimOperatorNumeric\(slotId: number, callback: AsyncCallback<string\>\): void
- 参数 - 参数
<a name="table36924245527"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row1469302475210"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p15693102435213"><a name="p15693102435213"></a><a name="p15693102435213"></a>参数名</p> | -------- | ----------------------- | ---- | -------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p1769382417529"><a name="p1769382417529"></a><a name="p1769382417529"></a>类型</p> | callback | AsyncCallback\<string\> | 是 | 回调函数。 |
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p1769392415218"><a name="p1769392415218"></a><a name="p1769392415218"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p66931245526"><a name="p66931245526"></a><a name="p66931245526"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row146938245526"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p2693324125216"><a name="p2693324125216"></a><a name="p2693324125216"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p16693124155211"><a name="p16693124155211"></a><a name="p16693124155211"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p6693122412528"><a name="p6693122412528"></a><a name="p6693122412528"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p16957193416397"><a name="p16957193416397"></a><a name="p16957193416397"></a>卡槽ID。</p>
<p id="p82725356289"><a name="p82725356289"></a><a name="p82725356289"></a>0:卡槽1</p>
<p id="p372173862816"><a name="p372173862816"></a><a name="p372173862816"></a>1:卡槽2</p>
</td>
</tr>
<tr id="row1369332417528"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p96931324115213"><a name="p96931324115213"></a><a name="p96931324115213"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p12694162410529"><a name="p12694162410529"></a><a name="p12694162410529"></a>AsyncCallback&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p166946245524"><a name="p166946245524"></a><a name="p166946245524"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p4694142485210"><a name="p4694142485210"></a><a name="p4694142485210"></a>回调函数。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -382,7 +202,7 @@ getSimOperatorNumeric\(slotId: number, callback: AsyncCallback<string\>\): void ...@@ -382,7 +202,7 @@ getSimOperatorNumeric\(slotId: number, callback: AsyncCallback<string\>\): void
``` ```
## sim.getSimOperatorNumeric<a name="section450711512119"></a> ## sim.getSimOperatorNumeric<a name=sim.getSimOperatorNumeric-promise></a>
getSimOperatorNumeric\(slotId: number\): Promise<string\> getSimOperatorNumeric\(slotId: number\): Promise<string\>
...@@ -390,47 +210,15 @@ getSimOperatorNumeric\(slotId: number\): Promise<string\> ...@@ -390,47 +210,15 @@ getSimOperatorNumeric\(slotId: number\): Promise<string\>
- 参数 - 参数
<a name="table66971424195211"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row56971624155210"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p1697142418521"><a name="p1697142418521"></a><a name="p1697142418521"></a>参数名</p> | ------ | ------ | ---- | -------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p11697182485211"><a name="p11697182485211"></a><a name="p11697182485211"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p18697124195218"><a name="p18697124195218"></a><a name="p18697124195218"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p6697102415218"><a name="p6697102415218"></a><a name="p6697102415218"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1269722415213"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p269715247521"><a name="p269715247521"></a><a name="p269715247521"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p1769722435211"><a name="p1769722435211"></a><a name="p1769722435211"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p2698182415211"><a name="p2698182415211"></a><a name="p2698182415211"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p1024894853914"><a name="p1024894853914"></a><a name="p1024894853914"></a>卡槽ID。</p>
<p id="p12400194317285"><a name="p12400194317285"></a><a name="p12400194317285"></a>0:卡槽1</p>
<p id="p548124592817"><a name="p548124592817"></a><a name="p548124592817"></a>1:卡槽2</p>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table107971952142916"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row11797752112911"><th class="cellrowborder" valign="top" width="27.74%" id="mcps1.1.3.1.1"><p id="p479735216290"><a name="p479735216290"></a><a name="p479735216290"></a>类型</p> | ----------------- | ------------------------------------------------ |
</th> | Promise\<string\> | 以Promise形式返回获取指定卡槽SIM卡的归属PLMN号。 |
<th class="cellrowborder" valign="top" width="72.26%" id="mcps1.1.3.1.2"><p id="p17798105212910"><a name="p17798105212910"></a><a name="p17798105212910"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1798185216299"><td class="cellrowborder" valign="top" width="27.74%" headers="mcps1.1.3.1.1 "><p id="p12798452132920"><a name="p12798452132920"></a><a name="p12798452132920"></a>Promise&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="72.26%" headers="mcps1.1.3.1.2 "><p id="p11798252142918"><a name="p11798252142918"></a><a name="p11798252142918"></a>以Promise形式返回获取指定卡槽SIM卡的归属PLMN号。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -444,7 +232,7 @@ getSimOperatorNumeric\(slotId: number\): Promise<string\> ...@@ -444,7 +232,7 @@ getSimOperatorNumeric\(slotId: number\): Promise<string\>
``` ```
## sim.getSimSpn<a name="section18826326532"></a> ## sim.getSimSpn<a name=sim.getSimSpn-callback></a>
getSimSpn\(slotId: number, callback: AsyncCallback<string\>\): void getSimSpn\(slotId: number, callback: AsyncCallback<string\>\): void
...@@ -452,39 +240,10 @@ getSimSpn\(slotId: number, callback: AsyncCallback<string\>\): void ...@@ -452,39 +240,10 @@ getSimSpn\(slotId: number, callback: AsyncCallback<string\>\): void
- 参数 - 参数
<a name="table15424192985216"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row10424729155218"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p16424182913523"><a name="p16424182913523"></a><a name="p16424182913523"></a>参数名</p> | -------- | ----------------------- | ---- | -------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p342482955215"><a name="p342482955215"></a><a name="p342482955215"></a>类型</p> | callback | AsyncCallback\<string\> | 是 | 回调函数。 |
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p5425142935212"><a name="p5425142935212"></a><a name="p5425142935212"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p54252029185215"><a name="p54252029185215"></a><a name="p54252029185215"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row16425129205213"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p4425329135210"><a name="p4425329135210"></a><a name="p4425329135210"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p16425132955212"><a name="p16425132955212"></a><a name="p16425132955212"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p1442502935219"><a name="p1442502935219"></a><a name="p1442502935219"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p149631058153912"><a name="p149631058153912"></a><a name="p149631058153912"></a>卡槽ID。</p>
<p id="p1310535019282"><a name="p1310535019282"></a><a name="p1310535019282"></a>0:卡槽1</p>
<p id="p1680115312819"><a name="p1680115312819"></a><a name="p1680115312819"></a>1:卡槽2</p>
</td>
</tr>
<tr id="row18425102919524"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p164254292525"><a name="p164254292525"></a><a name="p164254292525"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p6425192935210"><a name="p6425192935210"></a><a name="p6425192935210"></a>AsyncCallback&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p24251529135211"><a name="p24251529135211"></a><a name="p24251529135211"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p1542552915219"><a name="p1542552915219"></a><a name="p1542552915219"></a>回调函数。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -495,7 +254,7 @@ getSimSpn\(slotId: number, callback: AsyncCallback<string\>\): void ...@@ -495,7 +254,7 @@ getSimSpn\(slotId: number, callback: AsyncCallback<string\>\): void
``` ```
## sim.getSimSpn<a name="section1862714201148"></a> ## sim.getSimSpn<a name=sim.getSimSpn-promise></a>
getSimSpn\(slotId: number\): Promise<string\> getSimSpn\(slotId: number\): Promise<string\>
...@@ -503,49 +262,15 @@ getSimSpn\(slotId: number\): Promise<string\> ...@@ -503,49 +262,15 @@ getSimSpn\(slotId: number\): Promise<string\>
- 参数 - 参数
<a name="table17428182905213"></a> | 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------------------------------- |
<table><thead align="left"><tr id="row1342912296525"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p8429202935220"><a name="p8429202935220"></a><a name="p8429202935220"></a>参数名</p> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
</th>
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p04292295521"><a name="p04292295521"></a><a name="p04292295521"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p17429132955219"><a name="p17429132955219"></a><a name="p17429132955219"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p9429529185210"><a name="p9429529185210"></a><a name="p9429529185210"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row8429122965213"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p34291329165216"><a name="p34291329165216"></a><a name="p34291329165216"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p114291929145211"><a name="p114291929145211"></a><a name="p114291929145211"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p842912975212"><a name="p842912975212"></a><a name="p842912975212"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p1662589405"><a name="p1662589405"></a><a name="p1662589405"></a>卡槽ID。</p>
<p id="p224575932817"><a name="p224575932817"></a><a name="p224575932817"></a>0:卡槽1</p>
<p id="p1268210222917"><a name="p1268210222917"></a><a name="p1268210222917"></a>1:卡槽2</p>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table7107236143015"></a> | 类型 | 说明 |
| ----------------- | ----------------------------------------- |
<table><thead align="left"><tr id="row101081836103012"><th class="cellrowborder" valign="top" width="27.74%" id="mcps1.1.3.1.1"><p id="p41081536153012"><a name="p41081536153012"></a><a name="p41081536153012"></a>类型</p> | Promise\<string\> | 以Promise形式返回获取指定卡槽SIM卡的SPN。 |
</th>
<th class="cellrowborder" valign="top" width="72.26%" id="mcps1.1.3.1.2"><p id="p121081936153019"><a name="p121081936153019"></a><a name="p121081936153019"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row151083369306"><td class="cellrowborder" valign="top" width="27.74%" headers="mcps1.1.3.1.1 "><p id="p81082036153019"><a name="p81082036153019"></a><a name="p81082036153019"></a>Promise&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="72.26%" headers="mcps1.1.3.1.2 "><p id="p11082036113014"><a name="p11082036113014"></a><a name="p11082036113014"></a>以Promise形式返回获取指定卡槽SIM卡的SPN。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -559,7 +284,7 @@ getSimSpn\(slotId: number\): Promise<string\> ...@@ -559,7 +284,7 @@ getSimSpn\(slotId: number\): Promise<string\>
``` ```
## sim.getSimState<a name="section19837481195"></a> ## sim.getSimState<a name=sim.getSimState-callback></a>
getSimState\(slotId: number, callback: AsyncCallback<SimState\>\): void getSimState\(slotId: number, callback: AsyncCallback<SimState\>\): void
...@@ -567,39 +292,10 @@ getSimState\(slotId: number, callback: AsyncCallback<SimState\>\): void ...@@ -567,39 +292,10 @@ getSimState\(slotId: number, callback: AsyncCallback<SimState\>\): void
- 参数 - 参数
<a name="table3741034155218"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row5741153475215"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p1074143412527"><a name="p1074143412527"></a><a name="p1074143412527"></a>参数名</p> | -------- | -------------------------------------- | ---- | ----------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p374116349525"><a name="p374116349525"></a><a name="p374116349525"></a>类型</p> | callback | AsyncCallback\<[SimState](#SimState)\> | 是 | 回调函数。参考[SimState](#SimState)。 |
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p187417346522"><a name="p187417346522"></a><a name="p187417346522"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p07411434195213"><a name="p07411434195213"></a><a name="p07411434195213"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row187411634145216"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p16741173411524"><a name="p16741173411524"></a><a name="p16741173411524"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p374214340522"><a name="p374214340522"></a><a name="p374214340522"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p19742183495212"><a name="p19742183495212"></a><a name="p19742183495212"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p167256163406"><a name="p167256163406"></a><a name="p167256163406"></a>卡槽ID。</p>
<p id="p74971912299"><a name="p74971912299"></a><a name="p74971912299"></a>0:卡槽1</p>
<p id="p15870412122918"><a name="p15870412122918"></a><a name="p15870412122918"></a>1:卡槽2</p>
</td>
</tr>
<tr id="row37420349521"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p1274214346524"><a name="p1274214346524"></a><a name="p1274214346524"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p1274253465216"><a name="p1274253465216"></a><a name="p1274253465216"></a>AsyncCallback&lt;<a href="#section17389192625218">SimState</a>&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p374210348528"><a name="p374210348528"></a><a name="p374210348528"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p167426348528"><a name="p167426348528"></a><a name="p167426348528"></a>回调函数。参考<a href="#section17389192625218">SimState</a>。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -610,7 +306,7 @@ getSimState\(slotId: number, callback: AsyncCallback<SimState\>\): void ...@@ -610,7 +306,7 @@ getSimState\(slotId: number, callback: AsyncCallback<SimState\>\): void
``` ```
## sim.getSimState<a name="section1763675061914"></a> ## sim.getSimState<a name=sim.getSimState-promise></a>
getSimState\(slotId: number\): Promise<SimState\> getSimState\(slotId: number\): Promise<SimState\>
...@@ -618,48 +314,15 @@ getSimState\(slotId: number\): Promise<SimState\> ...@@ -618,48 +314,15 @@ getSimState\(slotId: number\): Promise<SimState\>
- 参数 - 参数
<a name="table12745113465219"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row57451334165214"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p4745183412527"><a name="p4745183412527"></a><a name="p4745183412527"></a>参数名</p> | ------ | ------ | ---- | -------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p974543414525"><a name="p974543414525"></a><a name="p974543414525"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p14745123425212"><a name="p14745123425212"></a><a name="p14745123425212"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p174543417526"><a name="p174543417526"></a><a name="p174543417526"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row11745103425211"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p147451334125212"><a name="p147451334125212"></a><a name="p147451334125212"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p1874553416527"><a name="p1874553416527"></a><a name="p1874553416527"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p15746834175211"><a name="p15746834175211"></a><a name="p15746834175211"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p37423382401"><a name="p37423382401"></a><a name="p37423382401"></a>卡槽ID。</p>
<p id="p2792112682919"><a name="p2792112682919"></a><a name="p2792112682919"></a>0:卡槽1</p>
<p id="p124241530202914"><a name="p124241530202914"></a><a name="p124241530202914"></a>1:卡槽2</p>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table152481329173113"></a> | 类型 | 说明 |
| -------------------------------- | ------------------------------------------ |
<table><thead align="left"><tr id="row17249162917318"><th class="cellrowborder" valign="top" width="27.74%" id="mcps1.1.3.1.1"><p id="p162492291310"><a name="p162492291310"></a><a name="p162492291310"></a>类型</p> | Promise\<[SimState](#SimState)\> | 以Promise形式返回获取指定卡槽的SIM卡状态。 |
</th>
<th class="cellrowborder" valign="top" width="72.26%" id="mcps1.1.3.1.2"><p id="p8249202919312"><a name="p8249202919312"></a><a name="p8249202919312"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row8249152912315"><td class="cellrowborder" valign="top" width="27.74%" headers="mcps1.1.3.1.1 "><p id="p324972915312"><a name="p324972915312"></a><a name="p324972915312"></a>Promise&lt;<a href="#section17389192625218">SimState</a>&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="72.26%" headers="mcps1.1.3.1.2 "><p id="p7249162973117"><a name="p7249162973117"></a><a name="p7249162973117"></a>以Promise形式<span>返回获取指定卡槽的SIM卡状态</span>。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -672,7 +335,7 @@ getSimState\(slotId: number\): Promise<SimState\> ...@@ -672,7 +335,7 @@ getSimState\(slotId: number\): Promise<SimState\>
}); });
``` ```
## sim.getSimGid1<a name="section18536193963119"></a> ## sim.getSimGid1<a name=sim.getSimGid1-callback></a>
getSimGid1\(slotId: number, callback: AsyncCallback<string\>\): void getSimGid1\(slotId: number, callback: AsyncCallback<string\>\): void
...@@ -682,39 +345,10 @@ getSimGid1\(slotId: number, callback: AsyncCallback<string\>\): void ...@@ -682,39 +345,10 @@ getSimGid1\(slotId: number, callback: AsyncCallback<string\>\): void
- 参数 - 参数
<a name="table52601722175313"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row19260152225317"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p626062211535"><a name="p626062211535"></a><a name="p626062211535"></a>参数名</p> | -------- | ----------------------- | ---- | -------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p112601422185317"><a name="p112601422185317"></a><a name="p112601422185317"></a>类型</p> | callback | AsyncCallback\<string\> | 是 | 回调函数。 |
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p52611225533"><a name="p52611225533"></a><a name="p52611225533"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p1826172275316"><a name="p1826172275316"></a><a name="p1826172275316"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row726115222538"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p152617229536"><a name="p152617229536"></a><a name="p152617229536"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p2261622205312"><a name="p2261622205312"></a><a name="p2261622205312"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p726162265319"><a name="p726162265319"></a><a name="p726162265319"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p411418572423"><a name="p411418572423"></a><a name="p411418572423"></a>卡槽ID。</p>
<p id="p86321728103111"><a name="p86321728103111"></a><a name="p86321728103111"></a>0:卡槽1</p>
<p id="p147921430123118"><a name="p147921430123118"></a><a name="p147921430123118"></a>1:卡槽2</p>
</td>
</tr>
<tr id="row1626142285315"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p5261102213538"><a name="p5261102213538"></a><a name="p5261102213538"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p6261422145315"><a name="p6261422145315"></a><a name="p6261422145315"></a>AsyncCallback&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p32618225531"><a name="p32618225531"></a><a name="p32618225531"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p726142210538"><a name="p726142210538"></a><a name="p726142210538"></a>回调函数。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -725,7 +359,7 @@ getSimGid1\(slotId: number, callback: AsyncCallback<string\>\): void ...@@ -725,7 +359,7 @@ getSimGid1\(slotId: number, callback: AsyncCallback<string\>\): void
``` ```
## sim.getSimGid1<a name="section14446155983211"></a> ## sim.getSimGid1<a name=sim.getSimGid1-promise></a>
getSimGid1\(slotId: number\): Promise<string\> getSimGid1\(slotId: number\): Promise<string\>
...@@ -735,48 +369,15 @@ getSimGid1\(slotId: number\): Promise<string\> ...@@ -735,48 +369,15 @@ getSimGid1\(slotId: number\): Promise<string\>
- 参数 - 参数
<a name="table326442215314"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row1126572235313"><th class="cellrowborder" valign="top" width="11.05%" id="mcps1.1.5.1.1"><p id="p20265152275313"><a name="p20265152275313"></a><a name="p20265152275313"></a>参数名</p> | ------ | ------ | ---- | -------------------------------------- |
</th> | slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="42%" id="mcps1.1.5.1.2"><p id="p12265222155316"><a name="p12265222155316"></a><a name="p12265222155316"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="10.42%" id="mcps1.1.5.1.3"><p id="p02651122185318"><a name="p02651122185318"></a><a name="p02651122185318"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="36.53%" id="mcps1.1.5.1.4"><p id="p102657221535"><a name="p102657221535"></a><a name="p102657221535"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1126515227534"><td class="cellrowborder" valign="top" width="11.05%" headers="mcps1.1.5.1.1 "><p id="p1326532215316"><a name="p1326532215316"></a><a name="p1326532215316"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.5.1.2 "><p id="p82658227535"><a name="p82658227535"></a><a name="p82658227535"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="10.42%" headers="mcps1.1.5.1.3 "><p id="p42651722155320"><a name="p42651722155320"></a><a name="p42651722155320"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="36.53%" headers="mcps1.1.5.1.4 "><p id="p96421581435"><a name="p96421581435"></a><a name="p96421581435"></a>卡槽ID。</p>
<p id="p157051139103117"><a name="p157051139103117"></a><a name="p157051139103117"></a>0:卡槽1</p>
<p id="p92821426319"><a name="p92821426319"></a><a name="p92821426319"></a>1:卡槽2</p>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table293710220374"></a> | 类型 | 说明 |
| ----------------- | ------------------------------------------------------------ |
<table><thead align="left"><tr id="row15938629377"><th class="cellrowborder" valign="top" width="27.74%" id="mcps1.1.3.1.1"><p id="p169381727373"><a name="p169381727373"></a><a name="p169381727373"></a>类型</p> | Promise\<string\> | 以Promise形式返回获取指定卡槽SIM卡的GID1(Group Identifier Level 1)。 |
</th>
<th class="cellrowborder" valign="top" width="72.26%" id="mcps1.1.3.1.2"><p id="p493813211374"><a name="p493813211374"></a><a name="p493813211374"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1993811216371"><td class="cellrowborder" valign="top" width="27.74%" headers="mcps1.1.3.1.1 "><p id="p13939172173714"><a name="p13939172173714"></a><a name="p13939172173714"></a>Promise&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="72.26%" headers="mcps1.1.3.1.2 "><p id="p29391023371"><a name="p29391023371"></a><a name="p29391023371"></a>以Promise形式<span>返回</span><span>获取指定卡槽SIM卡的GID1(Group Identifier Level 1)</span>。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -790,47 +391,15 @@ getSimGid1\(slotId: number\): Promise<string\> ...@@ -790,47 +391,15 @@ getSimGid1\(slotId: number\): Promise<string\>
``` ```
## SimState<a name="section17389192625218"></a> ## SimState<a name=SimState></a>
SIM卡状态。 SIM卡状态。
<a name="table5304315818"></a> | 变量 | 说明 |
| --------------------- | ---------------------------------------------------------- |
<table><thead align="left"><tr id="row1034431582"><th class="cellrowborder" valign="top" width="27.37%" id="mcps1.1.3.1.1"><p id="p741843988"><a name="p741843988"></a><a name="p741843988"></a>变量</p> | SIM_STATE_UNKNOWN | SIM卡状态未知,即无法获取准确的状态。 |
</th> | SIM_STATE_NOT_PRESENT | 表示SIM卡处于not present状态,即卡槽中没有插入SIM卡。 |
<th class="cellrowborder" valign="top" width="72.63%" id="mcps1.1.3.1.2"><p id="p94134310819"><a name="p94134310819"></a><a name="p94134310819"></a>说明</p> | SIM_STATE_LOCKED | 表示SIM卡处于locked状态,即SIM卡被PIN、PUK或网络锁锁定。 |
</th> | SIM_STATE_NOT_READY | 表示SIM卡处于not ready状态,即SIM卡在位但无法正常工作。 |
</tr> | SIM_STATE_READY | 表示SIM卡处于ready状态,即SIM卡在位且工作正常。 |
</thead> | SIM_STATE_LOADED | 表示SIM卡处于loaded状态,即SIM卡在位且所有卡文件加载完毕。 |
<tbody><tr id="row1641643886"><td class="cellrowborder" valign="top" width="27.37%" headers="mcps1.1.3.1.1 "><p id="p341243889"><a name="p341243889"></a><a name="p341243889"></a>SIM_STATE_UNKNOWN</p> \ No newline at end of file
</td>
<td class="cellrowborder" valign="top" width="72.63%" headers="mcps1.1.3.1.2 "><p id="p548431482"><a name="p548431482"></a><a name="p548431482"></a>SIM卡状态未知,即无法获取准确的状态。</p>
</td>
</tr>
<tr id="row041431811"><td class="cellrowborder" valign="top" width="27.37%" headers="mcps1.1.3.1.1 "><p id="p849431084"><a name="p849431084"></a><a name="p849431084"></a>SIM_STATE_NOT_PRESENT</p>
</td>
<td class="cellrowborder" valign="top" width="72.63%" headers="mcps1.1.3.1.2 "><p id="p19424317818"><a name="p19424317818"></a><a name="p19424317818"></a>表示SIM卡处于not present状态,即卡槽中没有插入SIM卡。</p>
</td>
</tr>
<tr id="row14413431480"><td class="cellrowborder" valign="top" width="27.37%" headers="mcps1.1.3.1.1 "><p id="p84643089"><a name="p84643089"></a><a name="p84643089"></a>SIM_STATE_LOCKED</p>
</td>
<td class="cellrowborder" valign="top" width="72.63%" headers="mcps1.1.3.1.2 "><p id="p194343083"><a name="p194343083"></a><a name="p194343083"></a>表示SIM卡处于locked状态,即SIM卡被PIN、PUK或网络锁锁定。</p>
</td>
</tr>
<tr id="row9474320819"><td class="cellrowborder" valign="top" width="27.37%" headers="mcps1.1.3.1.1 "><p id="p1641143489"><a name="p1641143489"></a><a name="p1641143489"></a>SIM_STATE_NOT_READY</p>
</td>
<td class="cellrowborder" valign="top" width="72.63%" headers="mcps1.1.3.1.2 "><p id="p155443783"><a name="p155443783"></a><a name="p155443783"></a>表示SIM卡处于not ready状态,即SIM卡在位但无法正常工作。</p>
</td>
</tr>
<tr id="row7517431188"><td class="cellrowborder" valign="top" width="27.37%" headers="mcps1.1.3.1.1 "><p id="p3512433818"><a name="p3512433818"></a><a name="p3512433818"></a>SIM_STATE_READY</p>
</td>
<td class="cellrowborder" valign="top" width="72.63%" headers="mcps1.1.3.1.2 "><p id="p165943185"><a name="p165943185"></a><a name="p165943185"></a>表示SIM卡处于ready状态,即SIM卡在位且工作正常。</p>
</td>
</tr>
<tr id="row17518431181"><td class="cellrowborder" valign="top" width="27.37%" headers="mcps1.1.3.1.1 "><p id="p3514319812"><a name="p3514319812"></a><a name="p3514319812"></a>SIM_STATE_LOADED</p>
</td>
<td class="cellrowborder" valign="top" width="72.63%" headers="mcps1.1.3.1.2 "><p id="p5512436812"><a name="p5512436812"></a><a name="p5512436812"></a>表示SIM卡处于loaded状态,即SIM卡在位且所有卡文件加载完毕。</p>
</td>
</tr>
</tbody>
</table>
\ No newline at end of file
# 短信服务<a name="ZH-CN_TOPIC_0000001150660760"></a> # 短信服务
- [导入模块](#section111401036143) - [导入模块](#导入模块)
- [sms.createMessage](#section3831173019331) - [sms.createMessage](#sms.createMessage-callback)
- [sms.createMessage](#section9796242123511) - [sms.createMessage](#sms.createMessage-promise)
- [sms.sendMessage](#section128401423810) - [sms.sendMessage](#sms.sendMessage)
- [sms.getDefaultSmsSlotId7+](#section46193383478) - [sms.getDefaultSmsSlotId<sup>7+</sup>](#sms.getDefaultSmsSlotId-callback)
- [sms.getDefaultSmsSlotId7+](#section19981626114817) - [sms.getDefaultSmsSlotId<sup>7+</sup>](#sms.getDefaultSmsSlotId-promise)
- [sms.setSmscAddr7+](#section155849574485) - [sms.setSmscAddr<sup>7+</sup>](#sms.setSmscAddr-callback)
- [sms.setSmscAddr7+](#section7801426144910) - [sms.setSmscAddr<sup>7+</sup>](#sms.setSmscAddr-promise)
- [sms.getSmscAddr7+](#section347174613494) - [sms.getSmscAddr<sup>7+</sup>](#sms.getSmscAddr-callback)
- [sms.getSmscAddr7+](#section1178428175016) - [sms.getSmscAddr<sup>7+</sup>](#sms.getSmscAddr-promise)
- [ShortMessage](#section345181318300) - [ShortMessage](#ShortMessage)
- [ShortMessageClass](#section141712166453) - [ShortMessageClass](#ShortMessageClass)
- [SendMessageOptions](#section12262183471518) - [SendMessageOptions](#SendMessageOptions)
- [ISendShortMessageCallback](#section16646146115317) - [ISendShortMessageCallback](#ISendShortMessageCallback)
- [IDeliveryShortMessageCallback](#section12183749531) - [IDeliveryShortMessageCallback](#IDeliveryShortMessageCallback)
- [SendSmsResult](#section13290132311575) - [SendSmsResult](#SendSmsResult)
>**说明:** >**说明:**
> >
>标记7+的表示从API Version 7开始支持,未标记的表示从API Version 6开始支持。 >- 从 API Version 6 开始支持。
>
>- 标记<sup>7+</sup>的接口从API Version 7开始支持。
## 导入模块<a name="section111401036143"></a> ## 导入模块
``` ```
import sms from '@ohos.telephony.sms'; import sms from '@ohos.telephony.sms';
``` ```
## sms.createMessage<a name="section3831173019331"></a> ## sms.createMessage<a name=sms.createMessage-callback></a>
createMessage\(pdu: Array<number\>, specification: string, callback: AsyncCallback<ShortMessage\>\): void createMessage\(pdu: Array<number\>, specification: string, callback: AsyncCallback<ShortMessage\>\): void
...@@ -35,48 +37,11 @@ createMessage\(pdu: Array<number\>, specification: string, callback: AsyncCallba ...@@ -35,48 +37,11 @@ createMessage\(pdu: Array<number\>, specification: string, callback: AsyncCallba
- 参数 - 参数
<a name="table11872418104316"></a> | 参数名 | 类型 | 必填 | 说明 |
| ------------- | -------------------------------------------------- | ---- | ------------------------------------------------------------ |
<table><thead align="left"><tr id="row13873518134320"><th class="cellrowborder" valign="top" width="15.53%" id="mcps1.1.5.1.1"><p id="p1873111820437"><a name="p1873111820437"></a><a name="p1873111820437"></a>参数名</p> | pdu | Array&lt;number&gt; | 是 | 协议数据单元,从收到的信息中获取。 |
</th> | specification | string | 是 | 短信协议类型。<br/>- 3gpp表示GSM/UMTS/LTE SMS<br/>- 3gpp2表示CDMA SMS |
<th class="cellrowborder" valign="top" width="31.47%" id="mcps1.1.5.1.2"><p id="p687301844313"><a name="p687301844313"></a><a name="p687301844313"></a>类型</p> | callback | AsyncCallback&lt;[ShortMessage](#ShortMessage)&gt; | 是 | 回调函数。 |
</th>
<th class="cellrowborder" valign="top" width="6.9%" id="mcps1.1.5.1.3"><p id="p19873318114314"><a name="p19873318114314"></a><a name="p19873318114314"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="46.1%" id="mcps1.1.5.1.4"><p id="p1087316184438"><a name="p1087316184438"></a><a name="p1087316184438"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1587321816434"><td class="cellrowborder" valign="top" width="15.53%" headers="mcps1.1.5.1.1 "><p id="p13873218194315"><a name="p13873218194315"></a><a name="p13873218194315"></a>pdu</p>
</td>
<td class="cellrowborder" valign="top" width="31.47%" headers="mcps1.1.5.1.2 "><p id="p11873818114315"><a name="p11873818114315"></a><a name="p11873818114315"></a>Array&lt;number&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="6.9%" headers="mcps1.1.5.1.3 "><p id="p14873018194316"><a name="p14873018194316"></a><a name="p14873018194316"></a></p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p19874418104310"><a name="p19874418104310"></a><a name="p19874418104310"></a>协议数据单元,从收到的信息中获取。</p>
</td>
</tr>
<tr id="row1268000144419"><td class="cellrowborder" valign="top" width="15.53%" headers="mcps1.1.5.1.1 "><p id="p46801407448"><a name="p46801407448"></a><a name="p46801407448"></a>specification</p>
</td>
<td class="cellrowborder" valign="top" width="31.47%" headers="mcps1.1.5.1.2 "><p id="p206811503445"><a name="p206811503445"></a><a name="p206811503445"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="6.9%" headers="mcps1.1.5.1.3 "><p id="p1468111016441"><a name="p1468111016441"></a><a name="p1468111016441"></a></p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p041710431522"><a name="p041710431522"></a><a name="p041710431522"></a>短信协议类型。</p>
<a name="ul331674955216"></a><a name="ul331674955216"></a><ul id="ul331674955216"><li>3gpp表示GSM/UMTS/LTE SMS</li><li>3gpp2表示CDMA SMS</li></ul>
</td>
</tr>
<tr id="row0874181814310"><td class="cellrowborder" valign="top" width="15.53%" headers="mcps1.1.5.1.1 "><p id="p88742018194313"><a name="p88742018194313"></a><a name="p88742018194313"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="31.47%" headers="mcps1.1.5.1.2 "><p id="p15874718174310"><a name="p15874718174310"></a><a name="p15874718174310"></a>AsyncCallback&lt;<a href="#section345181318300">ShortMessage</a>&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="6.9%" headers="mcps1.1.5.1.3 "><p id="p11874151814438"><a name="p11874151814438"></a><a name="p11874151814438"></a></p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p16874618124315"><a name="p16874618124315"></a><a name="p16874618124315"></a>回调函数。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -89,7 +54,7 @@ createMessage\(pdu: Array<number\>, specification: string, callback: AsyncCallba ...@@ -89,7 +54,7 @@ createMessage\(pdu: Array<number\>, specification: string, callback: AsyncCallba
``` ```
## sms.createMessage<a name="section9796242123511"></a> ## sms.createMessage<a name=sms.createMessage-promise></a>
createMessage\(pdu: Array<number\>, specification: string\): Promise<ShortMessage\> createMessage\(pdu: Array<number\>, specification: string\): Promise<ShortMessage\>
...@@ -97,55 +62,16 @@ createMessage\(pdu: Array<number\>, specification: string\): Promise<ShortMessag ...@@ -97,55 +62,16 @@ createMessage\(pdu: Array<number\>, specification: string\): Promise<ShortMessag
- 参数 - 参数
<a name="table1435974516216"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row1235934514212"><th class="cellrowborder" valign="top" width="17.66%" id="mcps1.1.5.1.1"><p id="p635914451725"><a name="p635914451725"></a><a name="p635914451725"></a>参数名</p> | ------------- | ------------------- | ---- | ------------------------------------------------------------ |
</th> | pdu | Array&lt;number&gt; | 是 | 协议数据单元,从收到的信息中获取。 |
<th class="cellrowborder" valign="top" width="28.18%" id="mcps1.1.5.1.2"><p id="p12359154517217"><a name="p12359154517217"></a><a name="p12359154517217"></a>类型</p> | specification | string | 是 | 短信协议类型。<br/>- 3gpp表示GSM/UMTS/LTE SMS<br/>- 3gpp2表示CDMA SMS |
</th>
<th class="cellrowborder" valign="top" width="8.06%" id="mcps1.1.5.1.3"><p id="p113593454216"><a name="p113593454216"></a><a name="p113593454216"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="46.1%" id="mcps1.1.5.1.4"><p id="p15359154514213"><a name="p15359154514213"></a><a name="p15359154514213"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row8359104519214"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p143596451823"><a name="p143596451823"></a><a name="p143596451823"></a>pdu</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p6359104512212"><a name="p6359104512212"></a><a name="p6359104512212"></a>Array&lt;number&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p936013452211"><a name="p936013452211"></a><a name="p936013452211"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p1436004511214"><a name="p1436004511214"></a><a name="p1436004511214"></a>协议数据单元,从收到的信息中获取。</p>
</td>
</tr>
<tr id="row63606450217"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p2036011451325"><a name="p2036011451325"></a><a name="p2036011451325"></a>specification</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p18360164515210"><a name="p18360164515210"></a><a name="p18360164515210"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p83600454219"><a name="p83600454219"></a><a name="p83600454219"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p758422312366"><a name="p758422312366"></a><a name="p758422312366"></a>短信协议类型。</p>
<a name="ul178213302362"></a><a name="ul178213302362"></a><ul id="ul178213302362"><li>3gpp表示GSM/UMTS/LTE SMS</li><li>3gpp2表示CDMA SMS</li></ul>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table1918382310112"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row7183202315119"><th class="cellrowborder" valign="top" width="26.06%" id="mcps1.1.3.1.1"><p id="p1918414230115"><a name="p1918414230115"></a><a name="p1918414230115"></a>类型</p> | -------------------------------------------- | --------------------------------- |
</th> | Promise&lt;[ShortMessage](#ShortMessage)&gt; | 以Promise形式返回创建的短信实例。 |
<th class="cellrowborder" valign="top" width="73.94%" id="mcps1.1.3.1.2"><p id="p1918412232014"><a name="p1918412232014"></a><a name="p1918412232014"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row2184132316110"><td class="cellrowborder" valign="top" width="26.06%" headers="mcps1.1.3.1.1 "><p id="p1218415231011"><a name="p1218415231011"></a><a name="p1218415231011"></a>Promise&lt;<a href="#section345181318300">ShortMessage</a>&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="73.94%" headers="mcps1.1.3.1.2 "><p id="p1218411231411"><a name="p1218411231411"></a><a name="p1218411231411"></a>以Promise形式返回创建的短信实例。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -160,39 +86,19 @@ createMessage\(pdu: Array<number\>, specification: string\): Promise<ShortMessag ...@@ -160,39 +86,19 @@ createMessage\(pdu: Array<number\>, specification: string\): Promise<ShortMessag
}); });
``` ```
## sms.sendMessage
## sms.sendMessage<a name="section128401423810"></a> sendMessage(options: SendMessageOptions): void
sendMessage\(options: SendMessageOptions\): void
发送短信。 发送短信。
需要ohos.permission.SEND\_MESSAGES权限。 需要ohos.permission.SEND_MESSAGES权限。
- 参数 - 参数
<a name="table1170025144917"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row14171425124919"><th class="cellrowborder" valign="top" width="19.259999999999998%" id="mcps1.1.5.1.1"><p id="p1617102513494"><a name="p1617102513494"></a><a name="p1617102513494"></a>参数名</p> | ------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
</th> | options | [SendMessageOptions](#SendMessageOptions) | 是 | 发送短信的参数和回调,参考[SendMessageOptions](#SendMessageOptions)。 |
<th class="cellrowborder" valign="top" width="20.599999999999998%" id="mcps1.1.5.1.2"><p id="p181711025174911"><a name="p181711025174911"></a><a name="p181711025174911"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="12.36%" id="mcps1.1.5.1.3"><p id="p61711625174917"><a name="p61711625174917"></a><a name="p61711625174917"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="47.78%" id="mcps1.1.5.1.4"><p id="p181715257498"><a name="p181715257498"></a><a name="p181715257498"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1717292510494"><td class="cellrowborder" valign="top" width="19.259999999999998%" headers="mcps1.1.5.1.1 "><p id="p7172925154911"><a name="p7172925154911"></a><a name="p7172925154911"></a>options</p>
</td>
<td class="cellrowborder" valign="top" width="20.599999999999998%" headers="mcps1.1.5.1.2 "><p id="p5552285116"><a name="p5552285116"></a><a name="p5552285116"></a><a href="#section12262183471518">SendMessageOptions</a></p>
</td>
<td class="cellrowborder" valign="top" width="12.36%" headers="mcps1.1.5.1.3 "><p id="p131725254492"><a name="p131725254492"></a><a name="p131725254492"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="47.78%" headers="mcps1.1.5.1.4 "><p id="p15172625154920"><a name="p15172625154920"></a><a name="p15172625154920"></a>发送短信的参数和回调,参考<a href="#section12262183471518">SendMessageOptions</a>。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -213,7 +119,7 @@ sendMessage\(options: SendMessageOptions\): void ...@@ -213,7 +119,7 @@ sendMessage\(options: SendMessageOptions\): void
``` ```
## sms.getDefaultSmsSlotId<sup>7+</sup><a name="section46193383478"></a> ## sms.getDefaultSmsSlotId<sup>7+</sup><a name=sms.getDefaultSmsSlotId-callback></a>
getDefaultSmsSlotId\(callback: AsyncCallback<number\>\): void getDefaultSmsSlotId\(callback: AsyncCallback<number\>\): void
...@@ -221,29 +127,9 @@ getDefaultSmsSlotId\(callback: AsyncCallback<number\>\): void ...@@ -221,29 +127,9 @@ getDefaultSmsSlotId\(callback: AsyncCallback<number\>\): void
- 参数 - 参数
<a name="table640016365210"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row11401163612219"><th class="cellrowborder" valign="top" width="17.66%" id="mcps1.1.5.1.1"><p id="p1340115368214"><a name="p1340115368214"></a><a name="p1340115368214"></a>参数名</p> | -------- | --------------------------- | ---- | ---------------------------------------- |
</th> | callback | AsyncCallback&lt;number&gt; | 是 | 回调函数。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="28.18%" id="mcps1.1.5.1.2"><p id="p840110366210"><a name="p840110366210"></a><a name="p840110366210"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="8.06%" id="mcps1.1.5.1.3"><p id="p240115363216"><a name="p240115363216"></a><a name="p240115363216"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="46.1%" id="mcps1.1.5.1.4"><p id="p1940116361021"><a name="p1940116361021"></a><a name="p1940116361021"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1140120361522"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p9401103618216"><a name="p9401103618216"></a><a name="p9401103618216"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p2401103617217"><a name="p2401103617217"></a><a name="p2401103617217"></a>AsyncCallback&lt;number&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p4401036423"><a name="p4401036423"></a><a name="p4401036423"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p440103618212"><a name="p440103618212"></a><a name="p440103618212"></a>回调函数。</p>
<a name="ul9211219141510"></a><a name="ul9211219141510"></a><ul id="ul9211219141510"><li>0:卡槽1</li><li>1:卡槽2</li></ul>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -254,7 +140,7 @@ getDefaultSmsSlotId\(callback: AsyncCallback<number\>\): void ...@@ -254,7 +140,7 @@ getDefaultSmsSlotId\(callback: AsyncCallback<number\>\): void
``` ```
## sms.getDefaultSmsSlotId<sup>7+</sup><a name="section19981626114817"></a> ## sms.getDefaultSmsSlotId<sup>7+</sup><a name=sms.getDefaultSmsSlotId-promise></a>
getDefaultSmsSlotId\(\): Promise<number\> getDefaultSmsSlotId\(\): Promise<number\>
...@@ -262,21 +148,9 @@ getDefaultSmsSlotId\(\): Promise<number\> ...@@ -262,21 +148,9 @@ getDefaultSmsSlotId\(\): Promise<number\>
- 返回值 - 返回值
<a name="table58590561095"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row118591561193"><th class="cellrowborder" valign="top" width="26.06%" id="mcps1.1.3.1.1"><p id="p7859056599"><a name="p7859056599"></a><a name="p7859056599"></a>类型</p> | --------------- | ------------------------------------------------------------ |
</th> | Promise<number> | 以Promise形式返回发送短信的默认SIM卡:<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="73.94%" id="mcps1.1.3.1.2"><p id="p085913569919"><a name="p085913569919"></a><a name="p085913569919"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row28591856299"><td class="cellrowborder" valign="top" width="26.06%" headers="mcps1.1.3.1.1 "><p id="p28631116886"><a name="p28631116886"></a><a name="p28631116886"></a>Promise&lt;number&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="73.94%" headers="mcps1.1.3.1.2 "><p id="p1785920561591"><a name="p1785920561591"></a><a name="p1785920561591"></a>以Promise形式返回发送短信的默认SIM卡:</p>
<a name="ul297310284152"></a><a name="ul297310284152"></a><ul id="ul297310284152"><li>0:卡槽1</li><li>1:卡槽2</li></ul>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -290,7 +164,7 @@ getDefaultSmsSlotId\(\): Promise<number\> ...@@ -290,7 +164,7 @@ getDefaultSmsSlotId\(\): Promise<number\>
``` ```
## sms.setSmscAddr<sup>7+</sup><a name="section155849574485"></a> ## sms.setSmscAddr<sup>7+</sup><a name=sms.setSmscAddr-callback></a>
setSmscAddr\(slotId: number, smscAddr: string, callback: AsyncCallback<void\>\): void setSmscAddr\(slotId: number, smscAddr: string, callback: AsyncCallback<void\>\): void
...@@ -300,47 +174,11 @@ setSmscAddr\(slotId: number, smscAddr: string, callback: AsyncCallback<void\>\): ...@@ -300,47 +174,11 @@ setSmscAddr\(slotId: number, smscAddr: string, callback: AsyncCallback<void\>\):
- 参数 - 参数
<a name="table16426938237"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row94271538039"><th class="cellrowborder" valign="top" width="17.66%" id="mcps1.1.5.1.1"><p id="p12427738837"><a name="p12427738837"></a><a name="p12427738837"></a>参数名</p> | -------- | ------------------------- | ---- | ----------------------------------------- |
</th> | slotId | number | 是 | SIM卡槽ID:<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="28.18%" id="mcps1.1.5.1.2"><p id="p104274381133"><a name="p104274381133"></a><a name="p104274381133"></a>类型</p> | smscAddr | string | 是 | 短信服务中心地址。 |
</th> | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
<th class="cellrowborder" valign="top" width="8.06%" id="mcps1.1.5.1.3"><p id="p24274381834"><a name="p24274381834"></a><a name="p24274381834"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="46.1%" id="mcps1.1.5.1.4"><p id="p3427738938"><a name="p3427738938"></a><a name="p3427738938"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row184651552734"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p546614524317"><a name="p546614524317"></a><a name="p546614524317"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p104661852439"><a name="p104661852439"></a><a name="p104661852439"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p1635101510417"><a name="p1635101510417"></a><a name="p1635101510417"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p34931544121518"><a name="p34931544121518"></a><a name="p34931544121518"></a>SIM卡槽ID:</p>
<a name="ul3493164411516"></a><a name="ul3493164411516"></a><ul id="ul3493164411516"><li>0:卡槽1</li><li>1:卡槽2</li></ul>
</td>
</tr>
<tr id="row8924552151"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p119251252255"><a name="p119251252255"></a><a name="p119251252255"></a>smscAddr</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p129253521658"><a name="p129253521658"></a><a name="p129253521658"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p8958171314615"><a name="p8958171314615"></a><a name="p8958171314615"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p14925352154"><a name="p14925352154"></a><a name="p14925352154"></a>短信服务中心地址。</p>
</td>
</tr>
<tr id="row4427938632"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p64275383316"><a name="p64275383316"></a><a name="p64275383316"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p11427183811320"><a name="p11427183811320"></a><a name="p11427183811320"></a>AsyncCallback&lt;void&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p20427238435"><a name="p20427238435"></a><a name="p20427238435"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p174278382318"><a name="p174278382318"></a><a name="p174278382318"></a>回调函数。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -353,7 +191,7 @@ setSmscAddr\(slotId: number, smscAddr: string, callback: AsyncCallback<void\>\): ...@@ -353,7 +191,7 @@ setSmscAddr\(slotId: number, smscAddr: string, callback: AsyncCallback<void\>\):
``` ```
## sms.setSmscAddr<sup>7+</sup><a name="section7801426144910"></a> ## sms.setSmscAddr<sup>7+</sup><a name=sms.setSmscAddr-promise></a>
setSmscAddr\(slotId: number, smscAddr: string\): Promise<void\> setSmscAddr\(slotId: number, smscAddr: string\): Promise<void\>
...@@ -363,55 +201,16 @@ setSmscAddr\(slotId: number, smscAddr: string\): Promise<void\> ...@@ -363,55 +201,16 @@ setSmscAddr\(slotId: number, smscAddr: string\): Promise<void\>
- 参数 - 参数
<a name="table1859188171115"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row9592801111"><th class="cellrowborder" valign="top" width="17.66%" id="mcps1.1.5.1.1"><p id="p115948161111"><a name="p115948161111"></a><a name="p115948161111"></a>参数名</p> | -------- | ------ | ---- | ----------------------------------------- |
</th> | slotId | number | 是 | SIM卡槽ID:<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="28.18%" id="mcps1.1.5.1.2"><p id="p1598881115"><a name="p1598881115"></a><a name="p1598881115"></a>类型</p> | smscAddr | string | 是 | 短信服务中心地址。 |
</th>
<th class="cellrowborder" valign="top" width="8.06%" id="mcps1.1.5.1.3"><p id="p25948131119"><a name="p25948131119"></a><a name="p25948131119"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="46.1%" id="mcps1.1.5.1.4"><p id="p55910812119"><a name="p55910812119"></a><a name="p55910812119"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row155911811114"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p105912821114"><a name="p105912821114"></a><a name="p105912821114"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p16014811114"><a name="p16014811114"></a><a name="p16014811114"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p96078111114"><a name="p96078111114"></a><a name="p96078111114"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p11572145614159"><a name="p11572145614159"></a><a name="p11572145614159"></a>SIM卡槽ID:</p>
<a name="ul1357255618156"></a><a name="ul1357255618156"></a><ul id="ul1357255618156"><li>0:卡槽1</li><li>1:卡槽2</li></ul>
</td>
</tr>
<tr id="row66015813112"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p106014821119"><a name="p106014821119"></a><a name="p106014821119"></a>smscAddr</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p66088151118"><a name="p66088151118"></a><a name="p66088151118"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p1860208141117"><a name="p1860208141117"></a><a name="p1860208141117"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p1760108101119"><a name="p1760108101119"></a><a name="p1760108101119"></a>短信服务中心地址。</p>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table119691243144714"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row096954364719"><th class="cellrowborder" valign="top" width="26.69%" id="mcps1.1.3.1.1"><p id="p897019436475"><a name="p897019436475"></a><a name="p897019436475"></a>类型</p> | ------------------- | ------------------------------- |
</th> | Promise&lt;void&gt; | 以Promise形式异步返回设置结果。 |
<th class="cellrowborder" valign="top" width="73.31%" id="mcps1.1.3.1.2"><p id="p16970114344720"><a name="p16970114344720"></a><a name="p16970114344720"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row16970443194710"><td class="cellrowborder" valign="top" width="26.69%" headers="mcps1.1.3.1.1 "><p id="p19970343174717"><a name="p19970343174717"></a><a name="p19970343174717"></a>Promise&lt;void&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="73.31%" headers="mcps1.1.3.1.2 "><p id="p169703434472"><a name="p169703434472"></a><a name="p169703434472"></a>以Promise形式异步返回设置结果。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -427,7 +226,7 @@ setSmscAddr\(slotId: number, smscAddr: string\): Promise<void\> ...@@ -427,7 +226,7 @@ setSmscAddr\(slotId: number, smscAddr: string\): Promise<void\>
``` ```
## sms.getSmscAddr<sup>7+</sup><a name="section347174613494"></a> ## sms.getSmscAddr<sup>7+</sup><a name=sms.getSmscAddr-callback></a>
getSmscAddr\(slotId: number, callback: AsyncCallback<string\>\): void getSmscAddr\(slotId: number, callback: AsyncCallback<string\>\): void
...@@ -437,38 +236,10 @@ getSmscAddr\(slotId: number, callback: AsyncCallback<string\>\): void ...@@ -437,38 +236,10 @@ getSmscAddr\(slotId: number, callback: AsyncCallback<string\>\): void
- 参数 - 参数
<a name="table1688918415185"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row108899481812"><th class="cellrowborder" valign="top" width="17.66%" id="mcps1.1.5.1.1"><p id="p10889242180"><a name="p10889242180"></a><a name="p10889242180"></a>参数名</p> | -------- | --------------------------- | ---- | ----------------------------------------- |
</th> | slotId | number | 是 | SIM卡槽ID:<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="28.18%" id="mcps1.1.5.1.2"><p id="p13889142181"><a name="p13889142181"></a><a name="p13889142181"></a>类型</p> | callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。 |
</th>
<th class="cellrowborder" valign="top" width="8.06%" id="mcps1.1.5.1.3"><p id="p089019419181"><a name="p089019419181"></a><a name="p089019419181"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="46.1%" id="mcps1.1.5.1.4"><p id="p48901943187"><a name="p48901943187"></a><a name="p48901943187"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1789084151812"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p16890124201811"><a name="p16890124201811"></a><a name="p16890124201811"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p138907411185"><a name="p138907411185"></a><a name="p138907411185"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p789064191816"><a name="p789064191816"></a><a name="p789064191816"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p1085441121615"><a name="p1085441121615"></a><a name="p1085441121615"></a>SIM卡槽ID:</p>
<a name="ul285420116165"></a><a name="ul285420116165"></a><ul id="ul285420116165"><li>0:卡槽1</li><li>1:卡槽2</li></ul>
</td>
</tr>
<tr id="row18906441819"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p78915410183"><a name="p78915410183"></a><a name="p78915410183"></a>callback</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p1789116417184"><a name="p1789116417184"></a><a name="p1789116417184"></a>AsyncCallback&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p108912047185"><a name="p108912047185"></a><a name="p108912047185"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p188916414188"><a name="p188916414188"></a><a name="p188916414188"></a>回调函数。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -480,7 +251,7 @@ getSmscAddr\(slotId: number, callback: AsyncCallback<string\>\): void ...@@ -480,7 +251,7 @@ getSmscAddr\(slotId: number, callback: AsyncCallback<string\>\): void
``` ```
## sms.getSmscAddr<sup>7+</sup><a name="section1178428175016"></a> ## sms.getSmscAddr<sup>7+</sup><a name=sms.getSmscAddr-promise></a>
getSmscAddr\(slotId: number\): Promise<string\> getSmscAddr\(slotId: number\): Promise<string\>
...@@ -490,46 +261,15 @@ getSmscAddr\(slotId: number\): Promise<string\> ...@@ -490,46 +261,15 @@ getSmscAddr\(slotId: number\): Promise<string\>
- 参数 - 参数
<a name="table789120415189"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row18924416186"><th class="cellrowborder" valign="top" width="17.66%" id="mcps1.1.5.1.1"><p id="p38921346181"><a name="p38921346181"></a><a name="p38921346181"></a>参数名</p> | ------ | ------ | ---- | ----------------------------------------- |
</th> | slotId | number | 是 | SIM卡槽ID:<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="28.18%" id="mcps1.1.5.1.2"><p id="p78924412188"><a name="p78924412188"></a><a name="p78924412188"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="8.06%" id="mcps1.1.5.1.3"><p id="p1789211412185"><a name="p1789211412185"></a><a name="p1789211412185"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="46.1%" id="mcps1.1.5.1.4"><p id="p16892104181816"><a name="p16892104181816"></a><a name="p16892104181816"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1892643184"><td class="cellrowborder" valign="top" width="17.66%" headers="mcps1.1.5.1.1 "><p id="p12892184171813"><a name="p12892184171813"></a><a name="p12892184171813"></a>slotId</p>
</td>
<td class="cellrowborder" valign="top" width="28.18%" headers="mcps1.1.5.1.2 "><p id="p989215451810"><a name="p989215451810"></a><a name="p989215451810"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="8.06%" headers="mcps1.1.5.1.3 "><p id="p1889217491813"><a name="p1889217491813"></a><a name="p1889217491813"></a>是</p>
</td>
<td class="cellrowborder" valign="top" width="46.1%" headers="mcps1.1.5.1.4 "><p id="p8956122311162"><a name="p8956122311162"></a><a name="p8956122311162"></a>SIM卡槽ID:</p>
<a name="ul1495632314162"></a><a name="ul1495632314162"></a><ul id="ul1495632314162"><li>0:卡槽1</li><li>1:卡槽2</li></ul>
</td>
</tr>
</tbody>
</table>
- 返回值 - 返回值
<a name="table989334161814"></a> | 类型 | 说明 |
<table><thead align="left"><tr id="row198934419185"><th class="cellrowborder" valign="top" width="26.06%" id="mcps1.1.3.1.1"><p id="p1889312413181"><a name="p1889312413181"></a><a name="p1889312413181"></a>类型</p> | --------------------- | --------------------------------------------- |
</th> | Promise&lt;string&gt; | 以Promise形式返回获取短信服务中心地址的结果。 |
<th class="cellrowborder" valign="top" width="73.94%" id="mcps1.1.3.1.2"><p id="p1389316413180"><a name="p1389316413180"></a><a name="p1389316413180"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row1789312451812"><td class="cellrowborder" valign="top" width="26.06%" headers="mcps1.1.3.1.1 "><p id="p1893134121818"><a name="p1893134121818"></a><a name="p1893134121818"></a>Promise&lt;string&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="73.94%" headers="mcps1.1.3.1.2 "><p id="p68944416186"><a name="p68944416186"></a><a name="p68944416186"></a>以Promise形式返回获取短信服务中心地址的结果。</p>
</td>
</tr>
</tbody>
</table>
- 示例 - 示例
...@@ -544,381 +284,87 @@ getSmscAddr\(slotId: number\): Promise<string\> ...@@ -544,381 +284,87 @@ getSmscAddr\(slotId: number\): Promise<string\>
``` ```
## ShortMessage<a name="section345181318300"></a> ## ShortMessage<a name=ShortMessage></a>
短信实例 短信实例。
<a name="table126934822015"></a> | 变量 | 类型 | 说明 |
| ------------------------ | --------------------------------------- | ------------------------------------------------------------ |
<table><thead align="left"><tr id="row1369315832016"><th class="cellrowborder" valign="top" width="23.34%" id="mcps1.1.4.1.1"><p id="p1871313815402"><a name="p1871313815402"></a><a name="p1871313815402"></a>变量</p> | emailAddress | string | 电子邮件地址。 |
</th> | emailMessageBody | string | 电子邮件正文。 |
<th class="cellrowborder" valign="top" width="19.06%" id="mcps1.1.4.1.2"><p id="p93231392263"><a name="p93231392263"></a><a name="p93231392263"></a>类型</p> | hasReplyPath | boolean | 收到的短信是否包含“TP-Reply-Path”,默认为false。<br/>“TP-Reply-Path”:移动电话根据发送SMS消息的短消息中心进行回复。 |
</th> | isEmailMessage | boolean | 收到的短信是否为电子邮件。 |
<th class="cellrowborder" valign="top" width="57.599999999999994%" id="mcps1.1.4.1.3"><p id="p145500193814"><a name="p145500193814"></a><a name="p145500193814"></a>说明</p> | isReplaceMessage | boolean | 收到的短信是否为“替换短信”,默认为false。<br/>“替换短信”有关详细信息,参见 “3GPP TS 23.040 9.2.3.9”。 |
</th> | isSmsStatusReportMessage | boolean | 当前消息是否为“短信状态报告”,默认为false。<br/>“短信状态报告”是一种特定格式的短信,被用来从Service Center到Mobile Station传送状态报告。 |
</tr> | messageClass | [ShortMessageClass](#ShortMessageClass) | 短信类型。 |
</thead> | pdu | Array&lt;number&gt; | SMS消息中的协议数据单元 (PDU)。 |
<tbody><tr id="row13344184392519"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p85256525218"><a name="p85256525218"></a><a name="p85256525218"></a>emailAddress</p> |protocolId|number|发送短信时使用的协议标识。|
</td> |scAddress|string|短消息服务中心(SMSC)地址。|
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p107115501923"><a name="p107115501923"></a><a name="p107115501923"></a>string</p> |scTimestamp|number|SMSC时间戳。|
</td> |status|number|SMS-STATUS-REPORT消息中的短信状态指示短信服务中心(SMSC)发送的短信状态。|
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p202695241341"><a name="p202695241341"></a><a name="p202695241341"></a>电子邮件地址。</p> |userRawData|Array&lt;number&gt;|除数据头外的用户数据。|
</td> |visibleMessageBody|string|短信正文。|
</tr> |visibleRawAddress|string|发送者地址。|
<tr id="row206942882013"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p773310541229"><a name="p773310541229"></a><a name="p773310541229"></a>emailMessageBody</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p181441457223"><a name="p181441457223"></a><a name="p181441457223"></a>string</p> ## ShortMessageClass<a name=ShortMessageClass></a>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p15573202884013"><a name="p15573202884013"></a><a name="p15573202884013"></a>电子邮件正文。</p>
</td>
</tr>
<tr id="row116945832019"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p12155162811211"><a name="p12155162811211"></a><a name="p12155162811211"></a>hasReplyPath</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p14794525926"><a name="p14794525926"></a><a name="p14794525926"></a>boolean</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p13754174585919"><a name="p13754174585919"></a><a name="p13754174585919"></a>收到的短信是否包含“TP-Reply-Path”,默认为false。</p>
<a name="ul1470498307"></a><a name="ul1470498307"></a><ul id="ul1470498307"><li>“TP-Reply-Path”:移动电话根据发送SMS消息的短消息中心进行回复。</li></ul>
</td>
</tr>
<tr id="row253218315237"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p140111161132"><a name="p140111161132"></a><a name="p140111161132"></a>isEmailMessage</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p146951018131"><a name="p146951018131"></a><a name="p146951018131"></a>boolean</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p887603743519"><a name="p887603743519"></a><a name="p887603743519"></a>收到的短信是否为电子邮件。</p>
</td>
</tr>
<tr id="row859720172311"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p166361920323"><a name="p166361920323"></a><a name="p166361920323"></a>isReplaceMessage</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p01812236216"><a name="p01812236216"></a><a name="p01812236216"></a>boolean</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p022761413014"><a name="p022761413014"></a><a name="p022761413014"></a>收到的短信是否为“替换短信”,默认为false。</p>
<a name="ul42891226707"></a><a name="ul42891226707"></a><ul id="ul42891226707"><li>“替换短信”有关详细信息,参见 “3GPP TS 23.040 9.2.3.9”。</li></ul>
</td>
</tr>
<tr id="row764111193410"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p1410313450214"><a name="p1410313450214"></a><a name="p1410313450214"></a>isSmsStatusReportMessage</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p1644311475213"><a name="p1644311475213"></a><a name="p1644311475213"></a>boolean</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p5701488344"><a name="p5701488344"></a><a name="p5701488344"></a>当前消息是否为“短信状态报告”,默认为false。</p>
<a name="ul14539561111"></a><a name="ul14539561111"></a><ul id="ul14539561111"><li>“短信状态报告”是一种特定格式的短信,被用来从Service Center到Mobile Station传送状态报告。</li></ul>
</td>
</tr>
<tr id="row109475100345"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p19837318220"><a name="p19837318220"></a><a name="p19837318220"></a>messageClass</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p161336593118"><a name="p161336593118"></a><a name="p161336593118"></a><a href="#section141712166453">ShortMessageClass</a></p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p55610014386"><a name="p55610014386"></a><a name="p55610014386"></a>短信类型。</p>
</td>
</tr>
<tr id="row13623612346"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p5114831626"><a name="p5114831626"></a><a name="p5114831626"></a>pdu</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p17402133611219"><a name="p17402133611219"></a><a name="p17402133611219"></a>Array&lt;number&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p177241026133411"><a name="p177241026133411"></a><a name="p177241026133411"></a>SMS消息中的协议数据单元 (PDU)。</p>
</td>
</tr>
<tr id="row498012918341"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p4552841928"><a name="p4552841928"></a><a name="p4552841928"></a>protocolId</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p11390871024"><a name="p11390871024"></a><a name="p11390871024"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p16572083814"><a name="p16572083814"></a><a name="p16572083814"></a>发送短信时使用的协议标识。</p>
</td>
</tr>
<tr id="row87231262349"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p32951810223"><a name="p32951810223"></a><a name="p32951810223"></a>scAddress</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p4631111219219"><a name="p4631111219219"></a><a name="p4631111219219"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p136431815349"><a name="p136431815349"></a><a name="p136431815349"></a>短消息服务中心(SMSC)地址。</p>
</td>
</tr>
<tr id="row1294964403418"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p1253815422"><a name="p1253815422"></a><a name="p1253815422"></a>scTimestamp</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p1498814171127"><a name="p1498814171127"></a><a name="p1498814171127"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p294716100345"><a name="p294716100345"></a><a name="p294716100345"></a>SMSC时间戳。</p>
</td>
</tr>
<tr id="row169548183414"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p16266133910216"><a name="p16266133910216"></a><a name="p16266133910216"></a>status</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p1955441329"><a name="p1955441329"></a><a name="p1955441329"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p59491344113419"><a name="p59491344113419"></a><a name="p59491344113419"></a>SMS-STATUS-REPORT消息中的短信状态指示短信服务中心(SMSC)发送的短信状态。</p>
</td>
</tr>
<tr id="row1526817245344"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p156631801631"><a name="p156631801631"></a><a name="p156631801631"></a>userRawData</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p861981315311"><a name="p861981315311"></a><a name="p861981315311"></a>Array&lt;number&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p8487922358"><a name="p8487922358"></a><a name="p8487922358"></a>除数据头外的用户数据。</p>
</td>
</tr>
<tr id="row183801940133512"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p396619450120"><a name="p396619450120"></a><a name="p396619450120"></a>visibleMessageBody</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p819218501110"><a name="p819218501110"></a><a name="p819218501110"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p85619013384"><a name="p85619013384"></a><a name="p85619013384"></a>短信正文。</p>
</td>
</tr>
<tr id="row98751137153511"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p12309536110"><a name="p12309536110"></a><a name="p12309536110"></a>visibleRawAddress</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p559135510111"><a name="p559135510111"></a><a name="p559135510111"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p55617011389"><a name="p55617011389"></a><a name="p55617011389"></a>发送者地址。</p>
</td>
</tr>
</tbody>
</table>
## ShortMessageClass<a name="section141712166453"></a>
短信类型。 短信类型。
<a name="table12281144104511"></a> | 变量 | 值 | 说明 |
<table><thead align="left"><tr id="row10281144124514"><th class="cellrowborder" valign="top" width="23.34%" id="mcps1.1.4.1.1"><p id="p128194419456"><a name="p128194419456"></a><a name="p128194419456"></a>变量</p> | ---------------- | ---- | ---------------------------------------- |
</th> | UNKNOWN | 0 | 未知类型。 |
<th class="cellrowborder" valign="top" width="19.06%" id="mcps1.1.4.1.2"><p id="p1528204484519"><a name="p1528204484519"></a><a name="p1528204484519"></a></p> | INSTANT_MESSAGE | 1 | 即时消息,收到后立即显示。 |
</th> | OPTIONAL_MESSAGE | 2 | 存储在设备或SIM卡上的短信。 |
<th class="cellrowborder" valign="top" width="57.599999999999994%" id="mcps1.1.4.1.3"><p id="p82824447459"><a name="p82824447459"></a><a name="p82824447459"></a>说明</p> | SIM_MESSAGE | 3 | 包含SIM卡信息的短信,需要存储在SIM卡中。 |
</th> | FORWARD_MESSAGE | 4 | 要转发到另一台设备的短信。 |
</tr>
</thead>
<tbody><tr id="row12821744124513"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p1366413819465"><a name="p1366413819465"></a><a name="p1366413819465"></a>UNKNOWN</p> ## SendMessageOptions<a name=SendMessageOptions></a>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p182826444455"><a name="p182826444455"></a><a name="p182826444455"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p4282244154515"><a name="p4282244154515"></a><a name="p4282244154515"></a>未知类型。</p>
</td>
</tr>
<tr id="row1828218449455"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p20401438488"><a name="p20401438488"></a><a name="p20401438488"></a>INSTANT_MESSAGE</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p9282184418454"><a name="p9282184418454"></a><a name="p9282184418454"></a>1</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p1728234434513"><a name="p1728234434513"></a><a name="p1728234434513"></a>即时消息,收到后立即显示。</p>
</td>
</tr>
<tr id="row1528364416454"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p17720456485"><a name="p17720456485"></a><a name="p17720456485"></a>OPTIONAL_MESSAGE</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p928314454518"><a name="p928314454518"></a><a name="p928314454518"></a>2</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p1428354414451"><a name="p1428354414451"></a><a name="p1428354414451"></a>存储在设备或SIM卡上的短信。</p>
</td>
</tr>
<tr id="row676864804613"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p1724510489488"><a name="p1724510489488"></a><a name="p1724510489488"></a>SIM_MESSAGE</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p1176924824615"><a name="p1176924824615"></a><a name="p1176924824615"></a>3</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p157698488462"><a name="p157698488462"></a><a name="p157698488462"></a>包含SIM卡信息的短信,需要存储在SIM卡中。</p>
</td>
</tr>
<tr id="row17327345184610"><td class="cellrowborder" valign="top" width="23.34%" headers="mcps1.1.4.1.1 "><p id="p17950155010481"><a name="p17950155010481"></a><a name="p17950155010481"></a>FORWARD_MESSAGE</p>
</td>
<td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.1.4.1.2 "><p id="p6328134594614"><a name="p6328134594614"></a><a name="p6328134594614"></a>4</p>
</td>
<td class="cellrowborder" valign="top" width="57.599999999999994%" headers="mcps1.1.4.1.3 "><p id="p183286452464"><a name="p183286452464"></a><a name="p183286452464"></a>要转发到另一台设备的短信。</p>
</td>
</tr>
</tbody>
</table>
## SendMessageOptions<a name="section12262183471518"></a>
发送短信的参数和回调。 发送短信的参数和回调。
根据SendMessageOptions中的可选参数content的值判断短信类型。 根据SendMessageOptions中的可选参数content的值判断短信类型。
<a name="table426533441512"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row1626518342159"><th class="cellrowborder" valign="top" width="18.69%" id="mcps1.1.5.1.1"><p id="p178726479354"><a name="p178726479354"></a><a name="p178726479354"></a>参数名</p> | ---------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
</th> | slotId | number | 是 | 用于发送短信的SIM卡槽ID:<br/>- 0:卡槽1<br/>- 1:卡槽2 |
<th class="cellrowborder" valign="top" width="22.07%" id="mcps1.1.5.1.2"><p id="p1426519342153"><a name="p1426519342153"></a><a name="p1426519342153"></a>类型</p> | destinationHost | string | 是 | 短信的发送地址。 |
</th> | content | string \| Array&lt;number&gt; | 是 | 如果内容是字符串,则这是一条文本短信。如果内容是字节数组,则这是一条数据短信。 |
<th class="cellrowborder" valign="top" width="6.88%" id="mcps1.1.5.1.3"><p id="p17265143471517"><a name="p17265143471517"></a><a name="p17265143471517"></a>必填</p> | serviceCenter | string | 否 | 短信中心地址。默认使用SIM卡中的短信中心地址。 |
</th> | destinationPort | number | 否 | 如果发送数据消息,destinationPort 是必需的。否则是可选的。 |
<th class="cellrowborder" valign="top" width="52.35999999999999%" id="mcps1.1.5.1.4"><p id="p1126583411512"><a name="p1126583411512"></a><a name="p1126583411512"></a>说明</p> | sendCallback | AsyncCallback&lt;[ISendShortMessageCallback](#ISendShortMessageCallback)&gt; | 否 | 短信发送结果回调,返回短信发送的结果,参考[ISendShortMessageCallback](#ISendShortMessageCallback)。 |
</th> | deliveryCallback | AsyncCallback&lt;[IDeliveryShortMessageCallback](#IDeliveryShortMessageCallback)&gt; | 否 | 短信送达结果回调,返回短信递送报告,参考[IDeliveryShortMessageCallback](#IDeliveryShortMessageCallback)。 |
</tr>
</thead>
<tbody><tr id="row126610344150"><td class="cellrowborder" valign="top" width="18.69%" headers="mcps1.1.5.1.1 "><p id="p414313350720"><a name="p414313350720"></a><a name="p414313350720"></a>slotId</p> ## ISendShortMessageCallback<a name=ISendShortMessageCallback></a>
</td>
<td class="cellrowborder" valign="top" width="22.07%" headers="mcps1.1.5.1.2 "><p id="p19298134416718"><a name="p19298134416718"></a><a name="p19298134416718"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="6.88%" headers="mcps1.1.5.1.3 "><p id="p17266183451512"><a name="p17266183451512"></a><a name="p17266183451512"></a></p>
</td>
<td class="cellrowborder" valign="top" width="52.35999999999999%" headers="mcps1.1.5.1.4 "><p id="p1563734381412"><a name="p1563734381412"></a><a name="p1563734381412"></a>用于发送短信的SIM卡槽ID:</p>
<a name="ul1226144151514"></a><a name="ul1226144151514"></a><ul id="ul1226144151514"><li>0:卡槽1</li><li>1:卡槽2</li></ul>
</td>
</tr>
<tr id="row11791572064"><td class="cellrowborder" valign="top" width="18.69%" headers="mcps1.1.5.1.1 "><p id="p11588175111715"><a name="p11588175111715"></a><a name="p11588175111715"></a>destinationHost</p>
</td>
<td class="cellrowborder" valign="top" width="22.07%" headers="mcps1.1.5.1.2 "><p id="p52991257274"><a name="p52991257274"></a><a name="p52991257274"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="6.88%" headers="mcps1.1.5.1.3 "><p id="p181791171161"><a name="p181791171161"></a><a name="p181791171161"></a></p>
</td>
<td class="cellrowborder" valign="top" width="52.35999999999999%" headers="mcps1.1.5.1.4 "><p id="p2017987066"><a name="p2017987066"></a><a name="p2017987066"></a>短信的发送地址。</p>
</td>
</tr>
<tr id="row16360111493118"><td class="cellrowborder" valign="top" width="18.69%" headers="mcps1.1.5.1.1 "><p id="p76811119810"><a name="p76811119810"></a><a name="p76811119810"></a>content</p>
</td>
<td class="cellrowborder" valign="top" width="22.07%" headers="mcps1.1.5.1.2 "><p id="p153513192820"><a name="p153513192820"></a><a name="p153513192820"></a>string | Array&lt;number&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="6.88%" headers="mcps1.1.5.1.3 "><p id="p482451216615"><a name="p482451216615"></a><a name="p482451216615"></a></p>
</td>
<td class="cellrowborder" valign="top" width="52.35999999999999%" headers="mcps1.1.5.1.4 "><p id="p15340948132416"><a name="p15340948132416"></a><a name="p15340948132416"></a>如果内容是字符串,则这是一条文本短信。</p>
<p id="p12824111212619"><a name="p12824111212619"></a><a name="p12824111212619"></a>如果内容是字节数组,则这是一条数据短信。</p>
</td>
</tr>
<tr id="row17902109267"><td class="cellrowborder" valign="top" width="18.69%" headers="mcps1.1.5.1.1 "><p id="p1441441820"><a name="p1441441820"></a><a name="p1441441820"></a>serviceCenter</p>
</td>
<td class="cellrowborder" valign="top" width="22.07%" headers="mcps1.1.5.1.2 "><p id="p1755119718816"><a name="p1755119718816"></a><a name="p1755119718816"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="6.88%" headers="mcps1.1.5.1.3 "><p id="p990279068"><a name="p990279068"></a><a name="p990279068"></a></p>
</td>
<td class="cellrowborder" valign="top" width="52.35999999999999%" headers="mcps1.1.5.1.4 "><p id="p1890229663"><a name="p1890229663"></a><a name="p1890229663"></a>短信中心地址。默认使用SIM卡中的短信中心地址。</p>
</td>
</tr>
<tr id="row12412215961"><td class="cellrowborder" valign="top" width="18.69%" headers="mcps1.1.5.1.1 "><p id="p750262516813"><a name="p750262516813"></a><a name="p750262516813"></a>destinationPort</p>
</td>
<td class="cellrowborder" valign="top" width="22.07%" headers="mcps1.1.5.1.2 "><p id="p1727917299816"><a name="p1727917299816"></a><a name="p1727917299816"></a>number</p>
</td>
<td class="cellrowborder" valign="top" width="6.88%" headers="mcps1.1.5.1.3 "><p id="p10412111519610"><a name="p10412111519610"></a><a name="p10412111519610"></a></p>
</td>
<td class="cellrowborder" valign="top" width="52.35999999999999%" headers="mcps1.1.5.1.4 "><p id="p1541319151266"><a name="p1541319151266"></a><a name="p1541319151266"></a>如果发送数据消息,destinationPort 是必需的。否则是可选的。</p>
</td>
</tr>
<tr id="row169402191669"><td class="cellrowborder" valign="top" width="18.69%" headers="mcps1.1.5.1.1 "><p id="p82028327818"><a name="p82028327818"></a><a name="p82028327818"></a>sendCallback</p>
</td>
<td class="cellrowborder" valign="top" width="22.07%" headers="mcps1.1.5.1.2 "><p id="p835213618913"><a name="p835213618913"></a><a name="p835213618913"></a>AsyncCallback</p>
<p id="p449664817810"><a name="p449664817810"></a><a name="p449664817810"></a>&lt;<a href="#section16646146115317">ISendShortMessageCallback</a>&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="6.88%" headers="mcps1.1.5.1.3 "><p id="p1940131914612"><a name="p1940131914612"></a><a name="p1940131914612"></a></p>
</td>
<td class="cellrowborder" valign="top" width="52.35999999999999%" headers="mcps1.1.5.1.4 "><p id="p9940151920617"><a name="p9940151920617"></a><a name="p9940151920617"></a>短信发送结果回调,返回短信发送的结果,参考<a href="#section16646146115317">ISendShortMessageCallback</a></p>
</td>
</tr>
<tr id="row196683176615"><td class="cellrowborder" valign="top" width="18.69%" headers="mcps1.1.5.1.1 "><p id="p1764495320816"><a name="p1764495320816"></a><a name="p1764495320816"></a>deliveryCallback</p>
</td>
<td class="cellrowborder" valign="top" width="22.07%" headers="mcps1.1.5.1.2 "><p id="p3892339195"><a name="p3892339195"></a><a name="p3892339195"></a>AsyncCallback</p>
<p id="p8149858286"><a name="p8149858286"></a><a name="p8149858286"></a>&lt;<a href="#section12183749531">IDeliveryShortMessageCallback</a>&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="6.88%" headers="mcps1.1.5.1.3 "><p id="p176695171565"><a name="p176695171565"></a><a name="p176695171565"></a></p>
</td>
<td class="cellrowborder" valign="top" width="52.35999999999999%" headers="mcps1.1.5.1.4 "><p id="p3669151714610"><a name="p3669151714610"></a><a name="p3669151714610"></a>短信送达结果回调,返回短信递送报告,参考<a href="#section12183749531">IDeliveryShortMessageCallback</a></p>
</td>
</tr>
</tbody>
</table>
## ISendShortMessageCallback<a name="section16646146115317"></a>
回调实例。返回短信发送结果、存储已发送短信的URI和是否为长短信的最后一部分。 回调实例。返回短信发送结果、存储已发送短信的URI和是否为长短信的最后一部分。
<a name="table1964615620539"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row964614675318"><th class="cellrowborder" valign="top" width="11.940000000000001%" id="mcps1.1.5.1.1"><p id="p1964613635311"><a name="p1964613635311"></a><a name="p1964613635311"></a>参数名</p> | ---------- | ------------------------------- | ---- | ------------------------------------------------------------ |
</th> | isLastPart | boolean | 否 | 指定这是否是长短信的最后一部分。true表示这是长短信的最后一部分,false表示不是。默认为false。 |
<th class="cellrowborder" valign="top" width="23.27%" id="mcps1.1.5.1.2"><p id="p16646136115317"><a name="p16646136115317"></a><a name="p16646136115317"></a>类型</p> | result | [SendSmsResult](#SendSmsResult) | 是 | 短信发送结果。 |
</th> | url | string | 是 | 存储发送短信的URI。 |
<th class="cellrowborder" valign="top" width="7.8100000000000005%" id="mcps1.1.5.1.3"><p id="p76461662532"><a name="p76461662532"></a><a name="p76461662532"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="56.98%" id="mcps1.1.5.1.4"><p id="p1664611620539"><a name="p1664611620539"></a><a name="p1664611620539"></a>说明</p> ## IDeliveryShortMessageCallback<a name=IDeliveryShortMessageCallback></a>
</th>
</tr>
</thead>
<tbody><tr id="row71461356335"><td class="cellrowborder" valign="top" width="11.940000000000001%" headers="mcps1.1.5.1.1 "><p id="p6680712195510"><a name="p6680712195510"></a><a name="p6680712195510"></a>isLastPart</p>
</td>
<td class="cellrowborder" valign="top" width="23.27%" headers="mcps1.1.5.1.2 "><p id="p10985814205514"><a name="p10985814205514"></a><a name="p10985814205514"></a>boolean</p>
</td>
<td class="cellrowborder" valign="top" width="7.8100000000000005%" headers="mcps1.1.5.1.3 "><p id="p19647176105316"><a name="p19647176105316"></a><a name="p19647176105316"></a></p>
</td>
<td class="cellrowborder" valign="top" width="56.98%" headers="mcps1.1.5.1.4 "><p id="p391010266511"><a name="p391010266511"></a><a name="p391010266511"></a>指定这是否是长短信的最后一部分。true表示这是长短信的最后一部分,false表示不是。默认为false。</p>
</td>
</tr>
<tr id="row66462665318"><td class="cellrowborder" valign="top" width="11.940000000000001%" headers="mcps1.1.5.1.1 "><p id="p12719120115514"><a name="p12719120115514"></a><a name="p12719120115514"></a>result</p>
</td>
<td class="cellrowborder" valign="top" width="23.27%" headers="mcps1.1.5.1.2 "><p id="p118240345516"><a name="p118240345516"></a><a name="p118240345516"></a><a href="#section13290132311575">SendSmsResult</a></p>
</td>
<td class="cellrowborder" valign="top" width="7.8100000000000005%" headers="mcps1.1.5.1.3 "><p id="p8647465537"><a name="p8647465537"></a><a name="p8647465537"></a></p>
</td>
<td class="cellrowborder" valign="top" width="56.98%" headers="mcps1.1.5.1.4 "><p id="p364756125310"><a name="p364756125310"></a><a name="p364756125310"></a>短信发送结果。</p>
</td>
</tr>
<tr id="row86473614538"><td class="cellrowborder" valign="top" width="11.940000000000001%" headers="mcps1.1.5.1.1 "><p id="p01183720558"><a name="p01183720558"></a><a name="p01183720558"></a>url</p>
</td>
<td class="cellrowborder" valign="top" width="23.27%" headers="mcps1.1.5.1.2 "><p id="p1994379185512"><a name="p1994379185512"></a><a name="p1994379185512"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="7.8100000000000005%" headers="mcps1.1.5.1.3 "><p id="p116472685320"><a name="p116472685320"></a><a name="p116472685320"></a></p>
</td>
<td class="cellrowborder" valign="top" width="56.98%" headers="mcps1.1.5.1.4 "><p id="p176471666538"><a name="p176471666538"></a><a name="p176471666538"></a>存储发送短信的URI。</p>
</td>
</tr>
</tbody>
</table>
## IDeliveryShortMessageCallback<a name="section12183749531"></a>
回调实例。返回短信送达报告。 回调实例。返回短信送达报告。
<a name="table218311405312"></a> | 参数名 | 类型 | 必填 | 说明 |
<table><thead align="left"><tr id="row1618314495318"><th class="cellrowborder" valign="top" width="11.940000000000001%" id="mcps1.1.5.1.1"><p id="p17183849534"><a name="p17183849534"></a><a name="p17183849534"></a>参数名</p> | ------ | ------------------- | ---- | -------------- |
</th> | pdu | Array&lt;number&gt; | 是 | 短信送达报告。 |
<th class="cellrowborder" valign="top" width="23.27%" id="mcps1.1.5.1.2"><p id="p2184945531"><a name="p2184945531"></a><a name="p2184945531"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="7.8100000000000005%" id="mcps1.1.5.1.3"><p id="p41841749538"><a name="p41841749538"></a><a name="p41841749538"></a>必填</p> ## SendSmsResult<a name=SendSmsResult></a>
</th>
<th class="cellrowborder" valign="top" width="56.98%" id="mcps1.1.5.1.4"><p id="p131841745531"><a name="p131841745531"></a><a name="p131841745531"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row17184446536"><td class="cellrowborder" valign="top" width="11.940000000000001%" headers="mcps1.1.5.1.1 "><p id="p13636519105610"><a name="p13636519105610"></a><a name="p13636519105610"></a>pdu</p>
</td>
<td class="cellrowborder" valign="top" width="23.27%" headers="mcps1.1.5.1.2 "><p id="p1762201610565"><a name="p1762201610565"></a><a name="p1762201610565"></a>Array&lt;number&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="7.8100000000000005%" headers="mcps1.1.5.1.3 "><p id="p018415405317"><a name="p018415405317"></a><a name="p018415405317"></a></p>
</td>
<td class="cellrowborder" valign="top" width="56.98%" headers="mcps1.1.5.1.4 "><p id="p18584153316316"><a name="p18584153316316"></a><a name="p18584153316316"></a>短信送达报告。</p>
</td>
</tr>
</tbody>
</table>
## SendSmsResult<a name="section13290132311575"></a>
短信发送结果。 短信发送结果。
<a name="table102901123175720"></a> | 参数名 | 值 | 说明 |
<table><thead align="left"><tr id="row13290023145720"><th class="cellrowborder" valign="top" width="43.47%" id="mcps1.1.4.1.1"><p id="p629042314578"><a name="p629042314578"></a><a name="p629042314578"></a>参数名</p> | ------------------------------------ | ---- | ------------------------------------------------------ |
</th> | SEND_SMS_SUCCESS | 0 | 发送短信成功。 |
<th class="cellrowborder" valign="top" width="9.51%" id="mcps1.1.4.1.2"><p id="p16291323135715"><a name="p16291323135715"></a><a name="p16291323135715"></a></p> | SEND_SMS_FAILURE_UNKNOWN | 1 | 发送短信失败,原因未知。 |
</th> | SEND_SMS_FAILURE_RADIO_OFF | 2 | 发送短信失败,原因为调制解调器关机。 |
<th class="cellrowborder" valign="top" width="47.02%" id="mcps1.1.4.1.3"><p id="p62916234577"><a name="p62916234577"></a><a name="p62916234577"></a>说明</p> | SEND_SMS_FAILURE_SERVICE_UNAVAILABLE | 3 | 发送短信失败,原因为网络不可用、不支持发送或接收短信。 |
</th>
</tr>
</thead>
<tbody><tr id="row12911223125718"><td class="cellrowborder" valign="top" width="43.47%" headers="mcps1.1.4.1.1 "><p id="p59203610580"><a name="p59203610580"></a><a name="p59203610580"></a>SEND_SMS_SUCCESS</p>
</td>
<td class="cellrowborder" valign="top" width="9.51%" headers="mcps1.1.4.1.2 "><p id="p1529172310579"><a name="p1529172310579"></a><a name="p1529172310579"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="47.02%" headers="mcps1.1.4.1.3 "><p id="p1329122335715"><a name="p1329122335715"></a><a name="p1329122335715"></a>发送短信成功。</p>
</td>
</tr>
<tr id="row458123655717"><td class="cellrowborder" valign="top" width="43.47%" headers="mcps1.1.4.1.1 "><p id="p478263820580"><a name="p478263820580"></a><a name="p478263820580"></a>SEND_SMS_FAILURE_UNKNOWN</p>
</td>
<td class="cellrowborder" valign="top" width="9.51%" headers="mcps1.1.4.1.2 "><p id="p458223645713"><a name="p458223645713"></a><a name="p458223645713"></a>1</p>
</td>
<td class="cellrowborder" valign="top" width="47.02%" headers="mcps1.1.4.1.3 "><p id="p558253614573"><a name="p558253614573"></a><a name="p558253614573"></a>发送短信失败,原因未知。</p>
</td>
</tr>
<tr id="row2045810344577"><td class="cellrowborder" valign="top" width="43.47%" headers="mcps1.1.4.1.1 "><p id="p13459184185812"><a name="p13459184185812"></a><a name="p13459184185812"></a>SEND_SMS_FAILURE_RADIO_OFF</p>
</td>
<td class="cellrowborder" valign="top" width="9.51%" headers="mcps1.1.4.1.2 "><p id="p164591834155714"><a name="p164591834155714"></a><a name="p164591834155714"></a>2</p>
</td>
<td class="cellrowborder" valign="top" width="47.02%" headers="mcps1.1.4.1.3 "><p id="p4459734125717"><a name="p4459734125717"></a><a name="p4459734125717"></a>发送短信失败,原因为调制解调器关机。</p>
</td>
</tr>
<tr id="row0114132105714"><td class="cellrowborder" valign="top" width="43.47%" headers="mcps1.1.4.1.1 "><p id="p1586519435581"><a name="p1586519435581"></a><a name="p1586519435581"></a>SEND_SMS_FAILURE_SERVICE_UNAVAILABLE</p>
</td>
<td class="cellrowborder" valign="top" width="9.51%" headers="mcps1.1.4.1.2 "><p id="p1111493218571"><a name="p1111493218571"></a><a name="p1111493218571"></a>3</p>
</td>
<td class="cellrowborder" valign="top" width="47.02%" headers="mcps1.1.4.1.3 "><p id="p159271549104318"><a name="p159271549104318"></a><a name="p159271549104318"></a>发送短信失败,原因为网络不可用、不支持发送或接收短信。</p>
</td>
</tr>
</tbody>
</table>
...@@ -80,9 +80,9 @@ ...@@ -80,9 +80,9 @@
- [grid-row](js-components-grid-row.md) - [grid-row](js-components-grid-row.md)
- [grid-col](js-components-grid-col.md) - [grid-col](js-components-grid-col.md)
- [svg组件](js-components-svg.md) - [svg组件](js-svg.md)
- [通用属性](js-components-svg-common-attributes.md) - [通用属性](js-components-svg-common-attributes.md)
- [svg](js-components-svg-0.md) - [svg](js-components-svg.md)
- [rect](js-components-svg-rect.md) - [rect](js-components-svg-rect.md)
- [circle](js-components-svg-circle.md) - [circle](js-components-svg-circle.md)
- [ellipse](js-components-svg-ellipse.md) - [ellipse](js-components-svg-ellipse.md)
......
# svg<a name="ZH-CN_TOPIC_0000001164577152"></a>
- [权限列表](#zh-cn_topic_0000001173164705_section11257113618419)
- [子组件](#zh-cn_topic_0000001173164705_section9288143101012)
- [属性](#zh-cn_topic_0000001173164705_section2907183951110)
- [示例](#zh-cn_topic_0000001173164705_section360556124815)
基础容器,主要作为svg的根节点使用,也可以在svg中嵌套使用。
>![](../../public_sys-resources/icon-note.gif) **说明:**
>从API Version 7 开始支持。
>约束条件:svg父组件或者svg组件需要定义宽高值,否则不进行绘制。
## 权限列表<a name="zh-cn_topic_0000001173164705_section11257113618419"></a>
## 子组件<a name="zh-cn_topic_0000001173164705_section9288143101012"></a>
支持svg、rect、circle、ellipse、path、line、polygon、polyline、text、animate、animateTransform。
## 属性<a name="zh-cn_topic_0000001173164705_section2907183951110"></a>
支持所列的Svg组件通用属性和以下表格的属性,设置的通用属性会传递给子组件。
<a name="zh-cn_topic_0000001173164705_table20633101642315"></a>
<table><thead align="left"><tr id="zh-cn_topic_0000001173164705_row663331618238"><th class="cellrowborder" valign="top" width="23.119999999999997%" id="mcps1.1.6.1.1"><p id="zh-cn_topic_0000001173164705_aaf1247770b244944bbcc9f28d9a6f00b"><a name="zh-cn_topic_0000001173164705_aaf1247770b244944bbcc9f28d9a6f00b"></a><a name="zh-cn_topic_0000001173164705_aaf1247770b244944bbcc9f28d9a6f00b"></a>名称</p>
</th>
<th class="cellrowborder" valign="top" width="23.119999999999997%" id="mcps1.1.6.1.2"><p id="zh-cn_topic_0000001173164705_a6efc3502761f4faf9630e484280f75b6"><a name="zh-cn_topic_0000001173164705_a6efc3502761f4faf9630e484280f75b6"></a><a name="zh-cn_topic_0000001173164705_a6efc3502761f4faf9630e484280f75b6"></a>类型</p>
</th>
<th class="cellrowborder" valign="top" width="10.48%" id="mcps1.1.6.1.3"><p id="zh-cn_topic_0000001173164705_a27a37273d9ad47569ddbcb8db985d302"><a name="zh-cn_topic_0000001173164705_a27a37273d9ad47569ddbcb8db985d302"></a><a name="zh-cn_topic_0000001173164705_a27a37273d9ad47569ddbcb8db985d302"></a>默认值</p>
</th>
<th class="cellrowborder" valign="top" width="7.5200000000000005%" id="mcps1.1.6.1.4"><p id="zh-cn_topic_0000001173164705_p824610360217"><a name="zh-cn_topic_0000001173164705_p824610360217"></a><a name="zh-cn_topic_0000001173164705_p824610360217"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="35.76%" id="mcps1.1.6.1.5"><p id="zh-cn_topic_0000001173164705_a2ff3361bfd3b420ba4967452d2ddd098"><a name="zh-cn_topic_0000001173164705_a2ff3361bfd3b420ba4967452d2ddd098"></a><a name="zh-cn_topic_0000001173164705_a2ff3361bfd3b420ba4967452d2ddd098"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="zh-cn_topic_0000001173164705_row36332165231"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="zh-cn_topic_0000001173164705_a83b6dd280109466fb015e64de1ef4df3"><a name="zh-cn_topic_0000001173164705_a83b6dd280109466fb015e64de1ef4df3"></a><a name="zh-cn_topic_0000001173164705_a83b6dd280109466fb015e64de1ef4df3"></a>id</p>
</td>
<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="zh-cn_topic_0000001173164705_abc38fa2b85854bc687af75eb17a00a4d"><a name="zh-cn_topic_0000001173164705_abc38fa2b85854bc687af75eb17a00a4d"></a><a name="zh-cn_topic_0000001173164705_abc38fa2b85854bc687af75eb17a00a4d"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="zh-cn_topic_0000001173164705_a8d12e4af905d4743a5ec9cd6018d2972"><a name="zh-cn_topic_0000001173164705_a8d12e4af905d4743a5ec9cd6018d2972"></a><a name="zh-cn_topic_0000001173164705_a8d12e4af905d4743a5ec9cd6018d2972"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="zh-cn_topic_0000001173164705_p42461736102118"><a name="zh-cn_topic_0000001173164705_p42461736102118"></a><a name="zh-cn_topic_0000001173164705_p42461736102118"></a></p>
</td>
<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="zh-cn_topic_0000001173164705_a1a1731af05554f119fa365748f276bb2"><a name="zh-cn_topic_0000001173164705_a1a1731af05554f119fa365748f276bb2"></a><a name="zh-cn_topic_0000001173164705_a1a1731af05554f119fa365748f276bb2"></a>组件的唯一标识。</p>
</td>
</tr>
<tr id="zh-cn_topic_0000001173164705_row13633131616239"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="zh-cn_topic_0000001173164705_a97f90720f6ef448fb3afbb3b1c13ae25"><a name="zh-cn_topic_0000001173164705_a97f90720f6ef448fb3afbb3b1c13ae25"></a><a name="zh-cn_topic_0000001173164705_a97f90720f6ef448fb3afbb3b1c13ae25"></a>width</p>
</td>
<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="zh-cn_topic_0000001173164705_a165d9cd14ccf4127b2e22cc6397680ac"><a name="zh-cn_topic_0000001173164705_a165d9cd14ccf4127b2e22cc6397680ac"></a><a name="zh-cn_topic_0000001173164705_a165d9cd14ccf4127b2e22cc6397680ac"></a>&lt;length&gt;|&lt;percentage&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="zh-cn_topic_0000001173164705_a836c513375114f6dac7693e0b4f33230"><a name="zh-cn_topic_0000001173164705_a836c513375114f6dac7693e0b4f33230"></a><a name="zh-cn_topic_0000001173164705_a836c513375114f6dac7693e0b4f33230"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="zh-cn_topic_0000001173164705_p17246836142119"><a name="zh-cn_topic_0000001173164705_p17246836142119"></a><a name="zh-cn_topic_0000001173164705_p17246836142119"></a></p>
</td>
<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="zh-cn_topic_0000001173164705_adbe7ecbee96b4f938b04a4b8d62791bf"><a name="zh-cn_topic_0000001173164705_adbe7ecbee96b4f938b04a4b8d62791bf"></a><a name="zh-cn_topic_0000001173164705_adbe7ecbee96b4f938b04a4b8d62791bf"></a>设置组件的宽度</p>
</td>
</tr>
<tr id="zh-cn_topic_0000001173164705_row10634131610230"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="zh-cn_topic_0000001173164705_a4a0bae0e1bb946d6bc7bf30e0a535343"><a name="zh-cn_topic_0000001173164705_a4a0bae0e1bb946d6bc7bf30e0a535343"></a><a name="zh-cn_topic_0000001173164705_a4a0bae0e1bb946d6bc7bf30e0a535343"></a>height</p>
</td>
<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="zh-cn_topic_0000001173164705_p1346327134215"><a name="zh-cn_topic_0000001173164705_p1346327134215"></a><a name="zh-cn_topic_0000001173164705_p1346327134215"></a>&lt;length&gt;|&lt;percentage&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="zh-cn_topic_0000001173164705_p14463117184214"><a name="zh-cn_topic_0000001173164705_p14463117184214"></a><a name="zh-cn_topic_0000001173164705_p14463117184214"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="zh-cn_topic_0000001173164705_p1646316754213"><a name="zh-cn_topic_0000001173164705_p1646316754213"></a><a name="zh-cn_topic_0000001173164705_p1646316754213"></a></p>
</td>
<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="zh-cn_topic_0000001173164705_p64638784216"><a name="zh-cn_topic_0000001173164705_p64638784216"></a><a name="zh-cn_topic_0000001173164705_p64638784216"></a>设置组件的高度</p>
</td>
</tr>
<tr id="zh-cn_topic_0000001173164705_row1634171618236"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="zh-cn_topic_0000001173164705_a3cf785e2a2a043268d168f58d59207c8"><a name="zh-cn_topic_0000001173164705_a3cf785e2a2a043268d168f58d59207c8"></a><a name="zh-cn_topic_0000001173164705_a3cf785e2a2a043268d168f58d59207c8"></a>x</p>
</td>
<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="zh-cn_topic_0000001173164705_aa9b258d23e1e425dbc2ffe8edbc91a42"><a name="zh-cn_topic_0000001173164705_aa9b258d23e1e425dbc2ffe8edbc91a42"></a><a name="zh-cn_topic_0000001173164705_aa9b258d23e1e425dbc2ffe8edbc91a42"></a>&lt;length&gt;|&lt;percentage&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="zh-cn_topic_0000001173164705_ac312df4f14444c98955ed055456848a7"><a name="zh-cn_topic_0000001173164705_ac312df4f14444c98955ed055456848a7"></a><a name="zh-cn_topic_0000001173164705_ac312df4f14444c98955ed055456848a7"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="zh-cn_topic_0000001173164705_p1624612362219"><a name="zh-cn_topic_0000001173164705_p1624612362219"></a><a name="zh-cn_topic_0000001173164705_p1624612362219"></a></p>
</td>
<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="zh-cn_topic_0000001173164705_p62121758111517"><a name="zh-cn_topic_0000001173164705_p62121758111517"></a><a name="zh-cn_topic_0000001173164705_p62121758111517"></a>设置当前svg的x轴坐标,根svg节点无效</p>
</td>
</tr>
<tr id="zh-cn_topic_0000001173164705_row1259531661611"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="zh-cn_topic_0000001173164705_p1359601671613"><a name="zh-cn_topic_0000001173164705_p1359601671613"></a><a name="zh-cn_topic_0000001173164705_p1359601671613"></a>y</p>
</td>
<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="zh-cn_topic_0000001173164705_p65967163165"><a name="zh-cn_topic_0000001173164705_p65967163165"></a><a name="zh-cn_topic_0000001173164705_p65967163165"></a>&lt;length&gt;|&lt;percentage&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="zh-cn_topic_0000001173164705_p1059610169169"><a name="zh-cn_topic_0000001173164705_p1059610169169"></a><a name="zh-cn_topic_0000001173164705_p1059610169169"></a></p>
</td>
<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="zh-cn_topic_0000001173164705_p125961416161611"><a name="zh-cn_topic_0000001173164705_p125961416161611"></a><a name="zh-cn_topic_0000001173164705_p125961416161611"></a>设置当前svg的y轴坐标,根svg节点无效</p>
</td>
</tr>
<tr id="zh-cn_topic_0000001173164705_row11404114510176"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="zh-cn_topic_0000001173164705_p11404124541714"><a name="zh-cn_topic_0000001173164705_p11404124541714"></a><a name="zh-cn_topic_0000001173164705_p11404124541714"></a>viewBox</p>
</td>
<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="zh-cn_topic_0000001173164705_p1640474511172"><a name="zh-cn_topic_0000001173164705_p1640474511172"></a><a name="zh-cn_topic_0000001173164705_p1640474511172"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="zh-cn_topic_0000001173164705_p740494521712"><a name="zh-cn_topic_0000001173164705_p740494521712"></a><a name="zh-cn_topic_0000001173164705_p740494521712"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="zh-cn_topic_0000001173164705_p04046452179"><a name="zh-cn_topic_0000001173164705_p04046452179"></a><a name="zh-cn_topic_0000001173164705_p04046452179"></a></p>
</td>
<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="zh-cn_topic_0000001173164705_p740434541717"><a name="zh-cn_topic_0000001173164705_p740434541717"></a><a name="zh-cn_topic_0000001173164705_p740434541717"></a>设置当前svg的视口。支持的格式为&lt;number number number number&gt;,4个参数分别表示min-x, min-y, width and height,viewBox的宽高和svg的宽高不一致,会以中心对齐进行缩放。</p>
</td>
</tr>
</tbody>
</table>
## 示例<a name="zh-cn_topic_0000001173164705_section360556124815"></a>
```
<!-- xxx.hml -->
<div class="container">
<svg width="400" height="400">
<svg width="200" height="200" viewBox="0 0 100 100">
<rect x="10" y="10" width="80" height="80" fill="#00FF00"></rect>
</svg>
<rect x="10" y="10" width="80" height="80" fill="red" ></rect>
<svg x="0" y="0" width="200" height="200" viewBox="0 0 200 200">
<rect x="10" y="10" width="80" height="80" fill="red"></rect>
</svg>
<svg x="0" y="0" width="200" height="200" viewBox="0 0 400 400">
<rect x="10" y="10" width="80" height="80" fill="blue"></rect>
</svg>
</svg>
</div>
```
![](figures/zh-cn_image_0000001173164789.png)
# svg组件<a name="ZH-CN_TOPIC_0000001164895644"></a> # svg<a name="ZH-CN_TOPIC_0000001164577152"></a>
- **[通用属性](js-components-svg-common-attributes.md)** - [权限列表](#zh-cn_topic_0000001173164705_section11257113618419)
- [子组件](#zh-cn_topic_0000001173164705_section9288143101012)
- **[svg](js-components-svg-0.md)** - [属性](#zh-cn_topic_0000001173164705_section2907183951110)
- [示例](#zh-cn_topic_0000001173164705_section360556124815)
- **[rect](js-components-svg-rect.md)**
基础容器,主要作为svg的根节点使用,也可以在svg中嵌套使用。
- **[circle](js-components-svg-circle.md)**
>![](../../public_sys-resources/icon-note.gif) **说明:**
- **[ellipse](js-components-svg-ellipse.md)** >从API Version 7 开始支持。
>约束条件:svg父组件或者svg组件需要定义宽高值,否则不进行绘制。
- **[path](js-components-svg-path.md)**
## 权限列表<a name="zh-cn_topic_0000001173164705_section11257113618419"></a>
- **[line](js-components-svg-line.md)**
- **[polyline](js-components-svg-polyline.md)**
## 子组件<a name="zh-cn_topic_0000001173164705_section9288143101012"></a>
- **[polygon](js-components-svg-polygon.md)**
支持svg、rect、circle、ellipse、path、line、polygon、polyline、text、animate、animateTransform。
- **[text](js-components-svg-text.md)**
## 属性<a name="zh-cn_topic_0000001173164705_section2907183951110"></a>
- **[tspan](js-components-svg-tspan.md)**
支持所列的Svg组件通用属性和以下表格的属性,设置的通用属性会传递给子组件。
- **[textPath](js-components-svg-textpath.md)**
<a name="zh-cn_topic_0000001173164705_table20633101642315"></a>
- **[animate](js-components-svg-animate.md)** <table><thead align="left"><tr id="zh-cn_topic_0000001173164705_row663331618238"><th class="cellrowborder" valign="top" width="23.119999999999997%" id="mcps1.1.6.1.1"><p id="zh-cn_topic_0000001173164705_aaf1247770b244944bbcc9f28d9a6f00b"><a name="zh-cn_topic_0000001173164705_aaf1247770b244944bbcc9f28d9a6f00b"></a><a name="zh-cn_topic_0000001173164705_aaf1247770b244944bbcc9f28d9a6f00b"></a>名称</p>
</th>
- **[animateMotion](js-components-svg-animate-motion.md)** <th class="cellrowborder" valign="top" width="23.119999999999997%" id="mcps1.1.6.1.2"><p id="zh-cn_topic_0000001173164705_a6efc3502761f4faf9630e484280f75b6"><a name="zh-cn_topic_0000001173164705_a6efc3502761f4faf9630e484280f75b6"></a><a name="zh-cn_topic_0000001173164705_a6efc3502761f4faf9630e484280f75b6"></a>类型</p>
</th>
- **[animateTransform](js-components-svg-animate-transform.md)** <th class="cellrowborder" valign="top" width="10.48%" id="mcps1.1.6.1.3"><p id="zh-cn_topic_0000001173164705_a27a37273d9ad47569ddbcb8db985d302"><a name="zh-cn_topic_0000001173164705_a27a37273d9ad47569ddbcb8db985d302"></a><a name="zh-cn_topic_0000001173164705_a27a37273d9ad47569ddbcb8db985d302"></a>默认值</p>
</th>
<th class="cellrowborder" valign="top" width="7.5200000000000005%" id="mcps1.1.6.1.4"><p id="zh-cn_topic_0000001173164705_p824610360217"><a name="zh-cn_topic_0000001173164705_p824610360217"></a><a name="zh-cn_topic_0000001173164705_p824610360217"></a>必填</p>
</th>
<th class="cellrowborder" valign="top" width="35.76%" id="mcps1.1.6.1.5"><p id="zh-cn_topic_0000001173164705_a2ff3361bfd3b420ba4967452d2ddd098"><a name="zh-cn_topic_0000001173164705_a2ff3361bfd3b420ba4967452d2ddd098"></a><a name="zh-cn_topic_0000001173164705_a2ff3361bfd3b420ba4967452d2ddd098"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="zh-cn_topic_0000001173164705_row36332165231"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="zh-cn_topic_0000001173164705_a83b6dd280109466fb015e64de1ef4df3"><a name="zh-cn_topic_0000001173164705_a83b6dd280109466fb015e64de1ef4df3"></a><a name="zh-cn_topic_0000001173164705_a83b6dd280109466fb015e64de1ef4df3"></a>id</p>
</td>
<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="zh-cn_topic_0000001173164705_abc38fa2b85854bc687af75eb17a00a4d"><a name="zh-cn_topic_0000001173164705_abc38fa2b85854bc687af75eb17a00a4d"></a><a name="zh-cn_topic_0000001173164705_abc38fa2b85854bc687af75eb17a00a4d"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="zh-cn_topic_0000001173164705_a8d12e4af905d4743a5ec9cd6018d2972"><a name="zh-cn_topic_0000001173164705_a8d12e4af905d4743a5ec9cd6018d2972"></a><a name="zh-cn_topic_0000001173164705_a8d12e4af905d4743a5ec9cd6018d2972"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="zh-cn_topic_0000001173164705_p42461736102118"><a name="zh-cn_topic_0000001173164705_p42461736102118"></a><a name="zh-cn_topic_0000001173164705_p42461736102118"></a></p>
</td>
<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="zh-cn_topic_0000001173164705_a1a1731af05554f119fa365748f276bb2"><a name="zh-cn_topic_0000001173164705_a1a1731af05554f119fa365748f276bb2"></a><a name="zh-cn_topic_0000001173164705_a1a1731af05554f119fa365748f276bb2"></a>组件的唯一标识。</p>
</td>
</tr>
<tr id="zh-cn_topic_0000001173164705_row13633131616239"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="zh-cn_topic_0000001173164705_a97f90720f6ef448fb3afbb3b1c13ae25"><a name="zh-cn_topic_0000001173164705_a97f90720f6ef448fb3afbb3b1c13ae25"></a><a name="zh-cn_topic_0000001173164705_a97f90720f6ef448fb3afbb3b1c13ae25"></a>width</p>
</td>
<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="zh-cn_topic_0000001173164705_a165d9cd14ccf4127b2e22cc6397680ac"><a name="zh-cn_topic_0000001173164705_a165d9cd14ccf4127b2e22cc6397680ac"></a><a name="zh-cn_topic_0000001173164705_a165d9cd14ccf4127b2e22cc6397680ac"></a>&lt;length&gt;|&lt;percentage&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="zh-cn_topic_0000001173164705_a836c513375114f6dac7693e0b4f33230"><a name="zh-cn_topic_0000001173164705_a836c513375114f6dac7693e0b4f33230"></a><a name="zh-cn_topic_0000001173164705_a836c513375114f6dac7693e0b4f33230"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="zh-cn_topic_0000001173164705_p17246836142119"><a name="zh-cn_topic_0000001173164705_p17246836142119"></a><a name="zh-cn_topic_0000001173164705_p17246836142119"></a></p>
</td>
<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="zh-cn_topic_0000001173164705_adbe7ecbee96b4f938b04a4b8d62791bf"><a name="zh-cn_topic_0000001173164705_adbe7ecbee96b4f938b04a4b8d62791bf"></a><a name="zh-cn_topic_0000001173164705_adbe7ecbee96b4f938b04a4b8d62791bf"></a>设置组件的宽度</p>
</td>
</tr>
<tr id="zh-cn_topic_0000001173164705_row10634131610230"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="zh-cn_topic_0000001173164705_a4a0bae0e1bb946d6bc7bf30e0a535343"><a name="zh-cn_topic_0000001173164705_a4a0bae0e1bb946d6bc7bf30e0a535343"></a><a name="zh-cn_topic_0000001173164705_a4a0bae0e1bb946d6bc7bf30e0a535343"></a>height</p>
</td>
<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="zh-cn_topic_0000001173164705_p1346327134215"><a name="zh-cn_topic_0000001173164705_p1346327134215"></a><a name="zh-cn_topic_0000001173164705_p1346327134215"></a>&lt;length&gt;|&lt;percentage&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="zh-cn_topic_0000001173164705_p14463117184214"><a name="zh-cn_topic_0000001173164705_p14463117184214"></a><a name="zh-cn_topic_0000001173164705_p14463117184214"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="zh-cn_topic_0000001173164705_p1646316754213"><a name="zh-cn_topic_0000001173164705_p1646316754213"></a><a name="zh-cn_topic_0000001173164705_p1646316754213"></a></p>
</td>
<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="zh-cn_topic_0000001173164705_p64638784216"><a name="zh-cn_topic_0000001173164705_p64638784216"></a><a name="zh-cn_topic_0000001173164705_p64638784216"></a>设置组件的高度</p>
</td>
</tr>
<tr id="zh-cn_topic_0000001173164705_row1634171618236"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="zh-cn_topic_0000001173164705_a3cf785e2a2a043268d168f58d59207c8"><a name="zh-cn_topic_0000001173164705_a3cf785e2a2a043268d168f58d59207c8"></a><a name="zh-cn_topic_0000001173164705_a3cf785e2a2a043268d168f58d59207c8"></a>x</p>
</td>
<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="zh-cn_topic_0000001173164705_aa9b258d23e1e425dbc2ffe8edbc91a42"><a name="zh-cn_topic_0000001173164705_aa9b258d23e1e425dbc2ffe8edbc91a42"></a><a name="zh-cn_topic_0000001173164705_aa9b258d23e1e425dbc2ffe8edbc91a42"></a>&lt;length&gt;|&lt;percentage&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="zh-cn_topic_0000001173164705_ac312df4f14444c98955ed055456848a7"><a name="zh-cn_topic_0000001173164705_ac312df4f14444c98955ed055456848a7"></a><a name="zh-cn_topic_0000001173164705_ac312df4f14444c98955ed055456848a7"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="zh-cn_topic_0000001173164705_p1624612362219"><a name="zh-cn_topic_0000001173164705_p1624612362219"></a><a name="zh-cn_topic_0000001173164705_p1624612362219"></a></p>
</td>
<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="zh-cn_topic_0000001173164705_p62121758111517"><a name="zh-cn_topic_0000001173164705_p62121758111517"></a><a name="zh-cn_topic_0000001173164705_p62121758111517"></a>设置当前svg的x轴坐标,根svg节点无效</p>
</td>
</tr>
<tr id="zh-cn_topic_0000001173164705_row1259531661611"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="zh-cn_topic_0000001173164705_p1359601671613"><a name="zh-cn_topic_0000001173164705_p1359601671613"></a><a name="zh-cn_topic_0000001173164705_p1359601671613"></a>y</p>
</td>
<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="zh-cn_topic_0000001173164705_p65967163165"><a name="zh-cn_topic_0000001173164705_p65967163165"></a><a name="zh-cn_topic_0000001173164705_p65967163165"></a>&lt;length&gt;|&lt;percentage&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="zh-cn_topic_0000001173164705_p1059610169169"><a name="zh-cn_topic_0000001173164705_p1059610169169"></a><a name="zh-cn_topic_0000001173164705_p1059610169169"></a></p>
</td>
<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="zh-cn_topic_0000001173164705_p125961416161611"><a name="zh-cn_topic_0000001173164705_p125961416161611"></a><a name="zh-cn_topic_0000001173164705_p125961416161611"></a>设置当前svg的y轴坐标,根svg节点无效</p>
</td>
</tr>
<tr id="zh-cn_topic_0000001173164705_row11404114510176"><td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.1 "><p id="zh-cn_topic_0000001173164705_p11404124541714"><a name="zh-cn_topic_0000001173164705_p11404124541714"></a><a name="zh-cn_topic_0000001173164705_p11404124541714"></a>viewBox</p>
</td>
<td class="cellrowborder" valign="top" width="23.119999999999997%" headers="mcps1.1.6.1.2 "><p id="zh-cn_topic_0000001173164705_p1640474511172"><a name="zh-cn_topic_0000001173164705_p1640474511172"></a><a name="zh-cn_topic_0000001173164705_p1640474511172"></a>string</p>
</td>
<td class="cellrowborder" valign="top" width="10.48%" headers="mcps1.1.6.1.3 "><p id="zh-cn_topic_0000001173164705_p740494521712"><a name="zh-cn_topic_0000001173164705_p740494521712"></a><a name="zh-cn_topic_0000001173164705_p740494521712"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.6.1.4 "><p id="zh-cn_topic_0000001173164705_p04046452179"><a name="zh-cn_topic_0000001173164705_p04046452179"></a><a name="zh-cn_topic_0000001173164705_p04046452179"></a></p>
</td>
<td class="cellrowborder" valign="top" width="35.76%" headers="mcps1.1.6.1.5 "><p id="zh-cn_topic_0000001173164705_p740434541717"><a name="zh-cn_topic_0000001173164705_p740434541717"></a><a name="zh-cn_topic_0000001173164705_p740434541717"></a>设置当前svg的视口。支持的格式为&lt;number number number number&gt;,4个参数分别表示min-x, min-y, width and height,viewBox的宽高和svg的宽高不一致,会以中心对齐进行缩放。</p>
</td>
</tr>
</tbody>
</table>
## 示例<a name="zh-cn_topic_0000001173164705_section360556124815"></a>
```
<!-- xxx.hml -->
<div class="container">
<svg width="400" height="400">
<svg width="200" height="200" viewBox="0 0 100 100">
<rect x="10" y="10" width="80" height="80" fill="#00FF00"></rect>
</svg>
<rect x="10" y="10" width="80" height="80" fill="red" ></rect>
<svg x="0" y="0" width="200" height="200" viewBox="0 0 200 200">
<rect x="10" y="10" width="80" height="80" fill="red"></rect>
</svg>
<svg x="0" y="0" width="200" height="200" viewBox="0 0 400 400">
<rect x="10" y="10" width="80" height="80" fill="blue"></rect>
</svg>
</svg>
</div>
```
![](figures/zh-cn_image_0000001173164789.png)
# svg组件<a name="ZH-CN_TOPIC_0000001164895644"></a>
- **[通用属性](js-components-svg-common-attributes.md)**
- **[svg](js-components-svg.md)**
- **[rect](js-components-svg-rect.md)**
- **[circle](js-components-svg-circle.md)**
- **[ellipse](js-components-svg-ellipse.md)**
- **[path](js-components-svg-path.md)**
- **[line](js-components-svg-line.md)**
- **[polyline](js-components-svg-polyline.md)**
- **[polygon](js-components-svg-polygon.md)**
- **[text](js-components-svg-text.md)**
- **[tspan](js-components-svg-tspan.md)**
- **[textPath](js-components-svg-textpath.md)**
- **[animate](js-components-svg-animate.md)**
- **[animateMotion](js-components-svg-animate-motion.md)**
- **[animateTransform](js-components-svg-animate-transform.md)**
# 媒体 # 媒体
- [音频](audio.md) - 音频
- [音频开发概述](audio-overview.md) - [音频开发概述](audio-overview.md)
- [音频播放开发指导](audio-playback.md) - [音频播放开发指导](audio-playback.md)
- [音频管理开发指导](audio-management.md) - [音频管理开发指导](audio-management.md)
......
# 音频管理开发指导<a name="ZH-CN_TOPIC_0000001147178551"></a> # 音频管理开发指导
- [场景介绍](#section1269212236329) - [场景介绍](#场景介绍)
- [接口说明](#section5122103123215) - [接口说明](#接口说明)
- [开发步骤](#section1772415410138) - [开发步骤](#开发步骤)
## 场景介绍<a name="section1269212236329"></a> ## 场景介绍
音频管理的主要工作是音量调节与音量查询,以及输入/输出设备查询。 音频管理的主要工作是音量调节与音量查询,以及输入/输出设备查询。
## 接口说明<a name="section5122103123215"></a>
**表 1** audio的相关接口 ## 接口说明
<a name="table14861021152915"></a> **表1** audio的相关接口
<table><thead align="left"><tr id="row1586142112297"><th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.1"><p id="p12879217294"><a name="p12879217294"></a><a name="p12879217294"></a>接口名</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.2"><p id="p58716212291"><a name="p58716212291"></a><a name="p58716212291"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row188719211298"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p122859462311"><a name="p122859462311"></a><a name="p122859462311"></a>getAudioManager(): AudioManager</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p587321182911"><a name="p587321182911"></a><a name="p587321182911"></a>获得音频管理器。</p>
</td>
</tr>
<tr id="row118752119293"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p1387142192917"><a name="p1387142192917"></a><a name="p1387142192917"></a>AudioManager</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p78762192915"><a name="p78762192915"></a><a name="p78762192915"></a>音频管理器。具体参考表 音频管理相关的interface AudioManager。</p>
</td>
</tr>
<tr id="row3871321172918"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p118712212292"><a name="p118712212292"></a><a name="p118712212292"></a><a href="#table5223445184315">AudioDeviceDescriptor</a></p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p987182116295"><a name="p987182116295"></a><a name="p987182116295"></a>描述音频设备。</p>
</td>
</tr>
<tr id="row1987172162912"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p1287132152919"><a name="p1287132152919"></a><a name="p1287132152919"></a><a href="#table48202011451">AudioVolumeType</a></p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p1387221162913"><a name="p1387221162913"></a><a name="p1387221162913"></a>表示音频流类型的枚举。</p>
</td>
</tr>
<tr id="row487192117299"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p1287121122918"><a name="p1287121122918"></a><a name="p1287121122918"></a><a href="#table2959127489">DeviceFlag</a></p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p787102117299"><a name="p787102117299"></a><a name="p787102117299"></a>表示可获取的设备种类的枚举。</p>
</td>
</tr>
<tr id="row171261911173510"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p1412691112350"><a name="p1412691112350"></a><a name="p1412691112350"></a><a href="#table41106159499">DeviceRole</a></p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p012791116358"><a name="p012791116358"></a><a name="p012791116358"></a>表示设备角色的枚举。</p>
</td>
</tr>
<tr id="row6530511173512"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p9530181193513"><a name="p9530181193513"></a><a name="p9530181193513"></a><a href="#table1238810503496">DeviceType</a></p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p7530191117353"><a name="p7530191117353"></a><a name="p7530191117353"></a>表示设备类型的枚举。</p>
</td>
</tr>
</tbody>
</table>
**表 2** 音频管理相关的interface **AudioManager** | 接口名 | 描述 |
| -------- | -------- |
| getAudioManager():&nbsp;AudioManager | 获得音频管理器。 |
| AudioManager | 音频管理器。具体参考表&nbsp;音频管理相关的interface&nbsp;AudioManager。 |
| AudioDeviceDescriptor | 描述音频设备。 |
| AudioVolumeType | 表示音频流类型的枚举。 |
| DeviceFlag | 表示可获取的设备种类的枚举。 |
| DeviceRole | 表示设备角色的枚举。 |
| DeviceType | 表示设备类型的枚举。 |
<a name="table5183104292517"></a> **表2** 音频管理相关的interface **AudioManager**
<table><thead align="left"><tr id="row3183104212517"><th class="cellrowborder" valign="top" width="64.83%" id="mcps1.2.3.1.1"><p id="p950118362414"><a name="p950118362414"></a><a name="p950118362414"></a>接口名</p>
</th>
<th class="cellrowborder" valign="top" width="35.17%" id="mcps1.2.3.1.2"><p id="p125017361644"><a name="p125017361644"></a><a name="p125017361644"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row0634135815263"><td class="cellrowborder" valign="top" width="64.83%" headers="mcps1.2.3.1.1 "><p id="p102919146399"><a name="p102919146399"></a><a name="p102919146399"></a>setVolume(audioType: AudioVolumeType,volume: number,callback: AsyncCallback&lt;void&gt;): void</p>
</td>
<td class="cellrowborder" valign="top" width="35.17%" headers="mcps1.2.3.1.2 "><p id="p163555832612"><a name="p163555832612"></a><a name="p163555832612"></a>改变某个流的音量。</p>
</td>
</tr>
<tr id="row574419319279"><td class="cellrowborder" valign="top" width="64.83%" headers="mcps1.2.3.1.1 "><p id="p64791923153912"><a name="p64791923153912"></a><a name="p64791923153912"></a>setVolume(audioType: AudioVolumeType,volume: number): Promise&lt;void&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="35.17%" headers="mcps1.2.3.1.2 "><p id="p674443182715"><a name="p674443182715"></a><a name="p674443182715"></a>改变某个流的音量。</p>
</td>
</tr>
<tr id="row1348213114277"><td class="cellrowborder" valign="top" width="64.83%" headers="mcps1.2.3.1.1 "><p id="p1293542863917"><a name="p1293542863917"></a><a name="p1293542863917"></a>getVolume(audioType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void</p>
</td>
<td class="cellrowborder" valign="top" width="35.17%" headers="mcps1.2.3.1.2 "><p id="p8482201142715"><a name="p8482201142715"></a><a name="p8482201142715"></a>获得某个流的音量。</p>
</td>
</tr>
<tr id="row872195279"><td class="cellrowborder" valign="top" width="64.83%" headers="mcps1.2.3.1.1 "><p id="p1124013343392"><a name="p1124013343392"></a><a name="p1124013343392"></a>getVolume(audioType: AudioVolumeType): Promise&lt;number&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="35.17%" headers="mcps1.2.3.1.2 "><p id="p1273493271"><a name="p1273493271"></a><a name="p1273493271"></a>获得某个流的音量。</p>
</td>
</tr>
<tr id="row3300184416273"><td class="cellrowborder" valign="top" width="64.83%" headers="mcps1.2.3.1.1 "><p id="p14484174015396"><a name="p14484174015396"></a><a name="p14484174015396"></a>getMinVolume(audioType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void</p>
</td>
<td class="cellrowborder" valign="top" width="35.17%" headers="mcps1.2.3.1.2 "><p id="p130194472719"><a name="p130194472719"></a><a name="p130194472719"></a>获得某个流的最小音量。</p>
</td>
</tr>
<tr id="row747314483273"><td class="cellrowborder" valign="top" width="64.83%" headers="mcps1.2.3.1.1 "><p id="p88551509397"><a name="p88551509397"></a><a name="p88551509397"></a>getMinVolume(audioType: AudioVolumeType): Promise&lt;number&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="35.17%" headers="mcps1.2.3.1.2 "><p id="p1747464810273"><a name="p1747464810273"></a><a name="p1747464810273"></a>获得某个流的最小音量。</p>
</td>
</tr>
<tr id="row9417164614274"><td class="cellrowborder" valign="top" width="64.83%" headers="mcps1.2.3.1.1 "><p id="p147247575391"><a name="p147247575391"></a><a name="p147247575391"></a>getMaxVolume(audioType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void</p>
</td>
<td class="cellrowborder" valign="top" width="35.17%" headers="mcps1.2.3.1.2 "><p id="p1441884632714"><a name="p1441884632714"></a><a name="p1441884632714"></a>获得某个流的最大音量。</p>
</td>
</tr>
<tr id="row199921350162711"><td class="cellrowborder" valign="top" width="64.83%" headers="mcps1.2.3.1.1 "><p id="p191994474013"><a name="p191994474013"></a><a name="p191994474013"></a>getMaxVolume(audioType: AudioVolumeType): Promise&lt;number&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="35.17%" headers="mcps1.2.3.1.2 "><p id="p1999235072718"><a name="p1999235072718"></a><a name="p1999235072718"></a>获得某个流的最大音量。</p>
</td>
</tr>
<tr id="row182815717273"><td class="cellrowborder" valign="top" width="64.83%" headers="mcps1.2.3.1.1 "><p id="p10833698408"><a name="p10833698408"></a><a name="p10833698408"></a>getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback&lt;AudioDeviceDescriptors&gt;): void</p>
</td>
<td class="cellrowborder" valign="top" width="35.17%" headers="mcps1.2.3.1.2 "><p id="p112818572270"><a name="p112818572270"></a><a name="p112818572270"></a>获得设备列表。</p>
</td>
</tr>
<tr id="row1982485992714"><td class="cellrowborder" valign="top" width="64.83%" headers="mcps1.2.3.1.1 "><p id="p1242861714408"><a name="p1242861714408"></a><a name="p1242861714408"></a>getDevices(deviceFlag: DeviceFlag): Promise&lt;AudioDeviceDescriptors&gt;</p>
</td>
<td class="cellrowborder" valign="top" width="35.17%" headers="mcps1.2.3.1.2 "><p id="p16825195911278"><a name="p16825195911278"></a><a name="p16825195911278"></a>获得设备列表。</p>
</td>
</tr>
</tbody>
</table>
**表 3** 表示音频设备的interface AudioDeviceDescriptor | 接口名 | 描述 |
| -------- | -------- |
| setVolume(audioType:&nbsp;AudioVolumeType,volume:&nbsp;number,callback:&nbsp;AsyncCallback&lt;void&gt;):&nbsp;void | 改变某个流的音量。 |
| setVolume(audioType:&nbsp;AudioVolumeType,volume:&nbsp;number):&nbsp;Promise&lt;void&gt; | 改变某个流的音量。 |
| getVolume(audioType:&nbsp;AudioVolumeType,&nbsp;callback:&nbsp;AsyncCallback&lt;number&gt;):&nbsp;void | 获得某个流的音量。 |
| getVolume(audioType:&nbsp;AudioVolumeType):&nbsp;Promise&lt;number&gt; | 获得某个流的音量。 |
| getMinVolume(audioType:&nbsp;AudioVolumeType,&nbsp;callback:&nbsp;AsyncCallback&lt;number&gt;):&nbsp;void | 获得某个流的最小音量。 |
| getMinVolume(audioType:&nbsp;AudioVolumeType):&nbsp;Promise&lt;number&gt; | 获得某个流的最小音量。 |
| getMaxVolume(audioType:&nbsp;AudioVolumeType,&nbsp;callback:&nbsp;AsyncCallback&lt;number&gt;):&nbsp;void | 获得某个流的最大音量。 |
| getMaxVolume(audioType:&nbsp;AudioVolumeType):&nbsp;Promise&lt;number&gt; | 获得某个流的最大音量。 |
| getDevices(deviceFlag:&nbsp;DeviceFlag,&nbsp;callback:&nbsp;AsyncCallback&lt;AudioDeviceDescriptors&gt;):&nbsp;void | 获得设备列表。 |
| getDevices(deviceFlag:&nbsp;DeviceFlag):&nbsp;Promise&lt;AudioDeviceDescriptors&gt; | 获得设备列表。 |
<a name="table5223445184315"></a> **表3** 表示音频设备的interface **AudioDeviceDescriptor**
<table><thead align="left"><tr id="row72237455433"><th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.1"><p id="p82931051124313"><a name="p82931051124313"></a><a name="p82931051124313"></a>属性</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.2"><p id="p1229365113434"><a name="p1229365113434"></a><a name="p1229365113434"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row3223745114317"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p7416236174410"><a name="p7416236174410"></a><a name="p7416236174410"></a>deviceRole: DeviceRole</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p16223104511433"><a name="p16223104511433"></a><a name="p16223104511433"></a>设备角色。</p>
</td>
</tr>
<tr id="row6223194516430"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p622374516437"><a name="p622374516437"></a><a name="p622374516437"></a>deviceType: DeviceType</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p172237458430"><a name="p172237458430"></a><a name="p172237458430"></a>设备类型。</p>
</td>
</tr>
</tbody>
</table>
**表 4** 表示音频流类型的枚举AudioVolumeType | 属性 | 描述 |
| -------- | -------- |
| deviceRole:&nbsp;DeviceRole | 设备角色。 |
| deviceType:&nbsp;DeviceType | 设备类型。 |
<a name="table48202011451"></a> **表4** 表示音频流类型的枚举**AudioVolumeType**
<table><thead align="left"><tr id="row7872094512"><th class="cellrowborder" valign="top" width="31.45%" id="mcps1.2.3.1.1"><p id="p3372527184510"><a name="p3372527184510"></a><a name="p3372527184510"></a>枚举值</p>
</th>
<th class="cellrowborder" valign="top" width="68.55%" id="mcps1.2.3.1.2"><p id="p1737222710450"><a name="p1737222710450"></a><a name="p1737222710450"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row188162012454"><td class="cellrowborder" valign="top" width="31.45%" headers="mcps1.2.3.1.1 "><p id="p764215288462"><a name="p764215288462"></a><a name="p764215288462"></a>MEDIA = 1</p>
</td>
<td class="cellrowborder" valign="top" width="68.55%" headers="mcps1.2.3.1.2 "><p id="p1596200459"><a name="p1596200459"></a><a name="p1596200459"></a>媒体声音。</p>
</td>
</tr>
<tr id="row1288915367468"><td class="cellrowborder" valign="top" width="31.45%" headers="mcps1.2.3.1.1 "><p id="p51611346194614"><a name="p51611346194614"></a><a name="p51611346194614"></a>RINGTONE = 2</p>
</td>
<td class="cellrowborder" valign="top" width="68.55%" headers="mcps1.2.3.1.2 "><p id="p9333131144712"><a name="p9333131144712"></a><a name="p9333131144712"></a>铃声。</p>
</td>
</tr>
</tbody>
</table>
**表 5** 表示可获取的设备种类的枚举DeviceFlag | 枚举值 | 描述 |
| -------- | -------- |
| MEDIA&nbsp;=&nbsp;1 | 媒体声音。 |
| RINGTONE&nbsp;=&nbsp;2 | 铃声。 |
<a name="table2959127489"></a> **表5** 表示可获取的设备种类的枚举**DeviceFlag**
<table><thead align="left"><tr id="row0959122483"><th class="cellrowborder" valign="top" width="31.56%" id="mcps1.2.3.1.1"><p id="p10301718485"><a name="p10301718485"></a><a name="p10301718485"></a>枚举值</p>
</th>
<th class="cellrowborder" valign="top" width="68.44%" id="mcps1.2.3.1.2"><p id="p8314178482"><a name="p8314178482"></a><a name="p8314178482"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row7967128484"><td class="cellrowborder" valign="top" width="31.56%" headers="mcps1.2.3.1.1 "><p id="p149631217480"><a name="p149631217480"></a><a name="p149631217480"></a>OUTPUT_DEVICES_FLAG = 1</p>
</td>
<td class="cellrowborder" valign="top" width="68.44%" headers="mcps1.2.3.1.2 "><p id="p119613126489"><a name="p119613126489"></a><a name="p119613126489"></a>输出设备。</p>
</td>
</tr>
<tr id="row169691220485"><td class="cellrowborder" valign="top" width="31.56%" headers="mcps1.2.3.1.1 "><p id="p1796201204814"><a name="p1796201204814"></a><a name="p1796201204814"></a>INPUT_DEVICES_FLAG = 2</p>
</td>
<td class="cellrowborder" valign="top" width="68.44%" headers="mcps1.2.3.1.2 "><p id="p796181254810"><a name="p796181254810"></a><a name="p796181254810"></a>输入设备。</p>
</td>
</tr>
<tr id="row1696812154817"><td class="cellrowborder" valign="top" width="31.56%" headers="mcps1.2.3.1.1 "><p id="p396191218482"><a name="p396191218482"></a><a name="p396191218482"></a>ALL_DEVICES_FLAG = 3</p>
</td>
<td class="cellrowborder" valign="top" width="68.44%" headers="mcps1.2.3.1.2 "><p id="p29612124485"><a name="p29612124485"></a><a name="p29612124485"></a>所有设备。</p>
</td>
</tr>
</tbody>
</table>
**表 6** 表示设备角色的枚举DeviceRole | 枚举值 | 描述 |
| -------- | -------- |
| OUTPUT_DEVICES_FLAG&nbsp;=&nbsp;1 | 输出设备。 |
| INPUT_DEVICES_FLAG&nbsp;=&nbsp;2 | 输入设备。 |
| ALL_DEVICES_FLAG&nbsp;=&nbsp;3 | 所有设备。 |
<a name="table41106159499"></a> **表6** 表示设备角色的枚举**DeviceRole**
<table><thead align="left"><tr id="row1811011515495"><th class="cellrowborder" valign="top" width="32.08%" id="mcps1.2.3.1.1"><p id="p2090221774914"><a name="p2090221774914"></a><a name="p2090221774914"></a>枚举值</p>
</th>
<th class="cellrowborder" valign="top" width="67.92%" id="mcps1.2.3.1.2"><p id="p99029172498"><a name="p99029172498"></a><a name="p99029172498"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1611031534915"><td class="cellrowborder" valign="top" width="32.08%" headers="mcps1.2.3.1.1 "><p id="p711111150497"><a name="p711111150497"></a><a name="p711111150497"></a>INPUT_DEVICE = 1</p>
</td>
<td class="cellrowborder" valign="top" width="67.92%" headers="mcps1.2.3.1.2 "><p id="p81111715114914"><a name="p81111715114914"></a><a name="p81111715114914"></a>输入设备。</p>
</td>
</tr>
<tr id="row19111171574916"><td class="cellrowborder" valign="top" width="32.08%" headers="mcps1.2.3.1.1 "><p id="p111112153492"><a name="p111112153492"></a><a name="p111112153492"></a>OUTPUT_DEVICE = 2</p>
</td>
<td class="cellrowborder" valign="top" width="67.92%" headers="mcps1.2.3.1.2 "><p id="p9111141504916"><a name="p9111141504916"></a><a name="p9111141504916"></a>输出设备。</p>
</td>
</tr>
</tbody>
</table>
**表 7** 表示设备类型的枚举DeviceType | 枚举值 | 描述 |
| -------- | -------- |
| INPUT_DEVICE&nbsp;=&nbsp;1 | 输入设备。 |
| OUTPUT_DEVICE&nbsp;=&nbsp;2 | 输出设备。 |
<a name="table1238810503496"></a> **表7** 表示设备类型的枚举**DeviceType**
<table><thead align="left"><tr id="row1738810504498"><th class="cellrowborder" valign="top" width="32.17%" id="mcps1.2.3.1.1"><p id="p973775318495"><a name="p973775318495"></a><a name="p973775318495"></a>枚举值</p>
</th>
<th class="cellrowborder" valign="top" width="67.83%" id="mcps1.2.3.1.2"><p id="p17737253174912"><a name="p17737253174912"></a><a name="p17737253174912"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row2388155012491"><td class="cellrowborder" valign="top" width="32.17%" headers="mcps1.2.3.1.1 "><p id="p2038925064917"><a name="p2038925064917"></a><a name="p2038925064917"></a>INVALID = 0</p>
</td>
<td class="cellrowborder" valign="top" width="67.83%" headers="mcps1.2.3.1.2 "><p id="p17389145016497"><a name="p17389145016497"></a><a name="p17389145016497"></a>无效。</p>
</td>
</tr>
<tr id="row938915016493"><td class="cellrowborder" valign="top" width="32.17%" headers="mcps1.2.3.1.1 "><p id="p538925044916"><a name="p538925044916"></a><a name="p538925044916"></a>SPEAKER = 1</p>
</td>
<td class="cellrowborder" valign="top" width="67.83%" headers="mcps1.2.3.1.2 "><p id="p16724165865017"><a name="p16724165865017"></a><a name="p16724165865017"></a>扬声器。</p>
</td>
</tr>
<tr id="row12389105084916"><td class="cellrowborder" valign="top" width="32.17%" headers="mcps1.2.3.1.1 "><p id="p538914502497"><a name="p538914502497"></a><a name="p538914502497"></a>WIRED_HEADSET = 2</p>
</td>
<td class="cellrowborder" valign="top" width="67.83%" headers="mcps1.2.3.1.2 "><p id="p63891850144911"><a name="p63891850144911"></a><a name="p63891850144911"></a>有线耳机。</p>
</td>
</tr>
<tr id="row2389205074915"><td class="cellrowborder" valign="top" width="32.17%" headers="mcps1.2.3.1.1 "><p id="p10389175054919"><a name="p10389175054919"></a><a name="p10389175054919"></a>BLUETOOTH_SCO = 3</p>
</td>
<td class="cellrowborder" valign="top" width="67.83%" headers="mcps1.2.3.1.2 "><p id="p538905016496"><a name="p538905016496"></a><a name="p538905016496"></a>蓝牙设备。</p>
</td>
</tr>
<tr id="row83891502499"><td class="cellrowborder" valign="top" width="32.17%" headers="mcps1.2.3.1.1 "><p id="p1938975015494"><a name="p1938975015494"></a><a name="p1938975015494"></a>BLUETOOTH_A2DP = 4</p>
</td>
<td class="cellrowborder" valign="top" width="67.83%" headers="mcps1.2.3.1.2 "><p id="p193891550134912"><a name="p193891550134912"></a><a name="p193891550134912"></a>支持A2DP的蓝牙设备。</p>
</td>
</tr>
<tr id="row11389175014916"><td class="cellrowborder" valign="top" width="32.17%" headers="mcps1.2.3.1.1 "><p id="p1738955018497"><a name="p1738955018497"></a><a name="p1738955018497"></a>MIC = 5</p>
</td>
<td class="cellrowborder" valign="top" width="67.83%" headers="mcps1.2.3.1.2 "><p id="p73891250174914"><a name="p73891250174914"></a><a name="p73891250174914"></a>麦克风。</p>
</td>
</tr>
</tbody>
</table>
## 开发步骤<a name="section1772415410138"></a> | 枚举值 | 描述 |
| -------- | -------- |
| INVALID&nbsp;=&nbsp;0 | 无效。 |
| SPEAKER&nbsp;=&nbsp;1 | 扬声器。 |
| WIRED_HEADSET&nbsp;=&nbsp;2 | 有线耳机。 |
| BLUETOOTH_SCO&nbsp;=&nbsp;3 | 蓝牙设备。 |
| BLUETOOTH_A2DP&nbsp;=&nbsp;4 | 支持A2DP的蓝牙设备。 |
| MIC&nbsp;=&nbsp;5 | 麦克风。 |
1. 获取音频控制器。
## 开发步骤
1. 获取音频控制器。
``` ```
const audioManager = audio.getAudioManager(); const audioManager = audio.getAudioManager();
``` ```
2. 改变媒体流的声音。 2. 改变媒体流的声音。
``` ```
audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => { audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
if (err) { if (err) {
...@@ -273,5 +96,3 @@ ...@@ -273,5 +96,3 @@
console.log(`Media getVolume ${value}`); console.log(`Media getVolume ${value}`);
}); });
``` ```
# 音频开发概述<a name="ZH-CN_TOPIC_0000001147055469"></a> # 音频开发概述
- [基本概念](#section296512102281) - [基本概念](#基本概念)
OpenHarmony音频模块支持音频业务的开发,提供音频相关的功能,主要包括音频播放、音量管理等。 OpenHarmony音频模块支持音频业务的开发,提供音频相关的功能,主要包括音频播放、音量管理等。
>![](../public_sys-resources/icon-note.gif) **说明:**
>由于权限问题,此部分功能在标准系统暂不可用。
## 基本概念<a name="section296512102281"></a> ## 基本概念
- **采样**
- **采样**<br/>
采样是指将连续时域上的模拟信号按照一定的时间间隔采样,获取到离散时域上离散信号的过程。 采样是指将连续时域上的模拟信号按照一定的时间间隔采样,获取到离散时域上离散信号的过程。
- **采样率** - **采样率**<br/>
采样率为每秒从连续信号中提取并组成离散信号的采样次数,单位用赫兹(Hz)来表示。通常人耳能听到频率范围大约在20Hz~20kHz之间的声音。常用的音频采样频率有:8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz、96kHz、192kHz等。 采样率为每秒从连续信号中提取并组成离散信号的采样次数,单位用赫兹(Hz)来表示。通常人耳能听到频率范围大约在20Hz~20kHz之间的声音。常用的音频采样频率有:8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz、96kHz、192kHz等。
- **声道** - **声道**<br/>
声道是指声音在录制或播放时在不同空间位置采集或回放的相互独立的音频信号,所以声道数也就是声音录制时的音源数量或回放时相应的扬声器数量。 声道是指声音在录制或播放时在不同空间位置采集或回放的相互独立的音频信号,所以声道数也就是声音录制时的音源数量或回放时相应的扬声器数量。
- **音频帧** - **音频帧**<br/>
音频数据是流式的,本身没有明确的一帧帧的概念,在实际的应用中,为了音频算法处理/传输的方便,一般约定俗成取2.5ms~60ms为单位的数据量为一帧音频。这个时间被称之为“采样时间”,其长度没有特别的标准,它是根据编解码器和具体应用的需求来决定的。
音频数据是流式的,本身没有明确的一帧帧的概念,在实际的应用中,为了音频算法处理/传输的方便,一般约定俗成取2.5ms\~60ms为单位的数据量为一帧音频。这个时间被称之为“采样时间”,其长度没有特别的标准,它是根据编解码器和具体应用的需求来决定的。
- **PCM**
- **PCM**<br/>
PCM(Pulse Code Modulation),即脉冲编码调制,是一种将模拟信号数字化的方法,是将时间连续、取值连续的模拟信号转换成时间离散、抽样值离散的数字信号的过程。 PCM(Pulse Code Modulation),即脉冲编码调制,是一种将模拟信号数字化的方法,是将时间连续、取值连续的模拟信号转换成时间离散、抽样值离散的数字信号的过程。
# 音频播放开发指导<a name="ZH-CN_TOPIC_0000001100255784"></a> # 音频播放开发指导
- [场景介绍](#section910413166166) - [场景介绍](#场景介绍)
- [接口说明](#section1225204317126) - [接口说明](#接口说明)
## 场景介绍<a name="section910413166166"></a> ## 场景介绍
音频播放的主要工作是将音频数据转码为可听见的音频模拟信号并通过输出设备进行播放,同时对播放任务进行管理。 音频播放的主要工作是将音频数据转码为可听见的音频模拟信号并通过输出设备进行播放,同时对播放任务进行管理。
**图 1** 音频播放状态机<a name="fig19537218164010"></a> **图1** 音频播放状态机
![](figures/音频播放状态机.png "音频播放状态机") ![zh-cn_image_0000001182608857](figures/zh-cn_image_0000001182608857.png)
## 接口说明
**表1** media
| 接口名 | 描述 |
| -------- | -------- |
| media.createAudioPlayer() | 创建AudioPlayer实例。 |
| AudioPlayer | 提供音频播放相关功能,具体见表&nbsp;音频播放相关的interface&nbsp;AudioPlayer。 |
**表2** 音频播放相关的interface **AudioPlayer**
| 接口名 | 描述 |
| -------- | -------- |
| release() | 释放音频资源。 |
| play() | 开始播放音频源。 |
| pause() | 暂停播放。 |
| stop() | 停止播放。 |
| reset()<sup>7+</sup> | 重置播放音频源。 |
| setVolume(vol:&nbsp;number) | 改变音频播放音量 |
| seek(timeMs:&nbsp;number) | 改变播放位置。 |
| src:string | 音频播放的媒体URI。 |
| state:AudioState | 播放的状态属性。 |
| currentTime:number | 音频的当前播放位置。 |
| duration:number | 音频播放的时长。 |
| loop:boolean | 音频的循环播放属性。 |
| on('play',&nbsp;function&nbsp;callback) | 订阅音频播放开始事件。 |
| on('pause',&nbsp;function&nbsp;callback) | 订阅音频播放暂停事件。 |
| on('stop',&nbsp;function&nbsp;callback) | 订阅音频播放停止事件。 |
| on('reset',&nbsp;function&nbsp;callback) | 订阅音频播放重置事件。 |
| on('finish',function&nbsp;callback) | 订阅音频播放结束事件。 |
| on('error',&nbsp;function&nbsp;callback) | 订阅音频播放错误事件。 |
| on('dataload',&nbsp;function&nbsp;callback) | 订阅音频播放加载数据事件。 |
| on('volumeChange',&nbsp;function&nbsp;callback) | 订阅音频播放音量变化事件。 |
| on('timeUpdate',&nbsp;function&nbsp;callback) | 订阅音频播放进度改变事件。 |
## 接口说明<a name="section1225204317126"></a>
**表 1** media
<a name="table17619171017258"></a>
<table><thead align="left"><tr id="row9619111017256"><th class="cellrowborder" valign="top" width="42.29%" id="mcps1.2.3.1.1"><p id="p19739153111253"><a name="p19739153111253"></a><a name="p19739153111253"></a>接口名</p>
</th>
<th class="cellrowborder" valign="top" width="57.709999999999994%" id="mcps1.2.3.1.2"><p id="p761918101259"><a name="p761918101259"></a><a name="p761918101259"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row186191310102518"><td class="cellrowborder" valign="top" width="42.29%" headers="mcps1.2.3.1.1 "><p id="p152227722614"><a name="p152227722614"></a><a name="p152227722614"></a>media.createAudioPlayer()</p>
</td>
<td class="cellrowborder" valign="top" width="57.709999999999994%" headers="mcps1.2.3.1.2 "><p id="p11619510202511"><a name="p11619510202511"></a><a name="p11619510202511"></a>创建AudioPlayer实例。</p>
</td>
</tr>
<tr id="row78247183285"><td class="cellrowborder" valign="top" width="42.29%" headers="mcps1.2.3.1.1 "><p id="p78241186287"><a name="p78241186287"></a><a name="p78241186287"></a>AudioPlayer</p>
</td>
<td class="cellrowborder" valign="top" width="57.709999999999994%" headers="mcps1.2.3.1.2 "><p id="p1382410184281"><a name="p1382410184281"></a><a name="p1382410184281"></a>提供音频播放相关功能,具体见表 音频播放相关的interface AudioPlayer。</p>
</td>
</tr>
</tbody>
</table>
**表 2** 音频播放相关的interface **AudioPlayer**
<a name="table3407174718274"></a>
<table><thead align="left"><tr id="row640744712719"><th class="cellrowborder" valign="top" width="42.980000000000004%" id="mcps1.2.3.1.1"><p id="p1540794717271"><a name="p1540794717271"></a><a name="p1540794717271"></a>接口名</p>
</th>
<th class="cellrowborder" valign="top" width="57.02%" id="mcps1.2.3.1.2"><p id="p14407204712274"><a name="p14407204712274"></a><a name="p14407204712274"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row540714712272"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p174086470278"><a name="p174086470278"></a><a name="p174086470278"></a>release()</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p204082047172719"><a name="p204082047172719"></a><a name="p204082047172719"></a>释放音频资源。</p>
</td>
</tr>
<tr id="row12408104792716"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p640874762718"><a name="p640874762718"></a><a name="p640874762718"></a>play()</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p1740894712718"><a name="p1740894712718"></a><a name="p1740894712718"></a>开始播放音频源。</p>
</td>
</tr>
<tr id="row84081747182715"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p04081947172716"><a name="p04081947172716"></a><a name="p04081947172716"></a>pause()</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p164081547132711"><a name="p164081547132711"></a><a name="p164081547132711"></a>暂停播放。</p>
</td>
</tr>
<tr id="row184082047132717"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p74086479279"><a name="p74086479279"></a><a name="p74086479279"></a>stop()</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p1140814471274"><a name="p1140814471274"></a><a name="p1140814471274"></a>停止播放。</p>
</td>
</tr>
<tr id="row93063645415"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p230715618541"><a name="p230715618541"></a><a name="p230715618541"></a>reset()<sup id="sup15868135520538"><a name="sup15868135520538"></a><a name="sup15868135520538"></a><span>7+</span></sup></p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p530714615545"><a name="p530714615545"></a><a name="p530714615545"></a>重置播放音频源。</p>
</td>
</tr>
<tr id="row36221450105715"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p162210506572"><a name="p162210506572"></a><a name="p162210506572"></a>setVolume(vol: number)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p166221550165720"><a name="p166221550165720"></a><a name="p166221550165720"></a>改变音频播放音量</p>
</td>
</tr>
<tr id="row1240804752711"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p8408647172716"><a name="p8408647172716"></a><a name="p8408647172716"></a>seek(timeMs: number)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p440817478271"><a name="p440817478271"></a><a name="p440817478271"></a>改变播放位置。</p>
</td>
</tr>
<tr id="row5408194714279"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p144081547102712"><a name="p144081547102712"></a><a name="p144081547102712"></a>src:string</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p1040814782716"><a name="p1040814782716"></a><a name="p1040814782716"></a>音频播放的媒体URI。</p>
</td>
</tr>
<tr id="row155026127182"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p633012347"><a name="p633012347"></a><a name="p633012347"></a>state:AudioState</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p105031612141811"><a name="p105031612141811"></a><a name="p105031612141811"></a>播放的状态属性。</p>
</td>
</tr>
<tr id="row340854714273"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p16234263330"><a name="p16234263330"></a><a name="p16234263330"></a>currentTime:number</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p3409174762710"><a name="p3409174762710"></a><a name="p3409174762710"></a>音频的当前播放位置。</p>
</td>
</tr>
<tr id="row6409134710274"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p114091047162711"><a name="p114091047162711"></a><a name="p114091047162711"></a>duration:number</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p154091247132715"><a name="p154091247132715"></a><a name="p154091247132715"></a>音频播放的时长。</p>
</td>
</tr>
<tr id="row4409134772717"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p9681449141811"><a name="p9681449141811"></a><a name="p9681449141811"></a>loop:boolean</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p94091847102711"><a name="p94091847102711"></a><a name="p94091847102711"></a>音频的循环播放属性。</p>
</td>
</tr>
<tr id="row44091647192718"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p18937155862412"><a name="p18937155862412"></a><a name="p18937155862412"></a>on('play', function callback)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p13409164722717"><a name="p13409164722717"></a><a name="p13409164722717"></a>订阅音频播放开始事件。</p>
</td>
</tr>
<tr id="row12409154711272"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p124091474279"><a name="p124091474279"></a><a name="p124091474279"></a>on('pause', function callback)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p7409174714274"><a name="p7409174714274"></a><a name="p7409174714274"></a>订阅音频播放暂停事件。</p>
</td>
</tr>
<tr id="row040917477273"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p18981171411254"><a name="p18981171411254"></a><a name="p18981171411254"></a>on('stop', function callback)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p1409164772714"><a name="p1409164772714"></a><a name="p1409164772714"></a>订阅音频播放停止事件。</p>
</td>
</tr>
<tr id="row712184163016"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p1167517115311"><a name="p1167517115311"></a><a name="p1167517115311"></a>on('reset', function callback)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p1113134115301"><a name="p1113134115301"></a><a name="p1113134115301"></a>订阅音频播放重置事件。</p>
</td>
</tr>
<tr id="row11409747202711"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p189901420102514"><a name="p189901420102514"></a><a name="p189901420102514"></a>on('finish',function callback)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p8410124742713"><a name="p8410124742713"></a><a name="p8410124742713"></a>订阅音频播放结束事件。</p>
</td>
</tr>
<tr id="row64105474278"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p166588276253"><a name="p166588276253"></a><a name="p166588276253"></a>on('error', function callback)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p54101047102712"><a name="p54101047102712"></a><a name="p54101047102712"></a>订阅音频播放错误事件。</p>
</td>
</tr>
<tr id="row1410154715273"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p135217361257"><a name="p135217361257"></a><a name="p135217361257"></a>on('dataload', function callback)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p1541054719271"><a name="p1541054719271"></a><a name="p1541054719271"></a>订阅音频播放加载数据事件。</p>
</td>
</tr>
<tr id="row126521548145814"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p2652134812586"><a name="p2652134812586"></a><a name="p2652134812586"></a>on('volumeChange', function callback)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p116527483584"><a name="p116527483584"></a><a name="p116527483584"></a>订阅音频播放音量变化事件。</p>
</td>
</tr>
<tr id="row1410124732711"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p942310426254"><a name="p942310426254"></a><a name="p942310426254"></a>on('timeUpdate', function callback)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p18410144715271"><a name="p18410144715271"></a><a name="p18410144715271"></a>订阅音频播放进度改变事件。</p>
</td>
</tr>
</tbody>
</table>
1. 创建音频播放器。 1. 创建音频播放器。
``` ```
import media from '@ohos.multimedia.media'; import media from '@ohos.multimedia.media';
var player = media.createAudioPlayer(); var player = media.createAudioPlayer();
``` ```
2. 设置消息订阅事件。 2. 设置消息订阅事件。
``` ```
player.on('play', (err, action) => { player.on('play', (err, action) => {
if (err) { if (err) {
...@@ -230,11 +124,8 @@ ...@@ -230,11 +124,8 @@
``` ```
3. 启动播放。 3. 启动播放。
``` ```
var audioSourceMp3 = 'file://test.mp3'; var audioSourceMp3 = 'file://test.mp3';
player.src = audioSourceMp3; player.src = audioSourceMp3;
player.loop = true; player.loop = true;
``` ```
# 音频录制开发指导<a name="ZH-CN_TOPIC_0000001163844398"></a> # 音频录制开发指导
- [场景介绍](#section910413166166) - [场景介绍](#场景介绍)
- [接口说明](#section1225204317126) - [接口说明](#接口说明)
## 场景介绍<a name="section910413166166"></a> ## 场景介绍
音频录制的主要工作是将音频信号记录并保存下来,同时提供包括采样率、声道数、码率、编码格式、封装格式、文件路径等设置功能。 音频录制的主要工作是将音频信号记录并保存下来,同时提供包括采样率、声道数、码率、编码格式、封装格式、文件路径等设置功能。
## 接口说明<a name="section1225204317126"></a>
**表 1** media ## 接口说明
<a name="table17619171017258"></a> **表1** media
<table><thead align="left"><tr id="row9619111017256"><th class="cellrowborder" valign="top" width="42.29%" id="mcps1.2.3.1.1"><p id="p19739153111253"><a name="p19739153111253"></a><a name="p19739153111253"></a>接口名</p>
</th> | 接口名 | 描述 |
<th class="cellrowborder" valign="top" width="57.709999999999994%" id="mcps1.2.3.1.2"><p id="p761918101259"><a name="p761918101259"></a><a name="p761918101259"></a>描述</p> | -------- | -------- |
</th> | media.createAudioRecorder() | 创建AudioRecorder实例。 |
</tr> | AudioRecorder | 提供音频录制相关功能。 |
</thead> | AudioRecorderConfig | 提供音频录制相关参数设置。 |
<tbody><tr id="row186191310102518"><td class="cellrowborder" valign="top" width="42.29%" headers="mcps1.2.3.1.1 "><p id="p152227722614"><a name="p152227722614"></a><a name="p152227722614"></a>media.createAudioRecorder()</p>
</td> **表2** 音频录制相关的interface **AudioRecorder**
<td class="cellrowborder" valign="top" width="57.709999999999994%" headers="mcps1.2.3.1.2 "><p id="p11619510202511"><a name="p11619510202511"></a><a name="p11619510202511"></a>创建AudioRecorder实例。</p>
</td> | 接口名 | 描述 |
</tr> | -------- | -------- |
<tr id="row78247183285"><td class="cellrowborder" valign="top" width="42.29%" headers="mcps1.2.3.1.1 "><p id="p78241186287"><a name="p78241186287"></a><a name="p78241186287"></a><a href="#table3407174718274">AudioRecorder</a></p> | prepare(config:&nbsp;AudioRecorderConfig):&nbsp;void | 准备音频录制并设置参数。 |
</td> | start():&nbsp;void | 开始音频录制。 |
<td class="cellrowborder" valign="top" width="57.709999999999994%" headers="mcps1.2.3.1.2 "><p id="p1382410184281"><a name="p1382410184281"></a><a name="p1382410184281"></a>提供音频录制相关功能。</p> | pause():&nbsp;void | 暂停音频录制。(暂不支持) |
</td> | resume():&nbsp;void | 恢复音频录制。(暂不支持) |
</tr> | stop():&nbsp;void | 停止音频录制。 |
<tr id="row14556918192315"><td class="cellrowborder" valign="top" width="42.29%" headers="mcps1.2.3.1.1 "><p id="p355791892318"><a name="p355791892318"></a><a name="p355791892318"></a><a href="#table27151637152218">AudioRecorderConfig</a></p> | release():&nbsp;void | 释放音频录制资源。 |
</td> | reset():&nbsp;void | 重置音频录制。 |
<td class="cellrowborder" valign="top" width="57.709999999999994%" headers="mcps1.2.3.1.2 "><p id="p1855713186239"><a name="p1855713186239"></a><a name="p1855713186239"></a>提供音频录制相关参数设置。</p> | on('prepare',&nbsp;function&nbsp;callback) | 订阅音频录制准备事件。 |
</td> | on('start',&nbsp;function&nbsp;callback) | 订阅音频录制开始事件。 |
</tr> | on('pause',&nbsp;function&nbsp;callback) | 订阅音频录制暂停事件。 |
</tbody> | on('resume',&nbsp;function&nbsp;callback) | 订阅音频录制恢复事件。 |
</table> | on('stop',function&nbsp;callback) | 订阅音频录制结束事件。 |
| on('release',&nbsp;function&nbsp;callback) | 订阅音频录制释放资源事件。 |
**表 2** 音频录制相关的interface AudioRecorder | on('reset',&nbsp;function&nbsp;callback) | 订阅音频录制重置事件。 |
| on('error',&nbsp;function&nbsp;callback) | 订阅音频录制错误事件。 |
<a name="table3407174718274"></a>
<table><thead align="left"><tr id="row640744712719"><th class="cellrowborder" valign="top" width="42.980000000000004%" id="mcps1.2.3.1.1"><p id="p1540794717271"><a name="p1540794717271"></a><a name="p1540794717271"></a>接口名</p> **表3** 音频录制的相关参数的interface **AudioRecorderConfig**
</th>
<th class="cellrowborder" valign="top" width="57.02%" id="mcps1.2.3.1.2"><p id="p14407204712274"><a name="p14407204712274"></a><a name="p14407204712274"></a>描述</p> | 接口名 | 描述 |
</th> | -------- | -------- |
</tr> | audioEncoder?: AudioEncoder | 音频编码格式,默认值是AAC_LC。 |
</thead> | audioEncodeBitRate?:&nbsp;number | 音频编码的比特率,默认值为48000。 |
<tbody><tr id="row12408104792716"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p207548103229"><a name="p207548103229"></a><a name="p207548103229"></a>prepare(config: AudioRecorderConfig): void</p> | audioSampleRate?:&nbsp;number | 音频编码的采样率,默认值为48000。 |
</td> | numberOfChannels?:number | 音频的声道数,默认值为2。 |
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p45511713162216"><a name="p45511713162216"></a><a name="p45511713162216"></a>准备音频录制并设置参数。</p> | format?:&nbsp;AudioOutputFormat | 音频的输出格式,默认值是MPEG_4。 |
</td> | uri:&nbsp;string | 音频的输出路径。(file://path&nbsp;或者&nbsp;file://fd) |
</tr>
<tr id="row84081747182715"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p174086470278"><a name="p174086470278"></a><a name="p174086470278"></a>start(): void</p> **表4** AudioEncoder的相关参数的interface **AudioEncoder**
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p14552121332211"><a name="p14552121332211"></a><a name="p14552121332211"></a>开始音频录制。</p> | 接口名 | 描述 |
</td> | -------- | -------- |
</tr> | AAC_LC&nbsp;=&nbsp;3 | 表示AAC_LC编码格式。 |
<tr id="row184082047132717"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p675201017227"><a name="p675201017227"></a><a name="p675201017227"></a>pause(): void</p>
</td> **表5** 音频输出格式的相关参数的interface **AudioOutputFormat**
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p1854914138228"><a name="p1854914138228"></a><a name="p1854914138228"></a>暂停音频录制。(暂不支持)</p>
</td> | 接口名 | 描述 |
</tr> | -------- | -------- |
<tr id="row93063645415"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p1775111102227"><a name="p1775111102227"></a><a name="p1775111102227"></a>resume(): void</p> | MPEG_4&nbsp;=&nbsp;2 | 表示MPEG_4编码格式。 |
</td> | AAC_ADTS=&nbsp;6 | 表示AAC_ADTS编码格式。 |
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p14548313122218"><a name="p14548313122218"></a><a name="p14548313122218"></a>恢复音频录制。(暂不支持)</p>
</td>
</tr>
<tr id="row36221450105715"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p1575061019226"><a name="p1575061019226"></a><a name="p1575061019226"></a>stop(): void</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p154771342219"><a name="p154771342219"></a><a name="p154771342219"></a>停止音频录制。</p>
</td>
</tr>
<tr id="row1240804752711"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p137492010162214"><a name="p137492010162214"></a><a name="p137492010162214"></a>release(): void</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p854671312228"><a name="p854671312228"></a><a name="p854671312228"></a>释放音频录制资源。</p>
</td>
</tr>
<tr id="row5408194714279"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p974821019225"><a name="p974821019225"></a><a name="p974821019225"></a>reset(): void</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p1554551342219"><a name="p1554551342219"></a><a name="p1554551342219"></a>重置音频录制。</p>
</td>
</tr>
<tr id="row44091647192718"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p18937155862412"><a name="p18937155862412"></a><a name="p18937155862412"></a>on('prepare', function callback)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p13409164722717"><a name="p13409164722717"></a><a name="p13409164722717"></a>订阅音频录制准备事件。</p>
</td>
</tr>
<tr id="row12409154711272"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p124091474279"><a name="p124091474279"></a><a name="p124091474279"></a>on('start', function callback)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p7409174714274"><a name="p7409174714274"></a><a name="p7409174714274"></a>订阅音频录制开始事件。</p>
</td>
</tr>
<tr id="row040917477273"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p18981171411254"><a name="p18981171411254"></a><a name="p18981171411254"></a>on('pause', function callback)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p1409164772714"><a name="p1409164772714"></a><a name="p1409164772714"></a>订阅音频录制暂停事件。</p>
</td>
</tr>
<tr id="row712184163016"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p1167517115311"><a name="p1167517115311"></a><a name="p1167517115311"></a>on('resume', function callback)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p1113134115301"><a name="p1113134115301"></a><a name="p1113134115301"></a>订阅音频录制恢复事件。</p>
</td>
</tr>
<tr id="row11409747202711"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p189901420102514"><a name="p189901420102514"></a><a name="p189901420102514"></a>on('stop',function callback)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p8410124742713"><a name="p8410124742713"></a><a name="p8410124742713"></a>订阅音频录制结束事件。</p>
</td>
</tr>
<tr id="row64105474278"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p166588276253"><a name="p166588276253"></a><a name="p166588276253"></a>on('release', function callback)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p54101047102712"><a name="p54101047102712"></a><a name="p54101047102712"></a>订阅音频录制释放资源事件。</p>
</td>
</tr>
<tr id="row1410154715273"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p135217361257"><a name="p135217361257"></a><a name="p135217361257"></a>on('reset', function callback)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p1541054719271"><a name="p1541054719271"></a><a name="p1541054719271"></a>订阅音频录制重置事件。</p>
</td>
</tr>
<tr id="row126521548145814"><td class="cellrowborder" valign="top" width="42.980000000000004%" headers="mcps1.2.3.1.1 "><p id="p2652134812586"><a name="p2652134812586"></a><a name="p2652134812586"></a>on('error', function callback)</p>
</td>
<td class="cellrowborder" valign="top" width="57.02%" headers="mcps1.2.3.1.2 "><p id="p116527483584"><a name="p116527483584"></a><a name="p116527483584"></a>订阅音频录制错误事件。</p>
</td>
</tr>
</tbody>
</table>
**表 3** 音频录制的相关参数的interface AudioRecorderConfig
<a name="table27151637152218"></a>
<table><thead align="left"><tr id="row14715123712210"><th class="cellrowborder" valign="top" width="42.29%" id="mcps1.2.3.1.1"><p id="p6715123732219"><a name="p6715123732219"></a><a name="p6715123732219"></a>接口名</p>
</th>
<th class="cellrowborder" valign="top" width="57.709999999999994%" id="mcps1.2.3.1.2"><p id="p16715123712212"><a name="p16715123712212"></a><a name="p16715123712212"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row47151137112219"><td class="cellrowborder" valign="top" width="42.29%" headers="mcps1.2.3.1.1 "><p id="p1568214420266"><a name="p1568214420266"></a><a name="p1568214420266"></a>audioEncoder?: <a href="#table104591279272">AudioEncoder</a></p>
</td>
<td class="cellrowborder" valign="top" width="57.709999999999994%" headers="mcps1.2.3.1.2 "><p id="p17715173772211"><a name="p17715173772211"></a><a name="p17715173772211"></a>音频编码格式,默认值是AAC_LC。</p>
</td>
</tr>
<tr id="row67151337152214"><td class="cellrowborder" valign="top" width="42.29%" headers="mcps1.2.3.1.1 "><p id="p167591344132312"><a name="p167591344132312"></a><a name="p167591344132312"></a>audioEncodeBitRate?: number</p>
</td>
<td class="cellrowborder" valign="top" width="57.709999999999994%" headers="mcps1.2.3.1.2 "><p id="p20715537112211"><a name="p20715537112211"></a><a name="p20715537112211"></a>音频编码的比特率,默认值为48000。</p>
</td>
</tr>
<tr id="row16715637152212"><td class="cellrowborder" valign="top" width="42.29%" headers="mcps1.2.3.1.1 "><p id="p141241772714"><a name="p141241772714"></a><a name="p141241772714"></a>audioSampleRate?: number</p>
</td>
<td class="cellrowborder" valign="top" width="57.709999999999994%" headers="mcps1.2.3.1.2 "><p id="p15991111611271"><a name="p15991111611271"></a><a name="p15991111611271"></a>音频编码的采样率,默认值为48000。</p>
</td>
</tr>
<tr id="row1453682316356"><td class="cellrowborder" valign="top" width="42.29%" headers="mcps1.2.3.1.1 "><p id="p205375231352"><a name="p205375231352"></a><a name="p205375231352"></a>numberOfChannels?:number</p>
</td>
<td class="cellrowborder" valign="top" width="57.709999999999994%" headers="mcps1.2.3.1.2 "><p id="p7537102393512"><a name="p7537102393512"></a><a name="p7537102393512"></a>音频的声道数,默认值为2。</p>
</td>
</tr>
<tr id="row10719112912355"><td class="cellrowborder" valign="top" width="42.29%" headers="mcps1.2.3.1.1 "><p id="p16719132917355"><a name="p16719132917355"></a><a name="p16719132917355"></a>format?: <a href="#table585044112375">AudioOutputFormat</a></p>
</td>
<td class="cellrowborder" valign="top" width="57.709999999999994%" headers="mcps1.2.3.1.2 "><p id="p6719182923513"><a name="p6719182923513"></a><a name="p6719182923513"></a>音频的输出格式,默认值是MPEG_4。</p>
</td>
</tr>
<tr id="row0918827163516"><td class="cellrowborder" valign="top" width="42.29%" headers="mcps1.2.3.1.1 "><p id="p1991815270351"><a name="p1991815270351"></a><a name="p1991815270351"></a>uri: string</p>
</td>
<td class="cellrowborder" valign="top" width="57.709999999999994%" headers="mcps1.2.3.1.2 "><p id="p14918142711351"><a name="p14918142711351"></a><a name="p14918142711351"></a>音频的输出路径。(file://path 或者 file://fd)</p>
</td>
</tr>
</tbody>
</table>
**表 4** AudioEncoder的相关参数的interface AudioEncoder
<a name="table104591279272"></a>
<table><thead align="left"><tr id="row8459427122719"><th class="cellrowborder" valign="top" width="42.29%" id="mcps1.2.3.1.1"><p id="p124591927192720"><a name="p124591927192720"></a><a name="p124591927192720"></a>接口名</p>
</th>
<th class="cellrowborder" valign="top" width="57.709999999999994%" id="mcps1.2.3.1.2"><p id="p1459152720276"><a name="p1459152720276"></a><a name="p1459152720276"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row6467142013014"><td class="cellrowborder" valign="top" width="42.29%" headers="mcps1.2.3.1.1 "><p id="p5467152073014"><a name="p5467152073014"></a><a name="p5467152073014"></a>AAC_LC = 3</p>
</td>
<td class="cellrowborder" valign="top" width="57.709999999999994%" headers="mcps1.2.3.1.2 "><p id="p1468162093010"><a name="p1468162093010"></a><a name="p1468162093010"></a>表示AAC_LC编码格式。</p>
</td>
</tr>
</tbody>
</table>
**表 5** 音频输出格式的相关参数的interface AudioOutputFormat
<a name="table585044112375"></a>
<table><thead align="left"><tr id="row16850841183712"><th class="cellrowborder" valign="top" width="42.29%" id="mcps1.2.3.1.1"><p id="p785094123715"><a name="p785094123715"></a><a name="p785094123715"></a>接口名</p>
</th>
<th class="cellrowborder" valign="top" width="57.709999999999994%" id="mcps1.2.3.1.2"><p id="p158504412378"><a name="p158504412378"></a><a name="p158504412378"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row2085115412379"><td class="cellrowborder" valign="top" width="42.29%" headers="mcps1.2.3.1.1 "><p id="p1851641143711"><a name="p1851641143711"></a><a name="p1851641143711"></a>MPEG_4 = 2</p>
</td>
<td class="cellrowborder" valign="top" width="57.709999999999994%" headers="mcps1.2.3.1.2 "><p id="p385174163718"><a name="p385174163718"></a><a name="p385174163718"></a>表示MPEG_4编码格式。</p>
</td>
</tr>
<tr id="row485118415378"><td class="cellrowborder" valign="top" width="42.29%" headers="mcps1.2.3.1.1 "><p id="p13851241123719"><a name="p13851241123719"></a><a name="p13851241123719"></a>AAC_ADTS= 6</p>
</td>
<td class="cellrowborder" valign="top" width="57.709999999999994%" headers="mcps1.2.3.1.2 "><p id="p885118412377"><a name="p885118412377"></a><a name="p885118412377"></a>表示AAC_ADTS编码格式。</p>
</td>
</tr>
</tbody>
</table>
1. 创建音频录制器。 1. 创建音频录制器。
``` ```
import media from '@ohos.multimedia.media'; import media from '@ohos.multimedia.media';
var recorder = media.createAudioRecorder(); var recorder = media.createAudioRecorder();
``` ```
2. 准备音频录制参数。 2. 准备音频录制参数。
``` ```
let audioRecorderConfig = { let audioRecorderConfig = {
audioEncoder : AAC_LC , audioEncoder : AAC_LC ,
...@@ -226,7 +82,6 @@ ...@@ -226,7 +82,6 @@
``` ```
3. 设置消息订阅事件。 3. 设置消息订阅事件。
``` ```
recorder.on('prepare', () => { recorder.on('prepare', () => {
console.info('setCallback prepare() case callback is called'); console.info('setCallback prepare() case callback is called');
...@@ -263,5 +118,3 @@ ...@@ -263,5 +118,3 @@
recorder.reset(); recorder.reset();
}); });
``` ```
# 音频<a name="ZH-CN_TOPIC_0000001110946022"></a> # 音频
- **[音频开发概述](audio-overview.md)** - **[音频开发概述](audio-overview.md)**
...@@ -7,5 +8,3 @@ ...@@ -7,5 +8,3 @@
- **[音频管理开发指导](audio-management.md)** - **[音频管理开发指导](audio-management.md)**
- **[音频录制开发指导](audio-recorder.md)** - **[音频录制开发指导](audio-recorder.md)**
\ No newline at end of file
# 入门 # 入门
- [DevEco Studio(OpenHarmony)使用指南](deveco-studio-user-guide-for-openharmony.md) - DevEco Studio(OpenHarmony)使用指南
- [概述](deveco-studio-overview.md) - [概述](deveco-studio-overview.md)
- [版本变更说明](deveco-studio-release-notes.md) - [版本变更说明](deveco-studio-release-notes.md)
- [配置OpenHarmony SDK](configuring-openharmony-sdk.md) - [配置OpenHarmony SDK](configuring-openharmony-sdk.md)
- [创建OpenHarmony工程](create-openharmony-project.md) - 创建OpenHarmony工程
- [使用工程向导创建新工程](use-wizard-to-create-project.md) - [使用工程向导创建新工程](use-wizard-to-create-project.md)
- [通过导入Sample方式创建新工程](import-sample-to-create-project.md) - [通过导入Sample方式创建新工程](import-sample-to-create-project.md)
- [配置OpenHarmony应用签名信息](configuring-openharmony-app-signature.md) - [配置OpenHarmony应用签名信息](configuring-openharmony-app-signature.md)
- [安装运行OpenHarmony应用](installing-openharmony-app.md) - [安装运行OpenHarmony应用](installing-openharmony-app.md)
- [包结构说明](package-structure.md) - [包结构说明](package-structure.md)
- [快速入门](start.md) - 快速入门
- [开发准备](start-overview.md) - [开发准备](start-overview.md)
- [使用JS语言开发](start-with-js.md) - [使用JS语言开发](start-with-js.md)
# 配置OpenHarmony应用签名信息<a name="ZH-CN_TOPIC_0000001159890371"></a> # 配置OpenHarmony应用签名信息
- [生成密钥和证书请求文件](#section153146467405) - [生成密钥和证书请求文件](#生成密钥和证书请求文件)
- [生成应用证书文件](#section136609429562) - [生成应用证书文件](#生成应用证书文件)
- [生成应用Profile文件](#section2048641015325) - [生成应用Profile文件](#生成应用profile文件)
- [配置应用签名信息](#section10152423193310) - [配置应用签名信息](#配置应用签名信息)
使用真机设备运行和调试OpenHarmony应用前,需要对应用进行签名才能正常运行。该指导用于OpenHarmony应用的签名配置。除此章节以外,DevEco Studio的其余操作指导无差别,具体请访问[HUAWEI DevEco Studio使用指南](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/tools_overview-0000001053582387)。配置应用签名信息的流程如下图所示。 使用真机设备运行和调试OpenHarmony应用前,需要对应用进行签名才能正常运行。该指导用于OpenHarmony应用的签名配置。除此章节以外,DevEco Studio的其余操作指导无差别,具体请访问[HUAWEI DevEco Studio使用指南](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/tools_overview-0000001053582387)。配置应用签名信息的流程如下图所示。
![](figures/zh-cn_image_0000001113808114.png)
## 生成密钥和证书请求文件<a name="section153146467405"></a> ![zh-cn_image_0000001113808114](figures/zh-cn_image_0000001113808114.png)
## 生成密钥和证书请求文件
OpenHarmony应用通过数字证书(.cer文件)和Profile文件(.p7b文件)来保证应用的完整性,需要通过DevEco Studio来生成密钥文件(.p12文件)和证书请求文件(.csr文件)。同时,也可以使用命令行工具的方式来生成密钥文件和证书请求文件。具体操作请参考[生成密钥和证书请求文件](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/publish_app-0000001053223745#section9752152162813) OpenHarmony应用通过数字证书(.cer文件)和Profile文件(.p7b文件)来保证应用的完整性,需要通过DevEco Studio来生成密钥文件(.p12文件)和证书请求文件(.csr文件)。同时,也可以使用命令行工具的方式来生成密钥文件和证书请求文件。具体操作请参考[生成密钥和证书请求文件](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/publish_app-0000001053223745#section9752152162813)
## 生成应用证书文件<a name="section136609429562"></a>
使用[生成密钥和证书请求文件](#section153146467405)中生成的证书请求文件,来生成应用签名所需的数字证书文件。生成方法如下: ## 生成应用证书文件
进入DevEco Studio安装目录的**Sdk\\toolchains\\lib**文件夹下(该SDK目录只能是OpenHarmony SDK,配置方法可参考[配置OpenHarmony SDK](configuring-openharmony-sdk.md)),打开命令行工具,执行如下命令(如果keytool命令不能执行,请在系统环境变量中添加JDK的环境变量)。其中,只需要修改输入和输出即可快速生成证书文件,即修改**-infile**指定证书请求文件csr文件路径,**-outfile**指定输出证书文件名及路径。 使用[生成密钥和证书请求文件](#生成密钥和证书请求文件)中生成的证书请求文件,来生成应用签名所需的数字证书文件。生成方法如下:
进入DevEco Studio安装目录的 **Sdk\toolchains\lib**文件夹下(该SDK目录只能是OpenHarmony SDK,配置方法可参考[配置OpenHarmony SDK](../quick-start/configuring-openharmony-sdk.md)),打开命令行工具,执行如下命令(如果keytool命令不能执行,请在系统环境变量中添加JDK的环境变量)。其中,只需要修改输入和输出即可快速生成证书文件,即修改 **-infile**指定证书请求文件csr文件路径, **-outfile**指定输出证书文件名及路径。
``` ```
keytool -gencert -alias "OpenHarmony Application CA" -infile myApplication_ohos.csr -outfile myApplication_ohos.cer -keystore OpenHarmony.p12 -sigalg SHA384withECDSA -storepass 123456 -ext KeyUsage:"critical=digitalSignature" -validity 3650 -rfc keytool -gencert -alias "OpenHarmony Application CA" -infile myApplication_ohos.csr -outfile myApplication_ohos.cer -keystore OpenHarmony.p12 -sigalg SHA384withECDSA -storepass 123456 -ext KeyUsage:"critical=digitalSignature" -validity 3650 -rfc
...@@ -26,20 +29,29 @@ keytool -gencert -alias "OpenHarmony Application CA" -infile myApplication_ohos. ...@@ -26,20 +29,29 @@ keytool -gencert -alias "OpenHarmony Application CA" -infile myApplication_ohos.
关于该命令的参数说明如下: 关于该命令的参数说明如下:
- **alias**:用于签发证书的CA私钥别名,OpenHarmony社区CA私钥存于OpenHarmony.p12密钥库文件中,该参数不能修改。 - **alias**:用于签发证书的CA私钥别名,OpenHarmony社区CA私钥存于OpenHarmony.p12密钥库文件中,该参数不能修改。
- **infile**:证书请求(CSR)文件的路径。 - **infile**:证书请求(CSR)文件的路径。
- **outfile**:输出证书链文件名及路径。 - **outfile**:输出证书链文件名及路径。
- **keystore**:签发证书的CA密钥库路径,OpenHarmony密钥库文件名为OpenHarmony.p12,文件在OpenHarmony SDK中**Sdk\\toolchains\\lib**路径下,该参数不能修改。请注意,该OpenHarmony.p12文件并不是[生成密钥和证书请求文件](#section153146467405)中生成的.p12文件。
- **keystore**:签发证书的CA密钥库路径,OpenHarmony密钥库文件名为OpenHarmony.p12,文件在OpenHarmony SDK中 **Sdk\toolchains\lib**路径下,该参数不能修改。请注意,该OpenHarmony.p12文件并不是[生成密钥和证书请求文件](#生成密钥和证书请求文件)中生成的.p12文件。
- **sigalg**:证书签名算法,该参数不能修改。 - **sigalg**:证书签名算法,该参数不能修改。
- **storepass**:密钥库密码,密码为123456,该参数不能修改。 - **storepass**:密钥库密码,密码为123456,该参数不能修改。
- **ext**:证书扩展项,该参数不能修改。 - **ext**:证书扩展项,该参数不能修改。
- **validity**:证书有效期,自定义天数。 - **validity**:证书有效期,自定义天数。
- **rfc**:输出文件格式指定,该参数不能修改。 - **rfc**:输出文件格式指定,该参数不能修改。
## 生成应用Profile文件<a name="section2048641015325"></a>
## 生成应用Profile文件
Profile文件包含OpenHarmony应用的包名、数字证书信息、描述应用允许申请的证书权限列表,以及允许应用调试的设备列表(如果应用类型为Release类型,则设备列表为空)等内容,每个应用包中均必须包含一个Profile文件。 Profile文件包含OpenHarmony应用的包名、数字证书信息、描述应用允许申请的证书权限列表,以及允许应用调试的设备列表(如果应用类型为Release类型,则设备列表为空)等内容,每个应用包中均必须包含一个Profile文件。
进入**Sdk\\toolchains\\lib**目录下,打开命令行工具,执行如下命令。 进入 **Sdk\toolchains\lib**目录下,打开命令行工具,执行如下命令。
``` ```
java -jar provisionsigtool.jar sign --in UnsgnedReleasedProfileTemplate.json --out myApplication_ohos_Provision.p7b --keystore OpenHarmony.p12 --storepass 123456 --alias "OpenHarmony Application Profile Release" --sigAlg SHA256withECDSA --cert OpenHarmonyProfileRelease.pem --validity 365 --developer-id ohosdeveloper --bundle-name 包名 --permission 受限权限名(可选) --permission 受限权限名(可选) --distribution-certificate myApplication_ohos.cer java -jar provisionsigtool.jar sign --in UnsgnedReleasedProfileTemplate.json --out myApplication_ohos_Provision.p7b --keystore OpenHarmony.p12 --storepass 123456 --alias "OpenHarmony Application Profile Release" --sigAlg SHA256withECDSA --cert OpenHarmonyProfileRelease.pem --validity 365 --developer-id ohosdeveloper --bundle-name 包名 --permission 受限权限名(可选) --permission 受限权限名(可选) --distribution-certificate myApplication_ohos.cer
...@@ -47,45 +59,62 @@ java -jar provisionsigtool.jar sign --in UnsgnedReleasedProfileTemplate.json --o ...@@ -47,45 +59,62 @@ java -jar provisionsigtool.jar sign --in UnsgnedReleasedProfileTemplate.json --o
关于该命令的参数说明如下: 关于该命令的参数说明如下:
- **provisionsigtool**:Profile文件生成工具,文件在OpenHarmony SDK的**Sdk\\toolchains\\lib**路径下。 - **provisionsigtool**:Profile文件生成工具,文件在OpenHarmony SDK的 **Sdk\toolchains\lib**路径下。
- **in**:Profile模板文件所在路径,文件在OpenHarmony SDK中**Sdk\\toolchains\\lib**路径下,该参数不能修改。
- **in**:Profile模板文件所在路径,文件在OpenHarmony SDK中 **Sdk\toolchains\lib**路径下,该参数不能修改。
- **out**:输出的Profile文件名和路径。 - **out**:输出的Profile文件名和路径。
- **keystore**:签发证书的密钥库路径,OpenHarmony密钥库文件名为OpenHarmony.p12,文件在OpenHarmony SDK中**Sdk\\toolchains\\lib**路径下,该参数不能修改。
- **keystore**:签发证书的密钥库路径,OpenHarmony密钥库文件名为OpenHarmony.p12,文件在OpenHarmony SDK中 **Sdk\toolchains\lib**路径下,该参数不能修改。
- **storepass**:密钥库密码,密码为123456,该参数不能修改。 - **storepass**:密钥库密码,密码为123456,该参数不能修改。
- **alias**:用于签名Profile私钥别名,OpenHarmony社区CA私钥存于OpenHarmony.p12密钥库文件中,该参数不能修改。 - **alias**:用于签名Profile私钥别名,OpenHarmony社区CA私钥存于OpenHarmony.p12密钥库文件中,该参数不能修改。
- **sigalg**:证书签名算法,该参数不能修改。 - **sigalg**:证书签名算法,该参数不能修改。
- **cert**:签名Profile的证书文件路径,文件在OpenHarmony SDK中**Sdk\\toolchains\\lib**路径下,该参数不能修改。
- **cert**:签名Profile的证书文件路径,文件在OpenHarmony SDK中 **Sdk\toolchains\lib**路径下,该参数不能修改。
- **validity**:证书有效期,自定义天数。 - **validity**:证书有效期,自定义天数。
- **developer-id**:开发者标识符,自定义一个字符串。 - **developer-id**:开发者标识符,自定义一个字符串。
- **bundle-name**:填写应用包名。 - **bundle-name**:填写应用包名。
- **permission**:可选字段,如果不需要,则可以不用填写此字段;如果需要添加多个受限权限,则如示例所示重复输入。受限权限列表如下:ohos.permission.READ\_CONTACTS、ohos.permission.WRITE\_CONTACTS。
- **distribution-certificate**[生成应用证书文件](#section136609429562)中生成的证书文件。
## 配置应用签名信息<a name="section10152423193310"></a> - **permission**:可选字段,如果不需要,则可以不用填写此字段;如果需要添加多个受限权限,则如示例所示重复输入。受限权限列表如下:ohos.permission.READ_CONTACTS、ohos.permission.WRITE_CONTACTS。
- **distribution-certificate**[生成应用证书文件](#生成应用证书文件)中生成的证书文件。
## 配置应用签名信息
在真机设备上调试前,需要使用到制作的私钥(.p12)文件、证书(.cer)文件和Profile(.p7b)文件对调试的模块进行签名。 在真机设备上调试前,需要使用到制作的私钥(.p12)文件、证书(.cer)文件和Profile(.p7b)文件对调试的模块进行签名。
打开**File \> Project Structure**,点击**Project \> Signing Configs \> debug**窗口中,去除勾选“Automatically generate signing”,然后配置指定模块的调试签名信息。 打开 **File &gt; Project Structure**,点击 **Project &gt; Signing Configs &gt; debug**窗口中,去除勾选“Automatically generate signing”,然后配置指定模块的调试签名信息。
- **Store File**:选择密钥库文件,文件后缀为.p12,该文件为[生成密钥和证书请求文件](#生成密钥和证书请求文件)中生成的.p12文件。
- **Store Password**:输入密钥库密码,该密码为[生成密钥和证书请求文件](#生成密钥和证书请求文件)中填写的密钥库密码保持一致。
- **Key Alias**:输入密钥的别名信息,与[生成密钥和证书请求文件](#生成密钥和证书请求文件)中填写的别名保持一致。
- **Key Password**:输入密钥的密码,与 **Store Password**保持一致。
- **Store File**:选择密钥库文件,文件后缀为.p12,该文件为[生成密钥和证书请求文件](#section153146467405)中生成的.p12文件。
- **Store Password**:输入密钥库密码,该密码为[生成密钥和证书请求文件](#section153146467405)中填写的密钥库密码保持一致。
- **Key Alias**:输入密钥的别名信息,与[生成密钥和证书请求文件](#section153146467405)中填写的别名保持一致。
- **Key Password**:输入密钥的密码,与**Store Password**保持一致。
- **Sign Alg**:签名算法,固定为SHA256withECDSA。 - **Sign Alg**:签名算法,固定为SHA256withECDSA。
- **Profile File**:选择[生成应用Profile文件](#section2048641015325)中生成的Profile文件,文件后缀为.p7b。
- **Certpath File**:选择[生成应用证书文件](#section136609429562)中生成的数字证书文件,文件后缀为.cer。
![](figures/zh-cn_image_0000001155643492.png) - **Profile File**:选择[生成应用Profile文件](#生成应用profile文件)中生成的Profile文件,文件后缀为.p7b。
设置完签名信息后,点击**OK**进行保存,然后可以在工程下的build.gradle中查看签名的配置信息 - **Certpath File**:选择[生成应用证书文件](#生成应用证书文件)中生成的数字证书文件,文件后缀为.cer
![](figures/zh-cn_image_0000001202722349.png) ![zh-cn_image_0000001155643492](figures/zh-cn_image_0000001155643492.png)
设置完签名信息后,点击 **OK**进行保存,然后可以在工程下的build.gradle中查看签名的配置信息。
![zh-cn_image_0000001202722349](figures/zh-cn_image_0000001202722349.png)
默认情况下,DevEco Studio编译hap包的类型为debug类型,如果需要编译release类型的hap包,请打开工程左下角的OhosBuild Variants,设置模块的编译构建类型为release。关于编译构建hap的详细说明请参考[HUAWEI DevEco Studio使用指南](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/build_hap-0000001053342418) 默认情况下,DevEco Studio编译hap包的类型为debug类型,如果需要编译release类型的hap包,请打开工程左下角的OhosBuild Variants,设置模块的编译构建类型为release。关于编译构建hap的详细说明请参考[HUAWEI DevEco Studio使用指南](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/build_hap-0000001053342418)
![](figures/zh-cn_image_0000001115066116.png) ![zh-cn_image_0000001115066116](figures/zh-cn_image_0000001115066116.png)
编译完成后,OpenHarmony应用的Hap包可以从工程的bulid目录下获取。 编译完成后,OpenHarmony应用的Hap包可以从工程的bulid目录下获取。
![](figures/zh-cn_image_0000001163918627.png) ![zh-cn_image_0000001163918627](figures/zh-cn_image_0000001163918627.png)
# 配置OpenHarmony SDK<a name="ZH-CN_TOPIC_0000001113561194"></a> # 配置OpenHarmony SDK
- [前提条件](#section164161442154812)
- [配置SDK信息](#section1265592425017)
- [参考信息](#section0384143616409)
- [配置DevEco Studio代理](#section10129720184214)
- [配置NPM代理](#section19984059114316)
- [设置Gradle代理](#section164211820465)
- [前提条件](#前提条件)
- [配置SDK信息](#配置sdk信息)
- [参考信息](#参考信息)
- [配置DevEco Studio代理](#配置deveco-studio代理)
- [配置NPM代理](#配置npm代理)
- [设置Gradle代理](#设置gradle代理)
在设置OpenHarmony应用开发环境时,需要开发者在DevEco Studio中配置对应的SDK信息。 在设置OpenHarmony应用开发环境时,需要开发者在DevEco Studio中配置对应的SDK信息。
>![](../public_sys-resources/icon-note.gif) **说明:**
>![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br/>
>请注意,OpenHarmony SDK版本精简了部分工具链,因此不适用于HarmonyOS应用开发。 >请注意,OpenHarmony SDK版本精简了部分工具链,因此不适用于HarmonyOS应用开发。
## 前提条件<a name="section164161442154812"></a>
## 前提条件
已下载并安装好DevEco Studio 3.0 Beta1及以上版本,点击[链接下载](https://developer.harmonyos.com/cn/develop/deveco-studio#download) 已下载并安装好DevEco Studio 3.0 Beta1及以上版本,点击[链接下载](https://developer.harmonyos.com/cn/develop/deveco-studio#download)
## 配置SDK信息<a name="section1265592425017"></a>
## 配置SDK信息
DevEco Studio通过SDK Manager统一管理SDK及工具链,OpenHarmony包含如下SDK包: DevEco Studio通过SDK Manager统一管理SDK及工具链,OpenHarmony包含如下SDK包:
<a name="table64565810577"></a> | 类别 | 包名 | 说明 |
<table><thead align="left"><tr id="row12455580576"><th class="cellrowborder" valign="top" width="24.709999999999997%" id="mcps1.1.4.1.1"><p id="p34565812572"><a name="p34565812572"></a><a name="p34565812572"></a>类别</p> | -------- | -------- | -------- |
</th> | SDK | JS | JS语言SDK包。 |
<th class="cellrowborder" valign="top" width="25.3%" id="mcps1.1.4.1.2"><p id="p104675817575"><a name="p104675817575"></a><a name="p104675817575"></a>包名</p> | SDK&nbsp;Tool | Toolchains | SDK工具链,OpenHarmony应用开发必备工具集,包括编译、打包、签名、数据库管理等工具的集合。 |
</th> | | Previewer | OpenHarmony应用预览器,可以在应用开发过程中查看界面UI布局效果。 |
<th class="cellrowborder" valign="top" width="49.99%" id="mcps1.1.4.1.3"><p id="p194610586574"><a name="p194610586574"></a><a name="p194610586574"></a>说明</p>
</th>
</tr>
</thead>
<tbody><tr id="row44334409916"><td class="cellrowborder" valign="top" width="24.709999999999997%" headers="mcps1.1.4.1.1 "><p id="p88381448125813"><a name="p88381448125813"></a><a name="p88381448125813"></a>SDK</p>
</td>
<td class="cellrowborder" valign="top" width="25.3%" headers="mcps1.1.4.1.2 "><p id="p1946175813574"><a name="p1946175813574"></a><a name="p1946175813574"></a>JS</p>
</td>
<td class="cellrowborder" valign="top" width="49.99%" headers="mcps1.1.4.1.3 "><p id="p54625885713"><a name="p54625885713"></a><a name="p54625885713"></a>JS语言SDK包。</p>
</td>
</tr>
<tr id="row14474585576"><td class="cellrowborder" rowspan="2" valign="top" width="24.709999999999997%" headers="mcps1.1.4.1.1 "><p id="p124765819578"><a name="p124765819578"></a><a name="p124765819578"></a>SDK Tool</p>
</td>
<td class="cellrowborder" valign="top" width="25.3%" headers="mcps1.1.4.1.2 "><p id="p1947135818571"><a name="p1947135818571"></a><a name="p1947135818571"></a>Toolchains</p>
</td>
<td class="cellrowborder" valign="top" width="49.99%" headers="mcps1.1.4.1.3 "><p id="p7471158105711"><a name="p7471158105711"></a><a name="p7471158105711"></a>SDK工具链,OpenHarmony应用开发必备工具集,包括编译、打包、签名、数据库管理等工具的集合。</p>
</td>
</tr>
<tr id="row337931010"><td class="cellrowborder" valign="top" headers="mcps1.1.4.1.1 "><p id="p193791108"><a name="p193791108"></a><a name="p193791108"></a>Previewer</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.1.4.1.2 "><p id="p1238951018"><a name="p1238951018"></a><a name="p1238951018"></a>OpenHarmony应用预览器,可以在应用开发过程中查看界面UI布局效果。</p>
</td>
</tr>
</tbody>
</table>
1. 运行已安装的DevEco Studio,首次使用,请选择**Do not import settings**,点击OK。 1. 运行已安装的DevEco Studio,首次使用,请选择 **Do not import settings**,点击OK。
2. 进入配置向导页面,设置**npm registry**,DevEco Studio已预置对应的仓,直接点击**Start using DevEco Studio**进入下一步。
>![](../public_sys-resources/icon-note.gif) **说明:** 2. 进入配置向导页面,设置 **npm registry**,DevEco Studio已预置对应的仓,直接点击 **Start using DevEco Studio**进入下一步。
>如果配置向导界面出现的是设置**Set up HTTP Proxy**界面,说明网络受限,请根据[参考信息](#section0384143616409)配置DevEco Studio代理、NPM代理和Gradle代理后,再下载OpenHarmony SDK。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br/>
> 如果配置向导界面出现的是设置 **Set up HTTP Proxy**界面,说明网络受限,请根据[参考信息](#参考信息)配置DevEco Studio代理、NPM代理和Gradle代理后,再下载OpenHarmony SDK。
![](figures/zh-cn_image_0000001163314102.png)
3. DevEco Studio向导指引开发者下载SDK,默认下载OpenHarmony SDK。SDK下载到user目录下,也可以指定对应的存储路径,SDK存储路径不支持中文字符,然后点击**Next** ![zh-cn_image_0000001163314102](figures/zh-cn_image_0000001163314102.png)
![](figures/zh-cn_image_0000001208394019.png) 3. DevEco Studio向导指引开发者下载SDK,默认下载OpenHarmony SDK。SDK下载到user目录下,也可以指定对应的存储路径,SDK存储路径不支持中文字符,然后点击 **Next**
![zh-cn_image_0000001208394019](figures/zh-cn_image_0000001208394019.png)
>![](../public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br/>
>如果不是首次安装DevEco Studio,可能无法查看进入该界面,可通过欢迎页的**Configure (或**![](figures/zh-cn_image_0000001208274069.png)**图标)\> Settings \> SDK Manager \> OpenHarmony SDK**界面,点击**OpenHarmony SDK Location**加载SDK。 > 如果不是首次安装DevEco Studio,可能无法查看进入该界面,可通过欢迎页的 **Configure (** **或**![zh-cn_image_0000001208274069](figures/zh-cn_image_0000001208274069.png) **图标** **)&gt; Settings &gt; SDK Manager &gt; OpenHarmony SDK**界面,点击 **OpenHarmony SDK Location**加载SDK。
4. 在弹出的SDK下载信息页面,点击**Next**,并在弹出的**License Agreement**窗口,点击**Accept**开始下载SDK。 4. 在弹出的SDK下载信息页面,点击 **Next**,并在弹出的 **License Agreement**窗口,点击 **Accept**开始下载SDK。
>![](../public_sys-resources/icon-note.gif) **说明:**
>下载SDK过程中,如果出现下载JS SDK失败,提示“Install js dependencies failed”,请根据[JS SDK安装失败处理指导](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/faq-development-environment-0000001168829643#section1311117111474)进行处理。
![](figures/zh-cn_image_0000001163472654.png) > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br/>
> 下载SDK过程中,如果出现下载JS SDK失败,提示“Install js dependencies failed”,请根据[JS SDK安装失败处理指导](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/faq-development-environment-0000001168829643#section1311117111474)进行处理。
5. 等待OpenHarmony SDK及工具下载完成,点击**Finish**,界面会进入到DevEco Studio欢迎页。
![](figures/zh-cn_image_0000001163632602.png) ![zh-cn_image_0000001163472654](figures/zh-cn_image_0000001163472654.png)
5. 等待OpenHarmony SDK及工具下载完成,点击 **Finish**,界面会进入到DevEco Studio欢迎页。
![zh-cn_image_0000001163632602](figures/zh-cn_image_0000001163632602.png)
## 参考信息<a name="section0384143616409"></a>
## 参考信息
DevEco Studio开发环境需要依赖于网络环境,需要连接上网络才能确保工具的正常使用。 DevEco Studio开发环境需要依赖于网络环境,需要连接上网络才能确保工具的正常使用。
一般来说,如果使用的是个人或家庭网络,是不需要设置代理信息的;只有部分企业网络受限的情况下,才需要设置代理信息。 一般来说,如果使用的是个人或家庭网络,是不需要设置代理信息的;只有部分企业网络受限的情况下,才需要设置代理信息。
如果是第一次打开DevEco Studio,配置向导界面出现设置**Set up HTTP Proxy**界面,说明网络受限,可以通过配置代理的方式来解决,需要配置DevEco Studio代理、NPM代理和Gradle代理。 如果是第一次打开DevEco Studio,配置向导界面出现设置 **Set up HTTP Proxy**界面,说明网络受限,可以通过配置代理的方式来解决,需要配置DevEco Studio代理、NPM代理和Gradle代理。
![](figures/zh-cn_image_0000001123021842.png) ![zh-cn_image_0000001166582138](figures/zh-cn_image_0000001166582138.png)
### 配置DevEco Studio代理<a name="section10129720184214"></a>
1. 启动DevEco Studio,配置向导进入**Set up HTTP Proxy**界面,勾选**Manual proxy configuration**,设置DevEco Studio的HTTP Proxy。 ### 配置DevEco Studio代理
>![](../public_sys-resources/icon-note.gif) **说明:** 1. 启动DevEco Studio,配置向导进入 **Set up HTTP Proxy**界面,勾选 **Manual proxy configuration**,设置DevEco Studio的HTTP Proxy。
>如果非首次设置向导进入HTTP Proxy,可以通过如下方式进入HTTP Proxy配置界面: > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br/>
>- 在欢迎页点击**Configure(或**![](figures/zh-cn_image_0000001122862128.png)**图标) \> Settings \> Appearance & Behavior \> System Settings \> HTTP Proxy**进入HTTP Proxy设置界面(Mac系统为**Configure \> Preferences \> Appearance & Behavior \> System Settings \> HTTP Proxy**)。 > 如果非首次设置向导进入HTTP Proxy,可以通过如下方式进入HTTP Proxy配置界面:
>- 在打开了工程的情况下,可以点击**File \> Settings \> Appearance & Behavior \> System Settings \> HTTP Proxy**进入HTTP Proxy设置界面(Mac系统为**DevEco Studio \> Preferences \> Appearance & Behavior \> System Settings \> HTTP Proxy**) >
> - 在欢迎页点击 **Configure(或**![zh-cn_image_0000001212142015](figures/zh-cn_image_0000001212142015.png) **图标) &gt; Settings &gt; Appearance &amp; Behavior &gt; System Settings &gt; HTTP Proxy**进入HTTP Proxy设置界面(Mac系统为 **Configure &gt; Preferences &gt; Appearance &amp; Behavior &gt; System Settings &gt; HTTP Proxy**)。
>
> - 在打开了工程的情况下,可以点击 **File &gt; Settings &gt; Appearance &amp; Behavior &gt; System Settings &gt; HTTP Proxy**进入HTTP Proxy设置界面(Mac系统为 **DevEco Studio &gt; Preferences &gt; Appearance &amp; Behavior &gt; System Settings &gt; HTTP Proxy**)
- **HTTP**配置项,设置代理服务器信息。**如果不清楚代理服务器信息,可以咨询你们的网络管理人员**。 - **HTTP**配置项,设置代理服务器信息。 **如果不清楚代理服务器信息,可以咨询你们的网络管理人员**
- **Host name**:代理服务器主机名或IP地址。 - **Host name**:代理服务器主机名或IP地址。
- **Port number**:代理服务器对应的端口号。 - **Port number**:代理服务器对应的端口号。
- **No proxy for**:不需要通过代理服务器访问的URL或者IP地址(地址之间用英文逗号分隔)。 - **No proxy for**:不需要通过代理服务器访问的URL或者IP地址(地址之间用英文逗号分隔)。
- **Proxy authentication**配置项,如果代理服务器需要通过认证鉴权才能访问,则需要设置。否则,请跳过该配置项。 - **Proxy authentication**配置项,如果代理服务器需要通过认证鉴权才能访问,则需要设置。否则,请跳过该配置项。
- **Login**:访问代理服务器的用户名。 - **Login**:访问代理服务器的用户名。
- **Password**:访问代理服务器的密码。 - **Password**:访问代理服务器的密码。
- **Remember**:勾选,记住密码。 - **Remember**:勾选,记住密码。
![zh-cn_image_0000001212062065](figures/zh-cn_image_0000001212062065.png)
![](figures/zh-cn_image_0000001123021962.png) 2. 配置完成后,点击 **Check connection**,输入网络地址(如:https://developer.harmonyos.com),检查网络连通性。提示Connection successful表示代理设置成功。
2. 配置完成后,点击**Check connection**,输入网络地址(如:https://developer.harmonyos.com),检查网络连通性。提示“Connection successful“表示代理设置成功。 3. 点击 **Next: Configure npm**继续设置NPM代理信息,请参考[配置NPM代理](#配置npm代理)
3. 点击**Next: Configure npm**继续设置NPM代理信息,请参考[配置NPM代理](#section19984059114316)
### 配置NPM代理<a name="section19984059114316"></a>
通过DevEco Studio的设置向导设置NPM代理信息,代理信息将写入用户“users/用户名/”目录下的**.npmrc**文件。 ### 配置NPM代理
>![](../public_sys-resources/icon-note.gif) **说明:** 通过DevEco Studio的设置向导设置NPM代理信息,代理信息将写入用户“users/用户名/”目录下的 **.npmrc**文件。
>该向导只有第一次安装DevEco Studio才会出现。如果未出现该向导,可以直接在“users/用户名/”目录下的**.npmrc**文件中,添加代理配置信息。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br/>
> 该向导只有第一次安装DevEco Studio才会出现。如果未出现该向导,可以直接在“users/用户名/”目录下的 **.npmrc**文件中,添加代理配置信息。
- npm registry:设置npm仓的地址信息,建议勾选。 - npm registry:设置npm仓的地址信息,建议勾选。
- HTTP proxy:代理服务器信息,默认会与DevEco Studio的HTTP proxy设置项保持一致。 - HTTP proxy:代理服务器信息,默认会与DevEco Studio的HTTP proxy设置项保持一致。
- Enable Https Proxy:同步设置HTTPS Proxy配置信息,建议勾选。 - Enable Https Proxy:同步设置HTTPS Proxy配置信息,建议勾选。
![](figures/zh-cn_image_0000001164577336.png) ![zh-cn_image_0000001164577336](figures/zh-cn_image_0000001164577336.png)
然后点击**Start using DevEco Studio**继续下一步操作。 然后点击 **Start using DevEco Studio**继续下一步操作。
如果代理服务器需要认证(需要用户名和密码),请先根据如下指导配置代理服务器的用户名和密码信息,然后再下载OpenHarmony SDK;否则,请跳过该操作,参考[配置SDK信息](#section1265592425017)进行操作即可。 如果代理服务器需要认证(需要用户名和密码),请先根据如下指导配置代理服务器的用户名和密码信息,然后再下载OpenHarmony SDK;否则,请跳过该操作,参考[配置SDK信息](#配置sdk信息)进行操作即可。
![](figures/zh-cn_image_0000001209817299.png) ![zh-cn_image_0000001209817299](figures/zh-cn_image_0000001209817299.png)
1. 进入用户的users目录,打开**.npmrc**文件。 1. 进入用户的users目录,打开 **.npmrc**文件。
2. 修改npm代理信息,在proxy和https-proxy中,增加user和password字段,具体取值请以实际代理信息为准。示例如下所示:
2. 修改npm代理信息,在proxy和https-proxy中,增加user和password字段,具体取值请以实际代理信息为准。示例如下所示:
``` ```
proxy=http://user:password@proxy.server.com:80 proxy=http://user:password@proxy.server.com:80
https-proxy=http://user:password@proxy.server.com:80 https-proxy=http://user:password@proxy.server.com:80
``` ```
>![](../public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br/>
>如果password中存在特殊字符,如@、\#、\*等符号,可能导致配置不生效,建议将特殊字符替换为ASCII码,并在ASCII码前加百分号%。常用符号替换为ASCII码对照表如下: > 如果password中存在特殊字符,如\@、\#、\*等符号,可能导致配置不生效,建议将特殊字符替换为ASCII码,并在ASCII码前加百分号%。常用符号替换为ASCII码对照表如下:
>- !:%21 >
>- @:%40 > - !:%21
>- \#:%23 >
>- ¥:%24 > - \@:%40
>- &:%26 >
>- \*:%2A > - \#:%23
>
> - ¥:%24
>
> - &amp;:%26
>
> - \*:%2A
3. 代理设置完成后,打开命令行工具,执行如下命令进行验证网络是否正常。 3. 代理设置完成后,打开命令行工具,执行如下命令进行验证网络是否正常。
``` ```
npm info express npm info express
``` ```
执行结果如下图所示,则说明代理设置成功。 执行结果如下图所示,则说明代理设置成功。
![](figures/zh-cn_image_0000001164417356.png) ![zh-cn_image_0000001164417356](figures/zh-cn_image_0000001164417356.png)
4. 网络设置完成后,然后再[配置SDK信息](#section1265592425017)
### 设置Gradle代理<a name="section164211820465"></a> 4. 网络设置完成后,然后再[配置SDK信息](#配置sdk信息)
1. 打开“此电脑”,在文件夹地址栏中输入**%userprofile%**(Mac系统请点击**前往 \> 个人**),进入个人用户文件夹。
![](figures/zh-cn_image_0000001123024482.png) ### 设置Gradle代理
2. 创建一个文件夹,命名为**.gradle**。如果已有.gradle文件夹,请跳过此操作。 1. 打开“此电脑”,在文件夹地址栏中输入 **%userprofile%**(Mac系统请点击 **前往 &gt; 个人**),进入个人用户文件夹。
![zh-cn_image_0000001166740700](figures/zh-cn_image_0000001166740700.png)
>![](../public_sys-resources/icon-note.gif) **说明:** 2. 创建一个文件夹,命名为 **.gradle**。如果已有.gradle文件夹,请跳过此操作。
>macOS系统创建.gradle文件夹前,请将系统设置为“显示隐藏文件”。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br/>
> macOS系统创建.gradle文件夹前,请将系统设置为“显示隐藏文件”。
3. 进入.gradle文件夹,新建一个文本文档,命名为**gradle**,并修改后缀为**.properties** 3. 进入.gradle文件夹,新建一个文本文档,命名为 **gradle**,并修改后缀为 **.properties**
4. 打开**gradle.properties**文件中,添加如下脚本,然后保存。
其中代理服务器、端口、用户名、密码和不使用代理的域名,请根据实际代理情况进行修改。其中不使用代理的“nonProxyHosts“的配置间隔符是 “|”。
4. 打开 **gradle.properties**文件中,添加如下脚本,然后保存。
其中代理服务器、端口、用户名、密码和不使用代理的域名,请根据实际代理情况进行修改。其中不使用代理的nonProxyHosts的配置间隔符是 “|”。
``` ```
systemProp.http.proxyHost=proxy.server.com systemProp.http.proxyHost=proxy.server.com
systemProp.http.proxyPort=8080 systemProp.http.proxyPort=8080
...@@ -189,5 +173,3 @@ DevEco Studio开发环境需要依赖于网络环境,需要连接上网络才 ...@@ -189,5 +173,3 @@ DevEco Studio开发环境需要依赖于网络环境,需要连接上网络才
systemProp.https.proxyUser=userId systemProp.https.proxyUser=userId
systemProp.https.proxyPassword=password systemProp.https.proxyPassword=password
``` ```
# 创建OpenHarmony工程<a name="ZH-CN_TOPIC_0000001130929834"></a> # 创建OpenHarmony工程
- **[使用工程向导创建新工程](use-wizard-to-create-project.md)** - **[使用工程向导创建新工程](use-wizard-to-create-project.md)**
- **[通过导入Sample方式创建新工程](import-sample-to-create-project.md)** - **[通过导入Sample方式创建新工程](import-sample-to-create-project.md)**
\ No newline at end of file
# 概述<a name="ZH-CN_TOPIC_0000001116414108"></a> # 概述
- [总体说明](#section189422248491) - [总体说明](#总体说明)
- [使用约束](#section65191625782) - [使用约束](#使用约束)
- [DevEco Studio演进路标](#section187875207166) - [DevEco Studio演进路标](#deveco-studio演进路标)
## 总体说明<a name="section189422248491"></a> ## 总体说明
DevEco Studio是HarmonyOS的配套的开发IDE,因为HarmonyOS是基于OpenHarmony开发的,因此,使用DevEco Studio(配套HarmonyOS)也可以进行OpenHarmony的应用开发。 DevEco Studio 是 HarmonyOS 的配套的开发 IDE ,因为HarmonyOS 是基于OpenHarmony 开发的,因此,使用 DevEco Studio (配套 HarmonyOS )也可以进行 OpenHarmony 的应用开发。
使用DevEco Studio开发OpenHarmony应用的流程与开发HarmonyOS的流程完全一样,本文档仅描述OpenHarmony应用开发与HarmonyOS应用开发的差异点。 使用DevEco Studio开发OpenHarmony应用的流程与开发HarmonyOS的流程完全一样,本文档仅描述OpenHarmony应用开发与HarmonyOS应用开发的差异点。
- **搭建开发环境差异**:OpenHarmony应用开发环境需要先安装OpenHarmony SDK,具体可参考[配置OpenHarmony SDK](configuring-openharmony-sdk.md)章节。 - **搭建开发环境差异**:OpenHarmony应用开发环境需要先安装OpenHarmony SDK,具体可参考[配置OpenHarmony SDK](../quick-start/configuring-openharmony-sdk.md)章节。
- **导入OpenHarmony工程**:OpenHarmony应用开发,只能通过导入Sample工程的方式来创建一个新工程,具体可参考[通过导入Sample方式创建新工程](import-sample-to-create-project.md)
- **调试签名配置**:OpenHarmony应用运行在真机设备上,需要对应用进行签名,关于OpenHarmony应用的签名指导请参考[配置OpenHarmony应用签名信息](configuring-openharmony-app-signature.md) - **导入OpenHarmony工程**:OpenHarmony应用开发,只能通过导入Sample工程的方式来创建一个新工程,具体可参考[通过导入Sample方式创建新工程](../quick-start/import-sample-to-create-project.md)
- **在真机设备上运行应用**:需要使用hdc工具将OpenHarmony的hap包推送到真机设备上进行安装,具体可参考[安装运行OpenHarmony应用](installing-openharmony-app.md)
- **调试签名配置**:OpenHarmony应用运行在真机设备上,需要对应用进行签名,关于OpenHarmony应用的签名指导请参考[配置OpenHarmony应用签名信息](../quick-start/configuring-openharmony-app-signature.md)
- **在真机设备上运行应用**:需要使用hdc工具将OpenHarmony的hap包推送到真机设备上进行安装,具体可参考[安装运行OpenHarmony应用](../quick-start/installing-openharmony-app.md)
关于DevEco Studio的详细操作指导,请访问[HUAWEI DevEco Studio使用指南](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/tools_overview-0000001053582387) 关于DevEco Studio的详细操作指导,请访问[HUAWEI DevEco Studio使用指南](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/tools_overview-0000001053582387)
## 使用约束<a name="section65191625782"></a>
## 使用约束
- OpenHarmony只支持使用JS语言开发应用,不支持Java、C/C++语言。 - OpenHarmony只支持使用JS语言开发应用,不支持Java、C/C++语言。
- OpenHarmony开发环境DevEco Studio暂只支持Windows系统。 - OpenHarmony开发环境DevEco Studio暂只支持Windows系统。
OpenHarmony与HarmonyOS的开发工具都是DevEco Studio,下表为OpenHarmony相比HarmonyOS不支持的功能说明: OpenHarmony与HarmonyOS的开发工具都是DevEco Studio,下表为OpenHarmony相比HarmonyOS不支持的功能说明:
<a name="table852516933419"></a> | 特性名称 | HarmonyOS版本 | OpenHarmony版本 |
<table><thead align="left"><tr id="row1952618913415"><th class="cellrowborder" valign="top" width="29.882988298829883%" id="mcps1.1.4.1.1"><p id="p165268963418"><a name="p165268963418"></a><a name="p165268963418"></a>特性名称</p> | -------- | -------- | -------- |
</th> | 创建Module | **√** | **X** |
<th class="cellrowborder" valign="top" width="36.783678367836785%" id="mcps1.1.4.1.2"><p id="p25262914349"><a name="p25262914349"></a><a name="p25262914349"></a>HarmonyOS版本</p> | 服务卡片 | **√** | **X** |
</th> | 自动化签名 | **√** | **X** |
<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.1.4.1.3"><p id="p125265912343"><a name="p125265912343"></a><a name="p125265912343"></a>OpenHarmony版本</p> | 远程模拟器 | **√** | **X** |
</th> | 本地模拟器 | **√** | **X** |
</tr> | 使用DevEco&nbsp;Studio运行调试、日志查看、调优 | **√** | **X** |
</thead> | 云测试 | **√** | **X** |
<tbody><tr id="row3627192183319"><td class="cellrowborder" valign="top" width="29.882988298829883%" headers="mcps1.1.4.1.1 "><p id="p1362817213320"><a name="p1362817213320"></a><a name="p1362817213320"></a>创建Module</p> | 安全测试 | **√** | **X** |
</td>
<td class="cellrowborder" valign="top" width="36.783678367836785%" headers="mcps1.1.4.1.2 "><p id="p8226191353"><a name="p8226191353"></a><a name="p8226191353"></a><strong id="b17226139143511"><a name="b17226139143511"></a><a name="b17226139143511"></a></strong></p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p14226894353"><a name="p14226894353"></a><a name="p14226894353"></a><strong id="b122614963510"><a name="b122614963510"></a><a name="b122614963510"></a>X</strong></p>
</td>
</tr>
<tr id="row955132319355"><td class="cellrowborder" valign="top" width="29.882988298829883%" headers="mcps1.1.4.1.1 "><p id="p1655172423517"><a name="p1655172423517"></a><a name="p1655172423517"></a>服务卡片</p>
</td>
<td class="cellrowborder" valign="top" width="36.783678367836785%" headers="mcps1.1.4.1.2 "><p id="p1555192493516"><a name="p1555192493516"></a><a name="p1555192493516"></a><strong id="b11551102403511"><a name="b11551102403511"></a><a name="b11551102403511"></a></strong></p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p85511324183514"><a name="p85511324183514"></a><a name="p85511324183514"></a><strong id="b255116244356"><a name="b255116244356"></a><a name="b255116244356"></a>X</strong></p>
</td>
</tr>
<tr id="row1552619933411"><td class="cellrowborder" valign="top" width="29.882988298829883%" headers="mcps1.1.4.1.1 "><p id="p11430122863614"><a name="p11430122863614"></a><a name="p11430122863614"></a>自动化签名</p>
</td>
<td class="cellrowborder" valign="top" width="36.783678367836785%" headers="mcps1.1.4.1.2 "><p id="p243122863614"><a name="p243122863614"></a><a name="p243122863614"></a><strong id="b14431122873617"><a name="b14431122873617"></a><a name="b14431122873617"></a></strong></p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p4431162819362"><a name="p4431162819362"></a><a name="p4431162819362"></a><strong id="b4431328163619"><a name="b4431328163619"></a><a name="b4431328163619"></a>X</strong></p>
</td>
</tr>
<tr id="row115263913344"><td class="cellrowborder" valign="top" width="29.882988298829883%" headers="mcps1.1.4.1.1 "><p id="p1323118352362"><a name="p1323118352362"></a><a name="p1323118352362"></a>远程模拟器</p>
</td>
<td class="cellrowborder" valign="top" width="36.783678367836785%" headers="mcps1.1.4.1.2 "><p id="p723143573614"><a name="p723143573614"></a><a name="p723143573614"></a><strong id="b8231173533613"><a name="b8231173533613"></a><a name="b8231173533613"></a></strong></p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p7231435143619"><a name="p7231435143619"></a><a name="p7231435143619"></a><strong id="b1523111352363"><a name="b1523111352363"></a><a name="b1523111352363"></a>X</strong></p>
</td>
</tr>
<tr id="row183441037105115"><td class="cellrowborder" valign="top" width="29.882988298829883%" headers="mcps1.1.4.1.1 "><p id="p5345237155119"><a name="p5345237155119"></a><a name="p5345237155119"></a>本地模拟器</p>
</td>
<td class="cellrowborder" valign="top" width="36.783678367836785%" headers="mcps1.1.4.1.2 "><p id="p393214320517"><a name="p393214320517"></a><a name="p393214320517"></a><strong id="b1693264315118"><a name="b1693264315118"></a><a name="b1693264315118"></a></strong></p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p139324438515"><a name="p139324438515"></a><a name="p139324438515"></a><strong id="b169321543175116"><a name="b169321543175116"></a><a name="b169321543175116"></a>X</strong></p>
</td>
</tr>
<tr id="row15269933419"><td class="cellrowborder" valign="top" width="29.882988298829883%" headers="mcps1.1.4.1.1 "><p id="p152318351369"><a name="p152318351369"></a><a name="p152318351369"></a>使用DevEco Studio运行调试、日志查看、调优</p>
</td>
<td class="cellrowborder" valign="top" width="36.783678367836785%" headers="mcps1.1.4.1.2 "><p id="p623118353360"><a name="p623118353360"></a><a name="p623118353360"></a><strong id="b10231535143615"><a name="b10231535143615"></a><a name="b10231535143615"></a></strong></p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p192313353367"><a name="p192313353367"></a><a name="p192313353367"></a><strong id="b1423123514368"><a name="b1423123514368"></a><a name="b1423123514368"></a>X</strong></p>
</td>
</tr>
<tr id="row7357734143617"><td class="cellrowborder" valign="top" width="29.882988298829883%" headers="mcps1.1.4.1.1 "><p id="p76694468363"><a name="p76694468363"></a><a name="p76694468363"></a>云测试</p>
</td>
<td class="cellrowborder" valign="top" width="36.783678367836785%" headers="mcps1.1.4.1.2 "><p id="p2066918465369"><a name="p2066918465369"></a><a name="p2066918465369"></a><strong id="b3669546133610"><a name="b3669546133610"></a><a name="b3669546133610"></a></strong></p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p1266910467363"><a name="p1266910467363"></a><a name="p1266910467363"></a><strong id="b11669144693616"><a name="b11669144693616"></a><a name="b11669144693616"></a>X</strong></p>
</td>
</tr>
<tr id="row124331939191517"><td class="cellrowborder" valign="top" width="29.882988298829883%" headers="mcps1.1.4.1.1 "><p id="p146691546143619"><a name="p146691546143619"></a><a name="p146691546143619"></a>安全测试</p>
</td>
<td class="cellrowborder" valign="top" width="36.783678367836785%" headers="mcps1.1.4.1.2 "><p id="p614815145371"><a name="p614815145371"></a><a name="p614815145371"></a><strong id="b101485149375"><a name="b101485149375"></a><a name="b101485149375"></a></strong></p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p1514811149374"><a name="p1514811149374"></a><a name="p1514811149374"></a><strong id="b01481614133717"><a name="b01481614133717"></a><a name="b01481614133717"></a>X</strong></p>
</td>
</tr>
</tbody>
</table>
## DevEco Studio演进路标<a name="section187875207166"></a>
Huawei DevEco Studio分阶段支持OpenHarmony应用开发的演进路标如下:
![](figures/zh-cn_image_0000001210018359.png) ## DevEco Studio演进路标
Huawei DevEco Studio分阶段支持OpenHarmony应用开发的演进路标如下:
![zh-cn_image_0000001210018359](figures/zh-cn_image_0000001210018359.png)
# 版本变更说明<a name="ZH-CN_TOPIC_0000001210143219"></a> # 版本变更说明
- [V3.0 Beta1(2021-09-29)](#section21092033115018) - [V3.0 Beta1(2021-09-29)](#v3-0-beta1-2021-09-29-)
## V3.0 Beta1(2021-09-29)<a name="section21092033115018"></a> ## V3.0 Beta1(2021-09-29)
<a name="simpletable19435134375015"></a>
<table id="simpletable19435134375015"><tr id="strow1435543185020"><td valign="top" id="stentry64351943115013"><div class="p" id="p13974162220455"><a name="p13974162220455"></a><a name="p13974162220455"></a><strong id="b7302113118456"><a name="b7302113118456"></a><a name="b7302113118456"></a>新增特性:</strong><a name="ul11381034104515"></a><a name="ul11381034104515"></a><ul id="ul11381034104515"><li>新增支持OpenHarmony SDK的管理,开发者可通过DevEco Studio的SDK Manager功能来下载和管理OpenHarmony SDK。</li><li>在编译构建HAP包时,新增支持对单个Module进行编译,对于多Module工程中只需要编译其中一个Module的场景,可以提升编译构建速度;同时还新增支持一键重构建HAP包,即在编译构建HAP前,会自动执行Clean Project操作。</li></ul>
</div>
<div class="p" id="p556811306614"><a name="p556811306614"></a><a name="p556811306614"></a><strong id="b154212371065"><a name="b154212371065"></a><a name="b154212371065"></a>增强特性:</strong><a name="ul834518400613"></a><a name="ul834518400613"></a><ul id="ul834518400613"><li>编译构建插件更新至3.0.3.2版本。</li><li>Json编辑器增强,资源索引错误支持快速修复,并支持快速查看资源的取值。</li><li>工程视图支持Ohos视图,默认视图为Project视图,开发者可手动切换。</li><li>OpenHarmony工程支持ark方舟编译。</li><li>OpenHarmony工程类型标识字段supportSystem "standard",由模块级build.gradle调整至工程级build.gradle。</li></ul>
</div>
</td>
</tr>
</table>
| |
| -------- |
| &nbsp;**新增特性:**<br/>-&nbsp;新增支持OpenHarmony&nbsp;SDK的管理,开发者可通过DevEco&nbsp;Studio的SDK&nbsp;Manager功能来下载和管理OpenHarmony&nbsp;SDK。<br/>-&nbsp;在编译构建HAP包时,新增支持对单个Module进行编译,对于多Module工程中只需要编译其中一个Module的场景,可以提升编译构建速度;同时还新增支持一键重构建HAP包,即在编译构建HAP前,会自动执行Clean&nbsp;Project操作。<br/>&nbsp;**增强特性:**<br/>-&nbsp;编译构建插件更新至3.0.3.2版本。<br/>-&nbsp;Json编辑器增强,资源索引错误支持快速修复,并支持快速查看资源的取值。<br/>-&nbsp;工程视图支持Ohos视图,默认视图为Project视图,开发者可手动切换。<br/>-&nbsp;OpenHarmony工程支持ark方舟编译。<br/>-&nbsp;OpenHarmony工程类型标识字段supportSystem&nbsp;"standard",由模块级build.gradle调整至工程级build.gradle。 |
# DevEco Studio(OpenHarmony)使用指南<a name="ZH-CN_TOPIC_0000001163049851"></a> # DevEco Studio(OpenHarmony)使用指南
- **[概述](deveco-studio-overview.md)** - **[概述](deveco-studio-overview.md)**
...@@ -11,5 +12,3 @@ ...@@ -11,5 +12,3 @@
- **[配置OpenHarmony应用签名信息](configuring-openharmony-app-signature.md)** - **[配置OpenHarmony应用签名信息](configuring-openharmony-app-signature.md)**
- **[安装运行OpenHarmony应用](installing-openharmony-app.md)** - **[安装运行OpenHarmony应用](installing-openharmony-app.md)**
\ No newline at end of file
# 通过导入Sample方式创建新工程<a name="ZH-CN_TOPIC_0000001163914943"></a> # 通过导入Sample方式创建新工程
>![](../public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
>该功能适用于通过DevEco Studio 2.1 Release及以上版本,创建OpenHarmony工程。 > 该功能适用于通过DevEco Studio 2.1 Release及以上版本,创建OpenHarmony工程。
OpenHarmony SDK配置完成后,便可以启动应用开发。针对OpenHarmony应用开发,**可以通过导入Sample工程的方式来创建一个新工程**
1. 在DevEco Studio的欢迎页,进入**Configure (或**![](figures/zh-cn_image_0000001118018452.png)**图标) \> Settings \> Version Control \> Git**界面,点击Test按钮检测是否安装Git工具。 OpenHarmony SDK配置完成后,便可以启动应用开发。针对OpenHarmony应用开发, **可以通过导入Sample工程的方式来创建一个新工程**
- 已安装,请根据[2](#li5947194711181)开始导入Sample。
![](figures/zh-cn_image_0000001118018088.png)
- 未安装,请点击**Download and Install**,DevEco Studio会自动下载并安装。安装完成后,请根据[2](#li5947194711181)开始导入Sample。 1. 在DevEco Studio的欢迎页,进入 **Configure (** **或**![zh-cn_image_0000001118018452](figures/zh-cn_image_0000001118018452.png) **图标** **) &gt; Settings &gt; Version Control &gt; Git**界面,点击Test按钮检测是否安装Git工具。
- 已安装,请根据**步骤2**开始导入Sample。
![zh-cn_image_0000001118018088](figures/zh-cn_image_0000001118018088.png)
- 未安装,请点击 **Download and Install**,DevEco Studio会自动下载并安装。安装完成后,请根据**步骤2**开始导入Sample。
![zh-cn_image_0000001164498191](figures/zh-cn_image_0000001164498191.png)
![](figures/zh-cn_image_0000001164498191.png) 2. 在DevEco Studio的欢迎页,点击 **Import Sample**按钮,导入Sample工程。
![zh-cn_image_0000001208006117](figures/zh-cn_image_0000001208006117.png)
2. <a name="li5947194711181"></a>在DevEco Studio的欢迎页,点击**Import Sample**按钮,导入Sample工程。 3. 选择OpenHarmony Samples &gt; common下的 **JsHelloWorld**工程,然后点击 **Next**
![zh-cn_image_0000001152459178](figures/zh-cn_image_0000001152459178.png)
![](figures/zh-cn_image_0000001208006117.png) 4. 设置 **App Name****Project Location**,然后点击 **Finish**,等待Sample工程导入完成。
![zh-cn_image_0000001207744539](figures/zh-cn_image_0000001207744539.png)
3. 选择OpenHarmony Samples \> common下的**JsHelloWorld**工程,然后点击**Next**
![](figures/zh-cn_image_0000001152459178.png)
4. 设置**App Name****Project Location**,然后点击**Finish**,等待Sample工程导入完成。
![](figures/zh-cn_image_0000001207744539.png)
5. 等待工程同步完成,同步成功后,便可以进行OpenHarmony应用开发了。 5. 等待工程同步完成,同步成功后,便可以进行OpenHarmony应用开发了。
![zh-cn_image_0000001163915523](figures/zh-cn_image_0000001163915523.png)
![](figures/zh-cn_image_0000001163915523.png)
# 安装运行OpenHarmony应用<a name="ZH-CN_TOPIC_0000001115941596"></a> # 安装运行OpenHarmony应用
安装OpenHarmony应用需要使用hdc工具,通过手动执行命令行完成应用的安装。 安装OpenHarmony应用需要使用hdc工具,通过手动执行命令行完成应用的安装。
hdc工具本身需要手动从开源仓中获取。然后使用工具将编译后的hap包发送至设备侧,然后通过hdc命令完成app的安装。 hdc工具本身需要手动从开源仓中获取。然后使用工具将编译后的hap包发送至设备侧,然后通过hdc命令完成app的安装。
相关命令如下: 相关命令如下:
- 文件发送命令
**file send _localpath remotepath_** - 文件发送命令
**file send *localpath remotepath***
命令示例: 命令示例:
...@@ -17,8 +19,7 @@ hdc工具本身需要手动从开源仓中获取。然后使用工具将编译 ...@@ -17,8 +19,7 @@ hdc工具本身需要手动从开源仓中获取。然后使用工具将编译
``` ```
- 安装命令 - 安装命令
**install [-r/-d/-g] *package***
**install \[-r/-d/-g\] _package_**
命令示例: 命令示例:
...@@ -27,7 +28,6 @@ hdc工具本身需要手动从开源仓中获取。然后使用工具将编译 ...@@ -27,7 +28,6 @@ hdc工具本身需要手动从开源仓中获取。然后使用工具将编译
``` ```
- 日志抓取命令 - 日志抓取命令
**hilog** **hilog**
命令示例: 命令示例:
...@@ -37,5 +37,5 @@ hdc工具本身需要手动从开源仓中获取。然后使用工具将编译 ...@@ -37,5 +37,5 @@ hdc工具本身需要手动从开源仓中获取。然后使用工具将编译
``` ```
完整的hdc工具使用指导及命令格式请参见开源仓docs/zh-cn/device-dev/subsystems/hdc使用指导.md“。 完整的hdc工具使用指导及命令格式请参见开源仓docs/zh-cn/device-dev/subsystems/hdc使用指导.md“。
# 包结构说明<a name="ZH-CN_TOPIC_0000001117322842"></a> # 包结构说明
在应用开发的工程中,需要在config.json配置文件中对应用的包结构进行声明。 在应用开发的工程中,需要在config.json配置文件中对应用的包结构进行声明。
配置文件示例如下: 配置文件示例如下:
``` ```
{ {
"app": { "app": {
...@@ -67,9 +69,12 @@ ...@@ -67,9 +69,12 @@
} }
``` ```
**包结构声明需要注意以下约束:** **包结构声明需要注意以下约束:**
- "package"字段命名要保证在相同bundleName的应用内唯一。 - "package"字段命名要保证在相同bundleName的应用内唯一。
- "abilities"字段下只能声明一个ability。 - "abilities"字段下只能声明一个ability。
- "abilities"字段中ability的"name"字段命名要保证在相同bundleName的应用内唯一。
- "abilities"字段中ability的"name"字段命名要保证在相同bundleName的应用内唯一。
# 开发准备<a name="ZH-CN_TOPIC_0000001063968051"></a> # 开发准备
- [任务说明](#section2073881513322) - [任务说明](#任务说明)
- [开发准备](#section11843205017326) - [开发准备](#开发准备)
## 任务说明<a name="section2073881513322"></a> ## 任务说明
本文档适用于OpenHarmony应用开发的初学者。通过构建一个简单的具有页面跳转功能的应用(如下图[预览器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/previewer-0000001054328973#ZH-CN_TOPIC_0000001056725592__section16523172216252)运行效果所示),熟悉OpenHarmony应用开发流程。 本文档适用于OpenHarmony应用开发的初学者。通过构建一个简单的具有页面跳转功能的应用(如下图[预览器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/previewer-0000001054328973#ZH-CN_TOPIC_0000001056725592__section16523172216252)运行效果所示),熟悉OpenHarmony应用开发流程。
为确保运行效果,请使用最新版本的**DevEco Studio**完成本任务,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download)获取下载链接。 为确保运行效果,请使用最新版本的 **DevEco Studio**完成本任务,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download)获取下载链接。
![](figures/3.png) ![zh-cn_image_0000001166904552](figures/zh-cn_image_0000001166904552.png)
## 开发准备<a name="section11843205017326"></a>
1. 开始前请参考[配置OpenHarmony SDK](configuring-openharmony-sdk.md),完成**DevEco Studio**的安装和开发环境配置。
2. 开发环境配置完成后,请参考[创建OpenHarmony工程](use-wizard-to-create-project.md)创建工程。
- 使用JS语言开发,模板选择“Empty Ability“,Language选择Js。
3. 工程创建完成后,使用[预览器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/previewer-0000001054328973#ZH-CN_TOPIC_0000001056725592__section16523172216252)[模拟器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/run_simulator-0000001053303709)运行该工程。 ## 开发准备
1. 开始前请参考[配置OpenHarmony SDK](../quick-start/configuring-openharmony-sdk.md),完成 **DevEco Studio**的安装和开发环境配置。
2. 开发环境配置完成后,请参考[创建OpenHarmony工程](../quick-start/use-wizard-to-create-project.md)创建工程。
- 使用JS语言开发,模板选择Empty Ability,Language选择Js。
完成上述操作后,请参考[使用JS语言开发](start-with-js.md)继续下一步的学习。
3. 工程创建完成后,使用[预览器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/previewer-0000001054328973#ZH-CN_TOPIC_0000001056725592__section16523172216252)[模拟器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/run_simulator-0000001053303709)运行该工程。
完成上述操作后,请参考[使用JS语言开发](../quick-start/start-with-js.md)继续下一步的学习。
# 使用JS语言开发<a name="ZH-CN_TOPIC_0000001064805858"></a> # 使用JS语言开发
- [编写第一个页面](#section17436202895811) - [编写第一个页面](#编写第一个页面)
- [创建另一个页面](#section944219415598) - [创建另一个页面](#创建另一个页面)
- [实现页面跳转](#section126857614017) - [实现页面跳转](#实现页面跳转)
## 编写第一个页面<a name="section17436202895811"></a> ## 编写第一个页面
1. 第一个页面内有一个文本和一个按钮,通过text和button组件来实现。 1. 第一个页面内有一个文本和一个按钮,通过text和button组件来实现。
在 “Project“窗口,选择“entry &gt; src &gt; mainjsdefaultpages &gt; index”,打开”index.hml“文件,添加一个文本和一个按钮,示例代码如下:
在“Project“窗口,选择“entry \> src \> main \> js \> default \> pages \> index“,打开“index.hml“文件,添加一个文本和一个按钮,示例代码如下:
``` ```
<!-- index.hml --> <!-- index.hml -->
...@@ -22,14 +21,15 @@ ...@@ -22,14 +21,15 @@
</div> </div>
``` ```
2. 打开“index.css“文件,设置文本和按钮的样式,示例代码如下: 2. 打开“index.css”文件,设置文本和按钮的样式,示例代码如下:
``` ```
/* index.css */ /* index.css */
.container { .container {
flex-direction: column; /* 设置容器内的项目纵向排列 */ flex-direction: column; /* 设置容器内的项目纵向排列 */
justify-content: center; /* 设置项目位于容器主轴的中心 */ justify-content: center; /* 设置项目位于容器主轴的中心 */
align-items: center; /* 项目在交叉轴居中 */ align-items: center; /* 项目在交叉轴居中 */
width:100%;
height:100%;
} }
/* 对class="text"的组件设置样式 */ /* 对class="text"的组件设置样式 */
.text{ .text{
...@@ -47,20 +47,17 @@ ...@@ -47,20 +47,17 @@
``` ```
3. 使用[预览器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/previewer-0000001054328973#ZH-CN_TOPIC_0000001056725592__section16523172216252)[模拟器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/run_simulator-0000001053303709)运行项目,效果如下图所示: 3. 使用[预览器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/previewer-0000001054328973#ZH-CN_TOPIC_0000001056725592__section16523172216252)[模拟器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/run_simulator-0000001053303709)运行项目,效果如下图所示:
![zh-cn_image_0000001212066021](figures/zh-cn_image_0000001212066021.png)
![](figures/1.png)
## 创建另一个页面<a name="section944219415598"></a>
1. 在“Project“窗口,打开“entry \> src \> main \> js \> default“,右键点击“pages“文件夹,选择“New \> JS Page“,命名为“details“,单击回车键。
创建完成后,可以看到“pages.index“文件夹下的文件目录结构如下: ## 创建另一个页面
![](figures/1-0.png) 1. 在 “Project“窗口,打开“entry &gt; src &gt; mainjsdefault”,右键点击“pages”文件夹,选择“New > JS Page”,命名为“details”,单击回车键。
创建完成后,可以看到pages文件夹下的文件目录结构如下:
2. 打开“details.hml“文件,添加一个文本,示例代码如下: ![zh-cn_image_0000001166744640](figures/zh-cn_image_0000001166744640.png)
2. 打开“details.hml”文件,添加一个文本,示例代码如下:
``` ```
<!-- details.hml --> <!-- details.hml -->
<div class="container"> <div class="container">
...@@ -70,14 +67,15 @@ ...@@ -70,14 +67,15 @@
</div> </div>
``` ```
3. 打开“details.css“文件,设置文本的样式,示例代码如下: 3. 打开“details.css”文件,设置文本的样式,示例代码如下:
``` ```
/* details.css */ /* details.css */
.container { .container {
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
width:100%;
height:100%;
} }
.text { .text {
font-size: 42px; font-size: 42px;
...@@ -86,10 +84,9 @@ ...@@ -86,10 +84,9 @@
``` ```
## 实现页面跳转<a name="section126857614017"></a> ## 实现页面跳转
1. 打开第一个页面的“index.js“文件,导入router模块,页面路由router根据页面的uri来找到目标页面,从而实现跳转。示例代码如下:
1. 打开第一个页面的“index.js”文件,导入router模块,页面路由router根据页面的uri来找到目标页面,从而实现跳转。示例代码如下:
``` ```
// index.js // index.js
import router from '@system.router'; import router from '@system.router';
...@@ -97,16 +94,13 @@ ...@@ -97,16 +94,13 @@
export default { export default {
launch() { launch() {
router.push ({ router.push ({
uri:'pages/index/details/details', // 指定要跳转的页面 uri:'pages/details/details', // 指定要跳转的页面
}) })
} }
} }
``` ```
2. 再次使用[预览器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/previewer-0000001054328973#ZH-CN_TOPIC_0000001056725592__section16523172216252)[模拟器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/run_simulator-0000001053303709)运行项目,效果如下图所示: 2. 再次使用[预览器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/previewer-0000001054328973#ZH-CN_TOPIC_0000001056725592__section16523172216252)[模拟器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/run_simulator-0000001053303709)运行项目,效果如下图所示:
![zh-cn_image_0000001166904582](figures/zh-cn_image_0000001166904582.png)
![](figures/2.png)
恭喜你,至此已成功完成OpenHarmony快速入门-使用JS语言开发。 恭喜你,至此已成功完成OpenHarmony快速入门-使用JS语言开发。
# 快速入门<a name="ZH-CN_TOPIC_0000001115740240"></a> # 快速入门
- **[开发准备](start-overview.md)** - **[开发准备](start-overview.md)**
- **[使用JS语言开发](start-with-js.md)** - **[使用JS语言开发](start-with-js.md)**
# 使用工程向导创建新工程<a name="ZH-CN_TOPIC_0000001176969367"></a> # 使用工程向导创建新工程
- [前提条件](#section13642104391619) - [前提条件](#前提条件)
- [操作步骤](#section132671712101714) - [操作步骤](#操作步骤)
通过工程向导创建一个OpenHarmony工程,该功能只有DevEco Studio 2.2 Beta1及以上版本支持。如果是DevEco Studio 2.1 Release版本,请根据[通过导入Sample方式创建新工程](import-sample-to-create-project.md)进行操作。 通过工程向导创建一个OpenHarmony工程,该功能只有DevEco Studio 2.2 Beta1及以上版本支持。如果是DevEco Studio 2.1 Release版本,请根据[通过导入Sample方式创建新工程](../quick-start/import-sample-to-create-project.md)进行操作。
## 前提条件<a name="section13642104391619"></a>
已安装OpenHarmony SDK,具体请参考[配置OpenHarmony SDK](configuring-openharmony-sdk.md) ## 前提条件
## 操作步骤<a name="section132671712101714"></a> 已安装OpenHarmony SDK,具体请参考[配置OpenHarmony SDK](../quick-start/configuring-openharmony-sdk.md)
1. 通过如下两种方式,打开工程创建向导界面。
- 如果当前未打开任何工程,可以在DevEco Studio的欢迎页,选择**Create Project**开始创建一个新工程。
- 如果已经打开了工程,可以在菜单栏选择**File \> New \> New Project**来创建一个新工程。
2. 根据工程创建向导,选择**\[Standard\]Empty Ability**模板,点击**Next** ## 操作步骤
1. 通过如下两种方式,打开工程创建向导界面。
- 如果当前未打开任何工程,可以在DevEco Studio的欢迎页,选择 **Create Project**开始创建一个新工程。
- 如果已经打开了工程,可以在菜单栏选择 **File &gt; New &gt; New Project**来创建一个新工程。
![](figures/zh-cn_image_0000001162463400.png) 2. 根据工程创建向导,选择 **[Standard]Empty Ability**模板,点击 **Next**
![zh-cn_image_0000001162463400](figures/zh-cn_image_0000001162463400.png)
3. 点击**Next**,进入到工程配置阶段,需要根据向导配置工程的基本信息。 3. 点击 **Next**,进入到工程配置阶段,需要根据向导配置工程的基本信息。
- **Project Name**:工程的名称,可以自定义。 - **Project Name**:工程的名称,可以自定义。
- **Project Type**:工程的类型,标识该工程是一个[原子化服务](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/atomic-service-definition-0000001090840664)(Service)或传统方式的需要安装的应用(Application)。 - **Project Type**:工程的类型,标识该工程是一个[原子化服务](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/atomic-service-definition-0000001090840664)(Service)或传统方式的需要安装的应用(Application)。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br/>
>![](../public_sys-resources/icon-note.gif) **说明:** > 如果是创建的原子化服务,则:
>如果是创建的原子化服务,则: >
>- 原子化服务调试、运行时,在设备桌面上没有应用图标,请使用DevEco Studio的调试和运行功能,来启动原子化服务。 > - 原子化服务调试、运行时,在设备桌面上没有应用图标,请使用DevEco Studio的调试和运行功能,来启动原子化服务。
>- 原子化服务是免安装的,config.json中自动添加**installationFree**字段,取值为“true”。 >
>- 如果entry模块的**installationFree**字段为true,则其相关的所有hap模块的**installationFree**字段都默认为true;如果entry模块的**installationFree**字段为false,则其相关的所有hap模块可以配置为true或false。 > - 原子化服务是免安装的,config.json中自动添加 **installationFree**字段,取值为“true”。
>- 编译构建App时,每个hap包大小不能超过10MB。 >
> - 如果entry模块的 **installationFree**字段为true,则其相关的所有hap模块的 **installationFree**字段都默认为true;如果entry模块的 **installationFree**字段为false,则其相关的所有hap模块可以配置为true或false。
>
> - 编译构建App时,每个hap包大小不能超过10MB。
- **Package Name**:软件包名称,默认情况下,应用ID也会使用该名称,应用发布时,应用ID需要唯一。 - **Package Name**:软件包名称,默认情况下,应用ID也会使用该名称,应用发布时,应用ID需要唯一。
- **Save Location**:工程文件本地存储路径。 - **Save Location**:工程文件本地存储路径。
- **Compatible API Version**:兼容的SDK最低版本。 - **Compatible API Version**:兼容的SDK最低版本。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br/>
> OpenHarmony工程如果配置了compileSdkVersion 7以上,对应模块默认使用方舟编译器进行编译,如果要修改编译方式为非方舟编译,在模块级build.gradle的 **ohos**闭包中添加 **arkEnable false**字段。
- **Language**:支持的开发语言。
- **Device Type**:该工程模板支持的设备类型。<br/>
![zh-cn_image_0000001208210505](figures/zh-cn_image_0000001208210505.png)
>![](../public_sys-resources/icon-note.gif) **说明:** 4. 点击 **Finish**,工具会自动生成示例代码和相关资源,等待工程创建完成。
>OpenHarmony工程如果配置了compileSdkVersion 7以上,对应模块默认使用方舟编译器进行编译,如果要修改编译方式为非方舟编译,在模块级build.gradle的**ohos**闭包中添加**arkEnable false**字段。
- **Language:**支持的开发语言。
- **Device Type**:该工程模板支持的设备类型。
![](figures/zh-cn_image_0000001208210505.png)
4. 点击**Finish**,工具会自动生成示例代码和相关资源,等待工程创建完成。
# UI # UI
- [JS UI框架](ui-js.md)
- JS UI框架
- [JS UI框架概述](ui-js-overview.md) - [JS UI框架概述](ui-js-overview.md)
- [构建用户界面](ui-js-building-ui.md) - 构建用户界面
- [组件介绍](ui-js-building-ui-component.md) - [组件介绍](ui-js-building-ui-component.md)
- [构建布局](ui-js-building-ui-layout.md) - 构建布局
- [布局说明](ui-js-building-ui-layout-intro.md) - [布局说明](ui-js-building-ui-layout-intro.md)
- [添加标题行和文本区域](ui-js-building-ui-layout-text.md) - [添加标题行和文本区域](ui-js-building-ui-layout-text.md)
- [添加图片区域](ui-js-building-ui-layout-image.md) - [添加图片区域](ui-js-building-ui-layout-image.md)
- [添加留言区域](ui-js-building-ui-layout-comment.md) - [添加留言区域](ui-js-building-ui-layout-comment.md)
- [添加容器](ui-js-building-ui-layout-external-container.md) - [添加容器](ui-js-building-ui-layout-external-container.md)
- [添加交互](ui-js-building-ui-interactions.md) - [添加交互](ui-js-building-ui-interactions.md)
- [动画](ui-js-building-ui-animation.md) - [动画](ui-js-building-ui-animation.md)
- [事件](ui-js-building-ui-event.md) - [事件](ui-js-building-ui-event.md)
- [页面路由](ui-js-building-ui-routes.md) - [页面路由](ui-js-building-ui-routes.md)
- [自定义组件](ui-js-custom-components.md) - [自定义组件](ui-js-custom-components.md)
# 动画<a name="ZH-CN_TOPIC_0000001063908646"></a> # 动画
- [静态动画](#section456613911492) - [静态动画](#静态动画)
- [连续动画](#section17836125204914) - [连续动画](#连续动画)
动画分为[静态动画](#section456613911492)[连续动画](#section17836125204914) 动画分为[静态动画](#静态动画)[连续动画](#连续动画)
## 静态动画<a name="section456613911492"></a>
## 静态动画
静态动画的核心是transform样式,主要可以实现以下三种变换类型,一次样式设置只能实现一种类型变换。 静态动画的核心是transform样式,主要可以实现以下三种变换类型,一次样式设置只能实现一种类型变换。
- **translate**:沿水平或垂直方向将指定组件移动所需距离。 - **translate**:沿水平或垂直方向将指定组件移动所需距离。
- **scale**:横向或纵向将指定组件缩小或放大到所需比例。 - **scale**:横向或纵向将指定组件缩小或放大到所需比例。
- **rotate**:将指定组件沿横轴或纵轴或中心点旋转指定的角度。 - **rotate**:将指定组件沿横轴或纵轴或中心点旋转指定的角度。
具体的使用示例如下。 具体的使用示例如下。
...@@ -54,19 +57,25 @@ ...@@ -54,19 +57,25 @@
} }
``` ```
**图 1** 静态动画效果图<a name="fig454415020219"></a>
![](figures/静态动画效果图.png "静态动画效果图")
## 连续动画<a name="section17836125204914"></a> **图1** 静态动画效果图<br/>
![zh-cn_image_0000001212066279](figures/zh-cn_image_0000001212066279.png)
## 连续动画
静态动画只有开始状态和结束状态,没有中间状态,如果需要设置中间的过渡状态和转换效果,需要使用连续动画实现。 静态动画只有开始状态和结束状态,没有中间状态,如果需要设置中间的过渡状态和转换效果,需要使用连续动画实现。
连续动画的核心是animation样式,它定义了动画的开始状态、结束状态以及时间和速度的变化曲线。通过animation样式可以实现的效果有: 连续动画的核心是animation样式,它定义了动画的开始状态、结束状态以及时间和速度的变化曲线。通过animation样式可以实现的效果有:
- **animation-name**:设置动画执行后应用到组件上的背景颜色、透明度、宽高和变换类型。 - **animation-name**:设置动画执行后应用到组件上的背景颜色、透明度、宽高和变换类型。
- **animation-delay****animation-duration**:分别设置动画执行后元素延迟和持续的时间。
- **animation-delay****animation-duration**:分别设置动画执行后元素延迟和持续的时间。
- **animation-timing-function**:描述动画执行的速度曲线,使动画更加平滑。 - **animation-timing-function**:描述动画执行的速度曲线,使动画更加平滑。
- **animation-iteration-count**:定义动画播放的次数。 - **animation-iteration-count**:定义动画播放的次数。
- **animation-fill-mode**:指定动画执行结束后是否恢复初始状态。 - **animation-fill-mode**:指定动画执行结束后是否恢复初始状态。
animation样式需要在css文件中先定义keyframe,在keyframe中设置动画的过渡效果,并通过一个样式类型在hml文件中调用。animation-name的使用示例如下: animation样式需要在css文件中先定义keyframe,在keyframe中设置动画的过渡效果,并通过一个样式类型在hml文件中调用。animation-name的使用示例如下:
...@@ -150,6 +159,6 @@ export default { ...@@ -150,6 +159,6 @@ export default {
} }
``` ```
**图 2** 连续动画效果图<a name="fig1173091112515"></a> **图2** 连续动画效果图<br/>
![](figures/连续动画效果图.gif "连续动画效果图") ![zh-cn_image_0000001166744904](figures/zh-cn_image_0000001166744904.gif)
# 组件介绍<a name="ZH-CN_TOPIC_0000001063340551"></a> # 组件介绍
- [组件分类](#section154381954142018) - [组件分类](#组件分类)
组件(Component)是构建页面的核心,每个组件通过对数据和方法的简单封装,实现独立的可视、可交互功能单元。组件之间相互独立,随取随用,也可以在需求相同的地方重复使用。 组件(Component)是构建页面的核心,每个组件通过对数据和方法的简单封装,实现独立的可视、可交互功能单元。组件之间相互独立,随取随用,也可以在需求相同的地方重复使用。关于组件的详细参考文档请参见[组件](../js-reference/component/Readme-CN.md)
## 组件分类<a name="section154381954142018"></a> 开发者还可以通过组件间合理的搭配定义满足业务需求的新组件,减少开发量,自定义组件的开发方法请参见[自定义组件](../js-reference/component/js-components-custom.md)
## 组件分类
根据组件的功能,可以分为以下四大类: 根据组件的功能,可以分为以下四大类:
<a name="table1566416553433"></a> | 组件类型 | 主要组件 |
<table><thead align="left"><tr id="row466410559436"><th class="cellrowborder" valign="top" width="33.23%" id="mcps1.1.3.1.1"><p id="p1166485514432"><a name="p1166485514432"></a><a name="p1166485514432"></a>组件类型</p> | -------- | -------- |
</th> | 基础组件 | button、chart、divider、image、image-animator、input、label、marquee、menu、option、picker、picker-view、piece、progress、qrcode、rating、richtext、search、select、slider、span、switch、text、textarea、toolbar、toolbar-item、toggle |
<th class="cellrowborder" valign="top" width="66.77%" id="mcps1.1.3.1.2"><p id="p146651555174320"><a name="p146651555174320"></a><a name="p146651555174320"></a>主要组件</p> | 容器组件 | badge、dialog、div、form、list、list-item、list-item-group、panel、popup、refresh、stack、stepper、stepper-item、swiper、tabs、tab-bar、tab-content |
</th> |媒体组件|video|
</tr> | 画布组件 | canvas |
</thead> |栅格组件|grid-container、grid-row、grid-col|
<tbody><tr id="row166525516430"><td class="cellrowborder" valign="top" width="33.23%" headers="mcps1.1.3.1.1 "><p id="p116655558432"><a name="p116655558432"></a><a name="p116655558432"></a>基础组件</p> |svg组件|svg、rect、circle、ellipse、path、line、polyline、polygon、text、tspan、textPath、animate、animateMotion、animateTransform|
</td>
<td class="cellrowborder" valign="top" width="66.77%" headers="mcps1.1.3.1.2 "><p id="p12145036194419"><a name="p12145036194419"></a><a name="p12145036194419"></a>text、image、progress、rating、span、marquee、image-animator、divider、search、menu、chart</p>
</td>
</tr>
<tr id="row10665555154310"><td class="cellrowborder" valign="top" width="33.23%" headers="mcps1.1.3.1.1 "><p id="p1266535584311"><a name="p1266535584311"></a><a name="p1266535584311"></a>容器组件</p>
</td>
<td class="cellrowborder" valign="top" width="66.77%" headers="mcps1.1.3.1.2 "><p id="p18127648144417"><a name="p18127648144417"></a><a name="p18127648144417"></a>div、list、list-item、stack、swiper、tabs、tab-bar、tab-content、list-item-group、refresh、dialog</p>
</td>
</tr>
<tr id="row3665175512436"><td class="cellrowborder" valign="top" width="33.23%" headers="mcps1.1.3.1.1 "><p id="p196651055164310"><a name="p196651055164310"></a><a name="p196651055164310"></a>画布组件</p>
</td>
<td class="cellrowborder" valign="top" width="66.77%" headers="mcps1.1.3.1.2 "><p id="p066545564313"><a name="p066545564313"></a><a name="p066545564313"></a>canvas</p>
</td>
</tr>
</tbody>
</table>
# 事件<a name="ZH-CN_TOPIC_0000001063300566"></a> # 事件
- [手势事件](#section21104561094) - [手势事件](#手势事件)
- [按键事件](#按键事件)
事件主要为手势事件。手势事件主要用于具有触摸屏的设备。 事件主要为手势事件。手势事件主要用于具有触摸屏的设备。
## 手势事件<a name="section21104561094"></a>
手势表示由单个或多个事件识别的语义动作(例如:点击、拖动和长按)。一个完整的手势也可能由多个事件组成,对应手势的生命周期。JS UI框架支持的手势事件有: ## 手势事件
**触摸** 手势表示由单个或多个事件识别的语义动作(例如:点击、拖动和长按)。一个完整的手势也可能由多个事件组成,对应手势的生命周期。JS UI框架支持的手势事件有:
**触摸**
- touchstart:手指触摸动作开始。 - touchstart:手指触摸动作开始。
- touchmove:手指触摸后移动。 - touchmove:手指触摸后移动。
- touchcancel:手指触摸动作被打断,如来电提醒、弹窗。 - touchcancel:手指触摸动作被打断,如来电提醒、弹窗。
- touchend:手指触摸动作结束。 - touchend:手指触摸动作结束。
**点击** **点击**
......
# 添加交互<a name="ZH-CN_TOPIC_0000001064068636"></a> # 添加交互
添加交互可以通过在组件上关联事件实现。本节将介绍如何用div、text、image组件关联click事件,构建一个如下图所示的点赞按钮。 添加交互可以通过在组件上关联事件实现。本节将介绍如何用div、text、image组件关联click事件,构建一个如下图所示的点赞按钮。
**图1** 点赞按钮效果
**图 1** 点赞按钮效果<a name="fig071716222515"></a> ![zh-cn_image_0000001212146221](figures/zh-cn_image_0000001212146221.gif)
![](figures/zan.gif)
点赞按钮通过一个div组件关联click事件实现。div组件包含一个image组件和一个text组件: 点赞按钮通过一个div组件关联click事件实现。div组件包含一个image组件和一个text组件:
- image组件用于显示未点赞和点赞的效果。click事件函数会交替更新点赞和未点赞图片的路径。 - image组件用于显示未点赞和点赞的效果。click事件函数会交替更新点赞和未点赞图片的路径。
- text组件用于显示点赞数,点赞数会在click事件的函数中同步更新。 - text组件用于显示点赞数,点赞数会在click事件的函数中同步更新。
click事件作为一个函数定义在js文件中,可以更改isPressed的状态,从而更新显示的image组件。如果isPressed为真,则点赞数加1。该函数在hml文件中对应的div组件上生效,点赞按钮各子组件的样式设置在css文件当中。具体的实现示例如下: click事件作为一个函数定义在js文件中,可以更改isPressed的状态,从而更新显示的image组件。如果isPressed为真,则点赞数加1。该函数在hml文件中对应的div组件上生效,点赞按钮各子组件的样式设置在css文件当中。具体的实现示例如下:
``` ```
<!-- xxx.hml --> <!-- xxx.hml -->
<!-- 点赞按钮 --> <!-- 点赞按钮 -->
...@@ -25,6 +28,7 @@ click事件作为一个函数定义在js文件中,可以更改isPressed的状 ...@@ -25,6 +28,7 @@ click事件作为一个函数定义在js文件中,可以更改isPressed的状
</div> </div>
``` ```
``` ```
/* xxx.css */ /* xxx.css */
.like { .like {
...@@ -48,6 +52,7 @@ click事件作为一个函数定义在js文件中,可以更改isPressed的状 ...@@ -48,6 +52,7 @@ click事件作为一个函数定义在js文件中,可以更改isPressed的状
} }
``` ```
``` ```
// xxx.js // xxx.js
export default { export default {
...@@ -71,5 +76,5 @@ export default { ...@@ -71,5 +76,5 @@ export default {
} }
``` ```
JS UI框架还提供了很多表单组件,例如开关、标签、滑动选择器等,以便于开发者在页面布局时灵活使用和提高交互性。
JS UI框架还提供了很多表单组件,例如开关、标签、滑动选择器等,以便于开发者在页面布局时灵活使用和提高交互性。
# 添加留言区域<a name="ZH-CN_TOPIC_0000001063470826"></a> # 添加留言区域
留言框的功能为:用户输入留言后点击完成,留言区域即显示留言内容;用户点击右侧的删除按钮可删除当前留言内容并重新输入。 留言框的功能为:用户输入留言后点击完成,留言区域即显示留言内容;用户点击右侧的删除按钮可删除当前留言内容并重新输入。
留言区域由div、text、input关联click事件实现。开发者可以使用input组件实现输入留言的部分,使用text组件实现留言完成部分,使用commentText的状态标记此时显示的组件(通过if属性控制)。在包含文本“完成“和“删除“的text组件中关联click事件,更新commentText状态和inputValue的内容。具体的实现示例如下:
留言区域由div、text、input关联click事件实现。开发者可以使用input组件实现输入留言的部分,使用text组件实现留言完成部分,使用commentText的状态标记此时显示的组件(通过if属性控制)。在包含文本完成和删除的text组件中关联click事件,更新commentText状态和inputValue的内容。具体的实现示例如下:
``` ```
<!-- xxx.hml --> <!-- xxx.hml -->
...@@ -19,6 +21,7 @@ ...@@ -19,6 +21,7 @@
</div> </div>
``` ```
``` ```
/* xxx.css */ /* xxx.css */
.container { .container {
...@@ -30,7 +33,7 @@ ...@@ -30,7 +33,7 @@
color: #1a1a1a; color: #1a1a1a;
font-weight: bold; font-weight: bold;
margin-top: 40px; margin-top: 40px;
margin-bottom: 10px; margin-bottom: 10px;
} }
.comment { .comment {
width: 550px; width: 550px;
...@@ -60,6 +63,7 @@ ...@@ -60,6 +63,7 @@
} }
``` ```
``` ```
// xxx.js // xxx.js
export default { export default {
...@@ -75,4 +79,3 @@ export default { ...@@ -75,4 +79,3 @@ export default {
}, },
} }
``` ```
# 添加容器<a name="ZH-CN_TOPIC_0000001062990841"></a> # 添加容器
- [List组件](#section1875054932714) - [List组件](#list组件)
- [Tabs组件](#section91861363535) - [Tabs组件](#tabs组件)
要将页面的基本元素组装在一起,需要使用容器组件。在页面布局中常用到三种容器组件,分别是div、list和tabs。在页面结构相对简单时,可以直接用div作为容器,因为div作为单纯的布局容器,可以支持多种子组件,使用起来更为方便。 要将页面的基本元素组装在一起,需要使用容器组件。在页面布局中常用到三种容器组件,分别是div、list和tabs。在页面结构相对简单时,可以直接用div作为容器,因为div作为单纯的布局容器,可以支持多种子组件,使用起来更为方便。
## List组件<a name="section1875054932714"></a>
## List组件
当页面结构较为复杂时,如果使用div循环渲染,容易出现卡顿,因此推荐使用list组件代替div组件实现长列表布局,从而实现更加流畅的列表滚动体验。需要注意的是,list仅支持list-item作为子组件,具体的使用示例如下: 当页面结构较为复杂时,如果使用div循环渲染,容易出现卡顿,因此推荐使用list组件代替div组件实现长列表布局,从而实现更加流畅的列表滚动体验。需要注意的是,list仅支持list-item作为子组件,具体的使用示例如下:
...@@ -37,7 +38,8 @@ export default { ...@@ -37,7 +38,8 @@ export default {
为避免示例代码过长,以上示例的list中只包含一个list-item,list-item中只有一个text组件。在实际应用中可以在list中加入多个list-item,同时list-item下可以包含多个其他子组件。 为避免示例代码过长,以上示例的list中只包含一个list-item,list-item中只有一个text组件。在实际应用中可以在list中加入多个list-item,同时list-item下可以包含多个其他子组件。
## Tabs组件<a name="section91861363535"></a>
## Tabs组件
当页面经常需要动态加载时,推荐使用tabs组件。tabs组件支持change事件,在页签切换后触发。tabs组件仅支持一个tab-bar和一个tab-content。具体的使用示例如下: 当页面经常需要动态加载时,推荐使用tabs组件。tabs组件支持change事件,在页签切换后触发。tabs组件仅支持一个tab-bar和一个tab-content。具体的使用示例如下:
...@@ -69,4 +71,3 @@ export default { ...@@ -69,4 +71,3 @@ export default {
``` ```
tab-content组件用来展示页签的内容区,高度默认充满tabs剩余空间。 tab-content组件用来展示页签的内容区,高度默认充满tabs剩余空间。
# 添加图片区域<a name="ZH-CN_TOPIC_0000001063590816"></a> # 添加图片区域
添加图片区域通常用image组件来实现,使用的方法和text组件类似。 添加图片区域通常用image组件来实现,使用的方法和text组件类似。
图片资源建议放在“js \> default \> common“目录下,common目录需自行创建。代码示例如下:
图片资源建议放在jsdefaultcommon目录下,common目录需自行创建。代码示例如下:
``` ```
<!-- xxx.hml --> <!-- xxx.hml -->
<image class="img" src="{{middleImage}}"></image> <image class="img" src="{{middleImage}}"></image>
``` ```
``` ```
/* xxx.css */ /* xxx.css */
.img { .img {
...@@ -18,6 +21,7 @@ ...@@ -18,6 +21,7 @@
} }
``` ```
``` ```
// xxx.js // xxx.js
export default { export default {
...@@ -26,4 +30,3 @@ export default { ...@@ -26,4 +30,3 @@ export default {
}, },
} }
``` ```
# 布局说明<a name="ZH-CN_TOPIC_0000001063230905"></a> # 布局说明
JS UI框架中,设备的基准宽度为720px(px为逻辑像素,非物理像素),实际显示效果会根据实际屏幕宽度进行缩放。 JS UI框架中,设备的基准宽度为720px(px为逻辑像素,非物理像素),实际显示效果会根据实际屏幕宽度进行缩放。
其换算关系如下: 其换算关系如下:
组件的width设为100px时,在宽度为720物理像素的屏幕上,实际显示为100物理像素;在宽度为1440物理像素的屏幕上,实际显示为200物理像素。 组件的width设为100px时,在宽度为720物理像素的屏幕上,实际显示为100物理像素;在宽度为1440物理像素的屏幕上,实际显示为200物理像素。
一个页面的基本元素包含标题区域、文本区域、图片区域等,每个基本元素内还可以包含多个子元素,开发者根据需求还可以添加按钮、开关、进度条等组件。在构建页面布局时,需要对每个基本元素思考以下几个问题: 一个页面的基本元素包含标题区域、文本区域、图片区域等,每个基本元素内还可以包含多个子元素,开发者根据需求还可以添加按钮、开关、进度条等组件。在构建页面布局时,需要对每个基本元素思考以下几个问题:
- 该元素的尺寸和排列位置 - 该元素的尺寸和排列位置
- 是否有重叠的元素 - 是否有重叠的元素
- 是否需要设置对齐、内间距或者边界 - 是否需要设置对齐、内间距或者边界
- 是否包含子元素及其排列位置
- 是否需要容器组件及其类型
将页面中的元素分解之后再对每个基本元素按顺序实现,可以减少多层嵌套造成的视觉混乱和逻辑混乱,提高代码的可读性,方便对页面做后续的调整。以下图为例进行分解: - 是否包含子元素及其排列位置
**图 1** 页面布局分解<a name="fig11335192315417"></a> - 是否需要容器组件及其类型
![](figures/页面布局分解.png "页面布局分解")
**图 2** 留言区布局分解<a name="fig186911810182717"></a>
将页面中的元素分解之后再对每个基本元素按顺序实现,可以减少多层嵌套造成的视觉混乱和逻辑混乱,提高代码的可读性,方便对页面做后续的调整。以下图为例进行分解:<br/>
**图1** 页面布局分解<br/>
![zh-cn_image_0000001166426374](figures/zh-cn_image_0000001166426374.png)
![](figures/图片3.png) **图2** 留言区布局分解<br/>
![zh-cn_image_0000001166586348](figures/zh-cn_image_0000001166586348.png)
# 添加标题行和文本区域<a name="ZH-CN_TOPIC_0000001063749052"></a> # 添加标题行和文本区域
实现标题和文本区域最常用的是基础组件text。text组件用于展示文本,可以设置不同的属性和样式,文本内容需要写在标签内容区。在页面中插入标题和文本区域的示例如下: 实现标题和文本区域最常用的是基础组件text。text组件用于展示文本,可以设置不同的属性和样式,文本内容需要写在标签内容区。在页面中插入标题和文本区域的示例如下:
``` ```
<!-- xxx.hml --> <!-- xxx.hml -->
<div class="container"> <div class="container">
...@@ -11,6 +12,7 @@ ...@@ -11,6 +12,7 @@
</div> </div>
``` ```
``` ```
/* xxx.css */ /* xxx.css */
.container { .container {
...@@ -31,6 +33,7 @@ ...@@ -31,6 +33,7 @@
} }
``` ```
``` ```
// xxx.js // xxx.js
export default { export default {
...@@ -41,4 +44,3 @@ export default { ...@@ -41,4 +44,3 @@ export default {
}, },
} }
``` ```
# 构建布局<a name="ZH-CN_TOPIC_0000001063148753"></a> # 构建布局
- **[布局说明](ui-js-building-ui-layout-intro.md)** - **[布局说明](ui-js-building-ui-layout-intro.md)**
...@@ -9,5 +10,3 @@ ...@@ -9,5 +10,3 @@
- **[添加留言区域](ui-js-building-ui-layout-comment.md)** - **[添加留言区域](ui-js-building-ui-layout-comment.md)**
- **[添加容器](ui-js-building-ui-layout-external-container.md)** - **[添加容器](ui-js-building-ui-layout-external-container.md)**
\ No newline at end of file
# 页面路由<a name="ZH-CN_TOPIC_0000001063442795"></a> # 页面路由
- [构建页面布局](#section135242911291) - [构建页面布局](#构建页面布局)
- [构建页面样式](#section174441114183216) - [构建页面样式](#构建页面样式)
- [实现跳转](#section1276711211359) - [实现跳转](#实现跳转)
很多应用由多个页面组成,比如用户可以从音乐列表页面点击歌曲,跳转到该歌曲的播放界面。开发者需要通过页面路由将这些页面串联起来,按需实现跳转。 很多应用由多个页面组成,比如用户可以从音乐列表页面点击歌曲,跳转到该歌曲的播放界面。开发者需要通过页面路由将这些页面串联起来,按需实现跳转。
页面路由router根据页面的uri找到目标页面,从而实现跳转。以最基础的两个页面之间的跳转为例,具体实现步骤如下: 页面路由router根据页面的uri找到目标页面,从而实现跳转。以最基础的两个页面之间的跳转为例,具体实现步骤如下:
1. 在“Project“窗口,打开“entry \> src \> main \> js \> default“,右键点击“pages“文件夹,选择“New \> JS Page“,创建一个详情页。
2. 调用router.push\(\)路由到详情页。
3. 调用router.back\(\)回到首页。
## 构建页面布局<a name="section135242911291"></a> 1. 在 “Project“窗口,打开“entry &gt; src &gt; main > js > default”,右键点击“pages”文件夹,选择“New > JS Page”,创建一个详情页。
2. 调用router.push()路由到详情页。
3. 调用router.back()回到首页。
## 构建页面布局
index和detail这两个页面均包含一个text组件和button组件:text组件用来指明当前页面,button组件用来实现两个页面之间的相互跳转。hml文件代码示例如下: index和detail这两个页面均包含一个text组件和button组件:text组件用来指明当前页面,button组件用来实现两个页面之间的相互跳转。hml文件代码示例如下:
...@@ -32,7 +37,8 @@ index和detail这两个页面均包含一个text组件和button组件:text组 ...@@ -32,7 +37,8 @@ index和detail这两个页面均包含一个text组件和button组件:text组
</div> </div>
``` ```
## 构建页面样式<a name="section174441114183216"></a>
## 构建页面样式
构建index和detail页面的页面样式,text组件和button组件居中显示,两个组件之间间距为50px。css代码如下(两个页面样式代码一致): 构建index和detail页面的页面样式,text组件和button组件居中显示,两个组件之间间距为50px。css代码如下(两个页面样式代码一致):
...@@ -51,9 +57,10 @@ index和detail这两个页面均包含一个text组件和button组件:text组 ...@@ -51,9 +57,10 @@ index和detail这两个页面均包含一个text组件和button组件:text组
} }
``` ```
## 实现跳转<a name="section1276711211359"></a>
为了使button组件的launch方法生效,需要在页面的js文件中实现跳转逻辑。调用router.push\(\)接口将uri指定的页面添加到路由栈中,即跳转到uri指定的页面。在调用router方法之前,需要导入router模块。代码示例如下: ## 实现跳转
为了使button组件的launch方法生效,需要在页面的js文件中实现跳转逻辑。调用router.push()接口将uri指定的页面添加到路由栈中,即跳转到uri指定的页面。在调用router方法之前,需要导入router模块。代码示例如下:
``` ```
// index.js // index.js
...@@ -79,6 +86,5 @@ export default { ...@@ -79,6 +86,5 @@ export default {
运行效果如下图所示: 运行效果如下图所示:
**图 1** 页面路由效果<a name="fig41915914355"></a> **图1** 页面路由效果<br/>
![](figures/页面路由效果.png "页面路由效果") ![zh-cn_image_0000001166904852](figures/zh-cn_image_0000001166904852.png)
# 构建用户界面<a name="ZH-CN_TOPIC_0000001063580501"></a> # 构建用户界面
- **[组件介绍](ui-js-building-ui-component.md)** - **[组件介绍](ui-js-building-ui-component.md)**
...@@ -11,5 +12,3 @@ ...@@ -11,5 +12,3 @@
- **[事件](ui-js-building-ui-event.md)** - **[事件](ui-js-building-ui-event.md)**
- **[页面路由](ui-js-building-ui-routes.md)** - **[页面路由](ui-js-building-ui-routes.md)**
\ No newline at end of file
# 自定义组件<a name="ZH-CN_TOPIC_0000001063340553"></a> # 自定义组件
JS UI框架支持自定义组件,用户可根据业务需求将已有的组件进行扩展,增加自定义的私有属性和事件,封装成新的组件,方便在工程中多次调用,提高页面布局代码的可读性。具体的封装方法示例如下: JS UI框架支持自定义组件,用户可根据业务需求将已有的组件进行扩展,增加自定义的私有属性和事件,封装成新的组件,方便在工程中多次调用,提高页面布局代码的可读性。具体的封装方法示例如下:
- **构建自定义组件**
- **构建自定义组件**
``` ```
<!-- comp.hml --> <!-- comp.hml -->
<div class="item"> <div class="item">
...@@ -59,7 +59,6 @@ JS UI框架支持自定义组件,用户可根据业务需求将已有的组件 ...@@ -59,7 +59,6 @@ JS UI框架支持自定义组件,用户可根据业务需求将已有的组件
``` ```
- **引入自定义组件** - **引入自定义组件**
``` ```
<!-- xxx.hml --> <!-- xxx.hml -->
<element name='comp' src='../../common/component/comp.hml'></element> <element name='comp' src='../../common/component/comp.hml'></element>
...@@ -95,6 +94,6 @@ JS UI框架支持自定义组件,用户可根据业务需求将已有的组件 ...@@ -95,6 +94,6 @@ JS UI框架支持自定义组件,用户可根据业务需求将已有的组件
本示例中父组件通过添加自定义属性向子组件传递了名称为title的参数,子组件在props中接收。同时子组件也通过事件绑定向上传递了参数text,接收时通过e.detail获取。要绑定子组件事件,父组件事件命名必须遵循事件绑定规则。自定义组件效果如下图所示: 本示例中父组件通过添加自定义属性向子组件传递了名称为title的参数,子组件在props中接收。同时子组件也通过事件绑定向上传递了参数text,接收时通过e.detail获取。要绑定子组件事件,父组件事件命名必须遵循事件绑定规则。自定义组件效果如下图所示:
**图 1** 自定义组件的效果<a name="fig12947164917208"></a>
![](figures/自定义组件的效果.png "自定义组件的效果")
**图1** 自定义组件的效果
![zh-cn_image_0000001212146243](figures/zh-cn_image_0000001212146243.png)
# JS UI框架概述<a name="ZH-CN_TOPIC_0000001064068634"></a> # JS UI框架概述
- [基础能力](#section1393616301083) - [基础能力](#基础能力)
- [整体架构](#section105231413161115) - [整体架构](#整体架构)
JS UI框架是OpenHarmony UI开发框架,提供基础类、容器类、画布类等UI组件和标准CSS动画能力,支持类Web范式编程。 JS UI框架是OpenHarmony UI开发框架,提供基础类、容器类、画布类等UI组件和标准CSS动画能力,支持类Web范式编程。
## 基础能力<a name="section1393616301083"></a> ## 基础能力
- **类Web范式编程**<br/>
- **类Web范式编程**
JS UI框架采用类HTML和CSS Web编程语言作为页面布局和页面样式的开发语言,页面业务逻辑则支持ECMAScript规范的JavaScript语言。JS UI框架提供的类Web编程范式,可以让开发者避免编写UI状态切换的代码,视图配置信息更加直观。 JS UI框架采用类HTML和CSS Web编程语言作为页面布局和页面样式的开发语言,页面业务逻辑则支持ECMAScript规范的JavaScript语言。JS UI框架提供的类Web编程范式,可以让开发者避免编写UI状态切换的代码,视图配置信息更加直观。
## 整体架构
## 整体架构<a name="section105231413161115"></a>
JS UI框架包括应用层(Application)、前端框架层(Framework)、引擎层(Engine)和平台适配层(Porting Layer)。 JS UI框架包括应用层(Application)、前端框架层(Framework)、引擎层(Engine)和平台适配层(Porting Layer)。
![](figures/zh-cn_image_0000001077953992.png)
- **Application**
应用层表示开发者使用JS UI框架开发的FA应用,这里的FA应用特指JS FA应用。 ![zh-cn_image_0000001166426358](figures/zh-cn_image_0000001166426358.png)
- **Framework** - **Application**<br/>
应用层表示开发者使用JS UI框架开发的FA应用,这里的FA应用特指JS FA应用。
- **Framework**<br/>
前端框架层主要完成前端页面解析,以及提供MVVM(Model-View-ViewModel)开发模式、页面路由机制和自定义组件等能力。 前端框架层主要完成前端页面解析,以及提供MVVM(Model-View-ViewModel)开发模式、页面路由机制和自定义组件等能力。
- **Engine** - **Engine**<br/>
引擎层主要提供动画解析、DOM(Document Object Model)树构建、布局计算、渲染命令构建与绘制、事件管理等能力。 引擎层主要提供动画解析、DOM(Document Object Model)树构建、布局计算、渲染命令构建与绘制、事件管理等能力。
- **Porting Layer** - **Porting Layer**<br/>
适配层主要完成对平台层进行抽象,提供抽象接口,可以对接到系统平台。比如:事件对接、渲染管线对接和系统生命周期对接等。 适配层主要完成对平台层进行抽象,提供抽象接口,可以对接到系统平台。比如:事件对接、渲染管线对接和系统生命周期对接等。
# JS UI框架<a name="ZH-CN_TOPIC_0000001147686971"></a> # JS UI框架
- **[JS UI框架概述](ui-js-overview.md)** - **[JS UI框架概述](ui-js-overview.md)**
...@@ -6,4 +7,3 @@ ...@@ -6,4 +7,3 @@
- **[自定义组件](ui-js-custom-components.md)** - **[自定义组件](ui-js-custom-components.md)**
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册