Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
dripservice
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
1

Неправильно работает оповещение google Firebase

16.02.2017, 22:04. Просмотров 1280. Ответов 26
Метки нет (Все метки)

Сделал оповещение настроил его таким образом

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 private void showNotification(String title, String message) {
        Intent intent = new Intent(getApplicationContext(),MainActivity.class);
        PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
       
        NotificationCompat.Builder b = new NotificationCompat.Builder(getApplicationContext());
 
        b.setAutoCancel(true)
                .setDefaults(Notification.DEFAULT_ALL)
                .setWhen(System.currentTimeMillis())
                .setSmallIcon(R.drawable.icon)
                .setContentTitle(title)
                .setContentText(message)
                .setContentIntent(contentIntent);
 
        NotificationManager notificationManager = (NotificationManager)getBaseContext().getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(1,b.build());
}
Проблема в том что звуковое оповещение и моя картинка R.drawable.icon работает только при условии что приложение отрыто
Если оно свернуто или закрыто приходит стандартный значок и без звука

В манифесте добавлял это не помогает

XML
1
2
3
4
5
6
7
8
9
10
<service android:name=".FirebaseService.MyFiverbaseIdService">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
            </intent-filter>
        </service>
        <service android:name=".FirebaseService.MyFirebaseMessagingService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT"
            </intent-filter>
        </service>
Каким образом получать оповещения если оно выключено в том числе с моими настройками ?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2017, 22:04
Ответы с готовыми решениями:

Cloud Messaging Firebase не работает, в чем проблема?
Всем привет. Столкнулся с такой проблемой, после последних обновлений, не могу организовать...

Появляется реклама в нижнем правом углу как оповещение, при открытии Google Chrome
Здравствуйте, когда открываю браузер, снизу выходит реклама в виде оповещения и всякая реклама....

Проверьте задачку по циклам, неправильно работает. [думаю что неправильно]
Спасибо что решили зайти. Задание выгладит так: http://*******/PW95p А результат выплнения:...

Неправильно работает цикл for, и функции работают неправильно
1) Неправильно работает цикл for(k=0...). Входит только 1 раз, дальше вылетает. Делал пошаговую...

Яндекс Диск. Оповещение/блокировка при открытии файла, с которым работает другой пользователь
Добрый день! Прошу помочь с приложением Яндекс Диск, а именно с ситуацией, когда два пользователя...

26
Vladimirys
318 / 213 / 29
Регистрация: 16.01.2010
Сообщений: 621
16.02.2017, 22:23 2
Оповещение работает так как вы ему указываете. Ваша проблема должна решиться вот так
https://www.codementor.io/flame3/sen...base-du10860kb
0
dripservice
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
17.02.2017, 15:01  [ТС] 3
не совсем понял тоесть эта версия будет работать из под background ???

Вот что заинтересовало видимо мне нужно сделать таким образом но как ?

If your app is running on the background

