智能客服
你问我答,随时在线为你解决问题

























短信服务模块提供了管理短信的一些基础能力,包括创建、发送短信,获取、设置发送短信的默认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字符。
为了保证应用的运行效率,大部分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接口指定号码并跳转到发送短信页面的方式实现。
- // 示例代码
- import { common, Want } from '@kit.AbilityKit';
-
- const MMS_BUNDLE_NAME = "com.ohos.mms";
- const MMS_ABILITY_NAME = "com.ohos.mms.MainAbility";
- const MMS_ENTITIES = "entity.system.home";
-
- export class Contact {
- contactsName: string;
- telephone: number;
-
- constructor(contactsName: string, telephone: number) {
- this.contactsName = contactsName;
- this.telephone = telephone;
- }
- }
-
- @Entry
- @Component
- struct JumpMessage {
- private context = getContext(this) as common.UIAbilityContext;
-
- startMMSAbilityExplicit() {
- // 这里完善联系人和号码;姓名主要是通过手机号来查询实际联系人名称,因此这种方式还是以手机号码为主。
- let params: Array<Object> = [new Contact("张三", 13344556677)];
-
- let want: Want = {
- bundleName: "com.ohos.mms",
- abilityName: "com.ohos.mms.MainAbility",
- parameters: {
- contactObjects: JSON.stringify(params),
- pageFlag: "conversation",
- // 这里填写短信内容。
- content: "我是短信具体内容"
- }
- };
-
- this.context.startAbilityForResult(want).then((data) => {
- console.log("Success" + JSON.stringify(data));
- }).catch(() => {
- console.log("error");
- });
- }
-
- build() {
- Row() {
- Column() {
- Button('发送短信')
- .onClick(() => {
- this.startMMSAbilityExplicit();
- })
- }
- .width('100%')
- }
- .height('100%')
- }
- }
智能客服
你问我答,随时在线为你解决问题
合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
解决方案
精准高效的一站式服务支持,助力开发者商业成功