【问题标题】:After use PowerManager my device never goes to sleep mode anymore使用 PowerManager 后,我的设备不再进入睡眠模式
【发布时间】:2015-06-17 19:34:47
【问题描述】:

我正在开发一个应用程序,并在三星 Galaxy Y(Android 2.3.6)和 Engel tablet 7" (Android 4.0.x) 设备上对其进行测试。

在我的应用程序代码中,我使用这个 sn-p 来唤醒设备(当它们处于睡眠模式时)并且运行良好,但现在我的问题是醒来后它们永远不会进入睡眠状态模式不再,只有当我按下硬件按钮时他们才会去。 任何人都知道如何在使用 PowerManager 后设置默认能量设置?

KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); 
    final KeyguardManager.KeyguardLock kl = km .newKeyguardLock("MyKeyguardLock"); 
    kl.disableKeyguard(); 

    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
    WakeLock wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
                                     | PowerManager.ACQUIRE_CAUSES_WAKEUP
                                     | PowerManager.ON_AFTER_RELEASE, "MyWakeLock");
    wakeLock.acquire();

【问题讨论】:

    标签: android powermanager


    【解决方案1】:

    试试这个:

    void wakeUpGirls() {
        if (wakeLock != null) {
         wakeLock.release();
        }
       KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
       KeyguardLock keyguardLock = km.newKeyguardLock("TAG");
       getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
      getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
    
       keyguardLock.disableKeyguard();
       PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
       wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK 
                   | PowerManager.ACQUIRE_CAUSES_WAKEUP 
                   | PowerManager.ON_AFTER_RELEASE 
                   | PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "MyWakeLock");
    
       wakeLock.acquire();
    }
    
    void sleepGirls() {
        if (wakeLock != null) {
          wakeLock.release();
            wakeLock = null;
       }
    }
    

    【讨论】:

    • 或许还有1个“未释放”的wakeLock。所以屏幕不会关闭。我不会说英语,但我希望能有所帮助。
    【解决方案2】:

    用这个对我有用

      PowerManager powermanager=  ((PowerManager)getSystemService(Context.POWER_SERVICE));
      WakeLock wakeLock = powermanager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");
                wakeLock.acquire(9000);
                wakeLock.release
    
      KeyguardManager km =(KeyguardManager)getSystemService(KEYGUARD_SERVICE);
                k1 = km.newKeyguardLock("IN");
                k1.disableKeyguard();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      相关资源
      最近更新 更多