簡體   English   中英

屏幕無法在Android中使用喚醒鎖打開

[英]Screen not turning on with wake lock in Android

我的前台服務正在等待搖動。 收到該動議后,它將發出以下廣播:

Intent i = new Intent("com.company.app.shakeDetectedMessage");
sendBroadcast(i);

我的主要活動是通過實現該方法的廣播接收器接收的:

@Override
    public void onReceive(Context context, Intent intent)
    {
        MainActivity.this.turnOnScreen();
        Toast.makeText(getApplicationContext(), "Screen ON", Toast.LENGTH_SHORT).show();
    }

和我打開屏幕的方法:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

我有一個部分喚醒鎖

PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);
    PowerManager.WakeLock mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "SensorRead");
    mWakeLock.acquire();

在服務中聲明

但是,當我關閉屏幕並搖晃時,屏幕無法打開! 我驗證了每種方法都可以使用日志。 即使屏幕關閉,onReceive也可以正常工作。 廣播正在播放。 只是屏幕無法打開!

調用WakeLocker類的獲取方法

類:

public abstract class WakeLocker {
    private static PowerManager.WakeLock wakeLock;

    public static void acquire(Context context) {
        if (wakeLock != null) wakeLock.release();

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

    public static void release() {
        if (wakeLock != null) wakeLock.release(); wakeLock = null;
    }
}

所需權限

<uses-permission android:name="android.permission.WAKE_LOCK" />   

這對我有用

    PowerManager powerManager = getService(this, POWER_SERVICE);
    mScreenLock = powerManager.newWakeLock(
            PowerManager.SCREEN_BRIGHT_WAKE_LOCK |
            PowerManager.ACQUIRE_CAUSES_WAKEUP, "Lock");
    mScreenLock.acquire();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM