Android Oreo中的FCM推送通知问题
创始人
2024-08-14 22:00:55
0次

在Android Oreo中,FCM(Firebase Cloud Messaging)推送通知需要做一些额外的适配工作。以下是一个解决Android Oreo中FCM推送通知问题的示例代码:

  1. 在AndroidManifest.xml文件中添加渠道声明:

  
    
  

  1. 在res/values/strings.xml文件中定义默认通知渠道ID:

    default_channel

  1. 创建一个NotificationHelper类来处理通知相关操作:
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
import android.os.Build;

public class NotificationHelper {
    private static final String CHANNEL_ID = "default_channel";
    private static final String CHANNEL_NAME = "Default Channel";
    private static final String CHANNEL_DESCRIPTION = "Default notification channel";

    public static void createNotificationChannel(Context context) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
            NotificationChannel channel = new NotificationChannel(CHANNEL_ID, CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT);
            channel.setDescription(CHANNEL_DESCRIPTION);
            notificationManager.createNotificationChannel(channel);
        }
    }
}
  1. 在FirebaseMessagingService中调用NotificationHelper类的方法:
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;

public class MyFirebaseMessagingService extends FirebaseMessagingService {
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        // 处理收到的消息
        showNotification(remoteMessage.getNotification().getTitle(), remoteMessage.getNotification().getBody());
    }

    private void showNotification(String title, String body) {
        NotificationHelper.createNotificationChannel(this);

        // 创建通知
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this, NotificationHelper.CHANNEL_ID)
                .setContentTitle(title)
                .setContentText(body)
                .setSmallIcon(R.drawable.ic_notification)
                .setAutoCancel(true);

        NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
        notificationManager.notify(0, builder.build());
    }
}

这样,在Android Oreo中,你就能够正确地显示FCM推送的通知了。请记得将代码中的图标和通知内容替换为你自己的内容。

相关内容

热门资讯

我来分享!雪花透视功能方法,雪... 我来分享!雪花透视功能方法,雪花竟然有透视方法1、该软件可以轻松地帮助玩家将雪花辅助器有哪些功能提升...
揭秘几款!小牛棋牌开挂功能技巧... 揭秘几款!小牛棋牌开挂功能技巧,小牛棋牌总是是真的有开挂技巧1、任何小牛棋牌透视是真的假的的玩家都可...
重要通知!淮安麻将辅助功能脚本... 重要通知!淮安麻将辅助功能脚本,淮安麻将果然存在有辅助脚本1、每一步都需要思考,不同水平的挑战淮安麻...
最新技巧!红豆大厅辅助功能插件... 最新技巧!红豆大厅辅助功能插件,红豆大厅确实是有辅助插件1、打开软件启动之后找到中间准星的标志长按。...
重大科普!LL竞技透视功能工具... 重大科普!LL竞技透视功能工具,LL竞技本来有透视工具1、在LL竞技插件功能辅助器技巧中,中转单元十...
必看攻略!娱网皮球开挂功能脚本... 必看攻略!娱网皮球开挂功能脚本,娱网皮球都是真的是有开挂脚本1、必看攻略!娱网皮球开挂功能脚本,娱网...
实测揭晓!同城510k辅助功能... 实测揭晓!同城510k辅助功能方法,同城510k总是存在有辅助方法1、操作简单,无需同城510k手机...
分享认知!微乐家乡麻将辅助功能... 分享认知!微乐家乡麻将辅助功能插件,微乐家乡麻将其实真的有辅助插件微乐家乡麻将辅助器是一种具有地方特...
每日必备!百家乐透视挂功能教程... 每日必备!百家乐透视挂功能教程,百家乐果然存在有透视挂教程1、每日必备!百家乐透视挂功能教程,百家乐...
玩家实测!凤凰棋牌辅助功能攻略... 玩家实测!凤凰棋牌辅助功能攻略,凤凰棋牌本来是有辅助攻略1、完成凤凰棋牌辅助器v3.3的残局,帮助玩...