3

I am trying to detect the movement of android device since my app starts when movement detected, for that i am using accelerometer motion sensor. But it is detecting movement when phone shakes, but not working for smooth movement. I am not getting how to detect smooth movement.

Here is my motion sensor code on accelerometer.

  public void onSensorChanged(SensorEvent event) {
        // TODO Auto-generated method stub
        TextView tvX= (TextView)findViewById(R.id.x_axis);
        TextView tvY= (TextView)findViewById(R.id.y_axis);
        TextView tvZ= (TextView)findViewById(R.id.z_axis);
        ImageView iv = (ImageView)findViewById(R.id.image);
        float x = event.values[0];
        float y = event.values[1];
        float z = event.values[2];
        if (!mInitialized) {
            mLastX = x;
            mLastY = y;
            mLastZ = z;
            tvX.setText("0.0");
            tvY.setText("0.0");
            tvZ.setText("0.0");
            mInitialized = true;
        } else {
            float deltaX = Math.abs(mLastX - x);
            float deltaY = Math.abs(mLastY - y);
            float deltaZ = Math.abs(mLastZ - z);
            if (deltaX < NOISE) deltaX = (float)0.0;
            if (deltaY < NOISE) deltaY = (float)0.0;
            if (deltaZ < NOISE) deltaZ = (float)0.0;
            mLastX = x;
            mLastY = y;
            mLastZ = z;
            tvX.setText(Float.toString(deltaX));
            tvY.setText(Float.toString(deltaY));
            tvZ.setText(Float.toString(deltaZ));
            iv.setVisibility(View.VISIBLE);

            if(deltaX!=0||deltaY!=0||deltaZ!=0)
            {
                Handler gpsHandler = new Handler();
            //  locateHandler.sendEmptyMessage(1);

                 gpsHandler.post(new Runnable() {
                     public void run() {
            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);}});
            }


        }



    }
Anand K
  • 233
  • 1
  • 6
  • 21

0 Answers0