HeartRate heartRate = new HeartRate(high, low, heart, oxygen);
//遍历集合,通知一次内容
dispatchHeartRateResult(heartRate);
+ if (heart == 0) {
+ //不通知UI了
+ return;
+ }
//发送一次广播给 心率 launcher
sendHeartBroadcast(heart, oxygen);
}
@Override
public void onHeartRateResult(int high, int low, int heart, int oxygen) {
+ handleBloodResult(high, low, heart, oxygen);
+ IcLog.d(TAG, "high == > " + high);
+ IcLog.d(TAG, "low == > " + low);
+ IcLog.d(TAG, "heart == > " + heart);
+ IcLog.d(TAG, "oxygen == > " + oxygen);
+ if (heart == 0) {
+ return;
+ }
//处理心率测量数据给掌育的
//发广播给掌育,如果不为-1,说明有掌育的份
IcLog.d(TAG, "jxHeartRateMode..." + jxHeartRateMode);
jxHeartRateMode = -1;
}
//reset data.
- handleBloodResult(high, low, heart, oxygen);
IcLog.d(TAG, "on blood test end...");
//checkContinue();
// 心率有一个方去结束
sendTipsEventBus(BLOOD_PLEASE_QUIET, BLOOD_START_CHECK);
+ int invalidateTime = 0;
try {
while (!Thread.currentThread().isInterrupted()) {
ndkHeart = HardwareUtils.getNdkPPGValue();
break;
}
checkCount++;
+ } else {
+ //如果为0的话,记录下来
+ invalidateTime++;
}
-
if (!isSendCheckTips) {
//正在测量中,请稍等
sendTipsEventBus(BLOOD_PLEASE_QUIET, BLOOD_ING_CHECK);
}
}
Thread.sleep(1000);
- }
- if (noWearCount >= 5) {
- //sendTipsEventBus(BLOOD_NULL_TIPS, BLOOD_NOT_WEAR);
- } else if (ndkHeart == 0) {
- //sendTipsEventBus(BLOOD_STOP_CHECK, BLOOD_NOT_DATA_CHECK);
- } else {
- if (mListener != null) {
- mListener.onHeartRateResult(ndkHigh, ndkLow, ndkHeart, oxygen);
+ if (invalidateTime > 20) {
+ break;
}
}
+ if (mListener != null) {
+ mListener.onHeartRateResult(ndkHigh, ndkLow, ndkHeart, oxygen);
+ }
if (mListener != null) {
mListener.onHeartRateTestFinished();
}