Android中五大Manager详解及使用技巧

lanshen100 2017-02-13 11:36:56
加精
一、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);
...全文
4824 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
南飛鹤 2019-01-05
  • 打赏
  • 举报
回复
嗯嗯6666666
行走的尘埃 2018-09-12
  • 打赏
  • 举报
回复
qq_36543603 2017-03-02
  • 打赏
  • 举报
回复
asd007123 2017-02-24
  • 打赏
  • 举报
回复
赞一个
xiaozhu12371237 2017-02-23
  • 打赏
  • 举报
回复
太厉害 牛逼
thinkreduce 2017-02-23
  • 打赏
  • 举报
回复
不错,继续努力
「已注销」 2017-02-22
  • 打赏
  • 举报
回复
厉害!!!!
莫名一笑23 2017-02-20
  • 打赏
  • 举报
回复
网之管 2017-02-17
  • 打赏
  • 举报
回复
lanshen100 2017-02-16
  • 打赏
  • 举报
回复
谢谢鼓励,会继续努力。
  • 打赏
  • 举报
回复
qq_15827939 2017-02-14
  • 打赏
  • 举报
回复
TitleZWC 2017-02-13
  • 打赏
  • 举报
回复
赞一下
ljheee 2017-02-13
  • 打赏
  • 举报
回复
不错不错

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