-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.1","enabled":true,"outputFile":"IcL02WorkService_V57_202102011415_release.apk","fullName":"IcL02WorkServiceRelease","baseName":"IcL02WorkService-release"},"path":"IcL02WorkService_V57_202102011415_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.1","enabled":true,"outputFile":"IcL02WorkService_V57_202102011623_release.apk","fullName":"IcL02WorkServiceRelease","baseName":"IcL02WorkService-release"},"path":"IcL02WorkService_V57_202102011623_release.apk","properties":{}}]
\ No newline at end of file
package com.ic.work.hardware;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
import android.os.Handler;
import android.os.HandlerThread;
+import android.util.Log;
+import com.ic.work.WorkServiceApp;
import com.ic.work.utils.HardwareUtils;
import com.ic.work.utils.ICLogger;
import com.ic.work.utils.IcLog;
import java.util.Random;
+import static android.content.Context.SENSOR_SERVICE;
+
/**
* 此工具类获取血氧,血压,心率等信息,结果通过:
*/
-public class BloodInfoHelper {
+public class BloodInfoHelper implements SensorEventListener {
private HeartRateInfoChangeListener mListener = null;
private final Handler ppgLooper;
private long checkBloodStartTime;
+ private SensorManager mSensorManager;
private BloodInfoHelper() {
//这个Looper专门用来查询数据的
public void getBloodInfo() {
ICLogger.d("getBloodInfo...");
- boolean[] deviceState = HardwareUtils.isPPGavailableIc66();
+ boolean[] deviceState = HardwareUtils.isPPGavailableGH301();
if (!deviceState[0]) {
- IcLog.d(TAG, "deviceState[0] == > " + deviceState[0]);
+ IcLog.d(TAG, "deviceState[0] == > false");
//TODO:这个后面再处理,得给我机器再去处理,没有文档,没有数据
//sendTipsEventBus(BLOOD_NULL_TIPS, BLOOD_NOT_DEVICE);
if (mListener != null) {
ICLogger.d("deviceState[1]..." + deviceState[1]);
if (deviceState[1]) {
+ mSensorManager = (SensorManager) WorkServiceApp.sContext.getSystemService(SENSOR_SERVICE);
+ Sensor mHeartRate = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);
+ boolean ret = mSensorManager.registerListener(this, mHeartRate, SensorManager.SENSOR_DELAY_FASTEST);
+ Log.d(TAG, "ret == > " + ret);
//TODO:这个是走官方API的,也得有机器再进行修改代码
//sendTipsEventBus(BLOOD_PLEASE_QUIET, BLOOD_START_CHECK);
// EventBus.getDefault().post(new BloodSensorEvent(1));
this.mListener = listener;
}
+ @Override
+ public void onSensorChanged(SensorEvent event) {
+ float values[] = event.values;
+ int length = values.length;
+ Log.e(TAG, "onSensorChanged() is called " + length);
+ if (length >= 5) {
+ /*[0]---心率;[1]---血压高压;[2]---血压低压;[3]---血氧;[4]---佩戴检测(1--脱手,2--上手);*/
+ Log.e(TAG, "onSensorChanged() is called " + length
+ + "PPG= " + values[0]
+ + "BPH= " + values[1]
+ + "BPL= " + values[2]
+ + "spo2= " + values[3]
+ + "Weared= " + values[4]
+ );
+ } else {
+ Log.d(TAG, "on sensor change == > PPG= " + values[0]);
+ }
+ }
+
+ @Override
+ public void onAccuracyChanged(Sensor sensor, int accuracy) {
+ Log.e(TAG, "onAccuracyChanged() is called " + sensor.getName() + " accuracy=" + accuracy);
+ }
+
public interface HeartRateInfoChangeListener {