В приложении я хотел бы запустить Службу, которая может получать два уведомления от GPS: GPS_EVENT_STARTED и GPS_EVENT_STOPPED.
Для этого я сделал следующий код:
package com.test;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.location.GpsStatus;
import android.location.LocationManager;
import android.os.IBinder;
import android.util.Log;
public class TestNotification extends Service {
private LocationManager mLm;
private MyListener mMyListener;
private class MyListener implements GpsStatus.Listener {
@Override
public void onGpsStatusChanged(int event) {
Log.i("MyGps", "Event");
switch(event) {
case GpsStatus.GPS_EVENT_STARTED:
Log.i("MyGps", "Started");
break;
case GpsStatus.GPS_EVENT_STOPPED:
Log.i("MyGps", "Stopped");
break;
}
}
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
mLm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
mMyListener = new MyListener();
mLm.addGpsStatusListener( mMyListener );
}
}
Я также установил следующее разрешение в манифесте: ACCESS_FINE_LOCATION Я не хочу использовать requestLocationUpdates, потому что он заставляет GPS работать каждый раз и отправлять события, когда исправления меняются.
Он тестирует его на эмуляторе и на реальном устройстве (Eclair), но не работает, служба никогда не получает никаких уведомлений.
Я подробно прочитал следующую ветку ( здесь ) но решение не работает.Я отправляю его отдельным вопросом, потому что я хочу получать информацию только о запуске и остановке GPS, а не об исправлениях.
У вас есть какие-либо советы по этому поводу?Может быть, это потому, что я пытаюсь сделать это в Службе, а не в Деятельности?
Спасибо за чтение.