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