Tost alışkanlığı SMS uygulamasında görünmeyecek

Bir sorunum var, önemli bir sorun değil ama kodlarımda sendMultipartTextMessage'ı uyguladığımdan beri "SMS Gönderildi" nin ekmeği ya da başka bir tost görünmeyecek. Sms başarılı bir şekilde gönderilip gönderilmediğini bilmiyorum. Ne yapmalıyım? İşte kod:

private void sendSMS(String phoneNo, String message, boolean split)
    {      
        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);

        SmsManager sms = SmsManager.getDefault();
        if (!split) {
            Log.d("SMSTest", "Sending single message: " + message);
        } else {
            Log.d("SMSTest", "Sending '" + message + "' in multiple parts.");
            ArrayList parts = sms.divideMessage(message);
            Log.d("SMSTest", parts.size() + " parts:");
            for (String string : parts) {
                Log.d("SMSTest", string);
            }    
    ArrayList sentList = new ArrayList();
                    sentList.add(sentPI);
                    ArrayList deliveredList = new ArrayList();
                    deliveredList.add(deliveredPI);
                    sms.sendMultipartTextMessage(phoneNo, null, parts, sentList,
                            deliveredList);

                registerReceiver(new BroadcastReceiver(){
                    @Override
                    public void onReceive(Context arg0, Intent arg1) {
                        switch (getResultCode())
                        {
                            case Activity.RESULT_OK:
                                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));

                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));   
                }
            }
        }
1
Bir varsayılan koymak: anahtarında ve koşullardan herhangi birinin doğru olup olmadığını kontrol edin.
katma yazar Yashwanth Kumar, kaynak
Sadece kod düzenlenmiş ve tüm sms yöntemleri yayınlanmıştır.
katma yazar kev, kaynak
LG-p350 cihazım. eğer (! bölünmüş), sadece bir mesaj değilse çok parçalı mesaj gönderiyor olup olmadığını kontrol eder. Emülatörden gelen sadece "tek mesaj göndererek: nieklm" ve hiçbir tost istemi.
katma yazar kev, kaynak
"ben" i çıkarsam nullpointererror hatasıyla biter, ne yapmalıyım?
katma yazar kev, kaynak
if (! split) yan tümcesi dışında doğru görünüyor - bölünmüş false ise hiç bir şey göndermiyorsunuz. btw, hangi cihaz üzerinde test yapıyorsunuz?
katma yazar Vladimir, kaynak
sağladığınız kod tek mesaj göndermez. Sadece günlük hata ayıklamak için yazdırır
katma yazar Vladimir, kaynak

1 cevap

Varsayılan durumda hiçbir zaman bir anahtar uygulamamalısınız. Bir tane yapın ve en az ne döndüğünü görebileceğinizden getResultCode() değerini görüntüleyin. Bu, davranışı daha fazla araştırmanıza yardımcı olur.

Numune:

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;
    default:
        Toast.makeText(getBaseContext(), "Default... " + getResultCode(), Toast.LENGTH_SHORT).show();
}
0
katma
Bu varsayılanı nasıl yapmalıyım?
katma yazar kev, kaynak