SMS Delivery Report in Android

匿名 (未验证) 提交于 2019-12-03 02:16:02

问题:

I want to get SMS delivery report I am trying many examples but, one flow not displaying delivery report like if my balance is 0 when SMS sending in my code is not displaying SMS delivery report failed otherwise shows report like no service etc.. I want to find SMS sending failed delivery report when my balance is 0.

Help me with any code!

Thanks in Advance!

回答1:

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, 0, new Intent(                 SENT), 0);          PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,                 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, Intent arg1) {             switch (getResultCode()) {             case Activity.RESULT_OK:                 Toast.makeText(getBaseContext(), 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;             }          }     } 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!