传感器.TYPE_ORIENTATION已被废弃

3

我正在开发一个指南针应用程序,但遇到了传感器类型 Sensor.TYPE_ORIENTATION 已弃用的问题,不知道该怎么解决。请问能否提供一些帮助?这是我的代码和我所做的事情。

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

    // 
    // TextView that will tell the user what degree is he heading
    tvHeading = (TextView) findViewById(R.id.tvHeading);

    // initialize your android device sensor capabilities
    mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
}

@Override
protected void onResume() {
    super.onResume();

    // for the system's orientation sensor registered listeners
    mSensorManager.registerListener(this, **mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
            SensorManager.SENSOR_DELAY_GAME);**
}

@Override
protected void onPause() {
    super.onPause();

    // to stop the listener and save battery
    mSensorManager.unregisterListener(this);
}

@Override
public void onSensorChanged(SensorEvent event) {

    // get the angle around the z-axis rotated
    float degree = Math.round(event.values[0]);

    tvHeading.setText("Heading: " + Float.toString(degree) + " degrees");

    // create a rotation animation (reverse turn degree degrees)
    RotateAnimation ra = new RotateAnimation(
            currentDegree,
            -degree,
            Animation.RELATIVE_TO_SELF, 0.5f,
            Animation.RELATIVE_TO_SELF,
            0.5f);

    // how long the animation will take place
    ra.setDuration(210);

    // set the animation after the end of the reservation status
    ra.setFillAfter(true);

    // Start the animation
    image.startAnimation(ra);
    currentDegree = -degree;

}

这个想法是在代码执行后,根据指南针检测到的角度旋转图像。


文档注明:“该常量在API级别8中已弃用,请使用SensorManager.getOrientation()代替。”你尝试过吗? - Juan Cruz Soler
你可以在 https://github.com/hoananguyen/dsensor 使用我的库。 - Hoan Nguyen
1个回答

2

1
谢谢您的回复。我会点赞并希望有人能解决他/她的问题。 - JohnRambo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接