| | |
| | | mfc.connect(); |
| | | // 验证扇区密码 |
| | | boolean isOpen = false; |
| | | for (int i = 0; i < listKeyA.size(); i++) { |
| | | if (mfc.authenticateSectorWithKeyA(a, listKeyA.get(i))) { |
| | | isOpen = true; |
| | | if (listKeyA.get(i).equals(defauleKey)) { |
| | | // 当前为默认白卡密码时写卡时修改密码 |
| | | changePasword(a, mfc); |
| | | |
| | | if (listKeyA.size() != 0) { |
| | | for (int i = 0; i < listKeyA.size(); i++) { |
| | | if (mfc.authenticateSectorWithKeyA(a, listKeyA.get(i))) { |
| | | isOpen = true; |
| | | if (listKeyA.get(i).equals(defauleKey)) { |
| | | // 当前为默认白卡密码时写卡时修改密码 |
| | | changePasword(a, mfc); |
| | | } |
| | | break; |
| | | } |
| | | break; |
| | | } |
| | | } else if (listA_PS.size() != 0 && listA_PS.size() > a) { |
| | | if (mfc.authenticateSectorWithKeyA(a, defauleKey)) { |
| | | isOpen = true; |
| | | |
| | | } else if (mfc.authenticateSectorWithKeyA(a, listA_PS.get(a))) { |
| | | isOpen = true; |
| | | } |
| | | } |
| | | if (isOpen) { |
| | |
| | | boolean isOpen = false; |
| | | if (listKeyA.size() != 0) { |
| | | for (int i = 0; i < listKeyA.size(); i++) { |
| | | if (mfc.authenticateSectorWithKeyA(0, listKeyA.get(i))) { |
| | | if (mfc.authenticateSectorWithKeyA(a, listKeyA.get(i))) { |
| | | isOpen = true; |
| | | if (listKeyA.get(i).equals(defauleKey)) { |
| | | // 当前为默认白卡密码时写卡时修改密码 |
| | |
| | | /** |
| | | * 修改密码 |
| | | * |
| | | * @param 书写的扇区 |
| | | * @param passWord 密码 |
| | | * @return |
| | | */ |
| | |
| | | } |
| | | |
| | | try { |
| | | // 连接NFC |
| | | if (isConnect) { |
| | | mfc.connect(); |
| | | // 连接NFC - 确保总是建立连接,增加重试机制 |
| | | int retryCount = 3; |
| | | boolean connected = false; |
| | | while (retryCount > 0 && !connected) { |
| | | try { |
| | | if (!mfc.isConnected()) { |
| | | mfc.connect(); |
| | | } |
| | | connected = mfc.isConnected(); |
| | | if (!connected) { |
| | | Thread.sleep(100); // 短暂等待后重试 |
| | | retryCount--; |
| | | } |
| | | } catch (Exception e) { |
| | | retryCount--; |
| | | if (retryCount <= 0) { |
| | | throw e; |
| | | } |
| | | Thread.sleep(100); |
| | | } |
| | | } |
| | | |
| | | if (!connected) { |
| | | if (callBack != null) { |
| | | callBack.isSusses(false, "NFC连接失败,请重新靠近卡片"); |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | for (int i = 0; i < passWord.size(); i++) { |
| | | byte[] passWordItem = passWord.get(i); |
| | | // 验证扇区密码 |