How to Update the Terminal's Time Setting

From wizarPOS
Revision as of 09:13, 24 March 2020 by Jeff (talk | contribs) (Jeff moved page How to update time to How to update terminal time)

By auto update

Open WiFi, connect it to network, the date and time will be auto updated.

By manual

From Settings>Date&time, close "Automatic time zone" ,"Automatic date&time", and then set date, time.

By API

Use the android system clock method to change the system time.

Permissions

 android.permission.CLOUDPOS_SETTIME

The app declares the permission in the manifest.

Demo source

follows is the snippet code:

public static void setDateTime(int year, int month, int day, int hour, int minute) throws IOException, InterruptedException {
 
        Calendar c = Calendar.getInstance();
        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, month-1);
        c.set(Calendar.DAY_OF_MONTH, day);
        c.set(Calendar.HOUR_OF_DAY, hour);
        c.set(Calendar.MINUTE, minute);
         
        long when = c.getTimeInMillis();
        if (when / 1000 < Integer.MAX_VALUE) {
            SystemClock.setCurrentTimeMillis(when);
        }
        long now = Calendar.getInstance().getTimeInMillis();
        //Log.d(TAG, "set tm="+when + ", now tm="+now);
 
        if(now - when > 1000)
            throw new IOException("failed to set Date."); 
         
    }

Please download the whole project demo