Android Notification实现推送消息过程中接受到消息端有声音及震动及亮屏提示
时间: 2023-11-27 18:55:22 浏览: 233
在 Android 中,可以通过 NotificationManager 类来实现推送消息过程中接收到消息端有声音、震动和亮屏提示的功能。
具体实现步骤如下:
1. 创建 Notification 对象
首先需要创建一个 Notification 对象。可以使用 NotificationCompat.Builder 类来创建,这个类提供了很多方法来设置通知的各个属性,如标题、内容、图标等。
例如,以下代码创建了一个包含标题、内容、图标和时间戳的通知:
```java
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle("My notification")
.setContentText("Hello World!")
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setAutoCancel(true)
.setWhen(System.currentTimeMillis());
```
2. 设置声音、震动和亮屏提示
接下来,需要给 Notification 对象设置声音、震动和亮屏提示。可以使用 setSound()、setVibration() 和 setLights() 方法来实现。
例如,以下代码设置了通知接收到时播放系统默认的提示音、震动和亮屏:
```java
builder.setDefaults(Notification.DEFAULT_ALL);
```
也可以自定义声音、震动和亮屏提示,例如:
```java
// 设置自定义的提示音
Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
builder.setSound(soundUri);
// 设置振动
long[] vibrationPattern = {0, 1000, 500, 1000};
builder.setVibration(vibrationPattern);
// 设置亮屏
int ledColor = Color.RED;
int ledOnMs = 1000;
int ledOffMs = 500;
builder.setLights(ledColor, ledOnMs, ledOffMs);
```
3. 发送通知
最后,需要使用 NotificationManager 类的 notify() 方法来发送通知。
例如,以下代码发送了之前创建的通知:
```java
NotificationManager notificationManager = getSystemService(NotificationManager.class);
notificationManager.notify(notificationId, builder.build());
```
其中,notificationId 是该通知的唯一标识符,用于在以后更新或删除该通知。
阅读全文