HealthMonitoringService

Servicio principal que gestiona todos los sensores y servicios de salud en segundo plano.

Este servicio es el núcleo de la aplicación y coordina:

  • Sensores Samsung Health: Frecuencia cardíaca, temperatura, acelerómetro

  • Health Services Android: Detección de caídas, pasos

  • Bluetooth LE: Advertising de datos de salud

  • Análisis de datos: HRV, estrés térmico, actividad física

Arquitectura

El servicio utiliza un patrón de coordinación basado en corrutinas:

HealthMonitoringService
├── SamsungHealthConnector (HR, Temp, Accel)
├── HealthServicesManager (Caídas, Pasos)
├── BluetoothAdvertiserWiloc (BLE Advertising)
└── ServiceStateRepository (Estado centralizado)

Funcionamiento

  1. Inicialización: Configura componentes y notificación foreground

  2. Monitoreo: Bucles de actualización de datos y estado

  3. Emergencia: Cambio automático de perfiles BLE

  4. Limpieza: Flush de datos y liberación de recursos

Versión

Versión 2.0 - Sin SpO2, con detección de actividad física mejorada

Author

WiLoc Team

Since

1.0.0

See also

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
object Companion
Link copied to clipboard
inner class LocalBinder : Binder

Binder personalizado para comunicación con la Activity.

Properties

Link copied to clipboard

Instancia del binder

Link copied to clipboard
private lateinit var bluetoothAdvertiser: <Error class: unknown class>

Gestor de advertising Bluetooth LE

Link copied to clipboard

Gestor de Health Services de Android

Link copied to clipboard
private var initializationJob: Job?

Job de inicialización asíncrona

Link copied to clipboard

Indica si el servicio está en modo emergencia

Link copied to clipboard
private var isInitialized: Boolean

Indica si el servicio está completamente inicializado

Link copied to clipboard

Último estado conocido del dispositivo en el cuerpo

Link copied to clipboard

Referencia a la actividad principal

Link copied to clipboard
private var monitoringJob: Job?

Job principal de monitoreo

Link copied to clipboard

Conector con Samsung Health SDK

Link copied to clipboard
private val serviceScope: <Error class: unknown class>

Scope principal para operaciones asíncronas del servicio

Link copied to clipboard

Repositorio centralizado de estados

Link copied to clipboard

Functions

Link copied to clipboard
private fun checkServiceTimeouts()

Verifica timeouts de servicios.

Link copied to clipboard

Limpia la referencia a la actividad principal.

Link copied to clipboard

Creates health data for Bluetooth advertising.

Link copied to clipboard

Crea la notificación para el servicio foreground.

Link copied to clipboard

Crea el canal de notificación para el servicio.

Link copied to clipboard
private fun initializeComponents()

Inicializa todos los componentes del servicio.

Link copied to clipboard

Lanza un bucle para actualizar periódicamente los datos de Bluetooth.

Link copied to clipboard
open override fun onBind(intent: Intent): IBinder

Proporciona un binder para la comunicación con clientes.

Link copied to clipboard
open override fun onCreate()

Método llamado al crear el servicio.

Link copied to clipboard
open override fun onDestroy()

Método llamado al destruir el servicio.

Link copied to clipboard
open override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int

Maneja comandos enviados al servicio.

Link copied to clipboard

Reactiva los servicios de Samsung Health.

Link copied to clipboard

Establece la referencia a la actividad principal.

Link copied to clipboard

Inicia el advertising de Bluetooth con el perfil apropiado.

Link copied to clipboard
private fun startMonitoring()

Inicia el monitoreo completo de salud.

Link copied to clipboard
private fun stopMonitoring()

Detiene el monitoreo completo de salud.

Link copied to clipboard
private fun toggleEmergencyMode()

Alterna entre el modo normal y el modo de emergencia.

Link copied to clipboard
private fun updateBatteryStatus()

Actualiza el estado de la batería.

Link copied to clipboard
private fun updateBluetoothStatus()

Actualiza el estado del servicio Bluetooth.

Link copied to clipboard

Actualiza el estado de detección de caídas.

Link copied to clipboard
private fun updateHealthData()

Actualiza los datos de salud y estados de servicios.

Link copied to clipboard
private fun updateMLPrediction()

Actualiza la predicción del modelo de Machine Learning (ML).

Link copied to clipboard

