android第一行代码笔记11-通知

2020-06-30  本文已影响0人  刚刚8888

通知NotificationManager

// 获取NotificationManager实例
NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

// 创建一个 Notification 对象
Notification notification = new Notification(R.drawable.icon, "This is ticker text", System.currentTimeMillis());
Intent intent = new Intent(this, NotificationActivity.class);
PendingIntent pi = PendingIntent.getActivity(this, 0, intent,
PendingIntent.FLAG_CANCEL_CURRENT);
notification.setLatestEventInfo(this, "This is content title", "This is content text", pi);

// 调用 NotificationManager 的 notify()方法就可以让通知显示 出来了。notify()方法接收两个参数,第一个参数是 id,要保证为每个通知所指定的 id 都是 不同的。第二个参数则是 Notification 对象,将创建好的 Notification 对象 传入
manager.notify(1, notification);

PendingIntent 可以简单地理解为延迟执行的 Intent。
通过 PendingIntent 构建出一个延迟执行的“意图”,当用户点击这条通知时就会执行 相应的逻辑。

// 隐藏通知
NotificationManager manager = (NotificationManager)
    getSystemService(NOTIFICATION_SERVICE);
 manager.cancel(1);
// 播放音频
 Uri soundUri = Uri.fromFile(new File("/system/media/audio/ringtones/
Basic_tone.ogg"));
    notification.sound = soundUri;

// 振动
/*
vibrate 这个属性。它是一个长整型的数组,用于设置手机静止和振动的时长,以毫秒为单位。下标为 0 的值表示手机静止的时长,下标为 1 的值表示手机振动的时长,下标为 2 的值又表示手 机静止的时长,以此类推。所以,如果想要让手机在通知到来的时候立刻振动 1 秒,然后静 止 1 秒,再振动 1 秒,代码就可以写成:
*/
long[] vibrates = {0, 1000, 1000, 1000};
notification.vibrate = vibrates;


// LED灯
notification.ledARGB = Color.GREEN;
notification.ledOnMS = 1000;
notification.ledOffMS = 1000;
notification.flags = Notification.FLAG_SHOW_LIGHTS;

// 默认灯
notification.defaults = Notification.DEFAULT_ALL;
上一篇 下一篇

猜你喜欢

热点阅读