打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
通过广播获取Android屏幕旋转事件
     Android获取系统屏幕旋转的方式有几种,其中比较常见的是通过重写Activity中的onConfigurationChanged方法,但是这种方法有个缺陷,当测试程序在后台运行的时候不能捕捉到系统屏幕方向旋转。那么,既然屏幕旋转属于系统事件,如果需要在进入到其他程序中也能让测试程序捕捉到系统屏幕旋转,可以通过接收系统广播的方式来实现。

首先,写一个广播接收的类:
  1. class MyBroadcastReceive extends BroadcastReceiver  
  2.     {  
  3.              @Override  
  4.            public void onReceive(Context arg0, Intent arg1) {  
  5.             // TODO Auto-generated method stub  
  6.                makeToast("屏幕旋转角度:" + String.valueOf(AirLinkAct.this.getWindowManager().getDefaultDisplay().getRotation() * 90));  
  7.             }  
  8.       }  

其中this.getWindowManager().getDefaultDisplay().getRotation()是获取当前屏幕旋转的角度

注册广播有两种方式,一种是通过在AndroidManifest.xml文件中注册,一种是通过java代码中注册,注意,这里能获取屏幕旋转的系统广播是 

android.intent.action.CONFIGURATION_CHANGED

当前设备设置改变时都会发送这个广播,要注意的是  这个广播只能在java代码中注册,不能再xml文件中注册,一定要注意

使用方式:
首先定义接收广播类的对象
private MyBroadcastReceive broadcastReceive;
然后 在 onCreate函数中 注册
  1. broadcastReceive = new MyBroadcastReceive();  
  2. //注册广播接收,注意:要监听这个系统广播就必须用这种方式来注册,不能再xml中注册,否则不能生效  
  3. IntentFilter filter = new IntentFilter();  
  4. filter.addAction("android.intent.action.CONFIGURATION_CHANGED");  
  5. registerReceiver(broadcastReceive,filter);<span style="color:#e30000;">  
  6. </span>  

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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
android 屏幕旋转问题
RK3568 Android-HDMI旋转屏幕显示
如何在 Android 程序中禁止屏幕旋转和重启Activity
android 开机广播接收不到的原因
android:BroadcastReceive如何和activity通讯,BroadcastReceive是否能获得前面已经启动的activity,有几种方式可以获得。
iphone如何旋转屏幕
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服