Uri默认声音通知?

我使用Notification.Builder来build立通知。 现在我想用默认声音通知:

builder.setSound(Uri sound) 

但是Uri的默认通知在哪里呢?

尝试使用RingtoneManager获取默认通知Uri为:

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

builder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI)适用

使用Default Notification Sound的两个选项是:

 mBuilder.setDefaults(Notification.DEFAULT_SOUND); 

或者使用RingtoneManager类:

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

所有这些方法的工作

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

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

  3. mBuilder.setDefaults(Notification.DEFAULT_SOUND);

Google文档

你也可以使用这个:

 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.resource://”+ getPackageName()+“/”+ R.raw.twirl);

声音来源(我改名为“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}; 几乎类似的东西,你可以做声音或使用如果else语句。