Skip to content

Commit

Permalink
头像还不知道怎么修改
Browse files Browse the repository at this point in the history
  • Loading branch information
qiwenmingshiwo committed Feb 18, 2016
1 parent 63cad74 commit 8a46896
Show file tree
Hide file tree
Showing 3 changed files with 109 additions and 15 deletions.
2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added app/src/main/assets/decodeIDcard
Binary file not shown.
122 changes: 108 additions & 14 deletions app/src/main/java/com/qwm/idcarddemo/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
Expand All @@ -14,6 +15,12 @@
import com.qwm.idcarddemo.utils.StringUtils;
import com.qwm.idcarddemo.view.OneColumDialog;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.List;

Expand All @@ -28,6 +35,10 @@
* @Description: 身份证demo
*/
public class MainActivity extends AppCompatActivity {
private static Process localProcess1;
private static String str;
private static BufferedReader localBufferedReader;
private static StringBuilder localStringBuilder;
/**
* 设备的地址
*/
Expand Down Expand Up @@ -81,10 +92,11 @@ public List<String> getAllBautRate() {

/**
* 选择波特率
*
* @param view
*/
public void selectBauteRate(View view) {
OneColumDialog dialog = new OneColumDialog(this,getAllBautRate(),new OneColumDialog.SelectListener() {
OneColumDialog dialog = new OneColumDialog(this, getAllBautRate(), new OneColumDialog.SelectListener() {
@Override
public void selected(int position, String value) {
bauteRateTv.setText(value);
Expand All @@ -95,15 +107,16 @@ public void selected(int position, String value) {

/**
* 选择设备地址
*
* @param view
*/
public void selectAddress(View view) {
List<String> list = getAllDevicesPath();
if(list==null ||list.size()<=0){
Toast.makeText(this,"木有串口设备哦",Toast.LENGTH_SHORT).show();
if (list == null || list.size() <= 0) {
Toast.makeText(this, "木有串口设备哦", Toast.LENGTH_SHORT).show();
return;
}
OneColumDialog dialog = new OneColumDialog(this,list,new OneColumDialog.SelectListener() {
OneColumDialog dialog = new OneColumDialog(this, list, new OneColumDialog.SelectListener() {
@Override
public void selected(int position, String value) {
addressTv.setText(value);
Expand All @@ -114,48 +127,129 @@ public void selected(int position, String value) {

/**
* 读取
*
* @param view
*/
public void readIdCard(View view) {
Toast.makeText(this,this.getFilesDir().toString(),Toast.LENGTH_SHORT).show();
//1.硬件地址判断
String adress = addressTv.getText().toString().trim();
adress = "/dev/ttyS3";
if ("".equals(adress)){
Toast.makeText(this,"请选择硬件地址",Toast.LENGTH_SHORT).show();
if ("".equals(adress)) {
Toast.makeText(this, "请选择硬件地址", Toast.LENGTH_SHORT).show();
return;
}
//2.波特率判断
String bauteStr = bauteRateTv.getText().toString().trim();
bauteStr = "115200";
if ("".equals(bauteStr)){
Toast.makeText(this,"请选择波特率",Toast.LENGTH_SHORT).show();
if ("".equals(bauteStr)) {
Toast.makeText(this, "请选择波特率", Toast.LENGTH_SHORT).show();
return;
}
new IDCardReadUtils(this).queryIdCardInfo(adress, Integer.parseInt(bauteStr), new IDCardReadUtils.IDCardListener() {
@Override
public void onInfo(IdCardBean bean) {
//输出身份证信息
infoTv.setText(bean.word.toMyString());
headIv.setImageBitmap(bytes2Bimap(bean.headImage));
// headIv.setImageBitmap(bytes2Bimap(bean.headImage));
}
});
}

/**
* 二进制转为图片
*
* @param b
* @return
*/
private Bitmap bytes2Bimap(byte[] b){
if(b.length!=0){
return BitmapFactory.decodeByteArray(b, 0, b.length);
}
else {
private Bitmap bytes2Bimap(byte[] b) {
if (b.length != 0) {
return decodeImage(b);
// return BitmapFactory.decodeByteArray(b, 0, b.length);
} else {
return null;
}

}

private Bitmap decodeImage(byte[] paramArrayOfByte) {
try {
Log.i("数组----",paramArrayOfByte.length+"");
Log.i("this.getFilesDir()",this.getFilesDir().toString());
FileOutputStream localFileOutputStream = this.openFileOutput("zp.bmp", 0);
localFileOutputStream.write(paramArrayOfByte);
localFileOutputStream.flush();
String str1 = this.getFilesDir().toString() + "/decodeIDcard " + this.getFilesDir().toString() + "/" + "zp.bmp";//wlt
Log.e("ID2Manager", "command:" + str1);
boolean bool = execCommand(str1, this.getFilesDir());
String str2 = this.getFilesDir().toString() + "/zp.bmp";
Log.i("str2----",str2);
Log.e("ID2Manager", "img:" + str2);
Bitmap localBitmap = null;
// if (bool)
localBitmap = BitmapFactory.decodeFile(str2);
Log.i("localBitmap---------",localBitmap==null?"null":"is not null");
return localBitmap;
} catch (FileNotFoundException localFileNotFoundException) {
while (true)
localFileNotFoundException.printStackTrace();
} catch (IOException localIOException) {
while (true)
localIOException.printStackTrace();
}
}

private static boolean execCommand(String paramString, File paramFile) {
Runtime localRuntime = Runtime.getRuntime();
Log.e("ID2Manager", "execCommand path is " + paramFile);
try {
Process localProcess2 = localRuntime.exec(paramString, null, paramFile);
localProcess1 = localProcess2;
boolean bool = false;
if (localProcess1 != null) {
localBufferedReader = new BufferedReader(new InputStreamReader(localProcess1.getInputStream()));
localStringBuilder = new StringBuilder("");
}
}
catch (IOException localIOException1) {
// try {
// BufferedReader localBufferedReader;
//// str = localBufferedReader.readLine();
//// if (str != null) ;
// } catch (Exception localIOException2) {
// try {
// while (true) {
// StringBuilder localStringBuilder;
// String str;
// if (localProcess1.waitFor() != 0)
// System.err.println("exit value = " + localProcess1.exitValue());
// boolean bool = true;
// return bool;
//// localIOException1 = localIOException1;
//// Log.e("ID2Manager", "execCommand method error in 1 :\n" + localIOException1.getMessage());
//// Process localProcess1 = null;
// continue;
// localStringBuilder.append(str);
// localStringBuilder.append('\n');
// Log.d("ID2Manager", "exec : " + str);
// continue;
// localIOException2 = localIOException2;
// Log.e("ID2Manager", "execCommand method error in 2 :\n" + localIOException2.getMessage());
// }
// } catch (InterruptedException localInterruptedException) {
// while (true)
// Log.e("ID2Manager", "execCommand method error in 3 :\n" + localInterruptedException.getMessage());
// }
// }
}
return false;
}






private Bitmap headXm(){
String xxx = "574c66007e00320000ff851e5151513e710dd564f3d4095724f3ddf895443cfc59639173e02bfd562ab0078aee612fc793653e8c03f3ce9f348010127b23d5abb0a24bbde4c4ef4b8eb622c86687c2a0a0dd55d5dba16c137de1ce6951aed55251515a3e8160b84f172ba67d1ca405f39b09d6a3cf2892e87c28a696ece08f6cb37ee4d93916c66970b8d78db0165b2558ba157d44f34bed4d02382f4810f1f8a61588abeefe4259ccb2a37299bac8813ec3d57e2cedfefaf015301ecdafc4e2aa3129788416c1114abae5c5037d0ae71cb671af176d72b3f7ab8fb2d8d34f1e9ccc973d759f2c6cfbc706b405c7a28ebc0b73972584958d447cbe2aa67318879fac3094688ae8a22706477117a7975129fa17d6a9a3d42245312f1a0876752a5efac95c5877209626ba443bc424f2e827c190bb30b95db5525358ddfa16ffe9adb2e0de5b90bd47a1856fd8f3d0e38ed220170217e2ae5168873722f674e01bafb21b74b44d3232386740dc5c6829e2cd1d46118dbc443d00ec60d99226121f815339327e4617014b98bf5509554144c635b27e90fb8bc3ae51c5bfc7db37987c901e0de044f0b5e51d4d7742d5ec60d80caa7641797fedcb78d73e09d529d5906a6f4c2a2740df30426df9a8ececd4828c9fd70489b3f3f206bd8161ccc5518d55da71a24a2b7aff2ad474565eec35d7dd1561b550b5bbf2de58261650417efcc0fec1a02f53737e92f66e73c09121048d922f982bb480b986c032e23a3a0ef75ac9f00ea903f0fa978ef9313a3ba7a615c2df4e32edb7e0656aae515c1fefdd8269c4a7c1c37d2b0578f6084a2a8194ea369d3cf1bbe418765b410300327d0516ddc2792fed098922286095873a28a4a1fbd704a2c2369b1ca6126e18cde598d0c9e9167f1d302aea0df69fbb578d34f423f86bf4447b96dcdd7b6a5666881cd8b33e719ba56ea111d84e148ede9702fbc8856285f7907d22d6d3c097ca7c576f57608d34e7c8117ee10ce7d558d2cf98479b30ae514a1e88a4dae9e19346ca976a0248a3774bc30c24bb5ea025b5c87cde62153922e61e914fa4f9c8604235452f4b4366ae51157346215d3cb5075f04e937962fabc6af9ebd91e98832d88daf47d7d29361edadc93ce84b7313a5efc484ed737c45d9d8c59f88388fb28b2b9289057e344b0b08fdfa60ffcb761583115b632df7b037d80dfca568636843ac9b2c02905a3ef2462db40fbb338bae51dea81011adb54ea28a0179f42deefd1831e85a177f4b3f27e929c1795da7851ef5359b679b67b7b2d325abdf4bcfb43f627c3f7655fd4ca7a34d27214b2c00ed42ffb0f63a5a3e84b4a0a328829152fb7ea842591d364a055ff4f890ce4f1a775e96a62d21ba068f7ae162ed2a55edbdd289512c1199e2172ae0d1c8a66bf0efb68f563253b611db3f1761344ed1de";
// String ttt = "NTc0YzY2MDA3ZTAwMzIwMDAwZmY4NTFlNTE1MTUxM2U3MTBkZDU2NGYzZDQwOTU3MjRmM2RkZjg5NTQ0M2NmYzU5NjM5MTczZTAyYmZkNTYyYWIwMDc4YWVlNjEyZmM3OTM2NTNlOGMwM2YzY2U5ZjM0ODAxMDEyN2IyM2Q1YWJiMGEyNGJiZGU0YzRlZjRiOGViNjIyYzg2Njg3YzJhMGEwZGQ1NWQ1ZGJhMTZjMTM3ZGUxY2U2OTUxYWVkNTUyNTE1MTVhM2U4MTYwYjg0ZjE3MmJhNjdkMWNhNDA1ZjM5YjA5ZDZhM2NmMjg5MmU4N2MyOGE2OTZlY2UwOGY2Y2IzN2VlNGQ5MzkxNmM2Njk3MGI4ZDc4ZGIwMTY1YjI1NThiYTE1N2Q0NGYzNGJlZDRkMDIzODJmNDgxMGYxZjhhNjE1ODhhYmVlZmU0MjU5Y2NiMmEzNzI5OWJhYzg4MTNlYzNkNTdlMmNlZGZlZmFmMDE1MzAxZWNkYWZjNGUyYWEzMTI5Nzg4NDE2YzExMTRhYmFlNWM1MDM3ZDBhZTcxY2I2NzFhZjE3NmQ3MmIzZjdhYjhmYjJkOGQzNGYxZTljY2M5NzNkNzU5ZjJjNmNmYmM3MDZiNDA1YzdhMjhlYmMwYjczOTcyNTg0OTU4ZDQ0N2NiZTJhYTY3MzE4ODc5ZmFjMzA5NDY4OGFlOGEyMjcwNjQ3NzExN2E3OTc1MTI5ZmExN2Q2YTlhM2Q0MjI0NTMxMmYxYTA4NzY3NTJhNWVmYWM5NWM1ODc3MjA5NjI2YmE0NDNiYzQyNGYyZTgyN2MxOTBiYjMwYjk1ZGI1NTI1MzU4ZGRmYTE2ZmZlOWFkYjJlMGRlNWI5MGJkNDdhMTg1NmZkOGYzZDBlMzhlZDIyMDE3MDIxN2UyYWU1MTY4ODczNzIyZjY3NGUwMWJhZmIyMWI3NGI0NGQzMjMyMzg2NzQwZGM1YzY4MjllMmNkMWQ0NjExOGRiYzQ0M2QwMGVjNjBkOTkyMjYxMjFmODE1MzM5MzI3ZTQ2MTcwMTRiOThiZjU1MDk1NTQxNDRjNjM1YjI3ZTkwZmI4YmMzYWU1MWM1YmZjN2RiMzc5ODdjOTAxZTBkZTA0NGYwYjVlNTFkNGQ3NzQyZDVlYzYwZDgwY2FhNzY0MTc5N2ZlZGNiNzhkNzNlMDlkNTI5ZDU5MDZhNmY0YzJhMjc0MGRmMzA0MjZkZjlhOGVjZWNkNDgyOGM5ZmQ3MDQ4OWIzZjNmMjA2YmQ4MTYxY2NjNTUxOGQ1NWRhNzFhMjRhMmI3YWZmMmFkNDc0NTY1ZWVjMzVkN2RkMTU2MWI1NTBiNWJiZjJkZTU4MjYxNjUwNDE3ZWZjYzBmZWMxYTAyZjUzNzM3ZTkyZjY2ZTczYzA5MTIxMDQ4ZDkyMmY5ODJiYjQ4MGI5ODZjMDMyZTIzYTNhMGVmNzVhYzlmMDBlYTkwM2YwZmE5NzhlZjkzMTNhM2JhN2E2MTVjMmRmNGUzMmVkYjdlMDY1NmFhZTUxNWMxZmVmZGQ4MjY5YzRhN2MxYzM3ZDJiMDU3OGY2MDg0YTJhODE5NGVhMzY5ZDNjZjFiYmU0MTg3NjViNDEwMzAwMzI3ZDA1MTZkZGMyNzkyZmVkMDk4OTIyMjg2MDk1ODczYTI4YTRhMWZiZDcwNGEyYzIzNjliMWNhNjEyNmUxOGNkZTU5OGQwYzllOTE2N2YxZDMwMmFlYTBkZjY5ZmJiNTc4ZDM0ZjQyM2Y4NmJmNDQ0N2I5NmRjZGQ3YjZhNTY2Njg4MWNkOGIzM2U3MTliYTU2ZWExMTFkODRlMTQ4ZWRlOTcwMmZiYzg4NTYyODVmNzkwN2QyMmQ2ZDNjMDk3Y2E3YzU3NmY1NzYwOGQzNGU3YzgxMTdlZTEwY2U3ZDU1OGQyY2Y5ODQ3OWIzMGFlNTE0YTFlODhhNGRhZTllMTkzNDZjYTk3NmEwMjQ4YTM3NzRiYzMwYzI0YmI1ZWEwMjViNWM4N2NkZTYyMTUzOTIyZTYxZTkxNGZhNGY5Yzg2MDQyMzU0NTJmNGI0MzY2YWU1MTE1NzM0NjIxNWQzY2I1MDc1ZjA0ZTkzNzk2MmZhYmM2YWY5ZWJkOTFlOTg4MzJkODhkYWY0N2Q3ZDI5MzYxZWRhZGM5M2NlODRiNzMxM2E1ZWZjNDg0ZWQ3MzdjNDVkOWQ4YzU5Zjg4Mzg4ZmIyOGIyYjkyODkwNTdlMzQ0YjBiMDhmZGZhNjBmZmNiNzYxNTgzMTE1YjYzMmRmN2IwMzdkODBkZmNhNTY4NjM2ODQzYWM5YjJjMDI5MDVhM2VmMjQ2MmRiNDBmYmIzMzhiYWU1MWRlYTgxMDExYWRiNTRlYTI4YTAxNzlmNDJkZWVmZDE4MzFlODVhMTc3ZjRiM2YyN2U5MjljMTc5NWRhNzg1MWVmNTM1OWI2NzliNjdiN2IyZDMyNWFiZGY0YmNmYjQzZjYyN2MzZjc2NTVmZDRjYTdhMzRkMjcyMTRiMmMwMGVkNDJmZmIwZjYzYTVhM2U4NGI0YTBhMzI4ODI5MTUyZmI3ZWE4NDI1OTFkMzY0YTA1NWZmNGY4OTBjZTRmMWE3NzVlOTZhNjJkMjFiYTA2OGY3YWUxNjJlZDJhNTVlZGJkZDI4OTUxMmMxMTk5ZTIxNzJhZTBkMWM4YTY2YmYwZWZiNjhmNTYzMjUzYjYxMWRiM2YxNzYxMzQ0ZWQxZGU=";
Expand Down

0 comments on commit 8a46896

Please sign in to comment.