모닝콜 어플을 만들고있습니다...
며칠째 이 문제로 헤매네요 ㅠㅠㅠ
//10초 후 버튼 클릭 구현
secBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Calendar calendar = Calendar.getInstance();
// 현재시각 long으로 가져올 때
long now = calendar.getTimeInMillis();
Intent intent = new Intent(DialogActivity3.this, AlarmDialogActivity.class);
intent.putExtra("리잉톤", ringtoneUri); //링톤Uri 값을 인텐트에 태워 보낸댜
PendingIntent pIntent = PendingIntent.getActivity(DialogActivity3.this, 0, intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, now + 10000, pIntent);
}
});
이런식으로 현재 시간보다 10초가 흐르면 alarmManager를 이용하여 다른 액티비티를 띄워서 알람이
울리게끔 만들었습니다.
timePicker를 이용해서 이 타임피커로부터 시간을 뽑아내어 그 시간에 알람이 울리게 하고싶습니다.
방법을 생각하던 도중에
Calendar calendar = Calendar.getInstance();
// 현재시각 long으로 가져올 때
long now = calendar.getTimeInMillis();
이렇게 현재시각을 가져온 후, timePicker로부터 시간을 가져와서 두 시간 사이의 차를 구한 다음,
그 차이만큼 시간이 흐른 후에 alarmManager를 호출시키면 될 것 같았습니다.
OKBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
TimePicker timePicker = (TimePicker)findViewById(R.id.timePicker);
int hour = timePicker.getHour();
int minute = timePicker.getMinute();
Calendar qq = Calendar.getInstance(); //현재시간
Calendar tt = Calendar.getInstance();
tt.set(2016,7,26,hour,minute);
//테스트용으로 임의 날짜만 설정, 시간과 분은 타임 피커에서 가져옴
long diffSec = (tt.getTimeInMillis() - qq.getTimeInMillis());
// 현재시간와 타임피커의 설정 시간의 차
Intent intent = new Intent(DialogActivity4.this, AlarmDialogActivity.class);
intent.putExtra("리잉톤", ringtoneUri); //링톤Uri 값을 인텐트에 태워 보낸댜
PendingIntent pIntent = PendingIntent.getActivity(DialogActivity4.this, 0, intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, qq.getTimeInMillis+diffSec, pIntent);
}
});
위와 같은 방법으로 여러번 시도를 해봤는데 시간차 구하기가 오차도 계속 나고 여간 까다로운게
아니더라구요..
TimePicker에서 설정한 시간에 AlarmManager를 set시키고 싶습니다.
혹시 다른 방법이 있다면 도움의 손길 부탁드립니다ㅠㅠ