From d6119c2d7fe2f802dd224d77bf2d95eeeedb4526 Mon Sep 17 00:00:00 2001 From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674> Date: 星期一, 10 七月 2017 16:08:15 +0800 Subject: [PATCH] --- VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java | 184 +++++++++++++++++++++++---------------------- 1 files changed, 94 insertions(+), 90 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 6caf525..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 @@ -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; @@ -34,23 +41,38 @@ import cn.com.basic.face.service.SurveillanceMng; 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; 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.ivsign.android.IDCReader.IDCReaderSDK; import com.lidroid.xutils.view.annotation.ViewInject; import com.lidroid.xutils.view.annotation.event.OnClick; 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 +139,10 @@ private File idCardImageCaptureFile = null; + private IdCardReaderThread idCardReaderThread = null; + + private String idCardHeadPath = ""; + private static RegisterFragment instance = new RegisterFragment(); public static RegisterFragment getInstance() { @@ -135,15 +161,6 @@ @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) { @@ -157,63 +174,29 @@ fragment_register_phone.requestFocus(); return; } - String gender = fragment_register_gender.getValue(); - if (gender.trim().length() <= 0) { - Toast.makeText(MainActivity.getInstance(), "鎬у埆涓嶈兘涓虹┖", Toast.LENGTH_SHORT).show(); - fragment_register_gender.callOnClick(); - return; - } - String id_class = fragment_register_id_class.getValue(); - if (id_class.trim().length() <= 0) { - Toast.makeText(MainActivity.getInstance(), "璇佷欢绫诲瀷涓嶈兘涓虹┖", Toast.LENGTH_SHORT).show(); - fragment_register_id_class.callOnClick(); - return; - } - String country = fragment_register_country.getValue(); - if (country.trim().length() <= 0) { - Toast.makeText(MainActivity.getInstance(), "鍥界睄涓嶈兘涓虹┖", Toast.LENGTH_SHORT).show(); - fragment_register_country.callOnClick(); - return; - } - String id_num = fragment_register_id_num.getValue(); - if (id_num.trim().length() <= 0) { - Toast.makeText(MainActivity.getInstance(), "璇佷欢缂栧彿涓嶈兘涓虹┖", Toast.LENGTH_SHORT).show(); - fragment_register_id_num.requestFocus(); - return; - } - String birthday = fragment_register_birthday.getValue(); - if (birthday.trim().length() <= 0) { - Toast.makeText(MainActivity.getInstance(), "鍑虹敓鏃ユ湡涓嶈兘涓虹┖", Toast.LENGTH_SHORT).show(); - fragment_register_birthday.callOnClick(); - return; - } String company = fragment_register_company.getValue(); if (company.trim().length() <= 0) { Toast.makeText(MainActivity.getInstance(), "鍏徃鍚嶇О涓嶈兘涓虹┖", Toast.LENGTH_SHORT).show(); fragment_register_company.requestFocus(); return; } - String remark = fragment_register_remark.getValue(); - if (remark.trim().length() <= 0) { - Toast.makeText(MainActivity.getInstance(), "澶囨敞涓嶈兘涓虹┖", Toast.LENGTH_SHORT).show(); - fragment_register_remark.requestFocus(); - return; - } - String visitor_class = fragment_register_visitor_class.getValue(); - if (visitor_class.trim().length() <= 0) { + String visitor_type = fragment_register_visitor_class.getValue(); + if (visitor_type.trim().length() <= 0) { Toast.makeText(MainActivity.getInstance(), "璁垮绫诲瀷涓嶈兘涓虹┖", Toast.LENGTH_SHORT).show(); fragment_register_visitor_class.callOnClick(); return; } + 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.genderId, DictionaryMng.getInstance().getId(fragment_register_gender.getValue())); + params.addBodyParameter(Register.FieldNames.identityTypeId, DictionaryMng.getInstance().getId(fragment_register_id_class.getValue())); + params.addBodyParameter(Register.FieldNames.countryId, DictionaryMng.getInstance().getId(fragment_register_country.getValue())); + params.addBodyParameter(Register.FieldNames.visitorTypeId, DictionaryMng.getInstance().getId(visitor_type)); + params.addBodyParameter(Register.FieldNames.identifyNum, fragment_register_id_num.getValue()); params.addBodyParameter(Register.FieldNames.companyId, company); - params.addBodyParameter(Register.FieldNames.birthday, birthday); + params.addBodyParameter(Register.FieldNames.birthday, fragment_register_birthday.getValue()); + params.addBodyParameter(Register.FieldNames.remark, fragment_register_remark.getValue()); if (surveillanceQueryItem_selectPhoto != null) { params.addBodyParameter("width", surveillanceQueryItem_selectPhoto.getWidth()); @@ -221,47 +204,45 @@ fragment_register_surveillance_photo_img = surveillanceQueryItem_selectPhoto.getBitmap(); NativeImg nativeImg = surveillanceQueryItem_selectPhoto.getNativeImg(); - String str = Base64.encodeToString(nativeImg.image, 0, nativeImg.size, Base64.DEFAULT); - - 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); + byte[] imageBytes = new byte[nativeImg.size]; + for (int i = 0; i < nativeImg.size; i++) { + imageBytes[i] = nativeImg.image[i]; + } + params.addBodyParameter("rawSurveillancePhoto", FileUtil.writeToFile("rawSurveillancePhoto", imageBytes)); + } else { + params.addBodyParameter("rawSurveillancePhoto", FileUtil.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); + + params.addBodyParameter("surveillancePhoto", FileUtil.writeToFile("surveillancePhoto", imageBytes)); + } else { + params.addBodyParameter("surveillancePhoto", FileUtil.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); + + params.addBodyParameter("uploadCustomPhoto", FileUtil.writeToFile("uploadCustomPhoto", imageBytes)); + } else { + params.addBodyParameter("uploadCustomPhoto", FileUtil.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); - } - RegisterMng.getInstance().add(params); + params.addBodyParameter("idCardPhoto", FileUtil.writeToFile("idCardPhoto", imageBytes)); + } else { + params.addBodyParameter("idCardPhoto", FileUtil.writeToFile("idCardPhoto", new byte[]{})); + } + RegisterMng.getInstance().add(params, idCardHeadPath); } public void set_fragment_register_surveillance_photo(SurveillanceQueryItem item) { @@ -305,23 +286,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); @@ -389,6 +363,8 @@ selectedCustomPhotoId = -1; selectedSurveillancePhotoId = -1; + idCardHeadPath = ""; + fragment_register_name.setValue("寰愪慨婧�"+Math.random()); fragment_register_phone.setValue("13691348767"); fragment_register_id_num.setValue("36041419292222222"); @@ -397,11 +373,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("韬唤璇�"); @@ -505,11 +478,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"); @@ -542,6 +510,42 @@ @Override protected void initData() { resetForm(); + idCardReaderThread = new IdCardReaderThread(); + idCardReaderThread.start(); } + public void fillFormWithIdCard(IdCard idCard) { + try { + 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.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(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); + idCardHeadPath = idCard.getHeadPath(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private boolean registerFragmentVisible = false; + + @Override + public void setMenuVisibility(boolean menuVisible) { + super.setMenuVisibility(menuVisible); + registerFragmentVisible = menuVisible; + } + + + + } -- Gitblit v1.8.0