import android.content.Context;\r
import android.content.Intent;\r
import android.content.IntentFilter;\r
+import android.hardware.Sensor;\r
+import android.hardware.SensorEvent;\r
+import android.hardware.SensorEventListener;\r
+import android.hardware.SensorManager;\r
import android.os.Bundle;\r
import android.os.Handler;\r
import android.os.Message;\r
import java.util.Date;\r
import java.util.Timer;\r
import java.util.TimerTask;\r
+import java.util.logging.Logger;\r
\r
public class MainActivity extends AppCompatActivity {\r
\r
// ICJniUtils.enablePPG();\r
}\r
\r
+ /******************PPG Demo start ****************/\r
+ private SensorManager mSensorManager=null;\r
+ private Sensor mHeartRate;\r
+ private SensorEventListener sensorEventListener= new SensorEventListener(){\r
\r
+ @Override\r
+ public void onSensorChanged(SensorEvent sensorEvent) {\r
+ float values[]=sensorEvent.values;\r
+ int length = values.length;\r
+ Log.e(TAG, "onSensorChanged() is called "+length\r
+ +" "+values[0]\r
+ +" "+values[1]\r
+ +" "+values[2]\r
+ +" "+values[3]\r
+ +" "+values[4]\r
+ );\r
+\r
+ /*[0]---心率;[1]---血压高压;[2]---血压低压;[3]---血氧;[4]---佩戴检测(1--脱手,2--上手);*/\r
+ Log.d("Demo","Weared= "+values[4]+" ,BPH= "+values[1]+" ,BPL= "+values[2]+" ,PPG= "+values[0]+", spo2= "+ values[3]);\r
+\r
+\r
+ if (values[4]==2 && values[0]> 0 ){\r
+ //结果检测出来后停止检测\r
+ mSensorManager.unregisterListener(sensorEventListener);\r
+ }\r
+ }\r
+\r
+ @Override\r
+ public void onAccuracyChanged(Sensor sensor, int i) {\r
+ Log.e(TAG, "onAccuracyChanged() is called "+sensor.getName()+" accuracy="+i);\r
+ }\r
+ };\r
public void check_ppg(){\r
+ int ppgDevType=ICJniUtils.isPPGavailable();\r
+ //大于 TYPE NONE 表示有心率传感器\r
+ if (ppgDevType > ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_NONE.ordinal()){\r
+ if(ppgDevType == ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()){\r
\r
+ mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);\r
+ mHeartRate = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);\r
+ boolean ret = mSensorManager.registerListener(sensorEventListener, mHeartRate, SensorManager.SENSOR_DELAY_UI);\r
+ Log.e(TAG, "Heart Rate already opened ret :: " + ret);\r
+\r
+\r
+ }else{\r
+ if (ICJniUtils.isPPGStarted()==0){\r
+ ICJniUtils.enablePPG();\r
+ }\r
+ boolean gotPPG=false;\r
+ while (gotPPG==false){\r
+ //getPPG()函数必须先执行,否则其他数据都无法正确取出。\r
+ int ppg=ICJniUtils.getPPG();\r
+ int isweared=ICJniUtils.isWeared();\r
+\r
+ /**\r
+ * 佩戴且心率大于0 ,则认为数据测试完毕\r
+ */\r
+\r
+ if (isweared==1 && ppg > 0){\r
+ Log.d("Demo"," PPG = "+ppg +" , isWeared="+ isweared+" , bph="+ICJniUtils.getHighBloodPressure()\r
+ +", bpl = "+ICJniUtils.getLowBloodPressure()+", Spo2="+ICJniUtils.getSPO2());\r
+ }\r
+\r
+ try {\r
+ Thread.sleep(1000);\r
+ } catch (InterruptedException e) {\r
+ e.printStackTrace();\r
+ }\r
+\r
+ }\r
+\r
+ ICJniUtils.disablePPG();\r
+\r
+ }\r
+\r
+\r
+\r
+ }\r
\r
\r
\r
\r
}\r
+ /********************PPG Demo End************************************/\r
+\r
+\r
+ /********************Temperature Demo Start * ***********************************/\r
\r
public void check_temp(){\r
\r
}\r
\r
\r
- }\r
+ } /********************Temperature Demo End * ***********************************/\r
\r
public void send_at_to_onoff_simcard(Context context, boolean simon){\r
\r