通过Android应用更改系统时间

来源:互联网 发布:淘宝店铺页头怎么换 编辑:程序博客网 时间:2024/05/23 14:41

假如说当我们点击DatePickerDialog的确定按钮的时候,将我们选择的时间更改到系统的时间上,操作步骤如下:

1.有一个DateButton按钮,当我们点击的时候,调用一个弹出DatePickerDialog的方法:

private void displayDatePickerDialog() {    DatePickerDialog.OnDateSetListener dateSetListener = new DatePickerDialog.OnDateSetListener() {        @Override        public void onDateSet(DatePicker datePicker, int years, int months, int days) {            Log.d(TAG, "onDateSet: " + "years" + years + "months" + months + "days" + days);            date_edit.setText(years + "/" + months + "/" + days);            setSysDate(years, months, days);            datePickerDialog.dismiss();        }    };    int year = calendar.get(Calendar.YEAR);    int month = calendar.get(Calendar.MONTH);    int day = calendar.get(Calendar.DAY_OF_MONTH);    datePickerDialog = new DatePickerDialog(getActivity(), dateSetListener, year, month, day);}

2.点击DatePickerDialog的确定按钮的时候,调用设置系统时间的方法:

public void setSysDate(int year, int month, int day) {    Calendar calendarDate = Calendar.getInstance();    calendarDate.set(Calendar.YEAR, year);    calendarDate.set(Calendar.MONTH, month);    calendarDate.set(Calendar.DAY_OF_MONTH, day);    long when = calendarDate.getTimeInMillis();    if (when / 1000 < Integer.MAX_VALUE) {        ((AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE)).setTime(when);    }}

同理:

1.有一个TimeButton按钮,当我们点击的时候,调用一个弹出TimePickerDialog的方法:

private void displayTimePickerDialog() {    TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() {        public void onTimeSet(TimePicker timePicker, int hourOfDay, int minute) {            Log.d(TAG, "onTimeSet: " + "hourOfDay" + hourOfDay + "minute" + minute);            time_edit.setText(hourOfDay + ":" + minute);            setSysTime(hourOfDay, minute);            timePickerDialog.dismiss();        }    };    int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);    int minute = calendar.get(Calendar.MINUTE);    timePickerDialog = new TimePickerDialog(getActivity(), timeSetListener, hourOfDay, minute, true);}

2.点击TimePickerDialog的确定按钮的时候,调用设置系统时间的方法:

public void setSysTime(int hour, int minute) {    Calendar calendarTime = Calendar.getInstance();    calendarTime.set(Calendar.HOUR_OF_DAY, hour);    calendarTime.set(Calendar.MINUTE, minute);    calendarTime.set(Calendar.SECOND, 0);    calendarTime.set(Calendar.MILLISECOND, 0);    long when = calendarTime.getTimeInMillis();    if (when / 1000 < Integer.MAX_VALUE) {        ((AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE)).setTime(when);    }}