From 015d93f76b446e3ec3c0dbcc582b77f9e4694ff8 Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期五, 07 七月 2017 11:32:30 +0800
Subject: [PATCH] 

---
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java |  442 +++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 397 insertions(+), 45 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 8dbd821..a267a48 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
@@ -1,11 +1,13 @@
 package cn.com.basic.face.fragment;
 
 import android.app.Activity;
+import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.net.Uri;
+import android.os.AsyncTask;
 import android.os.Environment;
 import android.provider.MediaStore;
 import android.util.Base64;
@@ -18,6 +20,10 @@
 import android.widget.TextView;
 import android.widget.Toast;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.bit.rfid.RFIDReader;
+import com.bit.rfid.ReaderExtra;
 import com.bsk.zhangbo.demoforbsk.R;
 
 import cn.com.basic.face.adapter.SurveillanceFragment;
@@ -26,6 +32,7 @@
 import cn.com.basic.face.base.PictureTaker;
 import cn.com.basic.face.dialog.SurveillancePhotoDialog;
 import cn.com.basic.face.discern.common.CommonVariables;
+import cn.com.basic.face.discern.common.ResultBean;
 import cn.com.basic.face.discern.entity.Register;
 import cn.com.basic.face.discern.query.item.CheckInQueryItem;
 import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
@@ -40,17 +47,30 @@
 import cn.com.basic.face.util.AppApi;
 import cn.com.basic.face.dialog.DateSelectDialog;
 import cn.com.basic.face.dialog.CountryDialog;
+import cn.com.basic.face.util.PostData;
+import cn.com.basic.face.util.Uploader;
 import cn.com.basic.face.widget.register.RegisterRightFieldLabelView;
 import cn.com.basic.face.widget.register.RegisterRightFieldTextView;
 import cn.com.basic.face.dialog.SelectDialog;
 
+import com.facebook.common.file.FileUtils;
+import com.ivsign.android.IDCReader.IDCReaderSDK;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.lidroid.xutils.view.annotation.event.OnClick;
 
+import org.xutils.common.util.FileUtil;
+import org.xutils.common.util.IOUtil;
 import org.xutils.http.RequestParams;
 
+import java.io.BufferedOutputStream;
+import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.RandomAccessFile;
+import java.io.Reader;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -117,6 +137,8 @@
 
     private File idCardImageCaptureFile = null;
 
+    private String idCardHeadPhotoPath = "";
+
     private static RegisterFragment instance = new RegisterFragment();
 
     public static RegisterFragment getInstance() {
@@ -132,18 +154,29 @@
         resetForm();
     }
 
