运行速度监控应用程序帮助

时间:2018-07-25 20:48:29

标签: java android

我正在尝试编写一个应用程序,该应用程序可以持续监视我的运行速度,并告诉我如果运行缓慢则要加快速度,反之亦然。我的代码没有错误,但是我的TextView文本没有更改,这与我的代码所假定的一样。请看一下我的mainActivity.java代码:

package com.example.kaushik.speed_measurement;

import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.speech.tts.TextToSpeech;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
import java.util.Locale;

public class MainActivity extends AppCompatActivity implements LocationListener {

TextToSpeech toSpeech;
int status;
String text;
String text1;

@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);

    LocationManager lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

        return;
    }
    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
    this.onLocationChanged(null);
    toSpeech=new TextToSpeech(MainActivity.this, new TextToSpeech.OnInitListener(){
        @Override
        public void onInit(int i) {
            if ( status ==TextToSpeech.SUCCESS) {
                toSpeech.setLanguage(Locale.UK);

            }

            else{
                Toast.makeText(getApplicationContext(), "Feature not supported",
                        Toast.LENGTH_SHORT).show();
            }
        }
    });
}

@Override
public void onPointerCaptureChanged(boolean hasCapture) {

}

@Override
public void onLocationChanged(Location location) {
    TextView txt = (TextView) this.findViewById(R.id.speed);
    if (location==null){
        txt.setText("-,- m/s");
    }
    else{
        float nCurrentSpeed=location.getSpeed();
        txt.setText(nCurrentSpeed + "m/s");

        if (nCurrentSpeed<5) {
            TextView txt1 = (TextView) this.findViewById(R.id.message);
            txt.setText("Speed up!");
            text = ("Speed up");
            toSpeech.speak(text, TextToSpeech.QUEUE_FLUSH,null);

        }

        else{

            TextView txt1 = (TextView) this.findViewById(R.id.message);
            txt1.setText("Slow down");
            text1 = ("Slow down");
            toSpeech.speak(text1, TextToSpeech.QUEUE_FLUSH,null);
        }
    }

}

@Override
public void onStatusChanged(String s, int i, Bundle bundle) {

}

@Override
public void onProviderEnabled(String s) {

}

@Override
public void onProviderDisabled(String s) {

}
}

0 个答案:

没有答案