2016-07-10 4 views
-2

Когда я отправить сообщение с неправильным номером телефона (например, => 093485), сообщение было delivered.In факт, что сообщение не будет доставленоAndroid доставленное сообщение неправильный номер была работа

Почему я получаю ACTION_SMS_DELIVERED даже когда я отправляю SMS-сообщение на недопустимое число m?

Моя отправить Method сообщение:

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

.

ответ

1

Я думаю, что это проблема с сетью.

Чтобы проверить, вы можете попытаться включить отчет о доставке в другое приложение SMS и проверить, получено ли уведомление о доставке после отправки SMS на тот же номер.

Backgroud

Отчет о доставке просто SMS отправляется обратно из сети вам сказать, что SMS было доставлено ... Затем, Android извещать всех приложений, ACTION_SMS_DELIVERED намерения. Если сеть отправляет SMS-сообщение с сообщением о доставке SMS (даже для недопустимого номера), вы ничего не можете сделать ...

+0

При использовании приложения SMS-сообщений по умолчанию для отправки сообщения на недопустимые номера, их работы и сообщения не доставляется –