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;
|
import android.util.DisplayMetrics;
|
import android.view.MotionEvent;
|
import android.view.View;
|
import android.view.WindowManager;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
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;
|
import cn.com.basic.face.base.BaseApplication;
|
import cn.com.basic.face.base.BaseFragment;
|
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;
|
import cn.com.basic.face.service.DictionaryMng;
|
import cn.com.basic.face.service.RegisterMng;
|
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 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;
|
import java.util.List;
|
|
import cn.com.basic.face.base.MainActivity;
|
|
public class RegisterFragment extends BaseFragment implements View.OnClickListener{
|
|
@ViewInject(R.id.fragment_register_name)
|
private RegisterRightFieldTextView fragment_register_name;
|
@ViewInject(R.id.fragment_register_gender)
|
private RegisterRightFieldLabelView fragment_register_gender;
|
@ViewInject(R.id.fragment_register_country)
|
private RegisterRightFieldLabelView fragment_register_country;
|
@ViewInject(R.id.fragment_register_birthday)
|
private RegisterRightFieldLabelView fragment_register_birthday;
|
@ViewInject(R.id.fragment_register_visitor_class)
|
private RegisterRightFieldLabelView fragment_register_visitor_class;
|
@ViewInject(R.id.fragment_register_phone)
|
private RegisterRightFieldTextView fragment_register_phone;
|
@ViewInject(R.id.fragment_register_id_class)
|
private RegisterRightFieldLabelView fragment_register_id_class;
|
@ViewInject(R.id.fragment_register_id_num)
|
private RegisterRightFieldTextView fragment_register_id_num;
|
@ViewInject(R.id.fragment_register_company)
|
private RegisterRightFieldTextView fragment_register_company;
|
@ViewInject(R.id.fragment_register_remark)
|
private RegisterRightFieldTextView fragment_register_remark;
|
@ViewInject(R.id.fragment_register_surveillance_photo)
|
private ImageView fragment_register_surveillance_photo;
|
@ViewInject(R.id.fragment_register_upload_custom_photo)
|
private ImageView fragment_register_upload_custom_photo;
|
@ViewInject(R.id.fragment_register_id_card_photo)
|
private ImageView fragment_register_id_card_photo;
|
@ViewInject(R.id.fragment_register_linear_layout)
|
private LinearLayout fragment_register_linear_layout;
|
@ViewInject(R.id.fragment_register_surveillance_photo_placeholder_image)
|
private ImageView fragment_register_surveillance_photo_placeholder_image;
|
@ViewInject(R.id.fragment_register_upload_custom_photo_placeholder_image)
|
private ImageView fragment_register_upload_custom_photo_placeholder_image;
|
@ViewInject(R.id.fragment_register_id_card_photo_placeholder_image)
|
private ImageView fragment_register_id_card_photo_placeholder_image;
|
@ViewInject(R.id.fragment_register_surveillance_photo_placeholder_text_view)
|
private TextView fragment_register_surveillance_photo_placeholder_text_view;
|
@ViewInject(R.id.fragment_register_upload_custom_photo_placeholder_text_view)
|
private TextView fragment_register_upload_custom_photo_placeholder_text_view;
|
@ViewInject(R.id.fragment_register_id_card_photo_placeholder_text_view)
|
private TextView fragment_register_id_card_photo_placeholder_text_view;
|
|
private static final int fragment_register_surveillance_photo_ = 1;
|
private static final int fragment_register_upload_custom_photo_ = 2;
|
private static final int fragment_register_id_card_photo_ = 3;
|
|
private Bitmap fragment_register_surveillance_photo_img;
|
private Bitmap fragment_register_upload_custom_photo_img;
|
private Bitmap fragment_register_id_card_photo_img;
|
|
private SurveillanceQueryItem surveillanceQueryItem_selectPhoto;
|
private SurveillanceQueryItem surveillanceQueryItem_uploadPhoto;
|
|
public static long selectedSurveillancePhotoId = -1;
|
public static long selectedCustomPhotoId = -1;
|
|
private File idCardImageCaptureFile = null;
|
|
private String idCardHeadPhotoPath = "";
|
|
private static RegisterFragment instance = new RegisterFragment();
|
|
public static RegisterFragment getInstance() {
|
return instance;
|
}
|
@Override
|
protected int getLayoutId() {
|
return R.layout.fragment_register;
|
}
|
|
@OnClick(R.id.fragment_register_add)
|
public void fragment_register_add_click(View view) {
|
resetForm();
|
}
|
|
@OnClick(R.id.fragment_register_save)
|
public void fragment_register_save_click(View v) {
|
RequestParams params = new RequestParams();
|
|
String name = fragment_register_name.getValue();
|
if (name.trim().length() <= 0) {
|
Toast.makeText(MainActivity.getInstance(), "姓名不能为空", Toast.LENGTH_SHORT).show();
|
fragment_register_name.requestFocus();
|
return;
|
}
|
String phone = fragment_register_phone.getValue();
|
if (phone.trim().length() <= 0) {
|
Toast.makeText(MainActivity.getInstance(), "电话不能为空", Toast.LENGTH_SHORT).show();
|
fragment_register_phone.requestFocus();
|
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 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(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, fragment_register_birthday.getValue());
|
params.addBodyParameter(Register.FieldNames.remark, fragment_register_remark.getValue());
|
|
if (surveillanceQueryItem_selectPhoto != null) {
|
params.addBodyParameter("width", surveillanceQueryItem_selectPhoto.getWidth());
|
params.addBodyParameter("height", surveillanceQueryItem_selectPhoto.getHeight());
|
fragment_register_surveillance_photo_img = surveillanceQueryItem_selectPhoto.getBitmap();
|
|
NativeImg nativeImg = surveillanceQueryItem_selectPhoto.getNativeImg();
|
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();
|
|
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();
|
|
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();
|
|
params.addBodyParameter("idCardPhoto", FileUtil.writeToFile("idCardPhoto", imageBytes));
|
} else {
|
params.addBodyParameter("idCardPhoto", FileUtil.writeToFile("idCardPhoto", new byte[]{}));
|
}
|
RegisterMng.getInstance().add(params, idCardHeadPhotoPath);
|
}
|
|
public void set_fragment_register_surveillance_photo(SurveillanceQueryItem item) {
|
surveillanceQueryItem_selectPhoto = item;
|
fragment_register_surveillance_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(item.getBitmap(),
|
(int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
|
fragment_register_surveillance_photo_img = item.getBitmap();
|
fragment_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE);
|
fragment_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
|
}
|
|
public void set_fragment_register_upload_custom_photo(SurveillanceQueryItem item) {
|
surveillanceQueryItem_uploadPhoto = item;
|
fragment_register_upload_custom_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(item.getBitmap(),
|
(int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
|
fragment_register_upload_custom_photo_img = item.getBitmap();
|
|
fragment_register_upload_custom_photo_placeholder_image.setVisibility(View.INVISIBLE);
|
fragment_register_upload_custom_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
|
}
|
|
@Override
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
super.onActivityResult(requestCode, resultCode, data);
|
if (requestCode == fragment_register_surveillance_photo_ && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
|
Uri uri = data.getData();
|
try {
|
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
|
fragment_register_surveillance_photo.setImageBitmap(bitmap);
|
fragment_register_surveillance_photo_img = bitmap;
|
|
fragment_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE);
|
fragment_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
if (requestCode == fragment_register_upload_custom_photo_ && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
|
Uri uri = data.getData();
|
try {
|
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
|
fragment_register_upload_custom_photo.setImageBitmap(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.setWidth(bitmap.getWidth()+"");
|
item.setHeight(bitmap.getHeight()+"");
|
item.setLocalUri(uri);
|
|
setSurveillanceQueryItem_selectPhoto(item);
|
bitmapList.add(item);
|
bitmapList.add(item);
|
bitmapList.add(item);
|
|
SurveillanceMng.getInstance().addBitmap(bitmapList, null, 0, CommonVariables.Camera.IN);
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
if (requestCode == fragment_register_id_card_photo_ && resultCode == Activity.RESULT_OK) {
|
|
try {
|
if (data != null && data.getData() != null) {
|
Uri uri = data.getData();
|
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
|
fragment_register_id_card_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap,
|
(int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
|
fragment_register_id_card_photo_img = bitmap;
|
MainActivity.getInstance().getContentResolver().delete(uri, null, null);
|
|
fragment_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE);
|
fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
|
} else if (idCardImageCaptureFile != null){
|
if (idCardImageCaptureFile.exists()) {
|
BitmapFactory.Options options = new BitmapFactory.Options();
|
options.inJustDecodeBounds = true;
|
BitmapFactory.decodeFile(idCardImageCaptureFile.getAbsolutePath(), options);
|
int width = options.outWidth;
|
int height = options.outHeight;
|
WindowManager wm = (WindowManager) MainActivity.getInstance().getSystemService(Context.WINDOW_SERVICE);
|
int screenWidth = wm.getDefaultDisplay().getWidth();
|
int screenHeight = wm.getDefaultDisplay().getHeight();
|
int dx = width / screenWidth;
|
int dy = height / screenHeight;
|
int scale = 1;
|
if (dx > dy && dy >= 1) {
|
scale = dx;
|
}
|
if (dy > dx && dx >= 1) {
|
scale = dy;
|
}
|
options.inSampleSize = scale;
|
options.inJustDecodeBounds = false;
|
Bitmap bitmap = BitmapFactory.decodeFile(idCardImageCaptureFile.getAbsolutePath(), options);
|
|
fragment_register_id_card_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap,
|
(int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
|
fragment_register_id_card_photo_img = bitmap;
|
MainActivity.getInstance().getContentResolver().delete(Uri.fromFile(idCardImageCaptureFile), null, null);
|
|
fragment_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE);
|
fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
|
idCardImageCaptureFile = null;
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
|
public void resetForm() {
|
selectedCustomPhotoId = -1;
|
selectedSurveillancePhotoId = -1;
|
|
idCardHeadPhotoPath = "";
|
|
fragment_register_name.setValue("徐修溪"+Math.random());
|
fragment_register_phone.setValue("13691348767");
|
fragment_register_id_num.setValue("36041419292222222");
|
fragment_register_birthday.setValue("1985-08-12");
|
fragment_register_company.setValue("贝思科");
|
fragment_register_remark.setValue("备注");
|
|
fragment_register_name.setValue("");
|
fragment_register_id_num.setValue("");
|
fragment_register_birthday.setValue("");
|
|
fragment_register_gender.setValue("男");
|
fragment_register_id_class.setValue("身份证");
|
fragment_register_country.setValue("中国");
|
fragment_register_visitor_class.setValue("普通访客");
|
fragment_register_surveillance_photo_img = null;
|
fragment_register_upload_custom_photo_img = null;
|
fragment_register_id_card_photo_img = null;
|
fragment_register_surveillance_photo.setImageBitmap(null);
|
fragment_register_upload_custom_photo.setImageBitmap(null);
|
fragment_register_id_card_photo.setImageBitmap(null);
|
fragment_register_surveillance_photo_placeholder_image.setVisibility(View.VISIBLE);
|
fragment_register_surveillance_photo_placeholder_text_view.setVisibility(View.VISIBLE);
|
fragment_register_upload_custom_photo_placeholder_image.setVisibility(View.VISIBLE);
|
fragment_register_upload_custom_photo_placeholder_text_view.setVisibility(View.VISIBLE);
|
fragment_register_id_card_photo_placeholder_image.setVisibility(View.VISIBLE);
|
fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.VISIBLE);
|
this.surveillanceQueryItem_selectPhoto = null;
|
this.surveillanceQueryItem_uploadPhoto = null;
|
}
|
|
//@OnClick(R.id.fragment_register_country)
|
public void fragment_register_country_click(View view) {
|
new CountryDialog(fragment_register_linear_layout, new OkClickedListener() {
|
public void onSelected(String value) {
|
fragment_register_country.setValue(value);
|
}
|
},fragment_register_country.getValue());
|
}
|
|
//@OnClick(R.id.fragment_register_gender)
|
public void fragment_register_gender_click(View view) {
|
new SelectDialog(fragment_register_linear_layout, Constant.DialogSelectType.GENDER, new OkClickedListener() {
|
public void onSelected(String value) {
|
fragment_register_gender.setValue(value);
|
}
|
}, fragment_register_gender.getValue());
|
}
|
|
//@OnClick(R.id.fragment_register_birthday)
|
public void fragment_register_birthday_click(View view) {
|
String birthdayStr = fragment_register_birthday.getValue();
|
Date birthday = new Date();
|
if (birthdayStr != null && !"".equals(birthdayStr)) {
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
try {
|
birthday = sdf.parse(birthdayStr);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
new DateSelectDialog(
|
new OkClickedListener(){
|
public void onSelected(String value) {
|
fragment_register_birthday.setValue(value);
|
}
|
}, birthday);
|
}
|
|
//@OnClick(R.id.fragment_register_visitor_class)
|
public void fragment_register_visitor_class_click(View view) {
|
new SelectDialog(fragment_register_linear_layout, Constant.DialogSelectType.VISITOR_TYPE, new OkClickedListener() {
|
public void onSelected(String value) {
|
fragment_register_visitor_class.setValue(value);
|
}
|
}, fragment_register_visitor_class.getValue());
|
}
|
|
//@OnClick(R.id.fragment_register_id_class)
|
public void fragment_register_id_class_click(View view) {
|
new SelectDialog(fragment_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
|
public void onSelected(String value) {
|
fragment_register_id_class.setValue(value);
|
}
|
}, fragment_register_id_class.getValue());
|
}
|
|
@OnClick(R.id.fragment_register_back)
|
public void fragment_register_back_click(View view) {
|
MainActivity.selectPage(0);
|
}
|
|
@OnClick(R.id.fragment_register_surveillance_photo)
|
public void fragment_register_surveillance_photo_click(View view) {
|
SurveillanceFragment.SurveillancePhotoSelectListViewAdapter.selectPhotoOrUploadPhoto = CommonVariables.SelectPhotoType.SELECT_PHOTO;
|
new SurveillancePhotoDialog(fragment_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
|
public void onSelected(String value) {
|
}
|
}, selectedSurveillancePhotoId);
|
}
|
|
@OnClick(R.id.fragment_register_upload_custom_photo)
|
public void fragment_register_upload_custom_photo_click(View view) {
|
SurveillanceFragment.SurveillancePhotoSelectListViewAdapter.selectPhotoOrUploadPhoto = CommonVariables.SelectPhotoType.UPLOAD_PHOTO;
|
new SurveillancePhotoDialog(fragment_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
|
public void onSelected(String value) {
|
}
|
}, selectedCustomPhotoId);
|
}
|
|
@OnClick(R.id.fragment_register_id_card_photo)
|
public void fragment_register_id_card_photo_click(View view) {
|
Intent intent = new Intent();
|
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
|
idCardImageCaptureFile = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".jpg");
|
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(idCardImageCaptureFile));
|
startActivityForResult(intent, fragment_register_id_card_photo_);
|
}
|
|
@Override
|
public void onClick(View v) {}
|
|
public void setRegisterInfo(CheckInQueryItem item) {
|
fragment_register_surveillance_photo.setImageURI(Uri.parse(AppApi.IMAGE_URL_BASE + item.getSurveillancePhoto()));
|
}
|
|
public ImageView get_fragment_register_choose_photo() {
|
return fragment_register_surveillance_photo;
|
}
|
|
public void setChoosePhoto(Bitmap bitmap) {
|
fragment_register_surveillance_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap,
|
(int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
|
fragment_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
|
fragment_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE);
|
}
|
|
public void setSurveillanceQueryItem_selectPhoto(SurveillanceQueryItem item) {
|
this.surveillanceQueryItem_selectPhoto = item;
|
}
|
|
@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[]{};
|
}
|
|
|
}
|