Добавлено через 16 часов 17 минут
Я так понял что из firebase нельзя запускать в backgrounde приложения оповещение, вернее можно но без звука и картинки (( Только через апи вопрос как это апи организовать ? Пробовал через Advanced REST client
но там можно только по токену to : " bnfsdbnFDSF342w...."
А мне нужно на все устройства
0
vxg
Модератор
3281 / 2077 / 328
Регистрация: 13.01.2012
Сообщений: 8,073
18.02.2017, 07:17 4
dripservice, вам нужно слать data-сообщение - другие сообщения уходят в центр уведомлений, а это вы можете поймать в обработчике входящих сообщений и создать своё уведомление
0
dripservice
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
18.02.2017, 14:33  [ТС] 5
Понял каким образом это сделать??
0
vxg
Модератор
3281 / 2077 / 328
Регистрация: 13.01.2012
Сообщений: 8,073
18.02.2017, 16:36 6
dripservice, сделать что? если послать сообщение - то возьмите и пошлите сообщение нужного типа. если словить то
XML
1
2
3
4
5
        <service android:name=".AppFirebaseMessagingService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>
Java
1
2
3
4
5
6
7
8
9
public class AppFirebaseMessagingService extends FirebaseMessagingService {
 
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        if (remoteMessage.getData().size() > 0) {
            String myData= remoteMessage.getData().get("myData");
        }
    }
}
0
korshun84
88 / 87 / 23
Регистрация: 08.07.2014
Сообщений: 548
18.02.2017, 22:32 7
Цитата Сообщение от dripservice Посмотреть сообщение
Понял каким образом это сделать??
https://firebase.google.com/docs/clo...#data_messages
0
dripservice
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
19.02.2017, 15:10  [ТС] 8
Спасибо все верно работает только как заменить правильно

"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."

на отправка всем кто установил ? Что писать вместо токена?

Добавлено через 16 часов 31 минуту
Странно что то вообще ничего не получается в backgrounde

в обычном режиме приходит оповещение когда приложение выключено но без звука и моей картинки а когда открыто со звуком... не пойму и найти не могу ничего как будто не существует другого
0
vxg
Модератор
3281 / 2077 / 328
Регистрация: 13.01.2012
Сообщений: 8,073
19.02.2017, 16:25 9
отправляйте data-сообщения, т.е. без секции notification
Взято отсюда - как я понял то что вы шлете из консоли всегда уходит как уведомление - все что является уведомлением уходит в Notification center
0
korshun84
88 / 87 / 23
Регистрация: 08.07.2014
Сообщений: 548
19.02.2017, 17:33 10
Цитата Сообщение от dripservice Посмотреть сообщение
Спасибо все верно работает только как заменить правильно
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
на отправка всем кто установил ? Что писать вместо токена?
https://developers.google.com/cloud-...rom_the_server
+ всех, кто установил, надо подписать на topic (тему), в примере по ссылке эта тема называется foo-bar, название может быть любым.
0
dripservice
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
20.02.2017, 20:08  [ТС] 11
Понял тоесть таким способом мы подписываемся на topic

Java
1
2
3
4
5
6
private void subscribeTopics(String token) throws IOException {
    GcmPubSub pubSub = GcmPubSub.getInstance(this);
    for (String topic : TOPICS) {
        pubSub.subscribe(token, "/topics/" + topic, null);
    }
}

Где мне это подписать и куда прописать subscribeTopics() чтобы при отправке все сработало?

Добавлено через 54 минуты
Все подписался с этим разобрался

ПОсле отправки ошибка

Java
1
2
3
4
5
6
7
8
9
10
11
E/AndroidRuntime: FATAL EXCEPTION: pool-2-thread-1
                  Process: com.washing.macbook.pushnotification, PID: 5434
                  java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.google.firebase.messaging.RemoteMessage$Notification.getBody()' on a null object reference
                      at com.washing.macbook.pushnotification.FirebaseService.MyFirebaseMessagingService.onMessageReceived(MyFirebaseMessagingService.java:18)
                      at com.google.firebase.messaging.FirebaseMessagingService.zzo(Unknown Source)
                      at com.google.firebase.messaging.FirebaseMessagingService.zzn(Unknown Source)
                      at com.google.firebase.messaging.FirebaseMessagingService.zzm(Unknown Source)
                      at com.google.firebase.iid.zzb$2.run(Unknown Source)
                      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
                      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
                      at java.lang.Thread.run(Thread.java:761)
Добавлено через 25 минут
Получилось спасибо всем!! отловить нужно было в условии теперь можно и с firebase отсылать и с Rest Client

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 if(remoteMessage.getNotification() != null)
       {
        handleNotification (remoteMessage.getNotification().getBody());}
 
        if (remoteMessage.getData().size() >0 )
        {
 
             remoteMessage.getData();
 
            String message = remoteMessage.getData().get("message");
            //imageUri will contain URL of the image to be displayed with Notification
            String imageUri = remoteMessage.getData().get("image");
            //If the key AnotherActivity has  value as True then when the user taps on notification, in the app AnotherActivity will be opened.
            //If the key AnotherActivity has  value as False then when the user taps on notification, in the app MainActivity will be opened.
            String TrueOrFlase = remoteMessage.getData().get("MainActivity");
 
            //To get a Bitmap image from the URL received
            bitmap = getBitmapfromUrl(imageUri);
 
            sendNotification(message, bitmap, TrueOrFlase);
        }
Добавлено через 23 часа 55 минут
Привет подскажите что не так на эмуляторе все отлично проходит через REST client

но после того как приложение попадает в маркет то это не работает можно отправить только через firebase center в чем ошибка может быть???

Java
1
2
3
4
5
6
7
8
9
{ "data": {
    
    "title" : "Hi"
    "message": "WElcome!"
   
    "AnotherActivity": "True"
  },
 "to": "/topics/global",
}
1
vxg
Модератор
3281 / 2077 / 328
Регистрация: 13.01.2012
Сообщений: 8,073
21.02.2017, 06:09 12
dripservice, собственно как именно не работает и как отсылается
0
dripservice
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
23.02.2017, 16:55  [ТС] 13
Не работает тоесть не приходит на устройства
Отсылается через Rest Client

https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=********


{ "data": {

"title" : "Адамант"
"message": "Добро Пожаловать!"

"AnotherActivity": "True"
},
"to": "/topics/global",
}

Добавлено через 5 часов 46 минут
Тоесть даже не нужно в маркет заливать просто создаю апк кидаю на телефон запускаю все работает как только отправляю уведомление через firebase все отлично все приходит как только отправляю через Rest client Json скрпитом то не приходит ничего в эмуляторе все отлично работает (( Не понимаю в чем проблема может быть???

Добавлено через 20 часов 42 минуты
Ребят в общем проблема осталась
Запускаю проект в debug все работает
Запускаю в release работает все кроме оповещений )))
0
vxg
Модератор
3281 / 2077 / 328
Регистрация: 13.01.2012
Сообщений: 8,073
23.02.2017, 17:00 14
dripservice, не привязано ли у вас в консоли именно этот проект к именно тому пакету?
0
dripservice
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
23.02.2017, 17:17  [ТС] 15
Вот вытащил лог с ошибкой от гугла может тут проблема ??


