私はアンドロイドでアプリケーションを開発しており、アンドロイド携帯の緯度と経度を取得したいと考えています。緯度と経度を取得するための私のコードは、しばらくすると値を返します。また、値がまったく得られない場合もあります。誰でもできることを手伝ってくれませんか!
1324 次
3 に答える
0
より迅速な方法の 1 つは、最新の既知の場所を取得し、getLastKnownLocation()
この場所の時刻が遠くないかどうかを確認することです location.getTime()
。または、実際の場所を取得するまで使用します。
もう 1 つのヒントは、GPS_PROVIDER と NETWORK_PROVIDER の両方を使用して、コードが次のようになるようにすることです。
LocationManager locManager;
locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
/*call both providers , the quickest one will call the listener and in the listener you remove the locationUpdates*/
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0 ,0 , locationListener);
locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0 ,0 , locationListener);
Location location = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
/*check both providers even for lastKnownLocation*/
if (location == null)
{
location = locManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
if(location != null) {
String lat = String.valueOf(location.getLatitude());
v1.setText(lat);
String longi = String.valueOf(location.getLatitude());
v2.setText(longi);
}
これは単純な例です。より精巧なソリューションでは、lastKnownLocation
プロバイダー間で最新のものを比較します。
于 2012-12-27T09:22:43.757 に答える