Uri ke pemberitahuan suara default?


123

Saya menggunakan Notification.Builder untuk membuat notifikasi. Sekarang saya ingin menggunakan pemberitahuan suara default dengan:

builder.setSound(Uri sound)

Tapi di mana Uri untuk pemberitahuan default?

Jawaban:


267

coba gunakan RingtoneManager untuk mendapatkan Default Notification Uri sebagai:

Uri uri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

builder.setSound(uri);

50
Terima kasih. Tetapi saya telah melihat saya dapat menggunakan setDefaults (Notification.DEFAULT_SOUND) juga ;-)
StefMa

8
Anda dapat melewati yang satu ini jugaSettings.System.DEFAULT_NOTIFICATION_URI
Pratik Butani

46

builder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI) bekerja dengan baik


5
Pengaturan berasal dari import android.provider.Settings;
Chris Knight

29

Dua opsi untuk menggunakan Default Notification Soundadalah:

mBuilder.setDefaults(Notification.DEFAULT_SOUND);

atau menggunakan Kelas RingtoneManager :

mBuilder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));

12

semua metode ini berhasil

  1. mBuilder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));

  2. mBuilder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI);

  3. mBuilder.setDefaults(Notification.DEFAULT_SOUND);

Dokumentasi Google


3

Anda juga dapat menggunakan ini:

Uri uri = Uri.parse(PreferenceManager.getDefaultSharedPreferences(this).
            getString("pref_tone", "content://settings/system/notification_sound"));
mBuilder.setSound(uri);

Saya ingin mendapatkan applicationsuara saluran bukan suara sistem default mencoba dengan NotificationChannel channel = new NotificationChannel(ApplicationClass.getInstance().HighNotificationChannelID, getString(R.string.incoming_sms), NotificationManager.IMPORTANCE_HIGH); channel.getSound();imbalan default system soundtolong bantu
Sagar

3

Untuk pemberitahuan default sistem

Uri uri = RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION);

Untuk pemberitahuan khusus

Uri customSoundUri = Uri.parse ("android.resource: //" + getPackageName () + "/" + R.raw.twirl);

Sumber suara notifikasi (Saya mengganti namanya menjadi "twirl" dan ditempatkan di folder res-> raw)

https://notificationsounds.com/message-tones/twirl-470

Pembuat notifikasi:

NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(this)
                        .setSmallIcon(R.drawable.notificaion_icon)
                        .setContentTitle("Title here")
                        .setContentText("Body here")
                        .setSound(defaultSoundUri)
                        .setAutoCancel(true);



NotificationManager mNotifyMgr =
                (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

mNotifyMgr.notify(id, mBuilder.build());

0

Jika seseorang masih membutuhkan, ini bekerja dengan baik dengan suara dan getaran.

        Context context = getApplicationContext();
    long[] vibrate = new long[] { 1000, 1000, 1000, 1000, 1000 };
    Intent notificationIntent = new Intent(context, MainActivity.class);

    PendingIntent contentIntent = PendingIntent.getActivity(context,
            0, notificationIntent,
            PendingIntent.FLAG_CANCEL_CURRENT);

    Resources res = context.getResources();
    Notification.Builder builder = new Notification.Builder(context);

    builder.setContentIntent(contentIntent)
            .setSmallIcon(R.drawable.notif)
            .setTicker("lastWarning")
            .setWhen(System.currentTimeMillis())
            .setAutoCancel(true)
            .setVibrate(vibrate)
            //.setContentTitle(res.getString(R.string.notifytitle)) 
            .setContentTitle("Notification")
            .setSound(Settings.System.DEFAULT_NOTIFICATION_URI)
            //.setContentText(res.getString(R.string.notifytext))
            .setContentText("Notification text"); 

    // Notification notification = builder.getNotification(); // until API 16
    Notification notification = builder.build();

    NotificationManager notificationManager = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify(NOTIFY_ID, notification);

Jika Anda ingin menonaktifkan misalnya getar ubah getar ke lama baru [] {0,0,0,0,0}; Hal yang hampir serupa dapat Anda lakukan dengan suara atau pernyataan use if else.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.