我希望有人能夠對此有所瞭解。我試圖弄清楚爲什麼突然之間我2.2的代碼不能在2.3下工作。我有點困惑。這是一直在工作的代碼,但現在拋出一個空指針異常。Android地理位置在2.2中可用,但不是2.3
@Override
public void onStart(Intent intent, int startId) {
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location l){
Log.i("MYSERVICE", "LocationChanged " + l);
}
public void onStatusChanged(String provider, int status, Bundle Extras) {}
public void onProviderEnabled(String provider){
Log.i("MYSERVICE", "ProviderEnabled " + provider);
}
public void onProviderDisabled(String provider) {}
};
lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
super.onStart(intent, startId);
String location = getLocation();
}
public String getLocation() {
String provider = LocationManager.GPS_PROVIDER;
Location location = lm.getLastKnownLocation(provider);
Double lat = location.getLatitude();
Log.i("lat", lat.toString());
double lng = location.getLongitude();
String writeString = lat+"&"+lng;
return writeString;
}
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
我也在使用2.3模擬器。任何幫助將不勝感激,歡呼!
這是錯誤的。從[文檔](http://developer.android.com/reference/android/location/LocationManager.html):如果minTime大於0,LocationManager可能會在位置更新之間休息minTime毫秒以節省電量。如果minDistance大於0,則只有當設備通過minDistance米移動時纔會廣播位置。 **要儘可能頻繁地獲得通知,請將這兩個參數設置爲0。** – 2012-03-29 15:40:54
爲什麼您投票否定?是的,確實要儘可能頻繁地獲得通知,你必須設置爲0,但在2.3薑餅不工作!我嘗試過,並在2.2(Froyo)工作,但在2.3沒有奏效。 – Alin 2012-04-03 09:44:41
我投票因爲它做了工作。它可以在模擬器上運行,它可以在我的設備上運行,並且可以根據從API級別1開始運行的文檔。如果您要聲明文檔錯誤,最好提供一些證據。否則,最好假設代碼有錯或設備出錯。 – 2012-04-06 19:57:29