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系统中,系统设置是用户与设备交互的重要部分,它包含了各种设备配置选项,如Wi-Fi、蓝牙、屏幕亮度、安全设置等。本主题将深入探讨Android系统上层源代码,特别是涉及到“三击Android设置界面的版本号弹出...
Android系统设置模块是Android操作系统的核心组成部分,它负责提供用户界面,让用户可以个性化和管理设备的各种设置。这个模块的源码提供了深入理解Android系统工作原理的机会,特别是与用户交互和系统配置相关的...
在Android应用开发中,"appweights响应多处事件"是一个重要的概念,主要涉及到用户界面(UI)交互和事件处理。Appweights可能是一个自定义库或者框架,用于简化Android应用中的事件监听和处理。在这个场景中,我们将...
这个特定组件就是为了解决这个问题,它扩展了React Native的能力,使得开发者可以直接在JavaScript层面上监听和响应这些原生键盘事件,而无需深入到Java或Kotlin代码中。 要使用这个组件,首先你需要将`react-...
Android广播系统基于发布-订阅模式,使得任何应用都可以发送广播,而其他应用可以通过注册接收器来监听并响应这些广播。本文将深入探讨Android广播事件处理的相关知识点。 一、广播类型 1. 系统广播:由Android...
在Android开发中,事件响应是用户与应用交互的关键机制,它使得用户操作能够被应用程序捕捉并执行相应的逻辑。本文将详细讲解Android事件响应机制,并以一个控制小飞机上下左右移动的示例进行深入阐述。 首先,理解...
本文将深入探讨“android之Touch事件处理机制测试”,包括滑动事件冲突的解决、ViewGroup中的事件触发和传递机制。 一、Android Touch事件处理机制 1. 触摸事件流程:在Android中,触摸事件分为三个阶段,即ACTION...
在Android系统中,检测U盘(USB存储设备)的热插拔事件是一项常见的需求,尤其在开发与USB设备交互的应用时。"android检测U盘插拔事件"这个标题揭示了我们要探讨的核心技术点:如何在Android应用中监听并处理U盘的...
《Android点餐系统项目》是一门深度探讨如何在Android平台上构建无线点餐系统的视频教程,旨在教授学员如何利用Android技术实现一个完整的点餐系统,包括客户端和服务端的开发。这门课程涵盖了移动应用开发的多个...
在Android系统中,事件响应机制是用户界面与应用程序交互的核心组成部分。它决定了用户在屏幕上触摸、滑动或者点击按钮等操作如何被正确处理并转化为相应的应用程序行为。Android事件响应机制主要包括事件的产生、...
本教程将详细介绍如何在Android应用内以及通过系统设置实现多语言国际化,涵盖了简体中文、繁体中文和英文的切换。 首先,理解Android的国际化机制。Android系统基于资源的本地化,也就是说,开发者需要为每种语言...
在Android操作系统中,Settings应用程序是用户与系统设置交互的核心组件。这个"安卓9.0系统自带settings系统设置apk源码"提供了深入理解Android系统设置实现的绝佳机会。Android 9.0,也被称为Pie(馅饼),是...
在Android手机系统测试中,打断事件测试是一项至关重要的任务,它涉及到用户在使用应用程序时可能遇到的各种中断情况,以及系统如何正确地管理这些中断并恢复应用程序的状态。本文将深入探讨Android打断事件测试的...
该文档补丁用来解决在休眠状态下,只让power按键响应,其他按键不响应
详细的描述了 linux的按键响应机制 以及在framework层的处理机制。
本文将深入探讨如何在Android环境中实现对按键事件的处理,包括基本的按键监听、自定义按键行为以及优化响应性能的方法。 一、基础按键事件处理 1. `onKeyDown`与`onKeyUp`: 在Android应用中,我们通常在Activity...
总结,Android切换系统语言涉及到了Android的资源管理、权限控制以及事件监听等多个方面,理解这些知识点对于开发支持多语言的应用至关重要。在实际应用中,开发者需要考虑用户体验,确保语言切换过程的平滑和无缝。
Android系统的事件分发主要由View的`dispatchTouchEvent()`、`onTouchEvent()`、`onInterceptTouchEvent()`三个方法协同完成。通过阅读源码,我们可以更深入地理解点击事件的处理流程,这对于优化性能和解决复杂场景...
应该注意在使用`addJavascriptInterface`时启用`@JavascriptInterface`注解,并在Android 4.2及以上版本中使用`WebSettings.setAllowUniversalAccessFromFileURLs(false)`来限制JavaScript访问本地文件系统。...
在Activity的`onCreate()`和`onDestroy()`方法中分别注册和注销BroadcastReceiver,确保应用能够正确地监听和响应电源事件。 ```java @Override protected void onCreate(Bundle savedInstanceState) { super....