ในแอพของฉันผู้ใช้ต้องเลือกไฟล์เสียงที่แอพจัดการนั้น ปัญหาคือเพื่อให้แอปทำในสิ่งที่ฉันต้องการให้ทำกับไฟล์เสียงฉันต้องการ URI ในรูปแบบไฟล์ เมื่อฉันใช้เครื่องเล่นเพลงพื้นเมืองของ Android เพื่อเรียกดูไฟล์เสียงในแอพ URI คือ URI เนื้อหาซึ่งมีลักษณะดังนี้:
content://media/external/audio/media/710
อย่างไรก็ตามการใช้แอพพลิเคชั่นตัวจัดการไฟล์ยอดนิยม Astro ฉันได้รับสิ่งต่อไปนี้:
file:///sdcard/media/audio/ringtones/GetupGetOut.mp3
ตัวหลังสามารถเข้าถึงได้มากขึ้นสำหรับฉันที่จะทำงานด้วย แต่แน่นอนว่าฉันต้องการให้แอปมีฟังก์ชั่นการทำงานกับไฟล์เสียงที่ผู้ใช้เลือกโดยไม่คำนึงถึงโปรแกรมที่พวกเขาใช้ในการเรียกดูคอลเล็กชันของพวกเขา ดังนั้นคำถามของฉันคือมีวิธีแปลงcontent://
URI ของสไตล์เป็นfile://
URI หรือไม่ ไม่เช่นนั้นคุณจะแนะนำให้ฉันแก้ไขปัญหานี้อย่างไร นี่คือรหัสที่เรียกตัวเลือกสำหรับการอ้างอิง:
Intent ringIntent = new Intent();
ringIntent.setType("audio/mp3");
ringIntent.setAction(Intent.ACTION_GET_CONTENT);
ringIntent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(Intent.createChooser(ringIntent, "Select Ringtone"), SELECT_RINGTONE);
ฉันทำสิ่งต่อไปนี้กับ URI เนื้อหา:
m_ringerPath = m_ringtoneUri.getPath();
File file = new File(m_ringerPath);
จากนั้นทำบางสิ่ง FileInputStream ด้วยไฟล์ดังกล่าว