文档管理中心
您当前浏览的HarmonyOS 5.0.1(API 13)文档归档不再维护,推荐您使用最新版本。详细请参考文档维护策略变更
指南系统网络Telephony Kit(蜂窝通信服务)短信服务

短信服务

场景介绍

短信服务模块提供了管理短信的一些基础能力,包括创建、发送短信,获取、设置发送短信的默认SIM卡槽ID,获取、设置短信服务中心地址,以及检查当前设备是否具备短信发送和接收能力等。

基本概念

  • 短信服务

    即SMS(Short Messaging Service),是一种存储和转发服务。用户的移动电话可以通过它进行相互收发短信,内容以文本、数字或二进制非文本数据为主。发送方的信息通过短信服务中心进行储存并转发给接收方。

  • 短信服务中心

    即SMSC(Short Message Service Center),负责在基站和移动设备间中继、储存或转发短消息。移动设备到短信服务中心的协议能传输来自移动设备或朝向移动设备的短消息,协议内容遵从GSM 03.40协议。

  • 协议数据单元

    即PDU(Protocol Data Unit),PDU模式收发短信可以使用3种编码:7-bit、8-bit和UCS-2编码。7-bit编码用于发送普通的ASCII字符,8-bit编码通常用于发送数据短信,UCS-2编码用于发送Unicode字符。

约束与限制

  1. 仅支持在标准系统上运行。
  2. 需授予发送短信权限且插入SIM卡才可成功发送短信。

接口说明

说明

为了保证应用的运行效率,大部分API调用都是异步的,对于异步调用的API均提供了callback和Promise两种方式,以下示例均采用callback函数,更多方式可以查阅API参考

展开
接口名 描述
sendShortMessage(options: SendMessageOptions, callback: AsyncCallback<void>): void 发送文本或数据SMS消息。需要配置ohos.permission.SEND_MESSAGES权限,该权限仅系统应用可申请。
createMessage(pdu: Array<number>, specification: string, callback: AsyncCallback<ShortMessage>): void 基于协议数据单元(PDU)和指定的SMS协议创建SMS消息实例。
getDefaultSmsSlotId(callback: AsyncCallback<number>): void 获取用于发送短信的默认SIM卡。

开发步骤

发送短信的接口需要系统权限才可调用,三方应用如果有发送短信需求,需要在应用内实现跳转到短信编辑的功能,并且需要携带编辑内容和收件人号码,可以通过调用元能力startAbility接口指定号码并跳转到发送短信页面的方式实现。

收起
自动换行
深色代码主题
复制
  1. // 示例代码
  2. import { common, Want } from '@kit.AbilityKit';
  3. const MMS_BUNDLE_NAME = "com.ohos.mms";
  4. const MMS_ABILITY_NAME = "com.ohos.mms.MainAbility";
  5. const MMS_ENTITIES = "entity.system.home";
  6. export class Contact {
  7. contactsName: string;
  8. telephone: number;
  9. constructor(contactsName: string, telephone: number) {
  10. this.contactsName = contactsName;
  11. this.telephone = telephone;
  12. }
  13. }
  14. @Entry
  15. @Component
  16. struct JumpMessage {
  17. private context = getContext(this) as common.UIAbilityContext;
  18. startMMSAbilityExplicit() {
  19. // 这里完善联系人和号码;姓名主要是通过手机号来查询实际联系人名称,因此这种方式还是以手机号码为主。
  20. let params: Array<Object> = [new Contact("张三", 13344556677)];
  21. let want: Want = {
  22. bundleName: "com.ohos.mms",
  23. abilityName: "com.ohos.mms.MainAbility",
  24. parameters: {
  25. contactObjects: JSON.stringify(params),
  26. pageFlag: "conversation",
  27. // 这里填写短信内容。
  28. content: "我是短信具体内容"
  29. }
  30. };
  31. this.context.startAbilityForResult(want).then((data) => {
  32. console.log("Success" + JSON.stringify(data));
  33. }).catch(() => {
  34. console.log("error");
  35. });
  36. }
  37. build() {
  38. Row() {
  39. Column() {
  40. Button('发送短信')
  41. .onClick(() => {
  42. this.startMMSAbilityExplicit();
  43. })
  44. }
  45. .width('100%')
  46. }
  47. .height('100%')
  48. }
  49. }
在 指南 中进行搜索
请输入您想要搜索的关键词