Android获取系统屏幕旋转的方式有几种,其中比较常见的是通过重写Activity中的onConfigurationChanged方法,但是这种方法有个缺陷,当测试程序在后台运行的时候不能捕捉到系统屏幕方向旋转。那么,既然屏幕旋转属于系统事件,如果需要在进入到其他程序中也能让测试程序捕捉到系统屏幕旋转,可以通过接收系统广播的方式来实现。
首先,写一个广播接收的类:
其中this.getWindowManager().getDefaultDisplay().getRotation()是获取当前屏幕旋转的角度
注册广播有两种方式,一种是通过在AndroidManifest.xml文件中注册,一种是通过java代码中注册,注意,这里能获取屏幕旋转的系统广播是
android.intent.action.CONFIGURATION_CHANGED
当前设备设置改变时都会发送这个广播,要注意的是 这个广播只能在java代码中注册,不能再xml文件中注册,一定要注意
使用方式:
首先定义接收广播类的对象
private MyBroadcastReceive broadcastReceive;
然后 在 onCreate函数中 注册
最后,在AndroidManifest.xml中添加权限
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>
|
|