2014-03-26 2 views
0

경도와 위도를 가져오고 싶지만 네트워크 제공 업체와 gps 제공 업체를 모두 사용하여이 코드를 작성했습니다. 내 위치가 null입니다. gps가 활성화 된 경우에도 ... 왜 그렇습니까?Android 네트워크 제공 업체 및 GPS 제공 업체가 null을 반환합니다.

 boolean isGPSEnabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER); 
     boolean isNetworkEnabled = lm 
       .isProviderEnabled(LocationManager.NETWORK_PROVIDER); 
     Location location = null; 
     if (!isGPSEnabled && !isNetworkEnabled) 
     { 
     } 
     else if(isGPSEnabled) { 
      location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
      if(location == null) 
      {     
       if(isNetworkEnabled) 
        location =         lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);     
       if(location == null) 
       { 
       } 
      } 
     } else if(isNetworkEnabled){ 
      location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
      if(location == null) 
      { 
      } 
     } 
+0

중복 질문 http://stackoverflow.com/questions/12597076/network-provider-and-gps-provider-returning-null-values?rq=1 – Tugrul

+0

안드로이드의 새 버전에 뭔가가있다. .. 기기 또는 에뮬레이터를 사용하고 있습니까? 기기의 버전이 무엇인지 확인합니다. –

+0

소니 핸드셋 – user3278732

답변

0

공동 좌표를받지 못하고 여러 이유가 있지만 gps이 (remember gps takes alot of time to get coordinates)를 활성화하고 코드에서 처음으로 GPS를 검사하기 때문에, 당신의 넣다, 그것은 이동하지 않습니다 network 부분을 사용하고 있기 때문에 else.so를 사용하여 코드를 변경하고 먼저 네트워크를 확인하십시오.

if (!isGPSEnabled && !isNetworkEnabled) 
     { 
     } 
     else if(isNetworkEnabled){ 
      location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
      if(location == null) 
      { 
      } 
     } 
     else if(isGPSEnabled) { 
      location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
      if(location == null) 
      {     
       if(isNetworkEnabled) 
        location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);     
       if(location == null) 
       { 
       } 
      } 
     } 
+0

내 오류가 소니 핸드셋에있는 것처럼 보입니까? 모든 경우에 나는 0 - 0을 얻습니다. – user3278732

관련 문제