短信服務
說明:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
導入模塊
import sms from '@ohos.telephony.sms';
sms.createMessage
createMessage(pdu: Array, specification: string, callback: AsyncCallback): void
根據協議數據單元(PDU)和指定的短信協議創建短信實例,使用callback方式作為異步方法。
系統能力 :SystemCapability.Telephony.SmsMms
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
pdu | Array | 是 | 協議數據單元,從收到的信息中獲取。 |
specification | string | 是 | 短信協議類型。 - 3gpp表示GSM/UMTS/LTE SMS - 3gpp2表示CDMA SMS |
callback | AsyncCallback<[ShortMessage]> | 是 | 回調函數。 |
示例:
const specification = '3gpp';
// 以數組的形式顯示協議數據單元(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
根據協議數據單元(PDU)和指定的短信協議創建短信實例,使用Promise方式作為異步方法。
系統能力 :SystemCapability.Telephony.SmsMms
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
pdu | Array | 是 | 協議數據單元,從收到的信息中獲取。 |
specification | string | 是 | 短信協議類型。 - 3gpp表示GSM/UMTS/LTE SMS - 3gpp2表示CDMA SMS |
返回值:
類型 | 說明 |
---|---|
Promise<[ShortMessage]> | 以Promise形式返回創建的短信實例。 |
示例:
const specification = '3gpp';
// 以數組的形式顯示協議數據單元(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
發送短信。
需要權限 :ohos.permission.SEND_MESSAGES
系統能力 :SystemCapability.Telephony.SmsMms
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
options | [SendMessageOptions] | 是 | 發送短信的參數和回調,參考[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 = '短信內容';
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
獲取發送短信的默認SIM卡槽ID,使用callback方式作為異步方法。
系統能力 :SystemCapability.Telephony.SmsMms
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback | 是 | 回調函數。 - 0:卡槽1 - 1:卡槽2 |
示例:
sms.getDefaultSmsSlotId((err, data) = > {
console.log(`callback: err- >${JSON.stringify(err)}, data- >${JSON.stringify(data)}`);
});
sms.getDefaultSmsSlotId7+
getDefaultSmsSlotId(): Promise
獲取發送短信的默認SIM卡槽ID,使用Promise方式作為異步方法。
系統能力 :SystemCapability.Telephony.SmsMms
返回值:
類型 | 說明 |
---|---|
Promise | 以Promise形式返回發送短信的默認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
設置短信服務中心(SMSC)地址,使用callback方式作為異步方法。
需要權限 :ohos.permission.SET_TELEPHONY_STATE,該權限為系統權限
系統能力 :SystemCapability.Telephony.SmsMms
系統API :該接口為系統接口,三方應用不支持調用。
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
slotId | number | 是 | SIM卡槽ID: - 0:卡槽1 - 1:卡槽2 |
smscAddr | string | 是 | 短信服務中心地址。 |
callback | AsyncCallback | 是 | 回調函數。 |
示例:
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
設置短信服務中心(SMSC)地址,使用Promise方式作為異步方法。
需要權限 :ohos.permission.SET_TELEPHONY_STATE,該權限為系統權限
系統能力 :SystemCapability.Telephony.SmsMms
系統API :該接口為系統接口,三方應用不支持調用。
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
slotId | number | 是 | SIM卡槽ID: - 0:卡槽1 - 1:卡槽2 |
smscAddr | string | 是 | 短信服務中心地址。 |
返回值:
類型 | 說明 |
---|---|
Promise | 以Promise形式異步返回設置結果。 |
示例:
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
獲取短信服務中心(SMSC)地址,使用callback方式作為異步方法。
需要權限 :ohos.permission.GET_TELEPHONY_STATE,該權限為系統權限
系統能力 :SystemCapability.Telephony.SmsMms
系統API :該接口為系統接口,三方應用不支持調用。
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
slotId | number | 是 | SIM卡槽ID: - 0:卡槽1 - 1:卡槽2 |
callback | AsyncCallback | 是 | 回調函數。 |
示例:
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
獲取短信服務中心(SMSC)地址,使用Promise方式作為異步方法。
需要權限 :ohos.permission.GET_TELEPHONY_STATE,該權限為系統權限
系統能力 :SystemCapability.Telephony.SmsMms
系統API :該接口為系統接口,三方應用不支持調用。
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
slotId | number | 是 | SIM卡槽ID: - 0:卡槽1 - 1:卡槽2 |
返回值:
類型 | 說明 |
---|---|
Promise | 以Promise形式返回獲取短信服務中心地址的結果。 |
示例:
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
檢查當前設備是否具備短信發送和接收能力,該方法是同步方法。
系統能力 :SystemCapability.Telephony.SmsMms
返回值:
類型 | 說明 |
---|---|
boolean | - true:設備具備短信發送和接收能力 - false:設備不具備短信發送和接收能力 |
let result = sms.hasSmsCapability();
console.log(`hasSmsCapability: ${JSON.stringify(result)}`);
ShortMessage
短信實例。
系統能力 :以下各項對應的系統能力均為SystemCapability.Telephony.SmsMms。
參數名 | 類型 | 說明 |
---|---|---|
hasReplyPath | boolean | 收到的短信是否包含“TP-Reply-Path”,默認為false。 “TP-Reply-Path”:設備根據發送SMS消息的短消息中心進行回復。 |
isReplaceMessage | boolean | 收到的短信是否為“替換短信”,默認為false。 “替換短信”有關詳細信息,參見 “3GPP TS 23.040 9.2.3.9”。 |
isSmsStatusReportMessage | boolean | 當前消息是否為“短信狀態報告”,默認為false。 “短信狀態報告”是一種特定格式的短信,被用來從Service Center到Mobile Station傳送狀態報告。 |
messageClass | [ShortMessageClass] | 短信類型。 |
pdu | Array | SMS消息中的協議數據單元 (PDU)。 |
protocolId | number | 發送短信時使用的協議標識。 |
scAddress | string | 短消息服務中心(SMSC)地址。 |
scTimestamp | number | SMSC時間戳。 |
status | number | SMS-STATUS-REPORT消息中的短信狀態指示短信服務中心(SMSC)發送的短信狀態。 |
visibleMessageBody | string | 短信正文。 |
visibleRawAddress | string | 發送者地址。 |
ShortMessageClass
短信類型。
系統能力 :以下各項對應的系統能力均為SystemCapability.Telephony.SmsMms。
名稱 | 值 | 說明 |
---|---|---|
UNKNOWN | 0 | 未知類型。 |
INSTANT_MESSAGE | 1 | 即時消息,收到后立即顯示。 |
OPTIONAL_MESSAGE | 2 | 存儲在設備或SIM卡上的短信。 |
SIM_MESSAGE | 3 | 包含SIM卡信息的短信,需要存儲在SIM卡中。 |
FORWARD_MESSAGE | 4 | 要轉發到另一臺設備的短信。 |
SendMessageOptions
發送短信的參數和回調。根據SendMessageOptions中的可選參數content的值判斷短信類型。
系統能力 :以下各項對應的系統能力均為SystemCapability.Telephony.SmsMms。
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
slotId | number | 是 | 用于發送短信的SIM卡槽ID: - 0:卡槽1 - 1:卡槽2 |
destinationHost | string | 是 | 短信的發送地址。 |
content | string | Array | 是 |
serviceCenter | string | 否 | 短信中心地址。默認使用SIM卡中的短信中心地址。 |
destinationPort | number | 否 | 如果發送數據消息,destinationPort 是必需的。否則是可選的。 |
sendCallback | AsyncCallback<[ISendShortMessageCallback]> | 否 | 短信發送結果回調,返回短信發送的結果,參考[ISendShortMessageCallback]。 |
deliveryCallback | AsyncCallback<[IDeliveryShortMessageCallback]> | 否 | 短信送達結果回調,返回短信遞送報告,參考[IDeliveryShortMessageCallback]。 |
ISendShortMessageCallback
回調實例。返回短信發送結果、存儲已發送短信的URI和是否為長短信的最后一部分。
系統能力 :以下各項對應的系統能力均為SystemCapability.Telephony.SmsMms。
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
isLastPart | boolean | 否 | 指定這是否是長短信的最后一部分。true表示這是長短信的最后一部分,false表示不是。默認為false。 |
result | [SendSmsResult] | 是 | 短信發送結果。 |
url | string | 是 | 存儲發送短信的URI。 |
IDeliveryShortMessageCallback
回調實例。返回短信送達報告。
系統能力 :以下各項對應的系統能力均為SystemCapability.Telephony.SmsMms。
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
pdu | Array | 是 | 短信送達報告。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
SendSmsResult
短信發送結果。
系統能力 :以下各項對應的系統能力均為SystemCapability.Telephony.SmsMms。
名稱 | 值 | 說明 |
---|---|---|
SEND_SMS_SUCCESS | 0 | 發送短信成功。 |
SEND_SMS_FAILURE_UNKNOWN | 1 | 發送短信失敗,原因未知。 |
SEND_SMS_FAILURE_RADIO_OFF | 2 | 發送短信失敗,原因為調制解調器關機。 |
SEND_SMS_FAILURE_SERVICE_UNAVAILABLE | 3 | 發送短信失敗,原因為網絡不可用、不支持發送或接收短信。 |
審核編輯 黃宇
-
鴻蒙
+關注
關注
57文章
2392瀏覽量
43055
發布評論請先 登錄
相關推薦
評論