我正在使用通知系统的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设备提供的列表中的声音来更改其他应用的推送通知系统!!。
我希望你的问题非常清楚:)
答案 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);
}
。如何从资产中获取Uri
? check 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 });