【蓝桥软件学院】Android中五大Manager详解及使用技巧
一、PowerManager
主要是用来控制电源状态,设置屏幕状态,和电池待机状态
PowerManager pm = ((PowerManager)getSystemService(POWER_SERVICE));
这里我需要保持屏幕长期唤醒,不被锁屏,所以我调用WakeLock。
WakeLock wake = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK |powerManager.ON_AFTER_RELEASE, **Activity.class );
wake.acquire();//请求执行
相关的flag:
PARTIAL_WAKE_LOCK : 保持CPU 运转,屏幕和键盘灯有可能是关闭的。
SCREEN_DIM_WAKE_LOCK:保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯
SCREEN_BRIGHT_WAKE_LOCK:保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯
FULL_WAKE_LOCK : 保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度
权限获得:
<uses-permission android:name="android.permission.WAKE_LOCK" / >
二、WindowManager
调用window,设置window里面screenBrightness参数的值,但却短暂设置屏幕亮度的亮度,在某个activity下面才可以生效。
/**
* 设置屏幕亮度
*/
private void setWindowScreen(){
Window localWindow = getWindow();
WindowManager.LayoutParams localLayoutParams = localWindow.getAttributes();
float f = 5 / 255.0F;
localLayoutParams.screenBrightness = f;
localWindow.setAttributes(localLayoutParams);
}
获得权限:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
发现只有在当前activity下生效,需要改动系统文件下面的相关数值,调用Uri(类似链接)方法。
/**
* 保存屏幕亮度最低
* save light state
**/
public void saveBrightness(ContentResolver resolver) {
Uri uri = android.provider.Settings.System.getUriFor("screen_brightness");
android.provider.Settings.System.putInt(resolver, "screen_brightness", 0);
resolver.notifyChange(uri, null);
}
三、WifiManager
就是无限管理相关的,类似获得wifi链接名字,判断是否链接,开关等一些和无线相关。
WifiManager manager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
WifiInfo info = manager.getConnectionInfo();
wifiinfo里面包含很多东西,无限的IP,名字,ISSID,物理地址等很多信息,这里我需要获得查看是否链接实验室的无线获得无线的名字,名字是SSID。
String ssId = info.getSSID();
manager.setWifiEnabled(true);//打开wifi
manager.setWifiEnabled(false);// 关闭wifi
相关权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
四、ConnectivityManager
主要管理网络连接相关操作。
ConnectivityManager connManager = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetWorkInfo netinfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
NetWorkInfo里面就包括网络连接的信息,包括连接状态,网络是否可用等相关操作
int code = netinfo.getState();
if (wifiState == State.CONNECTED || wifiState == State.CONNECTING)
return 200;// 连接成功
else
return 500; // 连接失败
相关权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
五、ActivityManager
是与系统中所有运行着的Activity交互提供了接口,主要的接口围绕着运行中的进程信息,任务信息,服务信息等。
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
MemoryInfo mi = new MemoryInfo();
am.getMemoryInfo(mi);
am.getRunningAppProcesses();
am.getRunningServices();
am.getDeviceConfigurationInfo();
am.killBackgroundProcessed(PackageName);
am.restartPackage(PackageName);
来源:本文来自蓝桥软件学院(http://xueyuan.lanqiao.org),欢迎大家转载学习。
【蓝桥软件学院】Android中五大Manager详解及使用技巧相关推荐
- android调webview的方法,Android中的WebView详解
Android中的WebView详解 WebView详解 基本用法 布局文件配置WebView android:id="@+id/wv_news_detail" android:l ...
- Android 中malloc_debug 原理详解
版本基于:Android R 关联博文: Android 中malloc_debug 使用详解 0. 前言 最近上项目中遇到一个native 可能内存泄漏的问题,曾考虑使用HWASAN,但这个工具是针 ...
- Android中mesure过程详解 (结合Android 4.0.4 最新源码)
如何遍历并绘制View树?之前的文章Android中invalidate() 函数详解(结合Android 4.0.4 最新源码)中提到invalidate()最后会发起一个View树遍历的请求,并通 ...
- Android中layout过程详解 (结合Android 4.0.4 最新源码)
上一篇文章Android中mesure过程详解 (结合Android 4.0.4 最新源码)介绍了View树的measure过程,相对与measure过程,本文介绍的layout过程要简单多了,正如l ...
- Android中shape属性详解
一.简单使用 刚开始,就先不讲一堆标签的意义及用法,先简单看看shape标签怎么用. 1.新建shape文件 首先在res/drawable文件夹下,新建一个文件,命名为:shape_radius.x ...
- 【Android】 Android中Log调试详解
LOG类: public final class Log extends Object java.lang.Object android.util.Log Constants int ASSERT ...
- android布局置顶_[置顶] Android系统五大布局详解Layout
我们知道Android系统应用程序一般是由多个Activity组成,而这些Activity以视图的形式展现在我们面前,视图都是由一个一个的组件构成的.组件就是我们常见的Button.TextEdit等 ...
- android context继承关系,android中Context深入详解
以下分别通过Context认知角度,继承关系,对象创建等方面android中Context做了深入的解释,一起学习下. 1.Context认知. Context译为场景,一个应用程序可以认为是一个工作 ...
- Android中的长度单位详解
http://blog.csdn.net/zuolongsnail/article/details/6397768 in(英寸)长度单位(基本用不到) mm(毫米)长度单位(基本用不到) pt(poi ...
最新文章
- 聊一个不常见的面试题:为什么数据库连接池不采用 IO 多路复用?
- spring整合mybatis(入门级简单教程2)
- CSP:CSP认证考试:202109-2(非零段划分)70分答案,Java版
- Nginx配置防盗链
- Top 10 Security Risks for 2014
- 全面剖析C#正则表达式
- ORACLE查询闪回
- python编程数学函数_【编程】Python数学函数
- BUAA 436 孟竹的复习计划(二维树状数组)
- java图像在背景图移动_java – 在Swing中移动背景图像
- 可疑文件_鉴定文件是不是病毒木马的可靠方法 | 免费快速精准
- #6281. 数列分块入门 5
- php常用编码,简介常见的编码方式
- 获取 服务器文件列表,云对象获取服务器的文件列表
- C#类、方法的访问修饰符
- python数据处理源代码_python数据分析与应用源数据和代码
- 调研之路 --- MXF
- 如何通过Gitalk评论插件,5分钟为你的博客快速集成评论功能
- Kinect Fusion三维重建
- 9型人格人口占比数据_数据人格
热门文章
- 连玉君 Markdown 笔记
- FMS2015:Memblaze现场演示单机310万IOPS高性能解决方案
- 中国医科大学806计算机应用基础,中国医科大学2021年硕士研究生入学考试自命题考试科目...
- 区块链的简单介绍(一)
- STM32f103,TIM1,TIM2,TIM3,TIM4,TIM5,TIM8,4路PWM输出配置(保姆级)
- Camtasia2020官方汉化免费下载录屏软件
- 教育培训约课小程序主要功能有哪些?
- 联诚发LED屏新品发布会圆满成功,龙艺系列舞美租赁屏精彩亮相
- 均薪过万!为什么近半数高薪职场女性选择成为程序员?
- 深度学习——CNN(卷积神经网络)(超详细)