问题描述
- 【急】android小白求帮助,android如何唤醒屏幕?【在线等】
-
public void onSensorChanged(SensorEvent event) { // values的第一个就是光感亮度的值 float values = event.values[0]; // 设置标志位 boolean temp = true; // 如果光感值小于等于3则锁屏 if (values <= 3) { Toast.makeText(MainActivity.this, "锁屏", Toast.LENGTH_LONG) .show(); // systemLock(); temp = false; } // 如果temp为假并且光感值小于等于三则唤醒屏幕 if (!temp && values <= 3) { // wakeUpAndUnlock(); Toast.makeText(MainActivity.this, "唤醒屏幕", Toast.LENGTH_LONG) .show(); temp = true; } lightLevel.setText("当前的光感值为:" + values + "lux"); } @Override public void onAccuracyChanged(Sensor arg0, int arg1) { // TODO Auto-generated method stub } /**************************我是分割线****************************/ // 锁屏 private void systemLock() { if (this.policyManager.isAdminActive(this.componentName)) { Window localWindow = getWindow(); WindowManager.LayoutParams localLayoutParams = localWindow .getAttributes(); localLayoutParams.screenBrightness = 0.05F; localWindow.setAttributes(localLayoutParams); this.policyManager.lockNow(); } finish(); } // 唤醒屏幕
代码如上 1.差一个唤醒屏幕的方法 2.onSensorChanged(SensorEvent event)两个if都会执行 3.如何利用services让程序后台运行?
解决方案
- 参考Wake Android Device up
唤醒屏幕
PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG");
wakeLock.acquire();
释放屏幕锁
KeyguardManager keyguardManager = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("TAG");
keyguardLock.disableKeyguard();
添加相应权限
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
2.你的这部分貌似逻辑有问题,boolean temp = true;初始为true,但是第一个if的时候设为false,所以第二个if的时候每次都是false,也就是每次都会执行,然后又把temp设为true。不知道你需要达到什么样的效果,但是从代码上看,temp没有必要,直接把两个if合并,只判断光感值得效果和你现在的应该是一样的吧?如果你需要两个if根据temp值来执行相应的代码,是否需要把temp放在函数外面,避免每次都被初始化为true?
3.你可以做成服务,通过相应的广播来启动。
时间: 2024-12-22 15:45:06