我想创建一个Android应用程序,以便在收到来自特定发件人的消息时播放录制的声音片段,因此我将此代码放入我的smsReceiver(Broadcastreceiver)
NotificationManager nm = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification();
notification.sound = Uri.parse("android.resource://com.example.newgps/raw/calmpiano");
nm.notify(0, notification);
但它发挥了声音的一部分。我能做些什么来解决它。
答案 0 :(得分:0)
您不需要将\raw
附加到资源URI。在运行时,所有内容都被编译到一个带有ID的目录中,这意味着调用R.raw.*
是指原始资源,即使所有资源都在同一目录中。
notification.sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.calmpiano);
您还可以使用notification.default
指定一些额外设置,但不要使用DEFAULT_SOUND
。如果定义了默认声音,它将覆盖自定义声音。