-1

私は以下のコードを持っていますが、これはMost Recent location毎回30 secondsとを取得します10 metersが、常に位置情報の更新を受信し続け、30秒ごとに最新の位置情報を取得します。

これを行うためのより良い/効率的な方法はありますか?

Current Location基本的に私の要件は、30秒ごとにを利用することです10 meters distance moved。私はこれをいくつかの方法で行うことができます、私はこの問題を行うためのより良い方法があると思っていましたか?そして、タイマークラスはどうですか?

どんな考えでも大いに役立ちます。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);    

    locationListener = new GPSLocationListener();

    locationManager.requestLocationUpdates(
            LocationManager.GPS_PROVIDER, 
            30000, 
            10, 
            locationListener);

}

以下は、を実装するクラスですLocationListener

private class GPSLocationListener implements LocationListener {
    @Override
    public void onLocationChanged(Location location) {
        if (location != null) {
            GeoPoint point = new GeoPoint(
                    (int) (location.getLatitude() * 1E6), 
                    (int) (location.getLongitude() * 1E6));
        System.out.println(location.getLatitude()+"--"+location.getLongitude());

        }
    }

    @Override
    public void onProviderDisabled(String provider) {
    }

    @Override
    public void onProviderEnabled(String provider) {
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
    }
}
4

1 に答える 1

0

Techgeeky、あなたが正確に何を望んでいるのかわかりません. しかし、あなたが持っているのはまさにあなたが望むものです。つまり、10 メートル移動した場合に 30 秒ごとに nupdate を取得するということです。OS は GPS チップを 30 秒間スリープ状態にします。一度起動すると、10 メートル移動すると更新されます。あなたが持っているものは完全に機能するはずですが、問題は正確には何ですか? ロケーション リスナーを使用する複数のアプリを作成しましたが、30 秒ごとに起動することで、確実に更新を取得できます。

于 2012-09-17T04:57:23.260 に答える