2016-09-25 36 views
0

問題是自我解釋。在調試時,我看到該位置爲空。請建議進一步分類。gps.getLasknowlocation甚至在設置位置之後在模擬器中返回null?

locationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE); 

      // getting GPS status 
      isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); 

....

// if GPS Enabled get lat/long using GPS Services 
       if (isGPSEnabled) { 
        if (location == null) { 
//      locationManager.requestLocationUpdates(
//        LocationManager.GPS_PROVIDER, 
//        MIN_TIME_BW_UPDATES, 
//        MIN_DISTANCE_CHANGE_FOR_UPDATES, this); 



       if (locationManager != null) { 
         location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
         if (location != null) { 
          latitude = location.getLatitude(); 
          longitude = location.getLongitude(); 
         } 
        } 
       } 
      } 

在調試我看到gpsEnabled是alwaysreturned假的。 GPS在模擬器上打開

回答

0

您正在使用模擬器。它尚未請求位置,因此您需要撥打requestLocationUpdates()requestSingleUpdate(),以便它存儲設備的位置。

另一種方法是嘗試點擊仿真器右側的菜單,看起來像三個點,然後轉到位置部分。如果你在那裏輸入經緯度並點擊「發送」,這是否有效?

+0

更新了我的問題 –

+0

問題在於您正在使用模擬器。更新我的回答 –

+1

我試圖用你認爲的方式,即使是地圖等待的位置。 –

1

基於代碼,我假設你使用的GPSTracker或它的一些派生(你不應該破壞代碼)。如果是這樣,那麼gpsEnabled值只是告訴你它是否可以使用GPS,而不是它是否真正在使用GPS並且能夠立即給你一個值。

+0

問題仍然存在,爲什麼它是錯誤的。模擬器肯定是有能力的GPS所以它應該是真正的rt?除非在仿真器中有一些配置 –

相關問題