我们有一个应用程序可以检测并接收传入的SMS消息,然后自动响应这些消息。所有这一切都很有效..但是我们注意到了一个怪癖。在我的Android手机(LG L70)上,它可以在本机“消息”应用程序中显示自动响应。但是,在我们用于测试的其他设备上(S4 mini),自动响应未显示。但实际上发送的自动响应消息没有来自设备的问题。
以下是发送短信的代码:
SmsManager.getDefault().sendTextMessage(message.getSenderNumber(),
null,
autoResponseText,
PendingIntent.getBroadcast(this, 0, new Intent(ACTION_SMS_SENT), 0),
null);
不用说,这让我们摸不着头脑。这些是我们购买的新“测试”手机,因此它们不会被其他安装的应用程序所困扰,这些应用程序似乎会干扰这类事情。我们已尝试更改各种设置甚至卸载Google Hangouts等内容。但没有运气。出于某种原因,它可以在我的手机上正常显示原生“消息”应用程序中的所有消息,但在另一部手机上,它没有。
这可能是特定于设备的问题吗?或者我们可以在代码中解决这个问题?如果需要更多信息或代码,我很乐意提供。提前谢谢!
答案 0 :(得分:1)
结果this帖子有正确答案,而Rhth的评论确实是正确的。
但是,重要的是要注意使用ContentResolver查询和查找消息的代码无法正常工作,我猜测是因为SmsManager以异步方式发送消息而且没有插入到ContentResolver直到完成..所以当SmsManager发送消息后立即调用搜索代码时,它仍然无法找到它。
我想某种延迟,我可以进入一个有效的状态,但奇怪的是,我没有必要担心它,因为代码通过ContentResolver手动插入消息在之前提到的两个设备上都能正常工作!即它不会复制正常工作的设备上的消息。所以它在所有方面都做得最好。