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
分享到:
相关推荐
该文档补丁用来解决在休眠状态下,只让power按键响应,其他按键不响应
详细的描述了 linux的按键响应机制 以及在framework层的处理机制。
第1章“Android系统概述”,概述Android系统方面的内容,包括智能手机平台的发展历程、Android系统的特点、Android的3种开发工作,以及Android的2种不同的开发方式。 第2章“Android系统开发综述”,介绍Android...
3.1 Android事件处理概述 3.2 基于监听的事件处理 3.3 基于回调的事件处理 3.4 响应的系统设置的事件 3.5 Handler消息传递机制
行业资料-交通装置-Android系统的事件快速响应方法.zip
通过Power事件实现设备的强制休眠和唤醒,demo是测试通过(需root)
android 7.0/8.0/9.0/10.0全局手势事件无效,由于设置状态栏或者导航栏高度为0时,会导致全局手势事件滑不出来
这个系统难度不大,但是安卓的项目本来就少,这个项目耶包含了基本的增删改查,并且能实现后台与App的交互,所以这一个星期中还是学了很多东西的,如Android的Fagment、Activity、手动实现分页、HTTP请求和响应,...
Android代码模拟按键事件,demo中以按数字键1为例子,响应power按键事件,系统进待机。按数字键1可以替换成接收消息,广播,接口回调,等等
Android电子拍卖系统,基于httpclient、JSON数据交换的整合方式,使用httpclient发送请求获取服务器响应
Android+SQlite 简单的《学生信息管理系统》(实现基本增删改查) 此代码中还有与其相对应的apk文件(在SIMS/bin目录中),大家可先行放手机上看一下效果。 希望对初学者有一定的帮助。(本人自己编写)
本个人理财软件系统是在Android移动平台的基础上开发,提供了预算管理、收支管理、明细管理、报表查询等基本功能,同时还为用户提供了简易计算、记事备忘、天气查询、股票信息、中英互译、手机信息查询等实用功能,...
Android系统对动作做出的响应机制就是事件处理。Android提供了两种事件处理机制。 基于监听的事件处理机制 基于回调的事件处理机制 一、基于监听的事件处理机制 Android的事件监听机制就是一种”面向对象”的事件...
Android 项目是使用 Android 操作系统和相关开发工具开发的一款移动应用程序。Android 平台提供了丰富的功能和接口,开发人员可以使用 Java 或 Kotlin 等编程语言编写 Android 应用程序。Android 项目也可以是针对...
Android课堂点名系统是一个集成了Web和Android应用的点名系统,通过Web端(dianming)管理系统和Android端(code)移动应用相互配合,实现课堂点名的自动化和便捷化。 Web端(dianming)通常提供教师或管理员使用的...
有个问题是,我的实现方式和在activity里面模拟点击事件完全不同,我的目的不是在一个activity里模拟系统点击事件,只是用这个例子来测试下看看能不能把数据写到驱动里,系统自动响应写进去的代码,模拟出我手动点击...
李刚疯狂android 第三章事件处理 包括android 的事件处理 基于监听的事件处理 基于回调的事件处理 响应的系统设置的事件 Handler 消息传递机制
Button按钮所触发的事件处理,我们称之为Event Handle,只不过在Android当中,按钮事件是由系统的Button.OnClickListener所控制,熟悉Java程序设计的读者对OnXxxListener应该不陌生.以下的Demo,我们将实现当点击Button时...
比如,如果一个应用在I/O操作上阻塞了(频繁请求网络)UI线程,系统无法处理用户输入事件。或者,在UI线程中,app花了大量时间在构建复杂的类,或在游戏中计算下一个动作。保证这些操作高效是很重要的,但最高效的代码...
Android 项目是使用 Android 操作系统和相关开发工具开发的一款移动应用程序。Android 平台提供了丰富的功能和接口,开发人员可以使用 Java 或 Kotlin 等编程语言编写 Android 应用程序。Android 项目也可以是针对...