keyCabinet-android/app/src/main/AndroidManifest.xml
@@ -44,7 +44,8 @@ android:exported="false" /> <activity android:name="com.doumee.keyCabinet.ui.face.FaceActivity" android:exported="false" /> android:exported="false" android:windowSoftInputMode="stateAlwaysHidden|adjustPan"/> <activity android:name="com.doumee.keyCabinet.ui.main.MainActivity" android:exported="true" keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/base/MyBaseActivity.java
@@ -103,7 +103,7 @@ if(isFinishing()){ return; } timeChange(String.format(getString(R.string.time_djs),millisUntilFinished/1000)); timeChange((millisUntilFinished/1000)+"s"); } }; keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/FaceUserBean.java
@@ -5,7 +5,7 @@ //äººè¸ public class FaceUserBean { private String faceImg; private String memberId; private Integer memberId; private String memberName; //0:管çåï¼1ï¼ç¨æ· @@ -21,11 +21,11 @@ this.faceImg = faceImg; } public String getMemberId() { public Integer getMemberId() { return memberId; } public void setMemberId(String memberId) { public void setMemberId(Integer memberId) { this.memberId = memberId; } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/bean/LoginBean.java
@@ -3,7 +3,7 @@ //å½åç»å½ä¿¡æ¯ public class LoginBean { private Integer autoMemberId; private Integer memberId = 6572; private Integer memberId; //ç¨æ·éªè¯æ¹å¼ 0å·è¸ 1å·å¡ private int authType; keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/event/FaceStatusChangeEvent.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ package com.doumee.keyCabinet.event; public class FaceStatusChangeEvent { private int status; public FaceStatusChangeEvent(int status) { this.status = status; } public int getStatus() { return status; } public void setStatus(int status) { this.status = status; } } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/event/JiujinBeginEvent.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,4 @@ package com.doumee.keyCabinet.event; public class JiujinBeginEvent { } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/event/JiujinResultEvent.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,29 @@ package com.doumee.keyCabinet.event; import java.math.BigDecimal; public class JiujinResultEvent { private boolean isOk; private BigDecimal concentration; public JiujinResultEvent(boolean isOk, BigDecimal concentration) { this.isOk = isOk; this.concentration = concentration; } public boolean isOk() { return isOk; } public void setOk(boolean ok) { isOk = ok; } public BigDecimal getConcentration() { return concentration; } public void setConcentration(BigDecimal concentration) { this.concentration = concentration; } } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/http/Apis.java
@@ -22,7 +22,8 @@ public interface Apis { //æµè¯æ String HTTP = "http://192.168.1.45:10010/"; //String HTTP = "http://192.168.1.45:10010/"; String HTTP = "http://192.168.0.212/system_gateway/"; String HEAT_HTTP = "do?c=220301"; /** * æ¥è¯¢çæ¬ä¿¡æ¯ keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/AddFaceActivity.java
@@ -205,12 +205,12 @@ if (ret == 128) { Timber.d("====>å¾çç¹å¾æ½åæå: %s", bean.getMemberName()); //æå ¥æ°æ®åº User user = FaceApi.getInstance().getByUserId(bean.getGroupId(), bean.getMemberId()); User user = FaceApi.getInstance().getByUserId(bean.getGroupId(), bean.getMemberId().toString()); boolean isSave = false; if (user == null) { //æ°å¢ isSave = FaceApi.getInstance().registerUserIntoDBmanager(bean.getGroupId(), bean.getMemberId(), bean.getMemberName(), bean.getFaceImg(), JSON.toJSONString(bean), secondFeature); bean.getMemberId().toString(), bean.getMemberName(), bean.getFaceImg(), JSON.toJSONString(bean), secondFeature); } else { //æ´æ° user.setUserName(bean.getMemberName()); keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/FaceActivity.java
@@ -14,13 +14,19 @@ import android.text.TextUtils; import android.text.style.TextAppearanceSpan; import android.view.View; import android.view.ViewTreeObserver; import android.view.inputmethod.InputMethodManager; import android.widget.TextView; import android.widget.Toast; import com.baidu.idl.main.facesdk.model.BDFaceSDKCommon; import com.doumee.keyCabinet.MApplication; import com.doumee.keyCabinet.R; import com.doumee.keyCabinet.base.MyBaseActivity; import com.doumee.keyCabinet.databinding.FaceActivityBinding; import com.doumee.keyCabinet.event.FaceStatusChangeEvent; import com.doumee.keyCabinet.event.JiujinBeginEvent; import com.doumee.keyCabinet.event.JiujinResultEvent; import com.doumee.keyCabinet.event.TimeClockEvent; import com.doumee.keyCabinet.ui.keyCabinet.KeyCabinetActivity; import com.doumee.keyCabinet.utils.BraceletLogUtils; @@ -28,6 +34,7 @@ import com.doumee.keyCabinet.utils.face.model.SingleBaseConfig; import com.doumee.lib_coremodel.bean.event.ActionEventData; import com.doumee.lib_coremodel.util.SpUtil; import com.doumee.lib_coremodel.util.StringUtil; import com.example.datalibrary.callback.CameraDataCallback; import com.example.datalibrary.callback.FaceDetectCallBack; import com.example.datalibrary.gatecamera.CameraPreviewManager; @@ -38,8 +45,13 @@ import com.example.datalibrary.model.LivenessModel; import com.example.datalibrary.model.User; import com.example.datalibrary.utils.FaceOnDrawTexturViewUtil; import com.example.datalibrary.utils.ToastUtils; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import java.math.BigDecimal; import dagger.hilt.android.AndroidEntryPoint; @@ -73,11 +85,24 @@ getDB().setModel(getVM()); mContext = this; flag = MApplication.getLoginBean().getFlag(); statusFsm(flag==0?0:2); //todo wmf è§£å¼ /*FaceSDKManager.getInstance().initDataBases(this); initFaceCheck();*/ FaceSDKManager.getInstance().initDataBases(this); initFaceCheck(); initView(); if(flag==0){ if(MApplication.getConfigBean().getDoubleAuth()==1){ statusFsm(0); }else { statusFsm(2); } }else { statusFsm(7); } getDB().tvDjs.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { statusFsm(status); } }); } @Override @@ -101,117 +126,103 @@ private void statusFsm(int toStatus){ status = toStatus; switch (status){ isToChose = false; switch (toStatus){ case 0: //å-管çå人è¸éªè¯ getDB().clLogin.setVisibility(View.VISIBLE); getDB().tvTitle.setText("管çå身份éªè¯"); getDB().vSl.setBackgroundResource(R.mipmap.ic_viewfinder); getDB().tvTip.setText("è¯·ä¿ææ£è¸å¨åæ¯æ¡ä¸ï¼å¹¶æ ¹æ®æç¤ºå®æè¯å«"); getDB().clRemind.setVisibility(View.VISIBLE); getDB().btSk.setVisibility(View.VISIBLE); getDB().clSjRl.setVisibility(View.GONE); getDB().clSjSk.setVisibility(View.GONE); getDB().clTip1.setVisibility(View.GONE); getDB().clCard.setVisibility(View.GONE); getDB().clFace.setVisibility(View.VISIBLE); setFaceModel(0); break; case 1: //å-管çåå·å¡éªè¯ getDB().clLogin.setVisibility(View.VISIBLE); getDB().tvTitle.setText("管çå身份éªè¯"); getDB().vSl.setBackgroundResource(R.mipmap.ic_shuaka2); getDB().tvTip.setText("请å°ICå¡è´´è¿å·å¡åºï¼åç1-2ç§"); getDB().clRemind.setVisibility(View.GONE); getDB().btSk.setVisibility(View.GONE); getDB().clSjRl.setVisibility(View.GONE); getDB().clSjSk.setVisibility(View.VISIBLE); getDB().clTip1.setVisibility(View.GONE); getDB().clFace.setVisibility(View.GONE); getDB().clCard.setVisibility(View.VISIBLE); setFaceModel(2); break; case 5: //å-叿ºéªè¯æ¹å¼éæ©é¡µ getDB().clLogin.setVisibility(View.VISIBLE); getDB().tvTitle.setText("叿ºèº«ä»½éªè¯"); getDB().vSl.setBackgroundResource(R.mipmap.ic_face); getDB().tvTip.setText("è¯·ä¿ææ£è¸å¨åæ¯æ¡ä¸ï¼å¹¶æ ¹æ®æç¤ºå®æè¯å«"); getDB().clRemind.setVisibility(View.VISIBLE); getDB().btSk.setVisibility(View.GONE); getDB().clSjRl.setVisibility(View.VISIBLE); getDB().clSjSk.setVisibility(View.GONE); getDB().clFace.setVisibility(View.GONE); getDB().clCard.setVisibility(View.GONE); getDB().clTip1.setVisibility(View.GONE); getDB().clSjXuan.setVisibility(View.VISIBLE); getDB().clSjXuan.invalidate(); getDB().clSjXuan.requestLayout(); break; case 2: //å-叿ºäººè¸éªè¯ getDB().clLogin.setVisibility(View.VISIBLE); getDB().tvTitle.setText("叿ºèº«ä»½éªè¯"); getDB().vSl.setBackgroundResource(R.mipmap.ic_viewfinder); getDB().tvTip.setText("è¯·ä¿ææ£è¸å¨åæ¯æ¡ä¸ï¼å¹¶æ ¹æ®æç¤ºå®æè¯å«"); getDB().clRemind.setVisibility(View.VISIBLE); getDB().btSk.setVisibility(View.VISIBLE); getDB().clSjRl.setVisibility(View.GONE); getDB().clSjSk.setVisibility(View.GONE); getDB().clTip1.setVisibility(View.GONE); getDB().clCard.setVisibility(View.GONE); getDB().clSjXuan.setVisibility(View.GONE); getDB().clFace.setVisibility(View.VISIBLE); setFaceModel(1); break; case 3: //å-叿ºå·å¡éªè¯ getDB().clLogin.setVisibility(View.VISIBLE); getDB().tvTitle.setText("叿ºèº«ä»½éªè¯"); getDB().vSl.setBackgroundResource(R.mipmap.ic_shuaka2); getDB().tvTip.setText("请å°ICå¡è´´è¿å·å¡åºï¼åç1-2ç§"); getDB().clRemind.setVisibility(View.GONE); getDB().btSk.setVisibility(View.GONE); getDB().clSjRl.setVisibility(View.GONE); getDB().clSjSk.setVisibility(View.VISIBLE); getDB().clTip1.setVisibility(View.GONE); getDB().clFace.setVisibility(View.GONE); getDB().clSjXuan.setVisibility(View.GONE); getDB().clCard.setVisibility(View.VISIBLE); setFaceModel(2); break; case 4: //å-叿ºé ç²¾æ£æµ getDB().clLogin.setVisibility(View.VISIBLE); getDB().tvTitle.setText("é ç²¾æ£æµ"); getDB().vSl.setBackgroundResource(R.mipmap.ic_jiujingjiance); getDB().tvTip.setText("请æ¿èµ·é ç²¾æ£æµä»ªå¹æ°"); getDB().clRemind.setVisibility(View.GONE); getDB().btSk.setVisibility(View.GONE); getDB().clSjRl.setVisibility(View.GONE); getDB().clSjSk.setVisibility(View.GONE); getDB().clFace.setVisibility(View.GONE); getDB().clCard.setVisibility(View.GONE); getDB().clSjXuan.setVisibility(View.GONE); getDB().clTip1.setVisibility(View.GONE); getDB().clJiu.setVisibility(View.VISIBLE); getDB().clJiu.invalidate(); getDB().clJiu.requestLayout(); if(MApplication.getConfigBean()!=null&&MApplication.getConfigBean().getCabinetConfigDataVO()!=null&& MApplication.getConfigBean().getCabinetConfigDataVO().getConcentration()!=null){ //å¼å§æ£æµ EventBus.getDefault().post(new JiujinBeginEvent()); }else { ToastUtils.toast(this,"æªè·åå°é ç²¾æµåº¦æ¥è¦å¼"); statusFsm(6); } break; case 6: //å-叿ºé ç²¾æ£æµå¤±è´¥ Toast.makeText(mContext, "叿ºé ç²¾æ£æµå¤±è´¥", Toast.LENGTH_SHORT).show(); getDB().clJiu.setVisibility(View.GONE); getDB().clTip1.setVisibility(View.VISIBLE); break; case 7: //è¿-叿ºäººè¸éªè¯ getDB().clLogin.setVisibility(View.VISIBLE); getDB().tvTitle.setText("叿ºèº«ä»½éªè¯"); getDB().vSl.setBackgroundResource(R.mipmap.ic_viewfinder); getDB().tvTip.setText("è¯·ä¿ææ£è¸å¨åæ¯æ¡ä¸ï¼å¹¶æ ¹æ®æç¤ºå®æè¯å«"); getDB().clRemind.setVisibility(View.VISIBLE); getDB().btSk.setVisibility(View.VISIBLE); getDB().clSjSk.setVisibility(View.GONE); getDB().clSjRl.setVisibility(View.GONE); getDB().clTip1.setVisibility(View.GONE); getDB().clCard.setVisibility(View.GONE); getDB().clFace.setVisibility(View.VISIBLE); setFaceModel(1); break; case 8: //è¿-叿ºå·å¡éªè¯ getDB().clLogin.setVisibility(View.VISIBLE); getDB().tvTitle.setText("叿ºèº«ä»½éªè¯"); getDB().vSl.setBackgroundResource(R.mipmap.ic_shuaka2); getDB().tvTip.setText("请å°ICå¡è´´è¿å·å¡åºï¼åç1-2ç§"); getDB().clRemind.setVisibility(View.GONE); getDB().btSk.setVisibility(View.GONE); getDB().clSjSk.setVisibility(View.VISIBLE); getDB().clSjRl.setVisibility(View.GONE); getDB().clTip1.setVisibility(View.GONE); getDB().clFace.setVisibility(View.GONE); getDB().clCard.setVisibility(View.VISIBLE); setFaceModel(2); break; default: break; } } private void setFaceModel(int faceModel){ if(faceModel==0){ //管çå FaceSDKManager.getInstance().setGroupId("0"); isToChose = false; }else if(faceModel==1){ //叿º FaceSDKManager.getInstance().setGroupId("1"); isToChose = false; }else { isToChose = true; } } @@ -222,7 +233,7 @@ switch (type){ case 1: //忢å°å·å¡ if("0".equals(flag)){ if(flag==0){ if(status==0){ statusFsm(1); }else if(status==2){ @@ -242,23 +253,18 @@ break; case 4: //忢å°äººè¸ if("0".equals(flag)){ if(flag==0){ if(status==1){ statusFsm(5); statusFsm(0); }else if(status==3){ statusFsm(6); statusFsm(2); } }else { startActivity(KeyCabinetActivity.class); finish(); statusFsm(7); } //todo wmf //statusFsm("0".equals(flag)?); break; case 5: startActivity(KeyCabinetActivity.class); finish(); statusFsm(4); break; default: break; @@ -287,13 +293,32 @@ CameraPreviewManager.getInstance().startPreview(glMantleSurfacView, SingleBaseConfig.getBaseConfig().getRgbVideoDirection() , PREFER_WIDTH, PERFER_HEIGH); getDB().tvJg2.setText(getErrPhoneText(), TextView.BufferType.SPANNABLE); //icå¡è¯»å getDB().etEwm.requestFocus(); getDB().etEwm.setShowSoftInputOnFocus(false); hideSoftKeyboard(getDB().etEwm); getDB().etEwm.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { hideSoftKeyboard(getDB().etEwm); } }); } private void hideSoftKeyboard(View view) { InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if (imm != null) { imm.hideSoftInputFromWindow(view.getWindowToken(), 0); } } @Override protected void onResume() { super.onResume(); //todo wmf è§£å¼ //startTestOpenDebugRegisterFunction(); startTestOpenDebugRegisterFunction(); } private void startTestOpenDebugRegisterFunction() { @@ -329,9 +354,7 @@ handler.sendEmptyMessageDelayed(1,4000); glMantleSurfacView.setFrame(); bdFaceImageConfig.setData(data); //å¿ é¡»ä¼å String groupId = "0"; FaceSDKManager.getInstance().onDetectCheck(groupId,bdFaceImageConfig, null, null, FaceSDKManager.getInstance().onDetectCheck(bdFaceImageConfig, null, null, bdFaceCheckConfig, faceDetectCallBack); } } @@ -352,19 +375,25 @@ @Override public void onTip(int code, String msg) { getDB().clFail.setVisibility(View.VISIBLE); if(isToChose){ return; } /*getDB().clFail.setVisibility(View.VISIBLE); getDB().tv4.setText(msg); handler.sendEmptyMessageDelayed(0,1000); handler.sendEmptyMessageDelayed(0,1000);*/ System.out.println("==isOk==>onTip:"+msg); } @Override public void onFaceDetectDarwCallback(LivenessModel livenessModel) { //System.out.println("==rgbInstance==>onFaceDetectDarwCallback"); if(isToChose){ return; } if (isCompareCheck) { getDB().clFail.setVisibility(View.VISIBLE); /*getDB().clFail.setVisibility(View.VISIBLE); getDB().tv4.setText(getString(R.string.face_tip2)); handler.sendEmptyMessageDelayed(0,1000); handler.sendEmptyMessageDelayed(0,1000);*/ } // ç»å¶äººè¸æ¡ showFrame(livenessModel); @@ -397,6 +426,26 @@ break; case 1: //isCheckFace = false; break; case 3: Toast.makeText(mContext, "é ç²¾æ£æ¥è¿å", Toast.LENGTH_SHORT).show(); if(new BigDecimal(MApplication.getConfigBean().getCabinetConfigDataVO().getConcentration()) .compareTo(resultEvent.getConcentration())>=0){ //é ç²¾éè¿ getDB().clJiujinOk.setVisibility(View.VISIBLE); handler.sendEmptyMessageDelayed(4,1000); }else { //é ç²¾ä¸éè¿ getVM().alcoholTestAlarm(""); Toast.makeText(mContext, "é ç²¾æ£æµä¸éè¿", Toast.LENGTH_SHORT).show(); statusFsm(6); } break; case 4: startActivity(KeyCabinetActivity.class); finish(); break; default: break; } } @@ -431,11 +480,10 @@ handler.removeCallbacksAndMessages(null); handler = null; dataCallback = null; //CameraPreviewManager.getInstance().destroy(); CameraPreviewManager.getInstance().destroy(); faceDetectCallBack = null; glMantleSurfacView = null; //todo wmf è§£å¼ //FaceSDKManager.getInstance().destroy(); FaceSDKManager.getInstance().destroy(); } private int resultCount = 0; @@ -451,11 +499,14 @@ runOnUiThread(new Runnable() { @Override public void run() { if(isToChose) { return; } if (livenessModel == null) { if (isCompareCheck) { getDB().clFail.setVisibility(View.VISIBLE); /*getDB().clFail.setVisibility(View.VISIBLE); getDB().tv4.setText(getString(R.string.face_tip2)); handler.sendEmptyMessageDelayed(0,1000); handler.sendEmptyMessageDelayed(0,1000);*/ } System.out.println("======>人è¸è¯å«å¤±è´¥"); return; @@ -463,37 +514,21 @@ if (livenessModel.isQualityCheck()){ //æ¯å¦éè¿è´¨éæ£æµ if (isCompareCheck) { getDB().clFail.setVisibility(View.VISIBLE); /*getDB().clFail.setVisibility(View.VISIBLE); getDB().tv4.setText(getString(R.string.face_tip2)); handler.sendEmptyMessageDelayed(0,1000); handler.sendEmptyMessageDelayed(0,1000);*/ } } else { User user = livenessModel.getUser(); if (user == null) { mUser = null; if (isCompareCheck) { getDB().clFail.setVisibility(View.VISIBLE); /*getDB().clFail.setVisibility(View.VISIBLE); getDB().tv4.setText(getString(R.string.face_tip2)); handler.sendEmptyMessageDelayed(0,1000); handler.sendEmptyMessageDelayed(0,1000);*/ } } else { //ä¼å ä¼å if("0".equals(user.getGroupId())){ }else { if (isCompareCheck) { getDB().clFail.setVisibility(View.VISIBLE); getDB().tv4.setText(getString(R.string.face_tip2)); handler.sendEmptyMessageDelayed(0,1000); } resultCount++; if (resultCount >= 3) { resultCount = 0; }else { return; } } mUser = user; if (isCompareCheck) { getDB().clFail.setVisibility(View.GONE); @@ -506,19 +541,38 @@ nameText.setTextColor(Color.parseColor("#0dc6ff")); nameText.setText(FileUtils.spotString(user.getUserName()) + " æ¬¢è¿æ¨");*/ } if(!isToChose) { isToChose = true; //è¯å«æåï¼è·³è½¬ Bundle bundle = new Bundle(); bundle.putString("busId", user.getUserId()); bundle.putString("type", "0"); //Toast.makeText(mContext, user.getUserName(), Toast.LENGTH_SHORT).show(); //startActivity(ChoseTicketActivity.class, bundle); isToChose = true; //è¯å«æåï¼è·³è½¬ if(status==0){ //å-管çå MApplication.getLoginBean().setAutoMemberId(Integer.parseInt(user.getUserId())); //handler.sendEmptyMessageDelayed(7,0); EventBus.getDefault().post(new FaceStatusChangeEvent(5)); }else if(status==2){ //å-叿º CameraPreviewManager.getInstance().stopPreview(); MApplication.getLoginBean().setMemberId(Integer.parseInt(user.getUserId())); MApplication.getLoginBean().setAuthType(0); //handler.sendEmptyMessageDelayed(8,0); EventBus.getDefault().post(new FaceStatusChangeEvent(4)); }else if(status==7){ //è¿-叿º MApplication.getLoginBean().setMemberId(Integer.parseInt(user.getUserId())); MApplication.getLoginBean().setAuthType(0); startActivity(KeyCabinetActivity.class); finish(); } } } } }); } @Subscribe(threadMode = ThreadMode.MAIN) public void FaceStatusChangeEvent(FaceStatusChangeEvent e){ if(!isFinishing()){ statusFsm(e.getStatus()); } } boolean isToChose = false; @@ -533,7 +587,28 @@ super.onPause(); isPause = false; isTimePause = true; //todo wmf è§£å¼ //CameraPreviewManager.getInstance().stopPreview(); CameraPreviewManager.getInstance().stopPreview(); } private JiujinResultEvent resultEvent; @Subscribe(threadMode = ThreadMode.MAIN) public void JiujinResultEvent(JiujinResultEvent e){ if(!isFinishing()){ //Toast.makeText(mContext, "é ç²¾æ£æµè¿åï¼"+e.isOk(), Toast.LENGTH_SHORT).show(); if(!e.isOk()){ statusFsm(6); }else { if(resultEvent==null){ resultEvent = e; }else if(resultEvent.getConcentration().compareTo(e.getConcentration())<0){ //弿´å¤§ resultEvent = e; } if(handler.hasMessages(3)){ handler.removeMessages(3); } handler.sendEmptyMessageDelayed(3,1000); } } } } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/FaceVM.java
@@ -56,7 +56,7 @@ MApplication.getLoginBean().setAutoMemberId(response.getData()); //doAction(); }else { MApplication.getLoginBean().setAutoMemberId(response.getData()); MApplication.getLoginBean().setMemberId(response.getData()); MApplication.getLoginBean().setAuthType(1); //doAction(); } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetVM.java
@@ -110,7 +110,7 @@ public void onNext(@NonNull BaseResponse response) { if(200==response.getCode()){ //å¼é¨ toast("å¼é¨æ¥å£æå"); EventBus.getDefault().post(new HttpEvent("å¼é¨æ¥å£æå")); doAction(2); }else { toast(response.getMessage()); @@ -147,7 +147,6 @@ @Override public void onNext(@NonNull BaseResponse response) { EventBus.getDefault().post(new HttpEvent("å ³éææ ¼æ¥å£è°ç¨æå")); toast("å ³éææ ¼:"+response.getMessage()); } @Override keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetVM.java
@@ -160,8 +160,8 @@ @Override public void onNext(@NonNull BaseResponse response) { if(200==response.getCode()){ EventBus.getDefault().post(new HttpEvent("æ¹éå¼é¨ - 管ç忥壿å")); if(isAll) { toast("æ¹éå¼é¨æå"); doAction(8); }else { doAction(10); @@ -195,8 +195,8 @@ .subscribe(new SimpleObserver<BaseResponse>(rxJavaGcManager) { @Override public void onNext(@NonNull BaseResponse response) { EventBus.getDefault().post(new HttpEvent("æ è®°ææ ¼æ£å¸¸æ¥å£æå")); if(200==response.getCode()){ toast("æ è®°ææ ¼æ£å¸¸æå"); getCabinetDetail(); }else { toast(response.getMessage()); @@ -227,7 +227,7 @@ @Override public void onNext(@NonNull BaseResponse response) { if(200==response.getCode()){ toast("æ è®°ææ ¼æ éæå"); EventBus.getDefault().post(new HttpEvent("æ è®°ææ ¼æ 鿥壿å")); getCabinetDetail(); }else { toast(response.getMessage()); @@ -258,7 +258,7 @@ @Override public void onNext(@NonNull BaseResponse response) { if(200==response.getCode()){ toast("æ è®°ç»´ä¿®ä¿å »æå"); EventBus.getDefault().post(new HttpEvent("æ è®°ç»´ä¿®ä¿å »æ¥å£æå")); getCabinetDetail(); }else { toast(response.getMessage()); @@ -296,6 +296,7 @@ @Override public void onNext(@NonNull BaseResponse response) { if(response.getCode()==200){ EventBus.getDefault().post(new HttpEvent("å ³éææ ¼æ¥å£æå")); getCabinetDetail(); doAction(11); } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginActivity.java
@@ -33,7 +33,8 @@ @Override public void initView(@Nullable Bundle savedInstanceState) { isAddCountTimer = false; downTime = 30; isAddCountTimer = true; normalConfig(); getDB().setModel(getVM()); } @@ -66,9 +67,7 @@ getVM().loginCabinet(getDB().etName.getText().toString(),getDB().etPw.getText().toString()); break; case 3: //æ¾ç¤ºå è½½ getDB().clProgress.setVisibility(View.VISIBLE); getDB().clTip.setVisibility(View.GONE); finish(); break; case 4: getDB().clProgress.setVisibility(View.GONE); @@ -79,6 +78,11 @@ case 5: startActivity(ManageCabinetActivity.class); finish(); break; case 6: //æ¾ç¤ºå è½½ getDB().clProgress.setVisibility(View.VISIBLE); getDB().clTip.setVisibility(View.GONE); break; default: break; @@ -112,4 +116,9 @@ } } } @Override protected void timeChange(String djs) { getDB().tvDjs.setText(djs); } } keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageLoginVM.java
@@ -32,7 +32,7 @@ LoginCabinetParam param = new LoginCabinetParam(); param.setUsername(userName); param.setPassword(pw); doAction(3); doAction(6); getRetrofitService(Apis.class).loginCabinet(ParamsUtil.encodeRequestBody(param)) .compose(RxUtils.schedulersTransformer()) .subscribe(new SimpleObserver<BaseResponse<String>>(rxJavaGcManager) { keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java
@@ -8,6 +8,7 @@ import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.hardware.Camera; import android.opengl.Visibility; import android.os.Bundle; import android.os.Handler; import android.os.Message; @@ -30,6 +31,7 @@ import com.alibaba.fastjson.JSON; import com.baidu.idl.main.facesdk.model.BDFaceSDKCommon; import com.baidu.idl.main.facesdk.utils.StreamUtil; import com.bigkoo.convenientbanner.holder.CBViewHolderCreator; import com.bumptech.glide.Glide; import com.bumptech.glide.load.DataSource; @@ -52,6 +54,8 @@ import com.doumee.keyCabinet.event.GetKeyStatusEvent; import com.doumee.keyCabinet.event.HeartEvent; import com.doumee.keyCabinet.event.HttpEvent; import com.doumee.keyCabinet.event.JiujinBeginEvent; import com.doumee.keyCabinet.event.JiujinResultEvent; import com.doumee.keyCabinet.event.KeyResultEvent; import com.doumee.keyCabinet.event.ManageOpenGridResultEvent; import com.doumee.keyCabinet.event.OpenAllGridEvent; @@ -107,6 +111,7 @@ import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -115,6 +120,8 @@ import java.util.TimerTask; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.regex.Matcher; import java.util.regex.Pattern; import dagger.hilt.android.AndroidEntryPoint; import timber.log.Timber; @@ -151,7 +158,7 @@ if(!isFinishing()){ switch (msg.what) { case 0: //initM(); initM(); TimeUtils.updateTimeUi(getVM().dayObs, getVM().timeObs); handler.sendEmptyMessageDelayed(0, 1000); EventBus.getDefault().post(new TimeClockEvent()); @@ -180,7 +187,7 @@ SpUtil.initWH(this); normalConfig(); getDB().setModel(getVM()); //initRGBCheck(); initRGBCheck(); handler.sendEmptyMessageDelayed(0, 1000); //å¯å¨å¿è·³ Intent intent = new Intent(MainActivity.this, HeartbeatService.class); @@ -190,7 +197,6 @@ startService(intent2); getPermission(); Timber.tag("====>").d(LMobileInfo.getDeviceUniqueId()); initPort(); } private void initM(){ @@ -205,7 +211,7 @@ if((availableMemory<400&&showTime!=null&&(System.currentTimeMillis()-showTime>5000))|| ("02:00:00".equals(StringUtil.getHM()))){ //å¯ç¨å åå°äº400M,æè æ¯å¤©åæ¨2ç¹ï¼éå¯app restartApp(); //restartApp(); } } @@ -291,7 +297,20 @@ @Override public void onClick(View v) { //todo 临æ¶ä»£ç setJiuConfig(); //setJiuConfig(); SpUtil.saveString("rbgCameraId","0"); } }); getDB().imgLeft.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //todo 临æ¶ä»£ç if (getDB().nsv.getVisibility()== View.VISIBLE) { getDB().nsv.setVisibility(View.GONE); }else { getDB().nsv.setVisibility(View.VISIBLE); } } }); upErrInfo(); @@ -305,6 +324,7 @@ setBanner(devConfigBean.getBannerList()); } setJiuConfig(); initPort(); } } }); @@ -376,7 +396,7 @@ } MApplication.setLoginBean(null); MApplication.getLoginBean().setFlag(type == 2 ? 0 : 1); startActivity(KeyCabinetActivity.class); startActivity(FaceActivity.class); } break; case 4: @@ -437,7 +457,7 @@ isShowing = true; showTime = System.currentTimeMillis(); if(!isFaceOk) { //initLicense(); initLicense(); } if(isHavePermission) { checkUpdate(); @@ -808,7 +828,7 @@ if (ret == 128) { Timber.d("==UpdatingFace==>å¾çç¹å¾æ½åæå: %s", JSON.toJSONString(bean)); User user = new User(); user.setUserId(bean.getMemberId()); user.setUserId(bean.getMemberId().toString()); user.setGroupId(bean.getGroupId()); user.setUserName(bean.getMemberName()); user.setImageName(bean.getFaceImg()); @@ -896,7 +916,6 @@ popupWindow.showAtLocation(getDB().clRoot, Gravity.CENTER, 0, 0); RelativeLayout relativeRegister = contentView.findViewById(R.id.relative_register); RelativeLayout mPopRelativeManager = contentView.findViewById(R.id.relative_manager); RelativeLayout mPopRelativeCamra = contentView.findViewById(R.id.relative_camra); RelativeLayout mRlErr = contentView.findViewById(R.id.rl_err); relativeRegister.setOnClickListener(new View.OnClickListener() { @Override @@ -908,12 +927,6 @@ @Override public void onClick(View v) { startActivity(UserManagerActivity.class); } }); mPopRelativeCamra.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //startActivity(); } }); mRlErr.setOnClickListener(new View.OnClickListener() { @@ -938,15 +951,13 @@ } private void initRGBCheck(){ if(true){ return; } String index = SpUtil.getString("rbgCameraId"); if(index==null){ if(!"1".equals(index)){ index = "0"; } setRgbCameraId(Integer.parseInt(index)); /*if (isSetCameraId()){ setRgbCameraId(SingleBaseConfig.getBaseConfig().getRBGCameraId()); return; } int mCameraNum = Camera.getNumberOfCameras(); @@ -997,6 +1008,7 @@ } private void setRgbCameraId(int index){ getVM().addInfo("è®¾ç½®ç¸æºï¼"+index); //Toast.makeText(mContext, "è®¾ç½®ç¸æº"+index, Toast.LENGTH_SHORT).show(); SpUtil.saveString("rbgCameraId",index+""); BraceletLogUtils.saveLog("è®¾ç½®ç¸æº("+index+")"); @@ -1144,6 +1156,14 @@ } } @Subscribe(threadMode = ThreadMode.MAIN) public void JiujinBeginEvent(JiujinBeginEvent e){ if(!isFinishing()){ //å¼å¯é ç²¾æ£æµ sendPortHandlerMsg(3,"go_wnd:0",0); } } @Subscribe public void CloseGridOneResultEvent(CloseGridOneResultEvent e){ @@ -1194,6 +1214,9 @@ @Override public void onResultBytes(byte[] bytes) { if(isFinishing()){ return; } if(bytes.length==0){ return; } @@ -1284,7 +1307,6 @@ runOnUiThread(() -> { getVM().addInfo("æ¹éå¼é¨æ´æ°åºæ°æ®:çå·ï¼" +bh+","+ addList.size()+","+updateList.size()); }); getVM().insertGrids(addList); getVM().updateGrids(updateList); if(!portHandler.hasMessages(1)){ EventBus.getDefault().post(new ManageOpenGridResultEvent()); @@ -1356,18 +1378,11 @@ gridDo.setIsOpen("1".equals(dm.substring(i-1,i))?0:1); gridDo.setUpdateTime(StringUtil.DateToStr(new Date())); updateList.add(gridDo); }else { CabinetGridDo gridDo = new CabinetGridDo(); gridDo.setGridKey(key); gridDo.setIsOpen("1".equals(dm.substring(i-1,i))?0:1); gridDo.setUpdateTime(StringUtil.DateToStr(new Date())); addList.add(gridDo); } } runOnUiThread(() -> { getVM().addInfo("æ´æ°åºæ°æ®:çå·ï¼" +bh+","+ addList.size()+","+updateList.size()); }); getVM().insertGrids(addList); getVM().updateGrids(updateList); }catch (Exception exception){ runOnUiThread(() -> { @@ -1395,6 +1410,9 @@ @Override public void onResultBytes(byte[] bytes) { if(isFinishing()){ return; } if(bytes.length==0){ return; } @@ -1467,21 +1485,9 @@ } gridDo.setUpdateTime(StringUtil.DateToStr(new Date())); updateList.add(gridDo); }else { //æ°å¢ CabinetGridDo gridDo = new CabinetGridDo(); gridDo.setGridKey(key); if("01".equals(isHaveKey)) { gridDo.setCurKeyCode(keyCode); }else { gridDo.setCurKeyCode(""); } gridDo.setUpdateTime(StringUtil.DateToStr(new Date())); addList.add(gridDo); } } } getVM().insertGrids(addList); getVM().updateGrids(updateList); EventBus.getDefault().post(new KeyResultEvent()); } @@ -1499,12 +1505,33 @@ @Override public void onResultBytes(byte[] bytes) { if(isFinishing()){ return; } if(bytes.length==0){ return; } runOnUiThread(() -> { getVM().addInfo("è·åå°é ç²¾æ£æµæ°æ®:" + new String(bytes)); }); try { runOnUiThread(() -> { getVM().addInfo("è·åå°é ç²¾æ£æµæ°æ®:"+StringUtil.DateToStrSS(new Date())+" " + new String(bytes)); }); String data = new String(bytes); runOnUiThread(() -> { getVM().addInfo("è·åå°é ç²¾æ£æµæ¯å¦æ£æµå¤±è´¥:" + (data.contains("blow fail"))); }); if(data.contains("blow fail")){ //æ£æµå¤±è´¥ EventBus.getDefault().post(new JiujinResultEvent(false,null)); }else if(data.startsWith("Result:")){ Pattern pattern = Pattern.compile("([0-9]+\\.[0-9]+)"); Matcher matcher = pattern.matcher(data); if (matcher.find()) { EventBus.getDefault().post(new JiujinResultEvent(true,new BigDecimal(matcher.group(1)))); } } }catch (Exception e){ getVM().addInfo("è·åå°é ç²¾æ£æµæ¥é:" + e.getMessage()); } } }; private SerialPortModel chosePort; @@ -1628,6 +1655,8 @@ sendPortHandlerMsg(3,"alarm:"+config.getConcentration(),time+600); //æµåº¦éå¼åä½ (1=mg/100ml;2=mg/L;3=%BAC) sendPortHandlerMsg(3,"unit:"+config.getThreshold(),time+900); sendPortHandlerMsg(3,"read"+config.getThreshold(),time+1200); } private void sendPortHandlerMsg(int what,String obj,long time){ keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainVM.java
@@ -78,7 +78,6 @@ .subscribe(new SimpleObserver<BaseResponse<DevConfigBean>>(rxJavaGcManager) { @Override public void onNext(@NonNull BaseResponse<DevConfigBean> response) { EventBus.getDefault().post(new HttpEvent("è·åé¥åæåºæ¬ä¿¡æ¯-è¿åï¼"+ GsonTools.changeGsonToJson(response))); if(200==response.getCode()){ if(response.getData()!=null){ MApplication.saveConfigBean(response.getData()); @@ -185,9 +184,6 @@ } public void getFaceDatas() { if (true) { return; } //showLoading(true); getRetrofitService(Apis.class).allFaceList( LMobileInfo.getDeviceUniqueId()) .compose(RxUtils.schedulersTransformer()) keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/CrashHandler.java
@@ -97,10 +97,10 @@ // è·åAlarmManagerå®ä¾ AlarmManager alarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE); // å¨500毫ç§å触åéå¯æä½ alarmManager.set(AlarmManager.RTC, System.currentTimeMillis() + 10, pendingIntent);*/ alarmManager.set(AlarmManager.RTC, System.currentTimeMillis() + 10, pendingIntent); android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); System.exit(1);*/ //è¿éå¯ä»¥éè¿ç½ç»ä¸ä¼ å¼å¸¸ä¿¡æ¯å°æå¡å¨ï¼ä¾¿äºå¼å人ååææ¥å¿ä»èè§£å³bug } catch (IOException e) { e.printStackTrace(); keyCabinet-android/app/src/main/res/drawable/shape_jiujin_ok.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#b3000000" /> <corners android:radius="10dp" /> </shape> keyCabinet-android/app/src/main/res/layout/face_activity.xml
@@ -14,7 +14,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ui.course.FaceActivity" android:background="@color/white"> android:background="@color/white" > <View android:id="@+id/viewBack" @@ -63,114 +64,116 @@ app:layout_constraintEnd_toEndOf="parent" android:layout_marginRight="30dp"/> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/cl_login" android:layout_width="match_parent" <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="管çå身份éªè¯" android:textColor="#111111" android:textSize="33sp" android:textStyle="bold" app:layout_constraintTop_toBottomOf="@+id/viewBack" android:layout_marginTop="36dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" /> <com.example.datalibrary.gl.view.GlMantleSurfacView android:id="@+id/camera_textureview" android:layout_width="340dp" android:layout_height="340dp" app:layout_constraintTop_toBottomOf="@+id/tv_title" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:layout_marginTop="42dp" /> <!--鿣å¾ç--> <ImageView android:id="@+id/face_detect_image_view" android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintTop_toTopOf="@+id/camera_textureview" app:layout_constraintStart_toStartOf="@+id/camera_textureview" app:layout_constraintEnd_toEndOf="@+id/camera_textureview" app:layout_constraintBottom_toBottomOf="@+id/camera_textureview" android:visibility="gone" android:background="@color/black" /> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/cl_face" android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintTop_toTopOf="@+id/camera_textureview" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:visibility="visible"> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="管çå身份éªè¯" android:textColor="#111111" android:textSize="33sp" android:textStyle="bold" <View android:id="@+id/v_m_sl" android:layout_width="340dp" android:layout_height="340dp" android:background="@mipmap/ic_viewfinder" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" /> <com.example.datalibrary.gl.view.GlMantleSurfacView android:id="@+id/camera_textureview" android:layout_width="340dp" android:layout_height="340dp" app:layout_constraintTop_toBottomOf="@+id/tv_title" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:layout_marginTop="42dp" /> <!--鿣å¾ç--> <ImageView android:id="@+id/face_detect_image_view" android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintTop_toTopOf="@+id/v_sl" app:layout_constraintStart_toStartOf="@+id/v_sl" app:layout_constraintEnd_toEndOf="@+id/v_sl" app:layout_constraintBottom_toBottomOf="@+id/v_sl" android:visibility="gone" android:background="@color/black" /> <View android:id="@+id/v_sl" android:layout_width="0dp" android:layout_height="0dp" android:background="@mipmap/ic_viewfinder" app:layout_constraintTop_toTopOf="@+id/camera_textureview" app:layout_constraintStart_toStartOf="@+id/camera_textureview" app:layout_constraintEnd_toEndOf="@+id/camera_textureview" app:layout_constraintBottom_toBottomOf="@+id/camera_textureview" /> <TextView android:id="@+id/tv_tip" android:layout_width="wrap_content" android:id="@+id/tv_m_tip" android:layout_width="0dp" android:layout_height="wrap_content" android:text="è¯·ä¿ææ£è¸å¨åæ¯æ¡ä¸ï¼å¹¶æ ¹æ®æç¤ºå®æè¯å«" android:textColor="#ff666666" android:textSize="24sp" app:layout_constraintTop_toBottomOf="@+id/camera_textureview" android:gravity="center" app:layout_constraintTop_toBottomOf="@+id/v_m_sl" android:layout_marginTop="42dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/cl_remind" android:id="@+id/cl_m_remind" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintTop_toBottomOf="@+id/tv_tip" app:layout_constraintTop_toBottomOf="@+id/tv_m_tip" android:layout_marginTop="60dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"> <ImageView android:id="@+id/imgzd" android:id="@+id/imgzd_mf" android:layout_width="66dp" android:layout_height="66dp" android:src="@mipmap/ic_zhengdui" app:layout_constraintTop_toTopOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toLeftOf="@+id/imgzy" app:layout_constraintRight_toLeftOf="@+id/imgzy_mf" android:layout_marginRight="57dp"/> <TextView android:id="@+id/tv_pm" android:id="@+id/tv_pm_mf" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="å¹³è§å±å¹" android:textColor="#ff999999" android:textSize="21sp" app:layout_constraintTop_toBottomOf="@+id/imgzd" app:layout_constraintStart_toStartOf="@+id/imgzd" app:layout_constraintEnd_toEndOf="@+id/imgzd" app:layout_constraintTop_toBottomOf="@+id/imgzd_mf" app:layout_constraintStart_toStartOf="@+id/imgzd_mf" app:layout_constraintEnd_toEndOf="@+id/imgzd_mf" android:layout_marginTop="15dp"/> <ImageView android:id="@+id/imgzy" android:id="@+id/imgzy_mf" android:layout_width="66dp" android:layout_height="66dp" android:src="@mipmap/ic_guangxian" app:layout_constraintTop_toTopOf="parent" app:layout_constraintLeft_toRightOf="@+id/imgzd" app:layout_constraintRight_toLeftOf="@+id/imghd" app:layout_constraintLeft_toRightOf="@+id/imgzd_mf" app:layout_constraintRight_toLeftOf="@+id/imghd_mf" android:layout_marginRight="57dp"/> <TextView @@ -179,17 +182,17 @@ android:text="ä¸è¦ç¨ç¼" android:textColor="#ff999999" android:textSize="21sp" app:layout_constraintTop_toTopOf="@+id/tv_pm" app:layout_constraintStart_toStartOf="@+id/imgzy" app:layout_constraintEnd_toEndOf="@+id/imgzy"/> app:layout_constraintTop_toTopOf="@+id/tv_pm_mf" app:layout_constraintStart_toStartOf="@+id/imgzy_mf" app:layout_constraintEnd_toEndOf="@+id/imgzy_mf"/> <ImageView android:id="@+id/imghd" android:id="@+id/imghd_mf" android:layout_width="66dp" android:layout_height="66dp" android:src="@mipmap/ic_zhengdui" app:layout_constraintTop_toTopOf="parent" app:layout_constraintLeft_toRightOf="@+id/imgzy" app:layout_constraintLeft_toRightOf="@+id/imgzy_mf" app:layout_constraintRight_toRightOf="parent"/> <TextView @@ -198,208 +201,387 @@ android:text="ä¸è¦æå¨" android:textColor="#ff999999" android:textSize="21sp" app:layout_constraintTop_toTopOf="@+id/tv_pm" app:layout_constraintStart_toStartOf="@+id/imghd" app:layout_constraintEnd_toEndOf="@+id/imghd"/> app:layout_constraintTop_toTopOf="@+id/tv_pm_mf" app:layout_constraintStart_toStartOf="@+id/imghd_mf" app:layout_constraintEnd_toEndOf="@+id/imghd_mf"/> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/cl_fail" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_face_fail_bg" app:layout_constraintBottom_toBottomOf="@+id/v_sl" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:layout_marginBottom="48dp" android:paddingLeft="15dp" android:paddingRight="15dp" android:paddingTop="7dp" android:paddingBottom="7dp" android:visibility="gone"> android:layout_width="match_parent" android:layout_height="75dp" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="30dp" android:background="@drawable/shape_r30_face_bg" app:commandType="@{1}" app:onClickCommand="@{model.myTypeCommand}" > <ImageView android:id="@+id/img1" android:layout_width="21dp" android:layout_height="21dp" android:src="@mipmap/ic_fail" <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent"/> app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" > <TextView android:id="@+id/tv3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/face_sbsb" android:textColor="#ffffffff" android:textSize="24sp" <ImageView android:layout_width="28dp" android:layout_height="28dp" android:src="@mipmap/ic_shuaka" android:layout_gravity="center_vertical"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="å·å¡éªè¯" android:textColor="#ff279baa" android:textSize="24sp" android:textStyle="bold" android:layout_marginLeft="7dp"/> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/cl_fail" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_face_fail_bg" app:layout_constraintBottom_toBottomOf="@+id/camera_textureview" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:layout_marginBottom="48dp" android:paddingLeft="15dp" android:paddingRight="15dp" android:paddingTop="7dp" android:paddingBottom="7dp" android:visibility="gone"> <ImageView android:id="@+id/img1" android:layout_width="21dp" android:layout_height="21dp" android:src="@mipmap/ic_fail" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent"/> <TextView android:id="@+id/tv3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/face_sbsb" android:textColor="#ffffffff" android:textSize="24sp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toEndOf="@+id/img1" android:layout_marginLeft="7dp"/> <TextView android:id="@+id/tv4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/face_tip2" android:textColor="#ffffffff" android:textSize="18sp" app:layout_constraintTop_toBottomOf="@+id/tv3" app:layout_constraintStart_toStartOf="@+id/tv3" /> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/cl_sj_xuan" android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintTop_toTopOf="@+id/camera_textureview" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:visibility="gone" android:background="@color/white"> <View android:id="@+id/v_sj_sl" android:layout_width="340dp" android:layout_height="340dp" android:background="@mipmap/ic_face" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" /> <TextView android:id="@+id/tv_sj_tip" android:layout_width="0dp" android:layout_height="wrap_content" android:text="è¯·ä¿ææ£è¸å¨åæ¯æ¡ä¸ï¼å¹¶æ ¹æ®æç¤ºå®æè¯å«" android:textColor="#ff666666" android:textSize="24sp" android:gravity="center" app:layout_constraintTop_toBottomOf="@+id/v_sj_sl" android:layout_marginTop="42dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/cl_sj_remind" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintTop_toBottomOf="@+id/tv_sj_tip" android:layout_marginTop="60dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"> <ImageView android:id="@+id/imgzd_sj" android:layout_width="66dp" android:layout_height="66dp" android:src="@mipmap/ic_zhengdui" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toEndOf="@+id/img1" android:layout_marginLeft="7dp"/> app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toLeftOf="@+id/imgzy_sj" android:layout_marginRight="57dp"/> <TextView android:id="@+id/tv4" android:id="@+id/tv_pm_sj" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/face_tip2" android:textColor="#ffffffff" android:textSize="18sp" app:layout_constraintTop_toBottomOf="@+id/tv3" app:layout_constraintStart_toStartOf="@+id/tv3" /> android:text="å¹³è§å±å¹" android:textColor="#ff999999" android:textSize="21sp" app:layout_constraintTop_toBottomOf="@+id/imgzd_sj" app:layout_constraintStart_toStartOf="@+id/imgzd_sj" app:layout_constraintEnd_toEndOf="@+id/imgzd_sj" android:layout_marginTop="15dp"/> <ImageView android:id="@+id/imgzy_sj" android:layout_width="66dp" android:layout_height="66dp" android:src="@mipmap/ic_guangxian" app:layout_constraintTop_toTopOf="parent" app:layout_constraintLeft_toRightOf="@+id/imgzd_sj" app:layout_constraintRight_toLeftOf="@+id/imghd_sj" android:layout_marginRight="57dp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ä¸è¦ç¨ç¼" android:textColor="#ff999999" android:textSize="21sp" app:layout_constraintTop_toTopOf="@+id/tv_pm_sj" app:layout_constraintStart_toStartOf="@+id/imgzy_sj" app:layout_constraintEnd_toEndOf="@+id/imgzy_sj"/> <ImageView android:id="@+id/imghd_sj" android:layout_width="66dp" android:layout_height="66dp" android:src="@mipmap/ic_zhengdui" app:layout_constraintTop_toTopOf="parent" app:layout_constraintLeft_toRightOf="@+id/imgzy_sj" app:layout_constraintRight_toRightOf="parent"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ä¸è¦æå¨" android:textColor="#ff999999" android:textSize="21sp" app:layout_constraintTop_toTopOf="@+id/tv_pm_sj" app:layout_constraintStart_toStartOf="@+id/imghd_sj" app:layout_constraintEnd_toEndOf="@+id/imghd_sj"/> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/cl_sj_rl" android:layout_width="match_parent" android:layout_height="75dp" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="30dp" android:visibility="visible"> <LinearLayout android:id="@+id/ll_01" android:layout_width="wrap_content" android:layout_height="match_parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" android:background="@drawable/shape_r30_face_bg" android:paddingLeft="30dp" android:paddingRight="30dp" app:commandType="@{2}" app:onClickCommand="@{model.myTypeCommand}"> <ImageView android:layout_width="28dp" android:layout_height="28dp" android:src="@mipmap/ic_shuaka" android:layout_gravity="center_vertical"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="å·å¡éªè¯" android:textColor="#ff279baa" android:textSize="24sp" android:layout_marginLeft="7dp" android:textStyle="bold" android:layout_gravity="center_vertical"/> </LinearLayout> <LinearLayout android:id="@+id/ll_02" android:layout_width="0dp" android:layout_height="match_parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toRightOf="@+id/ll_01" app:layout_constraintRight_toRightOf="parent" android:background="@drawable/shape_r25_blue_bg" android:layout_marginLeft="20dp" app:commandType="@{3}" app:onClickCommand="@{model.myTypeCommand}" android:gravity="center"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="å¼å§éªè¯" android:textColor="@color/white" android:textSize="24sp" android:textStyle="bold" /> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/cl_card" android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintTop_toTopOf="@+id/camera_textureview" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:background="@color/white" android:visibility="gone"> <View android:id="@+id/v_c_sl" android:layout_width="340dp" android:layout_height="340dp" android:background="@mipmap/ic_shuaka2" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" /> <TextView android:id="@+id/tv_c_tip" android:layout_width="0dp" android:layout_height="wrap_content" android:text="请å°ICå¡è´´è¿å·å¡åºï¼åç1-2ç§" android:textColor="#ff666666" android:textSize="24sp" android:gravity="center" app:layout_constraintTop_toBottomOf="@+id/v_c_sl" android:layout_marginTop="42dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="75dp" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="30dp" android:background="@drawable/shape_r30_face_bg" app:commandType="@{4}" app:onClickCommand="@{model.myTypeCommand}" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" > <ImageView android:layout_width="28dp" android:layout_height="28dp" android:src="@mipmap/ic_renlian" android:layout_gravity="center_vertical"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="人è¸éªè¯" android:textColor="#ff279baa" android:textSize="24sp" android:textStyle="bold" android:layout_marginLeft="7dp"/> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/bt_sk" android:id="@+id/cl_jiu" android:layout_width="match_parent" android:layout_height="75dp" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:layout_height="0dp" app:layout_constraintTop_toTopOf="@+id/camera_textureview" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="30dp" android:background="@drawable/shape_r30_face_bg" app:commandType="@{1}" app:onClickCommand="@{model.myTypeCommand}" android:visibility="visible"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" > <ImageView android:layout_width="28dp" android:layout_height="28dp" android:src="@mipmap/ic_shuaka" android:layout_gravity="center_vertical"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="å·å¡éªè¯" android:textColor="#ff279baa" android:textSize="24sp" android:textStyle="bold" android:layout_marginLeft="7dp"/> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/cl_sj_rl" android:layout_width="match_parent" android:layout_height="75dp" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="30dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:background="@color/white" android:visibility="gone"> <LinearLayout android:id="@+id/ll_01" android:layout_width="wrap_content" android:layout_height="match_parent" <View android:id="@+id/v_jiu_sl" android:layout_width="340dp" android:layout_height="340dp" android:background="@mipmap/ic_jiujingjiance" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" android:background="@drawable/shape_r30_face_bg" android:paddingLeft="30dp" android:paddingRight="30dp" app:commandType="@{2}" app:onClickCommand="@{model.myTypeCommand}"> app:layout_constraintEnd_toEndOf="parent" /> <ImageView android:layout_width="28dp" android:layout_height="28dp" android:src="@mipmap/ic_shuaka" android:layout_gravity="center_vertical"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="å·å¡éªè¯" android:textColor="#ff279baa" android:textSize="24sp" android:layout_marginLeft="7dp" android:textStyle="bold" android:layout_gravity="center_vertical"/> </LinearLayout> <LinearLayout android:id="@+id/ll_02" <TextView android:id="@+id/tv_jiu_tip" android:layout_width="0dp" android:layout_height="match_parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toRightOf="@+id/ll_01" app:layout_constraintRight_toRightOf="parent" android:background="@drawable/shape_r25_blue_bg" android:layout_marginLeft="20dp" app:commandType="@{3}" app:onClickCommand="@{model.myTypeCommand}" android:gravity="center"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="å¼å§éªè¯" android:textColor="@color/white" android:textSize="24sp" android:textStyle="bold" /> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/cl_sj_sk" android:layout_width="match_parent" android:layout_height="75dp" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="30dp" android:background="@drawable/shape_r30_face_bg" app:commandType="@{4}" app:onClickCommand="@{model.myTypeCommand}" android:visibility="gone"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:text="请æ¿èµ·é ç²¾æ£æµä»ªå¹æ°" android:textColor="#ff666666" android:textSize="24sp" android:gravity="center" app:layout_constraintTop_toBottomOf="@+id/v_jiu_sl" android:layout_marginTop="42dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" > app:layout_constraintEnd_toEndOf="parent"/> <ImageView android:layout_width="28dp" android:layout_height="28dp" android:src="@mipmap/ic_renlian" android:layout_gravity="center_vertical"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="人è¸éªè¯" android:textColor="#ff279baa" android:textSize="24sp" android:textStyle="bold" android:layout_marginLeft="7dp"/> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout @@ -466,5 +648,54 @@ </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/cl_jiujinOk" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_jiujin_ok" android:paddingLeft="40dp" android:paddingRight="40dp" android:paddingTop="50dp" android:paddingBottom="50dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:visibility="gone"> <ImageView android:id="@+id/img_jiu" android:layout_width="45dp" android:layout_height="45dp" android:src="@mipmap/ic_pass" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="æ£æµéè¿" android:textColor="#ffffffff" android:textSize="33sp" app:layout_constraintTop_toBottomOf="@+id/img_jiu" android:layout_marginTop="10dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/> </androidx.constraintlayout.widget.ConstraintLayout> <EditText android:id="@+id/et_ewm" android:layout_width="100dp" android:layout_height="wrap_content" android:text="" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:background="@null" /> </androidx.constraintlayout.widget.ConstraintLayout> </layout> keyCabinet-android/app/src/main/res/layout/main_activity.xml
@@ -14,13 +14,13 @@ android:layout_height="match_parent" tools:context=".ui.main.MainActivity" > <ImageView android:id="@+id/img" android:layout_width="50dp" android:layout_height="50dp" <TextureView android:id="@+id/checkNirTexture" android:layout_width="wrap_content" android:layout_height="wrap_content" android:alpha="0" app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toEndOf="parent" /> app:layout_constraintStart_toStartOf="parent"/> <TextView android:id="@+id/tv_m" @@ -363,10 +363,12 @@ </androidx.constraintlayout.widget.ConstraintLayout> <androidx.core.widget.NestedScrollView android:id="@+id/nsv" android:layout_width="match_parent" android:layout_height="200dp" app:layout_constraintTop_toTopOf="parent" android:background="@color/white"> android:background="@color/white" android:visibility="gone"> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" @@ -399,5 +401,21 @@ </androidx.core.widget.NestedScrollView> <ImageView android:id="@+id/img" android:layout_width="50dp" android:layout_height="50dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toEndOf="parent" /> <ImageView android:id="@+id/img_left" android:layout_width="50dp" android:layout_height="50dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> </layout> keyCabinet-android/app/src/main/res/layout/manage_login_activity.xml
@@ -27,6 +27,18 @@ android:layout_marginTop="90dp" android:layout_marginLeft="45dp"/> <TextView android:id="@+id/tv_djs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="30s" android:textColor="#ff279baa" android:textSize="24sp" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="33dp" app:layout_constraintEnd_toEndOf="parent" android:layout_marginRight="30dp"/> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="0dp" keyCabinet-android/app/src/main/res/layout/popup_menu_home.xml
@@ -62,44 +62,11 @@ </RelativeLayout> <View android:id="@+id/view_2" android:layout_width="152dp" android:layout_height="1dp" android:layout_centerHorizontal="true" android:layout_below="@id/relative_manager" android:background="#777777"/> <RelativeLayout android:id="@+id/relative_camra" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:layout_below="@id/view_2" android:paddingTop="15dp" android:paddingBottom="15dp" android:paddingLeft="20dp" android:paddingRight="20dp" android:background="@drawable/button_selector_homemenu_item1"> <ImageView android:id="@+id/image_ca" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/icon_pop_camra" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="管çåç»å½" android:layout_toRightOf="@id/image_ca" android:layout_marginLeft="9dp" android:textColor="@color/white" android:textSize="16sp" /> </RelativeLayout> <View android:id="@+id/view_3" android:layout_width="152dp" android:layout_height="1dp" android:layout_centerHorizontal="true" android:layout_below="@id/relative_camra" android:layout_below="@id/relative_manager" android:background="#777777"/> <RelativeLayout android:id="@+id/rl_err" keyCabinet-android/app/src/main/res/mipmap-xxhdpi/default_nodata.jpgBinary files differ
keyCabinet-android/app/src/main/res/mipmap-xxhdpi/default_nodata.png
keyCabinet-android/app/src/main/res/mipmap-xxhdpi/ic_pass.png
keyCabinet-android/app/src/main/res/mipmap-xxhdpi/ic_viewfinder.pngkeyCabinet-android/app/src/main/res/mipmap-xxhdpi/img_loading.pngkeyCabinet-android/app/src/main/res/values/styles.xml
@@ -68,7 +68,7 @@ <item name="placeholderImage">@mipmap/img_loading</item> <item name="placeholderImageScaleType">centerInside</item> <item name="failureImage">@mipmap/img_loading</item> <item name="failureImageScaleType">centerInside</item> <item name="failureImageScaleType">fitXY</item> </style> <style name="sim_head"> keyCabinet-android/app/src/test/java/com/doumee/ticketmachine/ExampleUnitTest.java
@@ -4,24 +4,19 @@ import org.junit.Test; import java.util.regex.Matcher; import java.util.regex.Pattern; import static com.doumee.keyCabinet.utils.i485.SportUtils.hexToBinary; public class ExampleUnitTest { @Test public void addition_isCorrect() { String s = "80010000FFEF33B2"; String dm = s.substring(4,12); System.out.println("===1>"+dm); dm = dm.replaceAll("0",""); System.out.println("===2>"+dm); dm = SportUtils.hexToBinary(dm); System.out.println("===3>"+dm); StringBuilder sb = new StringBuilder(dm); dm = sb.reverse().toString(); System.out.println("===4>"+dm); for(int i=1;i<=dm.length();i++){ String key = SportUtils.intToHex(i); System.out.println("===>"+key+","+("1".equals(dm.substring(i-1,i))?"å ³":"å¼")); String s = "Result:12.00mg/100ml"; Pattern pattern = Pattern.compile("([0-9]+\\.[0-9]+)"); Matcher matcher = pattern.matcher(s); if (matcher.find()) { System.out.println(matcher.group(1)); // è¾åº: 12.00 } } keyCabinet-android/datalibrary/src/main/java/com/example/datalibrary/manager/FaceSDKManager.java
@@ -308,6 +308,17 @@ } private static BDFaceImageInstance rgbInstance =null; private LivenessModel livenessModel; /** * 0:管çåï¼1ï¼ç¨æ· * @param groupId */ public void setGroupId(String groupId){ if(livenessModel!=null){ livenessModel.setGroupId(groupId); } } /** * æ£æµ-æ´»ä½-ç¹å¾-äººè¸æ£ç´¢æµç¨ * @@ -318,7 +329,6 @@ * @param faceDetectCallBack */ public void onDetectCheck( String groupId, final BDFaceImageConfig bdFaceImageConfig, final BDFaceImageConfig bdNirFaceImageConfig, final BDFaceImageConfig bdDepthFaceImageConfig, @@ -329,8 +339,7 @@ } long startTime = System.currentTimeMillis(); // åå»ºæ£æµç»æå卿°æ® LivenessModel livenessModel = new LivenessModel(); livenessModel.setGroupId(groupId); livenessModel = new LivenessModel(); // åå»ºæ£æµå¯¹è±¡ï¼å¦æåå§æ°æ®YUVï¼è½¬ä¸ºç®æ³æ£æµçå¾çBGR // TODO: ç¨æ·è°æ´æè½¬è§åº¦åæ¯å¦éåï¼ææºåå¼åçéè¦å¨æéé //System.out.println("==rgbInstance==>åå§å"); @@ -1213,7 +1222,7 @@ if (feat != null && feat.getScore() > threholdScore) { User userOld = FaceApi.getInstance().getUserListById(feat.getId()); //System.out.println("==isOk==>å¹é å°ç±»å:"+userOld.getUserName()); if("0".equals(userOld.getGroupId())){ if("1".equals(userOld.getGroupId())){ user = userOld; topFeature = feat; break; keyCabinet-android/lib_coremodel/src/main/res/layout/toast_view.xml
@@ -13,7 +13,7 @@ android:id="@+id/message" android:text="ææ¯toastææ¯toast" android:textColor="@color/white" android:textSize="16sp" android:textSize="24sp" android:padding="@dimen/activity_horizontal_margin" android:background="@drawable/toast_view_bg" android:gravity="center"/>