2012-12-26 17 views
20

NotificationCompat.Builder tarafından oluşturulan bir bildirime nasıl ses eklersiniz? Res'de bir ham klasör oluşturdum ve sesi oraya ekledim. Peki şimdi bunu bildirime nasıl eklerim? setSound(Uri soundUri) - Bu benim Bildirim koduBildirime nasıl ses eklenir?

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()); 
+0

[NotificationCompat.Builder'da bir [setSound] (http://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html#setSound (android.net.Uri)) yöntemi var. ] (http://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html). Aradığın şey bu mu? –

cevap

40

Burada sorunu tahmin NotificationCompat.Builder sınıfında bariz bir yöntem olmadığı için, bir Uri ile ses başvurmak nasıl olmam.

android.resource://[PACKAGE_NAME]/[RESOURCE_ID]

Yani kod böyle bakıyor bitebileceğini:

Uri sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.notifysnd); 
mBuilder.setSound(sound); 
+0

Ses dosyamın hangi formatta olması gerekiyor? Kendim yerine varsayılan bir ses alıyorum. – karl

+2

Deneme ve hata ile kendi sorumu yanıtladım: 1) mp3 işleri, wav yapmaz ve 2) Bildirimi oluşturarak ve daha sonra 'n.defaults & = ~ Notification.DEFAULT_SOUND yaparak varsayılan sesi devre dışı bırakmam gerekir ; – karl

+3

Notification.Builder kullanıyorsanız, * builder.setDefaults (~ Notification.DEFAULT_SOUND); * hile yapacaktır. Ipucu için @karl için teşekkürler – Maragues

15

sizin bildirimle bir ses çalınması için

aşağıdaki gibi Uri oluşturmanız gerekir sizin raw kaynaklarına erişmek için:

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

Normal bildirim yapın prosedürler

sizin bildirimle varsayılan ses çalmak için:

notification.defaults |= Notification.DEFAULT_SOUND; 

sizin bildirimle özel bir ses çalmak için:

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

Sonra sadece bildirim göndermek için bildirim yöneticisini kullanın. Bu ifadelerin her ikisi de kullanılıyorsa, uygulama varsayılan sesi kullanacak şekilde varsayılan olacaktır.

İlgili konular