SensorManager работает только на некоторых устройствах

У меня есть следующий код, чтобы получить угол x и y моего устройства, и он отлично работает на моем телефоне, но не на моем планшете (вкладка Samsung Galaxy e). Мне было интересно, есть ли у кого-нибудь идеи относительно того, что может заставить его работать на одном устройстве, но не на другом.

Я также убедился, что поворот экрана включен на обоих. Я предполагаю, что в планшете отсутствует датчик, и я больше всего ищу обходной путь. Любая помощь приветствуется. Заранее спасибо!

Исходный код:

double yAngle;
double xAngle;

@Override
protected void onResume() {
    super.onResume();
    sensorManager.unregisterListener(this);
    sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR),RATE);
}

@Override
public void onSensorChanged(SensorEvent event) {
    float[] rotationMatrix;
    rotationMatrix = new float[16];
    SensorManager.getRotationMatrixFromVector(rotationMatrix, event.values);
    determineOrientation(rotationMatrix);
    lblY.setText(String.format("%.1f", yAngle));
    lblX.setText(String.format("%.1f", xAngle));

}

private void determineOrientation(float[] rotationMatrix){
    //CREATING FLOAT ARRAY OF ORIENTATION VALUES
    float [] orientationValues = new float[3];
    SensorManager.getOrientation(rotationMatrix, orientationValues);
    yAngle = Math.toDegrees(orientationValues[2]);
    xAngle = Math.toDegrees(orientationValues[1]);
}

person Paul    schedule 17.11.2018    source источник
comment
sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR) возвращает null, когда датчик не поддерживается устройством. Вы можете зарегистрировать его значение, чтобы увидеть, возвращает ли оно null в табличке или нет?   -  person Umer Farooq    schedule 17.11.2018
comment
Он действительно возвращает ноль на планшете. Не знаете ли вы, есть ли другие датчики, которые можно использовать? Спасибо   -  person Paul    schedule 17.11.2018


Ответы (1)


Вы можете использовать adb shell pm list features для проверки всех датчиков и других поддерживаемых функций.

person Lumi Wang    schedule 11.02.2019