问题描述
根据磁贴,我使用以下代码:
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(sms_receiver,null,sms_content,null);
没有错误也没有例外。 虽然上述内容在我使用的 android studio 模拟器中似乎运行良好,但当我在我的设备上安装我的应用程序时,同样没有错误或崩溃,但该消息作为没有收件人的草稿发送到我的默认 SMS 应用程序。
经过我的搜索,我相信我的手机是双卡(虽然我的设备中只插入了一个)是问题所在,可以使用“scAddress”参数来解决。
我仍然不确定以上是否正确,而且我找不到以编程方式获取 scAddress 的方法。
如果相关的话,我的模型是小米红米 Note 6 Pro 和 Android 应用程序的 API:
minSdkVersion 25
targetSdkVersion 29
解决方法
我假设您已经尝试在 smsManager.sendTextMessage 的第二个参数中设置服务中心地址?
看起来应该是电话号码:查看此处了解更多信息:
https://www.developershome.com/sms/cscaCommand.asp
,问题确实在于
SmsManager smsManager = SmsManager.getDefault();
没有获得有效的 SIM 卡插槽。我使用了在这个答案中找到的片段: Android: How to send sms with particular SIM in dual sim mobiles?
现在该应用需要 READ_PHONE_STATE 权限,我希望不是这种情况,但它按预期工作(即 SMS 正在由我的应用发送)。