5

У меня есть кнопка совместного доступа в GCM notification. При щелчке кнопки совместного доступа мне нужно запустить совместное использование. Все работает отлично. Единственная проблема, с которой я столкнулся, - это функция блокировки экрана Lollipop. Когда я нажимаю кнопку совместного доступа на экране блокировки, мой диалог намерений появляется под экраном блокировки, и пользователь должен разблокировать экран, чтобы увидеть диалог. Я хочу разблокировать экран программно, когда нажата кнопка совместного доступа.Разблокировать экран Программически

Я пробовал с Power Manager, но все это wakeClock флаги устарели и WindowManager.LayoutParams.Flag_KEEP_SCREEN_ON рекомендуется использовать. Но я не занимаюсь здесь. Я использую broadcastReciever context. и поэтому я не могу использовать метод getWindow().

Я также пробовал KeyguardManager. Но даже disableKeyguard() исправлен.

Я не могу использовать Intent.ACTION_SCREEN_ON, так как это необходимо использовать, если мы хотим выполнить любое действие после разблокирования экрана.

я использовал ниже намерения программно закрыть лоток уведомления:

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

Есть ли подобное намерение, что можно транслировать, чтобы разблокировать экран

Обновленный код с использованием 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

Я уже отправил ответ на аналогичный вопрос Проверьте
Turning on screen from receiver/service
ИЛИ еще проверить это
How to Lock/Unlock screen programmatically?

+0

Я попытался с 2-й вариант, чтобы разблокировать экран, но это не работает для меня. Пожалуйста, проверьте мой обновленный вопрос на изменения, которые я сделал для разблокировки экрана. –

+0

Вы пробовали с первым вариантом? Проверьте это – Kartheek

+0

Я не могу использовать активность. Если активна деятельность, она будет помещена поверх активности моего приложения. Я хочу разблокировать экран без использования контекста активности. –

0
Step 1: Add below code in your activity before 
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);** 

Step 2: Lock your mobile than you will see activity in which you have added this code. 
This will work even though your mobile is locked with pattern lock. This will work like a charm. 
Смежные вопросы