Uri для звукового уведомления по умолчанию?
Я использую уведомления.Строитель для создания уведомления. Теперь я хочу использовать звуковое уведомление по умолчанию с:
builder.setSound(Uri sound)
но где находится Uri для уведомления по умолчанию?
7 ответов:
попробуйте использовать RingtoneManager чтобы получить Uri уведомления по умолчанию как:
Uri uri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); builder.setSound(uri);
два варианта использования
Default Notification Sound
являются:mBuilder.setDefaults(Notification.DEFAULT_SOUND);
или через RingtoneManager класс:
mBuilder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
все эти методы работают
mBuilder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
mBuilder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI);
mBuilder.setDefaults(Notification.DEFAULT_SOUND);
вы также можете использовать это:
Uri uri = Uri.parse(PreferenceManager.getDefaultSharedPreferences(this). getString("pref_tone", "content://settings/system/notification_sound")); mBuilder.setSound(uri);
для системного уведомления по умолчанию
Uri uri= RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION);
для пользовательского уведомления
Uri customSoundUri = Uri.parse ("android.ресурс:/ / "+ getPackageName () + " / " + R. raw.вертеть);
источник звука уведомления (я переименован в "twirl" и помещен в res- > raw папка)
https://notificationsounds.com/message-tones/twirl-470
уведомления застройщика:
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());
Если кому-то все еще нужно, это работает абсолютно нормально со звуком и вибрацией.
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);
Если вы хотите отключить, например, изменение вибрации вибрировать на новый длинный [] { 0,0,0,0,0}; Почти то же самое вы можете сделать со звуком или использовать, если еще заявление.