В своем приложении я использую невероятную библиотеку StandOut Марка Вея: http://pingpongboss.github.io/StandOut/ а>
То, что я делаю, очень похоже на приложение TrueCaller.
Который отображает мой собственный вид при входящем звонке. Это вообще отлично работает.
В чем моя проблема?
В очень конкретном случае:
- Только на Android Marshmallow (6)
- Когда блокировка ключа включена
Затем окно StandOut приложения отправляется обратно за окном входящего вызова и не отображается, за исключением мерцания на долю секунды.
Что я пробовал?
Использование обоих этих флагов вместе:
- FLAG_DISMISS_KEYGUARD
- FLAG_SHOW_WHEN_LOCKED
Кроме того (и отдельно) я попробовал этот устаревший способ:
KeyguardManager.KeyguardLock mLock;
KeyguardManager mKeyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE);
mLock = mKeyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
mLock.disableKeyguard();
Когда это также не удалось, я попытался предоставить своему приложению права администратора (я не буду добавлять весь код, чтобы сделать это, поскольку он длинный, но я сделал это правильно), а затем попробовал следующее:
devicePolicyManager.setKeyguardDisabled(deviceAdmin,true);
ПРИМЕЧАНИЕ. Я хочу еще раз подчеркнуть, что знаю, что это возможно, поскольку приложение TrueCaller делает это так хорошо и не терпит неудачу при каждом вызове. Просто нужна помощь, чтобы найти правильный способ сделать это.
Заранее спасибо!