NotificationCompat.Builder(getApplicationContext(),CHANNEL_ID)无法处理Oreo Firebase通知

时间:2017-11-30 07:03:54

标签: android firebase-cloud-messaging android-notifications android-support-library

我正在尝试使用 Oreo版本中的std::vector<std::string &> *poi = new std::vector<std::string &>(); 显示通知,因此当我获得解决方案时它没有显示 Firebase但它正在向我展示enter image description here

和我的NotificationCompat.Builder(this, CHANNEL_ID)文件是

build.gradle

2 个答案:

答案 0 :(得分:5)

文档中提到不推荐使用构建器方法NotificationCompat.Builder(Context context)。我们必须使用具有channelId参数的构造函数:

NotificationCompat.Builder(Context context,String channelId) https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html

在API级别26.0.0-beta1中不推荐使用此构造函数。请改用NotificationCompat.Builder(Context,String)。所有发布的通知都必须指定NotificationChannel ID。 https://developer.android.com/reference/android/app/Notification.Builder.html

这个构造函数在API级别26中已弃用。请改用Notification.Builder(Context,String)。所有发布的通知都必须指定NotificationChannel ID。 如果要重用构建器设置器,可以使用channelId创建构建器,并将该构建器传递给辅助方法并在该方法中设置首选设置。

尝试这个希望所以它会起作用......

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getContext(), "CHANNEL_ID");

        notificationBuilder.setAutoCancel(true)
                .setDefaults(Notification.DEFAULT_ALL)
                .setWhen(System.currentTimeMillis())
                .setSmallIcon(R.drawable.ic_launcher)
                .setTicker("Dilip21")
                .setContentTitle("Default notification")
                .setContentText("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
                .setContentInfo("Info");

NotificationManager notificationManager = (NotificationManager) getContext().getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1, notificationBuilder.build());

答案 1 :(得分:3)

NotificationCompat.Builder (Context context)
  

这个构造函数在API级别26.1.0中已弃用。

     

使用NotificationCompat.Builder(Context, String)代替。所有发布的通知都必须指定NotificationChannel ID。

您已定义compile 'com.android.support:support-v4:26.0.0-alpha1'因此您必须更改支持库的版本号。