【问题标题】:Android/Java: How to remove the filetype extention from a URI?Android/Java:如何从 URI 中删除文件类型扩展名?
【发布时间】:2011-03-21 08:13:10
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

  • 如果你有,请原谅我,但你至少应该在提问之前尝试解决它。发布您生成的代码?

标签: android uri substring ringtone


【解决方案1】:

对于您不知道扩展名可能是什么或未知长度的情况,请尝试:

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

【讨论】:

    【解决方案2】:

    你试过了吗?...

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

    【讨论】:

    • 不是负4吗? .mp3 的字符长度为 4,但老实说,我真的不知道子字符串是如何工作的。
    • @JMRboosties:我的错 - 我总是忘记 substring(int start, int end) 的 Java 语法建议“绝对”结束而不是长度。
    猜你喜欢
    • 2017-04-22
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    相关资源
    最近更新 更多