release V58
authorsnickersun <scy@incartech.cn>
Mon, 21 Dec 2020 13:38:16 +0000 (21:38 +0800)
committersnickersun <scy@incartech.cn>
Mon, 21 Dec 2020 13:38:16 +0000 (21:38 +0800)
修复自动测试 心率 体温 佩戴都不能进行下一个任务的问题

app/release/FactoryMode_V58_202012212129_release.apk [moved from app/release/FactoryMode_V57_202012211803_release.apk with 84% similarity]
app/release/output.json
app/src/main/java/mobile/miki/AntiMonitorActivity.java
app/src/main/java/mobile/miki/HeartRate.java
app/src/main/java/mobile/miki/TemperatureActivity.java
app/version_code.properties

similarity index 84%
rename from app/release/FactoryMode_V57_202012211803_release.apk
rename to app/release/FactoryMode_V58_202012212129_release.apk
index 24f3925..5cc79b3 100644 (file)
Binary files a/app/release/FactoryMode_V57_202012211803_release.apk and b/app/release/FactoryMode_V58_202012212129_release.apk differ
index 3867591..e8b21a2 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":57,"versionName":"202012211803","enabled":true,"outputFile":"FactoryMode_V57_202012211803_release.apk","fullName":"release","baseName":"release"},"path":"FactoryMode_V57_202012211803_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":58,"versionName":"202012212129","enabled":true,"outputFile":"FactoryMode_V58_202012212129_release.apk","fullName":"release","baseName":"release"},"path":"FactoryMode_V58_202012212129_release.apk","properties":{}}]
\ No newline at end of file
index c87984a..83dc1df 100644 (file)
-package mobile.miki;\r
-\r
-import android.content.Context;\r
-import android.content.Intent;\r
-import android.hardware.Sensor;\r
-import android.hardware.SensorEvent;\r
-import android.hardware.SensorEventListener;\r
-import android.hardware.SensorManager;\r
-import android.os.Handler;\r
-import android.os.Message;\r
-import android.os.PowerManager;\r
-\r
-\r
-\r
-import android.content.Intent;\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 android.preference.PreferenceManager;\r
-import android.util.Log;\r
-import android.view.View;\r
-import android.widget.TextView;\r
-\r
-import com.ic.jni.ICJniUtils;\r
-\r
-import java.io.DataInputStream;\r
-import java.io.File;\r
-import java.io.FileInputStream;\r
-import java.io.IOException;\r
-import java.util.Timer;\r
-import java.util.TimerTask;\r
-\r
-import mobile.miki.mainui.ButtonViewTwo;\r
-import mobile.miki.mainui.TestMainActivity;\r
-import mobile.miki.util.Config;\r
-import mobile.miki.util.Logger;\r
-import static java.lang.Thread.sleep;\r
-\r
-public class AntiMonitorActivity extends BaseActivity implements View.OnClickListener, SensorEventListener {\r
-\r
-    private ButtonViewTwo buttonView;\r
-    boolean running;\r
-    private TextView tv_isweared;\r
-    private TextView tv_ppg;\r
-    private TextView tv_isweared_value;\r
-    private TextView tv_ppg_value;\r
-    private SensorManager mSensorManager=null;\r
-    private Sensor mAntiManager=null;\r
-    @Override\r
-    protected void onCreate(Bundle savedInstanceState) {\r
-        super.onCreate(savedInstanceState);\r
-        setContentView(R.layout.heartrate_layout);\r
-        initView();\r
-\r
-        mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);\r
-        mAntiManager = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);\r
-        boolean ret = mSensorManager.registerListener(this, mAntiManager, SensorManager.SENSOR_DELAY_UI);\r
-        Log.i( "dxc","AntiMonitor ret :: " + ret);\r
-\r
-\r
-    }\r
-\r
-    Handler mhandler=new Handler(new Handler.Callback() {\r
-        @Override\r
-        public boolean handleMessage(Message message) {\r
-\r
-            switch(message.what)\r
-            {\r
-                case 1: {\r
-                    Bundle bdl = message.getData();\r
-\r
-                    int anti = bdl.getInt("AntiEvent");\r
-                    tv_isweared_value.setText(" " + anti);\r
-\r
-                }\r
-                break;\r
-\r
-            }\r
-\r
-            return false;\r
-        }\r
-    });\r
-    @Override\r
-    protected void onDestroy() {\r
-        super.onDestroy();\r
-        Log.i( "dxc","Anti Monitor onDestroy");\r
-        mSensorManager.unregisterListener(this);\r
-\r
-    }\r
-\r
-    @Override\r
-    protected void onPause() {\r
-        super.onPause();\r
-        Log.i( "dxc","Anti Monitor onPause");\r
-\r
-    }\r
-\r
-    private void initView() {\r
-        buttonView = (ButtonViewTwo) findViewById(R.id.btn_set);\r
-        buttonView.btn_left.setOnClickListener(this);\r
-        buttonView.btn_right.setOnClickListener(this);\r
-        buttonView.setSuccessColor();\r
-        buttonView.btn_left.setClickable(true);\r
-\r
-        tv_isweared_value=(TextView)findViewById(R.id.tv_weared_value);\r
-        tv_isweared_value.setText("");\r
-\r
-        tv_ppg_value=(TextView)findViewById(R.id.tv_ppg_value);\r
-        tv_ppg_value.setVisibility(View.GONE);\r
-\r
-\r
-        tv_isweared=(TextView)findViewById(R.id.tv_isweared);\r
-        tv_isweared.setText("AntiCheck:");\r
-        tv_ppg=(TextView)findViewById(R.id.tv_ppg);\r
-        tv_ppg.setVisibility(View.GONE);\r
-\r
-\r
-    }\r
-\r
-    @Override\r
-    public void onClick(View view) {\r
-        Intent intent =  Config.getNextTestIntent(this,this.getClass());//new Intent(this, SimDetectActivity.class);\r
-        intent.putExtra("running", true);\r
-        Intent intent1 = new Intent(this, TestMainActivity.class);\r
-        // TestResult testResult = (TestResult) getApplicationContext();\r
-        switch (view.getId()) {\r
-\r
-            case R.id.btn_two_left:\r
-                if (!running) {\r
-                    startActivity(intent1);\r
-                } else {\r
-                    startActivity(intent);\r
-                }\r
-                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("anti", "true").commit();\r
-                finish();\r
-                break;\r
-            case R.id.btn_two_right:\r
-                if (!running) {\r
-                    startActivity(intent1);\r
-                } else {\r
-                    startActivity(intent);\r
-                }\r
-                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("anti", "false").commit();\r
-                finish();\r
-                break;\r
-        }\r
-    }\r
-\r
-    @Override\r
-    public void onSensorChanged(SensorEvent sensorEvent) {\r
-        float values[]=sensorEvent.values;\r
-        int length = values.length;\r
-        if (length>0) {\r
-            int current_anti_status = (int) sensorEvent.values[0];\r
-            Log.i("AntiMonitor", "近距离 " + current_anti_status);\r
-            Message msg = new Message();\r
-            Bundle bdl = new Bundle();\r
-            msg.what = 1;\r
-            bdl.putInt("AntiEvent",current_anti_status );\r
-            msg.setData(bdl);\r
-            mhandler.sendMessage(msg);\r
-        }\r
-    }\r
-\r
-    @Override\r
-    public void onAccuracyChanged(Sensor sensor, int i) {\r
-        Log.i("dxc","onAccuracyChanged() is called "+sensor.getName()+" accuracy="+i);\r
-    }\r
-}\r
-\r
+package mobile.miki;
+
+import android.content.Context;
+import android.content.Intent;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.os.Handler;
+import android.os.Message;
+import android.os.PowerManager;
+
+
+
+import android.content.Intent;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.preference.PreferenceManager;
+import android.util.Log;
+import android.view.View;
+import android.widget.TextView;
+
+import com.ic.jni.ICJniUtils;
+
+import java.io.DataInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Timer;
+import java.util.TimerTask;
+
+import mobile.miki.mainui.ButtonViewTwo;
+import mobile.miki.mainui.TestMainActivity;
+import mobile.miki.util.Config;
+import mobile.miki.util.Logger;
+import static java.lang.Thread.sleep;
+
+public class AntiMonitorActivity extends BaseActivity implements View.OnClickListener, SensorEventListener {
+
+    private ButtonViewTwo buttonView;
+    boolean running;
+    private TextView tv_isweared;
+    private TextView tv_ppg;
+    private TextView tv_isweared_value;
+    private TextView tv_ppg_value;
+    private SensorManager mSensorManager=null;
+    private Sensor mAntiManager=null;
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.heartrate_layout);
+        initView();
+        Intent intent = getIntent();
+        running = false;
+        if (intent != null) {
+            running = intent.getBooleanExtra("running", false);
+        }
+        mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
+        mAntiManager = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
+        boolean ret = mSensorManager.registerListener(this, mAntiManager, SensorManager.SENSOR_DELAY_UI);
+        Log.i( "dxc","AntiMonitor ret :: " + ret);
+
+
+    }
+
+    Handler mhandler=new Handler(new Handler.Callback() {
+        @Override
+        public boolean handleMessage(Message message) {
+
+            switch(message.what)
+            {
+                case 1: {
+                    Bundle bdl = message.getData();
+
+                    int anti = bdl.getInt("AntiEvent");
+                    tv_isweared_value.setText(" " + anti);
+
+                }
+                break;
+
+            }
+
+            return false;
+        }
+    });
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        Log.i( "dxc","Anti Monitor onDestroy");
+        mSensorManager.unregisterListener(this);
+
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        Log.i( "dxc","Anti Monitor onPause");
+
+    }
+
+    private void initView() {
+        buttonView = (ButtonViewTwo) findViewById(R.id.btn_set);
+        buttonView.btn_left.setOnClickListener(this);
+        buttonView.btn_right.setOnClickListener(this);
+        buttonView.setSuccessColor();
+        buttonView.btn_left.setClickable(true);
+
+        tv_isweared_value=(TextView)findViewById(R.id.tv_weared_value);
+        tv_isweared_value.setText("");
+
+        tv_ppg_value=(TextView)findViewById(R.id.tv_ppg_value);
+        tv_ppg_value.setVisibility(View.GONE);
+
+
+        tv_isweared=(TextView)findViewById(R.id.tv_isweared);
+        tv_isweared.setText("AntiCheck:");
+        tv_ppg=(TextView)findViewById(R.id.tv_ppg);
+        tv_ppg.setVisibility(View.GONE);
+
+
+    }
+
+    @Override
+    public void onClick(View view) {
+        Intent intent =  Config.getNextTestIntent(this,this.getClass());//new Intent(this, SimDetectActivity.class);
+        intent.putExtra("running", true);
+        Intent intent1 = new Intent(this, TestMainActivity.class);
+        // TestResult testResult = (TestResult) getApplicationContext();
+        switch (view.getId()) {
+
+            case R.id.btn_two_left:
+                if (!running) {
+                    startActivity(intent1);
+                } else {
+                    startActivity(intent);
+                }
+                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("anti", "true").commit();
+                finish();
+                break;
+            case R.id.btn_two_right:
+                if (!running) {
+                    startActivity(intent1);
+                } else {
+                    startActivity(intent);
+                }
+                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("anti", "false").commit();
+                finish();
+                break;
+        }
+    }
+
+    @Override
+    public void onSensorChanged(SensorEvent sensorEvent) {
+        float values[]=sensorEvent.values;
+        int length = values.length;
+        if (length>0) {
+            int current_anti_status = (int) sensorEvent.values[0];
+            Log.i("AntiMonitor", "近距离 " + current_anti_status);
+            Message msg = new Message();
+            Bundle bdl = new Bundle();
+            msg.what = 1;
+            bdl.putInt("AntiEvent",current_anti_status );
+            msg.setData(bdl);
+            mhandler.sendMessage(msg);
+        }
+    }
+
+    @Override
+    public void onAccuracyChanged(Sensor sensor, int i) {
+        Log.i("dxc","onAccuracyChanged() is called "+sensor.getName()+" accuracy="+i);
+    }
+}
+
index 925fbf1..5aef6ff 100644 (file)
-package mobile.miki;\r
-\r
-import android.content.Intent;\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 android.preference.PreferenceManager;\r
-import android.util.Log;\r
-import android.view.View;\r
-import android.widget.TextView;\r
-\r
-import com.ic.jni.ICJniUtils;\r
-\r
-import java.io.DataInputStream;\r
-import java.io.File;\r
-import java.io.FileInputStream;\r
-import java.io.IOException;\r
-import java.util.Timer;\r
-import java.util.TimerTask;\r
-\r
-import mobile.miki.mainui.ButtonViewTwo;\r
-import mobile.miki.mainui.TestMainActivity;\r
-import mobile.miki.util.Config;\r
-import mobile.miki.util.Logger;\r
-\r
-public class HeartRate extends BaseActivity implements View.OnClickListener, SensorEventListener {\r
-\r
-    private ButtonViewTwo buttonView;\r
-    boolean running;\r
-    public static final int TYPE_HEART_RATE = 21;\r
-    Timer mTimer=null;\r
-\r
-    private TextView tv_isweared;\r
-    private TextView tv_ppg;\r
-    private int hrsType;\r
-    private SensorManager mSensorManager=null;\r
-    private Sensor mHeartRate=null;\r
-    @Override\r
-    protected void onCreate(Bundle savedInstanceState) {\r
-        super.onCreate(savedInstanceState);\r
-        setContentView(R.layout.heartrate_layout);\r
-        initView();\r
-        hrsType = ICJniUtils.isPPGavailable();\r
-        Log.i("dxc", "heartrate available : " + hrsType);\r
-        if (hrsType == ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {\r
-\r
-            mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);\r
-            mHeartRate = mSensorManager.getDefaultSensor(TYPE_HEART_RATE);\r
-            boolean ret = mSensorManager.registerListener(this, mHeartRate, SensorManager.SENSOR_DELAY_UI);\r
-            Log.i( "dxc","Heart Rate PPG_EGC_TYPE_IC66 opened ret :: " + ret);\r
-\r
-        } else {\r
-            mTimer = new Timer();\r
-            TimerTask HRTimerTask = new TimerTask() {\r
-                @Override\r
-                public void run() {\r
-                    mhandler.sendEmptyMessage(0);\r
-                }\r
-            };\r
-            mTimer.schedule(HRTimerTask, 0, 1000L);\r
-            if(ICJniUtils.isPPGavailable()>0) {\r
-               // if (ICJniUtils.isPPGStarted()==0){\r
-                    ICJniUtils.enablePPG();\r
-               // }\r
-            }else{\r
-                tv_isweared.setText(" "+HeartRate.this.getResources().getString(R.string.no_heartrate));\r
-                tv_ppg.setText("");\r
-            }\r
-        }\r
-    }\r
-\r
-    Handler mhandler=new Handler(new Handler.Callback() {\r
-        @Override\r
-        public boolean handleMessage(Message message) {\r
-\r
-            switch(message.what)\r
-            {\r
-                case 0: {\r
-                    int ppg = ICJniUtils.getPPG();\r
-                    int weared = ICJniUtils.isWeared();\r
-\r
-                    String wearedstr = String.valueOf(weared);\r
-                    String ppgstr = String.valueOf(ppg);\r
-\r
-                    tv_isweared.setText(" " + wearedstr);\r
-                    tv_ppg.setText(" " + ppgstr);\r
-\r
-                    Log.d("dxc", "Weared:" + wearedstr + " PPG:" + ppgstr);\r
-                }\r
-                    break;\r
-                case 1: {\r
-                    Bundle bdl = message.getData();\r
-                    String weared = bdl.getString("isweared");\r
-                    String ppg = bdl.getString("PPG");\r
-                    if (!weared.trim().isEmpty() && !ppg.trim().isEmpty()) {\r
-                        tv_isweared.setText(" " + weared);\r
-                        tv_ppg.setText(" " + ppg);\r
-                    } else {\r
-                        tv_isweared.setText(" " + HeartRate.this.getResources().getString(R.string.no_heartrate));\r
-                        tv_ppg.setText("");\r
-                    }\r
-                }\r
-                    break;\r
-\r
-            }\r
-\r
-            return false;\r
-        }\r
-    });\r
-    @Override\r
-    protected void onDestroy() {\r
-        super.onDestroy();\r
-        if ( hrsType == ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {\r
-            mSensorManager.unregisterListener(this);\r
-            Log.i( "dxc","Heart Rate PPG_EGC_TYPE_IC66  closed");\r
-        }else if(hrsType>0) {\r
-            Log.i( "dxc","Heart Rate closed");\r
-\r
-\r
-            if(mTimer!=null) {\r
-                mTimer.cancel();\r
-                mTimer=null;\r
-            }\r
-            ICJniUtils.disablePPG();\r
-        }\r
-    }\r
-\r
-    @Override\r
-    protected void onPause() {\r
-        super.onPause();\r
-        Log.i( "dxc","Heart Rate onPause");\r
-\r
-    }\r
-\r
-    private void initView() {\r
-        buttonView = (ButtonViewTwo) findViewById(R.id.btn_set);\r
-        buttonView.btn_left.setOnClickListener(this);\r
-        buttonView.btn_right.setOnClickListener(this);\r
-        buttonView.setSuccessColor();\r
-        buttonView.btn_left.setClickable(true);\r
-\r
-        tv_isweared=(TextView)findViewById(R.id.tv_weared_value);\r
-        tv_ppg=(TextView)findViewById(R.id.tv_ppg_value);\r
-\r
-    }\r
-\r
-    @Override\r
-    public void onClick(View view) {\r
-        Intent intent =  Config.getNextTestIntent(this,this.getClass());//new Intent(this, SimDetectActivity.class);\r
-        intent.putExtra("running", true);\r
-        Intent intent1 = new Intent(this, TestMainActivity.class);\r
-        // TestResult testResult = (TestResult) getApplicationContext();\r
-        switch (view.getId()) {\r
-\r
-            case R.id.btn_two_left:\r
-                if (!running) {\r
-                    startActivity(intent1);\r
-                } else {\r
-                    startActivity(intent);\r
-                }\r
-                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("heartrate", "true").commit();\r
-                finish();\r
-                break;\r
-            case R.id.btn_two_right:\r
-                if (!running) {\r
-                    startActivity(intent1);\r
-                } else {\r
-                    startActivity(intent);\r
-                }\r
-                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("heartrate", "false").commit();\r
-                finish();\r
-                break;\r
-        }\r
-    }\r
-\r
-    @Override\r
-    public void onSensorChanged(SensorEvent sensorEvent) {\r
-        float values[]=sensorEvent.values;\r
-        int length = values.length;\r
-        Log.i( "dxc","onSensorChanged() is called "+length\r
-                +" PPG = "+values[0]\r
-                +", BPH = "+values[1]\r
-                +", BPL = "+values[2]\r
-                +", spo2 = "+values[3]\r
-                +" , Weared = "+values[4]\r
-        );\r
-\r
-        Message msg=new Message();\r
-        Bundle bdl=new Bundle();\r
-        msg.what=1;\r
-        bdl.putString("isweared", ((int)values[4] == 2)?"1":"0");\r
-        bdl.putString("PPG",String.valueOf(values[0]));\r
-        msg.setData(bdl);\r
-        mhandler.sendMessage(msg);\r
-    //    int PPG = (int)values[0];//调用底层函数保证状态更新。\r
-     //   boolean isWared = ((int)values[4] == 2);\r
-    //    tv_isweared.setText(isWared?1:0);\r
-     //   tv_ppg.setText(PPG);\r
-        /*[0]---心率;[1]---血压高压;[2]---血压低压;[3]---血氧;[4]---佩戴检测(1--脱手,2--上手);*/\r
-    }\r
-\r
-    @Override\r
-    public void onAccuracyChanged(Sensor sensor, int i) {\r
-        Log.i("dxc","onAccuracyChanged() is called "+sensor.getName()+" accuracy="+i);\r
-    }\r
-}\r
+package mobile.miki;
+
+import android.content.Intent;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.preference.PreferenceManager;
+import android.util.Log;
+import android.view.View;
+import android.widget.TextView;
+
+import com.ic.jni.ICJniUtils;
+
+import java.io.DataInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Timer;
+import java.util.TimerTask;
+
+import mobile.miki.mainui.ButtonViewTwo;
+import mobile.miki.mainui.TestMainActivity;
+import mobile.miki.util.Config;
+import mobile.miki.util.Logger;
+
+public class HeartRate extends BaseActivity implements View.OnClickListener, SensorEventListener {
+
+    private ButtonViewTwo buttonView;
+    boolean running;
+    public static final int TYPE_HEART_RATE = 21;
+    Timer mTimer=null;
+
+    private TextView tv_isweared;
+    private TextView tv_ppg;
+    private int hrsType;
+    private SensorManager mSensorManager=null;
+    private Sensor mHeartRate=null;
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.heartrate_layout);
+        initView();
+
+        Intent intent = getIntent();
+        running = false;
+        if (intent != null) {
+            running = intent.getBooleanExtra("running", false);
+        }
+        hrsType = ICJniUtils.isPPGavailable();
+        Log.i("dxc", "heartrate available : " + hrsType);
+        if (hrsType == ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {
+
+            mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
+            mHeartRate = mSensorManager.getDefaultSensor(TYPE_HEART_RATE);
+            boolean ret = mSensorManager.registerListener(this, mHeartRate, SensorManager.SENSOR_DELAY_UI);
+            Log.i( "dxc","Heart Rate PPG_EGC_TYPE_IC66 opened ret :: " + ret);
+
+        } else {
+            mTimer = new Timer();
+            TimerTask HRTimerTask = new TimerTask() {
+                @Override
+                public void run() {
+                    mhandler.sendEmptyMessage(0);
+                }
+            };
+            mTimer.schedule(HRTimerTask, 0, 1000L);
+            if(ICJniUtils.isPPGavailable()>0) {
+               // if (ICJniUtils.isPPGStarted()==0){
+                    ICJniUtils.enablePPG();
+               // }
+            }else{
+                tv_isweared.setText(" "+HeartRate.this.getResources().getString(R.string.no_heartrate));
+                tv_ppg.setText("");
+            }
+        }
+    }
+
+    Handler mhandler=new Handler(new Handler.Callback() {
+        @Override
+        public boolean handleMessage(Message message) {
+
+            switch(message.what)
+            {
+                case 0: {
+                    int ppg = ICJniUtils.getPPG();
+                    int weared = ICJniUtils.isWeared();
+
+                    String wearedstr = String.valueOf(weared);
+                    String ppgstr = String.valueOf(ppg);
+
+                    tv_isweared.setText(" " + wearedstr);
+                    tv_ppg.setText(" " + ppgstr);
+
+                    Log.d("dxc", "Weared:" + wearedstr + " PPG:" + ppgstr);
+                }
+                    break;
+                case 1: {
+                    Bundle bdl = message.getData();
+                    String weared = bdl.getString("isweared");
+                    String ppg = bdl.getString("PPG");
+                    if (!weared.trim().isEmpty() && !ppg.trim().isEmpty()) {
+                        tv_isweared.setText(" " + weared);
+                        tv_ppg.setText(" " + ppg);
+                    } else {
+                        tv_isweared.setText(" " + HeartRate.this.getResources().getString(R.string.no_heartrate));
+                        tv_ppg.setText("");
+                    }
+                }
+                    break;
+
+            }
+
+            return false;
+        }
+    });
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if ( hrsType == ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {
+            mSensorManager.unregisterListener(this);
+            Log.i( "dxc","Heart Rate PPG_EGC_TYPE_IC66  closed");
+        }else if(hrsType>0) {
+            Log.i( "dxc","Heart Rate closed");
+
+
+            if(mTimer!=null) {
+                mTimer.cancel();
+                mTimer=null;
+            }
+            ICJniUtils.disablePPG();
+        }
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        Log.i( "dxc","Heart Rate onPause");
+
+    }
+
+    private void initView() {
+        buttonView = (ButtonViewTwo) findViewById(R.id.btn_set);
+        buttonView.btn_left.setOnClickListener(this);
+        buttonView.btn_right.setOnClickListener(this);
+        buttonView.setSuccessColor();
+        buttonView.btn_left.setClickable(true);
+
+        tv_isweared=(TextView)findViewById(R.id.tv_weared_value);
+        tv_ppg=(TextView)findViewById(R.id.tv_ppg_value);
+
+    }
+
+    @Override
+    public void onClick(View view) {
+        Intent intent =  Config.getNextTestIntent(this,this.getClass());//new Intent(this, SimDetectActivity.class);
+        intent.putExtra("running", true);
+        Intent intent1 = new Intent(this, TestMainActivity.class);
+        // TestResult testResult = (TestResult) getApplicationContext();
+        switch (view.getId()) {
+
+            case R.id.btn_two_left:
+                if (!running) {
+                    startActivity(intent1);
+                } else {
+                    startActivity(intent);
+                }
+                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("heartrate", "true").commit();
+                finish();
+                break;
+            case R.id.btn_two_right:
+                if (!running) {
+                    startActivity(intent1);
+                } else {
+                    startActivity(intent);
+                }
+                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("heartrate", "false").commit();
+                finish();
+                break;
+        }
+    }
+
+    @Override
+    public void onSensorChanged(SensorEvent sensorEvent) {
+        float values[]=sensorEvent.values;
+        int length = values.length;
+        Log.i( "dxc","onSensorChanged() is called "+length
+                +" PPG = "+values[0]
+                +", BPH = "+values[1]
+                +", BPL = "+values[2]
+                +", spo2 = "+values[3]
+                +" , Weared = "+values[4]
+        );
+
+        Message msg=new Message();
+        Bundle bdl=new Bundle();
+        msg.what=1;
+        bdl.putString("isweared", ((int)values[4] == 2)?"1":"0");
+        bdl.putString("PPG",String.valueOf(values[0]));
+        msg.setData(bdl);
+        mhandler.sendMessage(msg);
+    //    int PPG = (int)values[0];//调用底层函数保证状态更新。
+     //   boolean isWared = ((int)values[4] == 2);
+    //    tv_isweared.setText(isWared?1:0);
+     //   tv_ppg.setText(PPG);
+        /*[0]---心率;[1]---血压高压;[2]---血压低压;[3]---血氧;[4]---佩戴检测(1--脱手,2--上手);*/
+    }
+
+    @Override
+    public void onAccuracyChanged(Sensor sensor, int i) {
+        Log.i("dxc","onAccuracyChanged() is called "+sensor.getName()+" accuracy="+i);
+    }
+}
index 1129025..7f879d8 100644 (file)
-package mobile.miki;\r
-\r
-import android.content.ComponentName;\r
-import android.content.Intent;\r
-import android.os.Bundle;\r
-import android.os.Handler;\r
-import android.os.HandlerThread;\r
-import android.os.Looper;\r
-import android.os.Message;\r
-import android.os.UserHandle;\r
-import android.preference.PreferenceManager;\r
-import android.util.Log;\r
-import android.view.View;\r
-import android.widget.TextView;\r
-\r
-import com.ic.jni.ICJniUtils;\r
-\r
-import java.lang.ref.WeakReference;\r
-import java.util.Timer;\r
-import java.util.TimerTask;\r
-\r
-import mobile.miki.mainui.ButtonViewTwo;\r
-import mobile.miki.mainui.TestMainActivity;\r
-import mobile.miki.util.Config;\r
-import mobile.miki.util.Logger;\r
-\r
-public class TemperatureActivity extends BaseActivity implements View.OnClickListener {\r
-\r
-    private ButtonViewTwo buttonView;\r
-    boolean running;\r
-\r
-    Timer mTimer = null;\r
-\r
-    private TextView temperatureTv;\r
-    private TextView temperatureOutTv;\r
-    private TempHandler tempHandler;\r
-\r
-    @Override\r
-    protected void onCreate(Bundle savedInstanceState) {\r
-        super.onCreate(savedInstanceState);\r
-        setContentView(R.layout.temperature_layout);\r
-        //初始化控件\r
-        initView();\r
-        //判断是否支持温度测试\r
-        int temper = ICJniUtils.isTemperatureDevAvailable();\r
-        Log.i("dxc", "Temperature available : " + temper);\r
-        if (temper > 0) {\r
-            tempHandler = new TempHandler(this);\r
-            //打开温度测试\r
-            ICJniUtils.enableTemperature();\r
-            mTimer = new Timer();\r
-            TimerTask HRTimerTask = new TimerTask() {\r
-                @Override\r
-                public void run() {\r
-                    //获取温度内容\r
-                    getTemperatureInfo();\r
-                }\r
-            };\r
-            mTimer.schedule(HRTimerTask, 500, 1000L);\r
-        } else {\r
-            this.temperatureTv.setText(this.getResources().getString(R.string.no_temperature));\r
-            Log.i("dxc", "No temperature!");\r
-        }\r
-    }\r
-\r
-\r
-    private void getTemperatureInfo() {\r
-        double temp = ICJniUtils.getTemperature();\r
-        double tempOut = ICJniUtils.getTemperatureOrigin();\r
-        Message message = tempHandler.obtainMessage();\r
-        Bundle bundle = new Bundle();\r
-        bundle.putDouble("temp", temp);\r
-        bundle.putDouble("tempOut", tempOut);\r
-        message.obj = bundle;\r
-        tempHandler.sendMessage(message);\r
-    }\r
-\r
-    static class TempHandler extends Handler {\r
-        WeakReference<TemperatureActivity> activityWeakReference = null;\r
-\r
-        TempHandler(TemperatureActivity temperatureActivity) {\r
-            activityWeakReference = new WeakReference<>(temperatureActivity);\r
-        }\r
-\r
-        @Override\r
-        public void handleMessage(Message msg) {\r
-            TemperatureActivity temperatureActivity = activityWeakReference.get();\r
-            if (temperatureActivity == null) {\r
-                return;\r
-            }\r
-            Bundle bundle = (Bundle) msg.obj;\r
-            String tempStr = String.format(temperatureActivity.getString(R.string.factory_temp_format_text),\r
-                    bundle.getDouble("temp"));\r
-            String tempStrOut = String.format(temperatureActivity.getString(R.string.factory_temp_format_text),\r
-                    bundle.getDouble("tempOut"));\r
-            temperatureActivity.temperatureTv.setText(tempStr);\r
-            temperatureActivity.temperatureOutTv.setText(tempStrOut);\r
-            Logger.d("Temperature:" + tempStr + " TemperatureOut:" + tempStrOut);\r
-        }\r
-    }\r
-\r
-    @Override\r
-    protected void onDestroy() {\r
-        super.onDestroy();\r
-        // ICJniUtils.disablePPG();\r
-\r
-        int temper = ICJniUtils.isTemperatureDevAvailable();\r
-        Log.i("dxc", "Temperature available : " + temper);\r
-\r
-        if (temper > 0) {\r
-            if (mTimer != null) {\r
-\r
-                mTimer.cancel();\r
-                mTimer = null;\r
-            }\r
-            Log.i("dxc", "Temperature onPause");\r
-            ICJniUtils.disableTemperature();\r
-        } else {\r
-            Log.i("dxc", "No temperature!");\r
-        }\r
-\r
-    }\r
-\r
-    @Override\r
-    protected void onPause() {\r
-        super.onPause();\r
-        Log.i("dxc", "Temperature onPause");\r
-    }\r
-\r
-    @Override\r
-    protected void onResume() {\r
-        super.onResume();\r
-    }\r
-\r
-    private void initView() {\r
-        buttonView = (ButtonViewTwo) findViewById(R.id.btn_set);\r
-        buttonView.btn_left.setOnClickListener(this);\r
-        buttonView.btn_right.setOnClickListener(this);\r
-        buttonView.setSuccessColor();\r
-        buttonView.btn_left.setClickable(true);\r
-        temperatureTv = (TextView) findViewById(R.id.tv_temperature_value);\r
-        temperatureOutTv = (TextView) findViewById(R.id.tv_temperature_value_out);\r
-\r
-    }\r
-\r
-    @Override\r
-    public void onClick(View view) {\r
-        Intent intent = Config.getNextTestIntent(this, this.getClass());//new Intent(this, SimDetectActivity.class);\r
-        intent.putExtra("running", true);\r
-        Intent intent1 = new Intent(this, TestMainActivity.class);\r
-        // TestResult testResult = (TestResult) getApplicationContext();\r
-        switch (view.getId()) {\r
-\r
-            case R.id.btn_two_left:\r
-                if (!running) {\r
-                    startActivity(intent1);\r
-                } else {\r
-                    startActivity(intent);\r
-                }\r
-                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("temperature", "true").commit();\r
-                finish();\r
-                break;\r
-            case R.id.btn_two_right:\r
-                if (!running) {\r
-                    startActivity(intent1);\r
-                } else {\r
-                    startActivity(intent);\r
-                }\r
-                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("temperature", "false").commit();\r
-                finish();\r
-                break;\r
-        }\r
-    }\r
-}\r
+package mobile.miki;
+
+import android.content.ComponentName;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Looper;
+import android.os.Message;
+import android.os.UserHandle;
+import android.preference.PreferenceManager;
+import android.util.Log;
+import android.view.View;
+import android.widget.TextView;
+
+import com.ic.jni.ICJniUtils;
+
+import java.lang.ref.WeakReference;
+import java.util.Timer;
+import java.util.TimerTask;
+
+import mobile.miki.mainui.ButtonViewTwo;
+import mobile.miki.mainui.TestMainActivity;
+import mobile.miki.util.Config;
+import mobile.miki.util.Logger;
+
+public class TemperatureActivity extends BaseActivity implements View.OnClickListener {
+
+    private ButtonViewTwo buttonView;
+    boolean running;
+
+    Timer mTimer = null;
+
+    private TextView temperatureTv;
+    private TextView temperatureOutTv;
+    private TempHandler tempHandler;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.temperature_layout);
+        //初始化控件
+        initView();
+        Intent intent = getIntent();
+        running = false;
+        if (intent != null) {
+            running = intent.getBooleanExtra("running", false);
+        }
+        //判断是否支持温度测试
+        int temper = ICJniUtils.isTemperatureDevAvailable();
+        Log.i("dxc", "Temperature available : " + temper);
+        if (temper > 0) {
+            tempHandler = new TempHandler(this);
+            //打开温度测试
+            ICJniUtils.enableTemperature();
+            mTimer = new Timer();
+            TimerTask HRTimerTask = new TimerTask() {
+                @Override
+                public void run() {
+                    //获取温度内容
+                    getTemperatureInfo();
+                }
+            };
+            mTimer.schedule(HRTimerTask, 500, 1000L);
+        } else {
+            this.temperatureTv.setText(this.getResources().getString(R.string.no_temperature));
+            Log.i("dxc", "No temperature!");
+        }
+    }
+
+
+    private void getTemperatureInfo() {
+        double temp = ICJniUtils.getTemperature();
+        double tempOut = ICJniUtils.getTemperatureOrigin();
+        Message message = tempHandler.obtainMessage();
+        Bundle bundle = new Bundle();
+        bundle.putDouble("temp", temp);
+        bundle.putDouble("tempOut", tempOut);
+        message.obj = bundle;
+        tempHandler.sendMessage(message);
+    }
+
+    static class TempHandler extends Handler {
+        WeakReference<TemperatureActivity> activityWeakReference = null;
+
+        TempHandler(TemperatureActivity temperatureActivity) {
+            activityWeakReference = new WeakReference<>(temperatureActivity);
+        }
+
+        @Override
+        public void handleMessage(Message msg) {
+            TemperatureActivity temperatureActivity = activityWeakReference.get();
+            if (temperatureActivity == null) {
+                return;
+            }
+            Bundle bundle = (Bundle) msg.obj;
+            String tempStr = String.format(temperatureActivity.getString(R.string.factory_temp_format_text),
+                    bundle.getDouble("temp"));
+            String tempStrOut = String.format(temperatureActivity.getString(R.string.factory_temp_format_text),
+                    bundle.getDouble("tempOut"));
+            temperatureActivity.temperatureTv.setText(tempStr);
+            temperatureActivity.temperatureOutTv.setText(tempStrOut);
+            Logger.d("Temperature:" + tempStr + " TemperatureOut:" + tempStrOut);
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        // ICJniUtils.disablePPG();
+
+        int temper = ICJniUtils.isTemperatureDevAvailable();
+        Log.i("dxc", "Temperature available : " + temper);
+
+        if (temper > 0) {
+            if (mTimer != null) {
+
+                mTimer.cancel();
+                mTimer = null;
+            }
+            Log.i("dxc", "Temperature onPause");
+            ICJniUtils.disableTemperature();
+        } else {
+            Log.i("dxc", "No temperature!");
+        }
+
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        Log.i("dxc", "Temperature onPause");
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+    }
+
+    private void initView() {
+        buttonView = (ButtonViewTwo) findViewById(R.id.btn_set);
+        buttonView.btn_left.setOnClickListener(this);
+        buttonView.btn_right.setOnClickListener(this);
+        buttonView.setSuccessColor();
+        buttonView.btn_left.setClickable(true);
+        temperatureTv = (TextView) findViewById(R.id.tv_temperature_value);
+        temperatureOutTv = (TextView) findViewById(R.id.tv_temperature_value_out);
+
+    }
+
+    @Override
+    public void onClick(View view) {
+        Intent intent = Config.getNextTestIntent(this, this.getClass());//new Intent(this, SimDetectActivity.class);
+        intent.putExtra("running", true);
+        Intent intent1 = new Intent(this, TestMainActivity.class);
+        // TestResult testResult = (TestResult) getApplicationContext();
+        switch (view.getId()) {
+
+            case R.id.btn_two_left:
+                if (!running) {
+                    startActivity(intent1);
+                } else {
+                    startActivity(intent);
+                }
+                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("temperature", "true").commit();
+                finish();
+                break;
+            case R.id.btn_two_right:
+                if (!running) {
+                    startActivity(intent1);
+                } else {
+                    startActivity(intent);
+                }
+                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("temperature", "false").commit();
+                finish();
+                break;
+        }
+    }
+}
index 2644fbc..6bf5f99 100644 (file)
@@ -1,2 +1,2 @@
-#Mon Dec 21 18:03:48 CST 2020
-VERSION_CODE=57
+#Mon Dec 21 21:29:58 CST 2020
+VERSION_CODE=58