我开发了一款Android应用,可以在谷歌地图中显示设备的当前位置。在我的中兴智能a7(Android 2.3.2)中,没有什么新东西可以完美运行。但在我的新设备LG Maximo G(Android 4.1.2)中,无法获得位置。换句话说,LocationManager始终为null。任何人都知道为什么会出现在这个特定的设备/ Android操作系统版本?
要启动侦听器,我使用以下代码
public void startListeners() {
//Test if locatioManager is null
if( this.lm.isProviderEnabled(LocationManager.GPS_PROVIDER)){
this.lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 500L, 1F,this.currentListener);
}
if( this.lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){
this.lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 500L, 1F,this.currentListener);
}
if(this.lm.getLastKnownLocation(LocationManager.GPS_PROVIDER) != null) {
this.lastLocation = this.lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}
if(this.lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER) != null) {
if( this.lastLocation != null){
if( this.lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER).getAccuracy() > this.lastLocation.getAccuracy() ){
this.lastLocation= this.lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
} else{
this.lastLocation = this.lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
}
}
谢谢你们。
答案 0 :(得分:0)
如果是新设备,您是否尝试过设置>位置>从Wifi&网络?如果这是问题,您应该经常检查用户是否启用了它,如果没有,您应该将它们带到设置菜单,以便启用它。
另外,像Bobbake4所说,尝试使用新的LocationClient API。