From 5ade7f3782a57abdf418361bd2f9baeb6ad3707e Mon Sep 17 00:00:00 2001 From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674> Date: 星期五, 07 七月 2017 12:51:52 +0800 Subject: [PATCH] --- VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java | 308 +++------------------------------------------------ 1 files changed, 18 insertions(+), 290 deletions(-) diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java index 2b1c9ea..be628d5 100644 --- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java @@ -42,6 +42,10 @@ import cn.com.basic.face.util.BitmapUtil; import cn.com.basic.face.util.Constant; import cn.com.basic.face.util.FileUtil; +import static cn.com.basic.face.util.FileUtil.*; + +import cn.com.basic.face.util.IdCard; +import cn.com.basic.face.util.IdCardReaderThread; import cn.com.basic.face.util.NativeImg; import cn.com.basic.face.util.OkClickedListener; @@ -135,7 +139,9 @@ private File idCardImageCaptureFile = null; - private String idCardHeadPhotoPath = ""; + private IdCardReaderThread idCardReaderThread = null; + + private String idCardHeadPath = ""; private static RegisterFragment instance = new RegisterFragment(); @@ -236,7 +242,7 @@ } else { params.addBodyParameter("idCardPhoto", FileUtil.writeToFile("idCardPhoto", new byte[]{})); } - RegisterMng.getInstance().add(params, idCardHeadPhotoPath); + RegisterMng.getInstance().add(params, idCardHeadPath); } public void set_fragment_register_surveillance_photo(SurveillanceQueryItem item) { @@ -357,7 +363,7 @@ selectedCustomPhotoId = -1; selectedSurveillancePhotoId = -1; - idCardHeadPhotoPath = ""; + idCardHeadPath = ""; fragment_register_name.setValue("寰愪慨婧�"+Math.random()); fragment_register_phone.setValue("13691348767"); @@ -504,100 +510,28 @@ @Override protected void initData() { resetForm(); - new ReadIdCardThread().start(); + idCardReaderThread = new IdCardReaderThread(); + idCardReaderThread.start(); } - public void fillFormWithIdCard() { + public void fillFormWithIdCard(IdCard idCard) { try { - fragment_register_name.setValue(idCard_name); - fragment_register_id_num.setValue(idCard_idNumber); + fragment_register_name.setValue(idCard.getName()); + fragment_register_id_num.setValue(idCard.getCardNumber()); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); - fragment_register_birthday.setValue(sdf1.format(sdf.parse(idCard_birth))); - fragment_register_gender.setValue(idCard_sex); + fragment_register_birthday.setValue(sdf1.format(sdf.parse(idCard.getBirthday()))); + fragment_register_gender.setValue(idCard.getGender()); fragment_register_id_class.setValue("韬唤璇�"); BitmapFactory.Options options = new BitmapFactory.Options(); options.inPreferredConfig = Bitmap.Config.ARGB_8888; - Bitmap bitmap = BitmapFactory.decodeFile(idCardHeadPhotoPath, options); + Bitmap bitmap = BitmapFactory.decodeFile(idCard.getHeadPath(), options); fragment_register_id_card_photo.setImageBitmap(bitmap); fragment_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE); fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE); - } catch (Exception e) { - e.printStackTrace(); - } - } - - private String idCard_name = ""; - private String idCard_idNumber = ""; - private String idCard_birth = ""; - private String idCard_sex = ""; - - class ReadIdCardThread extends Thread { - - @Override - public void run() { - while(true) { - try{ - Thread.sleep(2000); - readIdCard(); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - } - - public void readIdCard() { - try { - if (!registerFragmentVisible || !RegisterFragment.getInstance().isVisible()) { - return; - } - - RFIDReader idCardReader = RFIDReader.getInstance(BaseApplication.getInstance(), "uart"); - idCardReader.setUartDeviceName("/dev/ttyS4"); - ByteArrayInputStream type = new ByteArrayInputStream("uart".getBytes()); - idCardReader.control(ReaderExtra.CONNECT, type); - - idCardReader.open("id_card"); - String cardId = byteArrayToHexString(idCardReader.getUid()); - - idCardReader.open("id_sam"); - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - idCardReader.control(ReaderExtra.ID_READ_TEXT_PHOTO, baos); - String textPhoto = byteArrayToHexString(baos.toByteArray()); - if (textPhoto != null) { - final String[] decodeInfo = new String[10]; - final StringBuilder imagePath = new StringBuilder(); - String path = MainActivity.getInstance().getFilesDir().getAbsolutePath(); - IDCReaderSDK.initialize(path); - IDCReaderSDK.decodeSamAck(textPhoto, decodeInfo, imagePath); - idCard_name = decodeInfo[0]; - idCard_sex = decodeInfo[1]; - idCard_idNumber = decodeInfo[5]; - idCard_birth = decodeInfo[3]; -// final String idCardNation = decodeInfo[2]; -// final String idCardAddress = decodeInfo[4]; -// final String idCardIssuingAuthority = decodeInfo[6]; -// final String idCardValidBegin = decodeInfo[7]; -// final String idCardValidEnd = decodeInfo[8]; - - idCardHeadPhotoPath = imagePath.toString(); - - if (fragment_register_surveillance_photo_img == null) { -// MainActivity.getInstance().runOnUiThread(new Runnable() { -// @Override -// public void run() { -// Toast.makeText(BaseApplication.getInstance(),"璇峰厛閫夋嫨浜虹墿鐓х墖", Toast.LENGTH_SHORT).show(); -// } -// }); - //return; - testComparePicturesWithJpeg(); - } else { - testComparePicturesWithJpeg(); - } - } + idCardHeadPath = idCard.getHeadPath(); } catch (Exception e) { e.printStackTrace(); } @@ -611,213 +545,7 @@ registerFragmentVisible = menuVisible; } - private void testComparePicturesWithJpeg() { - RequestParams params = new RequestParams(); - - if (idCardHeadPhotoPath != null && !"".equals(idCardHeadPhotoPath)) { - BitmapFactory.Options options = new BitmapFactory.Options(); - options.inPreferredConfig = Bitmap.Config.ARGB_8888; - Bitmap bitmap = BitmapFactory.decodeFile(idCardHeadPhotoPath, options); - - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); - byte[] imageBytes = byteArrayOutputStream.toByteArray(); - - params.addBodyParameter("surveillancePhotoW",bitmap.getWidth()+""); - params.addBodyParameter("surveillancePhotoH",bitmap.getWidth()+""); - params.addBodyParameter("surveillancePhoto", writeToFile("surveillancePhoto", imageBytes)); - } else { - params.addBodyParameter("surveillancePhotoW", "0"); - params.addBodyParameter("surveillancePhotoH", "0"); - params.addBodyParameter("surveillancePhoto", writeToFile("surveillancePhoto", new byte[]{})); - } - - - if (idCardHeadPhotoPath != null && !"".equals(idCardHeadPhotoPath)) { - - BitmapFactory.Options options = new BitmapFactory.Options(); - options.inPreferredConfig = Bitmap.Config.ARGB_8888; - Bitmap bitmap = BitmapFactory.decodeFile(idCardHeadPhotoPath, options); - - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); - byte[] imageBytes = byteArrayOutputStream.toByteArray(); - - params.addBodyParameter("idCardPhotoW",bitmap.getWidth()+""); - params.addBodyParameter("idCardPhotoH",bitmap.getWidth()+""); - params.addBodyParameter("idCardPhoto", writeToFile("idCardPhoto", imageBytes)); - } else { - params.addBodyParameter("idCardPhotoW","0"); - params.addBodyParameter("idCardPhotoH","0"); - params.addBodyParameter("idCardPhoto", writeToFile("idCardHeadPhoto", new byte[]{})); - } - - RegisterMng.getInstance().compareSurveillancePhotoAndIdCardPhoto(params); - } - - private void testComparePicturesWithBmp() { - - RequestParams params = new RequestParams(); - - if (idCardHeadPhotoPath != null && !"".equals(idCardHeadPhotoPath)) { - BitmapFactory.Options options = new BitmapFactory.Options(); - options.inPreferredConfig = Bitmap.Config.ARGB_8888; - Bitmap bitmap = BitmapFactory.decodeFile(idCardHeadPhotoPath, options); - params.addBodyParameter("surveillancePhotoW", bitmap.getWidth() + ""); - params.addBodyParameter("surveillancePhotoH", bitmap.getWidth() + ""); - params.addBodyParameter("surveillancePhoto", writeToFile("surveillancePhoto", readFile(new File(idCardHeadPhotoPath)))); - } else { - params.addBodyParameter("surveillancePhotoW", "0"); - params.addBodyParameter("surveillancePhotoH", "0"); - params.addBodyParameter("surveillancePhoto", writeToFile("surveillancePhoto", new byte[]{})); - } - - - if (idCardHeadPhotoPath != null && !"".equals(idCardHeadPhotoPath)) { - BitmapFactory.Options options = new BitmapFactory.Options(); - options.inPreferredConfig = Bitmap.Config.ARGB_8888; - Bitmap bitmap = BitmapFactory.decodeFile(idCardHeadPhotoPath, options); - - - params.addBodyParameter("idCardPhotoW",bitmap.getWidth()+""); - params.addBodyParameter("idCardPhotoH",bitmap.getWidth()+""); - params.addBodyParameter("idCardPhoto", writeToFile("idCardPhoto", readFile(new File(idCardHeadPhotoPath)))); - } else { - params.addBodyParameter("idCardPhotoW","0"); - params.addBodyParameter("idCardPhotoH","0"); - params.addBodyParameter("idCardPhoto", writeToFile("idCardPhoto", new byte[]{})); - } - - RegisterMng.getInstance().compareSurveillancePhotoAndIdCardPhoto(params); - } - - private void comparePictures() { - - RequestParams params = new RequestParams(); - -// if (fragment_register_surveillance_photo_img != null) { -// ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); -// fragment_register_surveillance_photo_img.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream); -// byte[] imageBytes = byteArrayOutputStream.toByteArray(); -// -// params.addBodyParameter("surveillancePhotoW",fragment_register_surveillance_photo_img.getWidth()+""); -// params.addBodyParameter("surveillancePhotoH",fragment_register_surveillance_photo_img.getHeight()+""); -// -// params.addBodyParameter("surveillancePhoto", writeToFile("surveillancePhoto", imageBytes)); -// } else { -// params.addBodyParameter("surveillancePhotoW","0"); -// params.addBodyParameter("surveillancePhotoH","0"); -// params.addBodyParameter("surveillancePhoto", writeToFile("surveillancePhoto", new byte[]{})); -// } - - if (idCardHeadPhotoPath != null && !"".equals(idCardHeadPhotoPath)) { - BitmapFactory.Options options = new BitmapFactory.Options(); - options.inPreferredConfig = Bitmap.Config.ARGB_8888; - Bitmap bitmap = BitmapFactory.decodeFile(idCardHeadPhotoPath, options); - - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); - byte[] imageBytes = byteArrayOutputStream.toByteArray(); - - params.addBodyParameter("surveillancePhotoW",bitmap.getWidth()+""); - params.addBodyParameter("surveillancePhotoH",bitmap.getWidth()+""); - params.addBodyParameter("surveillancePhoto", writeToFile("surveillancePhoto", imageBytes)); - - - /////////////////////////////////// - - - - ///////////////////////////////// -// BitmapFactory.Options options = new BitmapFactory.Options(); -// options.inPreferredConfig = Bitmap.Config.ARGB_8888; -// Bitmap bitmap = BitmapFactory.decodeFile(idCardHeadPhotoPath, options); -// params.addBodyParameter("surveillancePhotoW", bitmap.getWidth() + ""); -// params.addBodyParameter("surveillancePhotoH", bitmap.getWidth() + ""); -// params.addBodyParameter("surveillancePhoto", writeToFile("surveillancePhoto", readFile(new File(idCardHeadPhotoPath)))); - } else { - params.addBodyParameter("surveillancePhotoW", "0"); - params.addBodyParameter("surveillancePhotoH", "0"); - params.addBodyParameter("surveillancePhoto", writeToFile("surveillancePhoto", new byte[]{})); - } - - - if (idCardHeadPhotoPath != null && !"".equals(idCardHeadPhotoPath)) { - - BitmapFactory.Options options = new BitmapFactory.Options(); - options.inPreferredConfig = Bitmap.Config.ARGB_8888; - Bitmap bitmap = BitmapFactory.decodeFile(idCardHeadPhotoPath, options); - - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); - byte[] imageBytes = byteArrayOutputStream.toByteArray(); - - params.addBodyParameter("idCardPhotoW",bitmap.getWidth()+""); - params.addBodyParameter("idCardPhotoH",bitmap.getWidth()+""); - params.addBodyParameter("idCardPhoto", writeToFile("idCardPhoto", imageBytes)); - - - /////////////////////////////////// - -// BitmapFactory.Options options = new BitmapFactory.Options(); -// options.inPreferredConfig = Bitmap.Config.ARGB_8888; -// Bitmap bitmap = BitmapFactory.decodeFile(idCardHeadPhotoPath, options); -// -// -// params.addBodyParameter("idCardPhotoW",bitmap.getWidth()+""); -// params.addBodyParameter("idCardPhotoH",bitmap.getWidth()+""); -// params.addBodyParameter("idCardPhoto", writeToFile("idCardPhoto", readFile(new File(idCardHeadPhotoPath)))); - } else { - params.addBodyParameter("idCardPhotoW","0"); - params.addBodyParameter("idCardPhotoH","0"); - params.addBodyParameter("idCardPhoto", writeToFile("idCardPhoto", new byte[]{})); - } - - RegisterMng.getInstance().compareSurveillancePhotoAndIdCardPhoto(params); - } - - protected static final char[] a = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; - public static String byteArrayToHexString(byte[] bytes) { - if(bytes == null) { - return null; - } else { - char[] hexChars = new char[bytes.length * 2]; - - for(int j = 0; j < bytes.length; ++j) { - int v = bytes[j] & 255; - hexChars[j * 2] = a[v >>> 4]; - hexChars[j * 2 + 1] = a[v & 15]; - } - - return new String(hexChars); - } - } - public static byte[] readFile(File file) { - // Open file - RandomAccessFile f = null; - try { - f = new RandomAccessFile(file, "r"); - // Get and check length - long longlength = f.length(); - int length = (int) longlength; - if (length != longlength) - throw new IOException("File size >= 2 GB"); - // Read file and return data - byte[] data = new byte[length]; - f.readFully(data); - return data; - } catch (Exception e){ - e.printStackTrace(); - } finally { - try { - f.close(); - }catch (Exception e) { - e.printStackTrace(); - } - } - return new byte[]{}; - } } -- Gitblit v1.8.0