2017-05-25 52 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位置。