Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

GCM notification на выключеный экран - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Ошибка сборки после подключения AdColony http://www.cyberforum.ru/android-dev/thread1782796.html
Подключил рекламу AdColony в свое приложение, хотел затестить на своем мобильнике, но Android Studio выдал такое: Information:Gradle tasks :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DATE...
Программирование Android PreferenceActivity - что использовать вместо устаревшего метода addPreferencesFromResource Разбираюсь с PreferenceActivity. Определил разметку, и теперь хочу подключить, а метод addPreferencesFromResource(int preferenceResId) уже считается устаревшим. Что вместо него юзать? http://www.cyberforum.ru/android-dev/thread1782787.html
Максимально увеличить один элемент в Gridlayout и сжать до минимума остальные Программирование Android
Здравствуйте! Имеется тестовая разметка: <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android" ...
MediaPlayer задать громкость Программирование Android
Как в MediaPlayer задать максимальную громкость? Или системную для уведомлений. AssetFileDescriptor afd = ctx.getResources().getAssets().openFd("isnt_it.mp3"); MediaPlayer...
Программирование Android Подключить проект с Github через gradle http://www.cyberforum.ru/android-dev/thread1782712.html
Допустим на гитхабе есть какой то проект или библиотека и я хочу ее импортировать. И вот если этот проект скачивать от туда потом открывать в Android Studio, то возникают некоторые ошибки с gradle...
Программирование Android После подключения ListViewAnimations не могу собрать проект Добрый день! Решил попробовать применить чужую библиотеку ListViewAnimations https://github.com/nhaarman/ListViewAnimations Дока тут: http://nhaarman.github.io/ListViewAnimations/#getting-started... подробнее

Показать сообщение отдельно
Pablito
2496 / 1980 / 618
Регистрация: 12.05.2014
Сообщений: 6,923
Завершенные тесты: 1
20.07.2016, 15:44
Короче меня бомбануло и пришлось потратить несколько часов на выяснение.

У меня в наработках давно болтался тестовый проектик с подключенным GCM.
На нем при включенном экране все работает и метод onMessageRevieve вызывается. При выключенном экране - метод не вызывается.
Я сразу сделал вывод что надо копать не в сторону WakeLock-ов, а куда-то дальше.

Студия намекала что порабы сменить GCM на Firebase Messaging.
Перевел проект на FCM, ничего не изменилось. Кстати, стало все намного проще, меньше кода, меньше классов, проще регистрация и т.д.
Метод onMessageReceived теперь принимает RemoteMessage.

Пришлось читать доки внимательно.
Итак, что надо добавить/изменить что бы заработало (уведомление включало экран) на FCM.
1. важно: когда формируется json для передачи сообщения, из него нужно убрать всю ветку notification, просто убрать и все, все данные передавать в секции data. Тогда метод onMessageReceived будет вызываться даже при выключенном экране
2. в методе onMessageReceived до или после показа уведомления вызвать метод типа такого
Java
1
2
3
4
5
    private void wakeUp() {
        PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
        final PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "");
        wl.acquire();
    }
без второго флага экран не включится
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru