2010-10-07 19 views
11

問題: 我發現java.net.URI有一個create(String uri)選項,但android.net.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

看到這個,如果它可以幫助你http://stackoverflow.com/questions/3487389/java-convert-字符串到uri/3487413#3487413 – ccheneson 2010-10-07 19:30:16

回答

21

我猜你想從android.net.uri類使用parse方法。它爲所提供的編碼字符串返回一個URi。

android.net.uri parse()

+0

謝謝你們,但我找到了我的解決方案。 – 2010-10-08 21:43:33

+1

Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); \t RingtoneManager.setActualDefaultRingtoneUri(this,RingtoneManager.TYPE_RINGTONE,uri); – 2010-10-08 21:43:50

+0

謝謝! Parcelable是輕量級/ android序列化.... – tom 2016-06-07 16:11:54

1

感謝球員,但是這是我最後使其工作

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