2012-07-21 16 views
8

Voglio ottenere rapporto di consegna di SMS sto provando molti esempi, ma, non il flusso di visualizzazione rapporto di consegna, come se il mio equilibrio è 0 quando l'invio di SMS nel mio codice non visualizza rapporto di consegna di SMS fallito altrimenti mostra rapporto come nessun servizio ecc .. voglio trovare l'invio di SMS rapporto di mancata consegna, quando il mio equilibrio è 0.SMS Rapporto di consegna in Android

aiutarmi con qualsiasi codice!

Grazie in anticipo!

+0

Devi accettare le risposte se vuoi che le persone ti aiutino, FYI –

risposta

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 !!! Per me funziona. Grazie –

+0

come unregisterReceiver()? Divento un'esplorazione per quello? Qualche idea? –

+0

Utilizzare la risposta aggiornato – Manikandan