zoukankan      html  css  js  c++  java
  • Android如何使用Notification进行通知

    有两张图片素材会放在末尾

    activity代码,和XML布局

    package com.example.myapplication;
    
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.core.app.NotificationCompat;
    
    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.graphics.Color;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ImageView;
    
    public class NotificationActivity extends AppCompatActivity {
        public static NotificationManager notificationManager;
        public static String CHANNEL_1 = "channel1";
        Notification notification;
        ImageView iv;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_notification);
    
            iv = findViewById(R.id.iv);
            iv.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
    
                    iv.setImageResource(R.drawable.aoligei);
                    notificationManager = (NotificationManager) NotificationActivity.this.getSystemService(Context.NOTIFICATION_SERVICE);
                    //android 8.0有通知渠道,如果不设置的话,会报错
                    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
                        ////配置通知渠道id,渠道名称(用户可以看到),渠道优先级
                        NotificationChannel channel1 = new NotificationChannel(CHANNEL_1, "通知渠道1", NotificationManager.IMPORTANCE_HIGH);
                        channel1.setDescription("通知渠道的描述1");
                        ///配置通知出现时的闪灯(如果 android 设备支持的话)
                        channel1.enableLights(true);
                        channel1.setLightColor(Color.WHITE);
                        //配置通知出现时的震动(如果 android 设备支持的话)
                        channel1.enableVibration(true);
                        channel1.setVibrationPattern(new long[]{100, 200, 100, 200});
                        //channel.setBypassDnd(true); //设置绕过免打扰模式
                        //channel.canBypassDnd(); //检测是否绕过免打扰模式
                        //channel.setLockscreenVisibility(Notification.VISIBILITY_SECRET);//设置在锁屏界面上显示这条通知
                        notificationManager.createNotificationChannel(channel1);
    
    //                    NotificationChannel channel = new NotificationChannel("id", "name", NotificationManager.IMPORTANCE_HIGH);
    //                    channel.setShowBadge(true);
    //                    NotificationManager notificationManager = (NotificationManager) getSystemService(
    //                            NOTIFICATION_SERVICE);
    //                    notificationManager.createNotificationChannel(channel);
                    }
    
                    //普通的通知
    //                sendChatMsg();
                    //可以点击的通知
                    preIntent();
                }
                });
    
    
            }
        public void sendChatMsg() {
            NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            Notification notification = new NotificationCompat.Builder(this, CHANNEL_1)
                    .setContentTitle("收到一条聊天消息")
                    .setContentText("老八问候你吃了吗")
                    .setWhen(System.currentTimeMillis())
                    .setSmallIcon(R.drawable.ic_launcher_background)
                    .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher_background))
                    .setAutoCancel(true)
                    .setNumber(2)
                    .build();
    
    //        for (int i = 0; i < 3; i++) {
                manager.notify(1, notification);
    //        }
        }
        public void preIntent(){
    
            NotificationManager manager1 = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            //创建一个可以点击的通知
            //通知的需要跳转,创建Intent
            Intent intent = new Intent(NotificationActivity.this, NotificationActivity.class);
            //需要创建PendingIntent进行
            PendingIntent pendingIntent = PendingIntent.getActivity(NotificationActivity.this, 0, intent, 0);
            //创建notification
            notification = new Notification.Builder(NotificationActivity.this,CHANNEL_1).//第二个参数需要保持一致
                    setContentTitle("这是一个通知") .setContentText("快来和老八一起共进晚餐") .
                    setWhen(System.currentTimeMillis()) .
                    setSmallIcon(R.mipmap.ic_launcher) .
                    setLargeIcon(BitmapFactory.decodeResource(  getResources(), R.mipmap.ic_launcher)) .
                    setContentIntent(pendingIntent).
                    build();
            //。build就是创建的意思
            //这个id是随便起的名字,只要id不同可以多个显示,如果id相同,会显示玩当前id的通知才会显示下一个id
                    manager1.notify(0x11, notification);
        }
    
    }
    
    

    XML布局

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".NotificationActivity">
    <ImageView
        android:id="@+id/iv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/haha"
        />
    <!--    android:adjustViewBounds="true"-->
    <!--    android:scaleType="fitXY"-->
    
    </LinearLayout>
    

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    node
    github
    [模块] pdf转图片-pdf2image
    python 15 自定义模块 随机数 时间模块
    python 14 装饰器
    python 13 内置函数II 匿名函数 闭包
    python 12 生成器 列表推导式 内置函数I
    python 11 函数名 迭代器
    python 10 形参角度 名称空间 加载顺序
    python 09 函数参数初识
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13076444.html
Copyright © 2011-2022 走看看