2

I'm doing an android application which i need to set multiple alarms @ different timings.For ex. I need to set @ 10AM,2PM,9PM per each day.I want to set repeating alarm with these timings & to be ringed up when this times reaches.These three rings should happen every day.Below is my tried sample code.But its not ringed up.How could i resolve this?Thanks.

My Code: ...

            // For setting up hours as arrays

    h[0] = 10;
    h[1] = 14;
    h[2] = 21;

    Calendar cal[] = new Calendar[3];

    for (int i = 0; i < 3; i++) {
        cal[i] = Calendar.getInstance();
        cal[i].set(Calendar.HOUR_OF_DAY, h[i]);
        cal[i].set(Calendar.MINUTE, i);
        cal[i].set(Calendar.SECOND, i);
    }

    AlarmManager[] alarmManager = new AlarmManager[3];
    ArrayList<PendingIntent> intentArray = new ArrayList<PendingIntent>();
    for (int f = 0; f < cal.length; f++) {
        Intent intent = new Intent(AlarmMainActivity.this,
                AlarmReceiverActivity.class);
        PendingIntent pi = PendingIntent.getBroadcast(
                AlarmMainActivity.this, f, intent, 0);

        alarmManager[f] = (AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager[f].set(AlarmManager.RTC_WAKEUP,
                cal[f].getTimeInMillis(), pi);

        intentArray.add(pi);

    }

}

My AlarmReceiverActivity:

..

    Button stopAlarm = (Button) findViewById(R.id.stopAlarm);
    stopAlarm.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View arg0, MotionEvent arg1) {
            mMediaPlayer.stop();
            finish();
            return false;
        }
    });

    playSound(this, getAlarmUri());
}

private void playSound(Context context, Uri alert) {
    mMediaPlayer = new MediaPlayer();
    try {
        mMediaPlayer.setDataSource(context, alert);
        final AudioManager audioManager = (AudioManager) context
                .getSystemService(Context.AUDIO_SERVICE);
        if (audioManager.getStreamVolume(AudioManager.STREAM_ALARM) != 0) {
            mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);
            mMediaPlayer.prepare();
            mMediaPlayer.start();
        }
    } catch (IOException e) {
        System.out.println("OOPS");
    }
}

// Get an alarm sound. Try for an alarm. If none set, try notification,
// Otherwise, ringtone.
private Uri getAlarmUri() {
    Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
    if (alert == null) {
        alert = RingtoneManager
                .getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        if (alert == null) {
            alert = RingtoneManager
                    .getDefaultUri(RingtoneManager.TYPE_RINGTONE);
        }
    }
    return alert;
}
subbu
  • 45
  • 2
  • 9
  • see this tutorial..http://www.javacodegeeks.com/2012/09/android-alarmmanager-tutorial.html and http://stackoverflow.com/questions/15756676/android-alarm-clock-with-multiple-alarms and http://stackoverflow.com/questions/12785702/android-set-multiple-alarms – User11 May 30 '14 at 11:58
  • @rashi In your example http://www.javacodegeeks.com/2012/09/android-alarmmanager-tutorial.html , alarm has been set at every 5sec.But i need to set @ different timings particularly.Please refer my above code – subbu May 30 '14 at 12:06

0 Answers0