Fix custom ringtone issue

This commit is contained in:
Sylvain Berfini 2012-07-10 12:47:01 +02:00
parent b942301744
commit ec4358b51f

View file

@ -18,6 +18,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
package org.linphone; package org.linphone;
import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@ -42,6 +43,7 @@ import android.app.PendingIntent;
import android.app.Service; import android.app.Service;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManager.NameNotFoundException;
import android.media.MediaPlayer; import android.media.MediaPlayer;
@ -530,12 +532,17 @@ public final class LinphoneService extends Service implements LinphoneServiceLis
void onCallStateChanged(LinphoneCall call, State state, String message); 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) { public void onRingerPlayerCreated(MediaPlayer mRingerPlayer) {
String uriString = PreferenceManager.getDefaultSharedPreferences(this).getString(getString(R.string.pref_audio_ringtone), RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE).toString()); String uriString = PreferenceManager.getDefaultSharedPreferences(this).getString(getString(R.string.pref_audio_ringtone), RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE).toString());
Uri uri = Uri.parse(uriString);
try { try {
mRingerPlayer.setDataSource(this, uri); FileInputStream fis = new FileInputStream(uriString);
mRingerPlayer.setDataSource(fis.getFD());
} catch (IOException e) { } catch (IOException e) {
Log.e(e, "cannot set ringtone"); Log.e(e, "cannot set ringtone");
} }