From: snickersun Date: Fri, 25 Dec 2020 08:39:46 +0000 (+0800) Subject: release V61 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=0a3791955cef8a3f9a7e6d2b3e15e887964d84f9;p=factoryMode.git release V61 适配SL8541E C46 V20 测试 添加气压测试,双摄像头测试 --- diff --git a/app/release/FactoryMode_V60_202012241556_release.apk b/app/release/FactoryMode_V61_202012251632_release.apk similarity index 93% rename from app/release/FactoryMode_V60_202012241556_release.apk rename to app/release/FactoryMode_V61_202012251632_release.apk index e9239e8..800c7af 100644 Binary files a/app/release/FactoryMode_V60_202012241556_release.apk and b/app/release/FactoryMode_V61_202012251632_release.apk differ diff --git a/app/release/output.json b/app/release/output.json index 11548d2..76fbb8d 100644 --- a/app/release/output.json +++ b/app/release/output.json @@ -1 +1 @@ -[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":60,"versionName":"202012241556","enabled":true,"outputFile":"FactoryMode_V60_202012241556_release.apk","fullName":"release","baseName":"release"},"path":"FactoryMode_V60_202012241556_release.apk","properties":{}}] \ No newline at end of file +[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":61,"versionName":"202012251632","enabled":true,"outputFile":"FactoryMode_V61_202012251632_release.apk","fullName":"release","baseName":"release"},"path":"FactoryMode_V61_202012251632_release.apk","properties":{}}] \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 82fc087..0a1a6ee 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -82,6 +82,7 @@ + diff --git a/app/src/main/java/com/ic/jni/ICJniUtils.java b/app/src/main/java/com/ic/jni/ICJniUtils.java index 9062096..6d235c9 100644 --- a/app/src/main/java/com/ic/jni/ICJniUtils.java +++ b/app/src/main/java/com/ic/jni/ICJniUtils.java @@ -1,241 +1,245 @@ -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_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(); - - /*** - * 检查体温检测设备是否开启 - * @return 返回0 未开启 1 开启 - */ - public static native int isTemperatureDevOpened(); - /*** - * 执行温度校准操作,一版在整机生产时的恒温箱中执行 - * @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(); -} +package com.ic.jni; + +import mobile.miki.util.FTUtils; + +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_MAX + }; + + public ICJniUtils(){ + + } + static { + // build.gradle里面 android\defaultConfig\ndk\moduleName 的名称 + // Android.mk, LOCAL_MODULE 的名称 + if(!FTUtils.isV20()) { + 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(); + + /*** + * 检查体温检测设备是否开启 + * @return 返回0 未开启 1 开启 + */ + public static native int isTemperatureDevOpened(); + /*** + * 执行温度校准操作,一版在整机生产时的恒温箱中执行 + * @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(); +} diff --git a/app/src/main/java/mobile/miki/CameraPreview.java b/app/src/main/java/mobile/miki/CameraPreview.java index c5fff3d..028be5f 100644 --- a/app/src/main/java/mobile/miki/CameraPreview.java +++ b/app/src/main/java/mobile/miki/CameraPreview.java @@ -1,585 +1,587 @@ -/** - * Generated by smali2java 1.0.0.558 - * Copyright (C) 2013 Hensence.com - */ - -package mobile.miki; - -import android.annotation.SuppressLint; -import android.app.Service; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.graphics.Color; -import android.hardware.Camera; -import android.os.Build; -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.os.PowerManager; -import android.os.PowerManager.WakeLock; -import android.preference.PreferenceManager; -import android.util.DisplayMetrics; -import android.util.Log; -import android.view.Surface; -import android.view.SurfaceHolder; -import android.view.SurfaceView; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.WindowManager; -import android.widget.Button; -import android.widget.Toast; - -import java.io.IOException; -import java.util.List; - -import mobile.miki.ageingmode.AgeingModeActivity; -import mobile.miki.mainui.ButtonViewTwo; -import mobile.miki.mainui.TestMainActivity; -import mobile.miki.util.Config; -import mobile.miki.util.FTUtils; - -public class CameraPreview extends BaseActivity implements SurfaceHolder.Callback, OnClickListener { - private static final String TAG = "AgeingCameraPreview"; - private Camera camera = null; - Handler handler; - Button bt; - private SurfaceHolder holder; - private boolean isAutoFocus; - private float mAspectRatio; - private int mH; - private int mHorizontalTileSize; - private int mPrvH; - private int mPrvW; - private int mVerticalTileSize; - private int mW; - private CameraSurfaceView preview; - private int TIME = 1000 * 10; - private int SINGLEITEM_OR_CYCLE_MODE; - private int WORK_TIME; - private MyReceiver receiver=null; - public static CameraPreview instance = null; - public SurfaceView surfaceView; - private DisplayMetrics mDisplayMetrics; - private static final int FRONT = 1;//前置摄像头标记 - private static final int BACK = 2;//后置摄像头标记 - private int currentCameraType = 2;//当前打开的摄像头标记 - private Button change_camera; - - public CameraPreview() { - mHorizontalTileSize = 16; - mVerticalTileSize = 16; - mAspectRatio = 1.0f; - //设置camera宽,高 - mPrvH = 360; - mPrvW = 360; - isAutoFocus = true; - handler = new Handler( ) { - - public void handleMessage(Message msg) { - if(camera != null) { - camera.autoFocus(null); - } - } - }; - } - -// static { -// System.loadLibrary("ftmjni"); -// } - private ButtonViewTwo buttonView; - boolean running; - boolean pcbatest; - boolean isEgeingMode = false; - private PowerManager powerManager = null; - private WakeLock wakeLock = null; - - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - requestWindowFeature(0x1); - setContentView(R.layout.camera_preview_layout); - instance = this; - bt = (Button)findViewById(R.id.isZoom); - Log.i("AgeingCameraPreview", "platform:" + getString(R.string.project)); - - buttonView = (ButtonViewTwo) findViewById(R.id.btn_set); - buttonView.btn_left.setOnClickListener(this); - buttonView.btn_right.setOnClickListener(this); - buttonView.btn_left.setClickable(false); - change_camera = (Button) findViewById(R.id.change_camera); - change_camera.setOnClickListener(this); - // s09双摄切换 - if (!FTUtils.isS06()) { - change_camera.setVisibility(View.GONE); - } - - init(); - ageingMode(); - } - - - private void init() { - - //preview = (CameraSurfaceView)findViewById(R.id.camera_preview); - surfaceView = (SurfaceView) findViewById(R.id.camera_preview); - //preview.setAspectRatio(mPrvW, mPrvH); - holder = surfaceView.getHolder(); - holder.addCallback(this); - holder.setType(0x3); - - buttonView.setSuccessColor(); - buttonView.btn_left.setClickable(true); - - getCameraIntent(); - if(isEgeingMode) { - powerManager = (PowerManager) this.getSystemService(Service.POWER_SERVICE); - wakeLock = this.powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Lock"); - if(wakeLock != null) { - //是否需计算锁的数量 - wakeLock.setReferenceCounted(false); - //请求屏幕常亮,onResume()方法中执行 - wakeLock.acquire(); - } - - } - - } - - protected Camera.Size getBestPreSize(int surfaceWidth, int surfaceHeight, List preSizeList) { - - int ReqTmpWidth; - int ReqTmpHeight; - // 当屏幕为垂直的时候需要把宽高值进行调换,保证宽大于高 - boolean mIsPortrait=false; - if (mIsPortrait) { - ReqTmpWidth = surfaceHeight; - ReqTmpHeight = surfaceWidth; - } else { - ReqTmpWidth = surfaceWidth; - ReqTmpHeight = surfaceHeight; - } - //先查找preview中是否存在与surfaceview相同宽高的尺寸 - for(Camera.Size size : preSizeList){ - if((size.width == ReqTmpWidth) && (size.height == ReqTmpHeight)){ - return size; - } - } - - // 得到与传入的宽高比最接近的size - float reqRatio = ((float) ReqTmpWidth) / ReqTmpHeight; - float curRatio, deltaRatio; - float deltaRatioMin = Float.MAX_VALUE; - Camera.Size retSize = null; - for (Camera.Size size : preSizeList) { - curRatio = ((float) size.width) / size.height; - deltaRatio = Math.abs(reqRatio - curRatio); - if (deltaRatio < deltaRatioMin) { - deltaRatioMin = deltaRatio; - retSize = size; - } - } - return retSize; - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - } - - /** - * 处理老化模式的状态 - */ - private void ageingMode() { - if(isEgeingMode && SINGLEITEM_OR_CYCLE_MODE == 1) { - // 单项无限循环 - if (WORK_TIME == -1) { - WORK_TIME = 100000000; - } - TIME = WORK_TIME * Constants.SINGLEITEM_TIMES; - ageHandler.postDelayed(runnable, TIME); - sendBraodCaseReceiver(); - } else if (isEgeingMode && SINGLEITEM_OR_CYCLE_MODE == 2) { - TIME = Constants.CYCLE_ONE_ACTIVITY_TIMES; - ageHandler.postDelayed(runnable, TIME); - registerReceiver(); - } else { - sendBraodCaseReceiver(); - } - } - - private void sendBraodCaseReceiver() { - Intent intent = new Intent(); - intent.setAction("com.android.stopTiming"); - sendBroadcast(intent); - } - - private void registerReceiver() { - receiver = new MyReceiver(); - IntentFilter filter = new IntentFilter(); - filter.addAction("com.android.stopActivity"); - CameraPreview.this.registerReceiver(receiver, filter); - } - - private void getCameraIntent() { - Intent intent = getIntent(); - running = false; - pcbatest = false; - if (intent != null) { - try { - running = intent.getBooleanExtra("running", false); - pcbatest = intent.getBooleanExtra("pcbatest",false); - } catch (Exception e) { - e.printStackTrace(); - } - - } - if (intent != null) { - try { - isEgeingMode = intent.getBooleanExtra("ageing_mode", false); - SINGLEITEM_OR_CYCLE_MODE = intent.getIntExtra("singleitem_or_cycle_mode", 0); - WORK_TIME = intent.getIntExtra("work_time", 0); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - protected void onResume() { - super.onResume(); - - - } - - - - @Override - protected void onPause() { - super.onPause(); - - - } - - private int roundUpToTile(int dimension, int tileSize, int maxDimension) { - return Math.min(((((dimension + tileSize) - 0x1) / tileSize) * tileSize), maxDimension); - } - - protected void onDestroy() { - if(camera != null) { - camera.release(); - camera = null; - } - - if(wakeLock != null) { - //取消屏幕常亮,onPause()方法中执行 - wakeLock.release(); - wakeLock = null; - } - - isAutoFocus = false; - stopLoop(null); - - if(ageHandler != null && runnable != null) { - ageHandler.removeCallbacks(runnable); - } - if (receiver != null) { - unregisterReceiver(receiver); - } - - if(handler != null) { - handler.removeCallbacksAndMessages(handler.obtainMessage()); - } - - super.onDestroy(); - } - - public void pullClose(View view) { - if(camera.getParameters().isZoomSupported()) { - camera.getParameters().setZoom(0x0); - } - } - - public void pullFar(View view) { - if(camera.getParameters().isZoomSupported()) { - camera.getParameters().setZoom(camera.getParameters().getMaxZoom()); - } - } - - public void pullLoop(View view) { - isAutoFocus = true; - new CameraPreview.AutoFocus( ).start(); - if(camera.getParameters().isZoomSupported()) { - bt.setText(getString(R.string.isZoom_y)); - bt.setTextColor(Color.GREEN); - bt.setBackgroundColor(0xFFDEAD); - bt.setVisibility(View.VISIBLE); - }else{ - bt.setText(getString(R.string.isZoom_n)); - bt.setBackgroundColor(0xFFDEAD); - bt.setTextColor(Color.RED); - bt.setVisibility(View.VISIBLE); - } - - } - - public void stopLoop(View view) { - isAutoFocus = false; - } - - class AutoFocus extends Thread { - - public void run() { - while(isAutoFocus) { - Log.i("AgeingCameraPreview", "autoFocus"); - try { - handler.sendMessage(handler.obtainMessage()); - sleep(0xbb8); - continue; - } catch(InterruptedException e) { - e.printStackTrace(); - } - } - } - } - - public void surfaceCreated(SurfaceHolder holder) { - Log.e("zhangdi","surfaceCreated"); - try { - ///参数0为主摄像头。不加参数camera可能会为空 -// try { -// camera = Camera.open(0); -// } catch (Exception e) { -// Toast.makeText(CameraPreview.this, "resume_cameraError", Toast.LENGTH_LONG).show(); -// } - camera = Camera.open(0); - if(camera != null) { - Camera.Parameters parameters = camera.getParameters(); - parameters.setPictureFormat(0x100); - parameters.setFlashMode("on"); - List sizes = camera.getParameters().getSupportedPreviewSizes(); - mDisplayMetrics=getResources().getDisplayMetrics(); - Camera.Size bestsize=getBestPreSize(mDisplayMetrics.widthPixels,mDisplayMetrics.heightPixels,sizes); - parameters.setPreviewSize(bestsize.width,bestsize.height); - //parameters.setPictureSize(640,480); - camera.setPreviewDisplay(holder); - setCameraDirection(); - camera.setParameters(parameters); - camera.startPreview(); - } - - } catch(Exception exception) { - exception.printStackTrace(); - String model = Build.MODEL; - if(!model.equals("F6")){ //传奇报错 - Toast.makeText(CameraPreview.this, "cameraError", Toast.LENGTH_LONG).show(); - if(camera != null) { - camera.release(); - camera = null; - } - } - } - } - - public void surfaceDestroyed(SurfaceHolder holder) { - Log.e("zhangdi","surfaceDestroyed"); - if(camera != null) { - camera.stopPreview(); - camera.setPreviewCallback(null); - camera.release(); - camera = null; - } - } - - - public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { - try { - this.holder = holder; - Log.e("zhangdi","surfaceChanged"); - /*Camera.Parameters parameters = camera.getParameters(); - parameters.setPictureFormat(0x100); - parameters.setFlashMode("on"); - List sizes = camera.getParameters().getSupportedPreviewSizes(); - mDisplayMetrics=getResources().getDisplayMetrics(); - Camera.Size bestsize=getBestPreSize(mDisplayMetrics.widthPixels,mDisplayMetrics.heightPixels,sizes); - parameters.setPreviewSize(bestsize.width,bestsize.height); - parameters.setPictureSize(bestsize.width,bestsize.height); - Log.e("zhangdi","w:"+w+",h:"+h+",bestsize.width:"+bestsize.width+",bestsize.height:"+bestsize.height); -// parameters.setPreviewSize(w, h); - camera.setParameters(parameters);*/ - -// camera.startPreview(); -// return; - } catch(Exception localException1) { - } - } - - @Override - public void onClick(View arg0) { - Intent intent = Config.getNextTestIntent(this,this.getClass());//new Intent(this, WifiTestActiviy.class); - intent.putExtra("running", true); - intent.putExtra("pcbatest",pcbatest); - Intent intent1 = new Intent(this, TestMainActivity.class); - // TestResult testResult = (TestResult) getApplicationContext(); - switch (arg0.getId()) { - - case R.id.btn_two_left: - //如果当前是老化模式 - if(isEgeingMode) { - Intent ageingIntent = new Intent(this,AgeingModeActivity.class); - startActivity(ageingIntent); - PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("ageing_camera", "true") - .commit(); - } else { - if (!running) { - startActivity(intent1); - } else { - startActivity(intent); - } - PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("camera", "true") - .commit(); - } - if(camera != null) { - camera.release(); - camera = null; - } - finish(); - break; - case R.id.btn_two_right: - if(isEgeingMode) { - Intent ageingIntent = new Intent(this,AgeingModeActivity.class); - startActivity(ageingIntent); - PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("ageing_camera", "false") - .commit(); - } else { - if (!running) { - startActivity(intent1); - } else { - startActivity(intent); - } - PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("camera", "false") - .commit(); - } - if(camera != null) { - camera.release(); - camera = null; - } - finish(); - break; - case R.id.change_camera: - try { - changeCamera(); - } catch (IOException e) { - e.printStackTrace(); - } - break; - } - - } - - Handler ageHandler = new Handler(); - Runnable runnable = new Runnable() { - - @Override - public void run() { - // handler自带方法实现定时器 - try { -// handler.postDelayed(this, TIME); - System.out.println("do..."); - if(SINGLEITEM_OR_CYCLE_MODE == 2) { - Intent ageingIntent = new Intent(CameraPreview.this,MikeTest.class); - ageingIntent.putExtra("ageing_mode", true); - ageingIntent.putExtra("singleitem_or_cycle_mode", SINGLEITEM_OR_CYCLE_MODE); - ageingIntent.putExtra("work_time", WORK_TIME); - ageingIntent.putExtra("first_start_service", false); - startActivity(ageingIntent); - } - } catch (Exception e) { - e.printStackTrace(); - System.out.println("exception..."); - } - } - }; - - /** - * 获取广播数据 - * - */ - public class MyReceiver extends BroadcastReceiver { - @Override - public void onReceive(Context arg0, Intent arg1) { - CameraPreview.this.finish(); - } - } - - private void setCameraDirection() { - android.hardware.Camera.CameraInfo info = new android.hardware.Camera.CameraInfo(); - android.hardware.Camera.getCameraInfo(0, info); - WindowManager mWindowManager = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE); - int rotation = mWindowManager.getDefaultDisplay().getRotation(); - int degrees = 0; - switch (rotation) { - case Surface.ROTATION_0: - degrees = 0; - break; - case Surface.ROTATION_90: - degrees = 90; - break; - case Surface.ROTATION_180: - degrees = 180; - break; - case Surface.ROTATION_270: - degrees = 270; - break; - } - - int result; - if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { - result = (info.orientation + degrees) % 360; - result = (360 - result) % 360; // compensate the mirror - } else { // back-facing - result = (info.orientation - degrees + 360) % 360; - } - Log.i("dxc", "result " + result); - camera.setDisplayOrientation(result); - } - - @SuppressLint("NewApi") - private Camera openCamera(int type){ - int frontIndex =-1; - int backIndex = -1; - int cameraCount = Camera.getNumberOfCameras(); - Camera.CameraInfo info = new Camera.CameraInfo(); - for(int cameraIndex = 0; cameraIndex preSizeList) { + + int ReqTmpWidth; + int ReqTmpHeight; + // 当屏幕为垂直的时候需要把宽高值进行调换,保证宽大于高 + boolean mIsPortrait=false; + if (mIsPortrait) { + ReqTmpWidth = surfaceHeight; + ReqTmpHeight = surfaceWidth; + } else { + ReqTmpWidth = surfaceWidth; + ReqTmpHeight = surfaceHeight; + } + //先查找preview中是否存在与surfaceview相同宽高的尺寸 + for(Camera.Size size : preSizeList){ + if((size.width == ReqTmpWidth) && (size.height == ReqTmpHeight)){ + return size; + } + } + + // 得到与传入的宽高比最接近的size + float reqRatio = ((float) ReqTmpWidth) / ReqTmpHeight; + float curRatio, deltaRatio; + float deltaRatioMin = Float.MAX_VALUE; + Camera.Size retSize = null; + for (Camera.Size size : preSizeList) { + curRatio = ((float) size.width) / size.height; + deltaRatio = Math.abs(reqRatio - curRatio); + if (deltaRatio < deltaRatioMin) { + deltaRatioMin = deltaRatio; + retSize = size; + } + } + return retSize; + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } + + /** + * 处理老化模式的状态 + */ + private void ageingMode() { + if(isEgeingMode && SINGLEITEM_OR_CYCLE_MODE == 1) { + // 单项无限循环 + if (WORK_TIME == -1) { + WORK_TIME = 100000000; + } + TIME = WORK_TIME * Constants.SINGLEITEM_TIMES; + ageHandler.postDelayed(runnable, TIME); + sendBraodCaseReceiver(); + } else if (isEgeingMode && SINGLEITEM_OR_CYCLE_MODE == 2) { + TIME = Constants.CYCLE_ONE_ACTIVITY_TIMES; + ageHandler.postDelayed(runnable, TIME); + registerReceiver(); + } else { + sendBraodCaseReceiver(); + } + } + + private void sendBraodCaseReceiver() { + Intent intent = new Intent(); + intent.setAction("com.android.stopTiming"); + sendBroadcast(intent); + } + + private void registerReceiver() { + receiver = new MyReceiver(); + IntentFilter filter = new IntentFilter(); + filter.addAction("com.android.stopActivity"); + CameraPreview.this.registerReceiver(receiver, filter); + } + + private void getCameraIntent() { + Intent intent = getIntent(); + running = false; + pcbatest = false; + if (intent != null) { + try { + running = intent.getBooleanExtra("running", false); + pcbatest = intent.getBooleanExtra("pcbatest",false); + } catch (Exception e) { + e.printStackTrace(); + } + + } + if (intent != null) { + try { + isEgeingMode = intent.getBooleanExtra("ageing_mode", false); + SINGLEITEM_OR_CYCLE_MODE = intent.getIntExtra("singleitem_or_cycle_mode", 0); + WORK_TIME = intent.getIntExtra("work_time", 0); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + protected void onResume() { + super.onResume(); + + + } + + + + @Override + protected void onPause() { + super.onPause(); + + + } + + private int roundUpToTile(int dimension, int tileSize, int maxDimension) { + return Math.min(((((dimension + tileSize) - 0x1) / tileSize) * tileSize), maxDimension); + } + + protected void onDestroy() { + if(camera != null) { + camera.release(); + camera = null; + } + + if(wakeLock != null) { + //取消屏幕常亮,onPause()方法中执行 + wakeLock.release(); + wakeLock = null; + } + + isAutoFocus = false; + stopLoop(null); + + if(ageHandler != null && runnable != null) { + ageHandler.removeCallbacks(runnable); + } + if (receiver != null) { + unregisterReceiver(receiver); + } + + if(handler != null) { + handler.removeCallbacksAndMessages(handler.obtainMessage()); + } + + super.onDestroy(); + } + + public void pullClose(View view) { + if(camera.getParameters().isZoomSupported()) { + camera.getParameters().setZoom(0x0); + } + } + + public void pullFar(View view) { + if(camera.getParameters().isZoomSupported()) { + camera.getParameters().setZoom(camera.getParameters().getMaxZoom()); + } + } + + public void pullLoop(View view) { + isAutoFocus = true; + new CameraPreview.AutoFocus( ).start(); + if(camera.getParameters().isZoomSupported()) { + bt.setText(getString(R.string.isZoom_y)); + bt.setTextColor(Color.GREEN); + bt.setBackgroundColor(0xFFDEAD); + bt.setVisibility(View.VISIBLE); + }else{ + bt.setText(getString(R.string.isZoom_n)); + bt.setBackgroundColor(0xFFDEAD); + bt.setTextColor(Color.RED); + bt.setVisibility(View.VISIBLE); + } + + } + + public void stopLoop(View view) { + isAutoFocus = false; + } + + class AutoFocus extends Thread { + + public void run() { + while(isAutoFocus) { + Log.i("AgeingCameraPreview", "autoFocus"); + try { + handler.sendMessage(handler.obtainMessage()); + sleep(0xbb8); + continue; + } catch(InterruptedException e) { + e.printStackTrace(); + } + } + } + } + + public void surfaceCreated(SurfaceHolder holder) { + Log.e("zhangdi","surfaceCreated"); + try { + ///参数0为主摄像头。不加参数camera可能会为空 +// try { +// camera = Camera.open(0); +// } catch (Exception e) { +// Toast.makeText(CameraPreview.this, "resume_cameraError", Toast.LENGTH_LONG).show(); +// } + camera = Camera.open(0); + if(camera != null) { + Camera.Parameters parameters = camera.getParameters(); + parameters.setPictureFormat(0x100); + parameters.setFlashMode("on"); + List sizes = camera.getParameters().getSupportedPreviewSizes(); + mDisplayMetrics=getResources().getDisplayMetrics(); + Camera.Size bestsize=getBestPreSize(mDisplayMetrics.widthPixels,mDisplayMetrics.heightPixels,sizes); + parameters.setPreviewSize(bestsize.width,bestsize.height); + //parameters.setPictureSize(640,480); + camera.setPreviewDisplay(holder); + setCameraDirection(); + camera.setParameters(parameters); + camera.startPreview(); + } + + } catch(Exception exception) { + exception.printStackTrace(); + String model = Build.MODEL; + if(!model.equals("F6")){ //传奇报错 + Toast.makeText(CameraPreview.this, "cameraError", Toast.LENGTH_LONG).show(); + if(camera != null) { + camera.release(); + camera = null; + } + } + } + } + + public void surfaceDestroyed(SurfaceHolder holder) { + Log.e("zhangdi","surfaceDestroyed"); + if(camera != null) { + camera.stopPreview(); + camera.setPreviewCallback(null); + camera.release(); + camera = null; + } + } + + + public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { + try { + this.holder = holder; + Log.e("zhangdi","surfaceChanged"); + /*Camera.Parameters parameters = camera.getParameters(); + parameters.setPictureFormat(0x100); + parameters.setFlashMode("on"); + List sizes = camera.getParameters().getSupportedPreviewSizes(); + mDisplayMetrics=getResources().getDisplayMetrics(); + Camera.Size bestsize=getBestPreSize(mDisplayMetrics.widthPixels,mDisplayMetrics.heightPixels,sizes); + parameters.setPreviewSize(bestsize.width,bestsize.height); + parameters.setPictureSize(bestsize.width,bestsize.height); + Log.e("zhangdi","w:"+w+",h:"+h+",bestsize.width:"+bestsize.width+",bestsize.height:"+bestsize.height); +// parameters.setPreviewSize(w, h); + camera.setParameters(parameters);*/ + +// camera.startPreview(); +// return; + } catch(Exception localException1) { + } + } + + @Override + public void onClick(View arg0) { + Intent intent = Config.getNextTestIntent(this,this.getClass());//new Intent(this, WifiTestActiviy.class); + intent.putExtra("running", true); + intent.putExtra("pcbatest",pcbatest); + Intent intent1 = new Intent(this, TestMainActivity.class); + // TestResult testResult = (TestResult) getApplicationContext(); + switch (arg0.getId()) { + + case R.id.btn_two_left: + //如果当前是老化模式 + if(isEgeingMode) { + Intent ageingIntent = new Intent(this,AgeingModeActivity.class); + startActivity(ageingIntent); + PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("ageing_camera", "true") + .commit(); + } else { + if (!running) { + startActivity(intent1); + } else { + startActivity(intent); + } + PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("camera", "true") + .commit(); + } + if(camera != null) { + camera.release(); + camera = null; + } + finish(); + break; + case R.id.btn_two_right: + if(isEgeingMode) { + Intent ageingIntent = new Intent(this,AgeingModeActivity.class); + startActivity(ageingIntent); + PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("ageing_camera", "false") + .commit(); + } else { + if (!running) { + startActivity(intent1); + } else { + startActivity(intent); + } + PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("camera", "false") + .commit(); + } + if(camera != null) { + camera.release(); + camera = null; + } + finish(); + break; + case R.id.change_camera: + try { + changeCamera(); + } catch (IOException e) { + e.printStackTrace(); + } + break; + } + + } + + Handler ageHandler = new Handler(); + Runnable runnable = new Runnable() { + + @Override + public void run() { + // handler自带方法实现定时器 + try { +// handler.postDelayed(this, TIME); + System.out.println("do..."); + if(SINGLEITEM_OR_CYCLE_MODE == 2) { + Intent ageingIntent = new Intent(CameraPreview.this,MikeTest.class); + ageingIntent.putExtra("ageing_mode", true); + ageingIntent.putExtra("singleitem_or_cycle_mode", SINGLEITEM_OR_CYCLE_MODE); + ageingIntent.putExtra("work_time", WORK_TIME); + ageingIntent.putExtra("first_start_service", false); + startActivity(ageingIntent); + } + } catch (Exception e) { + e.printStackTrace(); + System.out.println("exception..."); + } + } + }; + + /** + * 获取广播数据 + * + */ + public class MyReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context arg0, Intent arg1) { + CameraPreview.this.finish(); + } + } + + private void setCameraDirection() { + android.hardware.Camera.CameraInfo info = new android.hardware.Camera.CameraInfo(); + android.hardware.Camera.getCameraInfo(0, info); + WindowManager mWindowManager = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE); + int rotation = mWindowManager.getDefaultDisplay().getRotation(); + int degrees = 0; + switch (rotation) { + case Surface.ROTATION_0: + degrees = 0; + break; + case Surface.ROTATION_90: + degrees = 90; + break; + case Surface.ROTATION_180: + degrees = 180; + break; + case Surface.ROTATION_270: + degrees = 270; + break; + } + + int result; + if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { + result = (info.orientation + degrees) % 360; + result = (360 - result) % 360; // compensate the mirror + } else { // back-facing + result = (info.orientation - degrees + 360) % 360; + } + Log.i("dxc", "result " + result); + camera.setDisplayOrientation(result); + } + + @SuppressLint("NewApi") + private Camera openCamera(int type){ + int frontIndex =-1; + int backIndex = -1; + int cameraCount = Camera.getNumberOfCameras(); + Camera.CameraInfo info = new Camera.CameraInfo(); + for(int cameraIndex = 0; cameraIndex0) { - // if (ICJniUtils.isPPGStarted()==0){ + Log.i("dxc", "Heart Rate PPG_EGC_TYPE_IC66 opened ret :: " + ret); + + }else { + 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(""); + // } + } else { + tv_isweared.setText(" " + HeartRate.this.getResources().getString(R.string.no_heartrate)); + tv_ppg.setText(""); + } } } } @@ -120,18 +130,24 @@ public class HeartRate extends BaseActivity implements View.OnClickListener, Sen @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; + if(FTUtils.isV20()){ + mSensorManager.unregisterListener(this); + Log.i("dxc", "Heart Rate PPG_EGC_TYPE_IC66 closed"); + }else { + 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(); } - ICJniUtils.disablePPG(); } } diff --git a/app/src/main/java/mobile/miki/KeysTestActivity.java b/app/src/main/java/mobile/miki/KeysTestActivity.java index 667f6ee..d88cdaa 100644 --- a/app/src/main/java/mobile/miki/KeysTestActivity.java +++ b/app/src/main/java/mobile/miki/KeysTestActivity.java @@ -1,363 +1,363 @@ -/** - * Generated by smali2java 1.0.0.558 - * Copyright (C) 2013 Hensence.com - */ - -package mobile.miki; - -import android.app.KeyguardManager; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.os.Bundle; -import android.os.PowerManager; -import android.preference.PreferenceManager; -import android.util.Log; -import android.view.Display; -import android.view.KeyEvent; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.TextView; -import android.widget.Toast; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; - -import cn.davidsu.library.LineWrapContainer; -import mobile.miki.mainui.ButtonViewTwo; -import mobile.miki.mainui.TestMainActivity; -import mobile.miki.mainui.TestMainList; -import mobile.miki.util.Config; -import mobile.miki.util.FTUtils; - -public class KeysTestActivity extends BaseActivity implements - android.view.View.OnClickListener { -/* - public static final String AUTO_KEYS_TEST = "mobile.miki.KeysTestActivity"; - public static final String KEY_CODE = "keyCode"; - public static final String NEED_BTN_TAG = "needBtn"; - private String TAG; -*/ - BroadcastReceiver broadcastReceiver; - private boolean isTesting; - private BroadcastReceiver mBroadcastReceiver; - private KeyguardManager.KeyguardLock mKeyguardLock; - private KeyguardManager mKeyguardManager; - private KeysTestActivity.ScreenOnOffReceiver screenOnOffReceiver; - private PowerManager.WakeLock wakeLock; - boolean running; - private ButtonViewTwo buttonView; -/* - private TextView value_KEYCODE_YEN; - private TextView home1; - private TextView home2; - private TableRow TableRow1; - private TableRow TableRow2; - private TableRow TableRow3; - private TextView tv_name2; - - private boolean key1Pass = false; - private boolean key2Pass = false; -*/ - private LineWrapContainer lwc; - private ArrayList mKeyMapList = new ArrayList(); - - // G9 的左右按键 -// private static final int KEYCODE_CUSTOM_LEFT = 498; -// private static final int KEYCODE_CUSTOM_RIGHT = 499; - private static final int KEYCODE_CUSTOM_LEFT = KeyEvent.KEYCODE_POWER; - private static final int KEYCODE_CUSTOM_RIGHT = KeyEvent.KEYCODE_VOLUME_DOWN; - - private Key[] keyMapsDefault = {new Key(KeyEvent.KEYCODE_POWER, "Power")}; - private Key[] keyMapsSUGAR = {new Key(KEYCODE_CUSTOM_LEFT, "Left") - , new Key(KEYCODE_CUSTOM_RIGHT, "Right")}; - private Key[] keyMapsLieBao = {new Key(KeyEvent.KEYCODE_POWER, "Power") - , new Key(KeyEvent.KEYCODE_YEN, "Key 1")}; - private Key[] keyMapsQ3F = {new Key(KeyEvent.KEYCODE_POWER, "Power") - , new Key(KeyEvent.KEYCODE_BACK, "Back")}; - - public KeysTestActivity() { - // TAG = "KeysTestActivity"; - mKeyguardManager = null; - mKeyguardLock = null; - isTesting = true; - broadcastReceiver = new BroadcastReceiver() { - public void onReceive(Context context, Intent intent) { - int keyCode = intent.getExtras().getInt("keyCode"); - } - }; - mBroadcastReceiver = new BroadcastReceiver() { - - public void onReceive(Context context, Intent intent) { - String action = intent.getAction(); - if ("android.intent.action.CLOSE_SYSTEM_DIALOGS".equals(action)) { - String reason = intent.getStringExtra("reason"); - if ("homekey".equals(reason)) { - if (isTesting) { - isTesting = false; - } - } - } - } - }; - } - - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.keys_test_layout); - Display myDisplay = getWindowManager().getDefaultDisplay(); - MyApplication.getInstance().addActivity(this); - initView(); - Intent intent = getIntent(); - running = false; - if (intent != null) { - running = intent.getBooleanExtra("running", false); - } - mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); - screenOnOffReceiver = new ScreenOnOffReceiver(); - IntentFilter intentFilter = new IntentFilter(); - intentFilter.addAction("android.intent.action.SCREEN_ON"); - intentFilter.addAction("android.intent.action.SCREEN_OFF"); - registerReceiver(screenOnOffReceiver, intentFilter); - buttonView = (ButtonViewTwo) findViewById(R.id.btn_set); - buttonView.btn_left.setOnClickListener(this); - buttonView.btn_right.setOnClickListener(this); - buttonView.btn_left.setClickable(false); - isTesting = true; - - if (FTUtils.isLieBao()) { - mKeyMapList.addAll(Arrays.asList(keyMapsLieBao)); - } else if (FTUtils.isSugar()) { - mKeyMapList.addAll(Arrays.asList(keyMapsSUGAR)); - } else if (FTUtils.isQ3F()) { - mKeyMapList.addAll(Arrays.asList(keyMapsQ3F)); - } else { - mKeyMapList.addAll(Arrays.asList(keyMapsDefault)); - } - - updateKeyMapView(); - } - - private void initView() { -/* - value_KEYCODE_YEN = (TextView) findViewById(R.id.tv_value); - home1 = (TextView) findViewById(R.id.tv_value2); - home2 = (TextView) findViewById(R.id.tv_value3); - - TableRow1 = (TableRow) findViewById(R.id.tl_1); - TableRow2 = (TableRow) findViewById(R.id.tl_2); - TableRow3 = (TableRow) findViewById(R.id.tl_3); - tv_name2 = (TextView) findViewById(R.id.tv_name2); - if (FTUtils.isLieBao()) { - tv_name2.setText(R.string.keyPower); - TableRow3.setVisibility(View.GONE); - } else if (FTUtils.isSugar()) { - TableRow1.setVisibility(View.GONE); - } -*/ - lwc = (LineWrapContainer) findViewById(R.id.view_lwc); - // s06 hall开关 - if (FTUtils.isS06()) { - lwc.setVisibility(View.GONE); - Toast.makeText(this, "霍尔开关测试", Toast.LENGTH_LONG).show(); - } - } - - - protected void onResume() { - super.onResume(); - IntentFilter intentFilter = new IntentFilter( - "mobile.miki.KeysTestActivity"); - registerReceiver(broadcastReceiver, intentFilter); - IntentFilter mBroadcastIntentFilter = new IntentFilter( - "android.intent.action.CLOSE_SYSTEM_DIALOGS"); - registerReceiver(mBroadcastReceiver, mBroadcastIntentFilter); - } - - @Override - public boolean onKeyDown(int keyCode, KeyEvent event) { - Log.e("dxc", " onKeyDown keyCode:" + keyCode); - if (FTUtils.isS06() && keyCode == KeyEvent.KEYCODE_BACK) { - pass(); - return true; - } -/* - switch (keyCode) { - case KeyEvent.KEYCODE_YEN: - value_KEYCODE_YEN.setText(R.string.pass_test); - key1Pass = true; - if (key1Pass && key2Pass) { - pass(); - } - return true; -*/ - if (removeKey(keyCode)) { - updateKeyMapView(); - return true; - } - - return super.onKeyDown(keyCode, event); - } - - - public void onAttachedToWindow() { - super.onAttachedToWindow(); - } - - class ScreenOnOffReceiver extends BroadcastReceiver { - - public void onReceive(Context context, Intent intent) { - if ("android.intent.action.SCREEN_ON".equals(intent.getAction())) { - return; - } - if ("android.intent.action.SCREEN_OFF".equals(intent.getAction())) { - KeysTestActivity.this.mKeyguardLock = KeysTestActivity.this.mKeyguardManager - .newKeyguardLock(""); - // KeysTestActivity.this.mKeyguardLock.disableKeyguard(); - KeysTestActivity.this.wakeLock = ((PowerManager) context - .getSystemService(Context.POWER_SERVICE)).newWakeLock( - PowerManager.ACQUIRE_CAUSES_WAKEUP - | PowerManager.SCREEN_DIM_WAKE_LOCK, "mobile.miki:Tag"); - KeysTestActivity.this.wakeLock.acquire(); -/* - if (home1.getText().toString().equals(getString(R.string.pass_test))) { - key1Pass = true; - home2.setText(R.string.pass_test); - } - home1.setText(R.string.pass_test); - key2Pass = true; - if (key1Pass && key2Pass && (FTUtils.isSugar() || FTUtils.isLieBao())) { - pass(); - } else if (!(FTUtils.isSugar() || FTUtils.isLieBao())) { - pass(); - } -*/ - - if (removeKey(KeyEvent.KEYCODE_POWER)) { - updateKeyMapView(); - } - } - } - } - - protected void onDestroy() { - if (mKeyguardLock != null) { - wakeLock.acquire(); - } - isTesting = false; - unregisterReceiver(screenOnOffReceiver); - unregisterReceiver(broadcastReceiver); - unregisterReceiver(mBroadcastReceiver); - super.onDestroy(); - } - - public void onReturnBtnClicked(View view) { - if (running) { - Intent intent = new Intent(this, TestMainList.class); - startActivity(intent); - finish(); - } else { - isTesting = false; - try { - Runtime.getRuntime().exec("logcat -c"); - } catch (IOException e) { - e.printStackTrace(); - } - finish(); - } - - } - - - @Override - public void onClick(View arg0) { - - Intent intent = Config.getNextTestIntent(this,this.getClass());//new Intent(this, TestMainActivity.class); -// if (FTUtils.isSugar()) { -// intent = new Intent(this, BlooToothActivity.class); -// } - intent.putExtra("running", true); - Intent intent1 = new Intent(this, TestMainActivity.class); - // TestResult testResult = (TestResult) getApplicationContext(); - switch (arg0.getId()) { - - case R.id.btn_two_left: - if (!running) { - startActivity(intent1); - } else { - startActivity(intent); - } - PreferenceManager - .getDefaultSharedPreferences(getApplicationContext()) - .edit().putString("keys", "true").commit(); - finish(); - break; - case R.id.btn_two_right: - if (!running) { - startActivity(intent1); - } else { - startActivity(intent); - } - PreferenceManager - .getDefaultSharedPreferences(getApplicationContext()) - .edit().putString("keys", "false").commit(); - finish(); - break; - } - } - - private void pass() { - buttonView.setSuccessColor(); - if (running) { - Intent intent = Config.getNextTestIntent(this,this.getClass());//new Intent(this, TestMainActivity.class); - intent.putExtra("running", true); - startActivity(intent); - PreferenceManager - .getDefaultSharedPreferences(getApplicationContext()) - .edit().putString("keys", "true").commit(); - finish(); - } else { - buttonView.btn_left.setClickable(true); - } - } - - private boolean removeKey(int keyCode) { - boolean found = false; - for (Key key : mKeyMapList) { - if (key.code == keyCode) { - mKeyMapList.remove(key); - found = true; - break; - } - } - - return found; - } - - private void updateKeyMapView() { - LayoutInflater inflater = LayoutInflater.from(this); - lwc.removeAllViews(); - - for (Key key : mKeyMapList) { - TextView item = (TextView) inflater.inflate(R.layout.keys_test_item, lwc, false); - item.setText(key.name); - lwc.addView(item); - } - - if (mKeyMapList.size() == 0) { - pass(); - } - } - - class Key { - int code; - String name; - - Key(int code, String name) { - this.code = code; - this.name = name; - } - } -} +/** + * Generated by smali2java 1.0.0.558 + * Copyright (C) 2013 Hensence.com + */ + +package mobile.miki; + +import android.app.KeyguardManager; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.Bundle; +import android.os.PowerManager; +import android.preference.PreferenceManager; +import android.util.Log; +import android.view.Display; +import android.view.KeyEvent; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.TextView; +import android.widget.Toast; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; + +import cn.davidsu.library.LineWrapContainer; +import mobile.miki.mainui.ButtonViewTwo; +import mobile.miki.mainui.TestMainActivity; +import mobile.miki.mainui.TestMainList; +import mobile.miki.util.Config; +import mobile.miki.util.FTUtils; + +public class KeysTestActivity extends BaseActivity implements + android.view.View.OnClickListener { +/* + public static final String AUTO_KEYS_TEST = "mobile.miki.KeysTestActivity"; + public static final String KEY_CODE = "keyCode"; + public static final String NEED_BTN_TAG = "needBtn"; + private String TAG; +*/ + BroadcastReceiver broadcastReceiver; + private boolean isTesting; + private BroadcastReceiver mBroadcastReceiver; + private KeyguardManager.KeyguardLock mKeyguardLock; + private KeyguardManager mKeyguardManager; + private KeysTestActivity.ScreenOnOffReceiver screenOnOffReceiver; + private PowerManager.WakeLock wakeLock; + boolean running; + private ButtonViewTwo buttonView; +/* + private TextView value_KEYCODE_YEN; + private TextView home1; + private TextView home2; + private TableRow TableRow1; + private TableRow TableRow2; + private TableRow TableRow3; + private TextView tv_name2; + + private boolean key1Pass = false; + private boolean key2Pass = false; +*/ + private LineWrapContainer lwc; + private ArrayList mKeyMapList = new ArrayList(); + + // G9 的左右按键 +// private static final int KEYCODE_CUSTOM_LEFT = 498; +// private static final int KEYCODE_CUSTOM_RIGHT = 499; + private static final int KEYCODE_CUSTOM_LEFT = KeyEvent.KEYCODE_POWER; + private static final int KEYCODE_CUSTOM_RIGHT = KeyEvent.KEYCODE_VOLUME_DOWN; + + private Key[] keyMapsDefault = {new Key(KeyEvent.KEYCODE_POWER, "Power")}; + private Key[] keyMapsSUGAR = {new Key(KEYCODE_CUSTOM_LEFT, "Left") + , new Key(KEYCODE_CUSTOM_RIGHT, "Right")}; + private Key[] keyMapsLieBao = {new Key(KeyEvent.KEYCODE_POWER, "Power") + , new Key(KeyEvent.KEYCODE_YEN, "Key 1")}; + private Key[] keyMapsQ3F = {new Key(KeyEvent.KEYCODE_POWER, "Power") + , new Key(KeyEvent.KEYCODE_BACK, "Back")}; + + public KeysTestActivity() { + // TAG = "KeysTestActivity"; + mKeyguardManager = null; + mKeyguardLock = null; + isTesting = true; + broadcastReceiver = new BroadcastReceiver() { + public void onReceive(Context context, Intent intent) { + int keyCode = intent.getExtras().getInt("keyCode"); + } + }; + mBroadcastReceiver = new BroadcastReceiver() { + + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + if ("android.intent.action.CLOSE_SYSTEM_DIALOGS".equals(action)) { + String reason = intent.getStringExtra("reason"); + if ("homekey".equals(reason)) { + if (isTesting) { + isTesting = false; + } + } + } + } + }; + } + + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.keys_test_layout); + Display myDisplay = getWindowManager().getDefaultDisplay(); + MyApplication.getInstance().addActivity(this); + initView(); + Intent intent = getIntent(); + running = false; + if (intent != null) { + running = intent.getBooleanExtra("running", false); + } + mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); + screenOnOffReceiver = new ScreenOnOffReceiver(); + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction("android.intent.action.SCREEN_ON"); + intentFilter.addAction("android.intent.action.SCREEN_OFF"); + registerReceiver(screenOnOffReceiver, intentFilter); + buttonView = (ButtonViewTwo) findViewById(R.id.btn_set); + buttonView.btn_left.setOnClickListener(this); + buttonView.btn_right.setOnClickListener(this); + buttonView.btn_left.setClickable(false); + isTesting = true; + + if (FTUtils.isLieBao()) { + mKeyMapList.addAll(Arrays.asList(keyMapsLieBao)); + } else if (FTUtils.isSugar()) { + mKeyMapList.addAll(Arrays.asList(keyMapsSUGAR)); + } else if (FTUtils.isQ3F()||FTUtils.isV20()) { + mKeyMapList.addAll(Arrays.asList(keyMapsQ3F)); + } else { + mKeyMapList.addAll(Arrays.asList(keyMapsDefault)); + } + + updateKeyMapView(); + } + + private void initView() { +/* + value_KEYCODE_YEN = (TextView) findViewById(R.id.tv_value); + home1 = (TextView) findViewById(R.id.tv_value2); + home2 = (TextView) findViewById(R.id.tv_value3); + + TableRow1 = (TableRow) findViewById(R.id.tl_1); + TableRow2 = (TableRow) findViewById(R.id.tl_2); + TableRow3 = (TableRow) findViewById(R.id.tl_3); + tv_name2 = (TextView) findViewById(R.id.tv_name2); + if (FTUtils.isLieBao()) { + tv_name2.setText(R.string.keyPower); + TableRow3.setVisibility(View.GONE); + } else if (FTUtils.isSugar()) { + TableRow1.setVisibility(View.GONE); + } +*/ + lwc = (LineWrapContainer) findViewById(R.id.view_lwc); + // s06 hall开关 + if (FTUtils.isS06()) { + lwc.setVisibility(View.GONE); + Toast.makeText(this, "霍尔开关测试", Toast.LENGTH_LONG).show(); + } + } + + + protected void onResume() { + super.onResume(); + IntentFilter intentFilter = new IntentFilter( + "mobile.miki.KeysTestActivity"); + registerReceiver(broadcastReceiver, intentFilter); + IntentFilter mBroadcastIntentFilter = new IntentFilter( + "android.intent.action.CLOSE_SYSTEM_DIALOGS"); + registerReceiver(mBroadcastReceiver, mBroadcastIntentFilter); + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + Log.e("dxc", " onKeyDown keyCode:" + keyCode); + if (FTUtils.isS06() && keyCode == KeyEvent.KEYCODE_BACK) { + pass(); + return true; + } +/* + switch (keyCode) { + case KeyEvent.KEYCODE_YEN: + value_KEYCODE_YEN.setText(R.string.pass_test); + key1Pass = true; + if (key1Pass && key2Pass) { + pass(); + } + return true; +*/ + if (removeKey(keyCode)) { + updateKeyMapView(); + return true; + } + + return super.onKeyDown(keyCode, event); + } + + + public void onAttachedToWindow() { + super.onAttachedToWindow(); + } + + class ScreenOnOffReceiver extends BroadcastReceiver { + + public void onReceive(Context context, Intent intent) { + if ("android.intent.action.SCREEN_ON".equals(intent.getAction())) { + return; + } + if ("android.intent.action.SCREEN_OFF".equals(intent.getAction())) { + KeysTestActivity.this.mKeyguardLock = KeysTestActivity.this.mKeyguardManager + .newKeyguardLock(""); + // KeysTestActivity.this.mKeyguardLock.disableKeyguard(); + KeysTestActivity.this.wakeLock = ((PowerManager) context + .getSystemService(Context.POWER_SERVICE)).newWakeLock( + PowerManager.ACQUIRE_CAUSES_WAKEUP + | PowerManager.SCREEN_DIM_WAKE_LOCK, "mobile.miki:Tag"); + KeysTestActivity.this.wakeLock.acquire(); +/* + if (home1.getText().toString().equals(getString(R.string.pass_test))) { + key1Pass = true; + home2.setText(R.string.pass_test); + } + home1.setText(R.string.pass_test); + key2Pass = true; + if (key1Pass && key2Pass && (FTUtils.isSugar() || FTUtils.isLieBao())) { + pass(); + } else if (!(FTUtils.isSugar() || FTUtils.isLieBao())) { + pass(); + } +*/ + + if (removeKey(KeyEvent.KEYCODE_POWER)) { + updateKeyMapView(); + } + } + } + } + + protected void onDestroy() { + if (mKeyguardLock != null) { + wakeLock.acquire(); + } + isTesting = false; + unregisterReceiver(screenOnOffReceiver); + unregisterReceiver(broadcastReceiver); + unregisterReceiver(mBroadcastReceiver); + super.onDestroy(); + } + + public void onReturnBtnClicked(View view) { + if (running) { + Intent intent = new Intent(this, TestMainList.class); + startActivity(intent); + finish(); + } else { + isTesting = false; + try { + Runtime.getRuntime().exec("logcat -c"); + } catch (IOException e) { + e.printStackTrace(); + } + finish(); + } + + } + + + @Override + public void onClick(View arg0) { + + Intent intent = Config.getNextTestIntent(this,this.getClass());//new Intent(this, TestMainActivity.class); +// if (FTUtils.isSugar()) { +// intent = new Intent(this, BlooToothActivity.class); +// } + intent.putExtra("running", true); + Intent intent1 = new Intent(this, TestMainActivity.class); + // TestResult testResult = (TestResult) getApplicationContext(); + switch (arg0.getId()) { + + case R.id.btn_two_left: + if (!running) { + startActivity(intent1); + } else { + startActivity(intent); + } + PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()) + .edit().putString("keys", "true").commit(); + finish(); + break; + case R.id.btn_two_right: + if (!running) { + startActivity(intent1); + } else { + startActivity(intent); + } + PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()) + .edit().putString("keys", "false").commit(); + finish(); + break; + } + } + + private void pass() { + buttonView.setSuccessColor(); + if (running) { + Intent intent = Config.getNextTestIntent(this,this.getClass());//new Intent(this, TestMainActivity.class); + intent.putExtra("running", true); + startActivity(intent); + PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()) + .edit().putString("keys", "true").commit(); + finish(); + } else { + buttonView.btn_left.setClickable(true); + } + } + + private boolean removeKey(int keyCode) { + boolean found = false; + for (Key key : mKeyMapList) { + if (key.code == keyCode) { + mKeyMapList.remove(key); + found = true; + break; + } + } + + return found; + } + + private void updateKeyMapView() { + LayoutInflater inflater = LayoutInflater.from(this); + lwc.removeAllViews(); + + for (Key key : mKeyMapList) { + TextView item = (TextView) inflater.inflate(R.layout.keys_test_item, lwc, false); + item.setText(key.name); + lwc.addView(item); + } + + if (mKeyMapList.size() == 0) { + pass(); + } + } + + class Key { + int code; + String name; + + Key(int code, String name) { + this.code = code; + this.name = name; + } + } +} diff --git a/app/src/main/java/mobile/miki/PressureActivity.java b/app/src/main/java/mobile/miki/PressureActivity.java new file mode 100644 index 0000000..982656b --- /dev/null +++ b/app/src/main/java/mobile/miki/PressureActivity.java @@ -0,0 +1,168 @@ +package mobile.miki; + +import android.app.Service; +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.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 PressureActivity extends BaseActivity implements View.OnClickListener , SensorEventListener { + + private ButtonViewTwo buttonView; + boolean running; + + Timer mTimer = null; + + private TextView pressureTv; + + private TempHandler tempHandler; + private SensorManager sensorManager; + private Sensor sensor; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.pressure_layout); + //初始化控件 + initView(); + Intent intent = getIntent(); + running = false; + if (intent != null) { + running = intent.getBooleanExtra("running", false); + } + //判断是否支持气压测试 + sensorManager= (SensorManager)this.getSystemService(Service.SENSOR_SERVICE); + sensor=sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE); + + tempHandler = new TempHandler(this); + if (sensor!=null){ + + Log.i("dxc", "Pressure available " ); + sensorManager.registerListener(this,sensor,SensorManager.SENSOR_DELAY_UI); + } else { + this.pressureTv.setText(this.getResources().getString(R.string.no_pressure)+" hPa"); + Log.i("dxc", "No Pressure!"); + } + } + + + + + @Override + public void onSensorChanged(SensorEvent event) { + double pressure =event.values[0]; + Message message = tempHandler.obtainMessage(); + Bundle bundle = new Bundle(); + bundle.putDouble("pressure", pressure); + message.obj = bundle; + tempHandler.sendMessage(message); + } + + @Override + public void onAccuracyChanged(Sensor sensor, int accuracy) { + + } + + static class TempHandler extends Handler { + WeakReference activityWeakReference = null; + + TempHandler(PressureActivity temperatureActivity) { + activityWeakReference = new WeakReference<>(temperatureActivity); + } + + @Override + public void handleMessage(Message msg) { + PressureActivity temperatureActivity = activityWeakReference.get(); + if (temperatureActivity == null) { + return; + } + Bundle bundle = (Bundle) msg.obj; + String pressureStr = String.format(temperatureActivity.getString(R.string.factory_temp_format_text), + bundle.getDouble("pressure")); + temperatureActivity.pressureTv.setText(pressureStr); + Logger.d("pressure:" + pressureStr ); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + + if (sensor!=null) { + sensorManager.unregisterListener(this); + Log.i("dxc", "Pressure unregister"); + + } else { + Log.i("dxc", "No Pressure!"); + } + + } + + @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); + pressureTv = (TextView) findViewById(R.id.tv_pressure_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("pressure", "true").commit(); + finish(); + break; + case R.id.btn_two_right: + if (!running) { + startActivity(intent1); + } else { + startActivity(intent); + } + PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("pressure", "false").commit(); + finish(); + break; + } + } +} diff --git a/app/src/main/java/mobile/miki/util/Config.java b/app/src/main/java/mobile/miki/util/Config.java index 186dada..a2b41cd 100644 --- a/app/src/main/java/mobile/miki/util/Config.java +++ b/app/src/main/java/mobile/miki/util/Config.java @@ -21,6 +21,7 @@ import mobile.miki.KeysTestActivity; import mobile.miki.MikeTest; import mobile.miki.MotorTestActivity; import mobile.miki.MyApplication; +import mobile.miki.PressureActivity; import mobile.miki.R; import mobile.miki.RingtoneActivity; import mobile.miki.SimDetectActivity; @@ -145,6 +146,8 @@ public class Config { return context.getResources().getString(R.string.anti_check); }else if (ClassName.equals(TemperatureActivity.class.getSimpleName())){ return context.getResources().getString(R.string.temperature); + }else if (ClassName.equals(PressureActivity.class.getSimpleName())){ + return context.getResources().getString(R.string.test_pressure); }else { return null; @@ -200,6 +203,8 @@ public class Config { intent = new Intent(context, AntiMonitorActivity.class); }else if (testItemName.equals(context.getResources().getString(R.string.temperature))) { intent = new Intent(context, TemperatureActivity.class); + }else if (testItemName.equals(context.getResources().getString(R.string.test_pressure))) { + intent = new Intent(context, PressureActivity.class); } if (intent != null) { @@ -266,18 +271,22 @@ public class Config { testResultList.add("bt"); testResultList.add("vibrator"); testResultList.add("Ultraviolet"); - } else if (FTUtils.isS06()) { + } else if (FTUtils.isV20()) { // s06 添加dsp测试 - list.add(context.getString(R.string.hall)); - list.add(context.getString(R.string.bt)); - list.add(context.getString(R.string.dsp)); + list.add(context.getString(R.string.test_keypad)); +// list.add(context.getString(R.string.hall)); +// list.add(context.getString(R.string.bt)); +// list.add(context.getString(R.string.dsp)); + list.add(context.getString(R.string.shakeTest)); list.add(context.getString(R.string.heartrate)); + list.add(context.getString(R.string.test_pressure)); testResultList.add("keys"); - testResultList.add("bt"); - testResultList.add("dsp"); +// testResultList.add("bt"); +// testResultList.add("dsp"); + testResultList.add("vibrator"); testResultList.add("heartrate"); - + testResultList.add("pressure"); } else if (FTUtils.isQ3FT()){ list.add(context.getString(R.string.test_keypad)); diff --git a/app/src/main/res/layout/camera_preview_layout.xml b/app/src/main/res/layout/camera_preview_layout.xml index d6bbb93..540c31c 100644 --- a/app/src/main/res/layout/camera_preview_layout.xml +++ b/app/src/main/res/layout/camera_preview_layout.xml @@ -1,55 +1,56 @@ - - - -