4

私はこの質問が何度も聞かれたことを知っていますが、それを機能させるのにまだ問題があります。

私のアプリケーションでは、あるイベントをユーザーに促す通知を作成し、アプリケーション内にrawリソースとしてパッケージ化されたサウンドを再生したいと思います。

通知インスタンスを作成します。

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>はありますか?私がそれを機能させたように見える他の誰とも違ったやり方でしたことは何も見えません。

その価値については、Nexus7で直接テストしています。

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 に答える