getLastKnownLocation不适用于三星Galaxy S3 4.0.4

时间:2012-10-22 18:13:14

标签: android location

我有一些已经工作多年的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,它似乎更加困惑)

有关正在发生的事情的任何想法?错误/功能?

我发现其他人遇到类似问题No GPS location updates on Galaxy S3

2 个答案:

答案 0 :(得分:1)

这与Android版本无关,我将此代码用于Galaxy Nexus 4.2.2而不是S3 4.1和Sony XPeria S 4.0.4

我怀疑GPS位置没有检测到你(这需要时间和良好的GPS信号),在我的应用程序中,当我发现GPS没有响应或未启用时我切换到网络检测(~45Metres的精度不是那个我的情况不好,我必须搜索半径为10公里的设备)

答案 1 :(得分:0)

我将手机升级到4.1,错误/功能消失了。