鴻蒙OS 發(fā)送一條文本信息

2020-09-18 15:45 更新

場景介紹

應(yīng)用需要發(fā)送一條短信給一個指定的號碼時,使用本業(yè)務(wù)。發(fā)送信息需要經(jīng)過短信中心,短信中心號碼可以是運(yùn)營商默認(rèn)的,也可以由應(yīng)用自己指定。

如果設(shè)備支持同時插入 2 張 SIM 卡,且 2 張 SIM 卡均在位時,短信會從默認(rèn) SIM 卡發(fā)出。應(yīng)用可通過調(diào)用 getDefaultSmsSlotId 來獲取當(dāng)前發(fā)短信的默認(rèn) SIM 卡位置。目前 API 暫不支持短信發(fā)送結(jié)果通知和送達(dá)報告。

接口說明

ShortMessageManager 為開發(fā)者提供短信管理功能,具體功能分類如下表。

功能分類 接口名 描述 所需權(quán)限
能力獲取 hasSmsCapability() 檢查當(dāng)前設(shè)備是否支持短信收發(fā)。
獲取管理對象 getInstance(Context context) 獲取短信管理對象。
獲取默認(rèn)短信卡 getDefaultSmsSlotId() 獲取默認(rèn)短信卡對應(yīng)卡槽ID。
長短信轉(zhuǎn)化 splitMessage(String content) 將超過140個字節(jié)的長短信(如中文70個字符,英文160個字符)拆分成多條短信。 ohos.permission.SEND_MESSAGES
發(fā)送短信 sendMessage(String destinationHost, String serviceCenter, String content) 發(fā)送單條短信。 ohos.permission.SEND_MESSAGES
sendMultipartMessage(String destinationHost, String serviceCenter, ArrayList<String> parts) 發(fā)送拆分后的多條短信。 ohos.permission.SEND_MESSAGES

開發(fā)步驟

  1. 調(diào)用 ShortMessageManager 的 getInstance 接口,創(chuàng)建/獲取短信收發(fā)管理對象。

  1. 調(diào)用 hasSmsCapability() 接口獲取當(dāng)前設(shè)備短信收發(fā)能力,如果支持繼續(xù)下一步;如果不支持則無法收發(fā)短信。

  1. 發(fā)送短信。

   // 創(chuàng)建短信收發(fā)管理對象
   ShortMessageManager smManager = ShortMessageManager.getInstance(context);

    
   // 檢查短信能力
   if (!smManager.hasSmsCapability()) {
       return;
   }

    
   // 如果設(shè)備支持收發(fā)短信,則繼續(xù)發(fā)送短信
   // 發(fā)送短信前可先調(diào)用splitMessage()接口判斷拆分后的短信條數(shù),然后決定調(diào)用長短信或普通短信發(fā)送接口
   ArrayList<String> msgs = smManager.splitMessage(messageContent);
   if (msgs.size() > 1) { // 長短信拆分發(fā)送
       smManager.sendMultipartMessage(destinationNumber, serviceCenter, msgs);
   } else { // 一般文本短信發(fā)送
       smManager.sendMessage(destinationNumber, serviceCenter, messageContent);
   }
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號