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

短信服务

说明:

本模块首批接口从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短信送达报告。

SendSmsResult

短信发送结果。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/29070.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【elementui源码解析】如何实现自动渲染md文档-第三篇

目录 1.前言 2.webpack.demo.js 3.markdown文档 4.fence.js 1&#xff09;tokens 2&#xff09;::: 3&#xff09; 5.containers.js 1&#xff09;markdown-it-container 2&#xff09;md.use() 3&#xff09;代码逻辑 4&#xff09;containers小结 6.congfig.js …

用ip link add link命令创建vlan子设备

用ip link add link命令创建vlan子设备 ip link add link 命令用于在 Linux 系统中创建网络设备&#xff0c;其中可以用它来创建 VLAN (Virtual Local Area Network) 子接口&#xff0c;这是一个典型的用法。 VLAN是一种在二层网络&#xff08;即数据链路层&#xff09;上区分…

5G消息 x 政务 | 新型数智政务服务平台

5G消息 x 政务 | 新型数智政务服务平台 通过 5G 消息&#xff0c;帮助政府部门及公共事业部门优化服务品质、提高服务效能&#xff0c;打造现代政府的展示窗口、便民利企的服务窗口、营商环境的感知窗口&#xff0c;提供多元、透明、高效的线上政务服务。 5G消息 x 政务 —— 优…

转型AI产品经理(11):“损失规避”如何应用在Chatbot产品中

损失规避是行为经济学和心理学中的一个重要概念&#xff0c;它揭示了人们在面对潜在的收益和损失时&#xff0c;表现出对损失的强烈偏好避免&#xff0c;相比于获得同等价值的利益&#xff0c;人们对损失的感受更为强烈。它主要有以下特征&#xff1a; 1、不对称性 损失规避体…

nvm 报错https://npm.taobao.org/mirrors/node/index.json 淘宝镜像更换

文章目录 一、问题背景二、解决问题1. 获取配置文件的位置2. 修改配置文件中的镜像源配置3. 修改 npm 镜像源 一、问题背景 使用nvm的时候报错: Could not retrieve https://npm.taobao.org/mirrors/node/index.json. 由于淘宝的镜像域名更换&#xff0c;npm.taobao.org 域名…

同三维T80004JEH2-4K60 双路4K60 HDMI解码器

输出&#xff1a;2路HDMI2路3.5音频&#xff0c;最高支持1路4K60HDMI输出 可以同源/独立分屏输出两种模式可选&#xff1a;对应两个HDMI输出一样和不一样的信号 同源可以解码36路网络流&#xff08;1/4/9/16/25/36&#xff09;&#xff0c;两个HDMI输出一样的信号&#xff…

运行vue3项目相关报错

1. VSCode打开TSVue3项目很多地方报错 报错内容 几乎所有文件都会出现未知飘红 error Delete CR prettier/prettier报错原因 插件冲突&#xff0c;Windows系统回车换行符与MAC不一致&#xff08;所以这个问题Windows系统才会出现&#xff09; 解决 需要安装Vue - Official…

java的Filter(过滤器),Interceptor(拦截器) 和 Aspect(切面)

文章目录 前言一、过滤器 (Filter) 基本用法二、拦截器 (Interceptor) 基本用法三、Aspect(切面)的基本用法总结 前言 Filter 是servlet层面的&#xff0c;由Servlet容器(如Tomcat)支持&#xff0c;只能在web程序中使用&#xff0c;实现了javax.servlet.Filter接口 Intercept…

mysql FIELD函数的用法

FIELD() 是 MySQL 中的一个函数&#xff0c;它返回参数在列表中的位置。如果第一个参数在列表中&#xff0c;则返回它在列表中的位置&#xff08;从1开始计数&#xff09;&#xff1b;如果不在列表中&#xff0c;则返回0。 这个函数经常用于 ORDER BY 子句中&#xff0c;以便按…

NATAPP-内网穿透工具----下载与配置

