From ec4358b51f3ba9009646674b4d16239e88f75f26 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 10 Jul 2012 12:47:01 +0200 Subject: [PATCH] Fix custom ringtone issue --- src/org/linphone/LinphoneService.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/org/linphone/LinphoneService.java b/src/org/linphone/LinphoneService.java index 68f4f8ee1..594baf803 100644 --- a/src/org/linphone/LinphoneService.java +++ b/src/org/linphone/LinphoneService.java @@ -18,6 +18,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.linphone; +import java.io.FileInputStream; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -42,6 +43,7 @@ import android.app.PendingIntent; import android.app.Service; import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.media.MediaPlayer; @@ -530,12 +532,17 @@ public final class LinphoneService extends Service implements LinphoneServiceLis void onCallStateChanged(LinphoneCall call, State state, String message); } + public void changeRingtone(String ringtone) { + SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(this).edit(); + editor.putString(getString(R.string.pref_audio_ringtone), ringtone); + editor.commit(); + } public void onRingerPlayerCreated(MediaPlayer mRingerPlayer) { String uriString = PreferenceManager.getDefaultSharedPreferences(this).getString(getString(R.string.pref_audio_ringtone), RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE).toString()); - Uri uri = Uri.parse(uriString); try { - mRingerPlayer.setDataSource(this, uri); + FileInputStream fis = new FileInputStream(uriString); + mRingerPlayer.setDataSource(fis.getFD()); } catch (IOException e) { Log.e(e, "cannot set ringtone"); }