2011-03-20 3 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

는 용서하지만, 당신은 물어보기 전에 그것을 풀기 위해 적어도 * 시도해야합니다. 제작 한 코드를 게시 하시겠습니까? –

답변

0

당신은 당신이 확장 될 수있다 또는 알 길이가 시도 모르는 상황에서는

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

4가 아닐까요? .mp3의 char 길이는 4이지만 솔직히 부분 문자열이 어떻게 작동하는지 실제로 알지 못합니다. – JMRboosties

+0

@JMRboosties : 나쁘다 - 하위 문자열 (int start, int end)에 대한 Java 구문은 길이가 아니라 '절대'값을 제안한다는 사실을 항상 잊어 버립니다. – Squonk

+0

그레이트 샷, 감사를 많이 줄거야! – JMRboosties

5

... 봤어 : 당신이있는 경우

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