2013-10-04 23 views
14

Pozwalam mojemu użytkownikowi wybrać dzwonek powiadomień w mojej aplikacji. Chcę przechowywać URI dźwięku wraz z czytelnym dla człowieka tytułem dźwięku.Jak zdobyć nazwę dzwonka w systemie Android?

Dotychczas kod URI działa świetnie:

Uri uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); 

Ale gdy próbuję uzyskać tytuł i ustawić go jako tekst przycisku, nie dostaniesz nic. Wydaje się, że nie masz tytułu?

String title = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_TITLE); 
button.setText(title); 

Ale mój tekst przycisku jest pusty. Jeśli to zrobię:

button.setText(uri.toString()); 

wtedy widzę uri idealnie. Czy powinienem po prostu spróbować uzyskać tytuł z URI? Dzięki

Odpowiedz

1

Osobiście miałem poważny problem z wydajnością, gdy próbowałem zaakceptowanej odpowiedzi, zajęło to około 2 sekund, aby załadować listę 30 dzwonków. Zmieniłem go trochę i działa około 10 razy szybciej:

uri = ringtoneMgr.getRingtoneUri(cursor.getPosition()); 
ContentResolver cr = getContext().getContentResolver(); 
String[] projection = {MediaStore.MediaColumns.TITLE}; 
String title; 
Cursor cur = cr.query(uri, projection, null, null, null); 
    if (cur != null) { 
     if (cur.moveToFirst()) { 
      title = cur.getString(0); 
      cur.close();