`
quanminchaoren
  • 浏览: 911329 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android 之响应的系统设置的事件

阅读更多

1、Configuration类专门用于描述手机设备上的配置信息,这些配置信息既包括用户特定的也包括系统的动态设备配置。
程序可调用Activity的如下方法来获取 系统的Configuration对象:
Configuration cfg=getResources().getConfiguration();
String screen = cfg.orientation == Configuration.ORIENTATION_LANDSCAPE ? "横向屏幕": "竖向屏幕";
String
screen = cfg.orientation + "";//获取系统屏幕的方向,ORIENTATION_LANDSCAPE 是横向,ORIENTATION_PORTRAIT是竖向屏幕, ORIENTATION_SQUARE是方形屏幕;


String naviName = cfg.orientation == Configuration.NAVIGATION_NONAV ? "没有方向控制" :cfg.orientation == Configuration.NAVIGATION_WHEEL ? "滚轮控制方向" :cfg.orientation == Configuration.NAVIGATION_DPAD
? "方向键控制方向" : "轨迹球控制方向";//判断系统上方向导航设备的类型。 NAVIGATION_NONAV无导航,NAVIGATION_DPAD(DPAD导航),NAVIGATION_TRACKBALL轨迹球导航,NAVIGATION_WHEEL滚轮导航;




String touchName = cfg.touchscreen == Configuration.TOUCHSCREEN_NOTOUCH ? "无触摸屏" :cfg.touchscreen == Configuration.TOUCHSCREEN_STYLUS? "触摸笔式触摸屏" : "接受手指的触摸屏";//获取系统触摸屏蔽的触摸方式,TOUCHSCREEN_NOTOUCH 无触摸屏TOUCHSCREEN_STYLUS触摸笔式触摸屏,TOUCHSCREEN_FINGERR接受手指的触摸屏;
String mncCode = cfg.mnc+" ";获取移动信号的网络码

String mncCode = cfg.mcc+" " 获取移动信号的国家码;



2、如果程序需要监听系统设置的更改,则可以考虑重写Activity的onConfigurationChanged方法,该方法是一个基于回调的事件处理方法:当系统设置发生 更改时,该方法会被自动触发;
接下来以一个简单程序说明:
界面很简单一个普通的按钮来更改屏幕方向,so 界面文件不写了;
为按钮绑定监听事件:

  • bn.setOnClickListener(new OnClickListener()  
  • {  

  • @Override

  • public
    void onClick(View source)  
  • {  
  • Configuration config = getResources().getConfiguration();  

  • //如果当前是横屏


  • if (config.orientation   
  • == Configuration.ORIENTATION_LANDSCAPE)  
  • {  

  • //设为竖屏

  • ChangeCfg.this .setRequestedOrientation(  
  • ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);  
  • }  

  • //如果当前是竖屏


  • if (config.orientation   
  • == Configuration.ORIENTATION_PORTRAIT)  
  • {  

  • //设为横屏

  • ChangeCfg.this .setRequestedOrientation(  
  • ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE );  
  • }   
  • }  
  • });   


view plain

  • bn.setOnClickListener(new OnClickListener()  
  • {  
  • @Override
  • public
    void onClick(View source)  
  • {  
  • Configuration config = getResources().getConfiguration();  
  • //如果当前是横屏
  • if (config.orientation   
  • == Configuration.ORIENTATION_LANDSCAPE)  
  • {  
  • //设为竖屏
  • ChangeCfg.this .setRequestedOrientation(  
  • ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);  
  • }  
  • //如果当前是竖屏
  • if (config.orientation   
  • == Configuration.ORIENTATION_PORTRAIT)  
  • {  
  • //设为横屏
  • ChangeCfg.this .setRequestedOrientation(  
  • ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE );  
  • }   
  • }  
  • });   



重写Activity的onConfigurationChanged方法:public void onConfigurationChanged(Configuration newConfig)

{

super.onConfigurationChanged(newConfig);

String screen = newConfig.orientation ==

Configuration.ORIENTATION_LANDSCAPE ? "横向屏幕": "竖向屏幕";

Toast.makeText(this, "系统的屏幕方向发生改变"

+ "\n修改后的屏幕方向为:" + screen

, Toast.LENGTH_LONG)

.show();



}


由于程序需要动态地更改系统设置,因此需要在androidManifest.xml文件中授予诮程序更改系统设置的权限,并设置Activity运行动态修改的系统设置是屏幕方向;
<!-- 授予应用程序修改系统设置的权限 -->

<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />v

分享到:
评论

相关推荐

    Android系统休眠状态下屏蔽power按键之外的按键响应

    该文档补丁用来解决在休眠状态下,只让power按键响应,其他按键不响应

    android按键响应流程

    详细的描述了 linux的按键响应机制 以及在framework层的处理机制。

    android系统原理及开发要点详解

     第1章“Android系统概述”,概述Android系统方面的内容,包括智能手机平台的发展历程、Android系统的特点、Android的3种开发工作,以及Android的2种不同的开发方式。  第2章“Android系统开发综述”,介绍Android...

    Android事件处理

    3.1 Android事件处理概述 3.2 基于监听的事件处理 3.3 基于回调的事件处理 3.4 响应的系统设置的事件 3.5 Handler消息传递机制

    行业资料-交通装置-Android系统的事件快速响应方法.zip

    行业资料-交通装置-Android系统的事件快速响应方法.zip

    android 通过Power事件实现休眠和唤醒

    通过Power事件实现设备的强制休眠和唤醒,demo是测试通过(需root)

    android 7.0/8.0/9.0/10.0全局手势事件无效解决方案

    android 7.0/8.0/9.0/10.0全局手势事件无效,由于设置状态栏或者导航栏高度为0时,会导致全局手势事件滑不出来

    基于Android的学生信息管理系统

    这个系统难度不大,但是安卓的项目本来就少,这个项目耶包含了基本的增删改查,并且能实现后台与App的交互,所以这一个星期中还是学了很多东西的,如Android的Fagment、Activity、手动实现分页、HTTP请求和响应,...

    Android代码模拟按键事件

    Android代码模拟按键事件,demo中以按数字键1为例子,响应power按键事件,系统进待机。按数字键1可以替换成接收消息,广播,接口回调,等等

    Android电子拍卖系统

    Android电子拍卖系统,基于httpclient、JSON数据交换的整合方式,使用httpclient发送请求获取服务器响应

    Android+SQlite《学生信息管理系统》(增删改查)源代码

    Android+SQlite 简单的《学生信息管理系统》(实现基本增删改查) 此代码中还有与其相对应的apk文件(在SIMS/bin目录中),大家可先行放手机上看一下效果。 希望对初学者有一定的帮助。(本人自己编写)

    基于Android的个人理财系统的设计与实现(源码+数据库+文档+截图).zip

    本个人理财软件系统是在Android移动平台的基础上开发,提供了预算管理、收支管理、明细管理、报表查询等基本功能,同时还为用户提供了简易计算、记事备忘、天气查询、股票信息、中英互译、手机信息查询等实用功能,...

    Android中的事件处理总结

    Android系统对动作做出的响应机制就是事件处理。Android提供了两种事件处理机制。 基于监听的事件处理机制 基于回调的事件处理机制 一、基于监听的事件处理机制 Android的事件监听机制就是一种”面向对象”的事件...

    Android Diary日记系统.zip

    Android 项目是使用 Android 操作系统和相关开发工具开发的一款移动应用程序。Android 平台提供了丰富的功能和接口,开发人员可以使用 Java 或 Kotlin 等编程语言编写 Android 应用程序。Android 项目也可以是针对...

    Android课堂点名系统(Web:dianming,Android:code)

    Android课堂点名系统是一个集成了Web和Android应用的点名系统,通过Web端(dianming)管理系统和Android端(code)移动应用相互配合,实现课堂点名的自动化和便捷化。 Web端(dianming)通常提供教师或管理员使用的...

    android注入代码到驱动模拟系统点击事件demo

    有个问题是,我的实现方式和在activity里面模拟点击事件完全不同,我的目的不是在一个activity里模拟系统点击事件,只是用这个例子来测试下看看能不能把数据写到驱动里,系统自动响应写进去的代码,模拟出我手动点击...

    android 事件处理

    李刚疯狂android 第三章事件处理 包括android 的事件处理 基于监听的事件处理 基于回调的事件处理 响应的系统设置的事件 Handler 消息传递机制

    Android编程基础之简单Button事件响应综合提示控件Toast应用示例

    Button按钮所触发的事件处理,我们称之为Event Handle,只不过在Android当中,按钮事件是由系统的Button.OnClickListener所控制,熟悉Java程序设计的读者对OnXxxListener应该不陌生.以下的Demo,我们将实现当点击Button时...

    Android开发中避免应用无响应的方法(Application Not Responding、ANR)

    比如,如果一个应用在I/O操作上阻塞了(频繁请求网络)UI线程,系统无法处理用户输入事件。或者,在UI线程中,app花了大量时间在构建复杂的类,或在游戏中计算下一个动作。保证这些操作高效是很重要的,但最高效的代码...

    基于Android商品管理系统.zip

    Android 项目是使用 Android 操作系统和相关开发工具开发的一款移动应用程序。Android 平台提供了丰富的功能和接口,开发人员可以使用 Java 或 Kotlin 等编程语言编写 Android 应用程序。Android 项目也可以是针对...

Global site tag (gtag.js) - Google Analytics