我正在尝试获取我的 android 手机的当前位置并在吐司中显示经度和纬度。这是我写的一个函数。在调试代码时,我看到控件永远不会进入 onLocationChanged 函数。
从下面的android文档看起来,当我调用“locationMgr.requestLocationUpdates”时,它应该调用回调函数onLocationChanged。但这似乎并没有在我的代码中发生。 http://developer.android.com/training/basics/location/currentlocation.html
我检查了我的手机是否打开了 GPS。我无法弄清楚以下代码中有什么问题。请帮忙。
public void getCurrentLocation(){
LocationManager locationMgr;
locationMgr = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener listener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
// A new location update is received. Do something useful with it
String latitude = "latitude: " + location.getLatitude();
String longitude = "longitude: " + location.getLongitude();
String toastString = "location is" + latitude + "," +longitude;
Toast.makeText( getApplicationContext(),toastString,Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderDisabled(String provider) {
// No code here
}
@Override
public void onProviderEnabled(String provider) {
// No code here
}
@Override
public void onStatusChanged(String provider, int status,Bundle extras)
{
// No code here
}
};
locationMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER,0, 0, listener);
}
我的清单文件中也有以下两行。
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
谢谢您的帮助。
我正在使用 Eclipse,而我的手机(操作系统:Thunderbolt)的 API 级别为 15,目标为 4.0.4。