Уведомление экрана блокировки Android не может открыть браузер при двойном нажатии
Мое приложение отправляет уведомление, при открытии которого открывается браузер с указанным URL-адресом. На самом деле завернутые намерения отправляются BroadcastReceiver, и этот широковещательный приемник запускает Browser.
Intent browserIntent = new Intent(Intent.ACTION_VIEW, intent.getData());
browserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(showTaskIntent);
Он отлично работает с уведомлением на выпадающей панели уведомлений, но не с уведомлением на экране блокировки. Он не может открыть браузер при двойном нажатии.
Из журнала я вижу, что ActivityManager получает намерение и пытается запустить Broswer:
09-02 15: 10: 52.309 1536-1894 / system_process I / ActivityManager: START u0 {act = android.intent.action.VIEW dat = https://www.thesun.co.uk/... flg = 0x10000000 cmp = com.android.browser /.BrowserActivity} из идентификатора пользователя 10059 на дисплее 0
Но то, что случилось с браузером
09-02 15:10:52.910 12131-12131/com.android.browser I/art: запуск блокировки GC Explicit 09-02 15:10:52.978 12131-12131/com.android.browser I/art: явная одновременная отметка Sweep GC освободил 44(1768B) объектов AllocSpace, 0(0B) объектов LOS, 15% свободных, 11 МБ / 13 МБ, приостановлено 427 всего 63,223 мс 09-02 15:10:52.980 12131-12131/com.android.browser I/art: Начало блокировки GC Явное 09-02 15: 10: 53.095 12131-12131/com.android.browser I/art: Явное одновременное сканирование меток GC освобождено 5 (160B) объектов AllocSpace, 0(0B) объектов LOS, 15% бесплатно, 11 МБ / 13 МБ, пауза 697 всего 114.607 мс 09-02 15: 10: 53.095 12131-12131/com.android.browser I/art: Начало блокировки GC Explicit 09-02 15:10:53.255 12131-12131 / com. android.browser I / art: явная одновременная развертка меток GC освободил 3 (96B) объекта AllocSpace, 0(0B) объектов LOS, 15% свободных, 11 МБ / 13 МБ, приостановлено 42,926 мс всего 145,640 мс
Я предполагаю, что в это время устройство все еще заблокировано экраном блокировки, когда ActivityManager сообщает о намерении запустить браузер, система Android может иметь некоторые проверки или механизм, чтобы не запускать это действие.
У кого-нибудь была такая проблема раньше? Спасибо!
1 ответ
Я думаю, что это ошибка в Chrome, и я поднял эту проблему для Android и Chrome:
Однако я нашел обходной путь: использование пользовательских вкладок вместо обычных вкладок может решить эту проблему.
intent.putExtra("android.support.customtabs.extra.SESSION", context.getPackageName());
intent.putExtra("android.support.customtabs.extra.EXTRA_ENABLE_INSTANT_APPS", true);
Добавьте вышеуказанные дополнительные функции, чтобы Chrome использовал пользовательские вкладки.
Узнайте больше здесь: https://developer.chrome.com/multidevice/android/customtabs