2017-05-25 48 views
1

我創建了一個小應用來測試codenameone的GPS功能,但發現它永遠不會給Available狀態,只有Temporarily UnavailableLocationManager永遠不會提供GPS的可用狀態 - Codenameone

對於我的小測試程序,相關的代碼如下:

private void doRetrieveLocationAction() { 
    try { 
     Location location = LocationManager.getLocationManager().getCurrentLocation(); 
     taLocationDisplay.setText(getGPSDetails() + "\n : " + location.toString()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     taLocationDisplay.setText("Error retrieving location:" 
       + "\n" 
       + getGPSDetails() 
       + "\n " + e.getMessage()); 
     ToastBar.showErrorMessage("Error retrieving location:" 
       + "\n" 
       + getGPSDetails() 
       + "\n " + e.getMessage(), 5000); 
    } 
} 

private String getGPSDetails() { 
    StringBuilder sb = new StringBuilder(); 
    sb.append("isEnabled: ").append(LocationManager.getLocationManager().isGPSEnabled()); 
    sb.append("\nisGPSDetectionSupported: ").append(LocationManager.getLocationManager().isGPSDetectionSupported()); 
    sb.append("\ngetStatus: ").append(LocationManager.getLocationManager().getStatus()); 
    return sb.toString(); 
} 

狀態是整數,在codenameone源代碼分配以下值:

public static final int AVAILABLE = 0; 
public static final int OUT_OF_SERVICE = 1; 
public static final int TEMPORARILY_UNAVAILABLE = 2; 

我能得到什麼當GPS關閉時:

[1]: GPS is Off

我的GPS後,立即得到被打開:

Immediately after GPS is turned on

我能得到什麼後我等了一下:

GPS turned on and waited

這些結果表明,地位永遠不會改變。什麼時候該地位應該改變,我該如何使用這種狀態?我如何知道GPS何時可以工作?

這是正在上Android

回答

0

測試的GPS將是默認關閉的,除非你明確地試圖通過一個傾聽者結合位置事件得到「真實」的位置。所以你通常得到的是混合位置,而不是GPS位置。

相關問題