2011-03-20 72 views
0

因此,我正在使用Android中的URI爲各個聯繫人設置鈴聲。問題是,鈴聲選擇器的工作方式是它不喜歡諸如myringtone.mp3之類的內容。相反,它只是想要myringtone。奇怪,但我想這就是它的方式。所以我有一個像file:///sdcard/tag/ringtones/ringtone.mp3的URI。如何獲取URI以刪除擴展程序,以便鈴聲管理器正確使用它?鈴聲的設置方式如下:Android/Java:如何從URI中刪除文件類型擴展?

values.put(ContactsContract.Contacts.CUSTOM_RINGTONE, uri.toString()); 

所以URI是字符串形式。使用子字符串我應該能夠做到這一點,但我不知道如何編寫一個方法來刪除字符串中的最後4個字符。任何人都可以給我一些建議嗎?

謝謝!

+0

原諒我,如果你有,但你應該至少*嘗試*在問之前解決它。發佈您製作的代碼? – 2011-03-20 23:29:33

回答

0

您是否嘗試過...

uri.toString().substring(0, uri.toString().length() - 4); 
+0

這不是零下4嗎? .mp3的字符長度爲4,但說實話我並不知道子串是如何工作的。 – JMRboosties 2011-03-20 23:51:50

+0

@JMRboosties:我的不好 - 我總是忘記substring(int start,int end)的Java語法表明'絕對'結束,而不是長度。 – Squonk 2011-03-21 00:07:14

+0

偉大的我會給它一個鏡頭,非常感謝! – JMRboosties 2011-03-21 00:08:03

5

對於您不知道什麼擴展可能的或未知的長度,儘量情況:?

uri.toString().substring(0, uri.getString().lastIndexOf("."));