+    private File writeToFile(String fileName, byte[] fileBytes) {
+        try {
+            String dir = MainActivity.getInstance().getFilesDir().getAbsolutePath();
+
+            File file = new File(dir, fileName);
+            if (file.exists()) {
+                file.delete();
+            }
+            file.createNewFile();
+            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(dir, fileName)));
+            bos.write(fileBytes);
+            bos.flush();
+            bos.close();
+            return new File(dir, fileName);
+        }catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
     @OnClick(R.id.fragment_register_save)
     public void fragment_register_save_click(View v) {
         RequestParams params = new RequestParams();
-        DisplayMetrics metrics = getActivity().getResources().getDisplayMetrics();
-
-        int h1 = fragment_register_surveillance_photo.getHeight();
-        int h2 = fragment_register_upload_custom_photo.getHeight();
-        int h3 = fragment_register_id_card_photo.getHeight();
-
-        DisplayMetrics displayMetrics = BaseApplication.getInstance().getResources().getDisplayMetrics();
-        float dpHeight = displayMetrics.heightPixels / displayMetrics.density;
-        float dpWidth = displayMetrics.widthPixels / displayMetrics.density;
 
         String name = fragment_register_name.getValue();
         if (name.trim().length() <= 0) {
@@ -205,14 +238,29 @@
             fragment_register_visitor_class.callOnClick();
             return;
         }
+        final PostData pd = new PostData();
+
+        pd.addValue(Register.FieldNames.username, name);
+        pd.addValue(Register.FieldNames.mobilePhone, phone);
+        pd.addValue(Register.FieldNames.genderId, DictionaryMng.getInstance().getId(gender));
+        pd.addValue(Register.FieldNames.identityTypeId, DictionaryMng.getInstance().getId(id_class));
+        pd.addValue(Register.FieldNames.countryId, DictionaryMng.getInstance().getId(country));
+        pd.addValue(Register.FieldNames.visitorTypeId, DictionaryMng.getInstance().getId(visitor_class));
+        pd.addValue(Register.FieldNames.identifyNum, id_num);
+        pd.addValue(Register.FieldNames.companyId, company);
+        pd.addValue(Register.FieldNames.birthday, birthday);
+
+
         params.addBodyParameter(Register.FieldNames.username, name);
         params.addBodyParameter(Register.FieldNames.mobilePhone, phone);
         params.addBodyParameter(Register.FieldNames.genderId, DictionaryMng.getInstance().getId(gender));
         params.addBodyParameter(Register.FieldNames.identityTypeId, DictionaryMng.getInstance().getId(id_class));
         params.addBodyParameter(Register.FieldNames.countryId, DictionaryMng.getInstance().getId(country));
+        params.addBodyParameter(Register.FieldNames.visitorTypeId, DictionaryMng.getInstance().getId(visitor_class));
         params.addBodyParameter(Register.FieldNames.identifyNum, id_num);
         params.addBodyParameter(Register.FieldNames.companyId, company);
         params.addBodyParameter(Register.FieldNames.birthday, birthday);
+
 
         if (surveillanceQueryItem_selectPhoto != null) {
             params.addBodyParameter("width", surveillanceQueryItem_selectPhoto.getWidth());
@@ -220,47 +268,50 @@
             fragment_register_surveillance_photo_img = surveillanceQueryItem_selectPhoto.getBitmap();
 
             NativeImg nativeImg = surveillanceQueryItem_selectPhoto.getNativeImg();
-            String str = Base64.encodeToString(nativeImg.image, 0, nativeImg.size, Base64.DEFAULT);
+            byte[] imageBytes = new byte[nativeImg.size];
+            for (int i = 0; i < nativeImg.size; i++) {
+                imageBytes[i] = nativeImg.image[i];
+            }
+            pd.addData("rawSurveillancePhoto", "application/octet-stream", imageBytes);
 
-            params.addBodyParameter("base64Image", str);
-        }
-
-        if (surveillanceQueryItem_uploadPhoto != null) {
-//            params.addBodyParameter("width", surveillanceQueryItem_uploadPhoto.getWidth());
-//            params.addBodyParameter("height", surveillanceQueryItem_uploadPhoto.getHeight());
-//            fragment_register_surveillance_photo_img = surveillanceQueryItem_uploadPhoto.getBitmap();
-//
-//            NativeImg nativeImg = surveillanceQueryItem_uploadPhoto.getNativeImg();
-//            String str = Base64.encodeToString(nativeImg.image, 0, nativeImg.size, Base64.DEFAULT);
-//
-//            params.addBodyParameter("base64Image", str);
+            params.addBodyParameter("rawSurveillancePhoto", writeToFile("rawSurveillancePhoto", imageBytes));
+        } else {
+            params.addBodyParameter("rawSurveillancePhoto", writeToFile("rawSurveillancePhoto", new byte[]{}));
         }
 
         if (fragment_register_surveillance_photo_img != null) {
             ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
             fragment_register_surveillance_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
             byte[] imageBytes = byteArrayOutputStream.toByteArray();
-            String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
-            params.addBodyParameter(Register.FieldNames.surveillancePhoto, encodedImage);
+            pd.addData(Register.FieldNames.surveillancePhoto, "application/octet-stream", imageBytes);
+
+            params.addBodyParameter("surveillancePhoto", writeToFile("surveillancePhoto", imageBytes));
+        } else {
+            params.addBodyParameter("surveillancePhoto", writeToFile("surveillancePhoto", new byte[]{}));
         }
 
         if (fragment_register_upload_custom_photo_img != null) {
             ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
             fragment_register_upload_custom_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
             byte[] imageBytes = byteArrayOutputStream.toByteArray();
-            String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
-            params.addBodyParameter(Register.FieldNames.uploadCustomPhoto, encodedImage);
+            pd.addData(Register.FieldNames.uploadCustomPhoto, "application/octet-stream", imageBytes);
+
+            params.addBodyParameter("uploadCustomPhoto", writeToFile("uploadCustomPhoto", imageBytes));
+        } else {
+            params.addBodyParameter("uploadCustomPhoto", writeToFile("uploadCustomPhoto", new byte[]{}));
         }
 
         if (fragment_register_id_card_photo_img != null) {
             ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
             fragment_register_id_card_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
             byte[] imageBytes = byteArrayOutputStream.toByteArray();
-            String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
-            params.addBodyParameter(Register.FieldNames.idCardPhoto, encodedImage);
-        }
+            pd.addData(Register.FieldNames.idCardPhoto, "application/octet-stream", imageBytes);
 
-        RegisterMng.getInstance().add(params);
+            params.addBodyParameter("idCardPhoto", writeToFile("idCardPhoto", imageBytes));
+        } else {
+            params.addBodyParameter("idCardPhoto", writeToFile("idCardPhoto", new byte[]{}));
+        }
+        RegisterMng.getInstance().add(params, idCardHeadPhotoPath);
     }
 
     public void set_fragment_register_surveillance_photo(SurveillanceQueryItem item) {
@@ -304,23 +355,16 @@
             try {
                 Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
                 fragment_register_upload_custom_photo.setImageBitmap(bitmap);
-                //fragment_register_upload_custom_photo_img = bitmap;
 
                 fragment_register_upload_custom_photo_placeholder_image.setVisibility(View.INVISIBLE);
                 fragment_register_upload_custom_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
 
                 List<SurveillanceQueryItem> bitmapList = new ArrayList<>();
                 SurveillanceQueryItem item = new SurveillanceQueryItem();
-//                item.setBitmap(bitmap);
                 item.setWidth(bitmap.getWidth()+"");
                 item.setHeight(bitmap.getHeight()+"");
                 item.setLocalUri(uri);
 
-//                ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-//                bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
-//                byte[] imageBytes = byteArrayOutputStream.toByteArray();
-//                String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
-//                item.setBase64Image(encodedImage);
                 setSurveillanceQueryItem_selectPhoto(item);
                 bitmapList.add(item);
                 bitmapList.add(item);
@@ -388,6 +432,8 @@
         selectedCustomPhotoId = -1;
         selectedSurveillancePhotoId = -1;
 
+        idCardHeadPhotoPath = "";
+
         fragment_register_name.setValue("寰愪慨婧�"+Math.random());
         fragment_register_phone.setValue("13691348767");
         fragment_register_id_num.setValue("36041419292222222");
@@ -396,11 +442,8 @@
         fragment_register_remark.setValue("澶囨敞");
 
         fragment_register_name.setValue("");
-        fragment_register_phone.setValue("");
         fragment_register_id_num.setValue("");
         fragment_register_birthday.setValue("");
-        fragment_register_company.setValue("");
-        fragment_register_remark.setValue("");
 
         fragment_register_gender.setValue("鐢�");
         fragment_register_id_class.setValue("韬唤璇�");
@@ -504,11 +547,6 @@
 
     @OnClick(R.id.fragment_register_id_card_photo)
     public void fragment_register_id_card_photo_click(View view) {
-//        Intent takePicture = new Intent(MainActivity.getInstance(), PictureTaker.class);
-//        startActivityForResult(takePicture, fragment_register_id_card_photo_);
-//        Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
-//        startActivityForResult(takePicture, fragment_register_id_card_photo_);
-
         Intent intent = new Intent();
         intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
         idCardImageCaptureFile = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".jpg");
@@ -541,6 +579,320 @@
     @Override
     protected void initData() {
         resetForm();
+        new ReadIdCardThread().start();
     }
 
+    public void fillFormWithIdCard() {
+        try {
+            fragment_register_name.setValue(idCard_name);
+            fragment_register_id_num.setValue(idCard_idNumber);
+
+            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_id_class.setValue("韬唤璇�");
+            BitmapFactory.Options options = new BitmapFactory.Options();
+            options.inPreferredConfig = Bitmap.Config.ARGB_8888;
+            Bitmap bitmap = BitmapFactory.decodeFile(idCardHeadPhotoPath, 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();
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private boolean registerFragmentVisible = false;
+
+    @Override
+    public void setMenuVisibility(boolean menuVisible) {
+        super.setMenuVisibility(menuVisible);
+        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