-package com.ic.jni;\r
-\r
-public class ICJniUtils {\r
-\r
- public enum GSensorType\r
- {\r
- GSENSOR_TYPE_NONE,\r
- GSENSOR_TYPE_QMA7981,\r
- GSENSOR_TYPE_SC7A21,\r
- GSENSOR_TYPE_MAX\r
- };\r
-\r
- public enum TempSensorType\r
- {\r
- TEMPSENSOR_TYPE_NONE,\r
- TEMPSENSOR_TYPE_NST175,\r
- TEMPSENSOR_TYPE_IC68,\r
- TEMPSENSOR_TYPE_EM7068,\r
- TEMPSENSOR_TYPE_MAX\r
- };\r
-\r
- public enum PPG_EGC_SensorType\r
- {\r
- PPG_EGC_TYPE_NONE,\r
- PPG_EGC_TYPE_EM7028,\r
- PPG_EGC_TYPE_EM7068,\r
- PPG_EGC_TYPE_HRS3313,\r
- PPG_EGC_TYPE_HRS3301,\r
- PPG_EGC_TYPE_IC66,\r
- PPG_EGC_TYPE_PAH8002,\r
- PPG_EGC_TYPE_MAX\r
- };\r
-\r
- public ICJniUtils(){\r
-\r
- }\r
- static {\r
- // build.gradle里面 android\defaultConfig\ndk\moduleName 的名称\r
- // Android.mk, LOCAL_MODULE 的名称\r
- System.loadLibrary("ICJniUtils");\r
- }\r
-\r
- /***************计步控制************************************/\r
- /***\r
- * 运行此函数清除 系统计步为0,一版在午夜执行\r
- * @return\r
- */\r
- public static native int resetStepCount();\r
-\r
- /***\r
- * 获取当前步数\r
- * @return\r
- */\r
- public static native int getStepCount();\r
-\r
- /***\r
- * 开启计步 不必判断返回值\r
- * @return\r
- */\r
- public static native int enablePedometer();\r
-\r
- /***\r
- * 停止计步 不必判断返回值\r
- * @return\r
- */\r
- public static native int disablePedometer();\r
-\r
- /***\r
- * 检测计步当前是否开启\r
- * @return\r
- * 1开启,0 关闭\r
- */\r
- public static native int isPedometerEnabled();\r
-\r
- /***\r
- * 获取当前计步器(GSensor)类型 GSensorType\r
- * @return\r
- * 不存在返回 GSENSOR_TYPE_NONE,否则返回Gsensor类型\r
- * 理论上此设备必选,一定存在。\r
- */\r
- public static native int getGsensorType();\r
-\r
- /*保存当前步数(getStepCount取得的值)到磁盘 不必判断返回值\r
- * 为了兼容,已经不再使用\r
- * */\r
- public static native int saveStepCount();\r
-\r
- /*恢复保存时的步数数据,下次getStepCount会在恢复的值上增加 不必判断返回值\r
- * * 为了兼容,已经不再使用\r
- * */\r
- public static native int recoverStepCount();\r
-\r
- /******心率,血压****************************************/\r
- /***\r
- * 检查 PPG硬件是否存在,返回PPG_EGC_SensorType\r
- * @return\r
- * 返回PPG_EGC_TYPE_NONE代表不存在,否则返回 传感器类型\r
- */\r
- public static native int isPPGavailable();\r
-\r
- /**\r
- * 开启心率血压检测\r
- * @return\r
- */\r
- public static native int enablePPG();\r
-\r
- /***\r
- * 停止心率血压检测\r
- * @return\r
- */\r
- public static native int disablePPG();\r
-\r
-\r
- /***\r
- * 返回PPG 运行状态, 0 停止, 1,运行中\r
- * @return\r
- */\r
- public static native int isPPGStarted();\r
-\r
- /***\r
- * 返回 心率值 每分钟跳动次数, 通过这个心率>0 判断是否已经有检测结果,\r
- * 有就可以直接通过getHighBloodPressure 和 getLowBloodPressure 获取血压高压低压值\r
- * @return\r
- */\r
- public static native int getPPG();\r
-\r
- /***\r
- * 返回是否佩戴 0 未佩戴,1 佩戴 。\r
- * 请注意,此数据必须在执行 getPPG() 后才有效,否则一直为上一次的值。\r
- * @return\r
- */\r
- public static native int isWeared();\r
-\r
- /***\r
- * 获取血压高压值\r
- * 请注意,此数据必须在执行 getPPG() 后才有效,否则一直为上一次的值。\r
- * @return\r
- */\r
- public static native int getHighBloodPressure();\r
-\r
- /***\r
- * 获取血压低压值\r
- * 请注意,此数据必须在执行 getPPG() 后才有效,否则一直为上一次的值。\r
- * @return\r
- */\r
- public static native int getLowBloodPressure();\r
-\r
- /***\r
- * 获取血氧值\r
- * 请注意,此数据必须在执行 getPPG() 后才有效,否则一直为上一次的值。\r
- * @return\r
- */\r
- public static native int getSPO2();\r
-\r
-\r
- /***\r
- * 开始温度检测,有些sensor不需要,为了兼容,请开始前执行一次,并且sleep 1秒钟\r
- * @return\r
- */\r
- public static native int enableTemperature();\r
-\r
- /***\r
- * 停止温度检测,有些sensor不需要,为了兼容请结束后还是要执行一次。\r
- * @return 返回值<0 表示失败 =>0表示成功\r
- */\r
- public static native int disableTemperature();\r
-\r
- /***\r
- * 执行温度校准操作,一版在整机生产时的恒温箱中执行\r
- * @param refTemp 恒温箱的温度\r
- * @return 返回值<0 表示失败 =>0表示成功\r
- */\r
- public static native int doTempCalibration(double refTemp);\r
-\r
- /***\r
- * 获取温度 校准后数据 单位摄氏度\r
- * @return 返回值<=0 表示失败 >0表示成功\r
- */\r
- public static native double getTemperature();\r
-\r
- /***\r
- * 设置当前温度标志位,\r
- * @param flag\r
- * 实际上就是按照二进制位来定义的。\r
- * 0、可以测温\r
- * 第一位为1,0x1、充电超过2分钟或者充电超过2分钟后拔除5分钟内 0001\r
- * 第二位为1,0x2、亮屏超过5分钟或者亮屏超过5分钟后灭屏5分钟内 0010\r
- * 第三位为1,0x4、通话超过2分钟或者通话超过2分钟后挂断5分钟内 0100\r
- * 所有大于0的都不能测温\r
- * 注:暂时未启用,预留\r
- * @return\r
- */\r
- public static native int setTemperatureValidFlag(int flag);\r
-\r
- /***\r
- * 此操作仅仅为了检查标志状态设置成功与否,标志已经在内部被使用\r
- * 注:暂时未启用,预留\r
- * @return\r
- */\r
- public static native int getTemperatureValidFlag();\r
-\r
- /***\r
- * 根据环境参考温度和腕温换算 体温\r
- * ic66可以直接输出体温,不需要这个公式。\r
- * @param wrist_temp\r
- * 腕温\r
- * @param ref_temp\r
- * 室外参考温度\r
- * @return 返回值<=0 表示失败 >0表示成功\r
- */\r
- public static native double getBodyTempFromWristTemp(double wrist_temp,double ref_temp);\r
-\r
- /***\r
- * 有体温检测功能则返回 TempSensorType\r
- * TempSensor_NONE 就表示没有体温检测功能,否则返回温度传感器类型\r
- * @return\r
- */\r
- public static native int isTemperatureDevAvailable();\r
-\r
-\r
- /*获取温度校准前\r
- * 为了兼容已经不用\r
- * */\r
- public static native double getTemperatureOrigin();\r
-\r
- /*设置校准参数\r
- * * 为了兼容已经不用\r
- * */\r
- public static native int setTemperatureAdjustValue(double value);\r
-\r
- /*设置校准参数\r
- * * 为了兼容已经不用\r
- * */\r
- public static native double getTemperatureAdjustValue();\r
-}\r
+package com.ic.jni;
+
+public class ICJniUtils {
+
+ public enum GSensorType
+ {
+ GSENSOR_TYPE_NONE,
+ GSENSOR_TYPE_QMA7981,
+ GSENSOR_TYPE_SC7A21,
+ GSENSOR_TYPE_MAX
+ };
+
+ public enum TempSensorType
+ {
+ TEMPSENSOR_TYPE_NONE,
+ TEMPSENSOR_TYPE_NST175,
+ TEMPSENSOR_TYPE_IC68,
+ TEMPSENSOR_TYPE_EM7068,
+ TEMPSENSOR_TYPE_MAX
+ };
+
+ public enum PPG_EGC_SensorType
+ {
+ PPG_EGC_TYPE_NONE,
+ PPG_EGC_TYPE_EM7028,
+ PPG_EGC_TYPE_EM7068,
+ PPG_EGC_TYPE_HRS3313,
+ PPG_EGC_TYPE_HRS3301,
+ PPG_EGC_TYPE_IC66,
+ PPG_EGC_TYPE_PAH8002,
+ PPG_EGC_TYPE_GH30X,
+ PPG_EGC_TYPE_MAX
+ };
+
+ public ICJniUtils(){
+
+ }
+ static {
+ // build.gradle里面 android\defaultConfig\ndk\moduleName 的名称
+ // Android.mk, LOCAL_MODULE 的名称
+ System.loadLibrary("ICJniUtils");
+ }
+
+ /***************计步控制************************************/
+ /***
+ * 运行此函数清除 系统计步为0,一版在午夜执行
+ * @return
+ */
+ public static native int resetStepCount();
+
+ /***
+ * 获取当前步数
+ * @return
+ */
+ public static native int getStepCount();
+
+ /***
+ * 开启计步 不必判断返回值
+ * @return
+ */
+ public static native int enablePedometer();
+
+ /***
+ * 停止计步 不必判断返回值
+ * @return
+ */
+ public static native int disablePedometer();
+
+ /***
+ * 检测计步当前是否开启
+ * @return
+ * 1开启,0 关闭
+ */
+ public static native int isPedometerEnabled();
+
+ /***
+ * 获取当前计步器(GSensor)类型 GSensorType
+ * @return
+ * 不存在返回 GSENSOR_TYPE_NONE,否则返回Gsensor类型
+ * 理论上此设备必选,一定存在。
+ */
+ public static native int getGsensorType();
+
+ /*保存当前步数(getStepCount取得的值)到磁盘 不必判断返回值
+ * 为了兼容,已经不再使用
+ * */
+ public static native int saveStepCount();
+
+ /*恢复保存时的步数数据,下次getStepCount会在恢复的值上增加 不必判断返回值
+ * * 为了兼容,已经不再使用
+ * */
+ public static native int recoverStepCount();
+
+ /******心率,血压****************************************/
+ /***
+ * 检查 PPG硬件是否存在,返回PPG_EGC_SensorType
+ * @return
+ * 返回PPG_EGC_TYPE_NONE代表不存在,否则返回 传感器类型
+ */
+ public static native int isPPGavailable();
+
+ /**
+ * 开启心率血压检测
+ * @return
+ */
+ public static native int enablePPG();
+
+ /***
+ * 停止心率血压检测
+ * @return
+ */
+ public static native int disablePPG();
+
+
+ /***
+ * 返回PPG 运行状态, 0 停止, 1,运行中
+ * @return
+ */
+ public static native int isPPGStarted();
+
+ /***
+ * 返回 心率值 每分钟跳动次数, 通过这个心率>0 判断是否已经有检测结果,
+ * 有就可以直接通过getHighBloodPressure 和 getLowBloodPressure 获取血压高压低压值
+ * @return
+ */
+ public static native int getPPG();
+
+ /***
+ * 返回是否佩戴 0 未佩戴,1 佩戴 。
+ * 请注意,此数据必须在执行 getPPG() 后才有效,否则一直为上一次的值。
+ * @return
+ */
+ public static native int isWeared();
+
+ /***
+ * 获取血压高压值
+ * 请注意,此数据必须在执行 getPPG() 后才有效,否则一直为上一次的值。
+ * @return
+ */
+ public static native int getHighBloodPressure();
+
+ /***
+ * 获取血压低压值
+ * 请注意,此数据必须在执行 getPPG() 后才有效,否则一直为上一次的值。
+ * @return
+ */
+ public static native int getLowBloodPressure();
+
+ /***
+ * 获取血氧值
+ * 请注意,此数据必须在执行 getPPG() 后才有效,否则一直为上一次的值。
+ * @return
+ */
+ public static native int getSPO2();
+
+
+ /***
+ * 开始温度检测,有些sensor不需要,为了兼容,请开始前执行一次,并且sleep 1秒钟
+ * @return
+ */
+ public static native int enableTemperature();
+
+ /***
+ * 停止温度检测,有些sensor不需要,为了兼容请结束后还是要执行一次。
+ * @return 返回值<0 表示失败 =>0表示成功
+ */
+ public static native int disableTemperature();
+
+ /***
+ * 执行温度校准操作,一版在整机生产时的恒温箱中执行
+ * @param refTemp 恒温箱的温度
+ * @return 返回值<0 表示失败 =>0表示成功
+ */
+ public static native int doTempCalibration(double refTemp);
+
+ /***
+ * 获取温度 校准后数据 单位摄氏度
+ * @return 返回值<=0 表示失败 >0表示成功
+ */
+ public static native double getTemperature();
+
+ /***
+ * 设置当前温度标志位,
+ * @param flag
+ * 实际上就是按照二进制位来定义的。
+ * 0、可以测温
+ * 第一位为1,0x1、充电超过2分钟或者充电超过2分钟后拔除5分钟内 0001
+ * 第二位为1,0x2、亮屏超过5分钟或者亮屏超过5分钟后灭屏5分钟内 0010
+ * 第三位为1,0x4、通话超过2分钟或者通话超过2分钟后挂断5分钟内 0100
+ * 所有大于0的都不能测温
+ * 注:暂时未启用,预留
+ * @return
+ */
+ public static native int setTemperatureValidFlag(int flag);
+
+ /***
+ * 此操作仅仅为了检查标志状态设置成功与否,标志已经在内部被使用
+ * 注:暂时未启用,预留
+ * @return
+ */
+ public static native int getTemperatureValidFlag();
+
+ /***
+ * 根据环境参考温度和腕温换算 体温
+ * ic66可以直接输出体温,不需要这个公式。
+ * @param wrist_temp
+ * 腕温
+ * @param ref_temp
+ * 室外参考温度
+ * @return 返回值<=0 表示失败 >0表示成功
+ */
+ public static native double getBodyTempFromWristTemp(double wrist_temp,double ref_temp);
+
+ /***
+ * 有体温检测功能则返回 TempSensorType
+ * TempSensor_NONE 就表示没有体温检测功能,否则返回温度传感器类型
+ * @return
+ */
+ public static native int isTemperatureDevAvailable();
+
+
+ /*获取温度校准前
+ * 为了兼容已经不用
+ * */
+ public static native double getTemperatureOrigin();
+
+ /*设置校准参数
+ * * 为了兼容已经不用
+ * */
+ public static native int setTemperatureAdjustValue(double value);
+
+ /*设置校准参数
+ * * 为了兼容已经不用
+ * */
+ public static native double getTemperatureAdjustValue();
+}