アクティビティの向きを一定の向きに保ちながら、センサー データを手動で操作することなく、Android デバイスの向きの変化を検出する必要があります。
onConfigurationChange
私の活動が回転しないように固執するので、機能しません。
センサーデータをいじって向きの変化を検出する Androidには、デバイスの向きの変化を検出するためのアルゴリズムの実装が既に組み込まれているため、これはホイールの発明であると考えています。そして別の側面から言えば、向きの変化の検出は、このような単純なチェックではありません。
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER || event.values.length < 3) {
return;
}
//getResources().getConfiguration().orientation;
if (event.values[1] < 6.5 && event.values[1] > -6.5) {
if (orientation!=1) {
Log.d("Sensor", "Protrait");
}
orientation=1;
} else {
if (orientation!=0) {
Log.d("Sensor", "Landscape");
}
orientation=0;
}
}
ノイズや突然の短い揺れ/回転からのフィルタリングなど、実際のデータ処理が本当に必要です。
レガシーサービスを使用してデバイスの向きを検出する方法はありますか? (繰り返しますが、アクティビティを特定の方向に固定するため、機能しonConfigurationChange
ません)