HarmonyOS 应用开发《掌上英语》第89篇:短信服务通知模块实现
短信服务场景介绍短信服务模块提供了管理短信的一些基础能力包括创建/发送短信、获取/设置发送短信的默认SIM卡槽ID、获取/设置短信服务中心地址以及检查当前设备是否具备短信发送和接收能力等。常见的应用场景举例如下从网页拉起用户在网页上浏览看到“发送短信”按钮点击后会拉起短信应用预先填写收件人号码、发送内容。从应用拉起移动应用中用户点击“发送短信”按钮时应用调用系统功能拉起短信应用预先填写收件人号码、发送内容。基本概念短信服务即SMSShort Messaging Service是一种存储和转发服务。用户的移动电话可以通过它进行相互收发短信内容以文本、数字或二进制非文本数据为主。发送方的信息通过短信服务中心进行储存并转发给接收方。短信服务中心即SMSCShort Message Service Center负责在基站和移动设备间中继、储存或转发短消息。移动设备到短信服务中心的协议能传输来自移动设备或朝向移动设备的短消息协议内容遵从GSM 03.40协议。协议数据单元即PDUProtocol Data UnitPDU模式收发短信可以使用3种编码7-bit、8-bit和UCS-2编码。7-bit编码用于发送普通的ASCII字符8-bit编码通常用于发送数据短信UCS-2编码用于发送Unicode字符。约束与限制仅支持在标准系统上运行。需授予发送短信权限且插入SIM卡才可成功发送短信。接口说明说明为了保证应用的运行效率大部分API调用都是异步的对于异步调用的API均提供了callback和Promise两种方式以下示例采用callback回调方式其他调用方式请参考API文档。接口名描述sendShortMessage(options: SendMessageOptions, callback: AsyncCallbackvoid): void发送文本或数据SMS消息。需要配置ohos.permission.SEND_MESSAGES权限该权限仅系统应用可申请。createMessage(pdu: Arraynumber, specification: string, callback: AsyncCallbackShortMessage): void基于协议数据单元PDU和指定的SMS协议创建SMS消息实例。getDefaultSmsSlotId(callback: AsyncCallbacknumber): void获取用于发送短信的默认SIM卡。setSmscAddr(slotId: number, smscAddr: string, callback: AsyncCallbackvoid): void根据指定的插槽ID设置短信服务中心的地址。getSmscAddr(slotId: number, callback: AsyncCallbackstring): void根据指定的插槽ID获取短信服务中心地址。发送短信仅供系统应用使用声明接口调用所需要的权限如果是想发送短信则调用sendShortMessage接口需要配置ohos.permission.SEND_MESSAGES权限权限级别为system_basic。如果是想设置短信服务中心地址则调用setSmscAddr接口需要配置ohos.permission.SET_TELEPHONY_STATE权限权限级别为system_basic。如果是想获取短信服务中心地址则调用getSmscAddr接口需要配置ohos.permission.GET_TELEPHONY_STATE权限权限级别为system_basic。在申请权限前请保证符合权限使用的基本原则。然后参考申请应用权限声明对应权限。import需要的模块。发送SMS消息。// 示例代码import{sms}fromkit.TelephonyKit;import{AsyncCallback,BusinessError}fromkit.BasicServicesKit;letsendCallback:AsyncCallbacksms.ISendShortMessageCallback(err:BusinessError,data:sms.ISendShortMessageCallback){console.info(sendCallback: err-${JSON.stringify(err)},>${JSON.stringify(data)});}letdeliveryCallback:AsyncCallbacksms.IDeliveryShortMessageCallback(err:BusinessError,data:sms.IDeliveryShortMessageCallback){console.info(deliveryCallback: err-${JSON.stringify(err)},>${JSON.stringify(data)});}letslotId:number0;letcontent:string短信内容;letdestinationHost:string861xxxxxxxxxx;letserviceCenter:string861xxxxxxxxxx;letdestinationPort:number1000;letoptions:sms.SendMessageOptions{slotId,content,destinationHost,serviceCenter,destinationPort,sendCallback,deliveryCallback};sms.sendShortMessage(options,(err:BusinessError){console.error(callback: err-${JSON.stringify(err)});});应用内跳转到短信编辑界面发送短信的接口需要系统权限才可调用三方应用如果有发送短信需求需要在应用内实现跳转到短信编辑的功能并且需要携带编辑内容和收件人号码可以通过调用元能力startAbility接口指定号码并跳转到发送短信页面的方式实现。// 示例代码import{common,Want}fromkit.AbilityKit;constMMS_BUNDLE_NAMEcom.ohos.mms;constMMS_ABILITY_NAMEcom.ohos.mms.MainAbility;constMMS_ENTITIESentity.system.home;exportclassContact{contactsName:string;telephone:number;constructor(contactsName:string,telephone:number){this.contactsNamecontactsName;this.telephonetelephone;}}EntryComponentstruct JumpMessage{privatecontextthis.getUIContext().getHostContext()ascommon.UIAbilityContext;startMMSAbilityExplicit(){// 这里完善联系人和号码姓名主要是通过手机号来查询实际联系人名称因此这种方式还是以手机号码为主。letparams:ArrayObject[newContact(张三,133XXXXXXXX)];letwant: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.info(SuccessJSON.stringify(data));}).catch((){console.error(error);});}build(){Row(){Column(){Button(发送短信).onClick((){this.startMMSAbilityExplicit();})}.width(100%)}.height(100%)}}sms方式跳转到短信编辑界面使用场景通过sms短信协议可以创建指向短信收件人的超链接方便用户通过网页或应用中的超链接直接跳转到短信应用。同时支持在sms:的相关字段中定义短信的收件人、发送内容等节省用户编辑短信的时间。sms协议格式sms协议标准格式如下sms:106XXXXXXXXXX?body发送短信内容sms:sms scheme必填。106XXXXXXXXXX收件人号码选填。如果存在多个地址用英文逗号分隔。?短信内容声明开始符号。如果带短信内容参数则必填。body-value发送内容参数选填。拉起方开发步骤从网页拉起网页中的超链接需要满足sms协议。示例如下a hrefsms:106XXXXXXXXXX?body%E5%8F%91%E9%80%81%E7%9F%AD%E4%BF%A1%E5%86%85%E5%AE%B9发送短信/a实际开发时需要将收件人号码替换为真实的号码短信内容可以根据需要进行配置。从应用拉起保证sms字符串传入uri参数即可在应用中page页面可通过 this.getUIContext().getHostContext() 获取context在ability中可通过this.context获取context。// 示例代码import{common,Want}fromkit.AbilityKit;EntryComponentstruct Index{build(){Column(){Button(发送短信).onClick((){letcontextthis.getUIContext().getHostContext()ascommon.UIAbilityContext;letexampleUrlsms:106XXXXXXXXXX?body%E5%8F%91%E9%80%81%E7%9F%AD%E4%BF%A1%E5%86%85%E5%AE%B9;letwant:Want{bundleName:com.ohos.mms,action:ohos.want.action.viewData,uri:exampleUrl,}context.startAbility(want).then((data){console.info(SuccessJSON.stringify(data));}).catch((){console.error(error);});})}}}相关实例针对短信的使用有以下相关实例可供参考短信服务ArkTSFull SDKAPI9

