4

gps の可用性を聞きたいです。これに従った。ただし、onGpsStatusChangedGPSを無効/有効にしても起動しませんでした。複数の電話で試しました。また、 thisthisthisなどの関連する stackoverflow Qn も調べました。しかし、成功しませんでした。どんな助けでも大歓迎です。ありがとう!

コード スニペット:

リスナー

Listener mGPSListener = new GpsStatus.Listener() {

    @Override
    public void onGpsStatusChanged(final int event) {
        Log.d(TAG, "---onGpsStatusChanged---");
        switch (event) {
            case GpsStatus.GPS_EVENT_STARTED:
                Log.d(TAG, "GPS_EVENT_STARTED");
                break;
            case GpsStatus.GPS_EVENT_FIRST_FIX:
                Log.d(TAG, "GPS_EVENT_FIRST_FIX");
                break;
            case GpsStatus.GPS_EVENT_STOPPED:
                Log.d(TAG, "GPS_EVENT_STOPPED");
                break;
            case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
                Log.d(TAG, "GPS_EVENT_SATELLITE_STATUS");
                break;
            default:
                Log.d(TAG, "SOMETHING_ELSE");
                break;
        }


    }


};

サービス

.....
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        super.onStartCommand(intent, flags, startId);
        Log.d(TAG, "onStartCommand");
        Context ctx = getBaseContext();
        Log.d(TAG, "Done, " + ctx);
        LocationManager locManager = (LocationManager)
        ctx.getSystemService(Context.LOCATION_SERVICE);
        Log.d(TAG, "Got locManager");
        locManager.addGpsStatusListener(mGPSListener);
        Log.d(TAG, "Added -> locManager.addGpsStatusListener(mGPSListener)");
        return START_STICKY;


    }
.....

context、などのログ ステートメントを確認できましたが、LocationManagerまったく何もありませんonGpsStatusChanged

Edit1 私のマニフェストには、次の権限が含まれています。

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
4

1 に答える 1

10

OK、これが私の発見です。

着信が必要な場合は、を使用して登録するだけでなく、 による位置情報の更新をリッスンする必要がありonGpsStatusChangedますGpsStatus.ListenerLocationManageraddGpsStatusListenerrequestLocationUpdates

requestLocationUpdatesクラスで位置情報の更新を聞き始めるとすぐに、LocationManagerGPS ステータスの変更を取得し始めました。

于 2013-08-29T12:00:53.470 に答える