首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android屏幕旋转检测

Android屏幕旋转检测
EN

Stack Overflow用户
提问于 2016-05-26 10:41:31
回答 1查看 7.6K关注 0票数 3

我有一个应用程序,强制屏幕旋转到景观(外部应用程序控制设备亚行)

我有另一个应用程序运行在我的设备上,它必须检测当前的方向(纵向/横向,反转与否),并在设备屏幕方向改变时做一些事情。我编写了一个运行良好的OrientationEventListener:

代码语言:javascript
复制
m_orientationEventListener = new OrientationEventListener(this) {
    @Override
    public void onOrientationChanged(int orientation) {
        doSomething()
    }
};
m_orientationEventListener.enable();

我的问题:当屏幕关闭,然后打开,股票ROM旋转屏幕到纵向,直到屏幕已经解锁。**我既没有收到屏幕旋转到肖像画时的事件,也没有收到解锁后屏幕旋转回风景的事件**

有办法听这个吗?

注意:我在屏幕上没有活动的:我在后台运行,希望从背景中检测到。

谢谢你的帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-27 07:14:57

谢谢+萨特南·辛格

下面是我使用的示例代码:

代码语言:javascript
复制
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);

我添加了一个屏幕状态(打开/关闭) BroadcastReceiver,以便在屏幕关闭时关闭侦听器,并避免不必要的功耗。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37458500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档