如何将字符串转换为 android.net.Uri

发布于 2024-09-26 09:45:18 字数 914 浏览 4 评论 0原文

问题: 我发现 java.net.URI 有一个 create(String uri) 选项,但 android.net.uri 没有。

更具体地说: 我试图获取 RingtoneManager 的 RingtonePicker 的输出,并使用 SetActualDefaultRingtoneUri 将其设置为默认铃声:

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra( RingtoneManager.EXTRA_RINGTONE_TYPE
                     ,RingtoneManager.TYPE_RINGTONE);

intent.putExtra( RingtoneManager.EXTRA_RINGTONE_TITLE
                     , "Select Tone For Rainy Days");

startActivityForResult(intent, 0);

RingtoneManager.setActualDefaultRingtoneUri(this
                     ,RingtoneManager.TYPE_RINGTONE
                     ,RingtoneManager.EXTRA_RINGTONE_PICKED_URI);

问题是 RingtoneManager.EXTRA_RINGTONE_PICKED_URI 返回一个字符串不是 URI。 可能有比将字符串转换为 URI 更好的方法。我找不到 java.net.URI 可以做到而 android.net.Uri 不能做到的原因。

任何建议将不胜感激!

Question:
I have found that java.net.URI has a create(String uri) option but the android.net.uri does not.

More specifically:
I am trying to grab the output of RingtoneManager's RingtonePicker and set it as the default ringtone with SetActualDefaultRingtoneUri:

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra( RingtoneManager.EXTRA_RINGTONE_TYPE
                     ,RingtoneManager.TYPE_RINGTONE);

intent.putExtra( RingtoneManager.EXTRA_RINGTONE_TITLE
                     , "Select Tone For Rainy Days");

startActivityForResult(intent, 0);

RingtoneManager.setActualDefaultRingtoneUri(this
                     ,RingtoneManager.TYPE_RINGTONE
                     ,RingtoneManager.EXTRA_RINGTONE_PICKED_URI);

The problem is that RingtoneManager.EXTRA_RINGTONE_PICKED_URI returns a string not a URI.
There might be a better way than to convert the string to a URI. I cannot find a reason why java.net.URI can do it and android.net.Uri can't.

Any suggestions would be appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

飘过的浮云 2024-10-03 09:45:18

我猜您想使用 android.net.uri 类中的 parse 方法。它返回所提供的编码字符串的 URi。

android.net.uri parse()

I guess you want to use the parse method from the android.net.uri class. It returns a URi for the supplied encoded string.

android.net.uri parse()

表情可笑 2024-10-03 09:45:18

谢谢大家,但这就是我最终让它发挥作用的方式

Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
RingtoneManager.setActualDefaultRingtoneUri(this,RingtoneManager.TYPE_RINGTONE,uri);

Thanks guys, but this is how I ended up making it work

Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
RingtoneManager.setActualDefaultRingtoneUri(this,RingtoneManager.TYPE_RINGTONE,uri);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文