发不出去短信怎么设置(Android手机如何静默发送短信上)

发不出去短信怎么设置(Android手机如何静默发送短信上)

柳听 2025-09-21 硬件 1 次浏览 0个评论

Android手机如何静默发送短信(上)

--后台远程自动发送短信方案

一、前言

前期的时候,有部分试用客户和友商咨询说,蓝牙电话方案的App是否支持短信发送的功能?某一些拨打号码想设置通话超过10秒后,挂断电话时发送一条挂机短信或自定义短信。或者通话记录里长按后手动发送短信或批量号码群发短信。

我们思考了一下,觉得这样的需求十分的合理。通常的话务事务中,电话和短信是不分家的,SIM卡业务中通常主要有三大板块内容:通话、短信、流量。我们在蓝牙电话方案中,对电话通话的语音数据进行了拦截和信号处理,于情于理,都应该预研和整合短信收发的入口到这个整体方案中,提供一揽子的整体解决方案来进行业务输出。

二、方案现状

当前最新的蓝牙电话方案为Android手机App的版本,是直接安装到华为/小米/Vivo/Oppo等民用市场上的普通手机当中使用的普通应用App。因此,我们可以直接在手机上调用Android自带的短信接口或干脆就直接拉起手机发送短信的界面进行短信的发送。简单易用。

当前可选的方案有如下3种常规的方案:

1、使用Android自带的SmsManager.getDefault().sendTextMessage(phone, null, msg, null, null)来发送,这个是Android预设的后台的短信发送的办法。

2、调用Android的Intent,打开手机自带的短信界面进行发送。

3、由于蓝牙电话方案已经有USB蓝牙使用HFP协议连接到了手机蓝牙上,可以尝试使用蓝牙SPP发送AT命令或者蓝牙MAP/obex协议通过手机蓝牙发送短信内容。

三、探索与排查过程

Android自带的短信接收、发送、以及拉取手机短信列表的功能非常的简单,随便DeepSeek去搜索【Android开发 获取手机短信列表 发送短信并接收短信的发送成功失败反馈】的关键字,输出的“Android短信操作示例代码”就能很好的实现在一个普通应用App中,进行短信的获取和发送的操作。如下图所示。

Android手机如何静默发送短信(上)

(由于短信发送、发送成功/失败的状态反馈是异步操作,因此需要监听Android广播事件后才能最终确认短信是否发送成功)

这部分的内容和做法,是目前的短信主流的发送方式,百度或CSDN随便一搜索,都能出来一堆的细节调整方式,如下面这篇的文章论述:

https://blog.csdn.net/weixin_36282234/article/details/149692390

它论述了【Android系统版本兼容性】和【短信的安全机制】。

又比如下面这篇文章,它列举了多SIM卡时如何指定某张手机卡进行短信的发送,以及权限判断。

https://blog.csdn.net/l_and_h_555/article/details/70854629

它根据subscriptionManager.getActiveSubscriptionInfoList()来获取getSubscriptionId(),实现对指定SIM卡的短信发送-(实践发现并没什么卵用,不生效)

但是,短信发送真的如此简单?实践中发现,只有华为/荣耀等小部分型号的手机发送短信时弹出的授权框中存在“始终允许”这个选项。其它小米/Vivo/Oppo手机,在发送短信的时候,每条短信均会另外单独弹出一个提示框。每一条短信都会弹框,非常烦人,根本没法实现后台静默发送短信。

荣耀手机发送短信时的提示框如下:

Android手机如何静默发送短信(上)

只要应用App发送第一条短信的时候,选择了【始终允许】,则后续通过这个App发出的所有短信,均不再弹框提示,能够实现后台短信的静默发送。

小米手机发送短信时的提示框如下:

Android手机如何静默发送短信(上)

每一条短信都有这个弹框,不点这个弹框的【确认发送】按钮,短信就不会发送出去。这种模式下,没法实现后台短信的静默发送。

这就是Android系统默认的同一套代码,在不同品牌不同型号手机上表现的差异。这种情况下如果要保持操作的一致性是非常困难的,要么做自动点击、要么就只能不同品牌做单独的适配。

四、其它路线的短信发送方式

由于蓝牙电话方案已经有USB蓝牙使用HFP协议连接到了手机蓝牙上,我们其实可以尝试使用蓝牙SPP发送AT命令或者蓝牙MAP/obex协议通过手机蓝牙发送短信内容。具体的实现路径如下:

1、使用蓝牙SPP模拟串口发送AT命令,简单说就是通过AT+CMGS指令来发送短信。但此方法需要手机的GSM模块提供支持。

2、使用蓝牙MAP/obex协议,与蓝牙HFP协议类似,先连接到手机蓝牙上,再发送特定MAP格式的短信内容的消息,短信发送完毕后再断开蓝牙MAP/obex连接。

经过实践,发现使用蓝牙发送短信的方式兼容性最理想,仅仅会弹框一次授权框,允许后所有的短信发送都不再弹框提醒,能够实现后台短信的静默发送。授权框的界面样式如下图所示:

Android手机如何静默发送短信(上)

五、篇章小结

经过初步的技术预研和现有的业务功能的分析,针对我们预设的【后台静默群发短信】的能力,我们进行了逐项的验证。

经实践发现,Android标准的SmsManager.getDefault().sendTextMessage的短信发送方式,在华为/荣耀的部分型号手机上,能够满足静默发送短信的要求。但其它品牌型号的手机上每条短信都会主动弹框提示后才能发送,不能够普遍适用。

蓝牙发送的方式中,我们试验了【蓝牙SPP发送AT命令】和【蓝牙MAP/obex协议】两种办法,发现它对于市面上基本所有手机都能只在开始的时候弹框一次,就可以实现后台静默的短信发送,不存在单独的手机品牌型号适配的工作。

转载请注明来自德立,本文标题:《发不出去短信怎么设置(Android手机如何静默发送短信上)》

每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,1人围观)参与讨论

还没有评论,来说两句吧...