2014-03-26 110 views
0

我已經完成了這個代碼,我想獲得經度和緯度,但同時使用網絡提供商和GPS提供商我得到我的位置爲空。即使GPS啓用...爲什麼這樣?Android網絡提供商和GPS提供商返回空

 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

也有一些是在Android的新版本。 你使用的是設備還是仿真器。如果設備是什麼版本。 –

+0

它的索尼手機 – user3278732

回答

0

有沒有得到合縱線幾個原因,但櫃面你的,因爲你的gps啓用(remember gps takes alot of time to get coordinates),你在你的代碼首先檢查GPS,它是不會去network部分因爲您使用if 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