1

やあみんな私はユーザーの場所の緯度と経度を取得したいです。私は開発者のサイトとスタックオーバーフローを試しました、移動するユーザーを対象とした例がたくさんあります:-onLocationChanged()私は場所の更新を必要としません、ユーザーはそれを1、2分開くだけなので私はアプリケーションが起動したときに場所を見つける必要があり、ユーザーが以前にジオロケーションアプリを使用したことがない場合はどうなりますか?したがって、LocationManager.getLastKnownLocation()の代替手段も必要です

私のコードは:-

LocationManager lm = (LocationManager)
        getSystemService(Context.LOCATION_SERVICE);
        // connect to the GPS location service
        Location loc = lm.getLastKnownLocation(lm.NETWORK_PROVIDER);
        Toast.makeText(currentLocation.this, "Latitude -> "+Double.toString(loc.getLatitude())
                +" Longitude is -> "+Double.toString(loc.getLongitude()), Toast.LENGTH_LONG).show();

正常に動作しています。しかし、初めて使用したときにgetLastKnownLocationがnullを返す可能性があるのではないかと心配しています。

ありがとう

4

1 に答える 1

3

位置情報の更新にサインアップし、最初の更新を受け取ったら、今後の更新の登録を解除できます。

つまり、を作成して、のメソッドLocationListenerに登録します。のメソッドで、パラメータとして、のメソッドを呼び出します。LocationManagerrequestLocationUpdatesonLocationChangedLocationListenerremoveUpdatesLocationManagerthis

新しい場所を取得するまでに時間がかかる場合がありますが、getLastKnownLocation実際に代替手段はありません。

于 2011-03-16T20:42:36.397 に答える