Получите события запуска / остановки GPS с addGpsStatusListener - PullRequest
3 голосов
/ 20 сентября 2010

В приложении я хотел бы запустить Службу, которая может получать два уведомления от 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, а не об исправлениях.

У вас есть какие-либо советы по этому поводу?Может быть, это потому, что я пытаюсь сделать это в Службе, а не в Деятельности?

Спасибо за чтение.

1 Ответ

0 голосов
/ 12 февраля 2014

попробуйте поместить это в файл AndroidManifest.xml:

<service android:enabled="true" android:name="com.test.TestNotification" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...