更新时间:2022-03-21 GMT+08:00
分享

自定义通知

接口描述

该接口用于自定义前台通知

注意事项

  • 使用自定义通知将彻底替换默认通知,需要对应用进行充分测试,否则可能影响到前台服务的拉起。

方法定义

/**
     * 设置自定义通知
     * @param customNotification 自定义通知对象  
     * @param notificationId 通知id
     */
    void setCustomNotification(Notification customNotification, int notificationId);

参数描述

参数

是否必须

类型

描述

customNotification

Notification

自定义通知对象

notificationId

int

自定义通知id

示例代码

shareServiceController.setCustomNotification(createNotification(), GlobalConstant.NOTIFICATION_ID);  
private Notification createNotification() {  
        // Android8.0以上的系统,新建消息通道  
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {  
            // 用户可见的通道名称  
            String channelName = getString(R.string.air_presence_app_name);  
            // 通道的重要程度  
            int importance = NotificationManager.IMPORTANCE_HIGH;  
            NotificationChannel notificationChannel =  
                    new NotificationChannel(GlobalConstant.CHANNEL_ID, channelName, importance);  
            NotificationManager notificationManager = getSystemService(NotificationManager.class);  
            if (notificationManager != null) {  
                notificationManager.createNotificationChannel(notificationChannel);  
            }  
        }  
  
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this, GlobalConstant.CHANNEL_ID);  
        // 通知小图标  
        builder.setSmallIcon(R.drawable.ic_launcher);  
        // 通知标题  
        builder.setContentTitle(getString(R.string.ideashare_return_application));  
        // 通知时间  
        builder.setWhen(System.currentTimeMillis());  
        // 设定启动的内容  
        Intent activityIntent = new Intent(this, ProjectionActivity.class);  
        PendingIntent pendingIntent =  
                PendingIntent.getActivity(this,  
                        GlobalConstant.JUMP_BACK_CODE, activityIntent, PendingIntent.FLAG_UPDATE_CURRENT);  
        builder.setContentIntent(pendingIntent);  
        // 通知按钮  
        Intent stopShareIntent = new Intent(this, NotificationReceiver.class);  
        stopShareIntent.setAction(NotificationReceiver.ACTION_STOP_PROJECTION);  
        PendingIntent broadcastIntent =  
                PendingIntent.getBroadcast(this,  
                        GlobalConstant.STOP_SHARE_CODE, stopShareIntent, PendingIntent.FLAG_UPDATE_CURRENT);  
        builder.addAction(GlobalConstant.NO_ICON, getString(R.string.air_presence_stop_share), broadcastIntent);  
        // 创建通知并返回  
        return builder.build();  
    }

相关文档