Java 取消注册类型_方向传感器

Java 取消注册类型_方向传感器,java,android,sensors,Java,Android,Sensors,在为传感器类型\ U方向注册侦听器后,我无法注销它,以便它停止报告方向更改(软件类型传感器)。我知道TYPE_定向已被弃用。这只是这种传感器类型的id“3” 我可以注册和注销任何其他东西(加速器、陀螺仪、旋转向量…) 第一:您正在检查“传感器.类型\方向”是否未包含在“所有传感器”列表中,或者您正在代码的某个点将该传感器添加到列表中 第二:由于“Sensor.TYPE_ORIENTATION”已被弃用,我建议使用“OrientationEventListener”,代码如下: Orientat

在为传感器类型\ U方向注册侦听器后,我无法注销它,以便它停止报告方向更改(软件类型传感器)。我知道TYPE_定向已被弃用。这只是这种传感器类型的id“3”

我可以注册和注销任何其他东西(加速器、陀螺仪、旋转向量…)


第一:您正在检查“传感器.类型\方向”是否未包含在“所有传感器”列表中,或者您正在代码的某个点将该传感器添加到列表中

第二:由于“Sensor.TYPE_ORIENTATION”已被弃用,我建议使用“OrientationEventListener”,代码如下:

OrientationEventListener orientationEventListener = new OrientationEventListener(this)
{
    @Override
    public void onOrientationChanged(int orientation)
    {
        Log.e(TAG, "orientation = " + orientation);
    }
};
orientationEventListener.enable();
要阻止听众:

if(orientationEventListener != null) {
                orientationEventListener.disable();
            }
orientationEventListener = null;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

我希望能帮助你:D

我在循环中注册了传感器,并在值更改时注册和回调SensorChange。然而,取消注册对我来说是不可能的。该传感器报告x、y、z平面的3个值,这与其他类型的传感器类似。
if(orientationEventListener != null) {
                orientationEventListener.disable();
            }
orientationEventListener = null;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);