আমার অ্যাপ্লিকেশনটিতে ব্যবহারকারীকে একটি অডিও ফাইল নির্বাচন করতে হবে যা অ্যাপটি তারপরে হ্যান্ডল করে। সমস্যাটি হ'ল অ্যাপটি অডিও ফাইলগুলির সাথে যা করতে চাইবে তা করার জন্য, ফাইলের ফর্ম্যাটে আমার ইউআরআই হওয়া দরকার। আমি যখন অ্যাপ্লিকেশনটিতে অডিও ফাইলটি ব্রাউজ করতে অ্যান্ড্রয়েডের নেটিভ মিউজিক প্লেয়ারটি ব্যবহার করি, তখন ইউআরআই একটি সামগ্রী ইউআরআই, যা দেখতে এই রকম হয়:
content://media/external/audio/media/710
তবে, জনপ্রিয় ফাইল ম্যানেজার অ্যাপ্লিকেশন অ্যাস্ট্রো ব্যবহার করে আমি নিম্নলিখিতগুলি পেয়েছি:
file:///sdcard/media/audio/ringtones/GetupGetOut.mp3
দ্বিতীয়টি আমার সাথে কাজ করার জন্য অনেক বেশি অ্যাক্সেসযোগ্য, তবে অবশ্যই আমি চাই যে অ্যাপ্লিকেশনটি তাদের সংগ্রহ ব্রাউজ করতে যে প্রোগ্রামটি ব্যবহার করে তা নির্ধারণ না করেই অডিও ফাইলটির সাথে তার কার্যকারিতা থাকতে পারে। সুতরাং আমার প্রশ্নটি হল, content://
শৈলীর ইউআরআইকে ইউআরআইতে রূপান্তর করার কোনও উপায় আছে 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);
তারপরে সেই ফাইলটির সাথে কিছু ফাইলআইপুট স্ট্রিম স্টাফ করুন।