Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
609d81dd
D
Docs
项目概览
OpenHarmony
/
Docs
大约 2 年 前同步成功
通知
161
Star
293
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
609d81dd
编写于
3月 16, 2023
作者:
Z
zengyawen
提交者:
Gitee
3月 16, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update zh-cn/application-dev/reference/apis/js-apis-socket.md.
Signed-off-by:
N
zengyawen
<
zengyawen1@huawei.com
>
上级
30a1a17a
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
1899 addition
and
1197 deletion
+1899
-1197
zh-cn/application-dev/reference/apis/js-apis-socket.md
zh-cn/application-dev/reference/apis/js-apis-socket.md
+1899
-1197
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-socket.md
浏览文件 @
609d81dd
# @ohos.
telephony.sms (短信服务
)
# @ohos.
net.socket (Socket连接
)
短信服务提供了管理短信的一些基础能力,包括创建、发送短信,获取、设置发送短信的默认SIM卡槽ID,获取、设置短信服务中心(SMSC)地址,以及检查当前设备是否具备短信发送和接收能力等
。
本模块提供利用Socket进行数据传输的能力,支持TCPSocket、UDPSocket、WebSocket和TLSSocket
。
>**说明:**
>
**说明:**
>
>
>
本模块首批接口从API version 6
开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
>
本模块首批接口从API version 7
开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
## 导入模块
```
js
```
js
import
s
ms
from
'
@ohos.telephony.sms
'
;
import
s
ocket
from
'
@ohos.net.socket
'
;
```
```
## s
ms.createMessag
e
## s
ocket.constructUDPSocketInstanc
e
c
reateMessage
\(
pdu: Array
<
number
>
, specification: string, callback: AsyncCallback<ShortMessage
\>\)
: void
c
onstructUDPSocketInstance(): UDPSocket
根据协议数据单元(PDU)和指定的短信协议创建短信实例。使用callback异步回调
。
创建一个UDPSocket对象
。
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
**参数:**
**返回值:**
| 类型 | 说明 |
| :--------------------------------- | :---------------------- |
|
[
UDPSocket
](
#udpsocket
)
| 返回一个UDPSocket对象。 |
| 参数名 | 类型 | 必填 | 说明 |
| ------------- | -------------------------------------------------- | ---- | ------------------------------------------------------------ |
| pdu | Array
<
number
>
| 是 | 协议数据单元,从收到的信息中获取。 |
| specification | string | 是 | 短信协议类型。
<br/>
- 3gpp:表示GSM/UMTS/LTE SMS
<br/>
- 3gpp2:表示CDMA SMS |
| callback | AsyncCallback
<
[ShortMessage](#shortmessage)
>
| 是 | 回调函数。 |
**示例:**
**示例:**
```
js
```
js
const
specification
=
'
3gpp
'
;
let
udp
=
socket
.
constructUDPSocketInstance
();
// 以数组的形式显示协议数据单元(PDU),类型为number,例如[0x08, 0x91, ...]
const
pdu
=
[
0x08
,
0x91
];
sms
.
createMessage
(
pdu
,
specification
,
(
err
,
data
)
=>
{
console
.
log
(
`callback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
});
```
```
## sms.createMessage
## UDPSocket
UDPSocket连接。在调用UDPSocket的方法前,需要先通过
[
socket.constructUDPSocketInstance
](
#socketconstructudpsocketinstance
)
创建UDPSocket对象。
createMessage
\(
pdu: Array
<
number
>
, specification: string
\)
: Promise<ShortMessage
\>
### bind
根据协议数据单元(PDU)和指定的短信协议创建短信实例。使用Promise异步回调。
bind(address: NetAddress, callback: AsyncCallback
\<
void
\>
): void
**系统能力**
:SystemCapability.Telephony.SmsMms
绑定IP地址和端口,端口可以指定或由系统随机分配。使用callback方式作为异步方法。
**需要权限**
:ohos.permission.INTERNET
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| --------
----- | ------------------- | ---- | ------
------------------------------------------------------ |
| --------
| ---------------------------------- | ---- |
------------------------------------------------------ |
|
pdu | Array
<
number
>
| 是 | 协议数据单元,从收到的信息中获取。
|
|
address |
[
NetAddress
](
#netaddress
)
| 是 | 目标地址信息,参考
[
NetAddress
](
#netaddress
)
。
|
|
specification | string | 是 | 短信协议类型。
<br/>
- 3gpp:表示GSM/UMTS/LTE SMS
<br/>
- 3gpp2:表示CDMA SMS
|
|
callback | AsyncCallback
\<
void
\>
| 是 | 回调函数。
|
**
返回值
:**
**
错误码
:**
| 类型 | 说明 |
| 错误码ID | 错误信息 |
| -------------------------------------------- | --------------------------------- |
| ------- | ----------------------- |
| Promise
<
[ShortMessage](#shortmessage)
>
| 以Promise形式返回创建的短信实例。 |
| 401 | Parameter error. |
| 201 | Permission denied. |
**示例:**
**示例:**
```
js
```
js
const
specification
=
'
3gpp
'
;
let
udp
=
socket
.
constructUDPSocketInstance
();
// 以数组的形式显示协议数据单元(PDU),类型为number,例如[0x08, 0x91, ...]
udp
.
bind
({
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
},
err
=>
{
const
pdu
=
[
0x08
,
0x91
];
if
(
err
)
{
let
promise
=
sms
.
createMessage
(
pdu
,
specification
);
console
.
log
(
'
bind fail
'
);
promise
.
then
(
data
=>
{
return
;
console
.
log
(
`createMessage success, promise: data->
${
JSON
.
stringify
(
data
)}
`
);
}
}).
catch
(
err
=>
{
console
.
log
(
'
bind success
'
);
console
.
error
(
`createMessage failed, promise: err->
${
JSON
.
stringify
(
err
)}
`
);
})
});
```
```
## sms.sendMessage
sendMessage(options: SendMessageOptions): voi
d
### bin
d
发送短信。
bind(address: NetAddress): Promise
\<
void
\>
**需要权限**
:ohos.permission.SEND_MESSAGES
绑定IP地址和端口,端口可以指定或由系统随机分配。使用Promise方式作为异步方法。
**系统能力**
:SystemCapability.Telephony.SmsMms
**需要权限**
:ohos.permission.INTERNET
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
| ------- | ---------------------------------- | ---- | ------------------------------------------------------ |
| options |
[
SendMessageOptions
](
#sendmessageoptions
)
| 是 | 发送短信的参数和回调,参考
[
SendMessageOptions
](
#sendmessageoptions
)
。 |
| address |
[
NetAddress
](
#netaddress
)
| 是 | 目标地址信息,参考
[
NetAddress
](
#netaddress
)
。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | ----------------------- |
| 401 | Parameter error. |
| 201 | Permission denied. |
**返回值:**
| 类型 | 说明 |
| :-------------- | :----------------------------------------- |
| Promise
\<
void
\>
| 以Promise形式异步返回UDPSocket绑定的结果。 |
**示例:**
**示例:**
```
js
```
js
let
sendCallback
=
function
(
err
,
data
)
{
let
udp
=
socket
.
constructUDPSocketInstance
();
console
.
log
(
`sendCallback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
let
promise
=
udp
.
bind
({
address
:
'
192.168.xx.xxx
'
,
port
:
8080
,
family
:
1
});
}
promise
.
then
(()
=>
{
let
deliveryCallback
=
function
(
err
,
data
)
{
console
.
log
(
'
bind success
'
);
console
.
log
(
`deliveryCallback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
}).
catch
(
err
=>
{
}
console
.
log
(
'
bind fail
'
);
let
slotId
=
0
;
});
let
content
=
'
短信内容
'
;
let
destinationHost
=
'
+861xxxxxxxxxx
'
;
let
serviceCenter
=
'
+861xxxxxxxxxx
'
;
let
destinationPort
=
1000
;
let
options
=
{
slotId
,
content
,
destinationHost
,
serviceCenter
,
destinationPort
,
sendCallback
,
deliveryCallback
};
sms
.
sendMessage
(
options
);
```
```
## sms.getDefaultSmsSlotId<sup>7+</sup>
### send
send(options: UDPSendOptions, callback: AsyncCallback
\<
void
\>
): void
通过UDPSocket连接发送数据。使用callback方式作为异步方法。
getDefaultSmsSlotId
\(
callback: AsyncCallback
<
number
>
\)
: void
发送数据前,需要先调用
[
UDPSocket.bind()
](
#bind
)
绑定IP地址和端口。
获取发送短信的默认SIM卡槽ID。使用callback异步回调。
**需要权限**
:ohos.permission.INTERNET
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------- | ---- | ---------------------------------------- |
| -------- | ---------------------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback
<
number
>
| 是 | 回调函数。
<br/>
- 0:卡槽1
<br/>
- 1:卡槽2 |
| options |
[
UDPSendOptions
](
#udpsendoptions
)
| 是 | UDPSocket发送参数,参考
[
UDPSendOptions
](
#udpsendoptions
)
。 |
| callback | AsyncCallback
\<
void
\>
| 是 | 回调函数。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | ----------------------- |
| 401 | Parameter error. |
| 201 | Permission denied. |
**示例:**
**示例:**
```
js
```
js
sms
.
getDefaultSmsSlotId
((
err
,
data
)
=>
{
let
udp
=
socket
.
constructUDPSocketInstance
();
console
.
log
(
`callback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
udp
.
send
({
});
data
:
'
Hello, server!
'
,
address
:
{
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
}
},
err
=>
{
if
(
err
)
{
console
.
log
(
'
send fail
'
);
return
;
}
console
.
log
(
'
send success
'
);
})
```
```
## sms.getDefaultSmsSlotId<sup>7+</sup>
### send
send(options: UDPSendOptions): Promise
\<
void
\>
通过UDPSocket连接发送数据。使用Promise方式作为异步方法。
发送数据前,需要先调用
[
UDPSocket.bind()
](
#bind
)
绑定IP地址和端口。
**需要权限**
:ohos.permission.INTERNET
**系统能力**
:SystemCapability.Communication.NetStack
getDefaultSmsSlotId
\(\)
: Promise
<
number
>
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ---------------------------------------- | ---- | ------------------------------------------------------------ |
| options |
[
UDPSendOptions
](
#udpsendoptions
)
| 是 | UDPSocket发送参数,参考
[
UDPSendOptions
](
#udpsendoptions
)
。 |
获取发送短信的默认SIM卡槽ID。使用Promise异步回调。
**错误码:**
**系统能力**
:SystemCapability.Telephony.SmsMms
| 错误码ID | 错误信息 |
| ------- | ----------------------- |
| 401 | Parameter error. |
| 201 | Permission denied. |
**返回值:**
**返回值:**
| 类型 | 说明 |
| 类型 | 说明 |
|
--------------- | ---------------
--------------------------------------------- |
|
:-------------- | :
--------------------------------------------- |
| Promise
<
number
>
| 以Promise形式返回发送短信的默认SIM卡:
<br/>
- 0:卡槽1
<br/>
- 1:卡槽2
|
| Promise
\<
void
\>
| 以Promise形式返回UDPSocket连接发送数据的结果。
|
**示例:**
**示例:**
```
js
```
js
let
promise
=
sms
.
getDefaultSmsSlotId
();
let
udp
=
socket
.
constructUDPSocketInstance
();
promise
.
then
(
data
=>
{
let
promise
=
udp
.
send
({
console
.
log
(
`getDefaultSmsSlotId success, promise: data->
${
JSON
.
stringify
(
data
)}
`
);
data
:
'
Hello, server!
'
,
address
:
{
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
}
});
promise
.
then
(()
=>
{
console
.
log
(
'
send success
'
);
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
console
.
error
(
`getDefaultSmsSlotId failed, promise: err->
${
JSON
.
stringify
(
err
)}
`
);
console
.
log
(
'
send fail
'
);
});
});
```
```
## sms.setDefaultSmsSlotId<sup>7+</sup>
setDefaultSmsSlotId
\(
slotId: number, callback: AsyncCallback
<
void
>
\)
: void
### close
设置发送短信的默认SIM卡槽ID。使用callback异步回调。
close(callback: AsyncCallback
\<
void
\>
): void
**系统接口:**
此接口为系统接口
。
关闭UDPSocket连接。使用callback方式作为异步方法
。
**需要权限**
:ohos.permission.
SET_TELEPHONY_STATE
**需要权限**
:ohos.permission.
INTERNET
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
| -------- | --------------------- | ---- | ---------- |
| slotId | number | 是 | SIM卡槽ID。
<br/>
- 0:卡槽1
<br/>
- 1:卡槽2
<br/>
- -1:清除默认配置 |
| callback | AsyncCallback
\<
void
\>
| 是 | 回调函数。 |
| callback | AsyncCallback
<
void
>
| 是 | 回调函数。 |
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300004 | Do not have sim card. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
sms
.
setDefaultSmsSlotId
(
0
,
(
err
,
data
)
=>
{
let
udp
=
socket
.
constructUDPSocketInstance
();
console
.
log
(
`callback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
udp
.
close
(
err
=>
{
});
if
(
err
)
{
console
.
log
(
'
close fail
'
);
return
;
}
console
.
log
(
'
close success
'
);
})
```
```
## sms.setDefaultSmsSlotId<sup>7+</sup>
### close
setDefaultSmsSlotId
\(
slotId: number
\)
: Promise
<
void
>
设置发送短信的默认SIM卡槽ID。使用Promise异步回调。
close(): Promise
\<
void
\>
**系统接口:**
此接口为系统接口
。
关闭UDPSocket连接。使用Promise方式作为异步方法
。
**需要权限**
:ohos.permission.
SET_TELEPHONY_STATE
**需要权限**
:ohos.permission.
INTERNET
**系统能力**
:SystemCapability.Telephony.SmsMms
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| slotId | number | 是 | SIM卡槽ID。
<br/>
- 0:卡槽1
<br/>
- 1:卡槽2
<br/>
- -1:清除默认配置 |
**返回值:**
**返回值:**
| 类型 | 说明 |
| 类型 | 说明 |
| --------------- | ------------------------------- |
| :-------------- | :----------------------------------------- |
| Promise
\<
void
\>
| 以Promise形式异步返回设置结果。 |
| Promise
\<
void
\>
| 以Promise形式返回关闭UDPSocket连接的结果。 |
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300004 | Do not have sim card. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
promise
=
sms
.
setDefaultSmsSlotId
(
0
);
let
udp
=
socket
.
constructUDPSocketInstance
();
promise
.
then
(
data
=>
{
let
promise
=
udp
.
close
();
console
.
log
(
`setDefaultSmsSlotId success, promise: data->
${
JSON
.
stringify
(
data
)}
`
);
promise
.
then
(()
=>
{
console
.
log
(
'
close success
'
);
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
console
.
error
(
`setDefaultSmsSlotId failed, promise: err->
${
JSON
.
stringify
(
err
)}
`
);
console
.
log
(
'
close fail
'
);
});
});
```
```
## sms.setSmscAddr<sup>7+</sup>
setSmscAddr
\(
slotId: number, smscAddr: string, callback: AsyncCallback<void
\>\)
: void
### getState
设置短信服务中心(SMSC)地址。使用callback异步回调。
getState(callback: AsyncCallback
\<
SocketStateBase
\>
): void
**系统接口:**
此接口为系统接口。
获取UDPSocket状态。使用callback方式作为异步方法。
>**说明:**
>bind方法调用成功后,才可调用此方法。
**需要权限**
:ohos.permission.
SET_TELEPHONY_STATE,该权限为系统权限
**需要权限**
:ohos.permission.
INTERNET
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------- | ---- | ----------------------------------------- |
| -------- | ------------------------------------------------------ | ---- | ---------- |
| slotId | number | 是 | SIM卡槽ID:
<br/>
- 0:卡槽1
<br/>
- 1:卡槽2 |
| callback | AsyncCallback
<
[
SocketStateBase
](
#socketstatebase
)
>
| 是 | 回调函数。 |
| smscAddr | string | 是 | 短信服务中心地址。 |
| callback | AsyncCallback
<
void
>
| 是 | 回调函数。 |
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------
- | ---------------------
----------------------- |
| -------
|
----------------------- |
| 201 | Permission denied. |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
slotId
=
0
;
let
udp
=
socket
.
constructUDPSocketInstance
();
let
smscAddr
=
'
+861xxxxxxxxxx
'
;
udp
.
bind
({
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
},
err
=>
{
sms
.
setSmscAddr
(
slotId
,
smscAddr
,
(
err
,
data
)
=>
{
if
(
err
)
{
console
.
log
(
`callback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
console
.
log
(
'
bind fail
'
);
});
return
;
}
console
.
log
(
'
bind success
'
);
udp
.
getState
((
err
,
data
)
=>
{
if
(
err
)
{
console
.
log
(
'
getState fail
'
);
return
;
}
console
.
log
(
'
getState success:
'
+
JSON
.
stringify
(
data
));
})
})
```
```
## sms.setSmscAddr<sup>7+</sup>
### getState
setSmscAddr
\(
slotId: number, smscAddr: string
\)
: Promise
\<
void
\>
设置短信服务中心(SMSC)地址。使用Promise异步回调。
**系统接口:**
此接口为系统接口。
getState(): Promise
\<
SocketStateBase
\>
**需要权限**
:ohos.permission.SET_TELEPHONY_STATE,该权限为系统权限
获取UDPSocket状态。使用Promise方式作为异步方法。
**系统能力**
:SystemCapability.Telephony.SmsMms
>**说明:**
>bind方法调用成功后,才可调用此方法。
**
参数:**
**
需要权限**
:ohos.permission.INTERNET
| 参数名 | 类型 | 必填 | 说明 |
**系统能力**
:SystemCapability.Communication.NetStack
| -------- | ------ | ---- | ----------------------------------------- |
| slotId | number | 是 | SIM卡槽ID:
<br/>
- 0:卡槽1
<br/>
- 1:卡槽2 |
| smscAddr | string | 是 | 短信服务中心地址。 |
**返回值:**
**返回值:**
| 类型 | 说明 |
| 类型 | 说明 |
| ------------------- | ------------------------------- |
| :----------------------------------------------- | :----------------------------------------- |
| Promise
<
void
>
| 以Promise形式异步返回设置结果。 |
| Promise
\<
[
SocketStateBase
](
#socketstatebase
)
\>
| 以Promise形式返回获取UDPSocket状态的结果。 |
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
slotId
=
0
;
let
udp
=
socket
.
constructUDPSocketInstance
();
let
smscAddr
=
'
+861xxxxxxxxxx
'
;
udp
.
bind
({
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
},
err
=>
{
let
promise
=
sms
.
setSmscAddr
(
slotId
,
smscAddr
);
if
(
err
)
{
promise
.
then
(
data
=>
{
console
.
log
(
'
bind fail
'
);
console
.
log
(
`setSmscAddr success, promise: data->
${
JSON
.
stringify
(
data
)}
`
);
return
;
}).
catch
(
err
=>
{
}
console
.
error
(
`setSmscAddr failed, promise: err->
${
JSON
.
stringify
(
err
)}
`
);
console
.
log
(
'
bind success
'
);
});
let
promise
=
udp
.
getState
();
promise
.
then
(
data
=>
{
console
.
log
(
'
getState success:
'
+
JSON
.
stringify
(
data
));
}).
catch
(
err
=>
{
console
.
log
(
'
getState fail
'
);
});
})
```
```
##
sms.getSmscAddr<sup>7+</sup>
##
# setExtraOptions
getSmscAddr
\(
slotId: number, callback: AsyncCallback<string
\>\
)
: void
setExtraOptions(options: UDPExtraOptions, callback: AsyncCallback
\<
void
\>
): void
获取短信服务中心(SMSC)地址。使用callback异步回调
。
设置UDPSocket连接的其他属性。使用callback方式作为异步方法
。
**系统接口:**
此接口为系统接口。
>**说明:**
>bind方法调用成功后,才可调用此方法。
**需要权限**
:ohos.permission.
GET_TELEPHONY_STATE,该权限为系统权限
**需要权限**
:ohos.permission.
INTERNET
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------
| ---- |
----------------------------------------- |
| -------- | ---------------------------
------------- | ---- | -------------------
----------------------------------------- |
|
slotId | number | 是 | SIM卡槽ID:
<br/>
- 0:卡槽1
<br/>
- 1:卡槽2
|
|
options |
[
UDPExtraOptions
](
#udpextraoptions
)
| 是 | UDPSocket连接的其他属性,参考
[
UDPExtraOptions
](
#udpextraoptions
)
。
|
| callback | AsyncCallback
<
string
>
| 是 | 回调函数。
|
| callback | AsyncCallback
\<
void
\>
| 是 | 回调函数。
|
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| ------- | ----------------------- |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 201 | Permission denied. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
slotId
=
0
;
let
udp
=
socket
.
constructUDPSocketInstance
();
sms
.
getSmscAddr
(
slotId
,
(
err
,
data
)
=>
{
udp
.
bind
({
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
},
err
=>
{
console
.
log
(
`callback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
if
(
err
)
{
});
console
.
log
(
'
bind fail
'
);
return
;
}
console
.
log
(
'
bind success
'
);
udp
.
setExtraOptions
({
receiveBufferSize
:
1000
,
sendBufferSize
:
1000
,
reuseAddress
:
false
,
socketTimeout
:
6000
,
broadcast
:
true
},
err
=>
{
if
(
err
)
{
console
.
log
(
'
setExtraOptions fail
'
);
return
;
}
console
.
log
(
'
setExtraOptions success
'
);
})
})
```
```
##
sms.getSmscAddr<sup>7+</sup>
##
# setExtraOptions
getSmscAddr
\(
slotId: number
\)
: Promise<string
\>
setExtraOptions(options: UDPExtraOptions): Promise
\<
void
\>
获取短信服务中心(SMSC)地址。使用Promise异步回调
。
设置UDPSocket连接的其他属性。使用Promise方式作为异步方法
。
**系统接口:**
此接口为系统接口。
>**说明:**
>bind方法调用成功后,才可调用此方法。
**需要权限**
:ohos.permission.
GET_TELEPHONY_STATE,该权限为系统权限
**需要权限**
:ohos.permission.
INTERNET
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| ------
| ------ | ---- |
----------------------------------------- |
| ------
- | ---------------------------------------- | ---- | -------------------
----------------------------------------- |
|
slotId | number | 是 | SIM卡槽ID:
<br/>
- 0:卡槽1
<br/>
- 1:卡槽2
|
|
options |
[
UDPExtraOptions
](
#udpextraoptions
)
| 是 | UDPSocket连接的其他属性,参考
[
UDPExtraOptions
](
#udpextraoptions
)
。
|
**返回值:**
**返回值:**
| 类型 | 说明 |
| 类型 | 说明 |
|
--------------------- |
--------------------------------------------- |
|
:-------------- | :------
--------------------------------------------- |
| Promise
<
string
>
| 以Promise形式返回获取短信服务中心地址
的结果。 |
| Promise
\<
void
\>
| 以Promise形式返回设置UDPSocket连接的其他属性
的结果。 |
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| ------- | ----------------------- |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 201 | Permission denied. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
slotId
=
0
;
let
udp
=
socket
.
constructUDPSocketInstance
();
let
promise
=
sms
.
getSmscAddr
(
slotId
);
let
promise
=
udp
.
bind
({
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
});
promise
.
then
(
data
=>
{
promise
.
then
(()
=>
{
console
.
log
(
`getSmscAddr success, promise: data->
${
JSON
.
stringify
(
data
)}
`
);
console
.
log
(
'
bind success
'
);
let
promise1
=
udp
.
setExtraOptions
({
receiveBufferSize
:
1000
,
sendBufferSize
:
1000
,
reuseAddress
:
false
,
socketTimeout
:
6000
,
broadcast
:
true
});
promise1
.
then
(()
=>
{
console
.
log
(
'
setExtraOptions success
'
);
}).
catch
(
err
=>
{
console
.
log
(
'
setExtraOptions fail
'
);
});
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
console
.
error
(
`getSmscAddr failed, promise: err->
${
JSON
.
stringify
(
err
)}
`
);
console
.
log
(
'
bind fail
'
);
});
});
```
```
## sms.hasSmsCapability<sup>7+</sup>
hasSmsCapability(): boolean
### on('message')
检查当前设备是否具备短信发送和接收能力,该方法是同步方法。
on(type: 'message', callback: Callback
\<
{message: ArrayBuffer, remoteInfo: SocketRemoteInfo}
\>
): void
**系统能力**
:SystemCapability.Telephony.SmsMms
订阅UDPSocket连接的接收消息事件。使用callback方式作为异步方法。
**
返回值:**
**
系统能力**
:SystemCapability.Communication.NetStack
| 类型 | 说明 |
**参数:**
| ------- | ------------------------------------------------------------ |
| boolean | - true:设备具备短信发送和接收能力。
<br/>
- false:设备不具备短信发送和接收能力。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------- |
| type | string | 是 | 订阅的事件类型。'message':接收消息事件。 |
| callback | Callback
\<
{message: ArrayBuffer, remoteInfo:
[
SocketRemoteInfo
](
#socketremoteinfo
)
}
\>
| 是 | 回调函数。 |
**示例:**
```
js
```
js
let
result
=
sms
.
hasSmsCapability
();
let
udp
=
socket
.
constructUDPSocketInstance
();
console
.
log
(
`hasSmsCapability:
${
JSON
.
stringify
(
result
)}
`
);
udp
.
on
(
'
message
'
,
value
=>
{
console
.
log
(
"
on message, message:
"
+
value
.
message
+
"
, remoteInfo:
"
+
value
.
remoteInfo
);
});
```
```
## sms.splitMessage<sup>8+</sup>
splitMessage(content: string, callback: AsyncCallback
<Array
<
string
\
>
>): void
### off('message')
将长短信拆分为多个片段。使用callback异步回调。
off(type: 'message', callback?: Callback
\<
{message: ArrayBuffer, remoteInfo: SocketRemoteInfo}
\>
): void
**系统接口:**
此接口为系统接口
。
取消订阅UDPSocket连接的接收消息事件。使用callback方式作为异步方法
。
**需要权限**
:ohos.permission.SEND_MESSAGES
>**说明:**
>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------------- | ---- | ----------------------------- |
| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------- |
| content | string | 是 | 指示短消息内容,不能为null。 |
| type | string | 是 | 订阅的事件类型。'message':接收消息事件。 |
| callback | AsyncCallback
<Array
<
string
\
>
> | 是 | 回调函数。 |
| callback | Callback
<
{
message:
ArrayBuffer
,
remoteInfo:
[
SocketRemoteInfo
](
#socketremoteinfo
)}
>
| 否 | 回调函数。 |
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
content
=
"
long message
"
;
let
udp
=
socket
.
constructUDPSocketInstance
();
sms
.
splitMessage
(
content
,
(
err
,
data
)
=>
{
let
callback
=
value
=>
{
console
.
log
(
`callback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
console
.
log
(
"
on message, message:
"
+
value
.
message
+
"
, remoteInfo:
"
+
value
.
remoteInfo
);
});
}
udp
.
on
(
'
message
'
,
callback
);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
udp
.
off
(
'
message
'
,
callback
);
udp
.
off
(
'
message
'
);
```
```
## sms.splitMessage<sup>8+</sup>
### on('listening' | 'close')
splitMessage(content: string): Promise
<Array
<
string
\
>
>
将长短信拆分为多个片段。使用Promise异步回调。
on(type: 'listening' | 'close', callback: Callback
\<
void
\>
): void
**系统接口:**
此接口为系统接口
。
订阅UDPSocket连接的数据包消息事件或关闭事件。使用callback方式作为异步方法
。
**需要权限**
:ohos.permission.SEND_MESSAGES
**系统能力**
:SystemCapability.Communication.NetStack
**系统能力**
:SystemCapability.Telephony.SmsMms
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ------ | ---- | ---------------------------- |
| -------- | ---------------- | ---- | ------------------------------------------------------------ |
| content | string | 是 | 指示短消息内容,不能为null。 |
| type | string | 是 | 订阅的事件类型。
<br
/>
- 'listening':数据包消息事件。
<br
/>
- 'close':关闭事件。 |
| callback | Callback
\<
void
\>
| 是 | 回调函数。 |
**返回值:**
| 类型 | 说明 |
| ----------------------- | ----------------------------------- |
| Promise
<Array
<
string
\
>
> | 以Promise形式返回多个片段的的结果。 |
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
content
=
"
long message
"
;
let
udp
=
socket
.
constructUDPSocketInstance
()
;
let
promise
=
sms
.
splitMessage
(
content
);
udp
.
on
(
'
listening
'
,
()
=>
{
promise
.
then
(
data
=>
{
console
.
log
(
"
on listening success
"
);
console
.
log
(
`splitMessage success, promise: data->
${
JSON
.
stringify
(
data
)}
`
);
}
);
}).
catch
(
err
=>
{
udp
.
on
(
'
close
'
,
()
=>
{
console
.
error
(
`splitMessage failed, promise: err->
${
JSON
.
stringify
(
err
)}
`
);
console
.
log
(
"
on close success
"
);
});
});
```
```
## sms.addSimMessage<sup>7+</sup>
addSimMessage(options: SimMessageOptions, callback: AsyncCallback<void
\>
): void
### off('listening' | 'close')
添加SIM卡消息。使用callback异步回调。
off(type: 'listening' | 'close', callback?: Callback
\<
void
\>
): void
**系统接口:**
此接口为系统接口
。
取消订阅UDPSocket连接的数据包消息事件或关闭事件。使用callback方式作为异步方法
。
**需要权限**
:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES
>**说明:**
>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------
------------------------ | ---- |
--------------- |
| -------- | ----------------
| ---- | ---------------------------------------------
--------------- |
|
options |
[
SimMessageOptions
](
#simmessageoptions7
)
| 是 | SIM卡消息选项
。 |
|
type | string | 是 | 订阅事件类型。
<br
/>
- 'listening':数据包消息事件。
<br
/>
- 'close':关闭事件
。 |
| callback |
AsyncCallback
<
void
>
| 是 | 回调函数。
|
| callback |
Callback
\<
void
\>
| 否 | 回调函数。
|
**错误码:**
**示例:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
```
js
| -------- | -------------------------------------------- |
let
udp
=
socket
.
constructUDPSocketInstance
();
| 201 | Permission denied. |
let
callback1
=
()
=>
{
| 401 | Parameter error. |
console
.
log
(
"
on listening, success
"
);
| 8300001 | Invalid parameter value. |
}
| 8300002 | Operation failed. Cannot connect to service. |
udp
.
on
(
'
listening
'
,
callback1
);
| 8300003 | System internal error. |
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
| 8300999 | Unknown error code. |
udp
.
off
(
'
listening
'
,
callback1
);
udp
.
off
(
'
listening
'
);
let
callback2
=
()
=>
{
console
.
log
(
"
on close, success
"
);
}
udp
.
on
(
'
close
'
,
callback2
);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
udp
.
off
(
'
close
'
,
callback2
);
udp
.
off
(
'
close
'
);
```
### on('error')
on(type: 'error', callback: ErrorCallback): void
订阅UDPSocket连接的error事件。使用callback方式作为异步方法。
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------- | ---- | ------------------------------------ |
| type | string | 是 | 订阅的事件类型。'error':error事件。 |
| callback | ErrorCallback | 是 | 回调函数。 |
**示例:**
**示例:**
```
js
```
js
let
simMessageOptions
=
{
let
udp
=
socket
.
constructUDPSocketInstance
();
slotId
:
0
,
udp
.
on
(
'
error
'
,
err
=>
{
smsc
:
"
test
"
,
console
.
log
(
"
on error, err:
"
+
JSON
.
stringify
(
err
))
pdu
:
"
xxxxxx
"
,
status
:
sms
.
SimMessageStatus
.
SIM_MESSAGE_STATUS_READ
};
sms
.
addSimMessage
(
simMessageOptions
,
(
err
,
data
)
=>
{
console
.
log
(
`callback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
});
});
```
```
## sms.addSimMessage<sup>7+</sup>
### off('error')
addSimMessage(options: SimMessageOptions): Promise<void
\>
添加SIM卡消息。使用Promise异步回调。
off(type: 'error', callback?: ErrorCallback): void
**系统接口:**
此接口为系统接口
。
取消订阅UDPSocket连接的error事件。使用callback方式作为异步方法
。
**需要权限**
:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES
>**说明:**
>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ---------------------------------------- | ---- | --------------- |
| -------- | ------------- | ---- | ------------------------------------ |
| options |
[
SimMessageOptions
](
#simmessageoptions7
)
| 是 | SIM卡消息选项。 |
| type | string | 是 | 订阅的事件类型。'error':error事件。 |
| callback | ErrorCallback | 否 | 回调函数。 |
**
返回值
:**
**
示例
:**
| 类型 | 说明 |
```
js
| ------------------- | ----------------------------- |
let
udp
=
socket
.
constructUDPSocketInstance
();
| Promise
<
void
>
| 以Promise形式返回添加的结果。 |
let
callback
=
err
=>
{
console
.
log
(
"
on error, err:
"
+
JSON
.
stringify
(
err
));
}
udp
.
on
(
'
error
'
,
callback
);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
udp
.
off
(
'
error
'
,
callback
);
udp
.
off
(
'
error
'
);
```
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
## NetAddress
| -------- | -------------------------------------------- |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
目标地址信息。
```
js
**系统能力**
:SystemCapability.Communication.NetStack
let
simMessageOptions
=
{
slotId
:
0
,
smsc
:
"
test
"
,
pdu
:
"
xxxxxx
"
,
status
:
sms
.
SimMessageStatus
.
SIM_MESSAGE_STATUS_READ
};
let
promise
=
sms
.
addSimMessage
(
simMessageOptions
);
promise
.
then
(
data
=>
{
console
.
log
(
`addSimMessage success, promise: data->
${
JSON
.
stringify
(
data
)}
`
);
}).
catch
(
err
=>
{
console
.
error
(
`addSimMessage failed, promise: err->
${
JSON
.
stringify
(
err
)}
`
);
});
```
## sms.delSimMessage<sup>7+</sup>
| 名称 | 类型 | 必填 | 说明 |
| ------- | ------ | ---- | ------------------------------------------------------------ |
| address | string | 是 | 本地绑定的ip地址。 |
| port | number | 否 | 端口号 ,范围0~65535。如果不指定系统随机分配端口。 |
| family | number | 否 | 网络协议类型,可选类型:
<br
/>
- 1:IPv4
<br
/>
- 2:IPv6
<br
/>
默认为1。 |
delSimMessage(slotId: number, msgIndex: number, callback: AsyncCallback<void
\>
): void
## UDPSendOptions
删除SIM卡消息。使用callback异步回调
。
UDPSocket发送参数
。
**系统
接口:**
此接口为系统接口。
**系统
能力**
:SystemCapability.Communication.NetStack
**需要权限**
:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES
| 名称 | 类型 | 必填 | 说明 |
| ------- | ---------------------------------- | ---- | -------------- |
| data | string
\|
ArrayBuffer
<sup>
7+
</sup>
| 是 | 发送的数据。 |
| address |
[
NetAddress
](
#netaddress
)
| 是 | 目标地址信息。 |
**系统能力**
:SystemCapability.Telephony.SmsMm
s
## UDPExtraOption
s
**参数:**
UDPSocket连接的其他属性。
| 参数名 | 类型 | 必填 | 说明 |
**系统能力**
:SystemCapability.Communication.NetStack
| -------- | ------------------------- | ---- | ----------------------------------------- |
| slotId | number | 是 | SIM卡槽ID:
<br/>
- 0:卡槽1
<br/>
- 1:卡槽2 |
| msgIndex | number | 是 | 消息索引。 |
| callback | AsyncCallback
<
void
>
| 是 | 回调函数。 |
**错误码:**
| 名称 | 类型 | 必填 | 说明 |
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| ----------------- | ------- | ---- | -------------------------------- |
| broadcast | boolean | 否 | 是否可以发送广播。默认为false。 |
| receiveBufferSize | number | 否 | 接收缓冲区大小(单位:Byte)。 |
| sendBufferSize | number | 否 | 发送缓冲区大小(单位:Byte)。 |
| reuseAddress | boolean | 否 | 是否重用地址。默认为false。 |
| socketTimeout | number | 否 | 套接字超时时间,单位毫秒(ms)。 |
| 错误码ID | 错误信息 |
## SocketStateBase
| -------- | -------------------------------------------- |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
Socket的状态信息。
```
js
**系统能力**
:SystemCapability.Communication.NetStack
let
slotId
=
0
;
let
msgIndex
=
1
;
sms
.
delSimMessage
(
slotId
,
msgIndex
,
(
err
,
data
)
=>
{
console
.
log
(
`callback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
});
```
| 名称 | 类型 | 必填 | 说明 |
| ----------- | ------- | ---- | ---------- |
| isBound | boolean | 是 | 是否绑定。 |
| isClose | boolean | 是 | 是否关闭。 |
| isConnected | boolean | 是 | 是否连接。 |
##
sms.delSimMessage<sup>7+</sup>
##
SocketRemoteInfo
delSimMessage(slotId: number, msgIndex: number): Promise<void
\>
Socket的连接信息。
删除SIM卡信息。使用Promise异步回调。
**系统能力**
:SystemCapability.Communication.NetStack
**系统接口:**
此接口为系统接口。
| 名称 | 类型 | 必填 | 说明 |
| ------- | ------ | ---- | ------------------------------------------------------------ |
| address | string | 是 | 本地绑定的ip地址。 |
| family | string | 是 | 网络协议类型,可选类型:
<br
/>
- IPv4
<br
/>
- IPv6
<br
/>
默认为IPv4。 |
| port | number | 是 | 端口号,范围0~65535。 |
| size | number | 是 | 服务器响应信息的字节长度。 |
**需要权限**
:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES
## UDP 错误码说明
**系统能力**
:SystemCapability.Telephony.SmsMms
UDP 其余错误码映射形式为:2301000 + Linux内核错误码。
**参数:**
错误码的详细介绍参见
[
Socket错误码
](
../errorcodes/errorcode-net-socket.md
)
| 参数名 | 类型 | 必填 | 说明 |
## socket.constructTCPSocketInstance
| -------- | ------ | ---- | ----------------------------------------- |
| slotId | number | 是 | SIM卡槽ID:
<br/>
- 0:卡槽1
<br/>
- 1:卡槽2 |
| msgIndex | number | 是 | 消息索引。 |
**返回值:**
constructTCPSocketInstance(): TCPSocket
| 类型 | 说明 |
创建一个TCPSocket对象。
| ------------------- | ----------------------------- |
| Promise
<
void
>
| 以Promise形式返回删除的结果。 |
**错误码:**
**系统能力**
:SystemCapability.Communication.NetStack
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
**返回值:**
| -------- | -------------------------------------------- |
| 201 | Permission denied. |
| 类型 | 说明 |
| 401 | Parameter error. |
| :--------------------------------- | :---------------------- |
| 8300001 | Invalid parameter value. |
|
[
TCPSocket
](
#tcpsocket
)
| 返回一个TCPSocket对象。 |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
slotId
=
0
;
let
tcp
=
socket
.
constructTCPSocketInstance
();
let
msgIndex
=
1
;
let
promise
=
sms
.
delSimMessage
(
slotId
,
msgIndex
);
promise
.
then
(
data
=>
{
console
.
log
(
`delSimMessage success, promise: data->
${
JSON
.
stringify
(
data
)}
`
);
}).
catch
(
err
=>
{
console
.
error
(
`delSimMessage failed, promise: err->
${
JSON
.
stringify
(
err
)}
`
);
});
```
```
## sms.updateSimMessage<sup>7+</sup>
updateSimMessage(options: UpdateSimMessageOptions, callback: AsyncCallback<void
\>
): void
## TCPSocket
TCPSocket连接。在调用TCPSocket的方法前,需要先通过
[
socket.constructTCPSocketInstance
](
#socketconstructtcpsocketinstance
)
创建TCPSocket对象。
### bind
更新SIM卡消息。使用callback异步回调。
bind(address: NetAddress, callback: AsyncCallback
\<
void
\>
): void
**系统接口:**
此接口为系统接口
。
绑定IP地址和端口,端口可以指定或由系统随机分配。使用callback方法作为异步方法
。
**需要权限**
:ohos.permission.
RECEIVE_SMS,ohos.permission.SEND_MESSAGES
**需要权限**
:ohos.permission.
INTERNET
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------------------
------------------ | ---- |
------------------- |
| -------- | ----------------------------------
| ---- | -----------------------------------
------------------- |
|
options |
[
UpdateSimMessageOptions
](
#updatesimmessageoptions7
)
| 是 | 更新SIM卡消息选项
。 |
|
address |
[
NetAddress
](
#netaddress
)
| 是 | 目标地址信息,参考
[
NetAddress
](
#netaddress
)
。 |
| callback | AsyncCallback
<
void
>
| 是 | 回调函数。
|
| callback | AsyncCallback
\<
void
\>
| 是 | 回调函数。
|
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| ------- | ----------------------- |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 201 | Permission denied. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
updateSimMessageOptions
=
{
let
tcp
=
socket
.
constructTCPSocketInstance
();
slotId
:
0
,
tcp
.
bind
({
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
},
err
=>
{
msgIndex
:
1
,
if
(
err
)
{
newStatus
:
sms
.
SimMessageStatus
.
SIM_MESSAGE_STATUS_FREE
,
console
.
log
(
'
bind fail
'
);
pdu
:
"
xxxxxxx
"
,
return
;
smsc
:
"
test
"
}
};
console
.
log
(
'
bind success
'
);
sms
.
updateSimMessage
(
updateSimMessageOptions
,
(
err
,
data
)
=>
{
})
console
.
log
(
`callback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
});
```
```
##
sms.updateSimMessage<sup>7+</sup>
##
# bind
updateSimMessage(options: UpdateSimMessageOptions): Promise
<void
\>
bind(address: NetAddress): Promise
\
<
void
\>
更新SIM卡消息。使用Promise异步回调
。
绑定IP地址和端口,端口可以指定或由系统随机分配。使用Promise方法作为异步方法
。
**
系统接口:**
此接口为系统接口。
**
需要权限**
:ohos.permission.INTERNET
**需要权限**
:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES
**系统能力**
:SystemCapability.Communication.NetStack
**系统能力**
:SystemCapability.Telephony.SmsMms
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ----------------------------------
------------------ | ---- |
------------------- |
| ------- | ----------------------------------
| ---- | -----------------------------------
------------------- |
|
options |
[
UpdateSimMessageOptions
](
#updatesimmessageoptions7
)
| 是 | 更新SIM卡消息选项
。 |
|
address |
[
NetAddress
](
#netaddress
)
| 是 | 目标地址信息,参考
[
NetAddress
](
#netaddress
)
。 |
**返回值:**
**返回值:**
| 类型 | 说明 |
| 类型 | 说明 |
|
------------------- |
----------------------------- |
|
:-------------- | :--------------------------
----------------------------- |
| Promise
<
void
>
| 以Promise形式返回更新
的结果。 |
| Promise
\<
void
\>
| 以Promise形式返回TCPSocket绑定本机的IP地址和端口
的结果。 |
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| ------- | ----------------------- |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 201 | Permission denied. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
updateSimMessageOptions
=
{
let
tcp
=
socket
.
constructTCPSocketInstance
();
slotId
:
0
,
let
promise
=
tcp
.
bind
({
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
});
msgIndex
:
1
,
promise
.
then
(()
=>
{
newStatus
:
sms
.
SimMessageStatus
.
SIM_MESSAGE_STATUS_FREE
,
console
.
log
(
'
bind success
'
);
pdu
:
"
xxxxxxx
"
,
smsc
:
"
test
"
};
let
promise
=
sms
.
updateSimMessage
(
updateSimMessageOptions
);
promise
.
then
(
data
=>
{
console
.
log
(
`updateSimMessage success, promise: data->
${
JSON
.
stringify
(
data
)}
`
);
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
console
.
error
(
`updateSimMessage failed, promise: err->
${
JSON
.
stringify
(
err
)}
`
);
console
.
log
(
'
bind fail
'
);
});
});
```
```
## sms.getAllSimMessages<sup>7+</sup>
getAllSimMessages(slotId: number, callback: AsyncCallback
<Array
<
SimShortMessage
\
>
>): void
### connect
获取所有SIM卡消息。使用callback异步回调。
connect(options: TCPConnectOptions, callback: AsyncCallback
\<
void
\>
): void
**系统接口:**
此接口为系统接口
。
连接到指定的IP地址和端口。使用callback方法作为异步方法
。
**需要权限**
:ohos.permission.RECEIVE_SMS
>**说明:**
>bind方法调用成功后,才可调用此方法。
**需要权限**
:ohos.permission.INTERNET
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------------------------
------------------- | ---- |
----------------------------------------- |
| -------- | ----------------------------------------
| ---- | -------------------
----------------------------------------- |
|
slotId | number | 是 | SIM卡槽ID:
<br/>
- 0:卡槽1
<br/>
- 1:卡槽2
|
|
options |
[
TCPConnectOptions
](
#tcpconnectoptions
)
| 是 | TCPSocket连接的参数,参考
[
TCPConnectOptions
](
#tcpconnectoptions
)
。
|
| callback | AsyncCallback
<Array
<[
SimShortMessage
](
#simshortmessage7
)\
>
> | 是 | 回调函数。
|
| callback | AsyncCallback
\<
void
\>
| 是 | 回调函数。
|
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| ------- | ----------------------- |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 201 | Permission denied. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
slotId
=
0
;
let
tcp
=
socket
.
constructTCPSocketInstance
();
sms
.
getAllSimMessages
(
slotId
,
(
err
,
data
)
=>
{
tcp
.
connect
({
address
:
{
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
}
,
timeout
:
6000
},
err
=>
{
console
.
log
(
`callback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
if
(
err
)
{
});
console
.
log
(
'
connect fail
'
);
return
;
}
console
.
log
(
'
connect success
'
);
})
```
```
## sms.getAllSimMessages<sup>7+</sup>
### connect
getAllSimMessages(slotId: number): Promise
<Array
<
SimShortMessage
\
>
>
获取所有SIM卡消息。使用Promise异步回调。
connect(options: TCPConnectOptions): Promise
\<
void
\>
**系统接口:**
此接口为系统接口
。
连接到指定的IP地址和端口。使用promise方法作为异步方法
。
**需要权限**
:ohos.permission.
RECEIVE_SMS
**需要权限**
:ohos.permission.
INTERNET
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| ------
| ------ | ---- |
----------------------------------------- |
| ------
- | ---------------------------------------- | ---- | -------------------
----------------------------------------- |
|
slotId | number | 是 | SIM卡槽ID:
<br/>
- 0:卡槽1
<br/>
- 1:卡槽2
|
|
options |
[
TCPConnectOptions
](
#tcpconnectoptions
)
| 是 | TCPSocket连接的参数,参考
[
TCPConnectOptions
](
#tcpconnectoptions
)
。
|
**返回值:**
**返回值:**
| 类型 | 说明 |
| 类型 | 说明 |
|
------------------------------------------------------- |
---------------------------------- |
|
:-------------- | :-----------------------
---------------------------------- |
| Promise
Array<
[
SimShortMessage
](
#simshortmessage7
)
\>
>
| 以Promise形式返回获取的SIM短消息
。 |
| Promise
\<
void
\>
| 以Promise形式返回TCPSocket连接到指定的IP地址和端口的结果
。 |
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| ------- | ----------------------- |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 201 | Permission denied. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
slotId
=
0
;
let
tcp
=
socket
.
constructTCPSocketInstance
()
;
let
promise
=
sms
.
getAllSimMessages
(
slotId
);
let
promise
=
tcp
.
connect
({
address
:
{
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
}
,
timeout
:
6000
}
);
promise
.
then
(
data
=>
{
promise
.
then
(
()
=>
{
console
.
log
(
`getAllSimMessages success, promise: data->
${
JSON
.
stringify
(
data
)}
`
);
console
.
log
(
'
connect success
'
)
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
console
.
error
(
`getAllSimMessages failed, promise: err->
${
JSON
.
stringify
(
err
)}
`
);
console
.
log
(
'
connect fail
'
);
});
});
```
```
## sms.setCBConfig<sup>7+</sup>
setCBConfig(options: CBConfigOptions, callback: AsyncCallback<void
\>
): voi
d
### sen
d
设置小区广播配置。使用callback异步回调。
send(options: TCPSendOptions, callback: AsyncCallback
\<
void
\>
): void
**系统接口:**
此接口为系统接口
。
通过TCPSocket连接发送数据。使用callback方式作为异步方法
。
**需要权限**
:ohos.permission.RECEIVE_SMS
>**说明:**
>connect方法调用成功后,才可调用此方法。
**需要权限**
:ohos.permission.INTERNET
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------
| ---- |
------------ |
| -------- | ------------------------------------
--- | ---- | ------------------------------------------------
------------ |
| options |
[
CBConfigOptions
](
#cbconfigoptions7
)
| 是 | 小区广播配置选项
。 |
| options |
[
TCPSendOptions
](
#tcpsendoptions
)
| 是 | TCPSocket发送请求的参数,参考
[
TCPSendOptions
](
#tcpsendoptions
)
。 |
| callback | AsyncCallback
<
void
>
| 是 | 回调函数。
|
| callback | AsyncCallback
\<
void
\>
| 是 | 回调函数。
|
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| ------- | ----------------------- |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 201 | Permission denied. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
cbConfigOptions
=
{
let
tcp
=
socket
.
constructTCPSocketInstance
();
slotId
:
0
,
let
promise
=
tcp
.
connect
({
address
:
{
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
}
,
timeout
:
6000
});
enable
:
true
,
promise
.
then
(()
=>
{
startMessageId
:
100
,
console
.
log
(
'
connect success
'
);
endMessageId
:
200
,
tcp
.
send
({
ranType
:
sms
.
RanType
.
TYPE_GSM
data
:
'
Hello, server!
'
};
},
err
=>
{
sms
.
setCBConfig
(
cbConfigOptions
,
(
err
,
data
)
=>
{
if
(
err
)
{
console
.
log
(
`callback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
console
.
log
(
'
send fail
'
);
return
;
}
console
.
log
(
'
send success
'
);
})
}).
catch
(
err
=>
{
console
.
log
(
'
connect fail
'
);
});
});
```
```
##
sms.setCBConfig<sup>7+</sup>
##
# send
se
tCBConfig(options: CBConfigOptions): Promise
<void
\>
se
nd(options: TCPSendOptions): Promise
\
<
void
\>
设置小区广播配置。使用Promise异步回调
。
通过TCPSocket连接发送数据。使用Promise方式作为异步方法
。
**系统接口:**
此接口为系统接口。
>**说明:**
>connect方法调用成功后,才可调用此方法。
**需要权限**
:ohos.permission.
RECEIVE_SMS
**需要权限**
:ohos.permission.
INTERNET
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ------------------------------------
| ---- |
------------ |
| ------- | ------------------------------------
--- | ---- | ------------------------------------------------
------------ |
| options |
[
CBConfigOptions
](
#cbconfigoptions7
)
| 是 | 小区广播配置选项
。 |
| options |
[
TCPSendOptions
](
#tcpsendoptions
)
| 是 | TCPSocket发送请求的参数,参考
[
TCPSendOptions
](
#tcpsendoptions
)
。 |
**返回值:**
**返回值:**
| 类型 | 说明 |
| 类型 | 说明 |
|
------------------- |
----------------------------- |
|
:-------------- | :--------------------
----------------------------- |
| Promise
<
void
>
| 以Promise形式返回设置
的结果。 |
| Promise
\<
void
\>
| 以Promise形式返回通过TCPSocket连接发送数据
的结果。 |
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| ------- | ----------------------- |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 201 | Permission denied. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
cbConfigOptions
=
{
let
tcp
=
socket
.
constructTCPSocketInstance
();
slotId
:
0
,
let
promise1
=
tcp
.
connect
({
address
:
{
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
}
,
timeout
:
6000
});
enable
:
true
,
promise1
.
then
(()
=>
{
startMessageId
:
100
,
console
.
log
(
'
connect success
'
);
endMessageId
:
200
,
let
promise2
=
tcp
.
send
({
ranType
:
sms
.
RanType
.
TYPE_GSM
data
:
'
Hello, server!
'
};
});
let
promise
=
sms
.
setCBConfig
(
cbConfigOptions
);
promise2
.
then
(()
=>
{
promise
.
then
(
data
=>
{
console
.
log
(
'
send success
'
);
console
.
log
(
`setCBConfig success, promise: data->
${
JSON
.
stringify
(
data
)}
`
);
}).
catch
(
err
=>
{
console
.
log
(
'
send fail
'
);
});
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
console
.
error
(
`setCBConfig failed, promise: err->
${
JSON
.
stringify
(
err
)}
`
);
console
.
log
(
'
connect fail
'
);
});
});
```
```
## sms.getSmsSegmentsInfo<sup>8+</sup>
getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean, callback: AsyncCallback<SmsSegmentsInfo
\>
): void
### close
获取短信段信息。使用callback异步回调。
close(callback: AsyncCallback
\<
void
\>
): void
**系统接口:**
此接口为系统接口
。
关闭TCPSocket连接。使用callback方式作为异步方法
。
**系统能力**
:SystemCapability.Telephony.SmsMms
**需要权限**
:ohos.permission.INTERNET
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------------------------------------------------ | ---- | ----------------------------------------- |
| -------- | --------------------- | ---- | ---------- |
| slotId | number | 是 | SIM卡槽ID:
<br/>
- 0:卡槽1
<br/>
- 1:卡槽2 |
| callback | AsyncCallback
\<
void
\>
| 是 | 回调函数。 |
| message | string | 是 | 消息。 |
| force7bit | boolean | 是 | 是否使用7 bit编码。 |
| callback | AsyncCallback
<
[SmsSegmentsInfo](#smssegmentsinfo8)
>
| 是 | 回调函数。 |
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| ------- | ----------------------- |
| 401 | Parameter error. |
| 201 | Permission denied. |
| 8300001 | Invalid parameter value. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
slotId
=
0
;
let
tcp
=
socket
.
constructTCPSocketInstance
();
sms
.
getSmsSegmentsInfo
(
slotId
,
"
message
"
,
false
,
(
err
,
data
)
=>
{
tcp
.
close
(
err
=>
{
console
.
log
(
`callback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
if
(
err
)
{
});
console
.
log
(
'
close fail
'
);
return
;
}
console
.
log
(
'
close success
'
);
})
```
```
## sms.getSmsSegmentsInfo<sup>8+</sup>
### close
getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean): Promise<SmsSegmentsInfo
\>
获取短信段信息。使用Promise异步回调。
**系统接口:**
此接口为系统接口。
close(): Promise
\<
void
\>
**系统能力**
:SystemCapability.Telephony.SmsMms
关闭TCPSocket连接。使用Promise方式作为异步方法。
**
参数:**
**
需要权限**
:ohos.permission.INTERNET
| 参数名 | 类型 | 必填 | 说明 |
**系统能力**
:SystemCapability.Communication.NetStack
| --------- | ------- | ---- | ----------------------------------------- |
| slotId | number | 是 | SIM卡槽ID:
<br/>
- 0:卡槽1
<br/>
- 1:卡槽2 |
| message | string | 是 | 消息。 |
| force7bit | boolean | 是 | 是否使用7 bit编码。 |
**返回值:**
**返回值:**
| 类型 | 说明 |
| 类型 | 说明 |
|
------------------------------------------------------- |
----------------------------- |
|
:-------------- | :------------
----------------------------- |
| Promise
<
[SmsSegmentsInfo](#smssegmentsinfo8)
>
| 以Promise形式返回短信段信息
。 |
| Promise
\<
void
\>
| 以Promise形式返回关闭TCPSocket连接的结果
。 |
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| ------- | ----------------------- |
| 401 | Parameter error. |
| 201 | Permission denied. |
| 8300001 | Invalid parameter value. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
slotId
=
0
;
let
tcp
=
socket
.
constructTCPSocketInstance
()
;
let
promise
=
sms
.
getSmsSegmentsInfo
(
slotId
,
"
message
"
,
false
);
let
promise
=
tcp
.
close
(
);
promise
.
then
(
data
=>
{
promise
.
then
(
()
=>
{
console
.
log
(
`getSmsSegmentsInfo success, promise: data->
${
JSON
.
stringify
(
data
)}
`
);
console
.
log
(
'
close success
'
);
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
console
.
error
(
`getSmsSegmentsInfo failed, promise: err->
${
JSON
.
stringify
(
err
)}
`
);
console
.
log
(
'
close fail
'
);
});
});
```
```
## sms.isImsSmsSupported<sup>8+</sup>
isImsSmsSupported(slotId: number, callback: AsyncCallback<boolean
\>
): void
### getRemoteAddress
如果IMS已注册并且在IMS上支持SMS,则支持通过IMS发送SMS。使用callback异步回调。
getRemoteAddress(callback: AsyncCallback
\<
NetAddress
\>
): void
**系统接口:**
此接口为系统接口
。
获取对端Socket地址。使用callback方式作为异步方法
。
**系统能力**
:SystemCapability.Telephony.SmsMms
>**说明:**
>connect方法调用成功后,才可调用此方法。
**需要权限**
:ohos.permission.INTERNET
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------- | ---- | ---------- |
| -------- | ------------------------------------------------- | ---- | ---------- |
| slotId | number | 是 | SIM卡槽ID:
<br/>
- 0:卡槽1
<br/>
- 1:卡槽2 |
| callback | AsyncCallback
<
[
NetAddress
](
#netaddress
)
>
| 是 | 回调函数。 |
| callback | AsyncCallback
<
boolean
>
| 是 | 回调函数。 |
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| ------- | ----------------------- |
| 401 | Parameter error. |
| 201 | Permission denied. |
| 8300001 | Invalid parameter value. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
slotId
=
0
;
let
tcp
=
socket
.
constructTCPSocketInstance
();
sms
.
isImsSmsSupported
(
slotId
,
(
err
,
data
)
=>
{
let
promise
=
tcp
.
connect
({
address
:
{
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
}
,
timeout
:
6000
});
console
.
log
(
`callback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
promise
.
then
(()
=>
{
console
.
log
(
'
connect success
'
);
tcp
.
getRemoteAddress
((
err
,
data
)
=>
{
if
(
err
)
{
console
.
log
(
'
getRemoteAddressfail
'
);
return
;
}
console
.
log
(
'
getRemoteAddresssuccess:
'
+
JSON
.
stringify
(
data
));
})
}).
catch
(
err
=>
{
console
.
log
(
'
connect fail
'
);
});
});
```
```
##
sms.isImsSmsSupported<sup>8+</sup>
##
# getRemoteAddress
isImsSmsSupported(slotId: number): Promise<boolean
\>
getRemoteAddress(): Promise
\<
NetAddress
\>
如果IMS已注册并且在IMS上支持SMS,则支持通过IMS发送SMS。使用Promise异步回调
。
获取对端Socket地址。使用Promise方式作为异步方法
。
**系统接口:**
此接口为系统接口。
>**说明:**
>connect方法调用成功后,才可调用此方法。
**系统能力**
:SystemCapability.Telephony.SmsMms
**
参数:**
**
需要权限**
:ohos.permission.INTERNET
| 参数名 | 类型 | 必填 | 说明 |
**系统能力**
:SystemCapability.Communication.NetStack
| ------ | ------ | ---- | -------------------------------------- |
| slotId | number | 是 | 卡槽ID。
<br/>
- 0:卡槽1
<br/>
- 1:卡槽2 |
**返回值:**
**返回值:**
| 类型 | 说明 |
| 类型 | 说明 |
|
---------------------- |
----------------------- |
|
:------------------------------------------ | :-------------------
----------------------- |
| Promise
<
boolean
>
| 以Promise形式返回
结果。 |
| Promise
<
[
NetAddress
](
#netaddress
)
>
| 以Promise形式返回获取对端socket地址的
结果。 |
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| ------- | ----------------------- |
| 401 | Parameter error. |
| 201 | Permission denied. |
| 8300001 | Invalid parameter value. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
slotId
=
0
;
let
tcp
=
socket
.
constructTCPSocketInstance
();
let
promise
=
sms
.
isImsSmsSupported
(
slotId
);
let
promise1
=
tcp
.
connect
({
address
:
{
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
}
,
timeout
:
6000
});
promise
.
then
(
data
=>
{
promise1
.
then
(()
=>
{
console
.
log
(
`isImsSmsSupported success, promise: data->
${
JSON
.
stringify
(
data
)}
`
);
console
.
log
(
'
connect success
'
);
let
promise2
=
tcp
.
getRemoteAddress
();
promise2
.
then
(()
=>
{
console
.
log
(
'
getRemoteAddress success
'
);
}).
catch
(
err
=>
{
console
.
log
(
'
getRemoteAddressfail
'
);
});
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
console
.
error
(
`isImsSmsSupported failed, promise: err->
${
JSON
.
stringify
(
err
)}
`
);
console
.
log
(
'
connect fail
'
);
});
});
```
```
## sms.getImsShortMessageFormat<sup>8+</sup>
getImsShortMessageFormat(callback: AsyncCallback<string
\>
): void
### getState
获取IMS上支持的SMS格式。使用callback异步回调。
getState(callback: AsyncCallback
\<
SocketStateBase
\>
): void
**系统接口:**
此接口为系统接口
。
获取TCPSocket状态。使用callback方式作为异步方法
。
**系统能力**
:SystemCapability.Telephony.SmsMms
>**说明:**
>bind或connect方法调用成功后,才可调用此方法。
**需要权限**
:ohos.permission.INTERNET
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------- | ---- | ---------- |
| -------- | ---------------------------
---------------------------
| ---- | ---------- |
| callback | AsyncCallback
<
string
>
| 是 | 回调函数。 |
| callback | AsyncCallback
<
[
SocketStateBase
](
#socketstatebase
)
>
| 是 | 回调函数。 |
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------
- | ---------------------
----------------------- |
| -------
|
----------------------- |
| 201 | Permission denied. |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
sms
.
getImsShortMessageFormat
((
err
,
data
)
=>
{
let
tcp
=
socket
.
constructTCPSocketInstance
();
console
.
log
(
`callback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
let
promise
=
tcp
.
connect
({
address
:
{
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
}
,
timeout
:
6000
});
promise
.
then
(()
=>
{
console
.
log
(
'
connect success
'
);
tcp
.
getState
((
err
,
data
)
=>
{
if
(
err
)
{
console
.
log
(
'
getState fail
'
);
return
;
}
console
.
log
(
'
getState success:
'
+
JSON
.
stringify
(
data
));
});
}).
catch
(
err
=>
{
console
.
log
(
'
connect fail
'
);
});
});
```
```
## sms.getImsShortMessageFormat<sup>8+</sup>
### getState
getState(): Promise
\<
SocketStateBase
\>
getImsShortMessageFormat(): Promise<string
\>
获取TCPSocket状态。使用Promise方式作为异步方法。
获取IMS上支持的SMS格式。使用Promise异步回调。
>**说明:**
>bind或connect方法调用成功后,才可调用此方法。
**
系统接口:**
此接口为系统接口。
**
需要权限**
:ohos.permission.INTERNET
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
**返回值:**
**返回值:**
| 类型 | 说明 |
| 类型 | 说明 |
|
--------------------- |
-------------------------- |
|
:----------------------------------------------- | :---------------
-------------------------- |
| Promise
<
string
>
| 以Promise形式返回SMS格式
。 |
| Promise
<
[
SocketStateBase
](
#socketstatebase
)
>
| 以Promise形式返回获取TCPSocket状态的结果
。 |
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------
- | ---------------------
----------------------- |
| -------
|
----------------------- |
| 201 | Permission denied. |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
promise
=
sms
.
getImsShortMessageFormat
();
let
tcp
=
socket
.
constructTCPSocketInstance
();
promise
.
then
(
data
=>
{
let
promise
=
tcp
.
connect
({
address
:
{
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
}
,
timeout
:
6000
});
console
.
log
(
`getImsShortMessageFormat success, promise: data->
${
JSON
.
stringify
(
data
)}
`
);
promise
.
then
(()
=>
{
console
.
log
(
'
connect success
'
);
let
promise1
=
tcp
.
getState
();
promise1
.
then
(()
=>
{
console
.
log
(
'
getState success
'
);
}).
catch
(
err
=>
{
console
.
log
(
'
getState fail
'
);
});
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
console
.
error
(
`getImsShortMessageFormat failed, promise: err->
${
JSON
.
stringify
(
err
)}
`
);
console
.
log
(
'
connect fail
'
);
});
});
```
```
## sms.decodeMms<sup>8+</sup>
decodeMms(mmsFilePathName: string | Array<number
\>
, callback: AsyncCallback<MmsInformation
\>
): void
### setExtraOptions
彩信解码。使用callback异步回调。
setExtraOptions(options: TCPExtraOptions, callback: AsyncCallback
\<
void
\>
): void
**系统接口:**
此接口为系统接口
。
设置TCPSocket连接的其他属性。使用callback方式作为异步方法
。
**系统能力**
:SystemCapability.Telephony.SmsMms
>**说明:**
>bind或connect方法调用成功后,才可调用此方法。
**需要权限**
:ohos.permission.INTERNET
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| --------
------- | ------------------------------------------------------- | ---- |
-------------- |
| --------
| ----------------------------------------- | ---- | ----------------------------------------------
-------------- |
|
mmsFilePathName | string
\|
Array<number
\>
| 是 | 彩信文件路径名
。 |
|
options |
[
TCPExtraOptions
](
#tcpextraoptions
)
| 是 | TCPSocket连接的其他属性,参考
[
TCPExtraOptions
](
#tcpextraoptions
)
。 |
| callback
| AsyncCallback
<
[MmsInformation](#mmsinformation8)
>
| 是 | 回调函数。
|
| callback
| AsyncCallback
\<
void
\>
| 是 | 回调函数。
|
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------
- | ---------------------
----------------------- |
| -------
|
----------------------- |
| 401 | Parameter error. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 201 | Permission denied. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
mmsFilePathName
=
"
filename
"
;
let
tcp
=
socket
.
constructTCPSocketInstance
();
sms
.
decodeMms
(
mmsFilePathName
,
(
err
,
data
)
=>
{
let
promise
=
tcp
.
connect
({
address
:
{
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
}
,
timeout
:
6000
});
console
.
log
(
`callback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
promise
.
then
(()
=>
{
console
.
log
(
'
connect success
'
);
tcp
.
setExtraOptions
({
keepAlive
:
true
,
OOBInline
:
true
,
TCPNoDelay
:
true
,
socketLinger
:
{
on
:
true
,
linger
:
10
},
receiveBufferSize
:
1000
,
sendBufferSize
:
1000
,
reuseAddress
:
true
,
socketTimeout
:
3000
,
},
err
=>
{
if
(
err
)
{
console
.
log
(
'
setExtraOptions fail
'
);
return
;
}
console
.
log
(
'
setExtraOptions success
'
);
});
}).
catch
(
err
=>
{
console
.
log
(
'
connect fail
'
);
});
});
```
```
## sms.decodeMms<sup>8+</sup>
### setExtraOptions
setExtraOptions(options: TCPExtraOptions): Promise
\<
void
\>
decodeMms(mmsFilePathName: string | Array<number
\>
): Promise<MmsInformation
\>
设置TCPSocket连接的其他属性,使用Promise方式作为异步方法。
彩信解码。使用Promise异步回调。
>**说明:**
>bind或connect方法调用成功后,才可调用此方法。
**
系统接口:**
此接口为系统接口。
**
需要权限**
:ohos.permission.INTERNET
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------
-------- | ----------------------- | ---- |
-------------- |
| -------
| ----------------------------------------- | ---- | ----------------------------------------------
-------------- |
|
mmsFilePathName | string
\|
Array<number
\>
| 是 | 彩信文件路径名
|
|
options |
[
TCPExtraOptions
](
#tcpextraoptions
)
| 是 | TCPSocket连接的其他属性,参考
[
TCPExtraOptions
](
#tcpextraoptions
)
。
|
**返回值:**
**返回值:**
| 类型 | 说明 |
| 类型 | 说明 |
|
--------------------------------------------------------- |
--------------------------- |
|
:-------------- | :------------------------
--------------------------- |
| Promise
<<
[MmsInformation](#mmsinformation8)
>>
| 以Promise形式返回彩信信息
。 |
| Promise
\<
void
\>
| 以Promise形式返回设置TCPSocket连接的其他属性的结果
。 |
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------
- | ---------------------
----------------------- |
| -------
|
----------------------- |
| 401 | Parameter error. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 201 | Permission denied. |
| 8300002 | Operation failed. Cannot connect to service. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
mmsFilePathName
=
"
filename
"
;
let
tcp
=
socket
.
constructTCPSocketInstance
();
let
promise
=
sms
.
decodeMms
(
mmsFilePathName
);
let
promise
=
tcp
.
connect
({
address
:
{
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
}
,
timeout
:
6000
});
promise
.
then
(
data
=>
{
promise
.
then
(()
=>
{
console
.
log
(
`decodeMms success, promise: data->
${
JSON
.
stringify
(
data
)}
`
);
console
.
log
(
'
connect success
'
);
let
promise1
=
tcp
.
setExtraOptions
({
keepAlive
:
true
,
OOBInline
:
true
,
TCPNoDelay
:
true
,
socketLinger
:
{
on
:
true
,
linger
:
10
},
receiveBufferSize
:
1000
,
sendBufferSize
:
1000
,
reuseAddress
:
true
,
socketTimeout
:
3000
,
});
promise1
.
then
(()
=>
{
console
.
log
(
'
setExtraOptions success
'
);
}).
catch
(
err
=>
{
console
.
log
(
'
setExtraOptions fail
'
);
});
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
console
.
error
(
`decodeMms failed, promise: err->
${
JSON
.
stringify
(
err
)}
`
);
console
.
log
(
'
connect fail
'
);
});
```
### on('message')
on(type: 'message', callback: Callback<{message: ArrayBuffer, remoteInfo: SocketRemoteInfo}
\>
): void
订阅TCPSocket连接的接收消息事件。使用callback方式作为异步方法。
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------- |
| type | string | 是 | 订阅的事件类型。'message':接收消息事件。 |
| callback | Callback
<
{
message:
ArrayBuffer
,
remoteInfo:
[
SocketRemoteInfo
](
#socketremoteinfo
)}
>
| 是 | 回调函数。 |
**示例:**
```
js
let
tcp
=
socket
.
constructTCPSocketInstance
();
tcp
.
on
(
'
message
'
,
value
=>
{
console
.
log
(
"
on message, message:
"
+
value
.
message
+
"
, remoteInfo:
"
+
value
.
remoteInfo
)
});
```
### off('message')
off(type: 'message', callback?: Callback<{message: ArrayBuffer, remoteInfo: SocketRemoteInfo}
\>
): void
取消订阅TCPSocket连接的接收消息事件。使用callback方式作为异步方法。
>**说明:**
>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------- |
| type | string | 是 | 订阅的事件类型。'message':接收消息事件。 |
| callback | Callback
<
{
message:
ArrayBuffer
,
remoteInfo:
[
SocketRemoteInfo
](
#socketremoteinfo
)}
>
| 否 | 回调函数。 |
**示例:**
```
js
let
tcp
=
socket
.
constructTCPSocketInstance
();
let
callback
=
value
=>
{
console
.
log
(
"
on message, message:
"
+
value
.
message
+
"
, remoteInfo:
"
+
value
.
remoteInfo
);
}
tcp
.
on
(
'
message
'
,
callback
);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
tcp
.
off
(
'
message
'
,
callback
);
tcp
.
off
(
'
message
'
);
```
### on('connect' | 'close')
on(type: 'connect' | 'close', callback: Callback
\<
void
\>
): void
订阅TCPSocket的连接事件或关闭事件。使用callback方式作为异步方法。
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 订阅的事件类型。
<br
/>
- 'connect':连接事件。
<br
/>
- 'close':关闭事件。 |
| callback | Callback
\<
void
\>
| 是 | 回调函数。 |
**示例:**
```
js
let
tcp
=
socket
.
constructTCPSocketInstance
();
tcp
.
on
(
'
connect
'
,
()
=>
{
console
.
log
(
"
on connect success
"
)
});
tcp
.
on
(
'
close
'
,
data
=>
{
console
.
log
(
"
on close success
"
)
});
```
### off('connect' | 'close')
off(type: 'connect' | 'close', callback?: Callback
\<
void
\>
): void
取消订阅TCPSocket的连接事件或关闭事件。使用callback方式作为异步方法。
>**说明:**
>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 订阅的事件类型。
<br
/>
- 'connect':连接事件。
<br
/>
- 'close':关闭事件。 |
| callback | Callback
\<
void
\>
| 否 | 回调函数。 |
**示例:**
```
js
let
tcp
=
socket
.
constructTCPSocketInstance
();
let
callback1
=
()
=>
{
console
.
log
(
"
on connect success
"
);
}
tcp
.
on
(
'
connect
'
,
callback1
);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
tcp
.
off
(
'
connect
'
,
callback1
);
tcp
.
off
(
'
connect
'
);
let
callback2
=
()
=>
{
console
.
log
(
"
on close success
"
);
}
tcp
.
on
(
'
close
'
,
callback2
);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
tcp
.
off
(
'
close
'
,
callback2
);
tcp
.
off
(
'
close
'
);
```
### on('error')
on(type: 'error', callback: ErrorCallback): void
订阅TCPSocket连接的error事件。使用callback方式作为异步方法。
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------- | ---- | ------------------------------------ |
| type | string | 是 | 订阅的事件类型。'error':error事件。 |
| callback | ErrorCallback | 是 | 回调函数。 |
**示例:**
```
js
let
tcp
=
socket
.
constructTCPSocketInstance
();
tcp
.
on
(
'
error
'
,
err
=>
{
console
.
log
(
"
on error, err:
"
+
JSON
.
stringify
(
err
))
});
});
```
```
## sms.encodeMms<sup>8+</sup>
encodeMms(mms: MmsInformation, callback: AsyncCallback
<Array
<
number
\
>
>): void
### off('error')
off(type: 'error', callback?: ErrorCallback): void
彩信编码。使用callback异步回调
。
取消订阅TCPSocket连接的error事件。使用callback方式作为异步方法
。
**系统接口:**
此接口为系统接口。
>**说明:**
>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------------------- | ---- | ---------- |
| -------- | ------------- | ---- | ------------------------------------ |
| mms |
[
MmsInformation
](
#mmsinformation8
)
| 是 | 彩信信息。 |
| type | string | 是 | 订阅的事件类型。'error':error事件。 |
| callback | AsyncCallback
<
Array
<number
\
>
>
| 是 | 回调函数。 |
| callback | ErrorCallback | 否 | 回调函数。 |
**示例:**
```
js
let
tcp
=
socket
.
constructTCPSocketInstance
();
let
callback
=
err
=>
{
console
.
log
(
"
on error, err:
"
+
JSON
.
stringify
(
err
));
}
tcp
.
on
(
'
error
'
,
callback
);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
tcp
.
off
(
'
error
'
,
callback
);
tcp
.
off
(
'
error
'
);
```
## TCPConnectOptions
TCPSocket连接的参数。
**系统能力**
:SystemCapability.Communication.NetStack
| 名称 | 类型 | 必填 | 说明 |
| ------- | ---------------------------------- | ---- | -------------------------- |
| address |
[
NetAddress
](
#netaddress
)
| 是 | 绑定的地址以及端口。 |
| timeout | number | 否 | 超时时间,单位毫秒(ms)。 |
## TCPSendOptions
TCPSocket发送请求的参数。
**系统能力**
:SystemCapability.Communication.NetStack
| 名称 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| data | string
\|
ArrayBuffer
<sup>
7+
</sup>
| 是 | 发送的数据。 |
| encoding | string | 否 | 字符编码(UTF-8,UTF-16BE,UTF-16LE,UTF-16,US-AECII,ISO-8859-1),默认为UTF-8。 |
## TCPExtraOptions
TCPSocket连接的其他属性。
**系统能力**
:SystemCapability.Communication.NetStack
| 名称 | 类型 | 必填 | 说明 |
| ----------------- | ------- | ---- | ------------------------------------------------------------ |
| keepAlive | boolean | 否 | 是否保持连接。默认为false。 |
| OOBInline | boolean | 否 | 是否为OOB内联。默认为false。 |
| TCPNoDelay | boolean | 否 | TCPSocket连接是否无时延。默认为false。 |
| socketLinger | Object | 是 | socket是否继续逗留。
<br
/>
- on:是否逗留(true:逗留;false:不逗留)。
<br
/>
- linger:逗留时长,单位毫秒(ms),取值范围为0~65535。
<br
/>
当入参on设置为true时,才需要设置。 |
| receiveBufferSize | number | 否 | 接收缓冲区大小(单位:Byte)。 |
| sendBufferSize | number | 否 | 发送缓冲区大小(单位:Byte)。 |
| reuseAddress | boolean | 否 | 是否重用地址。默认为false。 |
| socketTimeout | number | 否 | 套接字超时时间,单位毫秒(ms)。 |
## TCP 错误码说明
TCP 其余错误码映射形式为:2301000 + Linux内核错误码。
错误码的详细介绍参见
[
Socket错误码
](
../errorcodes/errorcode-net-socket.md
)
## socket.constructTLSSocketInstance<sup>9+</sup>
constructTLSSocketInstance(): TLSSocket
创建并返回一个TLSSocket对象。
**系统能力**
:SystemCapability.Communication.NetStack
**返回值:**
| 类型 | 说明 |
| :--------------------------------- | :---------------------- |
|
[
TLSSocket
](
#tlssocket9
)
| 返回一个TLSSocket对象。 |
**示例:**
```
js
let
tls
=
socket
.
constructTLSSocketInstance
();
```
## TLSSocket<sup>9+</sup>
TLSSocket连接。在调用TLSSocket的方法前,需要先通过
[
socket.constructTLSSocketInstance
](
#socketconstructtlssocketinstance9
)
创建TLSSocket对象。
### bind<sup>9+</sup>
bind(address: NetAddress, callback: AsyncCallback
\<
void
\>
): void
绑定IP地址和端口。使用callback方法作为异步方法。
**需要权限**
:ohos.permission.INTERNET
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------------- | ---- | ------------------------------------------------------ |
| address |
[
NetAddress
](
#netaddress
)
| 是 | 目标地址信息,参考
[
NetAddress
](
#netaddress
)
。 |
| callback | AsyncCallback
\<
void
\>
| 是 | 回调函数。成功返回TLSSocket绑定本机的IP地址和端口的结果。 失败返回错误码,错误信息。|
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------
- | ---------------------
----------------------- |
| -------
|
----------------------- |
| 401 | Parameter error. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 201 | Permission denied. |
| 8300002 | Operation failed. Cannot connect to service. |
| 2303198 | Address already in use. |
| 8300003 | System internal error. |
| 2300002 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
mmsAcknowledgeInd
=
{
tls
.
bind
({
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
},
err
=>
{
transactionId
:
"
100
"
,
if
(
err
)
{
version
:
sms
.
MmsVersionType
.
MMS_VERSION_1_0
,
console
.
log
(
'
bind fail
'
);
reportAllowed
:
sms
.
ReportType
.
MMS_YES
return
;
};
}
let
mmsInformation
=
{
console
.
log
(
'
bind success
'
);
messageType
:
sms
.
MessageType
.
TYPE_MMS_ACKNOWLEDGE_IND
,
mmsType
:
mmsAcknowledgeInd
};
sms
.
encodeMms
(
mmsInformation
,
(
err
,
data
)
=>
{
console
.
log
(
`callback: err->
${
JSON
.
stringify
(
err
)}
, data->
${
JSON
.
stringify
(
data
)}
`
);
});
});
```
```
### bind<sup>9+</sup>
bind(address: NetAddress): Promise
\<
void
\>
绑定IP地址和端口。使用Promise方法作为异步方法。
**需要权限**
:ohos.permission.INTERNET
## sms.encodeMms<sup>8+</sup>
**系统能力**
:SystemCapability.Communication.NetStack
encodeMms(mms: MmsInformation): Promise
<Array
<
number
\
>
>
**参数:**
彩信编码。使用Promise异步回调。
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ---------------------------------- | ---- | ------------------------------------------------------ |
| address |
[
NetAddress
](
#netaddress
)
| 是 | 目标地址信息,参考
[
NetAddress
](
#netaddress
)
。 |
**
系统接口:**
此接口为系统接口。
**
返回值:**
**系统能力**
:SystemCapability.Telephony.SmsMms
| 类型 | 说明 |
| :-------------- | :------------------------------------------------------- |
| Promise
\<
void
\>
| 以Promise形式返回TLSSocket绑定本机的IP地址和端口的结果。失败返回错误码,错误信息。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | ----------------------- |
| 401 | Parameter error. |
| 201 | Permission denied. |
| 2303198 | Address already in use. |
| 2300002 | System internal error. |
**示例:**
```
js
let
promise
=
tls
.
bind
({
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
});
promise
.
then
(()
=>
{
console
.
log
(
'
bind success
'
);
}).
catch
(
err
=>
{
console
.
log
(
'
bind fail
'
);
});
```
### getState<sup>9+</sup>
getState(callback: AsyncCallback
\<
SocketStateBase
\>
): void
在TLSSocket的bind成功之后,获取TLSSocket状态。使用callback方式作为异步方法。
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ---------------------------------- | ---- | ---------- |
| -------- | ------------------------------------------------------ | ---- | ---------- |
| mms |
[
MmsInformation
](
#mmsinformation8
)
| 是 | 彩信信息。 |
| callback | AsyncCallback
\<
[
SocketStateBase
](
#socketstatebase
)
> | 是 | 回调函数。成功返回TLSSocket状态,失败返回错误码,错误信息。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | ------------------------------ |
| 2303188 | Socket operation on non-socket.|
| 2300002 | System internal error. |
**示例:**
```
js
let
promise
=
tls
.
bind
({
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
},
err
=>
{
if
(
err
)
{
console
.
log
(
'
bind fail
'
);
return
;
}
console
.
log
(
'
bind success
'
);
});
tls
.
getState
((
err
,
data
)
=>
{
if
(
err
)
{
console
.
log
(
'
getState fail
'
);
return
;
}
console
.
log
(
'
getState success:
'
+
JSON
.
stringify
(
data
));
});
```
### getState<sup>9+</sup>
getState(): Promise
\<
SocketStateBase
\>
在TLSSocket的bind成功之后,获取TLSSocket状态。使用Promise方式作为异步方法。
**系统能力**
:SystemCapability.Communication.NetStack
**返回值:**
**返回值:**
| 类型 | 说明 |
| 类型 | 说明 |
|
----------------------------- |
----------------------------------- |
|
:----------------------------------------------- | :------
----------------------------------- |
| Promise
<
Array
<number
\
>
>
| 以Promise形式返回彩信编码后的结果。
|
| Promise
\<
[
SocketStateBase
](
#socketstatebase
)
> | 以Promise形式返回获取TLSSocket状态的结果。失败返回错误码,错误信息。
|
**错误码:**
**错误码:**
以下错误码的详细介绍请参见
[
ohos.telephony(电话子系统)错误码
](
../../reference/errorcodes/errorcode-telephony.md
)
错误码。
| 错误码ID | 错误信息 |
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| ------- | ------------------------------ |
| 2303188 | Socket operation on non-socket.|
| 2300002 | System internal error. |
**示例:**
```
js
tls
.
bind
({
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
},
err
=>
{
if
(
err
)
{
console
.
log
(
'
bind fail
'
);
return
;
}
console
.
log
(
'
bind success
'
);
});
let
promise
=
tls
.
getState
();
promise
.
then
(()
=>
{
console
.
log
(
'
getState success
'
);
}).
catch
(
err
=>
{
console
.
log
(
'
getState fail
'
);
});
```
### setExtraOptions<sup>9+</sup>
setExtraOptions(options: TCPExtraOptions, callback: AsyncCallback
\<
void
\>
): void
在TLSSocket的bind成功之后,设置TCPSocket连接的其他属性。使用callback方式作为异步方法。
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
| options |
[
TCPExtraOptions
](
#tcpextraoptions
)
| 是 | TCPSocket连接的其他属性,参考
[
TCPExtraOptions
](
#tcpextraoptions
)
。 |
| callback | AsyncCallback
\<
void
\>
| 是 | 回调函数。成功返回设置TCPSocket连接的其他属性的结果,失败返回错误码,错误信息。|
**错误码:**
| 错误码ID | 错误信息 |
| ------- | ----------------------------- |
| 401 | Parameter error. |
| 2303188 | Socket operation on non-socket.|
| 2300002 | System internal error. |
**示例:**
```
js
tls
.
bind
({
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
},
err
=>
{
if
(
err
)
{
console
.
log
(
'
bind fail
'
);
return
;
}
console
.
log
(
'
bind success
'
);
});
tls
.
setExtraOptions
({
keepAlive
:
true
,
OOBInline
:
true
,
TCPNoDelay
:
true
,
socketLinger
:
{
on
:
true
,
linger
:
10
},
receiveBufferSize
:
1000
,
sendBufferSize
:
1000
,
reuseAddress
:
true
,
socketTimeout
:
3000
,
},
err
=>
{
if
(
err
)
{
console
.
log
(
'
setExtraOptions fail
'
);
return
;
}
console
.
log
(
'
setExtraOptions success
'
);
});
```
### setExtraOptions<sup>9+</sup>
setExtraOptions(options: TCPExtraOptions): Promise
\<
void
\>
在TLSSocket的bind成功之后,设置TCPSocket连接的其他属性,使用Promise方式作为异步方法。
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
| options |
[
TCPExtraOptions
](
#tcpextraoptions
)
| 是 | TCPSocket连接的其他属性,参考
[
TCPExtraOptions
](
#tcpextraoptions
)
。 |
**返回值:**
| 类型 | 说明 |
| :-------------- | :--------------------------------------------------- |
| Promise
\<
void
\>
| 以Promise形式返回设置TCPSocket连接的其他属性的结果。失败返回错误码,错误信息。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | ------------------------------ |
| 401 | Parameter error. |
| 401 | Parameter error. |
| 8300001 | Invalid parameter value. |
| 2303188 | Socket operation on non-socket.|
| 8300002 | Operation failed. Cannot connect to service. |
| 2300002 | System internal error. |
| 8300003 | System internal error. |
| 8300999 | Unknown error code. |
**示例:**
**示例:**
```
js
```
js
let
mmsAcknowledgeInd
=
{
tls
.
bind
({
address
:
'
192.168.xx.xxx
'
,
port
:
xxxx
,
family
:
1
},
err
=>
{
transactionId
:
"
100
"
,
if
(
err
)
{
version
:
sms
.
MmsVersionType
.
MMS_VERSION_1_0
,
console
.
log
(
'
bind fail
'
);
reportAllowed
:
sms
.
ReportType
.
MMS_YES
return
;
}
console
.
log
(
'
bind success
'
);
});
let
promise
=
tls
.
setExtraOptions
({
keepAlive
:
true
,
OOBInline
:
true
,
TCPNoDelay
:
true
,
socketLinger
:
{
on
:
true
,
linger
:
10
},
receiveBufferSize
:
1000
,
sendBufferSize
:
1000
,
reuseAddress
:
true
,
socketTimeout
:
3000
,
});
promise
.
then
(()
=>
{
console
.
log
(
'
setExtraOptions success
'
);
}).
catch
(
err
=>
{
console
.
log
(
'
setExtraOptions fail
'
);
});
```
### connect<sup>9+</sup>
connect(options: TLSConnectOptions, callback: AsyncCallback
\<
void
\>
): void
在TLSSocket上bind成功之后,进行通信连接,并创建和初始化TLS会话,实现建立连接过程,启动与服务器的TLS/SSL握手,实现数据传输功能,使用callback方式作为异步方法。
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------------------| ----| --------------- |
| options |
[
TLSConnectOptions
](
#tlsconnectoptions9
)
| 是 | TLSSocket连接所需要的参数。|
| callback | AsyncCallback
\<
void> | 是 | 回调函数,成功无返回,失败返回错误码,错误信息。|
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------------------- |
| 401 | Parameter error. |
| 2303104 | Interrupted system call. |
| 2303109 | Bad file number. |
| 2303111 | Resource temporarily unavailable try again. |
| 2303188 | Socket operation on non-socket. |
| 2303191 | Protocol wrong type for socket. |
| 2303198 | Address already in use. |
| 2303199 | Cannot assign requested address. |
| 2303210 | Connection timed out. |
| 2303501 | SSL is null. |
| 2303502 | Error in tls reading. |
| 2303503 | Error in tls writing |
| 2303505 | Error occurred in the tls system call. |
| 2303506 | Error clearing tls connection. |
| 2300002 | System internal error. |
**示例:**
```
js
let
tlsTwoWay
=
socket
.
constructTLSSocketInstance
();
// Two way authentication
tlsTwoWay
.
bind
({
address
:
'
192.168.xxx.xxx
'
,
port
:
8080
,
family
:
1
},
err
=>
{
if
(
err
)
{
console
.
log
(
'
bind fail
'
);
return
;
}
console
.
log
(
'
bind success
'
);
});
let
options
=
{
ALPNProtocols
:
[
"
spdy/1
"
,
"
http/1.1
"
],
address
:
{
address
:
"
192.168.xx.xxx
"
,
port
:
8080
,
family
:
1
,
},
secureOptions
:
{
key
:
"
xxxx
"
,
cert
:
"
xxxx
"
,
ca
:
[
"
xxxx
"
],
password
:
"
xxxx
"
,
protocols
:
[
socket
.
Protocol
.
TLSv12
],
useRemoteCipherPrefer
:
true
,
signatureAlgorithms
:
"
rsa_pss_rsae_sha256:ECDSA+SHA256
"
,
cipherSuite
:
"
AES256-SHA256
"
,
},
};
};
let
mmsInformation
=
{
tlsTwoWay
.
connect
(
options
,
(
err
,
data
)
=>
{
messageType
:
sms
.
MessageType
.
TYPE_MMS_ACKNOWLEDGE_IND
,
console
.
error
(
"
connect callback error
"
+
err
);
mmsType
:
mmsAcknowledgeInd
console
.
log
(
JSON
.
stringify
(
data
));
});
let
tlsOneWay
=
socket
.
constructTLSSocketInstance
();
// One way authentication
tlsOneWay
.
bind
({
address
:
'
192.168.xxx.xxx
'
,
port
:
8080
,
family
:
1
},
err
=>
{
if
(
err
)
{
console
.
log
(
'
bind fail
'
);
return
;
}
console
.
log
(
'
bind success
'
);
});
let
oneWayOptions
=
{
address
:
{
address
:
"
192.168.xxx.xxx
"
,
port
:
8080
,
family
:
1
,
},
secureOptions
:
{
ca
:
[
"
xxxx
"
,
"
xxxx
"
],
cipherSuite
:
"
AES256-SHA256
"
,
},
};
};
let
promise
=
sms
.
encodeMms
(
mmsInformation
);
tlsOneWay
.
connect
(
oneWayOptions
,
(
err
,
data
)
=>
{
promise
.
then
(
data
=>
{
console
.
error
(
"
connect callback error
"
+
err
);
console
.
log
(
`encodeMms success, promise: data->
${
JSON
.
stringify
(
data
)}
`
);
console
.
log
(
JSON
.
stringify
(
data
));
});
```
### connect<sup>9+</sup>
connect(options: TLSConnectOptions): Promise
\<
void
\>
在TLSSocket上bind成功之后,进行通信连接,并创建和初始化TLS会话,实现建立连接过程,启动与服务器的TLS/SSL握手,实现数据传输功能,该连接包括两种认证方式,单向认证与双向认证,使用Promise方式作为异步方法。
**系统能力**
:SystemCapability.Communication.NetStack
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------| ----| --------------- |
| options |
[
TLSConnectOptions
](
#tlsconnectoptions9
)
| 是 | 连接所需要的参数。|
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | ----------------------------- |
| Promise
\<
void
\>
| 以Promise形式返回,成功无返回,失败返回错误码,错误信息。|
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------------------- |
| 401 | Parameter error. |
| 2303104 | Interrupted system call. |
| 2303109 | Bad file number. |
| 2303111 | Resource temporarily unavailable try again. |
| 2303188 | Socket operation on non-socket. |
| 2303191 | Protocol wrong type for socket. |
| 2303198 | Address already in use. |
| 2303199 | Cannot assign requested address. |
| 2303210 | Connection timed out. |
| 2303501 | SSL is null. |
| 2303502 | Error in tls reading. |
| 2303503 | Error in tls writing |
| 2303505 | Error occurred in the tls system call. |
| 2303506 | Error clearing tls connection. |
| 2300002 | System internal error. |
**示例:**
```
js
let
tlsTwoWay
=
socket
.
constructTLSSocketInstance
();
// Two way authentication
tlsTwoWay
.
bind
({
address
:
'
192.168.xxx.xxx
'
,
port
:
8080
,
family
:
1
},
err
=>
{
if
(
err
)
{
console
.
log
(
'
bind fail
'
);
return
;
}
console
.
log
(
'
bind success
'
);
});
let
options
=
{
ALPNProtocols
:
[
"
spdy/1
"
,
"
http/1.1
"
],
address
:
{
address
:
"
xxxx
"
,
port
:
8080
,
family
:
1
,
},
secureOptions
:
{
key
:
"
xxxx
"
,
cert
:
"
xxxx
"
,
ca
:
[
"
xxxx
"
],
password
:
"
xxxx
"
,
protocols
:
[
socket
.
Protocol
.
TLSv12
],
useRemoteCipherPrefer
:
true
,
signatureAlgorithms
:
"
rsa_pss_rsae_sha256:ECDSA+SHA256
"
,
cipherSuite
:
"
AES256-SHA256
"
,
},
};
tlsTwoWay
.
connect
(
options
).
then
(
data
=>
{
console
.
log
(
JSON
.
stringify
(
data
));
}).
catch
(
err
=>
{
console
.
error
(
err
);
});
let
tlsOneWay
=
socket
.
constructTLSSocketInstance
();
// One way authentication
tlsOneWay
.
bind
({
address
:
'
192.168.xxx.xxx
'
,
port
:
8080
,
family
:
1
},
err
=>
{
if
(
err
)
{
console
.
log
(
'
bind fail
'
);
return
;
}
console
.
log
(
'
bind success
'
);
});
let
oneWayOptions
=
{
address
:
{
address
:
"
192.168.xxx.xxx
"
,
port
:
8080
,
family
:
1
,
},
secureOptions
:
{
ca
:
[
"
xxxx
"
,
"
xxxx
"
],
cipherSuite
:
"
AES256-SHA256
"
,
},
};
tlsOneWay
.
connect
(
oneWayOptions
).
then
(
data
=>
{
console
.
log
(
JSON
.
stringify
(
data
));
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
console
.
error
(
`encodeMms failed, promise: err->
${
JSON
.
stringify
(
err
)}
`
);
console
.
error
(
err
);
});
});
```
```
##
ShortMessage
##
# getRemoteAddress<sup>9+</sup>
短信实例。
getRemoteAddress(callback: AsyncCallback
\<
NetAddress
\>
): void
**系统能力**
:SystemCapability.Telephony.SmsMms
在TLSSocket通信连接成功之后,获取对端Socket地址。使用callback方式作为异步方法。
| 名称 | 类型 | 必填 | 说明 |
**系统能力**
:SystemCapability.Communication.NetStack
| ------------------------ | --------------------------------------- | ---- | ------------------------------------------------------------ |
| hasReplyPath | boolean | 是 | 收到的短信是否包含“TP-Reply-Path”,默认为false。
<br/>
“TP-Reply-Path”:设备根据发送SMS消息的短消息中心进行回复。 |
| isReplaceMessage | boolean | 是 | 收到的短信是否为“替换短信”,默认为false。
<br/>
“替换短信”有关详细信息,参见 “3GPP TS 23.040 9.2.3.9”。 |
| isSmsStatusReportMessage | boolean | 是 | 当前消息是否为“短信状态报告”,默认为false。
<br/>
“短信状态报告”是一种特定格式的短信,被用来从Service Center到Mobile Station传送状态报告。|
| messageClass |
[
ShortMessageClass
](
#shortmessageclass
)
| 是 | 短信类型。 |
| pdu | Array
<
number
>
| 是 | SMS消息中的协议数据单元 (PDU)。 |
| protocolId | number | 是 | 发送短信时使用的协议标识。 |
| scAddress | string | 是 | 短消息服务中心(SMSC)地址。 |
| scTimestamp | number | 是 | SMSC时间戳。 |
| status | number | 是 | SMS-STATUS-REPORT消息中的短信状态指示短信服务中心(SMSC)发送的短信状态。 |
| visibleMessageBody | string | 是 | 短信正文。 |
| visibleRawAddress | string | 是 | 发送者地址。 |
**参数:**
## ShortMessageClass
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------- | ---- | ---------- |
| callback | AsyncCallback
\<
[
NetAddress
](
#netaddress
)
\>
| 是 | 回调函数。成功返回对端的socket地址,失败返回错误码,错误信息。 |
短信类型。
**错误码:**
**系统能力**
:SystemCapability.Telephony.SmsMms
| 错误码ID | 错误信息 |
| ------- | ----------------------------- |
| 2303188 | Socket operation on non-socket.|
| 2300002 | System internal error. |
| 名称 | 值 | 说明 |
**示例:**
| ---------------- | ---- | ---------------------------------------- |
| UNKNOWN | 0 | 未知类型。 |
| INSTANT_MESSAGE | 1 | 即时消息,收到后立即显示。 |
| OPTIONAL_MESSAGE | 2 | 存储在设备或SIM卡上的短信。 |
| SIM_MESSAGE | 3 | 包含SIM卡信息的短信,需要存储在SIM卡中。 |
| FORWARD_MESSAGE | 4 | 要转发到另一台设备的短信。 |
```
js
tls
.
getRemoteAddress
((
err
,
data
)
=>
{
if
(
err
)
{
console
.
log
(
'
getRemoteAddress fail
'
);
return
;
}
console
.
log
(
'
getRemoteAddress success:
'
+
JSON
.
stringify
(
data
));
});
```
##
SendMessageOptions
##
# getRemoteAddress<sup>9+</sup>
发送短信的参数和回调。根据SendMessageOptions中的可选参数content的值判断短信类型。
getRemoteAddress(): Promise
\<
NetAddress
\>
**系统能力**
:SystemCapability.Telephony.SmsMms
在TLSSocket通信连接成功之后,获取对端Socket地址。使用Promise方式作为异步方法。
| 名称 | 类型 | 必填 | 说明 |
**系统能力**
:SystemCapability.Communication.NetStack
| ---------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| slotId | number | 是 | 用于发送短信的SIM卡槽ID:
<br/>
- 0:卡槽1
<br/>
- 1:卡槽2 |
| destinationHost | string | 是 | 短信的发送地址。 |
| content | string
\|
Array
<
number
>
| 是 | 如果内容是字符串,则这是一条文本短信。如果内容是字节数组,则这是一条数据短信。 |
| serviceCenter | string | 否 | 短信中心地址。默认使用SIM卡中的短信中心地址。 |
| destinationPort | number | 否 | 如果发送数据消息,destinationPort 是必需的。否则是可选的。 |
| sendCallback | AsyncCallback
<
[ISendShortMessageCallback](#isendshortmessagecallback)
>
| 否 | 短信发送结果回调,返回短信发送的结果,参考
[
ISendShortMessageCallback
](
#isendshortmessagecallback
)
。 |
| deliveryCallback | AsyncCallback
<
[IDeliveryShortMessageCallback](#ideliveryshortmessagecallback)
>
| 否 | 短信送达结果回调,返回短信递送报告,参考
[
IDeliveryShortMessageCallback
](
#ideliveryshortmessagecallback
)
。 |
**返回值:**
## ISendShortMessageCallback
| 类型 | 说明 |
| :------------------------------------------ | :------------------------------------------ |
| Promise
\<
[
NetAddress
](
#netaddress
)
> | 以Promise形式返回获取对端socket地址的结果。失败返回错误码,错误信息。 |
回调实例。返回短信发送结果、存储已发送短信的URI和是否为长短信的最后一部分。
**错误码:**
**系统能力**
:SystemCapability.Telephony.SmsMms
| 错误码ID | 错误信息 |
| ------- | ------------------------------ |
| 2303188 | Socket operation on non-socket.|
| 2300002 | System internal error. |
| 名称 | 类型 | 必填 | 说明 |
**示例:**
| ---------- | ------------------------------- | ---- | ----------------------------------------------------------------------------------------- |
| isLastPart | boolean | 否 | 指定这是否是长短信的最后一部分。true表示这是长短信的最后一部分,false表示不是。默认为false。 |
| result |
[
SendSmsResult
](
#sendsmsresult
)
| 是 | 短信发送结果。 |
| url | string | 是 | 存储发送短信的URI。 |
```
js
let
promise
=
tls
.
getRemoteAddress
();
promise
.
then
(()
=>
{
console
.
log
(
'
getRemoteAddress success
'
);
}).
catch
(
err
=>
{
console
.
log
(
'
getRemoteAddress fail
'
);
});
```
##
IDeliveryShortMessageCallback
##
# getCertificate<sup>9+</sup>
回调实例,返回短信送达报告。
getCertificate(callback: AsyncCallback
\<
[
X509CertRawData
](
#x509certrawdata9
)
\>
): void
**系统能力**
:SystemCapability.Telephony.SmsMms
在TLSSocket通信连接成功之后,获取本地的数字证书,该接口只适用于双向认证时,使用callback方式作为异步方法。
| 名称 | 类型 | 必填 | 说明 |
**系统能力**
:SystemCapability.Communication.NetStack
| ---- | ------------------- | ---- | -------------- |
| pdu | Array
<
number
>
| 是 | 短信送达报告。 |
**参数:**
## SendSmsResult
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------------------------| ---- | ---------------|
| callback | AsyncCallback
\<
[
X509CertRawData
](
#x509certrawdata9
)
\>
| 是 | 回调函数,成功返回本地的证书,失败返回错误码,错误信息。|
短信发送结果。
**错误码:**
**系统能力**
:SystemCapability.Telephony.SmsMms
| 错误码ID | 错误信息 |
| ------- | ------------------------------ |
| 2303501 | SSL is null. |
| 2303504 | Error looking up x509. |
| 2300002 | System internal error. |
| 名称 | 值 | 说明 |
**示例:**
| ------------------------------------ | ---- | ------------------------------------------------------ |
| SEND_SMS_SUCCESS | 0 | 发送短信成功。 |
| SEND_SMS_FAILURE_UNKNOWN | 1 | 发送短信失败,原因未知。 |
| SEND_SMS_FAILURE_RADIO_OFF | 2 | 发送短信失败,原因为调制解调器关机。 |
| SEND_SMS_FAILURE_SERVICE_UNAVAILABLE | 3 | 发送短信失败,原因为网络不可用、不支持发送或接收短信。 |
## MmsInformation<sup>8+</sup>
```
js
tls
.
getCertificate
((
err
,
data
)
=>
{
if
(
err
)
{
console
.
log
(
"
getCertificate callback error =
"
+
err
);
}
else
{
console
.
log
(
"
getCertificate callback =
"
+
data
);
}
});
```
彩信信息。
### getCertificate<sup>9+</sup>
**系统接口:**
此接口为系统接口。
getCertificate():Promise
\<
[
X509CertRawData
](
#x509certrawdata9
)
\>
**系统能力**
:SystemCapability.Telephony.SmsMms
在TLSSocket通信连接之后,获取本地的数字证书,该接口只适用于双向认证时,使用Promise方式作为异步方法。
| 名称 | 类型 | 必填 | 说明 |
**系统能力**
:SystemCapability.Communication.NetStack
| ----------- | ------------------------------------------------------------ | ---- | ---------- |
| messageType |
[
MessageType
](
#messagetype8
)
| 是 | 消息类型。 |
| mmsType |
[
MmsSendReq
](
#mmssendreq8
)
\|
[
MmsSendConf
](
#mmssendconf8
)
\|
[
MmsNotificationInd
](
#mmsnotificationind8
)
\|
[
MmsRespInd
](
#mmsrespind8
)
\|
[
MmsRetrieveConf
](
#mmsretrieveconf8
)
\|
[
MmsAcknowledgeInd
](
#mmsacknowledgeind8
)
\|
[
MmsDeliveryInd
](
#mmsdeliveryind8
)
\|
[
MmsReadOrigInd
](
#mmsreadorigind8
)
\|
[
MmsReadRecInd
](
#mmsreadrecind8
)
| 是 | PDU头类型 |
| attachment | Array<
[
MmsAttachment
](
#mmsattachment8
)
\>
| 否 | 附件 |
## MmsSendReq<sup>8+</sup>
**返回值:**
彩信发送请求。
| 类型 | 说明 |
| -------------- | -------------------- |
| Promise
\<
[
X509CertRawData
](
#x509certrawdata9
)
\>
| 以Promise形式返回本地的数字证书的结果。失败返回错误码,错误信息。 |
**
系统接口:**
此接口为系统接口。
**
错误码:**
**系统能力**
:SystemCapability.Telephony.SmsMms
| 错误码ID | 错误信息 |
| ------- | ------------------------------ |
| 2303501 | SSL is null. |
| 2303504 | Error looking up x509. |
| 2300002 | System internal error. |
| 名称 | 类型 | 必填 | 说明 |
**示例:**
| ---------------- | ------------------------------------ | ---- | ------------ |
| from |
[
MmsAddress
](
#mmsaddress8
)
| 是 | 彩信来源 |
| transactionId | string | 是 | 事务ID |
| contentType | string | 是 | 内容类型 |
| version |
[
MmsVersionType
](
#mmsversiontype8
)
| 是 | 版本 |
| to | Array<
[
MmsAddress
](
#mmsaddress8
)
\>
| 否 | 发送至 |
| date | number | 否 | 日期 |
| cc | Array<
[
MmsAddress
](
#mmsaddress8
)
\>
| 否 | 抄送 |
| bcc | Array<
[
MmsAddress
](
#mmsaddress8
)
\>
| 否 | 暗抄送 |
| subject | string | 否 | 主题 |
| messageClass | number | 否 | 消息类 |
| expiry | number | 否 | 到期 |
| priority |
[
MmsPriorityType
](
#mmsprioritytype8
)
| 否 | 优先 |
| senderVisibility | number | 否 | 发件人可见性 |
| deliveryReport | number | 否 | 交付报告 |
| readReport | number | 否 | 阅读报告 |
## MmsSendConf<sup>8+</sup>
彩信发送配置。
**系统接口:**
此接口为系统接口。
**系统能力**
:SystemCapability.Telephony.SmsMms
| 名称 | 类型 | 必填 | 说明 |
```
js
| ------------- | ---------------------------------- | ---- | -------- |
tls
.
getCertificate
().
then
(
data
=>
{
| responseState | number | 是 | 响应状态 |
console
.
log
(
data
);
| transactionId | string | 是 | 事务ID |
}).
catch
(
err
=>
{
| version |
[
MmsVersionType
](
#mmsversiontype8
)
| 是 | 版本 |
console
.
error
(
err
);
| messageId | string | 否 | 消息ID |
});
```
##
MmsNotificationInd<sup>8
+</sup>
##
# getRemoteCertificate<sup>9
+</sup>
彩信通知索引。
getRemoteCertificate(callback: AsyncCallback
\<
[
X509CertRawData
](
#x509certrawdata9
)
\>
): void
**系统接口:**
此接口为系统接口
。
在TLSSocket通信连接成功之后,获取服务端的数字证书,使用callback方式作为异步方法
。
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
| 名称 | 类型 | 必填 | 说明 |
**参数:**
| --------------- | ---------------------------------- | ---- | -------- |
| transactionId | string | 是 | 事务ID |
| messageClass | number | 是 | 消息类 |
| messageSize | number | 是 | 消息大小 |
| expiry | number | 是 | 到期 |
| contentLocation | string | 是 | 内容位置 |
| version |
[
MmsVersionType
](
#mmsversiontype8
)
| 是 | 版本 |
| from |
[
MmsAddress
](
#mmsaddress8
)
| 否 | 来源 |
| subject | string | 否 | 主题 |
| deliveryReport | number | 否 | 状态报告 |
| contentClass | number | 否 | 内容类 |
## MmsAcknowledgeInd<sup>8+</sup>
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------------------------| ---- | ---------------|
| callback | AsyncCallback
\<
[
X509CertRawData
](
#x509certrawdata9
)
\>
| 是 | 回调函数,返回服务端的证书。失败返回错误码,错误信息。 |
彩信确认索引。
**错误码:**
**系统接口:**
此接口为系统接口。
| 错误码ID | 错误信息 |
| ------- | ------------------------------ |
| 2303501 | SSL is null. |
| 2300002 | System internal error. |
**
系统能力**
:SystemCapability.Telephony.SmsMms
**
示例:**
| 名称 | 类型 | 必填 | 说明 |
```
js
| ------------- | ---------------------------------- | ---- | -------- |
tls
.
getRemoteCertificate
((
err
,
data
)
=>
{
| transactionId | string | 是 | 事务ID |
if
(
err
)
{
| version |
[
MmsVersionType
](
#mmsversiontype8
)
| 是 | 版本 |
console
.
log
(
"
getRemoteCertificate callback error =
"
+
err
);
| reportAllowed |
[
ReportType
](
#reporttype8
)
| 否 | 允许报告 |
}
else
{
console
.
log
(
"
getRemoteCertificate callback =
"
+
data
);
}
});
```
##
MmsRetrieveConf<sup>8
+</sup>
##
# getRemoteCertificate<sup>9
+</sup>
彩信检索配置。
getRemoteCertificate():Promise
\<
[
X509CertRawData
](
#x509certrawdata9
)
\>
**系统接口:**
此接口为系统接口
。
在TLSSocket通信连接成功之后,获取服务端的数字证书,使用Promise方式作为异步方法
。
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
| 名称 | 类型 | 必填 | 说明 |
**返回值:**
| -------------- | ------------------------------------ | ---- | -------- |
| transactionId | string | 是 | 事务ID |
| messageId | string | 是 | 消息ID |
| date | number | 是 | 日期 |
| contentType | string | 是 | 内容类型 |
| to | Array<
[
MmsAddress
](
#mmsaddress8
)
\>
| 是 | 发送至 |
| version |
[
MmsVersionType
](
#mmsversiontype8
)
| 是 | 版本 |
| from |
[
MmsAddress
](
#mmsaddress8
)
| 否 | 来源 |
| cc | Array<
[
MmsAddress
](
#mmsaddress8
)
\>
| 否 | 抄送 |
| subject | string | 否 | 主题 |
| priority |
[
MmsPriorityType
](
#mmsprioritytype8
)
| 否 | 优先级 |
| deliveryReport | number | 否 | 状态报告 |
| readReport | number | 否 | 阅读报告 |
| retrieveStatus | number | 否 | 检索状态 |
| retrieveText | string | 否 | 检索文本 |
## MmsReadOrigInd<sup>8+</sup>
彩信读取原始索引。
**系统接口:**
此接口为系统接口。
**系统能力**
:SystemCapability.Telephony.SmsMms
| 名称 | 类型 | 必填 | 说明 |
| 类型 | 说明 |
| ---------- | ---------------------------------- | ---- | -------- |
| -------------- | -------------------- |
| version |
[
MmsVersionType
](
#mmsversiontype8
)
| 是 | 版本 |
| Promise
\<
[
X509CertRawData
](
#x509certrawdata9
)
\>
| 以Promise形式返回服务端的数字证书的结果。失败返回错误码,错误信息。 |
| messageId | string | 是 | 消息ID |
| to | Array<
[
MmsAddress
](
#mmsaddress8
)
\>
| 是 | 发送至 |
| from |
[
MmsAddress
](
#mmsaddress8
)
| 是 | 来源 |
| date | number | 是 | 日期 |
| readStatus | number | 是 | 阅读状态 |
## MmsReadRecInd<sup>8+</sup>
**错误码:**
彩信读取记录索引。
| 错误码ID | 错误信息 |
| ------- | ------------------------------ |
| 2303501 | SSL is null. |
| 2300002 | System internal error. |
**
系统接口:**
此接口为系统接口。
**
示例:**
**系统能力**
:SystemCapability.Telephony.SmsMms
```
js
tls
.
getRemoteCertificate
().
then
(
data
=>
{
console
.
log
(
data
);
}).
catch
(
err
=>
{
console
.
error
(
err
);
});
```
| 名称 | 类型 | 必填 | 说明 |
### getProtocol<sup>9+</sup>
| ---------- | ---------------------------------- | ---- | -------- |
| version |
[
MmsVersionType
](
#mmsversiontype8
)
| 是 | 版本 |
| messageId | string | 是 | 消息ID |
| to | Array<
[
MmsAddress
](
#mmsaddress8
)
\>
| 是 | 发送至 |
| from |
[
MmsAddress
](
#mmsaddress8
)
| 是 | 来源 |
| readStatus | number | 是 | 阅读状态 |
| date | number | 否 | 日期 |
## MmsAttachment<sup>8+</sup>
getProtocol(callback: AsyncCallback
\<
string
\>
): void
彩信附件
。
在TLSSocket通信连接成功之后,获取通信的协议版本,使用callback方式作为异步方法
。
**系统
接口:**
此接口为系统接口。
**系统
能力**
:SystemCapability.Communication.NetStack
**
系统能力**
:SystemCapability.Telephony.SmsMms
**
参数:**
| 名称 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| ----------------------- | ------------------------------------ | ---- | ------------------ |
| -------- | ----------------------------------------| ---- | ---------------|
| contentId | string | 是 | 内容ID |
| callback | AsyncCallback
\<
string
\>
| 是 | 回调函数,返回通信的协议。失败返回错误码,错误信息。|
| contentLocation | string | 是 | 内容位置 |
| contentDisposition |
[
DispositionType
](
#dispositiontype8
)
| 是 | 内容处理 |
**错误码:**
| contentTransferEncoding | string | 是 | 内容传输编码 |
| contentType | string | 是 | 内容类型 |
| isSmil | boolean | 是 | 同步多媒体集成语言 |
| path | string | 否 | 路径 |
| inBuff | Array<number
\>
| 否 | 缓冲区中 |
| fileName | string | 否 | 文件名 |
| charset |
[
MmsCharSets
](
#mmscharsets8
)
| 否 | 字符集 |
## MmsAddress<sup>8+</sup>
| 错误码ID | 错误信息 |
| ------- | ----------------------------- |
| 2303501 | SSL is null. |
| 2303505 | Error occurred in the tls system call. |
| 2300002 | System internal error. |
彩信地址。
**示例:**
**系统接口:**
此接口为系统接口。
```
js
tls
.
getProtocol
((
err
,
data
)
=>
{
if
(
err
)
{
console
.
log
(
"
getProtocol callback error =
"
+
err
);
}
else
{
console
.
log
(
"
getProtocol callback =
"
+
data
);
}
});
```
**系统能力**
:SystemCapability.Telephony.SmsMms
### getProtocol<sup>9+</sup>
| 名称 | 类型 | 必填 | 说明 |
getProtocol():Promise
\<
string
\>
| ------- | ---------------------------- | ---- | ------ |
| address | string | 是 | 地址 |
| charset |
[
MmsCharSets
](
#mmscharsets8
)
| 是 | 字符集 |
## MessageType<sup>8+</sup>
在TLSSocket通信连接成功之后,获取通信的协议版本,使用Promise方式作为异步方法。
消息类型。
**系统能力**
:SystemCapability.Communication.NetStack
**
系统接口:**
此接口为系统接口。
**
返回值:**
**系统能力**
:SystemCapability.Telephony.SmsMms
| 类型 | 说明 |
| -------------- | -------------------- |
| Promise
\<
string
\>
| 以Promise形式返回通信的协议。失败返回错误码,错误信息。 |
| 名称 | 值 | 说明 |
**错误码:**
| ------------------------- | ---- | -------------------- |
| TYPE_MMS_SEND_REQ | 128 | 彩信发送请求类型 |
| 错误码ID | 错误信息 |
| TYPE_MMS_SEND_CONF | 129 | 彩信发送配置类型 |
| ------- | ------------------------------ |
| TYPE_MMS_NOTIFICATION_IND | 130 | 彩信通知索引类型 |
| 2303501 | SSL is null. |
| TYPE_MMS_RESP_IND | 131 | 彩信回复索引类型 |
| 2303505 | Error occurred in the tls system call. |
| TYPE_MMS_RETRIEVE_CONF | 132 | 彩信检索配置类型 |
| 2300002 | System internal error. |
| TYPE_MMS_ACKNOWLEDGE_IND | 133 | 彩信确认索引类型 |
| TYPE_MMS_DELIVERY_IND | 134 | 彩信传送索引类型 |
**示例:**
| TYPE_MMS_READ_REC_IND | 135 | 彩信读取接收索引类型 |
| TYPE_MMS_READ_ORIG_IND | 136 | 彩信读取原始索引类型 |
## MmsPriorityType<sup>8+</sup>
```
js
tls
.
getProtocol
().
then
(
data
=>
{
console
.
log
(
data
);
}).
catch
(
err
=>
{
console
.
error
(
err
);
});
```
彩信优先级类型。
### getCipherSuite<sup>9+</sup>
**系统接口:**
此接口为系统接口。
getCipherSuite(callback: AsyncCallback
\<
Array
\<
string
\>\>
): void
**系统能力**
:SystemCapability.Telephony.SmsMms
在TLSSocket通信连接成功之后,获取通信双方协商后的加密套件,使用callback方式作为异步方法。
| 名称 | 值 | 说明 |
**系统能力**
:SystemCapability.Communication.NetStack
| ---------- | ---- | -------------- |
| MMS_LOW | 128 | 彩信优先级低 |
| MMS_NORMAL | 129 | 彩信优先级正常 |
| MMS_HIGH | 130 | 彩信优先级高 |
## MmsVersionType<sup>8+</sup>
**参数:**
彩信版本类型。
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------------------------| ---- | ---------------|
| callback | AsyncCallback
\<
Array
\<
string
\>\>
| 是 | 回调函数,返回通信双方支持的加密套件。 失败返回错误码,错误信息。 |
**
系统接口:**
此接口为系统接口。
**
错误码:**
**系统能力**
:SystemCapability.Telephony.SmsMms
| 错误码ID | 错误信息 |
| ------- | ------------------------------ |
| 2303501 | SSL is null. |
| 2303502 | Error in tls reading. |
| 2303505 | Error occurred in the tls system call. |
| 2300002 | System internal error. |
| 名称 | 值 | 说明 |
**示例:**
| --------------- | ---- | ----------- |
| MMS_VERSION_1_0 | 0x10 | 彩信版本1_0 |
| MMS_VERSION_1_1 | 0x11 | 彩信版本1_1 |
| MMS_VERSION_1_2 | 0x12 | 彩信版本1_2 |
| MMS_VERSION_1_3 | 0x13 | 彩信版本1_3 |
## MmsCharSets<sup>8+</sup>
```
js
tls
.
getCipherSuite
((
err
,
data
)
=>
{
if
(
err
)
{
console
.
log
(
"
getCipherSuite callback error =
"
+
err
);
}
else
{
console
.
log
(
"
getCipherSuite callback =
"
+
data
);
}
});
```
彩信字符集。
### getCipherSuite<sup>9+</sup>
**系统接口:**
此接口为系统接口。
getCipherSuite(): Promise
\<
Array
\<
string
\>\>
**系统能力**
:SystemCapability.Telephony.SmsMms
在TLSSocket通信连接成功之后,获取通信双方协商后的加密套件,使用Promise方式作为异步方法。
| 名称 | 值 | 说明 |
**系统能力**
:SystemCapability.Communication.NetStack
| --------------- | ------ | ------------------- |
| BIG5 | 0X07EA | BIG5格式 |
| ISO_10646_UCS_2 | 0X03E8 | ISO_10646_UCS_2格式 |
| ISO_8859_1 | 0X04 | ISO_8859_1格式 |
| ISO_8859_2 | 0X05 | ISO_8859_2格式 |
| ISO_8859_3 | 0X06 | ISO_8859_3格式 |
| ISO_8859_4 | 0X07 | ISO_8859_4格式 |
| ISO_8859_5 | 0X08 | ISO_8859_5格式 |
| ISO_8859_6 | 0X09 | ISO_8859_6格式 |
| ISO_8859_7 | 0X0A | ISO_8859_7格式 |
| ISO_8859_8 | 0X0B | ISO_8859_8格式 |
| ISO_8859_9 | 0X0C | ISO_8859_9格式 |
| SHIFT_JIS | 0X11 | SHIFT_JIS格式 |
| US_ASCII | 0X03 | US_ASCII格式 |
| UTF_8 | 0X6A | UTF_8格式 |
## DispositionType<sup>8+</sup>
处理类型。
**系统接口:**
此接口为系统接口。
**系统能力**
:SystemCapability.Telephony.SmsMms
| 名称 | 值 | 说明 |
**返回值:**
| ---------- | ---- | -------- |
| FROM_DATA | 0 | 数据来源 |
| ATTACHMENT | 1 | 附件 |
| INLINE | 2 | 内联 |
## ReportType<sup>8+</sup>
| 类型 | 说明 |
| ---------------------- | --------------------- |
| Promise
\<
Array
\<
string
\>\>
| 以Promise形式返回通信双方支持的加密套件。失败返回错误码,错误信息。 |
报告类型。
**错误码:**
**系统接口:**
此接口为系统接口。
| 错误码ID | 错误信息 |
| ------- | ------------------------------ |
| 2303501 | SSL is null. |
| 2303502 | Error in tls reading. |
| 2303505 | Error occurred in the tls system call. |
| 2300002 | System internal error. |
**
系统能力**
:SystemCapability.Telephony.SmsMms
**
示例:**
| 名称 | 值 | 说明 |
```
js
| ------- | ---- | ---- |
tls
.
getCipherSuite
().
then
(
data
=>
{
| MMS_YES | 128 | YES |
console
.
log
(
'
getCipherSuite success:
'
+
JSON
.
stringify
(
data
));
| MMS_NO | 129 | NO |
}).
catch
(
err
=>
{
console
.
error
(
err
);
});
```
##
CBConfigOptions<sup>7
+</sup>
##
# getSignatureAlgorithms<sup>9
+</sup>
小区广播配置选项。
getSignatureAlgorithms(callback: AsyncCallback
\<
Array
\<
string
\>\>
): void
**系统接口:**
此接口为系统接口
。
在TLSSocket通信连接成功之后,获取通信双方协商后签名算法,该接口只适配双向认证模式下,使用callback方式作为异步方法
。
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
| 名称 | 类型 | 必填 | 说明 |
**参数:**
| -------------- | -------------------- | ---- | ------------ |
| slotId | number | 是 | 卡槽ID |
| enable | boolean | 是 | 可行 |
| startMessageId | number | 是 | 消息起始ID |
| endMessageId | number | 是 | 消息结束ID |
| ranType |
[
RanType
](
#rantype7
)
| 是 | 设备网络制式 |
## SimMessageStatus<sup>7+</sup>
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------------------------| ---- | ---------------|
| callback | AsyncCallback
\<
Array
\<
string
\>\>
| 是 | 回调函数,返回双方支持的签名算法。 |
SIM卡消息状态。
**错误码:**
**系统接口:**
此接口为系统接口。
| 错误码ID | 错误信息 |
| ------- | ------------------------------ |
| 2303501 | SSL is null. |
| 2300002 | System internal error. |
**
系统能力**
:SystemCapability.Telephony.SmsMms
**
示例:**
| 名称 | 值 | 说明 |
```
js
| ------------------------- | ---- | --------------------------- |
tls
.
getSignatureAlgorithms
((
err
,
data
)
=>
{
| SIM_MESSAGE_STATUS_FREE | 0 | SIM卡上的状态可用空间 |
if
(
err
)
{
| SIM_MESSAGE_STATUS_READ | 1 | 消息已读状态 |
console
.
log
(
"
getSignatureAlgorithms callback error =
"
+
err
);
| SIM_MESSAGE_STATUS_UNREAD | 3 | 消息未读状态 |
}
else
{
| SIM_MESSAGE_STATUS_SENT | 5 | 存储发送消息(仅适用于SMS) |
console
.
log
(
"
getSignatureAlgorithms callback =
"
+
data
);
| SIM_MESSAGE_STATUS_UNSENT | 7 | 储未发送消息(仅适用于SMS) |
}
});
```
##
RanType<sup>7
+</sup>
##
# getSignatureAlgorithms<sup>9
+</sup>
设备网络制式。
getSignatureAlgorithms(): Promise
\<
Array
\<
string
\>\>
**系统接口:**
此接口为系统接口
。
在TLSSocket通信连接成功之后,获取通信双方协商后的签名算法,该接口只适配双向认证模式下,使用Promise方式作为异步方法
。
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
| 名称 | 值 | 说明 |
**返回值:**
| --------- | ---- | ---- |
| TYPE_GSM | 1 | GSM |
| TYPE_CDMA | 2 | CMDA |
## SmsEncodingScheme<sup>8+</sup>
| 类型 | 说明 |
| ---------------------- | -------------------- |
| Promise
\<
Array
\<
string
\>\>
| 以Promise形式返回获取到的双方支持的签名算法。 |
短信编码方案。
**错误码:**
**系统接口:**
此接口为系统接口。
| 错误码ID | 错误信息 |
| ------- | ------------------------------ |
| 2303501 | SSL is null. |
| 2300002 | System internal error. |
**
系统能力**
:SystemCapability.Telephony.SmsMms
**
示例:**
| 名称 | 值 | 说明 |
```
js
| -------------------- | ---- | ------------ |
tls
.
getSignatureAlgorithms
().
then
(
data
=>
{
| SMS_ENCODING_UNKNOWN | 0 | 未知短信编码 |
console
.
log
(
"
getSignatureAlgorithms success
"
+
data
);
| SMS_ENCODING_7BIT | 1 | 7位短信编码 |
}).
catch
(
err
=>
{
| SMS_ENCODING_8BIT | 2 | 8位短信编码 |
console
.
error
(
err
);
| SMS_ENCODING_16BIT | 3 | 16位短信编码 |
});
```
##
SimMessageOptions<sup>7
+</sup>
##
# send<sup>9
+</sup>
SIM卡消息选项。
send(data: string, callback: AsyncCallback
\<
void
\>
): void
**系统接口:**
此接口为系统接口
。
在TLSSocket通信连接成功之后,向服务端发送消息,使用callback方式作为异步方法
。
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
| 名称 | 类型 | 必填 | 说明 |
**参数:**
| ------ | -------------------------------------- | ---- | -------------- |
| slotId | number | 是 | 卡槽ID |
| smsc | string | 是 | 短消息业务中心 |
| pdu | string | 是 | 协议数据单元 |
| status |
[
SimMessageStatus
](
#simmessagestatus7
)
| 是 | 状态 |
## UpdateSimMessageOptions<sup>7+</sup>
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -----------------------------| ---- | ---------------|
| data | string | 是 | 发送的数据内容。 |
| callback | AsyncCallback
\<
void
\>
| 是 | 回调函数,返回TLSSocket发送数据的结果。失败返回错误码,错误信息。 |
更新SIM卡消息选项。
**错误码:**
**系统接口:**
此接口为系统接口。
| 错误码ID | 错误信息 |
| ------- | -------------------------------------------- |
| 401 | Parameter error. |
| 2303501 | SSL is null. |
| 2303503 | Error in tls writing |
| 2303505 | Error occurred in the tls system call. |
| 2303506 | Error clearing tls connection. |
| 2300002 | System internal error. |
**
系统能力**
:SystemCapability.Telephony.SmsMms
**
示例:**
| 名称 | 类型 | 必填 | 说明 |
```
js
| --------- | -------------------------------------- | ---- | -------------- |
tls
.
send
(
"
xxxx
"
,
(
err
)
=>
{
| slotId | number | 是 | 卡槽ID |
if
(
err
)
{
| msgIndex | number | 是 | 消息索引 |
console
.
log
(
"
send callback error =
"
+
err
);
| newStatus |
[
SimMessageStatus
](
#simmessagestatus7
)
| 是 | 新状态 |
}
else
{
| pdu | string | 是 | 协议数据单元 |
console
.
log
(
"
send success
"
);
| smsc | string | 是 | 短消息业务中心 |
}
});
```
##
SimShortMessage<sup>7
+</sup>
##
# send<sup>9
+</sup>
SIM卡短消息。
send(data: string): Promise
\<
void
\>
**系统接口:**
此接口为系统接口
。
在TLSSocket通信连接成功之后,向服务端发送消息,使用Promise方式作为异步方法
。
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
| 名称 | 类型 | 必填 | 说明 |
**参数:**
| ---------------- | -------------------------------------- | ---- | ------------- |
| shortMessage |
[
ShortMessage
](
#shortmessage
)
| 是 | 短消息 |
| simMessageStatus |
[
SimMessageStatus
](
#simmessagestatus7
)
| 是 | SIM卡消息状态 |
| indexOnSim | number | 是 | SIM卡索引 |
## MmsDeliveryInd<sup>8+</sup>
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -----------------------------| ---- | ---------------|
| data | string | 是 | 发送的数据内容。 |
彩信发送标识。
**错误码:**
**系统接口:**
此接口为系统接口。
| 错误码ID | 错误信息 |
| ------- | -------------------------------------------- |
| 401 | Parameter error. |
| 2303501 | SSL is null. |
| 2303503 | Error in tls writing |
| 2303505 | Error occurred in the tls system call. |
| 2303506 | Error clearing tls connection. |
| 2300002 | System internal error. |
**
系统能力**
:SystemCapability.Telephony.SmsMms
**
返回值:**
| 名称 | 类型 | 必填 | 说明 |
| 类型 | 说明 |
| --------- | ---------------------------------- | ---- | ------ |
| -------------- | -------------------- |
| messageId | string | 是 | 消息ID |
| Promise
\<
void
\>
| 以Promise形式返回,返回TLSSocket发送数据的结果。失败返回错误码,错误信息。 |
| date | number | 是 | 日期 |
| to | Array<
[
MmsAddress
](
#mmsaddress8
)
\>
| 是 | 发送至 |
| status | number | 是 | 状态 |
| version |
[
MmsVersionType
](
#mmsversiontype8
)
| 是 | 版本 |
## MmsRespInd<sup>8+</sup>
**示例:**
彩信回复标志。
```
js
tls
.
send
(
"
xxxx
"
).
then
(()
=>
{
console
.
log
(
"
send success
"
);
}).
catch
(
err
=>
{
console
.
error
(
err
);
});
```
**系统接口:**
此接口为系统接口。
### close<sup>9+</sup>
**系统能力**
:SystemCapability.Telephony.SmsMms
close(callback: AsyncCallback
\<
void
\>
): void
| 名称 | 类型 | 必填 | 说明 |
在TLSSocket通信连接成功之后,断开连接,使用callback方式作为异步方法。
| ------------- | ---------------------------------- | ---- | -------- |
| transactionId | string | 是 | 事件ID |
**系统能力**
:SystemCapability.Communication.NetStack
| status | number | 是 | 状态 |
| version |
[
MmsVersionType
](
#mmsversiontype8
)
| 是 | 版本 |
**参数:**
| reportAllowed |
[
ReportType
](
#reporttype8
)
| 否 | 允许报告 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -----------------------------| ---- | ---------------|
| callback | AsyncCallback
\<
void
\>
| 是 | 回调函数,成功返回TLSSocket关闭连接的结果。 失败返回错误码,错误信息。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------------------- |
| 2303501 | SSL is null. |
| 2303505 | Error occurred in the tls system call. |
| 2303506 | Error clearing tls connection. |
| 2300002 | System internal error. |
**示例:**
```
js
tls
.
close
((
err
)
=>
{
if
(
err
)
{
console
.
log
(
"
close callback error =
"
+
err
);
}
else
{
console
.
log
(
"
close success
"
);
}
});
```
### close<sup>9+</sup>
close(): Promise
\<
void
\>
在TLSSocket通信连接成功之后,断开连接,使用Promise方式作为异步方法。
## SmsSegmentsInfo<sup>8+</sup>
**系统能力**
:SystemCapability.Communication.NetStack
短信段信息。
**返回值:**
| 类型 | 说明 |
| -------------- | -------------------- |
| Promise
\<
void
\>
| 以Promise形式返回,返回TLSSocket关闭连接的结果。失败返回错误码,错误信息。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------------------- |
| 2303501 | SSL is null. |
| 2303505 | Error occurred in the tls system call. |
| 2303506 | Error clearing tls connection. |
| 2300002 | System internal error. |
**示例:**
```
js
tls
.
close
().
then
(()
=>
{
console
.
log
(
"
close success
"
);
}).
catch
(
err
=>
{
console
.
error
(
err
);
});
```
## TLSConnectOptions<sup>9+</sup>
**系统接口:**
此接口为系统接口
。
TLS连接的操作
。
**系统能力**
:SystemCapability.
Telephony.SmsMms
**系统能力**
:SystemCapability.
Communication.NetStack
| 名称 | 类型 | 必填 | 说明 |
| 名称 | 类型 | 必填 | 说明 |
| -------------------- | ---------------------------------------- | ---- | ------------ |
| -------------- | ------------------------------------- | --- |-------------- |
| splitCount | number | 是 | 拆分计数 |
| address |
[
NetAddress
](
#netaddress
)
| 是 | 网关地址。 |
| encodeCount | number | 是 | 编码计数 |
| secureOptions |
[
TLSSecureOptions
](
#tlssecureoptions9
)
| 是 | TLS安全相关操作。|
| encodeCountRemaining | number | 是 | 剩余编码计数 |
| ALPNProtocols | Array
\<
string
\>
| 否 | ALPN协议。 |
| scheme |
[
SmsEncodingScheme
](
#smsencodingscheme8
)
| 是 | 短信编码方案 |
## TLSSecureOptions<sup>9+</sup>
TLS安全相关操作,其中ca证书为必选参数,其他参数为可选参数。当本地证书cert和私钥key不为空时,开启双向验证模式。cert和key其中一项为空时,开启单向验证模式。
**系统能力**
:SystemCapability.Communication.NetStack
| 名称 | 类型 | 必填 | 说明 |
| --------------------- | ------------------------------------------------------ | --- |----------------------------------- |
| ca | string
\|
Array
\<
string
\>
| 是 | 服务端的ca证书,用于认证校验服务端的数字证书。|
| cert | string | 否 | 本地客户端的数字证书。 |
| key | string | 否 | 本地数字证书的私钥。 |
| password | string | 否 | 读取私钥的密码。 |
| protocols |
[
Protocol
](
#protocol9
)
\|
Array
\<
[
Protocol
](
#protocol9
)
\>
| 否 | TLS的协议版本。 |
| useRemoteCipherPrefer | boolean | 否 | 优先使用对等方的密码套件。 |
| signatureAlgorithms | string | 否 | 通信过程中的签名算法。 |
| cipherSuite | string | 否 | 通信过程中的加密套件。 |
## Protocol<sup>9+</sup>
TLS通信的协议版本。
**系统能力**
:SystemCapability.Communication.NetStack
| 名称 | 值 | 说明 |
| --------- | --------- |------------------ |
| TLSv12 | "TLSv1.2" | 使用TLSv1.2协议通信。 |
| TLSv13 | "TLSv1.3" | 使用TLSv1.3协议通信。 |
## X509CertRawData<sup>9+</sup>
存储证书的数据。
**系统能力**
:SystemCapability.Communication.NetStack
| 类型 | 说明 |
| --------------------------------------------------------------------- | --------------------- |
|
[
cryptoFramework.EncodingBlob
](
js-apis-cryptoFramework.md#datablob
)
| 存储证书的数据和编码格式 |
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录