2017-07-23 5 views
1

Ich biete derzeit eine Funktionalität für meine App, für die ich dem Benutzer alle verfügbaren Systembenachrichtigungssounds anzeigen.Spezifische Möglichkeit, benutzerdefinierte Benachrichtigung Töne in Android zu erkennen

Jetzt möchte ich die benutzerdefinierten Benachrichtigung Sounds, die im internen Speicher sowie SD-Karte vorhanden sein können.

Momentan denke ich darüber nach, eine Liste aller verfügbaren Audiodateien zu erhalten und sie dann nach ihrer Dauer zu filtern (da Benachrichtigungssounds sehr kurz sind).

Gibt es einen besseren Ansatz, um benutzerdefinierte Benachrichtigungstöne auf dem Gerät zu erkennen? Antworten mit entsprechendem Code würden sehr geschätzt werden.

Antwort

1

RingtoneManager.getCursor() gibt Ihnen eine Methode, um alle Klingeltöne zu bekommen. Schauen Sie unter dem Code RingtoneManager.getCursor().

/** 
364  * Returns a {@link Cursor} of all the ringtones available. The returned 
365  * cursor will be the same cursor returned each time this method is called, 
366  * so do not {@link Cursor#close()} the cursor. The cursor can be 
367  * {@link Cursor#deactivate()} safely. 
368  * <p> 
369  * If {@link RingtoneManager#RingtoneManager(Activity)} was not used, the 
370  * caller should manage the returned cursor through its activity's life 
371  * cycle to prevent leaking the cursor. 
372  * <p> 
373  * Note that the list of ringtones available will differ depending on whether the caller 
374  * has the {@link android.Manifest.permission#READ_EXTERNAL_STORAGE} permission. 
375  * 
376  * @return A {@link Cursor} of all the ringtones available. 
377  * @see #ID_COLUMN_INDEX 
378  * @see #TITLE_COLUMN_INDEX 
379  * @see #URI_COLUMN_INDEX 
380  */ 
381 public Cursor getCursor() { 
382  if (mCursor != null && mCursor.requery()) { 
383   return mCursor; 
384  } 
385 
386  final Cursor internalCursor = getInternalRingtones(); 
387  final Cursor mediaCursor = getMediaRingtones(); 
388 
389  return mCursor = new SortCursor(new Cursor[] { internalCursor, mediaCursor }, 
390    MediaStore.Audio.Media.DEFAULT_SORT_ORDER); 
391 } 
+0

Danke :) Ich hatte dies bereits in meiner App implementiert. Sieht so aus, als müsste ich meine Benutzer anweisen, ihre benutzerdefinierten Sounds in bestimmte Notification-Ordner zu verschieben, und dann funktioniert mein bestehender Code wie ein Zauber :) Vielen Dank :) – SoulRayder

Verwandte Themen