FirebaseMessaging.getInstance().subscribeToTopic("news");
ScheduledNotification notification = new ScheduledNotification("Title", "Message", "news");
Map data = new HashMap<>();
data.put("key", "value");
notification.setData(data);
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MINUTE, timeInMinutes);
FirebaseMessaging.getInstance().scheduleNotification(notification, calendar.getTimeInMillis());
NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context);
boolean areNotificationsEnabled = notificationManagerCompat.areNotificationsEnabled();
如果返回false,则需要引导用户打开通知权限。
检查Doze和App Standby模式。如果应用程序处于睡眠模式,则定时通知可能无法正常工作。可以采取的解决方法是使用Firebase In-App Messaging来发送即时通知。
检查Doze模式下的限制。最近的Android版本有更严格的Doze模式限制,可能会影响到定时通知的工作。您可以通过以下代码来检查:
PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!powerManager.isIgnoringBatteryOptimizations(context.getPackageName())) {
Intent intent = new Intent();
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + context.getPackageName()));
context.startActivity(intent);
}
}
如果返回false,则需要引导用户禁用电池优化。
通过上述步骤,您可以解决Android定时通知没有显示的问题。
上一篇:Android定时通知带有按钮
下一篇:Android定位服务广播