开发者社区> 问答> 正文

应用研发平台EMAS中为什么 Android 的 fcm弹不出通知?

应用研发平台EMAS中为什么 Android 的 fcm弹不出通知?Google FCM Android 调试控制台打印了消息日志,但是通知栏没弹出通知。

展开
收起
小易01 2023-12-19 23:08:12 54 0
1 条回答
写回答
取消 提交回答
  • 在应用研发平台EMAS中,Android的FCM(Firebase Cloud Messaging)无法弹出通知,但Google FCM Android调试控制台已经打印了消息日志,可能是由以下原因导致的:

    1. 权限问题
      确保你的应用程序已经在AndroidManifest.xml中请求了显示通知的权限:
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    
    <permission
        android:name="${applicationId}.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />
    
    <uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
    

    同时,确保用户已经在设备设置中授予了这些权限。

    1. 通知渠道设置
      在Android 8.0及以上版本中,需要创建并配置通知渠道。确保你的应用程序已经设置了至少一个通知渠道,并且在发送通知时指定了正确的渠道ID。
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        NotificationChannel channel = new NotificationChannel("your_channel_id", "Your Channel Name", NotificationManager.IMPORTANCE_DEFAULT);
        channel.setDescription("Your Channel Description");
        NotificationManager manager = getSystemService(NotificationManager.class);
        manager.createNotificationChannel(channel);
    }
    
    NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "your_channel_id")
        .setSmallIcon(R.drawable.notification_icon)
        .setContentTitle("Notification Title")
        .setContentText("Notification Content")
        .setPriority(NotificationCompat.PRIORITY_DEFAULT);
    
    NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
    notificationManager.notify(notificationId, builder.build());
    
    1. 通知构建错误
      检查你的通知构建代码,确保所有必需的属性(如标题、内容和图标)都已正确设置。

    2. 设备静音或勿扰模式
      如果设备处于静音或勿扰模式,通知可能不会在通知栏中显示,但仍然会在FCM调试控制台中记录。

    3. 应用程序状态
      在某些情况下,如果应用程序被杀死或者设备资源紧张,可能会导致通知无法正常显示。尝试在不同的应用程序状态和设备条件下测试推送通知。

    4. 设备特定问题
      有些设备或厂商可能会对通知显示进行额外的限制或定制。在其他设备上测试推送通知以确认是否为设备特定问题。

    5. FCM消息类型
      确保你发送的消息是通知类型(notification),而不是数据类型(data)。数据类型的消息需要在应用程序中手动处理并显示通知。

    2023-12-29 10:27:14
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
基于阿里巴巴以及合作伙伴的最佳实践,围绕大前端、云原生领域的相关技术热点(小程序、Serverless、应用中间件、低代码、DevOps)展开行业探讨,与开发者一起探寻云原生时代应用研发的新范式。
相关文档: 移动研发平台
问答排行榜
最热
最新

相关电子书

更多
五天玩转EMAS Serverless 立即下载
EMAS平台全景介绍 立即下载
低代码开发师(初级)实战教程 立即下载