艾边程 2015-07-01 06:30 采纳率: 18.2%
浏览 1757

【急】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条回答

  • save4me 2015-07-04 10:22
    关注
    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.你可以做成服务,通过相应的广播来启动。

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