相关新闻

落地案例|东莞厚街精密制造产业园 200 路高清监控 AI 视频压缩改造(广东融科数据)

落地案例|东莞厚街精密制造产业园 200 路高清监控 AI 视频压缩改造(广东融科数据)

专栏:大数据与智能系统集成 标签:#AI 视频压缩 #工业安防 #存储优化 #海康皓视通 #创维安防 #东莞数字化改造 原创声明:本文由广东融科数据服务有限公司技术团队原创项目复盘,转载请标注来源:广东融科数据 CSDN 企业博…

2026/8/4 23:39:35 阅读更多 →
如何用手机控制另一部手机 怎样远程控制另一部手机

如何用手机控制另一部手机 怎样远程控制另一部手机

如何用手机控制另一部手机?很多人遇到长辈手机故障、旧手机闲置挂机、异地协助操作设备等场景时,都会被这个问题困扰。如何用手机控制另一部手机,其实无需复杂的技术操作,选对远程工具就能轻松实现。对比多款手机远程控制软件后&a…

2026/8/4 23:39:35 阅读更多 →
研究生开题报告教程:从选题到框架搭建全流程实用指导指南

研究生开题报告教程:从选题到框架搭建全流程实用指导指南

很多2026届新生刚入学或刚转博,就被开题报告这四个字整得心力交瘁。最崩溃的不是写不出来,而是你辛辛苦苦熬夜半个月翻出来的创新点,导师看一眼就冷冷地抛回一句:这个方向十年前就有人做透了,前沿性在哪?或…

