2012-07-21 59 views
8

Tôi muốn nhận báo cáo gửi SMS Tôi đang thử nhiều ví dụ nhưng, một luồng không hiển thị báo cáo gửi như nếu số dư của tôi bằng 0 khi SMS gửi trong mã của tôi không hiển thị báo cáo gửi SMS. như không có dịch vụ nào vv .. Tôi muốn tìm báo cáo gửi tin nhắn SMS không thành công khi số dư của tôi là 0.Báo cáo gửi SMS trong Android

Giúp tôi với bất kỳ mã nào!

Cảm ơn bạn đã nâng cao!

+0

Bạn cần chấp nhận câu trả lời nếu bạn muốn mọi người giúp bạn, FYI –

Trả lời

36
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; 
      } 

     } 
    } 
+0

Cool !!! Nó làm việc cho tôi. Cảm ơn –

+0

cách hủy đăng kýReceiver()? Tôi trở thành một exaption cho điều đó? Bất kỳ ý tưởng? –

+0

Sử dụng câu trả lời được cập nhật – Manikandan