我有一些已经工作多年的 getLastKnowLocation 代码,但它不适用于三星 Galaxy S3 4.0.4。
Location location = null;
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, true);
// The S3 returns null here (even though location is enabled), google maps works.
try {
location = locationManager.getLastKnownLocation(provider);
} catch (IllegalArgumentException e) {
}
if ( location == null ) { // only S3 gets this....
location = locationManager.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER);
}
我注意到,如果我添加 PASSIVE_PROVIDER,我确实得到了一个位置,但我从来没有得到任何 onLocationChanged。相同的代码适用于我从 2.1 到 4.1 测试过的所有系统(除了我的 CM10,它看起来更加混乱)
关于发生了什么的任何想法?错误/功能?
我发现其他人有类似问题Galaxy S3 上没有 GPS 位置更新