2015-02-23 31 views
5

Ich möchte der Benutzer in der Lage sein eine Benachrichtigung Sound für meine Anwendung zu wählen, so dass ich den Code unten verwenden:Wie füge ich den Benachrichtigungssound meiner App zur Benachrichtigungstonliste hinzu?

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); 

Leider meine app eigene Benachrichtigung Sound ist nicht in der Liste. Google Hangouts, Kalender und Facebook sind in der Liste. Ich nehme an, diese Programme haben etwas getan, um sich bei Android zu registrieren, aber ich kann keine Dokumentation finden, wie man das macht.

Antwort

3

Zuerst kopieren Sie Ihre Datei in den Ordner rigntones (Siehe Environment.DIRECTORY_RINGTONES)

Dann den Ton registrieren:

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); 
Verwandte Themen