मेरे ऐप में उपयोगकर्ता को एक ऑडियो फ़ाइल का चयन करना है जिसे ऐप तब संभालता है। समस्या यह है कि ऐप को ऑडियो फ़ाइलों के साथ क्या करना है, यह करने के लिए, मुझे फ़ाइल प्रारूप में URI की आवश्यकता है। जब मैं ऐप में ऑडियो फ़ाइल ब्राउज़ करने के लिए एंड्रॉइड के मूल संगीत प्लेयर का उपयोग करता हूं, तो यूआरआई एक सामग्री यूआरआई है, जो इस प्रकार है:
content://media/external/audio/media/710
हालाँकि, लोकप्रिय फ़ाइल प्रबंधक एप्लिकेशन एस्ट्रो का उपयोग करके, मुझे निम्नलिखित मिलते हैं:
file:///sdcard/media/audio/ringtones/GetupGetOut.mp3
उत्तरार्द्ध मेरे साथ काम करने के लिए बहुत अधिक सुलभ है, लेकिन निश्चित रूप से मैं चाहता हूं कि एप्लिकेशन को ऑडियो फ़ाइल के साथ कार्यक्षमता हो जो उपयोगकर्ता अपने संग्रह को ब्राउज़ करने के लिए उपयोग किए गए प्रोग्राम की परवाह किए बिना चुनता है। तो मेरा सवाल यह है कि क्या content://
स्टाइल URI को URI में बदलने का कोई तरीका है file://
? अन्यथा, आप मुझे इस समस्या को हल करने के लिए क्या सलाह देंगे? यहाँ वह कोड है जो चयनकर्ता को कॉल करता है, संदर्भ के लिए:
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);
मैं निम्नलिखित सामग्री यूआरआई के साथ करता हूं:
m_ringerPath = m_ringtoneUri.getPath();
File file = new File(m_ringerPath);
फिर कुछ FileInputStream सामान को फ़ाइल के साथ करें।