【问题标题】:How to get Ringtone name in Android?如何在 Android 中获取铃声名称?
【发布时间】:2013-10-11 20:12:41
【问题描述】:

我允许我的用户为我的应用中的通知选择铃声。我想存储声音的 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。我应该尝试从 URI 中获取标题吗?谢谢

【问题讨论】:

    标签: java android android-intent android-notifications ringtone


    【解决方案1】:

    这应该得到它:

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

    参考http://developer.android.com/reference/android/media/Ringtone.html的文档,不过是小故事:Ringtone.getTitle(Context ctx);

    【讨论】:

    • 谢谢。文档似乎总能吸引我。
    • +Alexey Kuznetsov 什么意思?
    【解决方案2】:

    当我尝试接受的答案时,我个人遇到了一个严重的性能问题,加载 30 个铃声列表大约需要 2 秒。我稍微改动了一下,它的运行速度提高了大约 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();
    

    【讨论】:

      【解决方案3】:

      我遇到了“MediaPlayer finalized without being released”的问题。我用这个:

      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

      【讨论】:

        猜你喜欢
        • 2014-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多