У меня есть этот код:
protected void onHandleIntent(Intent intent) {
while (true){
long endTime = System.currentTimeMillis() + 5*1000;
while (System.currentTimeMillis() < endTime) {
synchronized (this) {
try {
wait(endTime - System.currentTimeMillis());
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.***.***/***/request_sms.php");
String HTML = "";
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("id", "1"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HTML = EntityUtils.toString(response.getEntity());
} catch (ClientProtocolException e) {} catch (IOException e) {}
if(HTML.indexOf("[NO TEXTS]") > 0) {
} else {
Vector<String> all_sms = getBetweenAll(HTML, "<sms>", "<sms>");
for(int i = 0, size = all_sms.size(); i < size; i++) {
String from = getBetween(all_sms.get(i), "<from>", "</from>");
String to = getBetween(all_sms.get(i), "<to>", "</to>");
String msg = getBetween(all_sms.get(i), "<msg>", "</msg>");
String sent = getBetween(all_sms.get(i), "<sent>", "</sent>");
String HTML1 = "";
HttpClient httpclient1 = new DefaultHttpClient();
HttpPost httppost1 = new HttpPost("http://www.***.***/***/add_sms.php");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("from", from));
nameValuePairs.add(new BasicNameValuePair("to", to));
nameValuePairs.add(new BasicNameValuePair("msg", msg));
nameValuePairs.add(new BasicNameValuePair("sent", sent));
httppost1.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response1 = httpclient1.execute(httppost1);
HTML1 = EntityUtils.toString(response1.getEntity());
HN.post(new DisplayToast(HTML1));
} catch (ClientProtocolException e) {} catch (IOException e) {}
}
}
} catch (Exception e) {
}
}
}
}
}
Это услуга, которую я хочу сделать, чтобы каждые 5 секунд запрашивать страницу с ожидающими SMS-сообщениями, которые должен отправить телефон.Я не на отправляющей части, я просто хочу, чтобы HN.Post (DisplayToast (HTML1)) появился, и тогда я буду работать.HTML1 должен содержать «успех», но я ничего не понимаю.Я уверен, что HTML не содержит «[NO TEXTS]», как я тестировал, и показывает тег с другими тегами внутри него.Что может быть не так?Вот используемые функции:
Handler HN = new Handler();
private class DisplayToast implements Runnable {
String TM = "";
public DisplayToast(String toast){
TM = toast;
}
public void run(){
Toast.makeText(getApplicationContext(), TM, Toast.LENGTH_SHORT).show();
}
}
public String getBetween(String source, String start, String end) {
int startindex = source.indexOf(start);
int endindex = source.indexOf(end, startindex);
String result = source.substring(startindex + start.length(), endindex);
return result;
}
public Vector<String> getBetweenAll(String source, String start, String end) {
int startI = 0;
Vector<String> result = new Vector<String>();
while (startI + (start.length() + end.length()) < source.length()) {
int startindex = source.indexOf(start, startI);
if (startI > startindex) {
break;
}
int endindex = source.indexOf(end, startindex);
result.add(source.substring(startindex + start.length(), endindex));
startI = endindex;
}
return result;
}