4

我知道这个问题已经被问过很多次了,但我仍然在让它工作时遇到问题。

在我的应用程序中,我创建了一个通知来提示用户某些事件,并且我想播放已打包为应​​用程序中的原始资源的声音。

我创建我的通知实例:

Notification notification = new Notification(
        R.drawable.some_image,
        "some meaningful name",
        System.currentTimeMillis() );

notification.setLatestEventInfo(...)

然后在该通知上设置一些属性:

notification.sound = Uri.parse( "android.resource://com.my.package/" + R.raw.some_mp3_file );
notification.flags = Notification.FLAG_INSISTENT;

最后我调用 NotificationManager 来显示通知:

notificationManager.notify( 1, notification );

通知确实出现了,但声音没有播放。

难道我做错了什么?我缺少 <uses-permission> 吗?我看不出我所做的任何事情与其他任何人似乎已经让它发挥作用的不同之处。

对于它的价值,我直接在 Nexus 7 上进行测试。

4

2 回答 2

1

尝试查看下面的代码。可以帮助您解决问题。

String ns = Context.NOTIFICATION_SERVICE;
        NotificationManager notificationManager = (NotificationManager) getSystemService(ns);
        int icon = R.drawable.update;
        CharSequence tickerText = "assignments";
        long when = System.currentTimeMillis();

        Notification assignmentNotification = new Notification(icon, tickerText, when);
       **For sound** assignmentNotification.defaults |= Notification.DEFAULT_SOUND;
        long[] vibrate = {0,100,200,300};
       **For vibrate** assignmentNotification.vibrate = vibrate;
        Context context = getApplicationContext();
        CharSequence contentTitle = "check assignments";
        CharSequence contentText = "chek ur app for assignments ";
        Intent notificationIntent = new Intent(context, ViewAssignmentnotificationActivity.class);
        PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent,0);
        assignmentNotification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
       ** final int id = 2;
于 2012-09-15T05:55:13.087 回答
0

请看这个答案;它告诉您必须明确指定 notification.sound 才能播放该音调;

于 2012-09-15T05:48:14.677 回答