save Using Media Store
Guarda datos utilizando MediaStore para Android 10 y versiones posteriores.
Esta función crea o actualiza archivos CSV en la carpeta "Downloads" del almacenamiento externo del dispositivo. Utiliza la API MediaStore, que es el método recomendado y compatible con las restricciones de acceso a archivos introducidas en Android 10 (API nivel 29) y versiones posteriores.
La función maneja tanto la creación de nuevos archivos como la adición de datos a archivos existentes.
Si el archivo especificado por
fileNameno existe, se crea uno nuevo y se escribe una línea de cabecera con los nombres de las columnas.Si el archivo ya existe, se añaden los nuevos
dataPointsal final del mismo. Se comprueba si el archivo existente está vacío; si lo está, se escribe la cabecera antes de añadir los datos.
La escritura de datos en el archivo se realiza de forma sincronizada utilizando fileLock para prevenir condiciones de carrera (race conditions) si múltiples hilos o corrutinas intentan acceder al archivo simultáneamente.
Los archivos se marcan como "pendientes" (IS_PENDING = 1) durante la escritura y luego se finalizan (IS_PENDING = 0) una vez que los datos se han escrito correctamente. Esto ayuda a asegurar la integridad del archivo en caso de interrupciones.
Las columnas guardadas en el archivo CSV son: timestamp,heartRate,skinTemp,ambientTemp,humidity,stepCount,stepRate,activityIntensity,accumulatedActivity,workLoad,psi,heatIndex,riskLevel
Parameters
El nombre del archivo CSV a crear o actualizar (por ejemplo, "health_data_2023-10-27.csv").
Una lista de objetos HealthDataPoint que contienen los datos de salud a guardar. Cada objeto se escribirá como una nueva línea en el archivo CSV.
Throws
Si ocurre algún error durante las operaciones de archivo, como no poder