浏览 1747 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2017-01-20
最后修改:2017-01-20
一、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); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |