@Maxood
@Clive से कोड आप रिंगटोन सेट करने की जरूरत क्या है। आपको फ़ाइल के पूर्ण पथ की आवश्यकता होगी, जिसे आप कच्चे संसाधन से नहीं प्राप्त कर सकते हैं।
समाधान संसाधन फ़ाइल संपत्ति प्राप्त करना और एसडीकार्ड 1 को लिखना है, इससे पहले कि आप इसे सम्मिलन के लिए सामग्री रिज़ॉल्वर को दें।
File newSoundFile = new File("/sdcard/media/ringtone", "myringtone.oog");
Uri mUri = Uri.parse("android.resource://com.your.package/R.raw.your_resource_id");
ContentResolver mCr = app.getContentResolver();
AssetFileDescriptor soundFile;
try {
soundFile= mCr.openAssetFileDescriptor(mUri, "r");
} catch (FileNotFoundException e) {
soundFile=null;
}
try {
byte[] readData = new byte[1024];
FileInputStream fis = soundFile.createInputStream();
FileOutputStream fos = new FileOutputStream(newSoundFile);
int i = fis.read(readData);
while (i != -1) {
fos.write(readData, 0, i);
i = fis.read(readData);
}
fos.close();
} catch (IOException io) {
}
तो फिर तुम अनुमति
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
अपने प्रकट
आशा में इस मदद करता है लिखने के लिए पहले से तैनात समाधान
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, newSoundFile.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "my ringtone");
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/oog");
values.put(MediaStore.MediaColumns.SIZE, newSoundFile.length());
values.put(MediaStore.Audio.Media.ARTIST, R.string.app_name);
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
values.put(MediaStore.Audio.Media.IS_ALARM, true);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);
Uri uri = MediaStore.Audio.Media.getContentUriForPath(newSoundFile.getAbsolutePath());
Uri newUri = mCr.insert(uri, values);
try {
RingtoneManager.setActualDefaultRingtoneUri(getContext(), RingtoneManager.TYPE_RINGTONE, newUri);
} catch (Throwable t) {
Log.d(TAG, "catch exception");
}
उपयोग कर सकते हैं
मत भूलना
क्या आपको कभी समाधान मिला है? – vondip
यह एक डुप्लिकेट नहीं है! कच्ची फ़ाइल से रिंगटोन सेट करने के बारे में यह वार्तालाप। दूसरा एक एसडी कार्ड पर पहले से ही रिंगटोन सेट करने का तरीका है। कृपया दोबारा खोलें मेरे पास एक पूर्ण समाधान है। – ozmike