2012-01-06 159 views
3

嘿傢伙我只是測試了Android中的onLocationChanged方法,我實現了一種方式,當我單擊按鈕時,應用程序返回一個帶有新的lat和lng值的String。但是現在我試圖在每次位置變化時自動顯示結果。這是我迄今爲止這樣做:位置更改通知android

位置管理

public void onCreate(Bundle savedInstanceState) 
{ 
super.onCreate(savedInstanceState); 

int minTime = 30000; 
LocationManager locationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE); 
Criteria criteria = new Criteria(); 
MyLocationListener myLocListener = new MyLocationListener(); 
criteria.setPowerRequirement(Criteria.POWER_LOW); 
criteria.setAccuracy(Criteria.ACCURACY_FINE); 
criteria.setAltitudeRequired(false); 
criteria.setBearingRequired(false); 
criteria.setCostAllowed(true); 
criteria.setSpeedRequired(false); 
String bestProvider = locationManager.getBestProvider(criteria, false); 

locationManager.requestLocationUpdates(bestProvider, minTime, 1, myLocListener); 

onlocationchanged

public void onLocationChanged(Location loc) { 

    if(loc != null){ 

    lat1 = loc.getLatitude(); 
    lng1 = loc.getLongitude(); 

    currentlocation = "Location changed to lat: " + lat + "" + "lng: " + lng1 ; 

    Context context = getApplicationContext(); 
    CharSequence text = currentlocation; 
    int duration = Toast.LENGTH_LONG; 

    Toast toast = Toast.makeText(context, text, duration); 
    toast.show(); 


    } 

}

我已經設置了requestlocationupdates方法來請求和更新每60000個millseconds 我的問題是,應用程序永遠不會爲位置更改時的lat和lng值生成敬酒。我已經使用模擬器測試了應用程序,並嘗試通過lat和lng值。我也開着車在車裏看看價值觀是否改變。

回答

2

嘗試:

currentlocation = "Location changed to lat: " + String.valueOf(lat1) + "" + "lng: " + String.valueOf(lng1) ; 

和測試,你可以只使用:

requestLocationUpdates(LocationManager.GPS_PROVIDER... 
+0

謝謝goodm它的工作完美,我一定要使用.GPS_PROVIDER或者我可以用最好的供應商的設備可以找 ?再次歡呼 – 2012-01-06 17:26:03

+0

你可以使用你的一個,我使用GPS_Provider來檢查它是否真的有效。如果它有幫助,你能「上」我的回答:) – goodm 2012-01-07 11:41:43