2015-03-20 4 views
2

Я разрабатываю приложение, которое отправляет SMS-сообщение на сайт при получении одного SMS ранее. Моя проблема в том, что когда я пытаюсь отправить несколько SMS-сообщений с ранее полученными SMS-сообщениями ... Мне нужно будет создать цикл для управления массивом строк (msisdn, texto), чтобы проверить, сколько SMS-сообщений я получил, пока я их отправляю, по одному в один. Кто-нибудь может мне помочь? Спасибо :)Android Отправить SMS автоматически после его получения

public class GetSMSTask extends AsyncTask<Void, Void, Void> { 

private Context mContext; 

public GetSMSTask(Context context) { 
    mContext = context; 
} 

private static final String SMSBROKER = "http://xx.xx.xx.xx:8080/smsbroker/{params}"; 


@Override 
protected Void doInBackground(Void... arg0) { 
    OutcomeSms os=new OutcomeSms(); 
    String texto = null; 
    String msisdn = null; 

    HashMap<String, List<String>> hash = new HashMap<String, List<String>>(); 
    List<String> list = new ArrayList<String>(); 




    try { 
     org.apache.http.client.HttpClient client = new DefaultHttpClient(); 
     HttpGet get = new HttpGet(SMSBROKER); 

     HttpResponse response = client.execute(get); 
     Log.w("PlaySMSBroker","postSingal Response: " + response.getStatusLine()); 

     os.sendSMSMessage(msisdn, texto, mContext); 

     list.add(texto); 
     hash.put(msisdn,list); 

     List<String> listOfMessages = hash.get(msisdn); 
     int numberOfMessages = listOfMessages.size(); 

     for (int i=1; i<numberOfMessages; i++){ 
      os.sendSMSMessage(msisdn, texto, mContext);   
     } 


    } catch (UnsupportedEncodingException e) { 
     Log.e("PlaySMSBroker", "UnsupportedEncodingException:" + e.getMessage()); 
    } catch (ClientProtocolException e) { 
     Log.e("PlaySMSBroker", "ClientProtocolException:" + e.getMessage()); 
    } catch (IOException e) { 
     Log.e("PlaySMSBroker", "IOException:" + e.getMessage()); 
    } catch (Exception e) { 
     Log.e("PlaySMSBroker", "Exception" + e.getClass().toString()); 
    } 
    return null; 
} 

}

ответ

0

Используйте HashMap, чтобы заменить вашу матрицу чисел и mensages.

Используйте номер телефона для ключа hashmap и список строк для значения hasmap.

HashMap<a, b> matrix = new HashMap<a, b>(); 

а = Telefone номер

б = отослано Список сообщений

При отправке смс, добавить запись в список. Если это первый sms сделать положить в hashmap.

Чтобы проверить, сколько SMS-сообщений вы отправили, получите список по количеству и подсчитайте количество элементов, которые у вас есть в списке.

Пример:

//to insert 
HashMap<String, List<String>> hash = new HashMap<String, List<String>>(); 
List<String> list = new ArrayList<String>(); 
list.add("message1"); 
hash.put("993739292",list); 

//to get list by telefone number 
List<String> listOfMessages = hash.get("993739292"); 
int numberOfMessages = listOfMessages.size(); 
+0

Может у показать мне пример, пожалуйста? –

+0

я меняю тему –

+0

код пожалуйста ?? Я никогда не работал с HashMap ... –

Смежные вопросы