我想检查一下发送短信后发送的信息:
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, smsText, sentPI, null);
正如我现在发现的唯一方法是使用接收器。我是对的吗?
我在帖子中找到了很好的例子: Unable to send sms using SMSManager in Android 第一个答案显示了如何编写接收器。但是,对这个答案有评论,首先是越来越多的接收者通过每条SMS注册(我有),第二条如何解决它:unregisterReceiver(this); 我试过使用unregisterReceiver; 我已将上面的帖子中的代码更改为:
BroadcastReceiver r = new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
unregisterReceiver(r);
.....
registerReceiver(r, new IntentFilter(SENT));
它与示例相同。现在我需要添加unregisterReceiver(r)。 我试过把它放在smsManager.sendTextMessage之后 - 根本没有调用接收器。我试图把它放在onReceive上 - 被告知要宣布r为最终版。那就是这样,现在" r"可能没有启动错误。 我应该在哪里放置unregisterReceiver来摆脱新的和新的接收器?
答案 0 :(得分:0)
在代码@petey发表更改后,它开始正常工作。看起来我之前将unregisterReceiver(this);
放在其他地方。