From 3e3e3753178aa7f8d239b540daa4c974b5ccaa3d Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期二, 04 七月 2017 12:28:19 +0800
Subject: [PATCH]
---
VisitFace/DemoForBsk/app/src/main/res/layout/fragment_device_right_camera2.xml | 2
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java | 331 ++++++++++++++++++++++++++++++++++++++++++------------
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/RegisterMng.java | 26 +++
3 files changed, 281 insertions(+), 78 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 d332cb4..5a6a0bd 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
@@ -53,18 +53,23 @@
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;
@@ -132,6 +137,8 @@
private File idCardImageCaptureFile = null;
+ private String idCardHeadPhotoPath = "";
+
private static RegisterFragment instance = new RegisterFragment();
public static RegisterFragment getInstance() {
@@ -169,26 +176,6 @@
@OnClick(R.id.fragment_register_save)
public void fragment_register_save_click(View v) {
- readIdCard();
- //BaseApplication.getInstance().bindService();
- if (1==1) {
- return;
- }
-
-// RegisterMng.getInstance().add(null);
-// if (1==1) {
-// return;
-// }
-
- if (!BaseApplication.deviceAvailable) {
- return;
- }
-
-// SurveillanceMng.getInstance().addBitmap(new ArrayList(), new byte[]{1,2,3}, 3, "1");
-//
-// if (1==1) {
-// return;
-// }
RequestParams params = new RequestParams();
String name = fragment_register_name.getValue();
@@ -324,38 +311,7 @@
} else {
params.addBodyParameter("idCardPhoto", writeToFile("idCardPhoto", new byte[]{}));
}
-
-
- class ConnectionTask extends AsyncTask<String, Void, String> {
- private String json = "";
- @Override
- protected String doInBackground(String... urls) {
- try {
-// Uploader uploader = new Uploader("", AppApi.BASE_URL + AppApi.REGISTER_ADD);
-// json = uploader.upload("", pd);
- return json;
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
-
- @Override
- protected void onPostExecute(String result) {
- try {
- Toast.makeText(BaseApplication.getInstance(),"娣诲姞鎴愬姛", Toast.LENGTH_SHORT).show();
- //RegisterFragment.getInstance().resetForm();
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
-
- }
-// ConnectionTask task = new ConnectionTask();
-// String[] params1 = new String[2];
-// task.execute(params1);
-
- RegisterMng.getInstance().add(params);
+ RegisterMng.getInstance().add(params, idCardHeadPhotoPath);
}
public void set_fragment_register_surveillance_photo(SurveillanceQueryItem item) {
@@ -476,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");
@@ -484,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("韬唤璇�");
@@ -624,11 +579,56 @@
@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(1000);
+ readIdCard();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
}
public void readIdCard() {
try {
- Thread.sleep(100);
+ if (!registerFragmentVisible) {
+ return;
+ }
RFIDReader idCardReader = RFIDReader.getInstance(BaseApplication.getInstance(), "uart");
idCardReader.setUartDeviceName("/dev/ttyS1");
@@ -643,50 +643,209 @@
idCardReader.control(ReaderExtra.ID_READ_TEXT_PHOTO, baos);
String textPhoto = byteArrayToHexString(baos.toByteArray());
if (textPhoto != null) {
- String[] decodeInfo = new String[10];
- StringBuilder imagePath = new StringBuilder();
+ 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);
- String name = decodeInfo[0];
- String sex = decodeInfo[1];
- String nation = decodeInfo[2];
- String birth = decodeInfo[3];
- String address = decodeInfo[4];
- String idNumber = decodeInfo[5];
- String office = decodeInfo[6];
- String validDate = decodeInfo[7] + "-" + decodeInfo[8];
- String photo = imagePath.toString();
+ 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];
- comparePictures();
+ 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 void comparePictures() {
+ private boolean registerFragmentVisible = false;
+
+ @Override
+ public void setMenuVisibility(boolean menuVisible) {
+ super.setMenuVisibility(menuVisible);
+ registerFragmentVisible = menuVisible;
+ }
+
+ private void testComparePicturesWithJpeg() {
RequestParams params = new RequestParams();
- if (fragment_register_surveillance_photo_img != null) {
+ 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();
- fragment_register_surveillance_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, 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 (fragment_register_id_card_photo_img != null) {
+ 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();
- fragment_register_id_card_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, 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[]{}));
}
@@ -709,7 +868,31 @@
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[]{};
+ }
}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/RegisterMng.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/RegisterMng.java
index cba98be..90e48bf 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/RegisterMng.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/RegisterMng.java
@@ -3,6 +3,7 @@
import android.widget.Toast;
import cn.com.basic.face.base.BaseApplication;
+import cn.com.basic.face.discern.entity.Device;
import cn.com.basic.face.fragment.RegisterFragment;
import cn.com.basic.face.util.AppApi;
@@ -11,6 +12,7 @@
import java.io.File;
import java.io.FileWriter;
+import java.util.List;
import cn.com.basic.face.discern.common.BaseCommonCallBack;
@@ -22,7 +24,7 @@
return instance;
}
- public void add(RequestParams params) {
+ public void add(RequestParams params, String idCardHeadPhoto) {
if (!BaseApplication.deviceAvailable) {
return;
}
@@ -60,6 +62,7 @@
if (!f4.exists()) {
f4.createNewFile();
}
+
FileWriter fw0 = new FileWriter(f0);
fw0.write("test1");
fw0.close();
@@ -75,6 +78,13 @@
params.addBodyParameter("surveillancePhoto", f2);
params.addBodyParameter("uploadCustomPhoto", f3);
params.addBodyParameter("idCardPhoto", f4);
+ if (idCardHeadPhoto != null && !"".equals(idCardHeadPhoto)) {
+ File f5 = new File(idCardHeadPhoto);
+ if (!f5.exists()) {
+ f5.createNewFile();
+ }
+ params.addBodyParameter("idCardHeadPhoto", f5);
+ }
x.http().post(params, new BaseCommonCallBack() {
@Override
public void success() {
@@ -107,7 +117,7 @@
if (!f2.exists()) {
f2.createNewFile();
}
- File f4 = new File(path, "idCardPhoto");
+ File f4 = new File(path, "idCardHeadPhoto");
if (!f4.exists()) {
f4.createNewFile();
}
@@ -122,12 +132,22 @@
x.http().post(params, new BaseCommonCallBack() {
@Override
public void success() {
- Toast.makeText(BaseApplication.getInstance(),"娴嬭瘯鐩镐技搴�", Toast.LENGTH_SHORT).show();
+ List<Double> percents = resultBean.getListBeanOfType(Double.class);
+ if (percents != null && percents.size() > 0) {
+ double percent = percents.get(0);
+ if (percent >= 70) {
+ Toast.makeText(BaseApplication.getInstance(),"璁よ瘉閫氳繃", Toast.LENGTH_SHORT).show();
+ RegisterFragment.getInstance().fillFormWithIdCard();
+ return;
+ }
+ }
+ Toast.makeText(BaseApplication.getInstance(),"璁よ瘉澶辫触", Toast.LENGTH_SHORT).show();
}
});
} catch (Exception e) {
e.printStackTrace();
+ Toast.makeText(BaseApplication.getInstance(),"璁よ瘉澶辫触", Toast.LENGTH_SHORT).show();
}
}
diff --git a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_device_right_camera2.xml b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_device_right_camera2.xml
index 7378e5f..3240f98 100644
--- a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_device_right_camera2.xml
+++ b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_device_right_camera2.xml
@@ -108,7 +108,7 @@
android:layout_height="match_parent"
android:text=""
android:layout_alignParentRight="true"
- android:id="@+id/fragment_device_right_camera1_resolution_more"
+ android:id="@+id/fragment_device_right_camera1_resolution_more1"
/>
<ImageView
android:layout_width="wrap_content"
--
Gitblit v1.8.0