短消息 ====== 一. 概述 -------- 对于仅支持 4G网络 的 CAT1模块(Air720UG、Air724UG)而言,只有sim卡开通VOLTE 功能才能使用短信功能。 而 Air720UH 模块同时支持 4G 和 2G网络,2G 网络本身支持短信功能,所以不需要打开 VOLTE 就可以使用短信功能。 可以通过登录运营商APP、登录运营商网站、或者拨打运营商客服电话,确认开通VOLTE功能 二. API说明 ----------- 2.1 发送短信 ~~~~~~~~~~~~ **sms.send(num, data, [cbFnc], [idx])** 发送短信;将短信插入到发送缓冲区队列中,按顺序发送 注意:此接口仅仅是插入发送缓冲区,等网络OK后,才会自动发送;所以可以在任时间点调用此接口,不用等网络OK之后再调用 支持长短信 发送的短信不会存储到本地 - 参数 +-------+--------------------------------------------------------------+ | 类型 | 释义 | +=======+==============================================================+ | s | num,短信接收方号码;例如“18612345678” | | tring | | +-------+--------------------------------------------------------------+ | s | data,短信内容,GB2312编码格式;例如“短信测试” | | tring | | +-------+--------------------------------------------------------------+ | fun | **可选参数,默认为\ ``nil``* | | ction | *\ ,cbFnc,短信发送结果的回调函数;此回调函数的调用形式为: | | | cbFnc(result, num, data) | | | result表示发送结果,true为发送成功,false或者nil为发送失败; | | | num表示短信接收方号码; data表示短信内容,GB2312编码格式 | +-------+--------------------------------------------------------------+ | n | **可选参数,默认 | | umber | 为\ ``nil``**\ | | | ,idx,此短信要插入的发送缓冲区队列中的位置,默认是插入队尾 | +-------+--------------------------------------------------------------+ - 返回值 nil - 示例 .. code:: lua local function sendCb(result, num, data) log.info("发送结果", result and "成功" or "失败") end --发送短信内容10086到号码10086,返回发送结果后,执行sendCb回调函数 sms.send("10086","10086",sendCb) 2.2 注册短信接收的回调函数 ~~~~~~~~~~~~~~~~~~~~~~~~~~ **sms.setNewSmsCb(cbFnc)** 注册短信接收回调函数;开机时注册一次即可,中途可以重复注册,新回调函数覆盖旧回调函数 支持长短信,长短信接收完整后,才会执行回调函数 短信不会存储到本地,执行回调函数前已经自动被删除 - 参数 +-------+--------------------------------------------------------------+ | 类型 | 释义 | +=======+==============================================================+ | fun | cbFnc,短信接收处理的回调函数;此回调函数的调用形式为: | | ction | cbFnc(num, data,dateTime) | | | num表示短信发送方号码,string类型,例如“18612345678”; | | | d | | | ata表示短信内容,string类型,GB2312编码格式,例如“短信测试”; | | | dateTime表示短信 | | | 发送时的时间,string类型,格式为yy/mm/dd,hh:mm:ss,例如20/0 | | | 8/15,10:31:08+32表示2020年8月15日10时31分08秒,+32表示东八区 | +-------+--------------------------------------------------------------+ - 返回值 nil - 示例 .. code:: lua local function rcvCb(num, data, dateTime) log.info("短信发送方号码", num) log.info("短信内容", data) log.info("短信发送时间", dateTime) end --注册短信接收的回调函数,当接收到新短信时,会执行rcvCb回调函数 sms.setNewSmsCb(rcvCb) 三. 常见问题 ------------ 3.1 如何开通VOLTE功能? ~~~~~~~~~~~~~~~~~~~~~~~ 对于仅支持 4G网络 的 CAT1模块(Air720UG、Air724UG)而言,只有sim卡开通VOLTE 功能才能使用短信功能。如何开通VOLTE功能,有如下几种方式: - 登录运营商手机端app开通 - 登录运营商官网开通 - 拨打运营商客服电话开通 3.2 物联网卡支持短信功能吗? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 一般来说,物联网卡是不支持短信功能的,具体需要咨询物联网卡供应商 3.3 支持移动、电信,联通卡的短信功能吗? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 支持,sim卡必须开通VOLTE功能