Я знаю, что это не прямой ответ на ваш вопрос, но другие ответы здесь дают хорошее представление о том, как определить размер экрана. Вы написали в своем вопросе, что у вас есть проблемы с наклоном, и это также случилось со мной.
Если вы запускаете гироскоп (или датчик вращения) на смартфоне, оси X и Y могут быть определены иначе, чем на планшете, в соответствии с ориентацией устройства по умолчанию (например, Samsung GS2 - портрет по умолчанию, Samsung GT -7310 - пейзаж по умолчанию, новый Google Nexus 7 - портрет по умолчанию, хотя это планшет!).
Теперь, если вы хотите использовать Gyroscope, у вас может получиться рабочее решение для смартфонов, но путаница с осями на некоторых планшетах или наоборот.
Если вы используете одно из приведенных выше решений, выберите размер экрана, а затем примените
SensorManager.remapCoordinateSystem(inputRotationMatrix, SensorManager.AXIS_X,
SensorManager.AXIS_Y, outputRotationMatrix);
чтобы перевернуть ось, если у нее большой или большой размер экрана, это может сработать в 90% случаев, но, например, на Nexus 7 это вызовет проблемы (поскольку у него книжная ориентация по умолчанию и большой размер экрана) ).
Самый простой способ исправить это представлен в образце RotationVectorSample, который поставляется с демонстрационными примерами API, установив sceenOrientation в nosensor
в вашем манифесте:
<activity
...
android:screenOrientation="nosensor">
...
</activity>