一、PowerManager
主要是用来控制电源状态,设置屏幕状态,和电池待机状态
PowerManagerpm=((PowerManager)getSystemService(POWER_SERVICE));
这里我需要保持屏幕长期唤醒,不被锁屏,所以我调用WakeLock。
WakeLockwake=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-permissionandroid:name="android.permission.WAKE_LOCK"/>
二、WindowManager
调用window,设置window里面screenBrightness参数的值,但却短暂设置屏幕亮度的亮度,在某个activity下面才可以生效。
/**
*设置屏幕亮度
*/
privatevoidsetWindowScreen(){
WindowlocalWindow=getWindow();
WindowManager.LayoutParamslocalLayoutParams=localWindow.getAttributes();
floatf=5/255.0F;
localLayoutParams.screenBrightness=f;
localWindow.setAttributes(localLayoutParams);
}
获得权限:
<uses-permissionandroid:name="android.permission.SYSTEM_ALERT_WINDOW"/>
发现只有在当前activity下生效,需要改动系统文件下面的相关数值,调用Uri(类似链接)方法。
/**
*保存屏幕亮度最低
*savelightstate
**/
publicvoidsaveBrightness(ContentResolverresolver){
Uriuri=android.provider.Settings.System.getUriFor("screen_brightness");
android.provider.Settings.System.putInt(resolver,"screen_brightness",0);
resolver.notifyChange(uri,null);
}
三、WifiManager
就是无限管理相关的,类似获得wifi链接名字,判断是否链接,开关等一些和无线相关。
WifiManagermanager=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
WifiInfoinfo=manager.getConnectionInfo();
wifiinfo里面包含很多东西,无限的IP,名字,ISSID,物理地址等很多信息,这里我需要获得查看是否链接实验室的无线获得无线的名字,名字是SSID。
StringssId=info.getSSID();
manager.setWifiEnabled(true);//打开wifi
manager.setWifiEnabled(false);//关闭wifi
相关权限:
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"/>
四、ConnectivityManager
主要管理网络连接相关操作。
ConnectivityManagerconnManager=(ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetWorkInfonetinfo=connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
NetWorkInfo里面就包括网络连接的信息,包括连接状态,网络是否可用等相关操作
intcode=netinfo.getState();
if(wifiState==State.CONNECTED||wifiState==State.CONNECTING)
return200;//连接成功
else
return500;//连接失败
相关权限:
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
五、ActivityManager
是与系统中所有运行着的Activity交互提供了接口,主要的接口围绕着运行中的进程信息,任务信息,服务信息等。
ActivityManageram=(ActivityManager)this.getSystemService(ACTIVITY_SERVICE);
MemoryInfomi=newMemoryInfo();
am.getMemoryInfo(mi);
am.getRunningAppProcesses();
am.getRunningServices();
am.getDeviceConfigurationInfo();
am.killBackgroundProcessed(PackageName);
am.restartPackage(PackageName);