Public Sub SetSystemClock(Millis As Long, TimeZoneId As String) As ResumableSub
Try
Dim ctxt As JavaObject
ctxt.InitializeContext
Dim dp As JavaObject = ctxt.RunMethod("getSystemService", Array("device_policy"))
Dim admin As JavaObject
admin.InitializeStatic(Starter.DEVICE_ADMIN_RECEIVER)
Dim cn As JavaObject
cn.InitializeNewInstance("android.content.ComponentName", Array(ctxt, admin))
' Disable auto time + auto zone
dp.RunMethod("setGlobalSetting", Array(cn, "auto_time_zone", "1"))
dp.RunMethod("setGlobalSetting", Array(cn, "auto_time_zone", "0"))
dp.RunMethod("setGlobalSetting", Array(cn, "auto_time", "1"))
dp.RunMethod("setGlobalSetting", Array(cn, "auto_time", "0"))
' Apply TimeZone → then clock
dp.RunMethod("setTimeZone", Array(cn, TimeZoneId))
dp.RunMethod("setTime", Array(cn, Millis))
DateTime.DateFormat = "MM/dd/yyyy HH:mm:ss z"
LogColor($"SetSystemClock: ${DateTime.Date(DateTime.Now)}"$, Colors.Cyan)
Catch
LogColor($"SetSystemClock ERROR: ${LastException}"$, Colors.Red)
End Try
Dim sys As JavaObject
sys.InitializeStatic("java.lang.System")
Return sys.RunMethod("currentTimeMillis", Null)
End Sub