2015-02-23 29 views
5

tôi muốn người dùng có thể chọn âm thanh thông báo cho ứng dụng của tôi vì vậy tôi sử dụng mã dưới đây:Làm cách nào để thêm âm thanh thông báo của ứng dụng vào danh sách âm thanh thông báo?

Intent ringtoneIntent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); 
ringtoneIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false); 
ringtoneIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false); 
ringtoneIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION); 
ringtoneIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Choose"); 
ringtoneIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, (Uri) null); 
fragment.startActivityForResult(ringtoneIntent, REQUEST_RINGTONE); 

Thật không may, âm thanh thông báo riêng ứng dụng của tôi không có trong danh sách. Google Hangouts, Lịch và Facebook trong danh sách. Tôi cho rằng các chương trình này đã làm một cái gì đó để đăng ký với android, nhưng tôi không thể tìm thấy bất kỳ tài liệu hướng dẫn về cách làm điều này.

Trả lời

3

Đầu tiên sao chép tập tin của bạn vào thư mục rigntones (Xem Environment.DIRECTORY_RINGTONES)

Sau đó đăng ký âm thanh:

ContentValues values = new ContentValues(); 
values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath()); 
values.put(MediaStore.MediaColumns.TITLE, nameOfSound); 
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); 
values.put(MediaStore.Audio.Media.ARTIST, yourAppName); 
values.put(MediaStore.Audio.Media.IS_RINGTONE, true); 
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true); 
values.put(MediaStore.Audio.Media.IS_ALARM, true); 
values.put(MediaStore.Audio.Media.IS_MUSIC, false); 

Uri uri = MediaStore.Audio.Media.getContentUriForPath(file.getAbsolutePath()); 
getContentResolver().insert(uri, values); 
Các vấn đề liên quan