【发布时间】:2013-03-11 23:30:06
【问题描述】:
我正在真实设备上测试我的应用,并在 GPS 开启时获取null 位置。当我使用虚拟坐标在模拟器上进行测试时,它工作正常。怎么了?
locationManager = (LocationManager) context.getSystemService(context.LOCATION_SERVICE);
listener = new MyLocationListener();
viaGps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
viaNetwork = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!viaGps && !viaNetwork) {
tracking = false;
} else {
if (viaGps) {
Log.d("", "gps is on");
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener);
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}else if (viaNetwork) {
Log.d("", "network is on");
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, listener);
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
if (location == null) {
Log.d("", "location not fouond");
}
【问题讨论】:
-
最后已知位置可以为空,但您应该在 LocationListener 中获取位置修复,
-
你手机里有sim卡吗?
-
是的,我的手机里确实有 sim 卡
-
@vmerror 但为什么会这样。我的意思是在模拟器中给出虚拟坐标之前,最后一个已知位置可能为空,这也很有意义。但在真实设备中,有可用的真实坐标。那么为什么我最后一个已知位置为空
-
答案可以在这里找到:stackoverflow.com/a/12238356/1199267
标签: android