导航菜单

页面标题

页面副标题

WeatherSense v1.8.9 - NotificationUtil.java 源代码

正在查看: WeatherSense v1.8.9 应用的 NotificationUtil.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.emax.weather.utils;

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.net.Uri;
import android.os.Build;
import android.util.Log;
import androidx.core.app.NotificationCompat;
import com.emax.weahter.R;
import com.emax.weather.ui.activity.MainActivity;
import java.util.Timer;
import java.util.TimerTask;

public class NotificationUtil {
    public static void showNotification(int buildId, Context context, int resId, String title, String content) {
        Notification build;
        NotificationManager notificationManager = (NotificationManager) context.getSystemService("notification");
        if (Build.VERSION.SDK_INT >= 26) {
            notificationManager.createNotificationChannel(new NotificationChannel("my_channel_01", "111", 2));
            build = new Notification.Builder(context).setChannelId("my_channel_01").setContentTitle(title).setContentText(content).setSmallIcon(resId).setWhen(System.currentTimeMillis()).setAutoCancel(true).setOngoing(false).setDefaults(3).setGroup("buildId" + buildId).setGroupSummary(true).setContentIntent(PendingIntent.getActivity(context, 1, new Intent(context, (Class<?>) MainActivity.class), 268435456)).build();
        } else {
            build = new NotificationCompat.Builder(context).setLargeIcon(BitmapFactory.decodeResource(context.getResources(), resId)).setSmallIcon(resId).setTicker("通知来了").setContentTitle(title).setContentText(content).setWhen(System.currentTimeMillis()).setPriority(0).setAutoCancel(true).setOngoing(false).setDefaults(3).setContentIntent(PendingIntent.getActivity(context, 1, new Intent(context, (Class<?>) MainActivity.class), 268435456)).build();
        }
        notificationManager.notify(buildId, build);
    }

    public static void showNotification(Context context, int resId, String title, String content) {
        Notification build;
        NotificationManager notificationManager = (NotificationManager) context.getSystemService("notification");
        if (Build.VERSION.SDK_INT >= 26) {
            notificationManager.createNotificationChannel(new NotificationChannel("my_channel_01", "111", 2));
            build = new Notification.Builder(context).setChannelId("my_channel_01").setContentTitle(title).setContentText(content).setSmallIcon(resId).setWhen(System.currentTimeMillis()).setAutoCancel(true).setOngoing(false).setDefaults(3).setContentIntent(PendingIntent.getActivity(context, 1, new Intent(context, (Class<?>) MainActivity.class), 268435456)).build();
        } else {
            build = new NotificationCompat.Builder(context).setLargeIcon(BitmapFactory.decodeResource(context.getResources(), resId)).setSmallIcon(resId).setTicker("通知来了").setContentTitle(title).setContentText(content).setWhen(System.currentTimeMillis()).setPriority(0).setAutoCancel(true).setOngoing(false).setDefaults(3).setContentIntent(PendingIntent.getActivity(context, 1, new Intent(context, (Class<?>) MainActivity.class), 268435456)).build();
        }
        notificationManager.notify(1, build);
    }

    public static void showNotificationProgress(Context context) {
        final NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
        builder.setContentTitle("下载中");
        builder.setSmallIcon(R.drawable.app_logo);
        builder.setTicker("进度条通知");
        builder.setProgress(100, 0, false);
        Notification build = builder.build();
        final NotificationManager notificationManager = (NotificationManager) context.getSystemService("notification");
        notificationManager.notify(2, build);
        new Timer().schedule(new TimerTask() {
            int progress = 0;

            @Override
            public void run() {
                Log.i(NotificationCompat.CATEGORY_PROGRESS, this.progress + "");
                while (true) {
                    int i = this.progress;
                    if (i <= 100) {
                        this.progress = i + 1;
                        try {
                            Thread.sleep(100L);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        NotificationCompat.Builder.this.setProgress(100, this.progress, false);
                        notificationManager.notify(2, NotificationCompat.Builder.this.build());
                    } else {
                        cancel();
                        notificationManager.cancel(2);
                        return;
                    }
                }
            }
        }, 0L);
    }

    public static void showFullScreen(Context context) {
        NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
        builder.setContentIntent(PendingIntent.getActivity(context, 0, new Intent("android.intent.action.VIEW", Uri.parse("http://blog.csdn.net/itachi85/")), 0));
        builder.setSmallIcon(R.drawable.app_logo);
        builder.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.app_logo));
        builder.setAutoCancel(true);
        builder.setContentTitle("悬挂式通知");
        Intent intent = new Intent();
        intent.setFlags(268435456);
        intent.setClass(context, MainActivity.class);
        builder.setFullScreenIntent(PendingIntent.getActivity(context, 0, intent, 268435456), true);
        ((NotificationManager) context.getSystemService("notification")).notify(3, builder.build());
    }
}