2016-05-26 25 views
1

は、私は逆に、私は現在の向き(ポートレート/ランドスケープを検出する必要が私のデバイス上で実行されている別のアプリを持っている風景に画面の回転を強制的にアプリ(ADB超えるデバイスをcontroling外部アプリケーション)Androidの画面の回転検出

を持っていますか、重要ではありません)、デバイスの画面の向きが変わったときに何かしてください。 私はうまく機能OrientationEventListenerを書かれている:

m_orientationEventListener = new OrientationEventListener(this) { 
    @Override 
    public void onOrientationChanged(int orientation) { 
     doSomething() 
    } 
}; 
m_orientationEventListener.enable(); 

私の問題: 画面がオフになり、画面のロックが解除されるまで、その後に、株式ROMが縦に画面を回転させます。 **画面が肖像画の向きに回転したり、ロック解除後に風景に戻るときにイベントを受け取ることはありません**

これを聞く方法はありますか?

注:私は、画面に対して活性を持たない:私はバックグラウンドで実行していると が背景から、それを検出します。

ここ

シンあなたの助けをありがとう

+1

SensorEventListenerを使用します。 –

答えて

1

おかげ+ satnamは、私が使用したサンプルコードです:

m_sensorEventListener = new SensorEventListener() { 
    @Override 
    public void onSensorChanged(SensorEvent event) { 
     if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { 
      Log.i(TAG,"Orientation : PORTRAIT"); 
     } 
     else { 
      Log.i(TAG,"Orientation : LANDSCAPE"); 
     } 
    } 

    @Override 
    public void onAccuracyChanged(Sensor sensor, int accuracy) {} 
}; 

SensorManager sm = (SensorManager)getSystemService(SENSOR_SERVICE); 
sm.registerListener(m_sensorEventListener, sm.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR), SensorManager.SENSOR_DELAY_NORMAL); 

私は(ON/OFF)画面の状態を追加したBroadcastReceiverへ画面が消えたときにリスナーをシャットダウンし、不要な電力消費を避ける

関連する問題