【问题标题】:Unlock the Screen Programmatically以编程方式解锁屏幕
【发布时间】:2020-08-23 00:23:03
【问题描述】:

我在GCM notification 中有一个分享按钮。单击共享按钮后,我需要启动共享意图。一切都很完美。我面临的唯一问题是Lollipop 锁屏功能。当我从锁定屏幕单击共享按钮时,我的意图对话框出现在锁定屏幕下方,用户必须解锁屏幕才能看到对话框。单击共享按钮时,我想以编程方式解锁屏幕。

我尝试使用电源管理器,但它的所有 wakeClock 标志都已弃用,建议使用 WindowManager.LayoutParams.Flag_KEEP_SCREEN_ON。但我没有在这里使用活动。我正在使用broadcastReciever context。因此我不能使用getWindow()method。

我也试过KeyguardManager。但即使是 disableKeyguard() 也已被弃用。

我不能使用Intent.ACTION_SCREEN_ON,因为如果我们想在屏幕解锁后执行任何操作,应该使用它。

我曾使用以下意图以编程方式关闭通知托盘:

Intent it = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
        mContext.sendBroadcast(it);

有没有类似的intent,可以广播解锁屏幕

使用 DevicePolicyManager 更新代码:

public static void handleShareBtnClick(Context context, String message) {
    GcmHelper helper = new GcmHelper();
    helper.shareMessage(context, message);
    if(Utility.isLollypopAndAbove()){
          helper.unlockLockScreen();
    }
    helper.launchShareforForAlert();

}



   public void unlockLockScreen(){
        DevicePolicyManager devicePolicyMngr= (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE);
        ComponentName compName=new ComponentName(mContext, DeviceAdminReceiver.class);
        if(!devicePolicyMngr.isAdminActive(compName))
            devicePolicyMngr.removeActiveAdmin(compName);
    }

即使使用了 DevicePolicyManager,它也没有解锁我的屏幕

【问题讨论】:

    标签: android android-intent unlock keyguard android-powermanager


    【解决方案1】:

    第1步:在setContentView(R.layout.example);之前的活动中添加以下代码

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

    第 2 步:锁定您的手机,然后您将看到添加此代码的活动。 即使您的手机被模式锁锁定,这也将起作用。这就像一个魅力。

    【讨论】:

    • 我真的试过这个并且它有效。我将它用于推送通知以自动打开屏幕,即使屏幕已关闭并锁定。谢谢。
    • 运行良好,谢谢!!,作为补充,其中一些代码现已弃用,您可以在此处处理此问题stackoverflow.com/questions/48277302/…
    猜你喜欢
    • 2012-12-13
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 2010-12-29
    相关资源
    最近更新 更多