如何将String转换为android.net.Uri

时间:2010-10-07 19:24:14

标签: android string uri

问题: 我发现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不能。

任何建议将不胜感激!

2 个答案:

答案 0 :(得分:28)

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

android.net.uri parse()

答案 1 :(得分:1)

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

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