开发者社区> 问答> 正文

这个参数我设置成oppo的channel_id 会影响Android8.0以上的设备通知接收功能?

这个参数我设置成oppo的channel_id 会影响Android8.0以上的设备通知接收功能吗 ? oppo的channel_id咋和Android8.0以上的设备通知接收功能用同一个参数。71f7ba35a7ab07f7e11a0c7904f985a0.jpg

展开
收起
真的很搞笑 2023-05-17 13:29:05 220 0
1 条回答
写回答
取消 提交回答
  • 设置参数为 Oppo 的 channel_id 实际上是针对 Oppo 设备进行通知推送的,不会直接影响 Android 8.0 以上设备的通知接收功能。但是,如果您的应用程序要在多个 Android 设备上运行,而不仅仅是 Oppo 设备,那么您需要使用兼容所有 Android 设备的通知机制。在 Android 8.0 及以上版本中,推荐使用 NotificationChannels 的方式进行通知推送。具体来说,您需要按照以下步骤进行操作:

    1. 在应用程序中创建 NotificationChannels,可参考以下代码片段:
    public class NotificationHelper {
    
        private Context mContext;
        private NotificationManager mNotificationManager;
    
        public NotificationHelper(Context context) {
            mContext = context;
            mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    
            // Create the NotificationChannels.
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                createNotificationChannels();
            }
        }
    
        @RequiresApi(api = Build.VERSION_CODES.O)
        private void createNotificationChannels() {
            // Create the NotificationChannels with unique IDs, names, and descriptions.
            NotificationChannel channel1 = new NotificationChannel("channel1", "Channel 1", NotificationManager.IMPORTANCE_HIGH);
            channel1.setDescription("This is Channel 1");
    
            NotificationChannel channel2 = new NotificationChannel("channel2", "Channel 2", NotificationManager.IMPORTANCE_LOW);
            channel2.setDescription("This is Channel 2");
    
            // Add the NotificationChannels to the NotificationManager.
            mNotificationManager.createNotificationChannel(channel1);
            mNotificationManager.createNotificationChannel(channel2);
        }
    
        ...
    }
    

    在上面的示例中,我们创建了两个不同的 NotificationChannels,并为它们设置了唯一的 ID、名称和描述,以及重要性等级。

    1. 在发送通知时,使用创建的 NotificationChannels 进行通知推送,可参考以下代码片段:
    public class NotificationHelper {
    
        ...
    
        public void sendNotification() {
            // Create a NotificationCompat.Builder object.
            NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext, "channel1")
                    .setSmallIcon(R.drawable.notification_icon)
                    .setContentTitle("My notification title")
                    .setContentText("This is the content text of my notification.")
                    .setPriority(NotificationCompat.PRIORITY_HIGH);
    
            // Show the notification.
            mNotificationManager.notify(1, builder.build());
        }
    
        ...
    }
    

    在上面的示例中,我们在 NotificationCompat.Builder 的构造函数中指定要使用的 NotificationChannels,这里使用的是上面创建的 “channel1”。然后,我们设置通知图标、标题、内容等属性,并最终使用 NotificationManager 的 notify() 方法显示通知。

    通过这种方式,您可以创建适用于所有 Android 设备的通知推送功能,并且支持在 Android 8.0 及以上版本中使用 NotificationChannels 进行通知显示。

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

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载