0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙開發(fā)電話服務(wù):ohos.telephony.sms之短信服務(wù)

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-17 15:57 ? 次閱讀

短信服務(wù)

說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

本模塊首批接口從API version 6開始支持。后續(xù)版本的新增接口,采用上角標單獨標記接口的起始版本。

導(dǎo)入模塊

import sms from '@ohos.telephony.sms';

sms.createMessage

createMessage(pdu: Array, specification: string, callback: AsyncCallback): void

根據(jù)協(xié)議數(shù)據(jù)單元(PDU)和指定的短信協(xié)議創(chuàng)建短信實例,使用callback方式作為異步方法。

系統(tǒng)能力 :SystemCapability.Telephony.SmsMms

參數(shù)

參數(shù)名類型必填說明
pduArray協(xié)議數(shù)據(jù)單元,從收到的信息中獲取。
specificationstring短信協(xié)議類型。 - 3gpp表示GSM/UMTS/LTE SMS - 3gpp2表示CDMA SMS
callbackAsyncCallback<[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)}`);
});

sms.createMessage

createMessage(pdu: Array, specification: string): Promise

根據(jù)協(xié)議數(shù)據(jù)單元(PDU)和指定的短信協(xié)議創(chuàng)建短信實例,使用Promise方式作為異步方法。

系統(tǒng)能力 :SystemCapability.Telephony.SmsMms

參數(shù):

參數(shù)名類型必填說明
pduArray協(xié)議數(shù)據(jù)單元,從收到的信息中獲取。
specificationstring短信協(xié)議類型。 - 3gpp表示GSM/UMTS/LTE SMS - 3gpp2表示CDMA SMS

返回值:

類型說明
Promise<[ShortMessage]>以Promise形式返回創(chuàng)建的短信實例。

示例:

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 fail, promise: err- >${JSON.stringify(err)}`);
});

sms.sendMessage

sendMessage(options: SendMessageOptions): void

發(fā)送短信。

需要權(quán)限 :ohos.permission.SEND_MESSAGES

系統(tǒng)能力 :SystemCapability.Telephony.SmsMms

參數(shù):

參數(shù)名類型必填說明
options[SendMessageOptions]發(fā)送短信的參數(shù)和回調(diào),參考[SendMessageOptions]。

示例:

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);

sms.getDefaultSmsSlotId7+

getDefaultSmsSlotId(callback: AsyncCallback): void

獲取發(fā)送短信的默認SIM卡槽ID,使用callback方式作為異步方法。

系統(tǒng)能力 :SystemCapability.Telephony.SmsMms

參數(shù):

參數(shù)名類型必填說明
callbackAsyncCallback回調(diào)函數(shù)。 - 0:卡槽1 - 1:卡槽2

示例:

sms.getDefaultSmsSlotId((err, data) = > {
    console.log(`callback: err- >${JSON.stringify(err)}, data- >${JSON.stringify(data)}`);
});

sms.getDefaultSmsSlotId7+

getDefaultSmsSlotId(): Promise

獲取發(fā)送短信的默認SIM卡槽ID,使用Promise方式作為異步方法。

系統(tǒng)能力 :SystemCapability.Telephony.SmsMms

返回值:

