Я делаю проект с приложением будильника. Когда пришло время для сигнала тревоги, он отправит значения на плату для работы датчика. Моя проблема сейчас в том, что я не знаю, как проверить, когда пора просыпаться.
Я могу сделать будильник. Я пробовал условия, но он не может проверить время будильника.
источник:
buttonSetAlarm.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
Calendar current = Calendar.getInstance();
Calendar cal = Calendar.getInstance();
cal.set(pickerDate.getYear(),
pickerDate.getMonth(),
pickerDate.getDayOfMonth(),
pickerTime.getCurrentHour(),
pickerTime.getCurrentMinute(),00);
Calendar setCal = Calendar.getInstance();
int hourCur = setCal.get(Calendar.HOUR_OF_DAY);
int minCur = setCal.get(Calendar.MINUTE);
int hourSet = cal.get(Calendar.HOUR_OF_DAY);
int minSet = cal.get(Calendar.MINUTE);
if(cal.compareTo(current) <= 0){
//The set Date/Time already passed
Toast.makeText(getApplicationContext(),
"Invalid Date/Time",
Toast.LENGTH_LONG).show();
}else{
if(buttonCon){
setAlarm(cal);
// Toast.makeText(MainActivity.this, "Alarm is"+cal.getTime(), Toast.LENGTH_SHORT).show();
//connectedThread.setSendData("led1");
/* if(hourCur == hourSet && minCur == minSet)
{
//connectedThread.setSendData("led1");
}*/
Toast.makeText(MainActivity.this, "hrs = "+hourSet+" mins = "+minSet+" hrCur="+hourCur+" mincr:"+minCur, Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this, "Bluetooth is disconnected", Toast.LENGTH_SHORT).show();
}
//connectedThread.setSendData("led1");
/*else{
Toast.makeText(MainActivity.this, "Bluetooth is disconnected", Toast.LENGTH_SHORT).show();
}*/
}
Это методы для установки будильника:
private void setAlarm(Calendar targetCal){
info.setText("\n\n***\n" + "Alarm is set@ " + targetCal.getTime() + "\n" + "***\n");
Intent intent = new Intent(this.context, AlarmReceiver.class);
intent.putExtra("extra","alarm on");
PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, RQS_1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent);
// setCal.getTimeInMillis();
/* Calendar setCal = Calendar.getInstance();
int hourCur = setCal.get(Calendar.HOUR_OF_DAY);
int minCur = setCal.get(Calendar.MINUTE);
int hourSet = targetCal.get(Calendar.HOUR_OF_DAY);
int minSet = targetCal.get(Calendar.MINUTE);
if(hourCur == hourSet && minCur == minSet)//Conditions. Check that when it's time to wake up and send data THIS MY PROBLEM
{
connectedThread.setSendData("led1");
}*/
//Toast.makeText(MainActivity.this,"alarmManager = "+alarmManager,Toast.LENGTH_LONG).show();
}
Я ожидаю, что к моменту тревоги я смогу отправлять значения на доску.