ошибка при вставке данных в базу данных при отправке нескольких смс - PullRequest
1 голос
/ 16 февраля 2012

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

 sendBTN.setOnClickListener(new OnClickListener() {

                public void onClick(View v) {
                    // TODO Auto-generated method stub

    avedPhoneno = "5558,5554,5556";

                    StringTokenizer st = new StringTokenizer(savedPhoneno, ",");
                    while (st.hasMoreElements()) {

                        tempMobileNumber = (String) st.nextElement();
                        System.out.println("tempMobileNumber in onclicklistener "+tempMobileNumber);
                        if (tempMobileNumber.length() > 0
                                && encryptedText.toString().trim().length() > 0) {


                            sendSMS(tempMobileNumber,
                                    base64msgString.concat(timeStamp1));

                        } else {
                            Toast.makeText(getBaseContext(),
                                    "Please enter both phone number and message.",
                                    Toast.LENGTH_SHORT).show();
                        }
                    }

, а метод отправки SMS-сообщений

 private void sendSMS(String edittextSmsNumber, String msg) {


                PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(SMS_SENT), 0);
                PendingIntent DeliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(SMS_DELIVERED), 0);
        SmsManager sms = SmsManager.getDefault();
                // short port = 8888;

                sms.sendTextMessage(edittextSmsNumber, null, msg, sentPI, DeliveredPI);
        }

и в широковещательном приемнике я пытаюсь сохранить данные в базе данных

private BroadcastReceiver sendreceiver = new BroadcastReceiver()
     {
             @Override
             public void onReceive(Context context, Intent intent)
             {
                     String info = "Send information: ";

                     switch(getResultCode())
                     {
                             case Activity.RESULT_OK:
                                 info += "send successful";
                                 smsSent = true;
                             if (senderinfo != null && timeStamp != 0 && msgString != null) {
                                System.out.println("entered into database");
                                System.out.println("tempMobileNumber is "
                                        + tempMobileNumber);
                                outboxDatabase.open();
                                outboxDatabase.insertintoOutbox(msgString, key,
                                        tempMobileNumber, timeStamp);
                                outboxDatabase.close();
                            }
                            //unregisterReceiver(this);


                            break;
                             case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                                 info += "send failed, generic failure";
                                 break;
                             case SmsManager.RESULT_ERROR_NO_SERVICE: 
                                 info += "send failed, no service"; 
                                 break;
                             case SmsManager.RESULT_ERROR_NULL_PDU:
                                 info += "send failed, null pdu"; 
                                 break;
                             case SmsManager.RESULT_ERROR_RADIO_OFF: 
                                 info += "send failed, radio is off";
                                 break;
                     }

                     Toast.makeText(getBaseContext(), info, Toast.LENGTH_SHORT).show();

             }
     };

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

Я хочу сохранить все три числа в базе данных.Я хочу сохранить, когда только сообщение отправлено правильно

, т. Е. Когда getResultCode() = Activity.RESULT_OK; может отправить на три номера, но только не может сохранить в базе данных, как это преодолеть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...