我想获取我的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);
}
我在Manifest文件中也有以下两行。
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
谢谢你的帮助。
我使用Eclipse和我的手机(操作系统:Thuderbolt)的API级别为15,目标为4.0.4。
有时重新启动设备会有所帮助。只要检查是否有帮助。 – 2013-05-01 02:25:03
感谢您的及时回复。我试过重新启动我的手机。它仍然不起作用。 – user1549994 2013-05-01 03:24:26