我没有在android中获得传感器的预期输出

时间:2012-01-27 06:21:18

标签: java android

我是android新手。我正在开发一个应用程序,可以使用相机测量任何对象的高度和宽度。对于这个应用程序,我使用角度来计算距离。 但我的问题是我没有得到0到180范围内的角度。而是我在0到90的范围内获得角度。在90度之后它开始给出从90到0的角度。 所以PLZ帮助我。

    mSM = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    mAccelerometer = mSM.getDefaultSensor(Sensor.TYPE_ORIENTATION);

    public void onSensorChanged(SensorEvent event) {
    //int sensor = event.type;
    float[] values = event.values;
    int i,flag = 0;
    StringBuffer str=new StringBuffer();
    // do something with the sensor data
    TextView text = (TextView) findViewById(R.id.my_text);
    float[] R = new float[9]; // rotation matrix
    float[] magnetic = new float[3];
    float[] orientation = new float[3];
    float[] I = new float[3];

    magnetic[0]=0;
    magnetic[1]=1;
    magnetic[2]=0;

    str.append("From Sensor :\n");
    for(i=0;i<values.length; i++) {
        str.append(values[i]);
        str.append(", ");
    }

    SensorManager.getRotationMatrix(R, I, values, magnetic);
    SensorManager.getOrientation(R, orientation);


    str.append("\n\nGives :\n");
    if(orientation[1]==0.0)
        flag = 1;
    for(i=0;i<orientation.length; i++) {
        str.append(Math.toDegrees(orientation[i]));
        str.append(", ");
    }
    str.append(" flag = "+flag);



    text.setText(str);
}

0 个答案:

没有答案