我正在为Android开发一个短信应用程序。我想保存消息状态(例如,交付时)
但是发送短信时接收方总是返回RESULT_OK。这是我正在使用的代码:
Main.context.registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
switch (getResultCode()) {
case Activity.RESULT_OK:
Main.log("SMS delivered");
LogThread logThreadEntregado = new LogThread(main, smsId);
logThreadEntregado.setEntregado();
Thread t6 = new Thread(logThreadEntregado);
// t6.run();
Main.mHandler.post(t6);
Main.context.unregisterReceiver(this);
break;
case Activity.RESULT_CANCELED:
Main.log("SMS not delivered");
LogThread logThreadNoEntregado = new LogThread(main, smsId);
logThreadNoEntregado.setNoEntregado();
Thread t7 = new Thread(logThreadNoEntregado);
Main.mHandler.post(t7);
Main.context.unregisterReceiver(this);
// t7.run();
break;
}
}
}, new IntentFilter(DELIVERED));
我想知道是否有办法(可能使用参数Context arg0,Intent arg1)来检查消息是否真的已经传递。
提前谢谢
答案 0 :(得分:0)
Kannel会在SMS提交的dlr-url参数中为您指定的网址发回发送报告,例如example.com/DLR?outgoing_id=123&status=%d。
你用什么语言写的是无关紧要的。您只需要一个通过HTTP GET接受特定参数的HTTP页面。 Kannel将为交付状态,时间等添加参数,您将通过上述ID将它们链接到您的SMS提交。
This discussion 有一个明显的例子。