getLastKnownLocation持续返回null,权限似乎没问题,方法也都是烂熟的方法,真机测试(无SIM卡,百度地图可以正常网络定位),API 4.4.2,minSDK=8,(真机2.3.6),provider得到的是“network”,但getLastKnownLocation就是返回null,还有哪里可能引起这个null呢?实在没招了~
权限设置:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name = "android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
经典代码段:
// 1. 获得经纬度位置
String context = Context.LOCATION_SERVICE;
LocationManager locationManager = (LocationManager) getSystemService(context);
// 设置位置服务信息
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(false);
criteria.setPowerRequirement(Criteria.POWER_LOW);
// 取得效果最好的位置服务
String provider = locationManager.getBestProvider(criteria,
true);
locationManager.requestLocationUpdates(provider, 1000, 0,
locationListener);
Location location = locationManager
.getLastKnownLocation(provider);
while (location == null) {
locationManager.requestLocationUpdates(provider, 1000, 0,
locationListener);
}
------解决思路----------------------
楼主确定手机 GPS 功能打开了么,没有 SIM 卡肯定取不到 network 类型的位置的。
------解决思路----------------------
getLastKnownLocation经常取不到东西的,使用百度定位SDK吧,比较靠谱
------解决思路----------------------
基站定位、GPS定位、WIFI定位,实在不行还可以通过IP地址定位呢
------解决思路----------------------
getLastKnownLocation是指之前有成功定位过才会有值,而且值也不是那么准的。
------解决思路----------------------
这个,在屋里测试的时候很难拿到,建议到外面空旷的地方,才有可能拿到