類型說明
Promise以Promise形式返回發(fā)送短信的默認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 fail, promise: err- >${JSON.stringify(err)}`);
});

sms.setSmscAddr7+

setSmscAddr(slotId: number, smscAddr: string, callback: AsyncCallback): void

設(shè)置短信服務(wù)中心(SMSC)地址,使用callback方式作為異步方法。

需要權(quán)限 :ohos.permission.SET_TELEPHONY_STATE,該權(quán)限為系統(tǒng)權(quán)限

系統(tǒng)能力 :SystemCapability.Telephony.SmsMms

系統(tǒng)API :該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。

參數(shù):

參數(shù)名類型必填說明
slotIdnumberSIM卡槽ID: - 0:卡槽1 - 1:卡槽2
smscAddrstring短信服務(wù)中心地址。
callbackAsyncCallback回調(diào)函數(shù)。

示例:

let slotId = 0;
let smscAddr = '+861xxxxxxxxxx';
sms.setSmscAddr(slotId, smscAddr, (err,data) = > {
      console.log(`callback: err- >${JSON.stringify(err)}, data- >${JSON.stringify(data)}`);
});

sms.setSmscAddr7+

setSmscAddr(slotId: number, smscAddr: string): Promise

設(shè)置短信服務(wù)中心(SMSC)地址,使用Promise方式作為異步方法。

需要權(quán)限 :ohos.permission.SET_TELEPHONY_STATE,該權(quán)限為系統(tǒng)權(quán)限

系統(tǒng)能力 :SystemCapability.Telephony.SmsMms

系統(tǒng)API :該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。

參數(shù):

參數(shù)名類型必填說明
slotIdnumberSIM卡槽ID: - 0:卡槽1 - 1:卡槽2
smscAddrstring短信服務(wù)中心地址。

返回值:

類型說明
Promise以Promise形式異步返回設(shè)置結(jié)果。

示例:

let slotId = 0;
let smscAddr = '+861xxxxxxxxxx';
let promise = sms.setSmscAddr(slotId, smscAddr);
promise.then(data = > {
    console.log(`setSmscAddr success, promise: data- >${JSON.stringify(data)}`);
}).catch(err = > {
    console.error(`setSmscAddr fail, promise: err- >${JSON.stringify(err)}`);
});

sms.getSmscAddr7+

getSmscAddr(slotId: number, callback: AsyncCallback): void

獲取短信服務(wù)中心(SMSC)地址,使用callback方式作為異步方法。

需要權(quán)限 :ohos.permission.GET_TELEPHONY_STATE,該權(quán)限為系統(tǒng)權(quán)限

系統(tǒng)能力 :SystemCapability.Telephony.SmsMms

系統(tǒng)API :該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。

參數(shù):

參數(shù)名類型必填說明
slotIdnumberSIM卡槽ID: - 0:卡槽1 - 1:卡槽2
callbackAsyncCallback回調(diào)函數(shù)。

示例:

let slotId = 0;
sms.getSmscAddr(slotId, (err, data) = > {
      console.log(`callback: err- >${JSON.stringify(err)}, data- >${JSON.stringify(data)}`);
});

sms.getSmscAddr7+

getSmscAddr(slotId: number): Promise

獲取短信服務(wù)中心(SMSC)地址,使用Promise方式作為異步方法。

需要權(quán)限 :ohos.permission.GET_TELEPHONY_STATE,該權(quán)限為系統(tǒng)權(quán)限

系統(tǒng)能力 :SystemCapability.Telephony.SmsMms

系統(tǒng)API :該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。

參數(shù):

參數(shù)名類型必填說明
slotIdnumberSIM卡槽ID: - 0:卡槽1 - 1:卡槽2

返回值:

類型說明
Promise以Promise形式返回獲取短信服務(wù)中心地址的結(jié)果。

示例:

let slotId = 0;
let promise = sms.getSmscAddr(slotId);
promise.then(data = > {
    console.log(`getSmscAddr success, promise: data- >${JSON.stringify(data)}`);
}).catch(err = > {
    console.error(`getSmscAddr fail, promise: err- >${JSON.stringify(err)}`);
});

sms.hasSmsCapability7+

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)}`);

ShortMessage

短信實例。

系統(tǒng)能力 :以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.SmsMms。

參數(shù)名類型說明
hasReplyPathboolean收到的短信是否包含“TP-Reply-Path”,默認為false。 “TP-Reply-Path”:設(shè)備根據(jù)發(fā)送SMS消息的短消息中心進行回復(fù)。
isReplaceMessageboolean收到的短信是否為“替換短信”,默認為false。 “替換短信”有關(guān)詳細信息,參見 “3GPP TS 23.040 9.2.3.9”。
isSmsStatusReportMessageboolean當(dāng)前消息是否為“短信狀態(tài)報告”,默認為false。 “短信狀態(tài)報告”是一種特定格式的短信,被用來從Service Center到Mobile Station傳送狀態(tài)報告。
messageClass[ShortMessageClass]短信類型。
pduArraySMS消息中的協(xié)議數(shù)據(jù)單元 (PDU)。
protocolIdnumber發(fā)送短信時使用的協(xié)議標識。
scAddressstring短消息服務(wù)中心(SMSC)地址。
scTimestampnumberSMSC時間戳。
statusnumberSMS-STATUS-REPORT消息中的短信狀態(tài)指示短信服務(wù)中心(SMSC)發(fā)送的短信狀態(tài)。
visibleMessageBodystring短信正文。
visibleRawAddressstring發(fā)送者地址。

ShortMessageClass

短信類型。

系統(tǒng)能力 :以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.SmsMms。

