所以,我正在开发一个Android应用程序,它接收来自Firebase的通知。接收它们没有问题,但问题是,我只能在应用程序打开且在主屏幕上时自定义它们在用户设备中的显示方式。因此,当应用程序关闭时,通知没有图标,没有声音,也没有振动。
你必须明白,尽管我已经在NotificationCompat类中更改了我想要的内容,但这些配置在应用程序关闭时并不适用。请参阅下面的代码。
所以,我希望我可以理解,如果有人能说出发生了什么,我将非常感激。
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "MyFirebaseMsgService";
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(TAG, "From: " + remoteMessage.getFrom());
if (remoteMessage.getData().size() > 0) {
Log.d(TAG, "Message data payload: " + remoteMessage.getData());
}
if (remoteMessage.getNotification() != null) {
Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
}
notifyuer(remoteMessage.getFrom(), remoteMessage.getNotification().getBody());
}
public void notifyuer(String from, String notification){
MyNotificationManager myNotificationManager = new MyNotificationManager(getApplicationContext());
myNotificationManager.showNotificacao(from,notification, new Intent(getApplicationContext(),MainActivity.class));
}
自定义通知类
public class MyNotificationManager {
private Context context;
public MyNotificationManager(Context context){
this.context = context;
}
public void showNotificacao(String from, String notification, Intent intent){
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0 , intent,
PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context);
Notification mNotification = notificationBuilder
.setContentIntent(pendingIntent)
.setSmallIcon(R.drawable.logocinza64)
.setContentTitle("S.I.C.C.")
.setContentText(notification)
.setAutoCancel(true)
.setVibrate(new long[]{ 100, 250, 100, 500, 800})
.build();
mNotification.flags |= Notification.FLAG_AUTO_CANCEL;
NotificationManager notificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
try{
Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone toque = RingtoneManager.getRingtone(context,defaultSoundUri);
toque.play();
}catch (Exception e){
}
notificationManager.notify(0 , mNotification);
}
}