我有一些已经工作多年的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
答案 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,错误/功能消失了。