Не могу из сервиса подключиться к интернету. Начинающий

Ответить
Ashabad
Сообщения: 10
Зарегистрирован: 14 янв 2014, 13:16

Не могу из сервиса подключиться к интернету. Начинающий

Сообщение Ashabad » 27 янв 2014, 03:02

Нужно сделать эмулятор GPS-трекера. Предполагается, что из фонового режима будут отсылаться кооординаты. Вот код сервиса:

Код: Выделить всё

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);			
		}
	}
	
}
на AVD выдает ошибку:

Код: Выделить всё

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)

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Не могу из сервиса подключиться к интернету. Начинающий

Сообщение Foenix » 27 янв 2014, 07:22

в этой строчке
HttpPost post = new HttpPost(myHTTPAdress); // Создаем POST запос
ошибка,
myHTTPAdress у тебя null.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Не могу из сервиса подключиться к интернету. Начинающий

Сообщение Foenix » 27 янв 2014, 07:22

к сведению, адрес пишется address
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Ashabad
Сообщения: 10
Зарегистрирован: 14 янв 2014, 13:16

Re: Не могу из сервиса подключиться к интернету. Начинающий

Сообщение Ashabad » 27 янв 2014, 08:48

Спасибо, проверю

Ashabad
Сообщения: 10
Зарегистрирован: 14 янв 2014, 13:16

Re: Не могу из сервиса подключиться к интернету. Начинающий

Сообщение Ashabad » 27 янв 2014, 08:56

Бли-и-и-н. Спасибо... Когда в два часа ночи вынужден заниматься тем, чего не знаешь, то совершешь глупые ошибки. Ещё раз спасибо

Ответить