如何在任何选定的时间在特定日期设置闹钟?

时间:2017-03-29 08:04:36

标签: android datepicker alarm timepicker

所以这是我的代码,它可以工作,但除了凌晨12点我无法设置闹钟 我希望用户在特定日期设置闹钟,如下面给出的那个,但是能够在一天中的任何时间设置闹钟而不仅仅是午夜......任何人都可以帮忙吗?

立即日历= Calendar.getInstance();

    pickerDate.init(
            now.get(Calendar.YEAR),
            now.get(Calendar.MONTH),
            now.get(Calendar.DAY_OF_MONTH),
            null);

    pickerTime.setCurrentHour(now.get(Calendar.HOUR_OF_DAY));
    pickerTime.setCurrentMinute(now.get(Calendar.MINUTE));
    buttonSetAlarm = (Button)findViewById(R.id.setalarm);
    buttonSetAlarm.setOnClickListener(new View.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(),
                    0);


            if(cal.compareTo(current) <= 0){


                Toast.makeText(getApplicationContext(), "Invalid Date/Time", Toast.LENGTH_LONG).show();
            }else{
                setAlarm(cal);
            }



        }});
}

private void setAlarm(Calendar targetCal){

    String pattern = "MM/dd/yyyy";
    SimpleDateFormat format = new SimpleDateFormat(pattern);






    Calendar cal = Calendar.getInstance();
    cal.set(pickerDate.getYear(),
            pickerDate.getMonth(),
            pickerDate.getDayOfMonth(),
            pickerTime.getCurrentHour(),
            pickerTime.getCurrentMinute(),
            0);
    cal.set(Calendar.MILLISECOND,0);



    try {
    Date date12_25 = format.parse("12/25/2017");

    Lebanon.put(date12_25,"Christmas Day");
        for(Date k : Lebanon.keySet()){

            if(cal.getTime().equals(k)){

                String val = (String)Lebanon.get(k);
                info.setText("Your alarm is set for :"+k+", on:  "+val);
            }

        }



    } catch (ParseException e) {
        e.printStackTrace();
    }format.format(new Date());


    Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
    pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0);
    alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent);
}

1 个答案:

答案 0 :(得分:1)

使用BroadcastReceiver。

# curl -vk --data "appip=adsfa123&login=testt@jelastic.com&password=adfas1123" https://app.sample-jelastic-server.com/1.0/users/authentication/cross/signin

启动闹钟 -

public class MyBroadcastReceiver extends BroadcastReceiver {  
    MediaPlayer mp;  
    @Override  
    public void onReceive(Context context, Intent intent) {  
        mp=MediaPlayer.create(context, R.raw.alrm   );  
        mp.start();  
        Toast.makeText(context, "Alarm....", Toast.LENGTH_LONG).show();  
    }  
}