Я пытаюсь отправить сообщения FCM на свое устройство.Я получаю их правильно, когда приложение находится в фоновом режиме или на переднем плане.Однако, когда мое приложение убито, то есть, когда оно удалено из недавних приложений, я не получаю уведомления, если оно находится в стандартном «Оптимизированном» режиме использования батареи.Когда я устанавливаю режим батареи моего приложения на «Не оптимизирован», я получаю уведомления правильно, даже когда приложение убито.
И да, я пытался отправлять сообщения FCM и уведомления FCM с «Высоким» приоритетом, но вход в систему включенПолучение meassge показывает это:
Error broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE pkg=com.flagg327.guicomaipu (has extras) }
Все другие приложения (WhatsApp, Facebook и т. д.) на моем устройстве находятся в режиме «Оптимизировано», но они получают push-уведомления, даже когда они убиты.
Я пытался установить подписанную версию моего приложения apk, но до сих пор нет ответа в фоновом режиме
Сейчас я реализовал базовую функциональность
@Override
protected void onStart() {
super.onStart();
packageName = getApplication().getPackageName();
intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
pm = (PowerManager)
getApplication().getSystemService(Context.POWER_SERVICE);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O &&
!pm.isIgnoringBatteryOptimizations(packageName)) {
intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
getApplication().startActivity(intent);
}
}
Это в основном приводит пользователя к настройкам и вынуждает егоотключить оптимизацию, но это плохой подход, как мы можем программно решить эту проблему.
Я использую OnePlus 5T (Android 8.1.0).Может кто-нибудь объяснить, почему это происходит именно в моем приложении? И как добавить мое приложение в белый список
это можно реализовать вот мой код для полезной нагрузки данных
JSONObject root = new JSONObject();
JSONObject data = new JSONObject();
data.put("type", type);
data.put("message", message);
data.put("id", pNumber);
data.put("count",count);
JSONObject android = new JSONObject();
android.put("priority","high");
root.put("android",android);
root.put("data", data);
root.put("to", "/topics/"+recipients);
String result = postToFCM(root.toString());
Любая помощь будет оценена ...