我想獲取我的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