2014-12-29 1 views
1

네트워크 및 Gps를 확인하는 첫 번째 활동으로 애플리케이션을 개발 중이며 적어도 네트워크가있는 경우 현재 위치를 얻으려고 시도합니다 (특별한 정확도가 필요하지 않음). WIFI 모드에서는 모든 것이 완벽하게 작동합니다. GPS 모드 (사용 가능한 경우)에서도 모든 것이 완벽합니다. 문제는 모바일 인터넷 (WIFI/GPS 없음)입니다. 이 모드에서 onLocationChanged 메소드는 위치 요청이 시작된 직후에 약간의 좌표를 제공합니다. 정확도는 매우 나쁘다. 문제는 WIFI와 모바일 인터넷의 차이점을 찾을 수 없다는 것입니다.Android : 모바일 인터넷 (NETWORK_PROVIDER)을 사용하여 위치 찾기

용맹 한 코드

private void startLocationListeners(){ 
    try 
    { 
     if (isNetworkEnabled) 
     { 
      if (isGPSEnabled) 
      { 
       locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0, locationListener); 
       Log.d("TAG", "GPS"); 
       } 

      else{ 
       locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0, locationListener); 
       Log.d("TAG", "Network"); 
       } 
      } 
     } 

    catch (Exception e) 
     { 
     Log.e("Error TAG : LocationManager", "problem", e); 
     } 
} 

.. 그리고 여기에 onLocationchanged

public void onLocationChanged(Location location) { 
      stopLocationListeners(); 
      coordinates=String.valueOf(location.getLatitude())+","+String.valueOf(location.getLongitude()); 
      Toast.makeText(context, coordinates, Toast.LENGTH_SHORT).show(); 
      startCamera(); 
      } 
    }; 

어떤 제안?

답변

0

실제로 테스트를 위해 wifi를 끄시겠습니까? 그렇다면 이것은 정확히 예상되는 행동입니다.

네트워크 위치 검색은 인터넷에 "다음 WiFi 네트워크 및 셀 타워를 볼 수 있으며, 내가 어디에 있는지 말해 줄 수 있습니까?"라는 요청을 전송합니다. 와이파이가 켜지면 많은 네트워크가 생기고 와이파 이는 단거리 신호이기 때문에 위치에 대한 좋은 아이디어를 얻을 수 있습니다. 무선 랜을 끄면 셀 타워의 위치가 모두 파악되어 훨씬 더 멀리 떨어져 정확도가 떨어집니다.

+0

이미 확인했습니다. 같은 문제. 나쁜 모바일 인터넷 리셉션이 문제가 될 수 있습니까? 또한, 나는 위치를 얻을 때, 때로는 onLocationChanged()가 한 번 이상 트리거된다는 것을 logcat에서 알았다. stopLocationListeners() 메서드를 사용하여이를 방지하고 단일 위치를 가져 오지만 작동하지 않습니다. – Vissarionas

관련 문제