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

15

问题: 我发现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却不能的原因。
欢迎提出任何建议!

1
如果有帮助的话,请查看此链接:https://dev59.com/EXA75IYBdhLWcg3wFEwI#3487413 - ccheneson
2个回答

36

我猜您想要使用android.net.uri类中的parse方法。该方法会返回所提供的已编码字符串的URI。

android.net.uri parse()


谢谢大家,但我已经找到了解决方案。 - FeelTheBurns
1
Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE, uri); - FeelTheBurns

0

谢谢大家,但这是我最终让它工作的方法

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接