2011-12-07 46 views
7

Tôi có đồng hồ đếm ngược trong hoạt động của mình và khi nó đạt đến 0, tôi gửi thông báo tới thanh trạng thái cũng phát tệp wav tùy chỉnh để cảnh báo người dùng. Tôi chỉ muốn thông báo trên thanh trạng thái xuất hiện nếu người dùng không sử dụng ứng dụng vào thời điểm đó nhưng tôi vẫn muốn tệp wav phát cho dù ứng dụng hẹn giờ có hiển thị hay không.Thông báo Android chỉ phát âm thanh

Có thể làm cho thông báo Android chỉ phát cảnh báo âm thanh không? Tôi đã thử sử dụng MediaPlayer để phát tệp wav nhưng điều này sử dụng cài đặt âm lượng của chính nó chứ không phải khối lượng thông báo thường xuyên vì vậy nếu âm lượng phương tiện của bạn thấp thì âm thanh thông báo phát ở mức âm lượng thấp mà tôi không muốn. Tôi muốn âm thanh phát cùng âm lượng với các thông báo khác.

Tôi đang sử dụng này: http://developer.android.com/guide/topics/ui/notifiers/notifications.html

Và cung cấp các âm thanh như thế này:

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

Có nó có thể chỉ đóng một cảnh báo âm thanh. –

+1

Cảm ơn @ coder_For_Life22, bạn có muốn chỉ cho tôi cách thực hiện không? – Daniel

Trả lời

5

Trong 'Thêm một âm thanh' trong http://developer.android.com/guide/topics/ui/notifiers/notifications.html có được ghi chú này:

Note: If the defaults field includes DEFAULT_SOUND, then the default sound overrides any sound defined by the sound field.

Vì vậy, nếu bạn chỉ muốn tùy chỉnh âm thanh, bạn có thể sử dụng -

notification.sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.notifysnd); 
notification.defaults = Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE; 
3

Theo thử nghiệm của tôi, bạn thực sự có thể gửi thông báo mà không có thông báo xuất hiện trong vùng thông báo nhưng vẫn phát âm thanh.

Tất cả những gì bạn cần làm là xây dựng trình tạo thông báo và đặt âm thanh cho nó, nhưng bỏ qua mục đích, biểu tượng, tiêu đề nội dung và nội dung đang chờ xử lý.

NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 
builder.setSound(your_sound_uri); 
notificationManager.notify(1234, builder.build()); 
+1

Các câu trả lời này đặc biệt hữu ích vì các tài liệu sai về điều này. http://developer.android.com/guide/topics/ui/notifiers/notifications.html#CreateNotification cho biết, "Đối tượng thông báo * phải * chứa nội dung sau: Biểu tượng nhỏ, được thiết lập bởi setSmallIcon(); Tiêu đề, bộ bởi setContentTitle(); Văn bản chi tiết, được thiết lập bởi setContentText() " – Jerry101

+2

Biểu tượng là bắt buộc. Điều này gây ra lỗi: java.lang.IllegalArgumentException: Thông báo không hợp lệ (không có biểu tượng nhỏ hợp lệ) –

0
Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 

Notification mNotification = new Notification.Builder(this) 

      .setContentTitle("New Post!") 
      .setContentText("Here's an awesome update for you!") 
      .setSmallIcon(R.drawable.ic_lancher) 
      .setContentIntent(pIntent) 
      .setSound(soundUri) 
      .build(); 
0
NotificationCompat.Builder builder= new NotificationCompat.Builder(this); 

ba cách để setSound

builder.setDefaults(Notification.DEFAULT_SOUND); 
builder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)); 
builder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI); 
Các vấn đề liên quan