Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 地点经理';s在Android中的位置返回null_Java_Android_Location_Locationmanager - Fatal编程技术网

Java 地点经理';s在Android中的位置返回null

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_提供程序,它可以工作

我正在一台设备上测试我的Android应用程序,当我使用它时,它总是失败

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的工作原理。它被启用后,也会给出空值