Код: Выделить всё
package my.gps_proba3;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
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 android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.AsyncTask;
import android.os.Binder;
import android.os.Bundle;
import android.os.IBinder;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.Toast;
public class TrackerServiceProba extends Service implements LocationListener {
final String LOG_TAG = "Proba_GPS";
java.util.Date d;
String myHTTPAdress;
double Lat;
double Lng;
long thisTime;
String Device_id;
TrackerBinder binder = new TrackerBinder();
public void onCreate() {
super.onCreate();
Log.d(LOG_TAG, "MyService onCreate");
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 0, this);
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String Device_id = tm.getDeviceId();
java.util.Date d = new java.util.Date();
}
public IBinder onBind(Intent intent) {
Log.d(LOG_TAG, "MyService onBind");
return binder;
}
public void onRebind(Intent intent) {
super.onRebind(intent);
Log.d(LOG_TAG, "MyService onRebind");
}
public boolean onUnbind(Intent intent) {
Log.d(LOG_TAG, "MyService onUnbind");
return super.onUnbind(intent);
}
public void onDestroy() {
super.onDestroy();
Log.d(LOG_TAG, "MyService onDestroy");
}
public void setHTTPAdress(String HTTPAdress)
{
myHTTPAdress=HTTPAdress;
}
class TrackerBinder extends Binder {
TrackerServiceProba getService() {
return TrackerServiceProba.this;
}
}
@Override
public void onLocationChanged(Location location) {
if (location != null)
{
Lat=location.getLatitude();
Lng=location.getLongitude();
thisTime=new java.util.Date().getTime();
SendTrack sendTrack = new SendTrack();
sendTrack.execute();
}
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
class SendTrack extends AsyncTask<Void, Void, Void> {
String Mess;
String myHTTPAdress;
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
DefaultHttpClient client = new DefaultHttpClient(); //HTTP клиент для отправки и получения данных
HttpPost post = new HttpPost(myHTTPAdress); // Создаем POST запос
List<BasicNameValuePair> pair = new ArrayList<BasicNameValuePair>(); // создаем список посылаемых данных
pair.add(new BasicNameValuePair("time", ""+thisTime));
pair.add(new BasicNameValuePair("imei", ""+Device_id));
pair.add(new BasicNameValuePair("lat", ""+Lat));
pair.add(new BasicNameValuePair("lng", ""+Lng));
try {
post.setEntity(new UrlEncodedFormEntity(pair)); // теперь в наш POST метод добавляем список посылаемых данных
HttpResponse response = client.execute(post); // Отправляем запрос и записываем данные в клаасс HttpResponse
response=null;
}
catch (ClientProtocolException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
post=null;
client=null;
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
}
}
}
Код: Выделить всё
01-26 23:27:47.575: E/AndroidRuntime(339): FATAL EXCEPTION: AsyncTask #1
01-26 23:27:47.575: E/AndroidRuntime(339): java.lang.RuntimeException: An error occured while executing doInBackground()
01-26 23:27:47.575: E/AndroidRuntime(339): at android.os.AsyncTask$3.done(AsyncTask.java:200)
01-26 23:27:47.575: E/AndroidRuntime(339): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
01-26 23:27:47.575: E/AndroidRuntime(339): at java.util.concurrent.FutureTask.setException(FutureTask.java:125)
01-26 23:27:47.575: E/AndroidRuntime(339): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
01-26 23:27:47.575: E/AndroidRuntime(339): at java.util.concurrent.FutureTask.run(FutureTask.java:138)
01-26 23:27:47.575: E/AndroidRuntime(339): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
01-26 23:27:47.575: E/AndroidRuntime(339): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
01-26 23:27:47.575: E/AndroidRuntime(339): at java.lang.Thread.run(Thread.java:1019)
01-26 23:27:47.575: E/AndroidRuntime(339): Caused by: java.lang.NullPointerException
01-26 23:27:47.575: E/AndroidRuntime(339): at java.net.URI.parseURI(URI.java:296)
01-26 23:27:47.575: E/AndroidRuntime(339): at java.net.URI.<init>(URI.java:72)
01-26 23:27:47.575: E/AndroidRuntime(339): at java.net.URI.create(URI.java:774)
01-26 23:27:47.575: E/AndroidRuntime(339): at org.apache.http.client.methods.HttpPost.<init>(HttpPost.java:79)
01-26 23:27:47.575: E/AndroidRuntime(339): at my.gps_proba3.TrackerServiceProba$SendTrack.doInBackground(TrackerServiceProba.java:148)
01-26 23:27:47.575: E/AndroidRuntime(339): at my.gps_proba3.TrackerServiceProba$SendTrack.doInBackground(TrackerServiceProba.java:1)
01-26 23:27:47.575: E/AndroidRuntime(339): at android.os.AsyncTask$2.call(AsyncTask.java:185)
01-26 23:27:47.575: E/AndroidRuntime(339): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)