我想收到短信发送报告我正在尝试很多例子但是,一个流程没有显示发送报告,如果我的余额为0,当我的代码中的短信发送不显示短信发送报告失败,否则显示报告,如没有服务等..我想要当我的余额为0时,查找短信发送失败的送达报告.
帮我任何代码!
提前致谢!
解决方法
BroadcastReceiver sendBroadcastReceiver = new SentReceiver();
BroadcastReceiver deliveryBroadcastReciever = new DeliverReceiver();;
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
try {
unregisterReceiver(sendBroadcastReceiver);
unregisterReceiver(deliveryBroadcastReciever);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
try {
unregisterReceiver(sendBroadcastReceiver);
unregisterReceiver(deliveryBroadcastReciever);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
send_sms.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (textView.getText().toString().equals("")
| textView.getText().toString().equals(null)) {
Toast.makeText(SendSMS.this,enter_ph_no,Toast.LENGTH_LONG)
.show();
} else {
sendSMS(textView.getText().toString(),"sms_content");
finish();
}
}
});
private void sendSMS(String phoneNumber,String message) {
String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED";
PendingIntent sentPI = PendingIntent.getBroadcast(this,new Intent(
SENT),0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(this,new Intent(DELIVERED),0);
registerReceiver(sendBroadcastReceiver,new IntentFilter(SENT));
registerReceiver(deliveryBroadcastReciever,new IntentFilter(DELIVERED));
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber,null,message,sentPI,deliveredPI);
}
class DeliverReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context,Intent arg1) {
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;
}
}
}
class SentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context,sms_sent,Toast.LENGTH_SHORT)
.show();
startActivity(new Intent(SendSMS.this,ChooSEOption.class));
overridePendingTransition(R.anim.animation,R.anim.animation2);
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
Toast.makeText(getBaseContext(),"Generic failure",Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
Toast.makeText(getBaseContext(),"No service",Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
Toast.makeText(getBaseContext(),"Null PDU",Toast.LENGTH_SHORT)
.show();
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
Toast.makeText(getBaseContext(),"Radio off",Toast.LENGTH_SHORT).show();
break;
}
}
}