Actualiza la notificación si es necesario.

Link copied to clipboard

Actualiza el estado de Samsung Health.

Link copied to clipboard

Actualiza el estado de sensores estándar.

Inherited functions

Link copied to clipboard
protected open override fun attachBaseContext(p0: Context)
Link copied to clipboard
Link copied to clipboard
open override fun bindService(p0: Intent, p1: ServiceConnection, p2: Int): Boolean
open override fun bindService(p0: Intent, p1: Int, p2: Executor, p3: ServiceConnection): Boolean
Link copied to clipboard
Link copied to clipboard
open override fun checkCallingOrSelfPermission(p0: String): Int
Link copied to clipboard
open override fun checkCallingOrSelfUriPermission(p0: Uri, p1: Int): Int
Link copied to clipboard
Link copied to clipboard
open override fun checkCallingPermission(p0: String): Int
Link copied to clipboard
open override fun checkCallingUriPermission(p0: Uri, p1: Int): Int
Link copied to clipboard
open override fun checkCallingUriPermissions(p0: MutableList<Uri>, p1: Int): IntArray
Link copied to clipboard
open override fun checkContentUriPermissionFull(p0: Uri, p1: Int, p2: Int, p3: Int): Int
Link copied to clipboard
open override fun checkPermission(p0: String, p1: Int, p2: Int): Int
Link copied to clipboard
open override fun checkSelfPermission(p0: String): Int
Link copied to clipboard
open override fun checkUriPermission(p0: Uri, p1: Int, p2: Int, p3: Int): Int
open override fun checkUriPermission(p0: Uri?, p1: String?, p2: String?, p3: Int, p4: Int, p5: Int): Int
Link copied to clipboard
open override fun checkUriPermissions(p0: MutableList<Uri>, p1: Int, p2: Int, p3: Int): IntArray
Link copied to clipboard
open override fun clearWallpaper()
Link copied to clipboard
open override fun createAttributionContext(p0: String?): Context
Link copied to clipboard
Link copied to clipboard
open override fun createContext(p0: ContextParams): Context
Link copied to clipboard
open override fun createContextForSplit(p0: String): Context
Link copied to clipboard
open override fun createDeviceContext(p0: Int): Context
Link copied to clipboard
open override fun createDisplayContext(p0: Display): Context
Link copied to clipboard
open override fun createPackageContext(p0: String, p1: Int): Context
Link copied to clipboard
open override fun createWindowContext(p0: Int, p1: Bundle?): Context
open override fun createWindowContext(p0: Display, p1: Int, p2: Bundle?): Context
Link copied to clipboard
open override fun databaseList(): Array<String>
Link copied to clipboard
open override fun deleteDatabase(p0: String): Boolean
Link copied to clipboard
open override fun deleteFile(p0: String): Boolean
Link copied to clipboard
open override fun deleteSharedPreferences(p0: String): Boolean
Link copied to clipboard
protected open fun dump(p0: FileDescriptor, p1: PrintWriter, p2: Array<String>)
Link copied to clipboard
open override fun enforceCallingOrSelfPermission(p0: String, p1: String?)
Link copied to clipboard
open override fun enforceCallingOrSelfUriPermission(p0: Uri, p1: Int, p2: String)
Link copied to clipboard
open override fun enforceCallingPermission(p0: String, p1: String?)
Link copied to clipboard
open override fun enforceCallingUriPermission(p0: Uri, p1: Int, p2: String)
Link copied to clipboard
open override fun enforcePermission(p0: String, p1: Int, p2: Int, p3: String?)
Link copied to clipboard
open override fun enforceUriPermission(p0: Uri, p1: Int, p2: Int, p3: Int, p4: String)
open override fun enforceUriPermission(p0: Uri?, p1: String?, p2: String?, p3: Int, p4: Int, p5: Int, p6: String?)
Link copied to clipboard
open override fun fileList(): Array<String>
Link copied to clipboard
Link copied to clipboard
open override fun getApplicationContext(): Context
Link copied to clipboard
open override fun getApplicationInfo(): ApplicationInfo
Link copied to clipboard
open override fun getAssets(): AssetManager
Link copied to clipboard
Link copied to clipboard
open override fun getAttributionTag(): String?
Link copied to clipboard
Link copied to clipboard
open override fun getCacheDir(): File
Link copied to clipboard
open override fun getClassLoader(): ClassLoader
Link copied to clipboard
open override fun getCodeCacheDir(): File
Link copied to clipboard
fun getColor(p0: Int): Int
Link copied to clipboard
Link copied to clipboard
open override fun getContentResolver(): ContentResolver
Link copied to clipboard
open override fun getDatabasePath(p0: String): File
Link copied to clipboard
open override fun getDataDir(): File
Link copied to clipboard
open override fun getDeviceId(): Int
Link copied to clipboard
open override fun getDir(p0: String, p1: Int): File
Link copied to clipboard
open override fun getDisplay(): Display
Link copied to clipboard
Link copied to clipboard
open override fun getExternalCacheDir(): File?
Link copied to clipboard
open override fun getExternalCacheDirs(): Array<File>
Link copied to clipboard
open override fun getExternalFilesDir(p0: String?): File?
Link copied to clipboard
open override fun getExternalFilesDirs(p0: String): Array<File>
Link copied to clipboard
open override fun getExternalMediaDirs(): Array<File>
Link copied to clipboard
open override fun getFilesDir(): File
Link copied to clipboard
open override fun getFileStreamPath(p0: String): File
Link copied to clipboard
Link copied to clipboard
open override fun getMainExecutor(): Executor
Link copied to clipboard
open override fun getMainLooper(): Looper
Link copied to clipboard
open override fun getNoBackupFilesDir(): File
Link copied to clipboard
open override fun getObbDir(): File
Link copied to clipboard
open override fun getObbDirs(): Array<File>
Link copied to clipboard
open override fun getOpPackageName(): String
Link copied to clipboard
open override fun getPackageCodePath(): String
Link copied to clipboard
open override fun getPackageManager(): PackageManager
Link copied to clipboard
open override fun getPackageName(): String
Link copied to clipboard
open override fun getPackageResourcePath(): String
Link copied to clipboard
open override fun getParams(): ContextParams?
Link copied to clipboard
open override fun getResources(): Resources
Link copied to clipboard
open override fun getSharedPreferences(p0: String, p1: Int): SharedPreferences
Link copied to clipboard
fun getString(p0: Int): String
fun getString(p0: Int, vararg p1: Any): String
Link copied to clipboard
fun <T : Any> getSystemService(p0: Class<T>): T
open override fun getSystemService(p0: String): Any
Link copied to clipboard
open override fun getSystemServiceName(p0: Class<*>): String?
Link copied to clipboard
Link copied to clipboard
open override fun getTheme(): Resources.Theme
Link copied to clipboard
open override fun getWallpaper(): Drawable
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override fun grantUriPermission(p0: String, p1: Uri, p2: Int)
Link copied to clipboard
open override fun isDeviceProtectedStorage(): Boolean
Link copied to clipboard
open override fun isRestricted(): Boolean
Link copied to clipboard
open override fun isUiContext(): Boolean
Link copied to clipboard
open override fun moveDatabaseFrom(p0: Context, p1: String): Boolean
Link copied to clipboard
open override fun moveSharedPreferencesFrom(p0: Context, p1: String): Boolean
Link copied to clipboard
open override fun onConfigurationChanged(p0: Configuration)
Link copied to clipboard
open override fun onLowMemory()
Link copied to clipboard
open fun onRebind(p0: Intent)
Link copied to clipboard
open fun onStart(p0: Intent, p1: Int)
Link copied to clipboard
open fun onTaskRemoved(p0: Intent)
Link copied to clipboard
open fun onTimeout(p0: Int)
open fun onTimeout(p0: Int, p1: Int)
Link copied to clipboard
open override fun onTrimMemory(p0: Int)
Link copied to clipboard
open fun onUnbind(p0: Intent): Boolean
Link copied to clipboard
open override fun openFileInput(p0: String): FileInputStream
Link copied to clipboard
open override fun openFileOutput(p0: String, p1: Int): FileOutputStream
Link copied to clipboard
open override fun peekWallpaper(): Drawable
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override fun registerReceiver(p0: BroadcastReceiver?, p1: IntentFilter): Intent?
open override fun registerReceiver(p0: BroadcastReceiver?, p1: IntentFilter, p2: Int): Intent?
open override fun registerReceiver(p0: BroadcastReceiver?, p1: IntentFilter, p2: String?, p3: Handler?): Intent?
open override fun registerReceiver(p0: BroadcastReceiver?, p1: IntentFilter, p2: String?, p3: Handler?, p4: Int): Intent?
Link copied to clipboard
open override fun removeStickyBroadcast(p0: Intent)
Link copied to clipboard
open override fun removeStickyBroadcastAsUser(p0: Intent, p1: UserHandle)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override fun revokeUriPermission(p0: Uri, p1: Int)
open override fun revokeUriPermission(p0: String, p1: Uri, p2: Int)
Link copied to clipboard
open override fun sendBroadcast(p0: Intent)
open override fun sendBroadcast(p0: Intent, p1: String?)
open override fun sendBroadcast(p0: Intent, p1: String?, p2: Bundle?)
Link copied to clipboard
open override fun sendBroadcastAsUser(p0: Intent, p1: UserHandle)
open override fun sendBroadcastAsUser(p0: Intent, p1: UserHandle, p2: String?)
Link copied to clipboard
open override fun sendOrderedBroadcast(p0: Intent, p1: String?)
open override fun sendOrderedBroadcast(p0: Intent, p1: String?, p2: Bundle?)
open override fun sendOrderedBroadcast(p0: Intent, p1: String?, p2: BroadcastReceiver?, p3: Handler?, p4: Int, p5: String?, p6: Bundle?)
open override fun sendOrderedBroadcast(p0: Intent, p1: String?, p2: Bundle?, p3: BroadcastReceiver?, p4: Handler?, p5: Int, p6: String?, p7: Bundle?)
open override fun sendOrderedBroadcast(p0: Intent, p1: String?, p2: String?, p3: BroadcastReceiver?, p4: Handler?, p5: Int, p6: String?, p7: Bundle?)
open fun sendOrderedBroadcast(p0: Intent, p1: Int, p2: String?, p3: String?, p4: BroadcastReceiver?, p5: Handler?, p6: String?, p7: Bundle?, p8: Bundle?)
Link copied to clipboard
open override fun sendOrderedBroadcastAsUser(p0: Intent, p1: UserHandle, p2: String?, p3: BroadcastReceiver?, p4: Handler?, p5: Int, p6: String?, p7: Bundle?)
Link copied to clipboard
open override fun sendStickyBroadcast(p0: Intent)
open override fun sendStickyBroadcast(p0: Intent, p1: Bundle?)
Link copied to clipboard
open override fun sendStickyBroadcastAsUser(p0: Intent, p1: UserHandle)
Link copied to clipboard
open override fun sendStickyOrderedBroadcast(p0: Intent, p1: BroadcastReceiver?, p2: Handler?, p3: Int, p4: String?, p5: Bundle?)
Link copied to clipboard
open override fun sendStickyOrderedBroadcastAsUser(p0: Intent, p1: UserHandle, p2: BroadcastReceiver?, p3: Handler?, p4: Int, p5: String?, p6: Bundle?)
Link copied to clipboard
open override fun setTheme(p0: Int)
Link copied to clipboard
open override fun setWallpaper(p0: Bitmap)
open override fun setWallpaper(p0: InputStream)
Link copied to clipboard
open override fun startActivities(p0: Array<Intent>)
open override fun startActivities(p0: Array<Intent>, p1: Bundle?)
Link copied to clipboard
open override fun startActivity(p0: Intent)
open override fun startActivity(p0: Intent, p1: Bundle?)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override fun startInstrumentation(p0: ComponentName, p1: String?, p2: Bundle?): Boolean
Link copied to clipboard
open override fun startIntentSender(p0: IntentSender, p1: Intent?, p2: Int, p3: Int, p4: Int)
open override fun startIntentSender(p0: IntentSender, p1: Intent?, p2: Int, p3: Int, p4: Int, p5: Bundle?)
Link copied to clipboard
open override fun startService(p0: Intent): ComponentName?
Link copied to clipboard
Link copied to clipboard
fun stopSelf()
fun stopSelf(p0: Int)
Link copied to clipboard
Link copied to clipboard
open override fun stopService(p0: Intent): Boolean
Link copied to clipboard
open override fun unbindService(p0: ServiceConnection)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override fun unregisterReceiver(p0: BroadcastReceiver)
Link copied to clipboard
open override fun updateServiceGroup(p0: ServiceConnection, p1: Int, p2: Int)