1# 短信服务 2 3### 介绍 4 5本示例使用[@ohos.telephony.sms](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Beta5/zh-cn/application-dev/reference/apis/js-apis-sms.md) 接口展示了电话服务中发送短信的功能。 6 7### 效果预览 8|新建联系人|首页|短信页| 9|-------------|-----------|------------| 10|| | | 11 12使用说明: 13 141. 首页点击**创建联系人**,弹框输入联系人姓名和电话,点击确定按钮后,联系人列表中添加该联系人; 152. 点击**管理**,该按钮变成**取消**,联系人列表出现删除x按钮,点击x按钮可删除联系人,点击**取消**,按钮变成**管理**; 163. 联系人列表中每个联系人右侧有**发送短信**图标按钮,点击该图标按钮跳转到发送短信页面; 174. 发送短信页面,输入短信点击向上箭头的**发送**按钮,可以发送短信; 185. 需授予短信发送权限且插入SIM卡才可成功发送短信,有预置短信内容,每次退出应用数据会清空,未添加存储功能,发送短信为默认卡发送。 19 20### 工程目录 21``` 22entry/src/main/ets/ 23|---pages 24| |---Index.ets // 首页 25| |---SendMessage.ets / 发送短信页 26|---common 27| |---AddDialog.ets // 添加联系人 28| |---TitleBar.ets // title 29|---model 30| |---Contact.ets // 联系人数据结构 31| |---DataSources.ets // 懒加载数据 32| |---DataTimeUtil.ets // 日期工具 33| |---Logger.ts // 日志工具 34| |---Message.ets // 短信数据结构 35| |---PermissionUtils.ets // 权限信息 36| |---SmsModel.ets // 封装短信类 37``` 38 39### 具体实现 40+ 发送短信功能在SmsModel中,源码参考 [SmsModel.ets](entry/src/main/ets/model/SmsModel.ets) : 41 + 发送短信:发送短信首先需要使用createMessage方法创建短信实例,然后获取基本参数,getDefaultSmsSlotId可以获取发短信默认卡槽id,getSmscAddr获取短信发送地址,然后调用sms.sendMessage方法发送短信。 42 43### 相关权限 44 45[ohos.permission.SEND_MESSAGES](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionsend_messages) 46 47[ohos.permission.SET_TELEPHONY_STATE](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionset_telephony_state) 48 49### 依赖 50 51不涉及。 52 53### 约束与限制 54 551. 本示例仅支持在标准系统上运行; 562. 本示例需要插入SIM卡,目前该功能仅支持部分机型; 573. 本示例已适配API version 9版本SDK,版本号:3.2.11.9; 584. 本示例涉及使用系统接口:getSmscAddr(),需要手动替换Full SDK 才能编译通过,具体操作可参考[替换指南](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/faqs/full-sdk-switch-guide.md/); 595. 本示例需要使用DevEco Studio 3.1 Beta2 (Build Version: 3.1.0.400, built on April 7, 2023)及以上版本才可编译运行; 606. 本示例所配置的权限ohos.permission.SEND_MESSAGES、ohos.permission.SET_TELEPHONY_STATE、ohos.permission.GET_TELEPHONY_STATE为system_basic级别(相关权限级别可通过[权限定义列表](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md) 查看),需要手动配置对应级别的权限签名(具体操作可查看[自动化签名方案](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/security/hapsigntool-overview.md/); 617. 本示例为预置应用,无需用户授权弹窗,授权方式为预置授权。 62 63### 下载 64如需单独下载本工程,执行如下命令: 65``` 66git init 67git config core.sparsecheckout true 68echo code/SystemFeature/Telephony/Message > .git/info/sparse-checkout 69git remote add origin https://gitee.com/openharmony/applications_app_samples.git 70git pull origin master 71```