Android 当应用程序关闭且处于优化电池模式时未接收FCM消息| OnePlus 5t | OnePlus 6 |错误广播意图回调:结果=取消
我正在尝试向我的设备发送FCM消息。当应用程序位于后台或前台时,我会正确接收它们。但是,当我的应用程序被终止(即从最近的应用程序中删除)时,如果它处于默认的“优化”电池使用模式,我将不会收到通知。当我将应用程序的电池模式设置为“未优化”时,即使应用程序被关闭,我也能正确接收通知 是的,我尝试过以“高”优先级发送FCM消息和FCM通知,但收到消息时的logcat显示:Android 当应用程序关闭且处于优化电池模式时未接收FCM消息| OnePlus 5t | OnePlus 6 |错误广播意图回调:结果=取消,android,push-notification,background,firebase-cloud-messaging,android-8.0-oreo,Android,Push Notification,Background,Firebase Cloud Messaging,Android 8.0 Oreo,我正在尝试向我的设备发送FCM消息。当应用程序位于后台或前台时,我会正确接收它们。但是,当我的应用程序被终止(即从最近的应用程序中删除)时,如果它处于默认的“优化”电池使用模式,我将不会收到通知。当我将应用程序的电池模式设置为“未优化”时,即使应用程序被关闭,我也能正确接收通知 是的,我尝试过以“高”优先级发送FCM消息和FCM通知,但收到消息时的logcat显示: Error broadcast intent callback: result=CANCELLED forIntent { act
Error broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE pkg=com.flagg327.guicomaipu (has extras) }
我设备上的所有其他应用程序(WhatsApp、Facebook等)都处于“优化”模式,但即使它们被杀死,也会收到推送通知
我已尝试安装我的应用程序的已签名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());
任何帮助都将被感激 这是您的问题的解决方案
OOS在通知方面具有惊人的攻击性,以至于许多人只是安装了天堂操作系统来避免它。类似的,可能有用的不,我已经尝试了上述帖子中提到的所有解决方案,但对我不起作用:(抱歉,寻找一种编程方法,请回答保持开发人员的观点。没有编程方法可以执行socan I白名单应用程序,这样即使经过优化,它也可以像whatsapp一样在后台运行?请参阅此警报管理器在每个周期间隔内触发,但我正在寻找异步方法,即。无论何时收到通知,都需要实时处理