直播平臺原始碼,各個樣式的訊息通知欄顯示方式

zhibo系統開發發表於2022-06-20

直播平臺原始碼,各個樣式的訊息通知欄顯示方式

1、浮動通知

    /**
     * 浮動通知 在[5.0,8.0)的系統中浮動通知的產生條件
     * 是NotificationCompat.Builder中設定setPriority()的引數
     * 必須在NotificationCompat.PRIORITY_HIGH及以上並且有鈴聲或者震動才能有效果
     * 但在[8.0,8.0+)的時候因為NotificationChannel中的設定高於一切 所以
     * NotificationChannel中的importance必須要在NotificationManager.IMPORTANCE_HIGH及以上(!注意 此時會有預設的鈴聲和震動的效果哦~)
     * 5.0以下的系統就不支援啦
     *
     * @param noticationId
     * @param pendingIntent
     * @param largeIcon
     * @param smallIcon
     * @param ticker
     * @param subText
     * @param contentTitle
     * @param contentText
     * @param sound
     * @param vibrate
     * @param light
     */
    public void notifyHeadUp(int noticationId, PendingIntent pendingIntent, @DrawableRes int largeIcon, @DrawableRes int smallIcon, String ticker, String subText, String contentTitle, String contentText, boolean sound, boolean vibrate, boolean light) {
 
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            if (notificationChannel.getImportance() < NotificationManager.IMPORTANCE_HIGH) {
                notificationChannel.setImportance(NotificationManager.IMPORTANCE_HIGH);
                notificationManager.createNotificationChannel(notificationChannel);
            }
        }
//        else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
//
//
//        }
        builderNotification(pendingIntent, largeIcon, smallIcon, ticker, subText, contentTitle, contentText, NotificationCompat.PRIORITY_HIGH, sound, vibrate, light);
 
 
        notifyNotification(noticationId);
    }

2、帶進度條通知

    /**
     * 在5.0的系統以下沒有進度條顯示 8.0及以上顯示進度條是沒有鈴聲和震動的效果的
     *
     * @param noticationId
     * @param pendingIntent
     * @param largeIcon
     * @param smallIcon
     * @param ticker
     * @param subText
     * @param contentTitle
     * @param contentText
     * @param maxProgress
     * @param curProgress
     */
    public void notifyProgress(int noticationId, PendingIntent pendingIntent, @DrawableRes int largeIcon, @DrawableRes int smallIcon, String ticker, String subText, String contentTitle, String contentText, int maxProgress, int curProgress) {
        builderNotification(pendingIntent, largeIcon, smallIcon, ticker, subText, contentTitle, contentText, NotificationCompat.PRIORITY_HIGH, false, true, false);
 
        if (curProgress >= maxProgress) {
            builder.setProgress(0, 0, false);
        } else {
            builder.setProgress(maxProgress, curProgress, false);
        }
 
 
        notifyNotification(noticationId);
    }

3、訊息類通知

    /**
     * 傳送一個訊息類的通知7.0以上有效 7.0以下效果不友好
     *
     * @param noticationId
     * @param pendingIntent
     * @param largeIcon
     * @param smallIcon
     * @param ticker
     * @param subText
     * @param contentTitle
     * @param contentText
     * @param priority
     * @param sound
     * @param vibrate
     * @param light
     */
    public void notifyMessageType(int noticationId, PendingIntent pendingIntent, @DrawableRes int largeIcon, @DrawableRes int smallIcon, String ticker, String subText, String contentTitle, String contentText, int priority, boolean sound, boolean vibrate, boolean light) {
 
        builderNotification(pendingIntent, largeIcon, smallIcon, ticker, subText, contentTitle, contentText, priority, sound, vibrate, light);
 
        builder.setStyle(new NotificationCompat.MessagingStyle(contentTitle).setConversationTitle("xx")
                .addMessage(new NotificationCompat.MessagingStyle.Message(contentText, System.currentTimeMillis(), "wo")));
 
        notifyNotification(noticationId);
 
    }

以上就是直播平臺原始碼,各個樣式的訊息通知欄顯示方式, 更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2901631/,如需轉載,請註明出處,否則將追究法律責任。

相關文章