我正在尝试在不使用GPS的情况下创建位置检测器。但是LocationManager.NETWORK_PROVIDER没有触发onLocationChanged。可以建议吗?
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0, 0, this);
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
getlocation= may();
longitude =getlocation.getLongitude(); //location.getLongitude();
latitude = getlocation.getLatitude();//location.getLatitude();
String str = "Latitude: " + latitude + "Longitude: " + longitude;
Toast.makeText(getBaseContext(), str, Toast.LENGTH_LONG).show();
}
@Override
public void onProviderDisabled(String arg0) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String arg0) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
// TODO Auto-generated method stub
}
答案 0 :(得分:0)
对于一个你似乎没有对OnLocationChanged方法中的实际位置对象的引用。此外,由于NETWORK_PROVIDER如此不准确,您将不得不长途跋涉注册任何位置变化,而某些广播塔根本不提供位置服务。
我的建议是使用LocationManager.getLastKnownLocation来提供初始修复。但是,您需要等待很长时间才能找到没有gps的新位置
LocationManager文档:http://developer.android.com/reference/android/location/LocationManager.html#getLastKnownLocation(java.lang.String)