package com.myprogram.util;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import com.myprogram.smspost.R;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.util.Log;
public class SMSPostUtility{
public Uri allMessage;
public Context context;
public SMSPostUtility(Context ctx){
//constructor
context = ctx;
allMessage = Uri.parse("content://sms/");
}
public String postMessage(){
Cursor c = context.getContentResolver().query(allMessage, null, null, null, null);
Log.d(Const.TAG, " Completed reading all messages");
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd-hh.mm.ss");
String msg = "";
int n=0;
while (c.moveToNext()){
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("message[from]", c.getString(2)));
nvps.add(new BasicNameValuePair("message[body]", c.getString(11)));
nvps.add(new BasicNameValuePair("message[received_at]", formater.format(c.getDouble(4))));
//String url = "http://susa.heroku.com/messages";
String url = context.getString(R.string.siteUrl);
//call getRequest
if (!getRequest(nvps, url)){ // if there is error in posting the message
msg = "Error occured while posting message to website: " + context.getString(R.string.siteUrl);
return msg;
}
n=n+1;
}
msg = n + " message(s) posted to the server";
//if message posted successfully, delete messages from the inbox
deleteMessage();
return msg ;
}
public void deleteMessage(){
context.getContentResolver().delete(allMessage, null, null);
Log.d(Const.TAG, " Deleted all messages");
}
public boolean getRequest(List<NameValuePair> nvps, String url){
try{
HttpClient client = new DefaultHttpClient();
HttpPost request = new HttpPost(url);
request.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
HttpResponse response = client.execute(request);
Log.d(Const.TAG, "HTTP Post Status: " + response.getStatusLine());
}catch(Exception ex){
//ex.printStackTrace();
Log.e(Const.TAG, "Error: " + ex.getMessage());
return false;
}
return true;
}
}
|