如何使用特定声音进行推送通知?

时间:2015-05-06 09:07:38

标签: android audio notifications

我正在使用通知系统的Android应用程序,我需要Android设备用特定声音推送通知我存储在assets文件夹 这是我的通知的java代码:

Notification noti = new Notification.Builder(MainActivity.this)
    .setTicker("Calcupital")
    .setContentTitle("Calcupital")
    .setContentText("User Information has been updated successfully")
    .setSmallIcon(R.drawable.login)
    .setContentIntent(pIntent).getNotification();

noti.flags = Notification.FLAG_AUTO_CANCEL;

NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0, noti);

假设我的声音存储如下:(\ assets \ hopo.mp3)

如何使用此声音推送此通知,而无需通过更改Android设备提供的列表中的声音来更改其他应用的推送通知系统!!。

我希望你的问题非常清楚:)

4 个答案:

答案 0 :(得分:1)

在这里结合答案并使用这些问题中的两个答案:

试试这个:

Uri sound = Uri.parse("file:///android_asset/hopo.mp3");

Notification noti = new Notification.Builder(MainActivity.this)
    .setTicker("Calcupital")
    .setContentTitle("Calcupital")
    .setContentText("User Information has been updated successfully")
    .setSmallIcon(R.drawable.login)

    .setSound(sound);

    .setContentIntent(pIntent).getNotification();

noti.flags = Notification.FLAG_AUTO_CANCEL;

NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0, noti);

答案 1 :(得分:0)

您可以使用

设置默认声音
PROJ_SRC_DIR := $(call realpath, $(patsubst $(PROJ_OBJ_ROOT)%,$(PROJ_SRC_ROOT)%,$(PROJ_OBJ_DIR)))

如果您想要自定义声音,请使用不同的Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); if (alarmSound != null) { mBuilder.setSound(alarmSound); } 。如何从资产中获取Uricheck this topic

答案 2 :(得分:0)

您需要将声音文件放在res / raw目录中。

然后将此代码添加到当前代码

final String packageName = context.getPackageName();
notification.sound =
Uri.parse("android.resource://" + packageName + "R.raw.hopo");

请参阅此链接了解更多详情 http://developer.android.com/reference/android/app/Notification.Builder.html#setSound(android.net.Uri)

答案 3 :(得分:0)

要获取资源:

Uri alarmSound = Uri.parse("android.resource://" + this.getPackageName() + "/" + R.raw.somefile);

**必须在res文件夹中创建原始文件夹并添加您的声音文件**

要设置:

NotificationCompat.Builder noBuilder = new NotificationCompat.Builder(this)
           .setContentText(message)
           .setSound(alarmSound) // -> add this one
           .setVibrate(new long[] { 1000, 1000, 1000, 1000, 1000 });