0

我想创建一个 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);  

但它播放声音的一部分。我能做些什么来解决它。

4

1 回答 1

0

您不需要附加\raw到资源 URI。在运行时,所有内容都被编译到带有 ID 的单个目录中,这意味着调用R.raw.*指的是原始资源,即使所有资源实际上都在同一个目录中。

notification.sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.calmpiano);

您还可以使用 指定一些额外的设置notification.default,但不要使用DEFAULT_SOUND。如果定义了默认声音,它将覆盖自定义声音。

于 2016-07-04T11:02:37.907 回答