From b5b0bd260898f816f171aec59f20098fe67eaffe Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 27 三月 2024 15:46:46 +0800
Subject: [PATCH] IP设置界面调整
---
app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java | 251 ++++++++++++++++++++++++++++++++-----------------
1 files changed, 164 insertions(+), 87 deletions(-)
diff --git a/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java b/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java
index 51d32af..43fea77 100644
--- a/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java
@@ -1,18 +1,16 @@
package com.dayu.recharge.activity;
-import android.Manifest;
-import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.text.InputFilter;
import android.text.Spanned;
import android.text.TextUtils;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
-import com.dayu.recharge.utils.DeviceNumberUtils;
-import com.dayu.recharge.view.ProgressDialog;
-import com.msd.ocr.idcard.LibraryInitOCR;
+import androidx.annotation.NonNull;
+
import com.dayu.recharge.MyApplication;
import com.dayu.recharge.card.UserCard;
import com.dayu.recharge.databinding.ActivityNewCardBinding;
@@ -28,16 +26,25 @@
import com.dayu.recharge.tools.HexUtil;
import com.dayu.recharge.tools.Utils;
import com.dayu.recharge.utils.CRC8;
+import com.dayu.recharge.utils.DeviceNumberUtils;
import com.dayu.recharge.utils.SocketUtil;
import com.dayu.recharge.utils.TipUtil;
-import com.permissionx.guolindev.PermissionX;
-
-import org.json.JSONException;
-import org.json.JSONObject;
+import com.dayu.recharge.utils.ToastUtil;
+import com.dayu.recharge.view.ProgressDialog;
+import com.hjq.permissions.OnPermissionCallback;
+import com.hjq.permissions.Permission;
+import com.hjq.permissions.XXPermissions;
+import com.kernal.passportreader.sdk.CardsCameraActivity;
+import com.kernal.passportreader.sdk.utils.DefaultPicSavePath;
import java.util.Arrays;
+import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+
+import kernal.idcard.android.ResultMessage;
+import kernal.idcard.camera.CardOcrRecogConfigure;
+import kernal.idcard.camera.SharedPreferencesHelper;
/**
* Copyright (C), 2023,
@@ -49,7 +56,6 @@
public static final int SCAN_IDCARD_REQUEST = 1;
UserCardBean userCardBean;
- Dialog dialog;
ActivityNewCardBinding newCardBinding;
AdminDataBean adminData;
@@ -75,47 +81,104 @@
@Override
public void onClick(View v) {
+ getPermission();
+ }
+ });
+
+ newCardBinding.newCardRegistBtn.setOnClickListener(v -> {
+
+ String userName = newCardBinding.newCardName.getText().toString();
+ long date = System.currentTimeMillis();
+ String phone = newCardBinding.newCardPhone.getText().toString();
+ String userID = newCardBinding.newCardId.getText().toString().toUpperCase();
+
+
+ if (!TextUtils.isEmpty(userName)
+ && !TextUtils.isEmpty(phone) && !TextUtils.isEmpty(userID)
+ ) {
+ if (userName.length() <= 1 || !validateName(userName)) {
+ TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭鍚�");
+ } else if (phone.length() < 11 || !isValidPhoneNumber(phone)) {
+ TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭墜鏈哄彿");
+ } else if (!Utils.check(userID)) {
+ TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭韩浠借瘉鍙�");
+ } else {
+ userCardBean = new UserCardBean();
+ userCardBean.setUserName(userName);
+ userCardBean.setDate(date);
+ userCardBean.setSerial(adminData.getSerial());
+ userCardBean.setPhone(phone);
+ userCardBean.setUserID(userID);
+ initCard();
+ }
+
+ } else {
+ TipUtil.show(NewCardActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
+ }
+ });
+
+ //韬唤璇佽瘑鍒�
+ newCardBinding.newCardScanBtn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
rxPermission();
}
});
- newCardBinding.newCardRegistBtn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
+ }
- String userName = newCardBinding.newCardName.getText().toString();
- long date = System.currentTimeMillis();
- String phone = newCardBinding.newCardPhone.getText().toString();
- String userID = newCardBinding.newCardId.getText().toString().toUpperCase();
+ private void rxPermission() {
+ XXPermissions.with(this)
+ // 鐢宠鍗曚釜鏉冮檺
+// .permission(Permission.RECORD_AUDIO)
+ // 鐢宠澶氫釜鏉冮檺
+ .permission(Permission.CAMERA)
+ .request(new OnPermissionCallback() {
-
- if (!TextUtils.isEmpty(userName)
- && !TextUtils.isEmpty(phone) && !TextUtils.isEmpty(userID)
- ) {
- if (userName.length() <= 1 || !validateName(userName)) {
- TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭鍚�");
- return;
- } else if (phone.length() < 11 || !isValidPhoneNumber(phone)) {
- TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭墜鏈哄彿");
- return;
- } else if (!Utils.check(userID)) {
- TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭韩浠借瘉鍙�");
- return;
- } else {
- userCardBean = new UserCardBean();
- userCardBean.setUserName(userName);
- userCardBean.setDate(date);
- userCardBean.setSerial(adminData.getSerial());
- userCardBean.setPhone(phone);
- userCardBean.setUserID(userID);
- initCard();
+ @Override
+ public void onGranted(@NonNull List<String> permissions, boolean allGranted) {
+ if (allGranted) {//鎵�鏈夌敵璇风殑鏉冮檺閮藉凡閫氳繃
+ startCamera();
+ }
}
- } else {
- TipUtil.show(NewCardActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
- }
- }
- });
+ @Override
+ public void onDenied(@NonNull List<String> permissions, boolean doNotAskAgain) {
+ if (doNotAskAgain) {
+ // 濡傛灉鏄姘镐箙鎷掔粷灏辫烦杞埌搴旂敤鏉冮檺绯荤粺璁剧疆椤甸潰
+ } else {
+// toast("鑾峰彇褰曢煶鍜屾棩鍘嗘潈闄愬け璐�");
+ }
+ }
+ });
+ }
+
+ private void startCamera() {
+ CardOcrRecogConfigure.getInstance()
+ .initLanguage(getApplicationContext())
+ .setSaveCut(true)
+ .setOpenIDCopyFuction(true)
+ .setnMainId(getSharedPreferencesStoreMainId())
+ .setnSubID(getSharedPreferencesStoreSubId())
+ .setFlag(0)
+ .setnCropType(0)
+ .setSavePath(new DefaultPicSavePath(this, true));
+ Intent intent = new Intent(this, CardsCameraActivity.class);
+ startActivityForResult(intent, SCAN_IDCARD_REQUEST);
+ }
+
+ private int defValueMainId = 2;
+ private int defValueSubId = 0;
+
+ public int getSharedPreferencesStoreMainId() {
+ return SharedPreferencesHelper.getInt(
+ getApplicationContext(), "nMainId", defValueMainId);
+ }
+
+ public int getSharedPreferencesStoreSubId() {
+ return SharedPreferencesHelper.getInt(
+ getApplicationContext(), "nSubID", defValueSubId);
}
private boolean isValidPhoneNumber(String phoneNumber) {
@@ -157,31 +220,41 @@
}
- private void rxPermission() {
- PermissionX.init(NewCardActivity.this).permissions(Manifest.permission.CAMERA)
- .onExplainRequestReason((scope, deniedList) -> {
+ private void getPermission() {
+ try {
+ XXPermissions.with(this)
+ // 鐢宠鍗曚釜鏉冮檺
+// .permission(Permission.RECORD_AUDIO)
+ // 鐢宠澶氫釜鏉冮檺
+ .permission(Permission.CAMERA)
+ // 璁剧疆鏉冮檺璇锋眰鎷︽埅鍣紙灞�閮ㄨ缃級
+ //.interceptor(new PermissionInterceptor())
+ // 璁剧疆涓嶈Е鍙戦敊璇娴嬫満鍒讹紙灞�閮ㄨ缃級
+ //.unchecked()
+ .request(new OnPermissionCallback() {
-// val message = "PermissionX闇�瑕佹偍鍚屾剰浠ヤ笅鏉冮檺鎵嶈兘姝e父浣跨敤"
- })
- .request((allGranted, grantedList, deniedList) -> {
- if (allGranted) {//鎵�鏈夌敵璇风殑鏉冮檺閮藉凡閫氳繃
- startCamera();
- } else {//鎮ㄦ嫆缁濅簡濡備笅鏉冮檺锛�$deniedList
+ @Override
+ public void onGranted(@NonNull List<String> permissions, boolean allGranted) {
+ if (allGranted) {
+ }
+ }
- }
- });
+ @Override
+ public void onDenied(@NonNull List<String> permissions, boolean doNotAskAgain) {
+ if (doNotAskAgain) {
+ // 濡傛灉鏄姘镐箙鎷掔粷灏辫烦杞埌搴旂敤鏉冮檺绯荤粺璁剧疆椤甸潰
+ } else {
+// toast("鑾峰彇褰曢煶鍜屾棩鍘嗘潈闄愬け璐�");
+ }
+ }
+ });
+ } catch (
+ Throwable e) {
+ e.printStackTrace();
+ }
}
-
- private void startCamera() {
-
- Bundle bundle = new Bundle();
- bundle.putBoolean("saveImage", false);
- bundle.putInt("requestCode", SCAN_IDCARD_REQUEST);
- bundle.putInt("type", 0); //0韬唤璇�, 1椹鹃┒璇�
- LibraryInitOCR.startScan(NewCardActivity.this, bundle);
- }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
@@ -189,29 +262,28 @@
if (resultCode == RESULT_OK) {
switch (requestCode) {
case SCAN_IDCARD_REQUEST:
- String result = data.getStringExtra("OCRResult");
try {
- JSONObject jo = new JSONObject(result);
+ //璺宠浆鎵弿鐣岄潰璇嗗埆瀹屾垚涔嬪悗锛屾暟鎹洖浼�
+ if (data != null) {
+ //鏁版嵁鍥炰紶鐨勮幏鍙�
+ Bundle bundle = data.getBundleExtra("resultbundle");
+ //bundle涓嶄负null锛屼唬琛ㄨ繖璇嗗埆鎴愬姛
+ if (bundle != null) {
+ ResultMessage resultMessage = (ResultMessage) bundle.getSerializable("resultMessage");
+ newCardBinding.newCardName.setText(resultMessage.GetRecogResult[1]);
+ newCardBinding.newCardId.setText(resultMessage.GetRecogResult[6]);
+ newCardBinding.newCardIdTip.setVisibility(View.VISIBLE);
+ } else {
+ String error = data.getStringExtra("error");
+ String StrPath = data.getStringExtra("strpicpath");
+ ToastUtil.show(error);
+ }
-// sb.append(String.format("姝i潰 = %s\n", jo.opt("type")));
-// sb.append(String.format("濮撳悕 = %s\n", jo.opt("name")));
-// sb.append(String.format("鎬у埆 = %s\n", jo.opt("sex")));
-// sb.append(String.format("姘戞棌 = %s\n", jo.opt("folk")));
-// sb.append(String.format("鏃ユ湡 = %s\n", jo.opt("birt")));
-// sb.append(String.format("鍙风爜 = %s\n", jo.opt("num")));
-// sb.append(String.format("浣忓潃 = %s\n", jo.opt("addr")));
-// sb.append(String.format("绛惧彂鏈哄叧 = %s\n", jo.opt("issue")));
-// sb.append(String.format("鏈夋晥鏈熼檺 = %s\n", jo.opt("valid")));
-// sb.append(String.format("鏁翠綋鐓х墖 = %s\n", jo.opt("imgPath")));
-// sb.append(String.format("澶村儚璺緞 = %s\n", jo.opt("headPath")));
-
- newCardBinding.newCardName.setText(jo.opt("name").toString());
- newCardBinding.newCardId.setText(jo.opt("num").toString());
- newCardBinding.newCardIdTip.setVisibility(View.VISIBLE);
-
- } catch (JSONException e) {
- throw new RuntimeException(e);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
}
+
break;
}
}
@@ -260,7 +332,7 @@
initCardRequestBean.setPhone(phoneBuffer.toString());
String userId = userCardBean.getUserID();
initCardRequestBean.setIdCard(SocketUtil.str2HexStr(userId));
- SocketNet.getInstance().sendTestMessage(initCardRequestBean.pack(), new SocketCallBack() {
+ SocketNet.getInstance().sendTestMessage(initCardRequestBean.pack(), "93", new SocketCallBack() {
@Override
public void onSocketResponse(SocketData readData) {
@@ -268,9 +340,10 @@
if (CRC8.isCRC8(readData.getOriginDataBytes())) {
String state = BcdUtil.bcdToStr(readData.getBodyBytes()[26]); //BCD鐮�00鎴愬姛01韬唤璇佸凡娉ㄥ唽02鍏朵粬鍘熷洜澶辫触
+ Log.i("initCard", "state:" + state);
if (state.equalsIgnoreCase("00")) {
- String initPeasantCode = HexUtil.bytesToHex(Arrays.copyOfRange(readData.getBodyBytes(), 10, 26));
+ String initPeasantCode = HexUtil.bytesToHex(Arrays.copyOfRange(readData.getBodyBytes(), 10, 26));
String serial = baseDao.adminDao().findFirst().getSerial();
UserCard userCard = new UserCard();
userCard.setRechargeTimes(0);
@@ -312,8 +385,11 @@
@Override
public void onSocketError(int code, String msg) {
- ProgressDialog.dismiss();
- TipUtil.show(NewCardActivity.this, msg);
+
+ runOnUiThread(() -> {
+ ProgressDialog.dismiss();
+ TipUtil.show(NewCardActivity.this, msg);
+ });
}
});
@@ -360,6 +436,7 @@
// 姹夊瓧鐨刄nicode鑼冨洿鏄細0x4e00 - 0x9fa5
return (c >= 0x4e00 && c <= 0x9fa5);
}
+
}
@Override
--
Gitblit v1.8.0