Есть десяток андроидов, все подписаны на topic firebase. Сообщения не содержат заголовка (notification) только date и не много.
Когда приложение убираешь из памяти - сообщения не доходят, но только до некоторых телефонов. Системы никакой, разные производители и версии 6,7,8.
Например Huawei на андроид 8 ловит, а на 6 - нет.
Sony на 6 ловит, Samsung на 8 - нет.
ловлю и через onMessageReceived()
и через onReceive()
,
и по переменке и одновременно.
Но как только запускаешь приложение сразу все прилетает.
Чего не учел?
Вот основной код:
public class FirebaseDataReceiver extends WakefulBroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
Public.toLog(" Получил ... onReceive");
}
}
public class GetFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
Public.toLog(" Получил ... onMessageReceived");
}
}
В манифесте:
<service android:name=".Message.MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
<service android:name=".Message.GetFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<receiver
android:name=".Message.FirebaseDataReceiver"
android:exported="true"
android:enabled="true"
android:directBootAware="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
</intent-filter>
</receiver>
В целом вопрос сводиться к запуску приложения в фоновом режиме. Если системой разрешен такой запуск приложения, то работает, если нет - нет. У некоторых моделей после установки по умолчанию такой режим отключен, включаешь его руками работает, как его включить программно не понятно. тут понимается этот вопрос
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть класс в котором есть методВ методе инициализируется переменная String, ей присваивается ссылка
Как можно создавать большое настольное приложение, чтобы не было большой зависимости между модулями, не приходилось делать сборку всего...