使用如下的方法
sms.sendTextMessage(mobile, null, message, sentPI, deliverPI);
在网上看到最后一个参数的说明如下
【deliveryIntent ——如果不为空,当消息成功传送到接收者这个PendingIntent就广播。】
我写了如下的方法来判断,发现无论接收的手机 是否开机,我都能进入到这个方法里面
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context _context, Intent _intent) {
Toast.makeText(getBaseContext(),
"SMS delivered actions:",
Toast.LENGTH_SHORT).show();
}
},new IntentFilter(DELIVERED_SMS_ACTION));
把方法修改一下,发现无论对方是否开机,都进入Activity.RESULT_OK这个分支。。。
高手帮忙。。。
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context _context, Intent _intent) {
switch (getResultCode())
{
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), "SMS delivered",
Toast.LENGTH_SHORT).show();
break;
case Activity.RESULT_CANCELED:
Toast.makeText(getBaseContext(), "SMS not delivered",
Toast.LENGTH_SHORT).show();
break;
}
}
},new IntentFilter(DELIVERED_SMS_ACTION));
据说原因是移动必须给移动发 联通必须给联通发 万恶的垄断。