0
package com.example.ritwik.letswalk;

import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements SensorEventListener{


    TextView tv_steps;

    SensorManager sensorManager;
    boolean running=false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    tv_steps=(TextView) findViewById(r.id.tv_steps);
    sensorManager=(SensorManager) getSystemService(Context.SENSOR_SERVICE);
    }
    @Override
    protected void onResume()
    {
        super.onResume();
        running=true;
        Sensor countSensor=sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
        if(countSensor==null){
            sensorManager.registerListener(this, countSensor, SensorManager.SENSOR_DELAY_UI);
        }
        else
            Toast.makeText(this, "Sensor Not Found",Toast.LENGTH_SHORT).show();
    }
    @Override
    protected void onPause()
    {
        super.onPause();
        running=false;
    }
    @Override
    protected void onSensorChangeed(SensorEvent event)
    {
        if(running)
        {
            tv_steps.setText(String.valueOf(event.values[0]));
        }
    }
}

the code has the following errors

Error:(21, 15) error: cannot find symbol class TextView Error:Execution failed for task ':app:compileDebugJavaWithJavac'. Compilation failed; see the compiler error output for details. Error:(12, 5) error: cannot find symbol class TextView Error:(43, 37) error: cannot find symbol class SensorEvent Error:(11, 8) error: MainActivity is not abstract and does not override abstract method onAccuracyChanged(Sensor,int) in SensorEventListener Error:(21, 39) error: package r does not exist Error:(42, 5) error: method does not override or implement a method from a supertype

lbusett
  • 5,801
  • 2
  • 24
  • 47

2 Answers2

1

SensorEventListener has two abstract methods :

1) onAccuracyChanged(Sensor sensor, int accuracy) 2) onSensorChanged(SensorEvent event)

You need to override onAccuracyChanged method too.

  @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {

    }

This method is called when the accuracy of sensor changes. If you don't wish to do anything here then do not write any code here. But since its abstract you need to implement it.

Hope it helps.

mudit pant
  • 104
  • 3
0

In my pedometer app I did

 public void onSensorChanged(SensorEvent event) {
        Sensor sensor = event.sensor;
        float[] values = event.values;


        if (values.length > 0) {
            value = (int) values[0];
        }

        if (sensor.getType() == Sensor.TYPE_STEP_COUNTER) {
            textView.setText("" + value);
        }
    }


public void onAccuracyChanged(Sensor sensor,int a){}

If you want the whole code: Here it is:

import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;


public class CounterActivity extends Activity implements SensorEventListener {

    private TextView textView;
    private SensorManager mSensorManager;
    private Sensor mStepCounterSensor;
    private Sensor mStepDetectorSensor;
    int value = -1; //Step Counter

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.counter_activity);
        textView = (TextView) findViewById(R.id.steps);

        mSensorManager = (SensorManager)
                getSystemService(Context.SENSOR_SERVICE);
        mStepCounterSensor = mSensorManager
                .getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
        mStepDetectorSensor = mSensorManager
                .getDefaultSensor(Sensor.TYPE_STEP_DETECTOR);
    }

    public void onAccuracyChanged(Sensor sensor,int a){}

    public void onSensorChanged(SensorEvent event) {
        Sensor sensor = event.sensor;
        float[] values = event.values;


        if (values.length > 0) {
            value = (int) values[0];
        }

        if (sensor.getType() == Sensor.TYPE_STEP_COUNTER) {
            textView.setText("" + value);
        }
    }

    protected void onResume() {
        super.onResume();
        mSensorManager.registerListener(this, mStepCounterSensor,
                SensorManager.SENSOR_DELAY_FASTEST);
        mSensorManager.registerListener(this, mStepDetectorSensor,
                SensorManager.SENSOR_DELAY_FASTEST);
    }

    protected void onStop() {
        super.onStop();
        mSensorManager.unregisterListener(this, mStepCounterSensor);
        mSensorManager.unregisterListener(this, mStepDetectorSensor);
    }

}
devDeejay
  • 5,494
  • 2
  • 27
  • 38