Display#getRotation() は画面の向きによって、 0, 90, 180, 270度 の値が取得できますが、
画面の向き (角度) を取得するときに、端末によって0度の定義が異なっていることがわかりました。
getRotation の document を読んでみると、自然な向きを基準に画面の角度を返すとあります・・
Returns the rotation of the screen from its "natural" orientation. The returned value may be Surface.ROTATION_0 (no rotation), Surface.ROTATION_90, Surface.ROTATION_180, or Surface.ROTATION_270.
自然な向きって・・
解決策
今回、「自然な向き」を基準にした角度が返ってきては困る要件だったので、
getResources().getConfiguration().orientation
と一緒に向きと角度を判断するようにしました。
現象を確認した端末
現在この現象を確認できている端末は次のとおりです。
- Xperia Z4 Tablet
それっぽいのに、現象を確認できなかった端末は次のとおりです。
- Lenovo YT3-X90X (起動画面は横なのに・・)