Android/Java:如何从URI中删除文件类型扩展?

JMR*_*ies 0 android uri substring ringtone

所以我正在使用Android中的URI为各个联系人设置铃声.问题是,铃声选择器的工作方式是它不喜欢像myringtone.mp3.相反,它只是想要myringtone.很奇怪,但我想这就是它的方式.所以我有一个类似的URI file:///sdcard/tag/ringtones/ringtone.mp3.如何获取URI以删除扩展名,以便铃声管理器正确使用它?设置铃声的方式是这一行:

values.put(ContactsContract.Contacts.CUSTOM_RINGTONE, uri.toString());
Run Code Online (Sandbox Code Playgroud)

所以URI是字符串形式.使用子串我应该能够做到,但我不知道如何编写一个方法来删除字符串中的最后4个字符.谁能在这里给我一些建议?

谢谢!

Rob*_*ert 5

如果您不知道扩展名是什么或未知长度,请尝试:

uri.toString().substring(0, uri.getString().lastIndexOf("."));
Run Code Online (Sandbox Code Playgroud)