25

NotificationCompat.Builderによって作成された通知にサウンドを追加するにはどうすればよいですか?resでrawフォルダーを作成し、そこにサウンドを追加しました。では、どうすれば通知に追加できますか?これは私の通知コードです

    int NOTIFY_ID=100;
    Intent notificationIntent = new Intent(this, Notification.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT);

    NotificationCompat.Builder mBuilder =
            new NotificationCompat.Builder(this)
            .setContentIntent(pendingIntent)
            .setSmallIcon(R.drawable.notification)
            .setContentTitle("Warning")
            .setContentText("Help!")

    NotificationManager mgr = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    mgr.notify(NOTIFY_ID, mBuilder.build());
4

3 に答える 3

49

Uriここでの問題は、クラスに明らかなメソッドがあるため、サウンドを で参照する方法であると推測していますNotificationCompat.Builder- setSound(Uri soundUri)

リソースにアクセスするには、次のようrawに作成する必要があります。Uri

android.resource://[パッケージ名]/[リソース_ID]

したがって、コードは次のようになります。

Uri sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.notifysnd);
mBuilder.setSound(sound);
于 2012-12-26T17:33:29.030 に答える
16

通知で音を鳴らすには:

Notification notification = new Notification(icon, tickerText, when);

通常の届出手続きを行う

通知でデフォルトのサウンドを再生するには:

notification.defaults |= Notification.DEFAULT_SOUND;

通知でカスタム サウンドを再生するには:

notification.sound = Uri.parse("file:///sdcard/notification/notification.mp3");

次に、通知マネージャーを使用して通知を送信します。これらのステートメントの両方が使用されている場合、アプリケーションはデフォルトのサウンドを使用するようにデフォルト設定されます。

于 2012-12-26T17:35:44.707 に答える