Отменить регистрацию датчика TYPE_ORIENTATION - PullRequest
0 голосов
/ 28 июня 2018

После регистрации прослушивателя для датчика TYPE_ORIENTATION я не могу отменить его регистрацию, чтобы он прекратил сообщать об изменениях для ORIENTATION (датчик типа программного обеспечения). Я знаю, что TYPE_ORIENTATION устарела. Это просто идентификатор "3" для этого типа датчика.

Как я могу заменить type_orientation (не рекомендуется) для Android 4.0.3?

Мне удалось зарегистрировать и отменить регистрацию всего остального (ускоритель, гироскоп, вектор вращения ...)

Sensor orientation = getSensor(Sensor.TYPE_ORIENTATION + ""); // a method to loop through all the sensor existing in device and return the one I'm looking for
Log.d("TEST_ACTIVITY", "unregistering sensor " + orientation.getStringType());
if (orientation != null)
{
    //it does reach here and call unregister this sensor 
    mSensorManager.unregisterListener(this, orientation);
}

//All sensors are registered when service starts
for (Sensor sensor : allSensors)
{
   mSensorManager.registerListener(this, sensor, 500000, 500000);
}

1 Ответ

0 голосов
/ 28 июня 2018

Первое: вы проверяете, что «Sensor.TYPE_ORIENTATION» не включен в ваш список «allSensors», или вы добавляете этот датчик в список в какой-то момент вашего кода.

Второе: поскольку «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!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...