要在Android中自定义Firebase推送通知的声音,你需要在发送通知时设置正确的声音资源。以下是一个示例代码,展示如何设置自定义声音:
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "MyFirebaseMessagingService";
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
// 获取通知中的声音信息
String sound = remoteMessage.getNotification().getSound();
// 创建通知的Builder
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_notification)
.setContentTitle(remoteMessage.getNotification().getTitle())
.setContentText(remoteMessage.getNotification().getBody())
.setAutoCancel(true);
// 设置自定义声音
if (sound != null) {
Uri soundUri = Uri.parse("android.resource://" + getPackageName() + "/raw/" + sound);
notificationBuilder.setSound(soundUri);
}
// 显示通知
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notificationBuilder.build());
}
}
在上述代码中,我们首先通过remoteMessage.getNotification().getSound()
获取通知的声音信息。然后,我们使用NotificationCompat.Builder
创建通知,并使用setSound()
方法设置自定义声音。请确保声音资源文件位于res/raw/
目录下,并正确命名。
请注意,如果您在发送通知时没有设置正确的声音资源,或者将声音设置为null
,则会使用设备的默认通知声音。