Intereting Posts
SwipeRefreshLayout за ActionBar Я пытаюсь протестировать андроид ссылки с глубоким URL-адресом через adb, чтобы запустить приложение Android: опубликовать приложение с различными скриншотами, соответствующими различным языкам? Измените фон ImageView (старое изображение остается там!) Любой хороший пример для шейдера openGLES в android? Подключение через Ethernet через программный (Android) (укорененное устройство) Получение пакетов для установки и удаления Помощник Firebase не отображается в Studio 2.2.3 Как включить FlashLight в Lollipop программно Android Кнопки диалогового окна предупреждения отключены Андроид, как узнать, когда потеряно интернет-соединение? Где получить информацию об ошибках базы данных в Android SQLite (например, неудачная вставка из-за нарушения не null) Повторение Android VideoView Получение net :: ERR_UNKNOWN_URL_SCHEME при вызове номера телефона с HTML-страницы в Android Размер виджета Android

Как получить имя для звонка в Android?

Я разрешаю моему пользователю выбрать мелодию для уведомлений в моем приложении. Я хочу сохранить URI звука вместе с понятным для человека названием звука.

Пока код URI отлично работает:

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

Но когда я пытаюсь получить заголовок и устанавливаю его как текст кнопки, я ничего не получаю. Кажется, нет названия?

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

Но текст кнопки пуст. Если я сделаю:

 button.setText(uri.toString()); 

То я вижу ури отлично. Должен ли я просто попытаться получить название из URI? благодаря

Solutions Collecting From Web of "Как получить имя для звонка в Android?"

Это должно получиться:

 Ringtone ringtone = RingtoneManager.getRingtone(this, uri); String title = ringtone.getTitle(this); 

См. http://developer.android.com/reference/android/media/Ringtone.html для документации, но рассказ: Ringtone.getTitle (Context ctx);

У меня лично была серьезная проблема с производительностью, когда я попробовал принятый ответ, потребовалось около 2 секунд, чтобы загрузить список из 30 рингтонов. Я немного изменил его, и он работает примерно в 10 раз быстрее:

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

У меня были проблемы с завершением MediaPlayer без выпуска. Я использую это:

 Cursor returnCursor = getContentResolver().query(uri, null, null, null, null); returnCursor.moveToFirst(); String title = returnCursor.getString(returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)); returnCursor.close(); 

Для документации см. https://developer.android.com/training/secure-file-sharing/retrieve-info.html .