W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
短信服務(wù)提供了管理短信的一些基礎(chǔ)能力,包括創(chuàng)建、發(fā)送短信,獲取、設(shè)置發(fā)送短信的默認(rèn)SIM卡槽ID,獲取、設(shè)置短信服務(wù)中心(SMSC)地址,以及檢查當(dāng)前設(shè)備是否具備短信發(fā)送和接收能力等。
本模塊首批接口從API version 6開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。
createMessage(pdu: Array<number>, specification: string, callback: AsyncCallback<ShortMessage>): void
根據(jù)協(xié)議數(shù)據(jù)單元(PDU)和指定的短信協(xié)議創(chuàng)建短信實(shí)例。使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.Telephony.SmsMms
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
pdu | Array<number> | 是 | 協(xié)議數(shù)據(jù)單元,從收到的信息中獲取。 |
specification | string | 是 | 短信協(xié)議類型。 - 3gpp:表示GSM/UMTS/LTE SMS - 3gpp2:表示CDMA SMS |
callback | AsyncCallback<ShortMessage> | 是 | 回調(diào)函數(shù)。 |
示例:
- const specification = '3gpp';
- // 以數(shù)組的形式顯示協(xié)議數(shù)據(jù)單元(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)}`);
- });
createMessage(pdu: Array<number>, specification: string): Promise<ShortMessage>
根據(jù)協(xié)議數(shù)據(jù)單元(PDU)和指定的短信協(xié)議創(chuàng)建短信實(shí)例。使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.Telephony.SmsMms
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
pdu | Array<number> | 是 | 協(xié)議數(shù)據(jù)單元,從收到的信息中獲取。 |
specification | string | 是 | 短信協(xié)議類型。 - 3gpp:表示GSM/UMTS/LTE SMS - 3gpp2:表示CDMA SMS |
返回值:
類型 | 說明 |
---|---|
Promise<ShortMessage> | 以Promise形式返回創(chuàng)建的短信實(shí)例。 |
示例:
- const specification = '3gpp';
- // 以數(shù)組的形式顯示協(xié)議數(shù)據(jù)單元(PDU),類型為number,例如[0x08, 0x91, ...]
- const pdu = [0x08, 0x91];
- let promise = sms.createMessage(pdu, specification);
- promise.then(data => {
- console.log(`createMessage success, promise: data->${JSON.stringify(data)}`);
- }).catch(err => {
- console.error(`createMessage failed, promise: err->${JSON.stringify(err)}`);
- });
sendMessage(options: SendMessageOptions): void
發(fā)送短信。
需要權(quán)限:ohos.permission.SEND_MESSAGES
系統(tǒng)能力:SystemCapability.Telephony.SmsMms
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
options | 是 | 發(fā)送短信的參數(shù)和回調(diào),參考SendMessageOptions。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見ohos.telephony(電話子系統(tǒng))錯(cuò)誤碼錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
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. |
示例:
- let sendCallback = function (err, data) {
- console.log(`sendCallback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
- }
- let deliveryCallback = function (err, data) {
- console.log(`deliveryCallback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
- }
- let slotId = 0;
- let content = '短信內(nèi)容';
- let destinationHost = '+861xxxxxxxxxx';
- let serviceCenter = '+861xxxxxxxxxx';
- let destinationPort = 1000;
- let options = {slotId, content, destinationHost, serviceCenter, destinationPort, sendCallback, deliveryCallback};
- sms.sendMessage(options);
getDefaultSmsSlotId(callback: AsyncCallback<number>): void
獲取發(fā)送短信的默認(rèn)SIM卡槽ID。使用callback異步回調(diào)。
系統(tǒng)能力:SystemCapability.Telephony.SmsMms
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<number> | 是 | 回調(diào)函數(shù)。 - 0:卡槽1 - 1:卡槽2 |
示例:
- sms.getDefaultSmsSlotId((err, data) => {
- console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
- });
getDefaultSmsSlotId(): Promise<number>
獲取發(fā)送短信的默認(rèn)SIM卡槽ID。使用Promise異步回調(diào)。
系統(tǒng)能力:SystemCapability.Telephony.SmsMms
返回值:
類型 | 說明 |
---|---|
Promise<number> | 以Promise形式返回發(fā)送短信的默認(rèn)SIM卡: - 0:卡槽1 - 1:卡槽2 |
示例:
- let promise = sms.getDefaultSmsSlotId();
- promise.then(data => {
- console.log(`getDefaultSmsSlotId success, promise: data->${JSON.stringify(data)}`);
- }).catch(err => {
- console.error(`getDefaultSmsSlotId failed, promise: err->${JSON.stringify(err)}`);
- });
hasSmsCapability(): boolean
檢查當(dāng)前設(shè)備是否具備短信發(fā)送和接收能力,該方法是同步方法。
系統(tǒng)能力:SystemCapability.Telephony.SmsMms
返回值:
類型 | 說明 |
---|---|
boolean | - true:設(shè)備具備短信發(fā)送和接收能力。 - false:設(shè)備不具備短信發(fā)送和接收能力。 |
- let result = sms.hasSmsCapability();
- console.log(`hasSmsCapability: ${JSON.stringify(result)}`);
短信實(shí)例。
系統(tǒng)能力:以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.SmsMms。
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
hasReplyPath | boolean | 是 | 收到的短信是否包含“TP-Reply-Path”,默認(rèn)為false。 “TP-Reply-Path”:設(shè)備根據(jù)發(fā)送SMS消息的短消息中心進(jìn)行回復(fù)。 |
isReplaceMessage | boolean | 是 | 收到的短信是否為“替換短信”,默認(rèn)為false。 “替換短信”有關(guān)詳細(xì)信息,參見 “3GPP TS 23.040 9.2.3.9”。 |
isSmsStatusReportMessage | boolean | 是 | 當(dāng)前消息是否為“短信狀態(tài)報(bào)告”,默認(rèn)為false。 “短信狀態(tài)報(bào)告”是一種特定格式的短信,被用來從Service Center到Mobile Station傳送狀態(tài)報(bào)告。 |
messageClass | 是 | 短信類型。 | |
pdu | Array<number> | 是 | SMS消息中的協(xié)議數(shù)據(jù)單元 (PDU)。 |
protocolId | number | 是 | 發(fā)送短信時(shí)使用的協(xié)議標(biāo)識(shí)。 |
scAddress | string | 是 | 短消息服務(wù)中心(SMSC)地址。 |
scTimestamp | number | 是 | SMSC時(shí)間戳。 |
status | number | 是 | SMS-STATUS-REPORT消息中的短信狀態(tài)指示短信服務(wù)中心(SMSC)發(fā)送的短信狀態(tài)。 |
visibleMessageBody | string | 是 | 短信正文。 |
visibleRawAddress | string | 是 | 發(fā)送者地址。 |
短信類型。
系統(tǒng)能力:以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.SmsMms。
名稱 | 值 | 說明 |
---|---|---|
UNKNOWN | 0 | 未知類型。 |
INSTANT_MESSAGE | 1 | 即時(shí)消息,收到后立即顯示。 |
OPTIONAL_MESSAGE | 2 | 存儲(chǔ)在設(shè)備或SIM卡上的短信。 |
SIM_MESSAGE | 3 | 包含SIM卡信息的短信,需要存儲(chǔ)在SIM卡中。 |
FORWARD_MESSAGE | 4 | 要轉(zhuǎn)發(fā)到另一臺(tái)設(shè)備的短信。 |
發(fā)送短信的參數(shù)和回調(diào)。根據(jù)SendMessageOptions中的可選參數(shù)content的值判斷短信類型。
系統(tǒng)能力:以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.SmsMms。
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
slotId | number | 是 | 用于發(fā)送短信的SIM卡槽ID: - 0:卡槽1 - 1:卡槽2 |
destinationHost | string | 是 | 短信的發(fā)送地址。 |
content | string | Array<number> | 是 | 如果內(nèi)容是字符串,則這是一條文本短信。如果內(nèi)容是字節(jié)數(shù)組,則這是一條數(shù)據(jù)短信。 |
serviceCenter | string | 否 | 短信中心地址。默認(rèn)使用SIM卡中的短信中心地址。 |
destinationPort | number | 否 | 如果發(fā)送數(shù)據(jù)消息,destinationPort 是必需的。否則是可選的。 |
sendCallback | AsyncCallback<ISendShortMessageCallback> | 否 | 短信發(fā)送結(jié)果回調(diào),返回短信發(fā)送的結(jié)果,參考ISendShortMessageCallback。 |
deliveryCallback | AsyncCallback<IDeliveryShortMessageCallback> | 否 | 短信送達(dá)結(jié)果回調(diào),返回短信遞送報(bào)告,參考IDeliveryShortMessageCallback。 |
回調(diào)實(shí)例。返回短信發(fā)送結(jié)果、存儲(chǔ)已發(fā)送短信的URI和是否為長短信的最后一部分。
系統(tǒng)能力:以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.SmsMms。
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
isLastPart | boolean | 否 | 指定這是否是長短信的最后一部分。true表示這是長短信的最后一部分,false表示不是。默認(rèn)為false。 |
result | 是 | 短信發(fā)送結(jié)果。 | |
url | string | 是 | 存儲(chǔ)發(fā)送短信的URI。 |
回調(diào)實(shí)例,返回短信送達(dá)報(bào)告。
系統(tǒng)能力:以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.SmsMms。
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
pdu | Array<number> | 是 | 短信送達(dá)報(bào)告。 |
短信發(fā)送結(jié)果。
系統(tǒng)能力:以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.SmsMms。
名稱 | 值 | 說明 |
---|---|---|
SEND_SMS_SUCCESS | 0 | 發(fā)送短信成功。 |
SEND_SMS_FAILURE_UNKNOWN | 1 | 發(fā)送短信失敗,原因未知。 |
SEND_SMS_FAILURE_RADIO_OFF | 2 | 發(fā)送短信失敗,原因?yàn)檎{(diào)制解調(diào)器關(guān)機(jī)。 |
SEND_SMS_FAILURE_SERVICE_UNAVAILABLE | 3 | 發(fā)送短信失敗,原因?yàn)榫W(wǎng)絡(luò)不可用、不支持發(fā)送或接收短信。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: