野生大熊猫

安卓的通知的使用方法
一、导语功夫不负熬夜人,终于学到通知了。就是顶部下拉菜单显示的通知。这一章节难度不算特别大,基本上就几个要点,可以...
扫描右侧二维码阅读全文
19
2018/07

安卓的通知的使用方法

一、导语

功夫不负熬夜人,终于学到通知了。
就是顶部下拉菜单显示的通知。
这一章节难度不算特别大,基本上就几个要点,可以直接套用。
这里采用的是在Activity中定义一个内部类继承监听器接口。

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            ...
        }
    }

二、显示部分效果

1. 使用setPriority


setPriority(NotificationCompat.PRIORITY_MAX)

TIM截图20180719234139.png

2.使用setStyle

setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(),R.drawable.a)))

TIM截图20180719233708.png

三、代码

这里直接监听onclick事件,在onClick中包裹

        switch (view.getId()){
            case R.id.send_notice:
//意图
                Intent intent = new Intent(this , NotificationActivity.class);
                PendingIntent pi = PendingIntent.getActivity(this,0,intent,0);

                NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                //这里原有的NotificationCompat.Builder被弃用,后面括号里面新加入个String参数即可
                Notification notification = new NotificationCompat.Builder(this,"default")
                        .setContentTitle("这是标题")
                        .setContentText("这是内容,现在我们把通知的内容加长,加到特别长,你说多长我也不知道,反正很长很长,长到手机装不下,看他是什么效果。")
                        .setWhen(System.currentTimeMillis())
                        .setSmallIcon(R.mipmap.ic_launcher)
                        .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher))
                        //意图
                        .setContentIntent(pi)
                        //点击后销毁通知
                        .setAutoCancel(true)
                        //通知播放音乐
                        .setSound(Uri.fromFile(new File("/system/media/audio/ringtones/Celesta.ogg")))
                        //手机振动(需要在AndroidManifest中指定振动权限)
                        .setVibrate(new long[]{0,1000,1000,1000})
                        //设置LED灯的颜色和闪烁效果
                        .setLights(Color.GREEN,1000,1000)
                        //手机默认
//                        .setDefaults(NotificationCompat.DEFAULT_ALL)
                        //长通知效果,但是小米4测试无效
                        .setStyle(new NotificationCompat.BigTextStyle().bigText("这是内容,现在我们把通知的内容加长,加到特别长,你说多长我也不知道,反正很长很长,长到手机装不下,看他是什么效果。"))
                        //通知显示图片,小米测试无效。Nexus测试成功
                        .setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(),R.drawable.a)))
                        //设置重要程度PRIORITY_DEFAULT:默认,PRIORITY_MIN:最低,PRIORITY_LOW:较低,PRIORITY_HIGH:较高,PRIORITY_MAX:最高
                        //测试发现,小米没有反应因为小米需要设置悬浮权限,Nexus测试成功
                        .setPriority(NotificationCompat.PRIORITY_MAX)
                        .build();
                manager.notify(1,notification);
                break;
            default:
                break;
        }

代码贴上去,当自己的手册,我也不多解释,注释写的很清楚。

项目地址:https://github.com/imlhb/StudyAndroid/tree/master/NotificationTest

Last modification:July 19th, 2018 at 11:57 pm
If you think my article is useful to you, please feel free to appreciate

One comment

  1. nina

    设置如下三个属性没有反馈是什么原因?我的测试机是魅族M6
    //通知播放音乐
    .setSound(Uri.fromFile(new File("/system/media/audio/ringtones/Celesta.ogg")))
    //手机振动(需要在AndroidManifest中指定振动权限)
    .setVibrate(new long[]{0,1000,1000,1000})
    //设置LED灯的颜色和闪烁效果
    .setLights(Color.GREEN,1000,1000)

Leave a Comment