【发布时间】:2012-06-10 22:04:18
【问题描述】:
我正在尝试使用 LocationManager 和 LocationListener 获取 android 中的当前位置,如http://developer.android.com/guide/topics/location/obtaining-user-location.html 所述
但是,永远不会调用 LocationListener 的 onLocationChanged 方法。我使用的是真正的安卓手机/也使用了模拟器,并使用 telnet 更改了模拟位置,如上面的链接中所述。
这是我的代码:
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* Use the LocationManager class to obtain GPS locations */
LocationManager mlocManager = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new CustomLocationListener(
getApplicationContext());
// Location Providers
String locationProvider = LocationManager.NETWORK_PROVIDER;
// LocationProvider locationProvider = LocationManager.GPS_PROVIDER;
mlocManager
.requestLocationUpdates(locationProvider, 0, 0, mlocListener);
}
}
还有我的 LocationListener:
public class CustomLocationListener implements LocationListener {
private Context m_context;
public CustomLocationListener(Context context) {
m_context = context;
}
@Override
public void onLocationChanged(Location location) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
String Text = latitude + " " + longitude;
Toast.makeText(m_context, Text, Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderDisabled(String provider) {
// TODO
}
@Override
public void onProviderEnabled(String provider) {
// TODO
}
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {}
}
所以永远不会调用 onLocationChanged。 任何人都可以看到问题吗? 非常感谢
【问题讨论】:
-
您是否在手机上启用了 GPS 服务并确认您应该有一个位置? (等待几分钟不是确认,如果您在服务差的地区,30 分钟可能还不够......)
-
想问一下:你有清单中指定的位置权限吗?
-
@dymmeh 是的,我在清单中添加了权限
-
@Sam 我不明白 NETWORK_PROVIDER 不使用手机的 gps
-
@DanDinu 对不起,我读错了你的问题。如您所知,网络位置不需要启用 GPS 服务,它需要启用网络提供商。运气好能解决你的问题吗?您的代码看起来不错。
标签: android geolocation locationmanager