Планирование не работает для времени PM: Android
Я подал заявку, и она работает очень хорошо.
У меня одна проблема с расписанием. У меня есть собственный планировщик в моем приложении, где я использовал выбор даты и времени, чтобы выбрать дату / время. Если это время AM, то это работает нормально, но если это время PM, то оно не работает. Я потратил много времени, чтобы решить ее, но не понял, как ее решить.
Код для выбора даты:
DatePickerDialog.OnDateSetListener dateEndSetListener = new DatePickerDialog.OnDateSetListener()
{
@Override
public void onDateSet(DatePicker view, int year, int month, int date)
{
mDay = date;
mMonth = month;
mYear = year;
}
};
Calendar c = Calendar.getInstance();
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), dateEndSetListener, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH));
datePickerDialog.show();
Код для выбора времени
TimePickerDialog.OnTimeSetListener timeEndSetListener = new TimePickerDialog.OnTimeSetListener()
{
public void onTimeSet(TimePicker view, int hourOfDay, int minute)
{
mHour = hourOfDay;
mMinut = minute;
}
};
Calendar c = Calendar.getInstance();
TimePickerDialog timePickerDialog = new TimePickerDialog(getActivity(), timeEndSetListener, c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE), false);
timePickerDialog.show();
Код для планирования поддельного звонка
AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmManagerForSchedullingCallBrodcastReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
Calendar time = Calendar.getInstance();
time.set(Calendar.DAY_OF_MONTH, date);
time.set(Calendar.MONTH, month);
time.set(Calendar.YEAR, year);
time.set(Calendar.HOUR, hour);
time.set(Calendar.MINUTE, minut);
time.set(Calendar.SECOND, 0);
am.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pi);
Ваша помощь будет очень признательна.. Спасибо
1 ответ
Решение
Я нашел решение для своего собственного вопроса.
Я изменил КОД БЛОК А на КОД БЛОК Б, как указано ниже:
КОД БЛОК А
Calendar time = Calendar.getInstance();
time.set(Calendar.DAY_OF_MONTH, date);
time.set(Calendar.MONTH, month);
time.set(Calendar.YEAR, year);
time.set(Calendar.HOUR, hour);
time.set(Calendar.MINUTE, minut);
time.set(Calendar.SECOND, 0);
am.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pi);
КОД БЛОКА B
Calendar time = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault());
time.set(year, month, date, hour, minut, 0);
am.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pi);
И это работает волшебно. Я публикую этот ответ для тех парней, которые сталкиваются с той же проблемой. Спасибо