Android 发送通知提示声音
引言
在 Android 应用开发中,通知是一种用来向用户展示重要信息的方式。除了显示文本和图标之外,通知还可以通过声音来提示用户。本文将介绍如何在 Android 应用中发送通知并播放提示声音。
1. 创建通知渠道
Android 8.0(API 级别 26)及以上的系统引入了通知渠道的概念。通知渠道允许用户对不同类型的通知进行分类并进行个性化设置。我们首先需要创建一个通知渠道。
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
import android.media.AudioAttributes;
import android.media.RingtoneManager;
public class NotificationHelper {
private static final String CHANNEL_ID = "my_channel_id";
public static void createNotificationChannel(Context context) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
CharSequence name = "My Channel";
String description = "My Channel Description";
int importance = NotificationManager.IMPORTANCE_HIGH;
AudioAttributes attributes = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_NOTIFICATION)
.build();
NotificationChannel channel = new NotificationChannel(CHANNEL_ID, name, importance);
channel.setDescription(description);
channel.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION), attributes);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.createNotificationChannel(channel);
}
}
}
以上代码创建了一个名称为 "My Channel" 的通知渠道,并设置了高优先级。我们还为通知渠道设置了默认的提示声音。
2. 发送通知
在创建通知渠道后,我们可以使用 NotificationCompat.Builder
类创建并发送通知。
import android.app.NotificationManager;
import android.content.Context;
import android.support.v4.app.NotificationCompat;
public class MyNotification {
private static final int NOTIFICATION_ID = 1;
public static void sendNotification(Context context, String title, String message) {
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
.setSmallIcon(R.drawable.ic_notification)
.setContentTitle(title)
.setContentText(message)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setAutoCancel(true);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(NOTIFICATION_ID, builder.build());
}
}
以上代码创建了一个包含标题和内容的通知,并设置了高优先级。我们可以通过调用 sendNotification
方法发送通知。
3. 播放提示声音
要为通知播放提示声音,我们需要在通知构建器中设置声音属性。
import android.app.NotificationManager;
import android.content.Context;
import android.media.AudioAttributes;
import android.media.RingtoneManager;
import android.support.v4.app.NotificationCompat;
public class MyNotification {
private static final int NOTIFICATION_ID = 1;
public static void sendNotification(Context context, String title, String message) {
// ... 创建通知构建器代码 ...
AudioAttributes attributes = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_NOTIFICATION)
.build();
builder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION), attributes);
// ... 发送通知代码 ...
}
}
以上代码为通知构建器设置了默认的提示声音。
4. 总结
通过以上步骤,我们可以在 Android 应用中发送通知并播放提示声音。首先,我们需要创建一个通知渠道并设置其声音属性。然后,我们使用通知构建器创建并发送通知。通过设置构建器的声音属性,我们可以为通知播放自定义声音。
希望本文对您了解 Android 发送通知提示声音有所帮助。如果您想了解更多关于 Android 通知的内容,请参考官方文档。
类图
classDiagram
class NotificationHelper {
+createNotificationChannel(Context context)
}
class MyNotification {
+sendNotification(Context context, String title, String message)
}
NotificationHelper ..> MyNotification : creates
参考链接
- [Android 官方文档 - Notifications](