Android获取系统屏幕旋转的方式有几种,其中比较常见的是通过重写Activity中的onConfigurationChanged方法,但是这种方法有个缺陷,当测试程序在后台运行的时候不能捕捉到系统屏幕方向旋转。那么,既然屏幕旋转属于系统事件,如果需要在进入到其他程序中也能让测试程序捕捉到系统屏幕旋转,可以通过接收系统广播的方式来实现。
首先,写一个广播接收的类:
class MyBroadcastReceive extends BroadcastReceiver    {             @Override           public void onReceive(Context arg0, Intent arg1) {            // TODO Auto-generated method stub               makeToast("屏幕旋转角度:" + String.valueOf(AirLinkAct.this.getWindowManager().getDefaultDisplay().getRotation() * 90));            }      }

其中this.getWindowManager().getDefaultDisplay().getRotation()是获取当前屏幕旋转的角度
注册广播有两种方式,一种是通过在AndroidManifest.xml文件中注册,一种是通过java代码中注册,注意,这里能获取屏幕旋转的系统广播是 
android.intent.action.CONFIGURATION_CHANGED
当前设备设置改变时都会发送这个广播,要注意的是  这个广播 只能在java代码中注册,不能再xml文件中注册,一定要注意
使用方式: 首先定义接收广播类的对象 private  MyBroadcastReceive  broadcastReceive; 然后 在 onCreate函数中 注册
broadcastReceive = new MyBroadcastReceive();//注册广播接收,注意:要监听这个系统广播就必须用这种方式来注册,不能再xml中注册,否则不能生效IntentFilter filter = new IntentFilter();filter.addAction("android.intent.action.CONFIGURATION_CHANGED");registerReceiver(broadcastReceive,filter);

最后,在AndroidManifest.xml中添加权限   android:name= "android.permission.CHANGE_CONFIGURATION" />

更多相关文章

  1. Android:Android系统启动(笔记)
  2. Android系统操作的50个实用技巧
  3. Android系统下抓取网络通信包
  4. Android(安卓)串口通信开发笔记3:CMake 方式实现和 多对多的实现
  5. Deepin Linux系统中开启ap-hotspot wifi热点供其他计算机和andro
  6. 谷歌发布基于机器学习的Android(安卓)APP安全检测系统:Google Pla
  7. Android依赖管理与私服搭建
  8. Android的JNI_OnLoad简介与应用
  9. Android中dip, dp, px,pt, sp之间的区别:

随机推荐

  1. android 长按事件
  2. [Android实例] android中进行https连接的
  3. Android获取屏幕高度宽度的方法
  4. 阅读材料。。 暂存,放着读一下。。
  5. 2.4.1 自动完成文本框
  6. Android和.NET通用的AES算法
  7. Android(二):Notification基本操作
  8. Android(安卓)SMS(一) —— 读取短信 .
  9. 判断android应用程序是否已安装
  10. android中ContentResolver的使用