2011-03-20 84 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("."));