更新Android Studio后未显示通知

时间:2019-01-28 16:48:17

标签: android android-studio notifications android-notifications

我最近在Android Studio上进行了一次更新,此后,我无法显示通知。

在更新之前,这些代码最初运行良好,因此我认为问题出在软件而非代码上。更新后我需要更改什么吗?

我的程序实际上会显示一条Toast消息,并且还会有一条通知,告知您已经注册了帐户(注册帐户后)。但是,在该Toast消息之后,紧接着又显示了一个Toast消息,“开发人员警告程序包” com.example.jianminong.aucon“无法发布通知通道“ personal”,请参阅日志以获取更多详细信息”。

public void displayNotification(){
    NotificationCompat.Builder builder = new 
NotificationCompat.Builder(this,CHANNEL_ID);
    builder.setSmallIcon(R.drawable.aucon);
    builder.setContentTitle("Welcome " + 
editUsername.getText().toString());
    builder.setContentText("You have just created an account with 
the email of " +editEmail.getText().toString());
    builder.setPriority(NotificationCompat.PRIORITY_DEFAULT);

    NotificationManagerCompat notificationManagerCompat = 
NotificationManagerCompat.from(this);

notificationManagerCompat.notify(NOTIFICATION_ID,builder.build());
}


private void createNotificationChannel(){
    if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O)
    {
        CharSequence name = "Personal";
        String description = "HAHA";
        int importance = NotificationManager.IMPORTANCE_DEFAULT;

        NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ID,name,importance);

        notificationChannel.setDescription(description);

        NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        notificationManager.createNotificationChannel(notificationChannel);
    }
}

2 个答案:

答案 0 :(得分:0)

如果您在较新的android设备上运行此通知通道,则需要使用新的通知通道:

  

从Android 8.0(API级别26)开始,必须将所有通知分配给某个频道,否则该通知将不会出现。

您需要遵循以下步骤: https://developer.android.com/training/notify-user/channels

答案 1 :(得分:0)

您是否在代码createNotificationChannel()方法中调用应创建通知通道的地方?因为如果没有,则不会创建通道,因此会发送敬酒消息。您可以在显示通知之前调用它:

public void displayNotification(){
    createNotificationChannel()
    NotificationCompat.Builder builder = new NotificationCompat.Builder(this,CHANNEL_ID);
    ...
}