如何在android中设置不同时间的多个报警
我正在做一个android应用程序,我需要在不同的时间设置多个警报。例如,我需要设置上午10点,下午2点,每天晚上9点。我想用这些时间设置重复警报,并在这个时间到达时响铃。这三个响铃应该每天发生。下面是我尝试过的示例代码。但它没有响铃。我如何解决这个问题?谢谢 我的代码: 请参见本教程。。和@rashi在你的例子中,警报设置为每5秒一次。但我需要特别设置@不同的计时。请参考我上面的代码如何在android中设置不同时间的多个报警,android,android-alarms,Android,Android Alarms,我正在做一个android应用程序,我需要在不同的时间设置多个警报。例如,我需要设置上午10点,下午2点,每天晚上9点。我想用这些时间设置重复警报,并在这个时间到达时响铃。这三个响铃应该每天发生。下面是我尝试过的示例代码。但它没有响铃。我如何解决这个问题?谢谢 我的代码: 请参见本教程。。和@rashi在你的例子中,警报设置为每5秒一次。但我需要特别设置@不同的计时。请参考我上面的代码 // For setting up hours as arrays h[0
// 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);
}
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;
}