Java 地点经理';s在Android中的位置返回null
我正在一台设备上测试我的Android应用程序,当我使用它时,它总是失败Java 地点经理';s在Android中的位置返回null,java,android,location,locationmanager,Java,Android,Location,Locationmanager,我正在一台设备上测试我的Android应用程序,当我使用它时,它总是失败 locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); currentLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 但是,如果我使用网络_提供程序而不是GPS_提供程序,它可以工作
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
currentLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
但是,如果我使用网络_提供程序而不是GPS_提供程序,它可以工作。currentLocation返回null
我该怎么办?我需要在我的locationListener中添加任何特定内容吗
谢谢 首先,检查设备状态栏上的GPS图标是否已停止闪烁,表示您实际拥有GPS锁
如果当前不知道位置,例如,如果您缺少GPS锁,则调用将返回null。GPS\U提供程序可能无法在有边界的地方工作,假设在房子内或类似的地方。您应该以这样一种方式对其进行编程,即如果gps提供商提供空位置,则您可以使用网络提供商作为替代方案,尽管其精度不高。 这里还有一个问题。您的代码应如下所示:
if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)
{
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
currentLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}
有没有办法通过编程方式保护GPS锁?GPS锁意味着设备已成功从GPS卫星获取位置。因此,当你要求GPS定位时,设备开始连接到卫星,这需要一些时间,如果你在室内,可能根本不会成功。我建议您在匆忙开发之前,先使用手机上现有的GPS应用程序,以基本了解GPS的工作原理。它被启用后,也会给出空值