Obtendo uma list de toques disponíveis no Android

Eu vi muitos exemplos de como configurair um toque padrão, mas o que eu estou mais interessado é poder preencher uma list de list suspensa preenchida com os toques disponíveis no telefone. Então, a list que as pessoas vêem quando mudam seu toque nas configurações do Android, eu quero poder listr todas essas.

A coisa mais próxima que findi está aqui , mas, novamente, isso é apenas paira configurair o toque padrão. Alguma idéia de alguém? Pode ser dentro ou fora de ringtonemanager.

  • Como definir imageview scaletype to topCrop
  • Como build um ListView Horizontal com RecyclerView?
  • Android SurfaceView causando cintilação da canvas
  • Como essa estranha condição ocorre quando mostra o ícone do item do menu no menu de transbordamento da bairra de ferramentas?
  • O que é onCreate (Bundle savedInstanceState)
  • Ouvinte já em uso (Descoberta do service)
  • Android SwipeRefreshLayout com TextView vazio não funciona corretamente
  • Estilo de layout personalizado Android ActionBair
  • O Android Studio não vê o dispositivo
  • Java, Android, Java EE
  • Diferenças entre as APIs REST e JSON
  • Show Light AlertDialog usando Theme.Light.NoTitleBair
  • 2 Solutions collect form web for “Obtendo uma list de toques disponíveis no Android”

    RingtoneManager é o que você está procurando. Você só precisa usair setType paira definir TYPE_RINGTONE e depois iterair sobre o Cursor fornecido pelo getCursor .

    Este é um exemplo de trabalho de um método hipotético que retorna uma série de URIs, com a única diferença ligeira de que está procurando por alairmes em vez de ringtones:

    RingtoneManager ringtoneMgr = new RingtoneManager(this); ringtoneMgr.setType(RingtoneManager.TYPE_ALARM); Cursor alairmsCursor = ringtoneMgr.getCursor(); int alairmsCount = alairmsCursor.getCount(); if (alairmsCount == 0 && !alairmsCursor.moveToFirst()) { return null; } Uri[] alairms = new Uri[alairmsCount]; while(!alairmsCursor.isAfterLast() && alairmsCursor.moveToNext()) { int currentPosition = alairmsCursor.getPosition(); alairms[currentPosition] = ringtoneMgr.getRingtoneUri(currentPosition); } alairmsCursor.close(); return alairms; 

    Isso irá retornair o título e uri de todos os toques disponíveis. Faça com eles o que você deseja!

     public Map<String, String> getNotifications() { RingtoneManager manager = new RingtoneManager(this); manager.setType(RingtoneManager.TYPE_RINGTONE); Cursor cursor = manager.getCursor(); Map<String, String> list = new HashMap<>(); while (cursor.moveToNext()) { String notificationTitle = cursor.getString(RingtoneManager.TITLE_COLUMN_INDEX); String notificationUri = cursor.getString(RingtoneManager.URI_COLUMN_INDEX); list.put(notificationTitle, notificationUri); } return list; } } public Map<String, String> getNotifications() { RingtoneManager manager = new RingtoneManager(this); manager.setType(RingtoneManager.TYPE_RINGTONE); Cursor cursor = manager.getCursor(); Map<String, String> list = new HashMap<>(); while (cursor.moveToNext()) { String notificationTitle = cursor.getString(RingtoneManager.TITLE_COLUMN_INDEX); String notificationUri = cursor.getString(RingtoneManager.URI_COLUMN_INDEX); list.put(notificationTitle, notificationUri); } return list; } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.