Я новичок в Stackoverflow и в настоящее время работаю над приложением, которое обрабатывает входящие уведомления от пожарной базы и открывает мое приложение.Как я искал решение.Цель состоит в том, чтобы получать уведомления, даже если приложение находится в фоновом режиме и экран выключен (телефон заблокирован).Или даже мое приложение убито, но я хочу, чтобы приложение получало уведомление, например, WhatsApp.В WhatsApp все уведомления получают, даже если телефон заблокирован или приложение убито, я хочу сделать то же самое, но я новичок в разработке для Android, поэтому я не могу понять, как это сделать.
Когда мое приложение находится на переднем плане, все уведомленияраспознаются Получателем.Даже когда приложение работает в фоновом режиме, но мой телефон все еще включен, я могу получать эти сообщения.Здесь происходят странные вещи:
Приложение находится на переднем плане, и я выключаю экран -> уведомления распознаются.Приложение работает в фоновом режиме, и я выключаю экран -> уведомления не распознаются.
Большая странная вещь - моя цель, достигнутая на моем старом мобильном телефоне micromax Unite 3.В этом мобильном телефоне я получаю уведомление, даже если мой фон или фон был убит, но в моем redmi note 3 уведомление о прекращении работы приложения не распознано.
Я хочу решить эту проблему.Я хочу, чтобы мое уведомление распознавалось, даже если приложение на переднем плане, в фоновом режиме или убито во всех версиях операционной системы и мобильных телефонах.
Я использую простой метод onMessageReceived () кода службы firebase ниже
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if(remoteMessage.getData()!=null)
sendNotification(remoteMessage);
}
private void sendNotification(RemoteMessage remoteMessage) {
Map<String,String> data=remoteMessage.getData();
String title=data.get("title");
String content=data.get("content");
NotificationManager notificationManager=(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
String NOTIFICATION_CHANNEL_ID="Gov_Job";
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O)
{
//Only active for Android o and higher because it need Notification Channel
@SuppressLint("WrongConstant") NotificationChannel notificationChannel=new NotificationChannel(NOTIFICATION_CHANNEL_ID,
"GovJob Notification",
NotificationManager.IMPORTANCE_MAX);
notificationChannel.setDescription("GovJob channel for app test FCM");
notificationChannel.enableLights(true);
notificationChannel.setLightColor(Color.RED);
notificationChannel.setVibrationPattern(new long[]{0,1000,500,1000});
notificationChannel.enableVibration(true);
notificationManager.createNotificationChannel(notificationChannel);
}
NotificationCompat.Builder notificationBuilder=new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);
notificationBuilder.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
//.setSmallIcon(android.support.v4.R.drawable.notification_icon_background)
.setSmallIcon(R.mipmap.ic_launcher)
.setTicker("Hearty365")
.setContentTitle(title)
.setContentText(content)
.setContentInfo("info");
notificationManager.notify(1,notificationBuilder.build());
}