lam bui
07/30/2024, 7:32 AMlam bui
07/30/2024, 7:34 AMlouiscad
07/31/2024, 12:16 PMlam bui
08/02/2024, 1:21 AMclass WearDetectionService : Service(), SensorEventListener {
private lateinit var sensorManager: SensorManager
private var heartRateSensor: Sensor? = null
private var job: Job? = null
companion object {
val isWorn = MutableLiveData(true)
}
override fun onCreate() {
super.onCreate()
sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager
heartRateSensor = sensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE)
sensorManager.registerListener(this, heartRateSensor, SensorManager.SENSOR_DELAY_NORMAL)
}
override fun onDestroy() {
super.onDestroy()
sensorManager.unregisterListener(this)
job?.cancel()
}
override fun onBind(intent: Intent?): IBinder? {
return null
}
override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {}
override fun onSensorChanged(event: SensorEvent?) {
if (event?.sensor?.type == Sensor.TYPE_HEART_RATE) {
job?.cancel()
isWorn.postValue(true)
job = CoroutineScope(Dispatchers.Default).launch {
delay(10000) // 10 seconds without heart rate data
isWorn.postValue(false)
}
}
}
}
lam bui
08/02/2024, 1:21 AMlouiscad
08/02/2024, 9:30 AMlouiscad
08/02/2024, 9:31 AMlouiscad
08/02/2024, 9:31 AMlouiscad
08/02/2024, 9:32 AMlam bui
08/02/2024, 9:33 AMlouiscad
08/02/2024, 2:15 PMlam bui
08/04/2024, 7:32 AMlouiscad
08/04/2024, 8:39 AMlam bui
08/04/2024, 11:19 AMlouiscad
08/05/2024, 7:19 PMlam bui
08/06/2024, 4:42 AMamoledwatchfaces
08/08/2024, 7:28 PMlam bui
08/09/2024, 1:55 AMAshley Ingram
08/15/2024, 3:22 PMAshley Ingram
08/15/2024, 3:22 PMAshley Ingram
08/15/2024, 3:22 PMAshley Ingram
08/15/2024, 3:22 PMlam bui
08/15/2024, 6:22 PM