0

これは少し奇妙な振る舞いをする私のコードです:

locationOverlay = new MyLocationOverlay(this, map) {
    @Override
    public void onLocationChanged(Location location) {
        super.onLocationChanged(location);
        updatePosition(locationOverlay.getMyLocation());
    }

    @Override
    public void onProviderDisabled(String provider) {
        if(provider.equals(LocationManager.GPS_PROVIDER))
            showNoGPSWarning();
    }
};

showNoGPSWarningは、GPSを有効にするかどうかを尋ねるダイアログを示しています(このように)。
GPSを無効にしてアクティビティを開始し、ダイアログで[いいえ]を押した場合を除いて、すべてが完全に正常に機能しますshowNoGPSWarning()。その後、私のアプリはGPSの変更をまったく聞き取りません。

オンにしても何も起こりません。Google Maps APIは、GPS信号を取得しようとはしません。オフに戻すと、何も起こらonProviderDisabled()ず、呼び出されません。
私が言ったように、これが起こる唯一の方法です、私がダイアログで「はい」を押すならば、それは働きます。
では、ダイアログはアプリの動作にどのように影響しますか?

4

1 に答える 1

1

以下のように[はい]/[いいえ]を押したときに、もう一度場所の更新をリクエストしてみてください。それが役に立てば幸い。

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 2000.0f, myLocationListener);
于 2012-08-28T13:33:16.790 に答える