0

私はアンドロイドでアプリケーションを開発しており、アンドロイド携帯の緯度と経度を取得したいと考えています。緯度と経度を取得するための私のコードは、しばらくすると値を返します。また、値がまったく得られない場合もあります。誰でもできることを手伝ってくれませんか!

4

3 に答える 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 に答える