创新互联鸿蒙OS教程:鸿蒙OS发送一条文本信息

场景介绍

应用需要发送一条短信给一个指定的号码时,使用本业务。发送信息需要经过短信中心,短信中心号码可以是运营商默认的,也可以由应用自己指定。

如果设备支持同时插入 2 张 SIM 卡,且 2 张 SIM 卡均在位时,短信会从默认 SIM 卡发出。应用可通过调用 getDefaultSmsSlotId 来获取当前发短信的默认 SIM 卡位置。目前 API 暂不支持短信发送结果通知和送达报告。

接口说明

ShortMessageManager 为开发者提供短信管理功能,具体功能分类如下表。

功能分类 接口名 描述 所需权限
能力获取hasSmsCapability()检查当前设备是否支持短信收发。
获取管理对象getInstance(Context context)获取短信管理对象。
获取默认短信卡getDefaultSmsSlotId()获取默认短信卡对应卡槽ID。
长短信转化splitMessage(String content)将超过140个字节的长短信(如中文70个字符,英文160个字符)拆分成多条短信。ohos.permission.SEND_MESSAGES
发送短信sendMessage(String destinationHost, String serviceCenter, String content)发送单条短信。ohos.permission.SEND_MESSAGES
sendMultipartMessage(String destinationHost, String serviceCenter, ArrayList parts)发送拆分后的多条短信。ohos.permission.SEND_MESSAGES

开发步骤

  1. 调用 ShortMessageManager 的 getInstance 接口,创建/获取短信收发管理对象。
  1. 调用 hasSmsCapability() 接口获取当前设备短信收发能力,如果支持继续下一步;如果不支持则无法收发短信。
  1. 发送短信。
   // 创建短信收发管理对象
   ShortMessageManager smManager = ShortMessageManager.getInstance(context);

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

    
   // 如果设备支持收发短信,则继续发送短信
   // 发送短信前可先调用splitMessage()接口判断拆分后的短信条数,然后决定调用长短信或普通短信发送接口
   ArrayList msgs = smManager.splitMessage(messageContent);
   if (msgs.size() > 1) { // 长短信拆分发送
       smManager.sendMultipartMessage(destinationNumber, serviceCenter, msgs);
   } else { // 一般文本短信发送
       smManager.sendMessage(destinationNumber, serviceCenter, messageContent);
   }

分享名称:创新互联鸿蒙OS教程:鸿蒙OS发送一条文本信息
浏览路径:http://www.shufengxianlan.com/qtweb/news48/386048.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联