【急】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让程序后台运行?

1个回答

  1. 参考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.你可以做成服务,通过相应的广播来启动。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!