【发布时间】: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