Android 9.0 NotificationManager不显示

Android 9.0 NotificationManager 不显示,不通知,具体解决方法如下

Android 8.0以上(必须,必须,必须)

  Notification.Builder notification = new Notification
                            .Builder(applicationContext)
                            .setContentTitle("您有一条新消息") 
                            .setContentText(title)
                            .setWhen(System.currentTimeMillis())
                            .setSmallIcon(idIco)   //必须添加(Android 8.0)                           
                            .setLargeIcon(BitmapFactory.decodeResource(applicationContext.getResources(), idIco))
                            .setVibrate(vibrate)
                            .setContentIntent(pendingIntent)
                            .setPriority(NotificationCompat.PRIORITY_HIGH)
                            .setDefaults(Notification.DEFAULT_ALL)
                            .setChannelId(applicationContext.getPackageName()) //必须添加(Android 8.0) 【唯一标识】
                            .setSound(MediaStore.Audio.Media.INTERNAL_CONTENT_URI);

但是呢,Android9.0你试试用上边的分分钟给你不显示,气得你牙直发痒

Android 9.0以上(必须,必须,必须)

NotificationChannel channel = new NotificationChannel(
                            applicationContext.getPackageName(),
                            "会话类型",//这块Android9.0分类的比较完整,你创建多个这样的东西,你可以在设置里边显示那个或者第几个
                            NotificationManager.IMPORTANCE_DEFAULT

                    );

全部代码(显示工具类)


import android.annotation.SuppressLint;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.os.Build;
import android.provider.MediaStore;
import androidx.core.app.NotificationCompat;
import cn.handhi.im.ui.MainActivity;

public class NotificationManagerUtils {

    //开始通知


    @SuppressLint("WrongConstant")
    public static void startNotificationManager(String title, int idIco){

        XUIUtils.Companion.runUiOnThread(new Runnable() {
            @Override
            public void run() {

                Context applicationContext = XUIUtils.Companion.getApplicationContext();

                NotificationManager notificationManager = (NotificationManager) applicationContext.getSystemService(Context.NOTIFICATION_SERVICE);

                Intent intent = new Intent(applicationContext, MainActivity.class);

                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_CLEAR_TOP);

                PendingIntent pendingIntent = PendingIntent.getActivity(applicationContext, 0, intent, 0);

                long [] vibrate = {0, 500, 1000, 1500};

                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    Notification.Builder notification = new Notification
                            .Builder(applicationContext)
                            .setContentTitle("您有一条新消息")
                            .setContentText(title)
                            .setWhen(System.currentTimeMillis())
                            .setSmallIcon(idIco)
                            .setLargeIcon(BitmapFactory.decodeResource(applicationContext.getResources(), idIco))
                            .setVibrate(vibrate)
                            .setContentIntent(pendingIntent)
                            .setPriority(NotificationCompat.PRIORITY_HIGH)
                            .setDefaults(Notification.DEFAULT_ALL)
                            .setChannelId(applicationContext.getPackageName())
                            .setSound(MediaStore.Audio.Media.INTERNAL_CONTENT_URI);

                    NotificationChannel channel = new NotificationChannel(
                            applicationContext.getPackageName(),
                            "会话消息(掌嗨)",
                            NotificationManager.IMPORTANCE_DEFAULT

                    );

                    notificationManager.createNotificationChannel(channel);

                    notificationManager.notify(0,notification.build());

                    XUIUtils.Companion.show(title);
                }else{

                    Notification.Builder notification = new Notification
                            .Builder(applicationContext)
                            .setContentTitle("您有一条新消息")
                            .setContentText(title)
                            .setWhen(System.currentTimeMillis())
                            .setSmallIcon(idIco)
                            .setLargeIcon(BitmapFactory.decodeResource(applicationContext.getResources(), idIco))
                            .setVibrate(vibrate)
                            .setContentIntent(pendingIntent)
                            .setWhen(System.currentTimeMillis())
                            .setPriority(NotificationCompat.PRIORITY_HIGH)
                            .setDefaults(Notification.DEFAULT_ALL)
                            .setSound(MediaStore.Audio.Media.INTERNAL_CONTENT_URI);
                    notificationManager.notify(0,notification.build());

                }

            }
        });


    }



}

你可能感兴趣的:(Android 9.0 NotificationManager不显示)