NATAPP-内网穿透工具 基于ngrok的国内高速内网穿透服务&#xff0c;natapp提供了一种便利的方式&#xff0c;使得开发和测试过程更加高效&#xff0c;尤其是在需要进行远程调试或展示时。无论是进行web开发、微信和支付宝的本地开发调试&#xff0c;还是简单地从外部网络访问家…

Maya 2024 mac/win版:创意无界,设计新生

Maya 2024是一款由Autodesk推出的业界领先的三维计算机图形软件&#xff0c;广泛应用于电影、游戏、广告等创意产业。这款软件以其强大的功能和卓越的性能&#xff0c;为艺术家们提供了一个实现创意梦想的平台。 Maya 2024 mac/win版获取 在建模方面&#xff0c;Maya 2024提供…

作者推荐 | 探索分析从起源到现今的巅峰之旅(MySQL存储模型)

探索分析从起源到现今的巅峰之旅 背景介绍MySQL内部组织与结构MySQL的数据层次和关系InnoDB的数据存储模型数据记录的基本单元 — 行页目录&#xff08;Page Directory&#xff09;文件头&#xff08;File Header&#xff09;决定页面间的关联方式数据页头&#xff08;Page Hea…

前端AES+SHA1PRNG加解密

过程不复杂, 只是网上结合后端的AESSHA1PRNG加解密资料参差不齐, 在此记录下, 方便自己和有需要的小伙伴能够快速找到! 什么原理什么逻辑就不废话了, 直接上代码! <!DOCTYPE html> <html> <head><title>aes demo</title><meta http-equiv&q…

大模型应用开发技术:Multi-Agent框架流程、源码及案例实战(一)

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;一&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;二&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;三&#xff09; 基于 LlaMA…

QT:QT中的默认代码 QT 创建控件的两种方式

目录 QT中的默认代码 新项目的结构 主函数 wiget类的声明文件.h wiget类的定义文件.cpp form file界面文件 .pro文件 QT 创建控件的两种方式 通过ui界面创建控件 通过代码方式创建控件 QT中的默认代码 新项目的结构 主函数 基本概念&#xff1a;Qt 在创建的一个 Wi…

java下载文件到浏览器中文名报错 The Unicode character [模] at code point [27,169]

转载自&#xff1a; 【java下载文件到浏览器中文名报错 The Unicode character [模] at code point [27,169] cannot be encoded as it is o - CSDN App】

AI在线创作歌曲智能绘画对话三合一源码系统 前后端分离 带完整的安装代码包以及搭建教程

系统概述 在数字化时代背景下&#xff0c;艺术与技术的融合正以前所未有的速度推进&#xff0c;催生出一系列创新应用。为了满足创作者对多元化、高效能创作工具的需求&#xff0c;我们自豪地推出了“AI在线创作歌曲、智能绘画对话三合一源码系统”。这一系统不仅实现了音乐、…

bind failed: Address already in use

添加代码 这是个很常见的问题&#xff1a;在bind函数之前添加如下代码即可。 int yes 1; if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)) -1) { perror("setsockopt"); exit(1); } 查看端口 如果还是不能结果&#xff0c;那么说…

白酒:茅台镇白酒的消费者教育计划与推广活动

云仓酒庄豪迈白酒&#xff0c;作为茅台镇的品牌&#xff0c;一直以来都非常重视消费者教育和推广活动。这些计划和活动的目的在于提高消费者对豪迈白酒的认知度和接受度&#xff0c;同时培养消费者的品鉴能力和酒文化素养。 首先&#xff0c;云仓酒庄豪迈白酒通过开展品鉴活动来…

Java高手的30k之路|面试宝典|精通泛型

泛型 知识点 在Java高级开发中&#xff0c;掌握泛型&#xff08;Generics&#xff09;是非常重要的&#xff0c;它是Java语言中的一项重要特性&#xff0c;提供了编译时类型安全检查机制&#xff0c;使得代码更加灵活和可重用。以下是Java高级开发需要掌握的泛型知识点&#…