gps.getLasknowlocation即使在设置位置后仍在模拟器中返回null?

时间:2016-09-25 13:42:22

标签: android gps android-emulator

问题是自我解释。在调试时,我将位置视为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总是返回false。 GPS在模拟器上打开

2 个答案:

答案 0 :(得分:1)

根据代码,我假设您正在使用GPSTracker或其衍生物(您不应该破坏该代码)。如果是这样,gpsEnabled值只是告诉你它是否可以使用GPS,而不是它是否真正开启并且能够立即为你提供价值。

答案 1 :(得分:0)

您正在使用模拟器。它尚未请求位置,因此您需要致电requestLocationUpdates()requestSingleUpdate(),以便存储设备的位置。

另一种方法是尝试单击模拟器右侧看起来像三个点的菜单,然后转到“位置”部分。如果你在那里输入纬度​​和经度,然后点击"发送",那有效吗?