2026/8/4 23:39:35 阅读更多 →

最新新闻

StreamCap:免费跨平台直播录制工具的终极使用指南

StreamCap:免费跨平台直播录制工具的终极使用指南

StreamCap:免费跨平台直播录制工具的终极使用指南 【免费下载链接】StreamCap Multi-Platform Live Stream Automatic Recording Tool | 多平台直播流自动录制客户端 基于FFmpeg 支持监控/定时/转码 项目地址: https://gitcode.com/gh_mirrors/st/StreamCap …

2026/8/5 0:21:51 阅读更多 →
终极KMS智能激活解决方案:3步完成Windows和Office永久授权管理

终极KMS智能激活解决方案:3步完成Windows和Office永久授权管理

终极KMS智能激活解决方案:3步完成Windows和Office永久授权管理 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为软件授权问题而烦恼吗?KMS_VL_ALL_AIO智能激活解决方…

2026/8/5 0:20:50 阅读更多 →
执行与评估:TAO 工具选择,与让 Agent “知道自己错在哪”

执行与评估:TAO 工具选择,与让 Agent “知道自己错在哪”

执行与评估:TAO 工具选择,与让 Agent “知道自己错在哪” 配套课程执行层(TAO & ReAct) 评估反馈主线。对应考点:为什么选错工具、怎么判断用户喜不喜欢、怎么把失败变优化。 1. 执行层:TAO 不是“走一…

2026/8/5 0:20:50 阅读更多 →
上下文与检索:Context Window = f(Context),以及不调库的 RAG

上下文与检索:Context Window = f(Context),以及不调库的 RAG

上下文与检索:Context Window f(Context),以及不调库的 RAG 配套课程第三章(11 讲) 智能检索主线。对应考点:上下文不是越多越好、压缩与细节找回、RAG 不止于“丢给向量库”。 1. 一句话点破误区 面试官:…

2026/8/5 0:20:50 阅读更多 →
规划执行:好 Plan 的 G4C,与“失败点 ≠ 根因点”的 Replan

规划执行:好 Plan 的 G4C,与“失败点 ≠ 根因点”的 Replan

规划执行:好 Plan 的 G4C,与“失败点 ≠ 根因点”的 Replan 配套课程第二章(05~10 讲)。对应考点:Plan 机制、Replan 上下、TAO & ReAct、面试场景设计。 1. 面试官的两连问 面试官:你的 Agent 怎么制定…

2026/8/5 0:20:50 阅读更多 →
意图识别:面试官不想听“调大模型判断”,这三层才是答案

意图识别:面试官不想听“调大模型判断”,这三层才是答案

意图识别:面试官不想听“调大模型判断”,这三层才是答案 配套课程第一章。对应考点:用户输入规范化、三层意图识别机制、准确率提升、简历写法。 1. 面试现场最常翻车的一句话 面试官:用户说“那个最划算的帮我订了”,…

2026/8/5 0:20:50 阅读更多 →

日新闻

Java缓存框架:JetCache

Java缓存框架:JetCache

TOC 一、简介 JetCache 是一个 Java 缓存抽象框架,为不同的缓存解决方案提供了统一的使用方式。 它提供的注解比 Spring Cache 更加强大。 JetCache 的注解支持原生 TTL、两级缓存以及在分布式环境中的自动刷新功能,同时你也可以通过代码直接操作 Cach…

2026/8/5 0:00:43 阅读更多 →
AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

需求:通孔焊盘 十字花;过孔 Via 实心直连;贴片焊盘按需设置 AD 测试版本AD24 很多工程师踩坑:全部统一十字,导致接地过孔阻抗高、大电流发热! 一、快捷键打开规则 PCB 界面按下:D R 展开…

2026/8/5 0:00:43 阅读更多 →
AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

更多请点击: https://kaifayun.com 第一章:AI生成素描效果 AI生成素描效果是计算机视觉与风格迁移技术融合的典型应用,其核心在于将彩色照片或RGB图像转换为具有手绘质感、明暗对比强烈、边缘清晰的单色素描图像。该过程通常依赖于深度学习模…

2026/8/5 0:00:43 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →