2016-07-10 33 views
-2

Wenn ich eine Nachricht mit der falschen Telefonnummer (zB => 093.485) zu senden, war die Botschaft delivered.In Tatsache, nicht die NachrichtAndroid gelieferte Nachricht falsche Nummer war Arbeit

geliefert werden, warum ich ACTION_SMS_DELIVERED sogar erhalte wenn ich SMS an eine ungültige Nummer m sende?

 Intent sendIntent = new Intent(ACTION_SMS_SENT); 
     sendIntent.putExtra(Helper.KEY_SIM_DELIVER, id); 
     Intent deliverIntent = new Intent(ACTION_SMS_DELIVERED); 
     deliverIntent.putExtra(Helper.KEY_SIM_DELIVER, id); 

     PendingIntent piSent = PendingIntent.getBroadcast(S.context, 0, sendIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
     PendingIntent piDelivered = PendingIntent.getBroadcast(S.context, 0, deliverIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
     SmsManager smsManager = SmsManager.getDefault(); 

     int smsSize = 0; 
     int length = message.length(); 

     if (length > MAX_SMS_MESSAGE_LENGTH) { 

      ArrayList<String> messagelist = smsManager.divideMessage(message); 
      ArrayList<PendingIntent> sentIntents = new ArrayList<PendingIntent>(); 
      ArrayList<PendingIntent> deliveryIntents = new ArrayList<PendingIntent>(); 

      for (int i = 0; i < smsSize; i++) { 

       sentIntents.add(PendingIntent.getBroadcast(S.context, 0, sendIntent, PendingIntent.FLAG_UPDATE_CURRENT)); 
       deliveryIntents.add(PendingIntent.getBroadcast(S.context, 0, deliverIntent, PendingIntent.FLAG_UPDATE_CURRENT)); 
      } 
      smsManager.sendMultipartTextMessage(phoneNumber, null, messagelist, sentIntents, deliveryIntents); 

     } else { 
      minesCredit(isPesians, phoneNumber); 
      smsManager.sendTextMessage(phoneNumber, null, message, piSent, piDelivered); 
     } 

DeliveryBroadcastReceiver

public void onReceive(Context context, Intent intent) { 

     String action = intent.getAction(); 
     Bundle extras = intent.getExtras(); 
     if (action.equals(ACTION_SMS_DELIVERED)) { 

      switch (getResultCode()) { 
       case Activity.RESULT_OK: { 

        String id = extras.getString(Helper.KEY_SIM_DELIVER); 
        Log.d(TAG, "SMS Delivered from =>" + id); 

        break; 
       } 
       case Activity.RESULT_CANCELED: 
        Log.d(TAG, "SMS not Delivered =>"); 

        break; 
      } 
     } 

:

Meine Nachricht Methode senden.

Antwort

1

Ich denke, es ist ein Netzwerkproblem.

Zum Testen können Sie versuchen, den Zustellungsbericht in einer anderen SMS-App zu aktivieren und prüfen, ob Sie nach dem Senden der SMS an die gleiche Nummer eine Zustellbenachrichtigung erhalten.

Backgroud

Zustellmeldung ist nur eine SMS zurück vom Netzwerk an Sie gesendet werden sagen, dass SMS geliefert wurde ... Dann Android Alle Apps ACTION_SMS_DELIVERED Absicht mitteilen. Wenn das Netzwerk eine SMS sendet, die besagt, dass eine SMS gesendet wurde (auch bei einer ungültigen Nummer), können Sie nichts tun ...

+0

Wenn Sie die Standard-SMS-App verwenden, um eine Nachricht an ungültige Nummern, ihre Arbeit und die Nachricht zu senden wird nicht geliefert –