Android FCM推送不在一加八中工作
我尝试了以下解决方案,但它停止了推送通知的工作。我只是想阻止我的firebase服务被打瞌睡模式杀死。我尝试了不同的解决方案,比如发送高优先级的有效负载,但也没有成功Android FCM推送不在一加八中工作,android,push-notification,firebase-cloud-messaging,Android,Push Notification,Firebase Cloud Messaging,我尝试了以下解决方案,但它停止了推送通知的工作。我只是想阻止我的firebase服务被打瞌睡模式杀死。我尝试了不同的解决方案,比如发送高优先级的有效负载,但也没有成功 <service android:name=".backgroundmanager.BackgroundOperationsManagerService" android:enabled="true" android:process="com.hashedin.proces
<service android:name=".backgroundmanager.BackgroundOperationsManagerService" android:enabled="true" android:process="com.hashedin.processname" />
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, AlarmBroadCastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this,
ALARM_REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT);
if (Build.VERSION.SDK_INT >= 23) {
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, 30000, pendingIntent);
}
else if (Build.VERSION.SDK_INT >= 19) {
alarmManager.setExact(AlarmManager.RTC_WAKEUP, 30000, pendingIntent);
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP, 30000, pendingIntent);
}
<receiver android:name=".backgroundmanager.alarmmanager.AlarmBroadCastReceiver"
android:enabled="true"
android:process="com.hashedin.processname"/>
public class AlarmBroadCastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
{
PowerManager.WakeLock screenWakeLock;
Toast.makeText(context, "broadcast fired", Toast.LENGTH_LONG).show();
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
screenWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP,
"myapp:ScreenLock tag from AlarmListener");
screenWakeLock.acquire(10*60*1000L /*10 minutes*/);
Intent service = new Intent(context, AppFireBaseMessagingService.class);
startWakefulService(context, service);
screenWakeLock.release();
}
}
}
当应用程序被打开时,它工作,但当它被关闭时,它不工作。上述代码将阻止你的应用程序进入睡眠模式。确保正在推送通知负载中发送通知对象。您还可以从电池优化中删除应用程序上述代码将阻止您的应用程序进入睡眠模式。确保正在推送通知负载中发送通知对象。此外,您还可以从电池优化中删除应用程序确保您的应用程序被排除在电池优化之外: 转到设置,选择优化电池使用,选择全部,并确保您的应用未选中
此外,请转到设置/应用程序/您的应用程序/电池,并选中允许后台活动确保您的应用程序被排除在电池优化之外: 转到设置,选择优化电池使用,选择全部,并确保您的应用未选中
另外,转到设置/App/Your App/battery并选中Allow background activity(允许后台活动)现在有很多设备都有非常积极的电池节省器,这可以防止推送到您的应用,因为操作系统只是在后台杀死您的应用。除了谷歌,几乎所有制造商的设备都有这个问题。看看这个
我一直在处理同样的问题,我们所做的是检查设备上是否激活了任何电池优化,并向用户发送一条消息,让他知道推送体验将因此受到影响。现在有很多设备都有非常积极的电池节省器,因为操作系统只是在后台杀死你的应用程序,所以阻止推送到你的应用程序。除了谷歌,几乎所有制造商的设备都有这个问题。看看这个
我一直在处理同样的问题,我们所做的是检查设备上是否激活了任何电池优化,并向用户发送一条消息,让他知道推送体验将因此受到影响。OnePlus在这种情况下非常具有攻击性。你可以阅读更多关于它的内容。要解决此问题,您必须在设置中关闭应用程序的电池优化。在这种情况下,OnePlus非常具有攻击性。你可以阅读更多关于它的内容。若要解决此问题,您必须在“设置”中关闭应用程序的电池优化。这将在不同的进程中运行,因此最好将您的进程添加到前台服务I'的相同位置,i’我在同一进程中使用它,你能确认你的foregound服务是否正在运行吗?实际上我没有这个设备,在我的设备上它工作得很好,你能检查推送通知响应吗?这将在不同的进程中运行,因此最好将你的进程添加到前台服务的同一进程中i’,i’我在同一个进程中使用它,你能确认你的foregound服务是否正在运行吗?事实上,我没有这个设备,在我的设备上它工作得很好,你能检查推送通知响应吗?这是另一个资源,我发现关于你的问题非常有趣这是另一个资源,我发现关于你的问题非常有趣问题