名稱說明
UNKNOWN0未知類型。
INSTANT_MESSAGE1即時消息,收到后立即顯示。
OPTIONAL_MESSAGE2存儲在設(shè)備或SIM卡上的短信。
SIM_MESSAGE3包含SIM卡信息的短信,需要存儲在SIM卡中。
FORWARD_MESSAGE4要轉(zhuǎn)發(fā)到另一臺設(shè)備的短信。

SendMessageOptions

發(fā)送短信的參數(shù)和回調(diào)。根據(jù)SendMessageOptions中的可選參數(shù)content的值判斷短信類型。

系統(tǒng)能力 :以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.SmsMms。

參數(shù)名類型必填說明
slotIdnumber用于發(fā)送短信的SIM卡槽ID: - 0:卡槽1 - 1:卡槽2
destinationHoststring短信的發(fā)送地址。
contentstringArray
serviceCenterstring短信中心地址。默認使用SIM卡中的短信中心地址。
destinationPortnumber如果發(fā)送數(shù)據(jù)消息,destinationPort 是必需的。否則是可選的。
sendCallbackAsyncCallback<[ISendShortMessageCallback]>短信發(fā)送結(jié)果回調(diào),返回短信發(fā)送的結(jié)果,參考[ISendShortMessageCallback]。
deliveryCallbackAsyncCallback<[IDeliveryShortMessageCallback]>短信送達結(jié)果回調(diào),返回短信遞送報告,參考[IDeliveryShortMessageCallback]。

ISendShortMessageCallback

回調(diào)實例。返回短信發(fā)送結(jié)果、存儲已發(fā)送短信的URI和是否為長短信的最后一部分。

系統(tǒng)能力 :以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.SmsMms。

參數(shù)名類型必填說明
isLastPartboolean指定這是否是長短信的最后一部分。true表示這是長短信的最后一部分,false表示不是。默認為false。
result[SendSmsResult]短信發(fā)送結(jié)果。
urlstring存儲發(fā)送短信的URI。

IDeliveryShortMessageCallback

回調(diào)實例。返回短信送達報告。

系統(tǒng)能力 :以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.SmsMms。

參數(shù)名類型必填說明
pduArray短信送達報告。HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

搜狗高速瀏覽器截圖20240326151344.png

SendSmsResult

短信發(fā)送結(jié)果。

系統(tǒng)能力 :以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.SmsMms。

