/** * * @author Rachit Mishra * @licence The MIT License (MIT) Copyright (c) <2013> <Rachit Mishra> * */ package in.ceeq.services; import in.ceeq.R; import in.ceeq.commons.Utils; import android.app.IntentService; import android.content.Context; import android.content.Intent; import android.media.AudioManager; import android.media.MediaPlayer; import android.media.RingtoneManager; import android.net.Uri; public class RingerService extends IntentService { public static final String RINGER_START_ACTION = "in.ceeq.ringer.start"; public static final String SIREN_START_ACTION = "in.ceeq.siren.start"; public static final String STOP_ACTION = "in.ceeq.ringer.stop"; private MediaPlayer mediaPlayer; private AudioManager audioManager; private String action; public RingerService() { super("Ringer"); } @Override public void onCreate() { super.onCreate(); audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0); audioManager.setStreamVolume(AudioManager.STREAM_RING, audioManager.getStreamMaxVolume(AudioManager.STREAM_RING), 0); } @Override protected void onHandleIntent(Intent intent) { Uri uri = RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE); action = intent.getAction(); if (action.equals(RINGER_START_ACTION)) { mediaPlayer = MediaPlayer.create(this, uri); startPlaying(); } if (action.equals(RINGER_START_ACTION)) { mediaPlayer = MediaPlayer.create(this, R.raw.siren); startPlaying(); } if (action.equals(STOP_ACTION)) { stopPlaying(); } } private void startPlaying() { if (mediaPlayer.isPlaying() || mediaPlayer.isLooping()) { Utils.d("Already playing ..."); mediaPlayer.stop(); while (true) mediaPlayer.start(); } else { while (true) mediaPlayer.start(); } } private void stopPlaying() { mediaPlayer.stop(); } }