2012-03-21 2 views
0

나는 안드로이드 용 가속도계로 작업하고 있는데 왜 내가 mSensorX, mSensorY 및 mSensorZ에 할당 한 3 축이 onSensorChange에서 사용되었을 때 사용되지 않은 것으로 레이블이 붙었는지 이해할 수 없다. 나는 이것을 이해한다.Accelerometer code

package com.example.imageaccel; 

import android.app.Activity; 
import android.content.Context; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Canvas; 
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 ImageAccelActivity extends Activity implements SensorEventListener { 
    /** Called when the activity is first created. */ 
    TextView x, y, z; 
    private float mSensorX; 
    private float mSensorY; 
    private float mSensorZ; 
    private Bitmap car; 


    private SensorManager sm = null; 
// Bitmap car1; 
// float x1, y1, z1, sensorX, sensorY, sensorZ; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

    x = (TextView)findViewById(R.id.x_axis); 
    y = (TextView)findViewById(R.id.y_axis); 
    z = (TextView)findViewById(R.id.z_axis); 

    SensorManager sm = (SensorManager)getSystemService(Context.SENSOR_SERVICE); 
    if (sm.getSensorList(Sensor.TYPE_ACCELEROMETER).size() !=0){ 
     Sensor s = sm.getSensorList(Sensor.TYPE_ACCELEROMETER).get(0); 
     sm.registerListener(this, s, SensorManager.SENSOR_DELAY_NORMAL); 

    } 

} 

    @Override 
    protected void onResume() { 
     // TODO Auto-generated method stub 
     super.onResume(); 

     sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),SensorManager.SENSOR_DELAY_NORMAL); 
    } 

    @Override 
    protected void onPause() { 
     // TODO Auto-generated method stub 
     super.onPause(); 
     sm.unregisterListener(this); 
     super.onPause(); 
    } 
    @Override 

    public void onAccuracyChanged(Sensor arg0, int arg1) { 
     // TODO Auto-generated method stub 


    } 


    @Override 
    public void onSensorChanged(SensorEvent ev) { 
     // TODO Auto-generated method stub 

     if(ev.sensor.getType()==Sensor.TYPE_ACCELEROMETER){ 

      mSensorX = ev.values[0]; 
      mSensorY = ev.values[1]; 
      mSensorZ = ev.values[2]; 


     } 

} 
     protected void onDraw(Canvas canvas) { 

       /* 
       * draw the background 
       */ 

       canvas.drawBitmap(car, 0, 0, null); 

    } 


     } 

답변

1

당신은 그들 값으로을 설정하고 있지만 그 절반 밖에 이야기입니다. 불만 사항은 그 이후로 으로 사용하지 않을 가능성이 가장 큽니다. 그것은 C 코드와 유사 :

:

warning: unused variable 'a' 
이 이론을 확인하는

빠른 방법은을 넣어 : 그 컴파일과 잘 실행되는 동안

int main (void) { 
    int a = 1; 
    return 0; 
} 

, 당신은 그 (gcc -Wall 사용) 경고를받을 수 있나요

System.out.println (mSensorX + "," + mSensorY + "," + mSensorZ); 

(또는 다른 종류의 사용) 설정 후 경고가 사라지는 지 확인하십시오.

0

if 문 때문에 경고가 있다고 생각합니다. 어떤 경우에는 사용되지 않으므로 경고가 표시됩니다. 내 생각에 :

관련 문제