名稱說明
SEND_SMS_SUCCESS0發(fā)送短信成功。
SEND_SMS_FAILURE_UNKNOWN1發(fā)送短信失敗,原因未知。
SEND_SMS_FAILURE_RADIO_OFF2發(fā)送短信失敗,原因為調(diào)制解調(diào)器關(guān)機。
SEND_SMS_FAILURE_SERVICE_UNAVAILABLE3發(fā)送短信失敗,原因為網(wǎng)絡(luò)不可用、不支持發(fā)送或接收短信。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 鴻蒙
    +關(guān)注

    關(guān)注

    56

    文章

    2271

    瀏覽量

    42508
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙實戰(zhàn)項目開發(fā):【短信服務(wù)

    概述 本示例展示了電話服務(wù)中發(fā)送短信的功能。 樣例展示 涉及OpenHarmony技術(shù)特性 網(wǎng)絡(luò)通信 難度級別 中級 基礎(chǔ)信息 使用@ohos.telephony.sms接口展示了
    發(fā)表于 03-03 21:29

    [分享]短消息服務(wù)SMS)編程流程

    短消息服務(wù)SMS)編程流程短消息服務(wù)是在移動通訊全球系統(tǒng)(Global System for Mobile Communications networks ,GSM)中的移動電話間發(fā)
    發(fā)表于 05-31 09:34

    SMS 短信發(fā)送開發(fā)指南

    SMS 短信發(fā)送開發(fā)指南,有用就下載吧
    發(fā)表于 04-15 02:53

    HarmonyOS API Version 7版本特性說明

    ,歸屬PLMN,SPN,類型,電話號碼,ICCID,語音信箱等等),默認語音/數(shù)據(jù)/短信SIM卡獲取與設(shè)置。@ohos.telephony.sms新增發(fā)送短信相關(guān)接口。支持
    發(fā)表于 11-30 15:19

    HarmonyOS API Version 7版本特性說明

    ,歸屬PLMN,SPN,類型,電話號碼,ICCID,語音信箱等等),默認語音/數(shù)據(jù)/短信SIM卡獲取與設(shè)置。@ohos.telephony.sms新增發(fā)送短信相關(guān)接口。支持
    發(fā)表于 12-01 10:35

    基于Web的GSM短信服務(wù)系統(tǒng)的開發(fā)

    文章介紹了一個基于WEB的GSM短信服務(wù)系統(tǒng)的設(shè)計;闡述了系統(tǒng)應(yīng)用的關(guān)鍵技術(shù);討論了系統(tǒng)實現(xiàn)的幾種方式,通過對比這幾種方式的優(yōu)劣,提出一種適合中小型應(yīng)用的系統(tǒng)實現(xiàn)方
    發(fā)表于 09-01 11:37 ?36次下載

    手機短信(SMS)工作原理

      在本文中,我們將會分析短信的工作原理,探究它的使用并了解有的時候短信需要很長一段時間才能到達接收者的原因。   SMS表示短信服務(wù)。簡單來講,它是在手機
    發(fā)表于 10-30 16:21 ?101次下載

    基于80C31的短信息終端電話開發(fā)

      現(xiàn)在,短信服務(wù)日益普及。各個電話機廠家競相設(shè)計和開發(fā)短信息終端電話。為配合我所開發(fā)
    發(fā)表于 11-08 10:33 ?1584次閱讀
    基于80C31的<b class='flag-5'>短信</b>息終端<b class='flag-5'>電話</b><b class='flag-5'>開發(fā)</b>

    EIC-NS20短信服務(wù)器用戶指南

      EIC-NS20智能短信服務(wù)器是一個通過以太網(wǎng)收發(fā)短消息的服務(wù)器。EIC-NS20智能短信服務(wù)器依賴GSM網(wǎng)絡(luò)來收發(fā)短信息,可用于短信
    發(fā)表于 09-22 12:41 ?2次下載
    EIC-NS20<b class='flag-5'>短信服務(wù)</b>器用戶指南

    三大運營商計劃推出的升級版短信服務(wù)5G消息有哪些特點

    4月11日消息,據(jù)媒體報道,三大運營商計劃在年內(nèi)推出升級版短信服務(wù)5G消息。
    的頭像 發(fā)表于 04-12 09:23 ?3052次閱讀

    微軟Office Outlook Lite服務(wù)升級,支持短信功能

    據(jù)報道,微軟于今日宣布更新 Outlook Lite 服務(wù),使其支持 SMS 短信功能。微軟稱,通過此項升級,用戶現(xiàn)可整合管理電子郵件及 SMS
    的頭像 發(fā)表于 05-28 11:41 ?423次閱讀

    鴻蒙開發(fā)電話服務(wù):【@ohos.telephony.call (撥打電話)】

    call模塊提供呼叫管理功能,包括撥打電話、跳轉(zhuǎn)到撥號界面、獲取通話狀態(tài)、格式化電話號碼等。
    的頭像 發(fā)表于 06-15 09:13 ?532次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)電話</b><b class='flag-5'>服務(wù)</b>:【@<b class='flag-5'>ohos.telephony</b>.call (撥打<b class='flag-5'>電話</b>)】

    鴻蒙開發(fā)電話服務(wù):【@ohos.telephony.observer (observer)】

    訂閱網(wǎng)絡(luò)狀態(tài)變化事件,使用callback方式作為異步方法。
    的頭像 發(fā)表于 06-15 09:18 ?438次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)電話</b><b class='flag-5'>服務(wù)</b>:【@<b class='flag-5'>ohos.telephony</b>.observer (observer)】

    鴻蒙開發(fā)電話服務(wù)ohos.telephony.simSIM卡管理

    獲取指定卡槽SIM卡是否激活,使用callback方式作為異步方法。
    的頭像 發(fā)表于 06-16 22:28 ?193次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)電話</b><b class='flag-5'>服務(wù)</b>:<b class='flag-5'>ohos.telephony</b>.sim<b class='flag-5'>之</b>SIM卡管理

    鴻蒙開發(fā)電話服務(wù)ohos.telephony.data蜂窩數(shù)據(jù)

    獲取默認移動數(shù)據(jù)的SIM卡,使用callback方式作為異步方法。
    的頭像 發(fā)表于 06-18 09:31 ?215次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)電話</b><b class='flag-5'>服務(wù)</b>:<b class='flag-5'>ohos.telephony</b>.data<b class='flag-5'>之</b>蜂窩數(shù)據(jù)