gpt4 book ai didi

android - 以编程方式解锁屏幕

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:08:54 25 4
gpt4 key购买 nike

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

我尝试使用 Power Manager,但它的所有 wakeClock 标志都已弃用,建议使用 WindowManager.LayoutParams.Flag_KEEP_SCREEN_ON。但我在这里没有使用 Activity 。我正在使用 broadcastReciever 上下文。因此我不能使用 getWindow() 方法。

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

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

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

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 之后,它也没有解锁我的屏幕

最佳答案

第 1 步:在您的 Activity 之前添加以下代码 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 步:锁定您的手机,然后您将看到已添加此代码的 Activity 。即使您的手机被模式锁定锁定,这也能正常工作。这将非常有效。

关于android - 以编程方式解锁屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31066821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com