艾边程 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 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)