0

这是我的第一个具有隐含意图的应用程序,我正在尝试将它与我的书籍和 kotlin 的 android 参考一起使用。

现在我在处理意图的结果时遇到了问题。

  1. 我创建了一个按钮
  2. OnClick 在按钮上它启动“startActivityForResult”并打开 RingtoneManager 的意图
  3. 现在我可以选择声音了。

这一步一切都很好。现在我读到,我必须使用“onActivityResult”函数来获取声音的 uri,然后可以使用 uri 来启动铃声。

我只是不知道如何获得这个uri。“OnActiviyResult”给出了一个带有数据的参数。数据是一个意图。我想我必须从意图的数据中获取 uri,但我真的不知道如何。有人可以帮我吗,或者只是给我一个提示?我不需要完整的解决方案。一个提示真的会帮助我。

    // starts on Using the Intent
    fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        Log.i("onActivityResult", "Start")
        val ringtoneTaken : Boolean = false

        super.onActivityResult(requestCode, resultCode, data)
        //val uri? : URI =
        //val uri = data.toUri()
        if(requestCode == 999 && resultCode == RESULT_OK) {
            if(data != null) {

                }
            }
            //saveSelectedRingtone()
        }
    }
4

1 回答 1

0

好的,我现在终于找到了答案。它适用于:

val uri = data!!.getParcelableExtra<Uri>(RingtoneManager.EXTRA_RINGTONE_PICKED_URI)

然后我可以设置新的铃声

ringtone = RingtoneManager.getRingtone(this, uri)

并开始播放。

于 2022-01-16T13:11:46.557 回答