Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android how to set time zone through application

Android provides a permission called "SET_TIME_ZONE" with OS permission level "dangerous". Does anyone know that given an application with this permission, how can the app set the time zone ?

Thanks.

like image 253
Jake Avatar asked Mar 18 '12 02:03

Jake


2 Answers

If your objective is to change the system's default time zone, then use setTimeZone() of AlarmManager.

like image 194
Dheeraj Vepakomma Avatar answered Nov 06 '22 04:11

Dheeraj Vepakomma


You can set the TimeZone in multiple ways:

  1. You can use TimeZone.setDefault() which will change the TimeZone for the current process only. But as noted in the docs, this is not garanteed to last for the whole application lifecycle.

  2. You can use setTimeZone() of AlarmManager to change the TimeZone of the whole device. But you need the "SET_TIME_ZONE"-permission for that.

If you think 1. is to dangerous and you don't have the permission for 2. your best approach is to get every Date from Calendar and set the TimeZone on your Calendar-instance via setTimeZone().

like image 25
AlexS Avatar answered Nov 06 '22 03:11

AlexS