2016-04-07 48 views
1

benim kodudur Agian ..gönderme sms hatası Jenerik tekrar yetmezliği ve İşte

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

    // ---when the SMS has been sent--- 
    registerReceiver(new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context arg0, Intent arg1) { 
      switch (getResultCode()) { 
       case Activity.RESULT_OK: 
        ContentValues values = new ContentValues(); 
        //for (int i = 0; i < MobNumber.size() - 1; i++) { 
        // values.put("address", MobNumber.get(i).toString());// txtPhoneNo.getText().toString()); 
        // values.put("body", MessageText.getText().toString()); 
        //} 
        getContentResolver().insert(
          Uri.parse("content://sms/sent"), values); 
        Toast.makeText(getBaseContext(), "SMS sent", 
          Toast.LENGTH_SHORT).show(); 
        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; 
      } 
     } 
    }, new IntentFilter(SENT)); 

    // ---when the SMS has been delivered--- 
    registerReceiver(new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context arg0, 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; 
      } 
     } 
    }, new IntentFilter(DELIVERED)); 

    SmsManager sms = SmsManager.getDefault(); 
    sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI); 
} 

Bir defada çok fazla SMS mesajı göndermek değilim. Hızlı yollamıyorum. Bu kod, AppCompactActivity öğesini genişleten etkinlik kapsamındadır. Bu sitedeki bu hatanın tüm linklerini okudum. Bir sms bile gönderemiyorum. Mobil hesap bakiyem sms göndermek için yeterlidir. Ağ servisim de iyi ve sms gönderebilir ve alabilirim. Sadece bir hata "Genel başarısızlık" alıyorum. Herhangi bir fikri olan varsa lütfen bana yardımcı olun. mesajınız çok uzunsa

+0

Göndermekte olduğunuz ileti ne kadar sürer? Hangi "SmsManager" sınıfını içe aktardınız? –

+0

http://stackoverflow.com/questions/9769095/why-do-i-get-generic-failure-error-while-sending-sms bunu okuyun – SAM

+0

Android.telephony.SmsManager'i içe aktardım; –

cevap

2

kullanın. Eğer bu ayarlanmamışsa veya doğru değilse bu hata meydana gelebilir. Bu numarayı SMS ayarları seçeneğinde bulacaksınız.

1

sonra kod

new Handler().postDelayed(new Runnable() { 
       public void run() { 

       SmsManager sms = SmsManager.getDefault(); 
       sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI); 
       } 
      }, 1000*40); 

içine işleyicisi kullanmak yoksa seni mesaj merkezi numarasını kontrol etmek gerek bu link

+0

Zaten bağlantı yeni Handler() postDelayed aşağıdaki bunu kullandık (yeni Runnable() { public void run() { SendSMS (selectedContactNumbers.get (0),) "bu bir denemedir"; } }, 1000 * 4); –

+0

smsManager.sendMultipartTextMessage'ı kullanın (telefon, boş, metinler, boş, boş); –

+0

Sadece denedim ama hala çalışmıyor. –

1

Eğer Dual Sim Telefon kullanıyorsanız, Lütfen Tercih Edilen Sim'in SMS olup olmadığını kontrol edin, "Her seferinde sor" olarak ayarlanmış DEĞİLDİR.

Varsayılan bir SIM ayarlamanız gerekir.

SmsManager sms = SmsManager.getDefault();