0

私はこのコードを持っています:

Location newLocation = new Location(LocationManager.GPS_PROVIDER);
Location oldLocation = new Location(LocationManager.GPS_PROVIDER);
float distanceTravelled=0;

onLocationChanged:

@Override
public void onLocationChanged(Location location) 
{
    oldLocation.set(newLocation);
    startactivity();
    distanceTravelled+=newLocation.distanceTo(oldLocation);
    String stringDistance= Float.toString(distanceTravelled);
    TextView distance = (TextView) findViewById(R.id.textDistance);
    distance.setText(stringDistance);
}

開始アクティビティ:

public void startactivity() 
{
    GPSTracker gps = new GPSTracker(Live.this);

    if(gps.canGetLocation())
    {
        double latitude = gps.getLatitude();
        double longitude = gps.getLongitude();
        Toast.makeText(getApplicationContext(), "Your Location is: \nLat: " + latitude + "\nLong: " + longitude, Toast.LENGTH_LONG).show();

        newLocation.setLatitude(latitude);
        newLocation.setLongitude(longitude);    
    }
    else
    {
        gps.showSettingsAlert();
    }

}

GPSTracker は、現在の緯度と経度を取得する別のクラスです (正常に動作しています!)。

最小で GPS 更新。距離5メートル以上。時間5秒。

これが私の完全な GPSTracker クラスです: GPSTracker.java

マニフェストに 3 つのアクセス許可を追加しました: 細かい、粗い、インターネットです。

私の問題は、 onLocationChanged 内のテキストビューが変更されないことです。

何が問題ですか?onLocationChanged が呼び出されていませんか、それとも何らかの論理エラーがありますか (距離は常にゼロのままです)?

そして、それを修正する方法は?

4

1 に答える 1