0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发电话服务:ohos.telephony.sms之短信服务

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-06-17 15:57 次阅读

短信服务

说明:
开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import sms from '@ohos.telephony.sms';

sms.createMessage

createMessage(pdu: Array, specification: string, callback: AsyncCallback): void

根据协议数据单元(PDU)和指定的短信协议创建短信实例,使用callback方式作为异步方法。

系统能力 :SystemCapability.Telephony.SmsMms

参数

参数名类型必填说明
pduArray协议数据单元,从收到的信息中获取。
specificationstring短信协议类型。 - 3gpp表示GSM/UMTS/LTE SMS - 3gpp2表示CDMA SMS
callbackAsyncCallback<[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

参数:

参数名类型必填说明
pduArray协议数据单元,从收到的信息中获取。
specificationstring短信协议类型。 - 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

参数:

参数名类型必填说明
callbackAsyncCallback回调函数。 - 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 :该接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
slotIdnumberSIM卡槽ID: - 0:卡槽1 - 1:卡槽2
smscAddrstring短信服务中心地址。
callbackAsyncCallback回调函数。

示例:

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 :该接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
slotIdnumberSIM卡槽ID: - 0:卡槽1 - 1:卡槽2
smscAddrstring短信服务中心地址。

返回值:

类型说明
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 :该接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
slotIdnumberSIM卡槽ID: - 0:卡槽1 - 1:卡槽2
callbackAsyncCallback回调函数。

示例:

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 :该接口为系统接口,三方应用不支持调用。

参数:

参数名类型必填说明
slotIdnumberSIM卡槽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。

参数名类型说明
hasReplyPathboolean收到的短信是否包含“TP-Reply-Path”,默认为false。 “TP-Reply-Path”:设备根据发送SMS消息的短消息中心进行回复。
isReplaceMessageboolean收到的短信是否为“替换短信”,默认为false。 “替换短信”有关详细信息,参见 “3GPP TS 23.040 9.2.3.9”。
isSmsStatusReportMessageboolean当前消息是否为“短信状态报告”,默认为false。 “短信状态报告”是一种特定格式的短信,被用来从Service Center到Mobile Station传送状态报告。
messageClass[ShortMessageClass]短信类型。
pduArraySMS消息中的协议数据单元 (PDU)。
protocolIdnumber发送短信时使用的协议标识。
scAddressstring短消息服务中心(SMSC)地址。
scTimestampnumberSMSC时间戳。
statusnumberSMS-STATUS-REPORT消息中的短信状态指示短信服务中心(SMSC)发送的短信状态。
visibleMessageBodystring短信正文。
visibleRawAddressstring发送者地址。

ShortMessageClass

短信类型。

系统能力 :以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。

名称说明
UNKNOWN0未知类型。
INSTANT_MESSAGE1即时消息,收到后立即显示。
OPTIONAL_MESSAGE2存储在设备或SIM卡上的短信。
SIM_MESSAGE3包含SIM卡信息的短信,需要存储在SIM卡中。
FORWARD_MESSAGE4要转发到另一台设备的短信。

SendMessageOptions

发送短信的参数和回调。根据SendMessageOptions中的可选参数content的值判断短信类型。

系统能力 :以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。

参数名类型必填说明
slotIdnumber用于发送短信的SIM卡槽ID: - 0:卡槽1 - 1:卡槽2
destinationHoststring短信的发送地址。
contentstringArray
serviceCenterstring短信中心地址。默认使用SIM卡中的短信中心地址。
destinationPortnumber如果发送数据消息,destinationPort 是必需的。否则是可选的。
sendCallbackAsyncCallback<[ISendShortMessageCallback]>短信发送结果回调,返回短信发送的结果,参考[ISendShortMessageCallback]。
deliveryCallbackAsyncCallback<[IDeliveryShortMessageCallback]>短信送达结果回调,返回短信递送报告,参考[IDeliveryShortMessageCallback]。

ISendShortMessageCallback

回调实例。返回短信发送结果、存储已发送短信的URI和是否为长短信的最后一部分。

系统能力 :以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。

参数名类型必填说明
isLastPartboolean指定这是否是长短信的最后一部分。true表示这是长短信的最后一部分,false表示不是。默认为false。
result[SendSmsResult]短信发送结果。
urlstring存储发送短信的URI。

IDeliveryShortMessageCallback

回调实例。返回短信送达报告。

系统能力 :以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。

参数名类型必填说明
pduArray短信送达报告。HarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿

搜狗高速浏览器截图20240326151344.png

SendSmsResult

短信发送结果。

系统能力 :以下各项对应的系统能力均为SystemCapability.Telephony.SmsMms。

名称说明
SEND_SMS_SUCCESS0发送短信成功。
SEND_SMS_FAILURE_UNKNOWN1发送短信失败,原因未知。
SEND_SMS_FAILURE_RADIO_OFF2发送短信失败,原因为调制解调器关机。
SEND_SMS_FAILURE_SERVICE_UNAVAILABLE3发送短信失败,原因为网络不可用、不支持发送或接收短信。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    57

    文章

    2358

    浏览量

    42876
收藏 人收藏

    评论

    相关推荐

    鸿蒙实战项目开发:【短信服务

    概述 本示例展示了电话服务中发送短信的功能。 样例展示 涉及OpenHarmony威廉希尔官方网站 特性 网络通信 难度级别 中级 基础信息 使用@ohos.telephony.sms接口展示了
    发表于 03-03 21:29

    [分享]短消息服务SMS)编程流程

    短消息服务SMS)编程流程短消息服务是在移动通讯全球系统(Global System for Mobile Communications networks ,GSM)中的移动电话间发
    发表于 05-31 09:34

    SMS 短信发送开发指南

    SMS 短信发送开发指南,有用就下载吧
    发表于 04-15 02:53

    HarmonyOS API Version 7版本特性说明

    ,归属PLMN,SPN,类型,电话号码,ICCID,语音信箱等等),默认语音/数据/短信SIM卡获取与设置。@ohos.telephony.sms新增发送短信相关接口。支持
    发表于 11-30 15:19

    HarmonyOS API Version 7版本特性说明

    ,归属PLMN,SPN,类型,电话号码,ICCID,语音信箱等等),默认语音/数据/短信SIM卡获取与设置。@ohos.telephony.sms新增发送短信相关接口。支持
    发表于 12-01 10:35

    基于Web的GSM短信服务系统的开发

    文章介绍了一个基于WEB的GSM短信服务系统的设计;阐述了系统应用的关键威廉希尔官方网站 ;讨论了系统实现的几种方式,通过对比这几种方式的优劣,提出一种适合中小型应用的系统实现方
    发表于 09-01 11:37 36次下载

    手机短信(SMS)工作原理

      在本文中,我们将会分析短信的工作原理,探究它的使用并了解有的时候短信需要很长一段时间才能到达接收者的原因。   SMS表示短信服务。简单来讲,它是在手机
    发表于 10-30 16:21 101次下载

    基于80C31的短信息终端电话开发

      现在,短信服务日益普及。各个电话机厂家竞相设计和开发短信息终端电话。为配合我所开发
    发表于 11-08 10:33 1671次阅读
    基于80C31的<b class='flag-5'>短信</b>息终端<b class='flag-5'>电话</b><b class='flag-5'>开发</b>

    EIC-NS20短信服务器用户指南

      EIC-NS20智能短信服务器是一个通过以太网收发短消息的服务器。EIC-NS20智能短信服务器依赖GSM网络来收发短信息,可用于短信
    发表于 09-22 12:41 2次下载
    EIC-NS20<b class='flag-5'>短信服务</b>器用户指南

    三大运营商计划推出的升级版短信服务5G消息有哪些特点

    4月11日消息,据媒体报道,三大运营商计划在年内推出升级版短信服务5G消息。
    的头像 发表于 04-12 09:23 3138次阅读

    微软Office Outlook Lite服务升级,支持短信功能

    据报道,微软于今日宣布更新 Outlook Lite 服务,使其支持 SMS 短信功能。微软称,通过此项升级,用户现可整合管理电子邮件及 SMS
    的头像 发表于 05-28 11:41 591次阅读

    鸿蒙开发电话服务:【@ohos.telephony.call (拨打电话)】

    call模块提供呼叫管理功能,包括拨打电话、跳转到拨号界面、获取通话状态、格式化电话号码等。
    的头像 发表于 06-15 09:13 814次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发电话</b><b class='flag-5'>服务</b>:【@<b class='flag-5'>ohos.telephony</b>.call (拨打<b class='flag-5'>电话</b>)】

    鸿蒙开发电话服务:【@ohos.telephony.observer (observer)】

    订阅网络状态变化事件,使用callback方式作为异步方法。
    的头像 发表于 06-15 09:18 534次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发电话</b><b class='flag-5'>服务</b>:【@<b class='flag-5'>ohos.telephony</b>.observer (observer)】

    鸿蒙开发电话服务ohos.telephony.simSIM卡管理

    获取指定卡槽SIM卡是否激活,使用callback方式作为异步方法。
    的头像 发表于 06-16 22:28 370次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发电话</b><b class='flag-5'>服务</b>:<b class='flag-5'>ohos.telephony</b>.sim<b class='flag-5'>之</b>SIM卡管理

    鸿蒙开发电话服务ohos.telephony.data蜂窝数据

    获取默认移动数据的SIM卡,使用callback方式作为异步方法。
    的头像 发表于 06-18 09:31 331次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发电话</b><b class='flag-5'>服务</b>:<b class='flag-5'>ohos.telephony</b>.data<b class='flag-5'>之</b>蜂窝数据