Уведомление о предупреждении Android с помощью диспетчера тревог - PullRequest
0 голосов
/ 20 октября 2018
   bookAppoinmentBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(final View view) {
              setAlarm(String time, String strDate);
            }
        });  
  public void setAlarm(String time, String strDate){
        AlarmManager manager = (AlarmManager) getContext().getSystemService(Context.ALARM_SERVICE);

        Calendar cal = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault());
        String hour=formateDateFromstring("HH:mm","HH",time);
        String min=formateDateFromstring("HH:mm","mm",time);
        String date=formateDateFromstring("yyyy-MM-dd","dd",strDate);
        String month=formateDateFromstring("yyyy-MM-dd","MM",strDate);
        String year=formateDateFromstring("yyyy-MM-dd","yyyy",strDate);

        cal.set(Calendar.DATE, Integer.parseInt(date));  //1-31
        cal.set(Calendar.MONTH, Integer.parseInt(month));  //first month is 0!!! January is zero!!!
        cal.set(Calendar.YEAR, Integer.parseInt(year));//year...
        cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hour));  //HOUR
        cal.set(Calendar.MINUTE, Integer.parseInt(min));       //MIN

        manager.setExact(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
                pendingIntent);
    }

Здесь я использую диспетчер тревог, чтобы отправить уведомление за выбранное время и дату. Я попробовал пример проекта с тем же кодом, который он работает, после этого я интегрировал его с моим проектом, он не работает.

// Вот мой код для получателя

public class ServiceReceiver extends BroadcastReceiver {
    private Context mcontext;

    @Override
    public void onReceive(Context context, Intent intent) {
        this.mcontext = context;

        NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
                .setSmallIcon(R.drawable.logob_icon_prestigesalon)
                .setContentTitle("ABC")
                .setContentText("time to go")
                .setPriority(NotificationCompat.PRIORITY_DEFAULT);

        NotificationManager notificationmanager = (NotificationManager) context
                .getSystemService(Context.NOTIFICATION_SERVICE);
        notificationmanager.notify(0, builder.build());


    }
}
...