Set raw resource as ringtone in Android -


in android application, want set audio file raw folder ringtone. wrote below code, not working.

please me solve issue. thank you.

code :

string name =best_song_ever.mp3; file newsoundfile = new file("/sdcard/media/ringtone",                         "myringtone.mp3");                 uri muri = uri.parse("android.resource://"                         + context.getpackagename() + "/raw/" + name);                 contentresolver mcr = context.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 = fis.read(readdata);                  while (i != -1) {                     fos.write(readdata, 0, i);                     = fis.read(readdata);                 }                  fos.close();             } catch (ioexception io) {             }             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(context,                         ringtonemanager.type_ringtone, newuri);             } catch (throwable t) {              }              toast.maketext(context, name + " set ringtone.",                     toast.length_long).show();         } 

the following code solved problem:

string name = "your_raw_audio_name"; file file = new file(environment.getexternalstoragedirectory(),"/myringtonfolder/audio/"); if (!file.exists()) {    file.mkdirs(); }  string path = environment.getexternalstoragedirectory()    .getabsolutepath() + "/myringtonfolder/audio/"; file f = new file(path + "/", name + ".mp3"); uri muri = uri.parse("android.resource://"                     + context.getpackagename() + "/raw/" + name); contentresolver mcr = context.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(f);     int = fis.read(readdata);     while (i != -1) {         fos.write(readdata, 0, i);         = fis.read(readdata);     }     fos.close(); } catch (ioexception io) {}  contentvalues values = new contentvalues(); values.put(mediastore.mediacolumns.data, f.getabsolutepath()); values.put(mediastore.mediacolumns.title, name); values.put(mediastore.mediacolumns.mime_type, "audio/mp3"); values.put(mediastore.mediacolumns.size, f.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, true);  uri uri = mediastore.audio.media.getcontenturiforpath(f.getabsolutepath()); uri newuri = mcr.insert(uri, values);  try {     ringtonemanager.setactualdefaultringtoneuri(context,         ringtonemanager.type_ringtone, newuri);     settings.system.putstring(mcr, settings.system.ringtone,newuri.tostring()); } catch (throwable t) {} 

Comments

Popular posts from this blog

image - ClassNotFoundException when add a prebuilt apk into system.img in android -

I need to import mysql 5.1 to 5.5? -

Java, Hibernate, MySQL - store UTC date-time -