2012-02-21 3 views
1

실외에 나가지 않고도 위도Lng를 얻을 수 있습니까? 나의 현재 상황은 사용자가 자신의 위치를 ​​얻으려면 야외 활동을해야하고, 길 찾기를하려면 꽤 오랜 시간이 걸릴 것입니다. 내 사용자가 자신의 위치를 ​​실내에서 찾을 수 있기를 바랍니다.Android : 위도와 경도 받기

+0

왜 사용자는 자신의 위치를 ​​알기 위해 야외 활동이 필요합니까? 네트워크 문제입니까? – noob

+0

@Creator GPS는 옥외에서 충분히 잘 작동하며 위성에서 데이터를 가져 오는 명확한 경로가 필요합니다. 실내에있을 때 지붕과 벽이있어 경로가 차단되고 위성에서 데이터를 가져올 수 없습니다. – J1and1

답변

0
, 다음 코드에서 힌트 걸릴 네, 가능

:

try { 
      gps_enabled = locManager.isProviderEnabled(LocationManager.GPS_PROVIDER); 
     } catch (Exception ex) { 
     } 
     try { 
      network_enabled = locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); 
     } catch (Exception ex) { 
     } 

     if (!gps_enabled && !network_enabled) { 
      // show alert 
     } 
     if (network_enabled) { 
      locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locListener); 
     } 
     if (gps_enabled) { 
      locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener); 
     } 
+0

감사합니다. 설명이 잘되어 있습니다. – DroidMatt

0

예, 가능합니다. 문 내부에서 네트워크를 얻는 중입니다. 그래서 GPS Co-Ordinates를 얻기 위해 LocationManager.NETWORK_PROVIDER을 사용할 수 있습니다.

이 부분을 보시려면 answer을 클릭하십시오.

0

사용중인 GPS 제공 업체에 따라 다르며 위치를 수정하기 위해 신호를 사용할 수 있으므로 GPS 공급자 만 사용하고 있으므로 도어가 작동하지 않는 것으로 간주하여 네트워크 제공 업체를 사용해보십시오.

또한 gps fixes location에 의해 마지막으로 알려진 위치를 사용하십시오. 가장 빠른 위치를 가져 오는 좋은 블로그가 있습니다.

android-developers.blogspot.in/2011/06/deep-dive-into-location.html

0
LocationManager locManager; 
    Location location; 
double lat; 
double lng; 
    try { 
       gps_enabled = locManager.isProviderEnabled(LocationManager.GPS_PROVIDER); 
      } catch (Exception ex) { 
      } 
      try { 
       network_enabled = locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); 
      } catch (Exception ex) { 
      } 

      if (!gps_enabled && !network_enabled) { 
       // show alert 
      } 
      if (network_enabled) { 
        locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);     
       locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000,1, locationListener); 
       location = locManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
      lat = location.getLatitude(); 
      lng = location.getLongitude(); 
      } 
      if (gps_enabled) { 
       locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);    
       locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,1, locationListener); 
       location = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
      lat = location.getLatitude(); 
      lng = location.getLongitude(); 
      } 
관련 문제