Android:尝试通过 SmsManager 发送短信会将消息重定向到没有地址的默认应用
Android: Attempting to send an SMS via SmsManager redirects the message to the default app with no address
根据磁贴,我使用以下代码:
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(sms_receiver, null, sms_content, null, null);
没有错误也没有异常。
虽然上面的内容在我使用的 android studio 模拟器中似乎工作正常,但当我在我的设备上安装我的应用程序时,再次没有错误或崩溃,但消息作为草稿发送到我的默认 SMS 应用程序,没有收件人。
在搜索之后,我被认为是我的手机 phone 是双 SIM 卡(虽然我的设备中只插入了一个)这一事实是问题所在,可以通过使用“scAddress”来解决参数。
我仍然不确定以上是否正确,我找不到以编程方式获取 scAddress 的方法。
如果完全相关,我的型号是小米红米 Note 6 Pro 和 android 应用程序的 API:
minSdkVersion 25
targetSdkVersion 29
我假设您已经尝试在 smsManager.sendTextMessage?
的第二个参数中设置服务中心地址
看起来应该是 phone 号码:在此处查找更多信息:
问题确实是
SmsManager smsManager = SmsManager.getDefault();
没有获得活动的 SIM 插槽。我使用了这个答案中的片段:
现在应用程序需要 READ_PHONE_STATE 许可,我不希望是这种情况,但它按预期工作(即短信由我的应用程序发送)。
根据磁贴,我使用以下代码:
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(sms_receiver, null, sms_content, null, null);
没有错误也没有异常。 虽然上面的内容在我使用的 android studio 模拟器中似乎工作正常,但当我在我的设备上安装我的应用程序时,再次没有错误或崩溃,但消息作为草稿发送到我的默认 SMS 应用程序,没有收件人。
在搜索之后,我被认为是我的手机 phone 是双 SIM 卡(虽然我的设备中只插入了一个)这一事实是问题所在,可以通过使用“scAddress”来解决参数。
我仍然不确定以上是否正确,我找不到以编程方式获取 scAddress 的方法。
如果完全相关,我的型号是小米红米 Note 6 Pro 和 android 应用程序的 API:
minSdkVersion 25
targetSdkVersion 29
我假设您已经尝试在 smsManager.sendTextMessage?
的第二个参数中设置服务中心地址看起来应该是 phone 号码:在此处查找更多信息:
问题确实是
SmsManager smsManager = SmsManager.getDefault();
没有获得活动的 SIM 插槽。我使用了这个答案中的片段:
现在应用程序需要 READ_PHONE_STATE 许可,我不希望是这种情况,但它按预期工作(即短信由我的应用程序发送)。