See example code: https://developer.android.com/training/wearables/watch-faces/drawing
private const val MSG_UPDATE_TIME = 0
class Service : CanvasWatchFaceService() {
...
inner class Engine : CanvasWatchFaceService.Engine() {
private lateinit var calendar: Calendar
...
// receiver to update the time zone
private val timeZoneReceiver: BroadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
calendar.timeZone = TimeZone.getDefault()
invalidate()
}
}
// service methods (see other sections)
...
}
...
}
private fun registerReceiver() {
if (registeredTimeZoneReceiver) return
registeredTimeZoneReceiver = true
IntentFilter(Intent.ACTION_TIMEZONE_CHANGED).also { filter ->
this@AnalogWatchFaceService.registerReceiver(timeZoneReceiver, filter)
}
}
private fun unregisterReceiver() {
if (!registeredTimeZoneReceiver) return
registeredTimeZoneReceiver = false
this@AnalogWatchFaceService.unregisterReceiver(timeZoneReceiver)
}
Possibly handy links:
See example code: https://developer.android.com/training/wearables/watch-faces/drawing
Possibly handy links: