2013-03-23 5 views
1

내 위치 (위도와 경도)를 찾기 위해이 코드를 사용했지만 때때로이 코드는
(10 초)으로 응답하고 때로는 10 분 이상 지연됩니다. 어디에 문제가 있습니까?위치 찾기 응답

public class MainActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     LocationManager locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
     locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10L, 
       5.0f, locationListener); 
    } 

    private void updateWithNewLocation(Location location) { 
     TextView myLocationText = (TextView) findViewById(R.id.text); 
     String latLongString = ""; 
     if (location != null) { 
      double lat = location.getLatitude(); 
      double lng = location.getLongitude(); 
      latLongString = "Lat:" + lat + "\nLong:" + lng; 

     } else { 
      latLongString = "No location found"; 
     } 
     myLocationText.setText("Your Current Position is:\n" + latLongString); 
    } 

    private final LocationListener locationListener = new LocationListener() { 

     @Override 
     public void onLocationChanged(Location location) { 
      updateWithNewLocation(location); 
     } 

     @Override 
     public void onProviderDisabled(String provider) { 
      updateWithNewLocation(null); 
     } 

     @Override 
     public void onProviderEnabled(String provider) { 
     } 

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

} 

답변

1

위치를 가져 오는 데 GPS_PROVIDER를 사용하고 있습니다.

GPS->이 공급자는 위성을 사용하여 위치를 결정합니다. 조건에 따라,이 공급자는 위치 픽스를 반환하고 약 20 피트에 대한 정확한 결과를 제공하는 데 시간이 걸릴 수 있습니다. 당신이 사용할 수있는

또 다른 제공자는 NETWORK_PROVIDER입니다. 이 제공 업체는 셀 타워 및 WiFi 액세스 포인트의 가용성을 기반으로 위치를 결정하고 약 200 피트의 정확한 결과를 제공하며 GPS_PROVIDER보다 적은 메모리를 사용합니다. NETWORK_PROVIDER에 대한 허가 사용

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />