From ebc06a3ae3a42bd6ac1359a59c55d5e6f1a0e2f0 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期二, 26 三月 2024 16:18:08 +0800 Subject: [PATCH] 优化通讯 写卡界面添加二次确认 优化用户写卡逻辑,提高写卡速度。 --- app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java | 63 +++++++++++++++++++++---------- 1 files changed, 43 insertions(+), 20 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 f552940..64d3a63 100644 --- a/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java @@ -1,17 +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 androidx.annotation.NonNull; import com.dayu.recharge.MyApplication; import com.dayu.recharge.card.UserCard; @@ -28,14 +27,19 @@ 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 com.dayu.recharge.view.ProgressDialog; +import com.hjq.permissions.OnPermissionCallback; +import com.hjq.permissions.Permission; +import com.hjq.permissions.XXPermissions; import org.json.JSONException; import org.json.JSONObject; import java.util.Arrays; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -49,7 +53,6 @@ public static final int SCAN_IDCARD_REQUEST = 1; UserCardBean userCardBean; - Dialog dialog; ActivityNewCardBinding newCardBinding; AdminDataBean adminData; @@ -75,7 +78,7 @@ @Override public void onClick(View v) { - rxPermission(); + getPermission(); } }); @@ -154,22 +157,40 @@ } - 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(); + } } - @Override @@ -249,7 +270,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) { @@ -257,9 +278,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); @@ -349,6 +371,7 @@ // 姹夊瓧鐨刄nicode鑼冨洿鏄細0x4e00 - 0x9fa5 return (c >= 0x4e00 && c <= 0x9fa5); } + } @Override -- Gitblit v1.8.0