我正在尝试将FCM消息发送到我的设备。当应用程序处于后台或前台时,我会正确收到它们。但是,当我的应用程序被杀死时,即从最近的应用程序中删除时,如果它处于默认的“优化”电池使用模式,则不会收到通知。当我将应用程序的电池模式设置为“未优化”时,即使应用程序被杀,我也能正确接收通知。
是的,我尝试发送FCM消息和“高”优先级的FCM通知,但接收meassge上的logcat显示:
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)。任何人都可以解释为什么在我的应用程序中发生这种情况?以及如何将我的应用程序添加到白名单
can this be implemented 是我的数据有效负载代码
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());
任何帮助将不胜感激...
这是您的问题的解决方案。
your app
并点按它。your app
并点按它。