私はReto Meierの推奨する方法で画面の向きを変更しないようにしています。 Google IO(#23を参照)中の彼の講演のスライドはAndroid Protips: Where to Download the Slides and Code Snippetsにあります。Androidナチュラルセンサーオリエンテーションヘルプ
コードをステップ実行して値を設定しましたが、画面の向きは変わりません。参考までに、このリスナーをアプリケーションに登録します。現在お使いのAndroidManifest.xml
ファイル内のいくつかのXML値に置き換えることができます動作していないコードの
final SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
sm.registerListener(
new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
if (sensorEvent.sensor.getType() == Sensor.TYPE_ORIENTATION) {
final WindowManager wm = (WindowManager) getApplicationContext()
.getSystemService(Context.WINDOW_SERVICE);
final Display display = wm.getDefaultDisplay();
int x = SensorManager.AXIS_X;
int y = SensorManager.AXIS_Y;
switch (display.getRotation()) {
case Surface.ROTATION_90:
x = SensorManager.AXIS_Y;
y = SensorManager.AXIS_MINUS_X;
break;
case Surface.ROTATION_180:
y = SensorManager.AXIS_MINUS_Y;
break;
case Surface.ROTATION_270:
x = SensorManager.AXIS_MINUS_Y;
y = SensorManager.AXIS_MINUS_X;
break;
case Surface.ROTATION_0:
default:
break;
}
SensorManager.remapCoordinateSystem(sensorEvent.values, x, y, new float[] {});
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}, sm.getDefaultSensor(Sensor.TYPE_ORIENTATION),
SensorManager.SENSOR_DELAY_NORMAL);
@Peter Mortensen編集ありがとう! – bytebender
ハードウェアキーボードが開いているか閉じているデバイスの向きは、依然として変わっています。 – Tapirboy
悲しいことに、既定の横向きの方向性を持つタブレットでは、アプリケーションの開発に多くの時間と労力を費やした後、1票の否定的な投票を得るのに十分です。私はこれを経験しました! – jap1968