2012-01-06 6 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); 

は、私はすべての60000ミリ秒内を要求し、更新するために、requestlocationupdates方法を設定している

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(); 


    } 

}

をonlocationchanged 私の問題は、場所が変わったときにアプリケーションがlat値とlng値を決して賞賛しないということです。私はエミュレータでアプリをテストし、latとlngの値をtelnetingしようとしました。そして私は値が変わるかどうかを調べるために私の車の中を運転しました。

答えて

2

試してみてください。

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

とあなただけ使用することができ、テストのために:

requestLocationUpdates(LocationManager.GPS_PROVIDER... 
+0

おかげで、私は.GPS_PROVIDERを使用する必要がありますか私は、デバイスができる最善のプロバイダを使用することができ、それは完全に働いたgoodm見つける?もう一度歓迎します –

+0

私はGPS_Providerを使って実際に動作していることを確認できます。それが助けてくれたら、私の答えを "アップ"できますか? – goodm

関連する問題