Java
1
2
W/GooglePlayServicesUtil: Google Play services out of date.  Requires 10298000 but found 10084280
W/FA: Service connection failed: ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null, message=null}
версии

Java
1
2
compile 'com.google.firebase:firebase-messaging:10.2.0'
compile 'com.google.android.gms:play-services-gcm:10.2.0'
0
Pablito
2829 / 2248 / 759
Регистрация: 12.05.2014
Сообщений: 7,850
Завершенные тесты: 1
23.02.2017, 17:18 16
на устройстве надо обновить гуглосервисы или понизить версию подключенных либ в градле
0
dripservice
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
23.02.2017, 17:25  [ТС] 17
Если понизить версию то на какую лучше чтобы у всех пользователей с версиеей андроида 4/5/6/7 работали оповещения ?
0
vxg
Модератор
3281 / 2077 / 328
Регистрация: 13.01.2012
Сообщений: 8,073
23.02.2017, 17:26 18
Паблито, интересно почему эта тварь (сервисы) просто не скажет о необходимости обновления пользователю?
0
dripservice
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
23.02.2017, 17:32  [ТС] 19
Да вообще странно все как так оповещения с консоли приходят а вот через json Rest Client нет
причем на эмуляторе все приходит

Я вообще запутался...
0
vxg
Модератор
3281 / 2077 / 328
Регистрация: 13.01.2012
Сообщений: 8,073
24.02.2017, 08:20 20
dripservice, с консоли приходят даже на реальное устройство?
0
24.02.2017, 08:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2017, 08:20

Google Chrome неправильно отображает SVG-картинки.
Google Chrome неправильно отображает SVG-картинки. Создал вот такой вот html-код: &lt;object...

Цикл работает неправильно, в то время как POST работает
Всем привет! Я хотел написать под php скрипт с авторизацией, брут, на своем сайте(подбор пароля)....

Баг в Google Chrome при ajax-запросе, Скрипт работает во всех браузерах кроме Google Chrome
данный скрипт срабатывает везде (опера, ИЕ, ФФ, Сафари), кроме Google Chrome: // запись в кэш...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru