From 57dfbac311ccaa6900c0450e71460856010a0bad Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 01 十二月 2023 18:04:09 +0800
Subject: [PATCH] 身份证识别相关资源和代码

---
 app/src/main/java/com/dayu/recharge/activity/CameraActivity.java |  700 ++++++++++++++++++++++++++++++----------------------------
 1 files changed, 362 insertions(+), 338 deletions(-)

diff --git a/app/src/main/java/com/dayu/recharge/activity/CameraActivity.java b/app/src/main/java/com/dayu/recharge/activity/CameraActivity.java
index 8ac11bb..b6d9e72 100644
--- a/app/src/main/java/com/dayu/recharge/activity/CameraActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/CameraActivity.java
@@ -21,6 +21,7 @@
 import android.widget.TextView;
 import android.widget.Toast;
 
+
 import com.dayu.recharge.R;
 import com.dayu.recharge.view.ViewfinderView;
 import com.yunmai.cc.idcard.controler.CameraManager;
@@ -28,399 +29,422 @@
 import com.yunmai.cc.idcard.controler.OcrManager;
 import com.yunmai.cc.idcard.vo.IdCardInfoNew;
 
+import java.io.UnsupportedEncodingException;
+
+
 /**
  * 瑙嗛璇嗗埆绫�
- * 
+ *
  * @author fangcm 2013-03-18
- * 
  */
 
-public class CameraActivity extends BaseActivity implements SurfaceHolder.Callback {
+public class CameraActivity extends Activity implements SurfaceHolder.Callback {
 
-	private final String TAG = "cc_idcard";
+    private final String TAG = "cc_idcard";
 
-	private TextView tvTips;
-	private SurfaceView sv_preview;
-	private SurfaceHolder surfaceHolder;
-	private CameraManager cameraManager;
-	private boolean autoFoucs = true;
-	private ViewfinderView finderView;
-	private OcrManager ocrManager;
-	private Rect rect;
-	private boolean cameraError = false;
-	// private boolean over = false;
+    private TextView tvTips;
+    private SurfaceView sv_preview;
+    private SurfaceHolder surfaceHolder;
+    private CameraManager cameraManager;
+    private boolean autoFoucs = true;
+    private ViewfinderView finderView;
+    private OcrManager ocrManager;
+    private Rect rect;
+    private boolean cameraError = false;
+    // private boolean over = false;
 
-	private Button btnFlash, btnCancel;
-	private ImageView imgTips;
-	private ImageView iv, ivHead;
-	private int typeFront = 1;// 0涓嶅尯鍒� 锛�1姝i潰锛�2鑳岄潰
+    private Button btnFlash, btnCancel;
+    private ImageView imgTips;
+    private ImageView iv, ivHead;
+    private int typeFront = 0;// 0涓嶅尯鍒� 锛�1姝i潰锛�2鑳岄潰
 
-	@Override
-	protected void onCreate(Bundle savedInstanceState) {
-		// TODO Auto-generated method stub
-		super.onCreate(savedInstanceState);
-		setContentView(R.layout.camera);
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        // TODO Auto-generated method stub
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.camera);
 
-		typeFront = this.getIntent().getIntExtra("typeFront", 0);
-		initView();
-		cameraManager = new CameraManager(getBaseContext(), mHandler);
-		mCameraOpenThread.start();
-		try {
-			mCameraOpenThread.join();
-			mCameraOpenThread = null;
-		} catch (Exception e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-			cameraError = true;
-		}
-		if (cameraError) {
-			Toast.makeText(getBaseContext(), "鐓х浉鏈烘湭鍚姩锛�", Toast.LENGTH_SHORT).show();
-			finish();
-			return;
-		}
-		setParameters();
+        typeFront = this.getIntent().getIntExtra("typeFront", 0);
+        initView();
+        cameraManager = new CameraManager(getBaseContext(), mHandler);
+        mCameraOpenThread.start();
+        try {
+            mCameraOpenThread.join();
+            mCameraOpenThread = null;
+        } catch (Exception e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+            cameraError = true;
+        }
+        if (cameraError) {
+            Toast.makeText(getBaseContext(), "鐓х浉鏈烘湭鍚姩锛�", Toast.LENGTH_SHORT).show();
+            finish();
+            return;
+        }
+        setParameters();
 
-	}
+    }
 
-	private Thread mCameraOpenThread = new Thread(new Runnable() {
-		@Override
-		public void run() {
-			try {
-				cameraManager.openCamera();
-			} catch (Exception e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-				cameraError = true;
-			}
-		}
-	});
+    private Thread mCameraOpenThread = new Thread(new Runnable() {
+        @Override
+        public void run() {
+            try {
+                cameraManager.openCamera();
+            } catch (Exception e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+                cameraError = true;
+            }
+        }
+    });
 
-	private void setParameters() {
+    private void setParameters() {
 
-		WindowManager manager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
-		Display display = manager.getDefaultDisplay();
-		int wWidth = display.getWidth();
-		int wHeight = display.getHeight();
+        WindowManager manager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
+        Display display = manager.getDefaultDisplay();
+        int wWidth = display.getWidth();
+        int wHeight = display.getHeight();
 
-		cameraManager.setCameraFlashModel(Camera.Parameters.FLASH_MODE_OFF);
+        cameraManager.setCameraFlashModel(Camera.Parameters.FLASH_MODE_OFF);
 
-		float ps = wWidth * 1.0f / wHeight;
-		cameraManager.setPreviewSize(ps);
+        float ps = wWidth * 1.0f / wHeight;
+        cameraManager.setPreviewSize(ps);
 
-		int pWidth = cameraManager.getPreviewWidth();
-		int pHeight = cameraManager.getPreviewHeight();
-		if (pWidth == 0 || pHeight == 0) {
-			Toast.makeText(getBaseContext(), "鐓х浉鏈烘湭鍚姩锛侊紒", Toast.LENGTH_SHORT).show();
-			finish();
-			return;
-		}
-		Log.i(TAG, pWidth + "<--------W----Preview-----H------->" + pHeight);
-		Log.i(TAG, wWidth + "<--------W----WindowManager-----H------->" + wHeight);
+        int pWidth = cameraManager.getPreviewWidth();
+        int pHeight = cameraManager.getPreviewHeight();
+        if (pWidth == 0 || pHeight == 0) {
+            Toast.makeText(getBaseContext(), "鐓х浉鏈烘湭鍚姩锛侊紒", Toast.LENGTH_SHORT).show();
+            finish();
+            return;
+        }
+        Log.i(TAG, pWidth + "<--------W----Preview-----H------->" + pHeight);
+        Log.i(TAG, wWidth + "<--------W----WindowManager-----H------->" + wHeight);
 
-		int tempWidth = pWidth;
-		int tempHeidht = pHeight;
-		float x = 100.0f;
-		int tempW = pWidth;
-		int tempH = pHeight;
-		if (wWidth > pWidth && wHeight > pHeight) {
-			while (wWidth > tempW && wHeight > tempH) {
-				x++;
-				Log.d(TAG, "---xx----->" + x / 100.0);
-				tempW = (int) (pWidth * x / 100.0);
-				tempH = (int) (pHeight * x / 100.0);
-				if (wWidth > tempW && wHeight > tempH) {
-					tempWidth = tempW;
-					tempHeidht = tempH;
-				}
-			}
-			Log.d(TAG, "<------11--wWidth > pWidth && wHeight > pHeight------>");
-		} else {
-			while (tempWidth > wWidth || tempHeidht > wHeight) {
-				x--;
-				Log.d(TAG, "---xx----->" + x / 100.0);
-				tempWidth = (int) (pWidth * x / 100.0);
-				tempHeidht = (int) (pHeight * x / 100.0);
-			}
-			Log.d(TAG, "<-----22---tempWidth > wWidth || tempHeidht > wHeight------>");
-		}
+        int tempWidth = pWidth;
+        int tempHeidht = pHeight;
+        float x = 100.0f;
+        int tempW = pWidth;
+        int tempH = pHeight;
+        if (wWidth > pWidth && wHeight > pHeight) {
+            while (wWidth > tempW && wHeight > tempH) {
+                x++;
+                Log.d(TAG, "---xx----->" + x / 100.0);
+                tempW = (int) (pWidth * x / 100.0);
+                tempH = (int) (pHeight * x / 100.0);
+                if (wWidth > tempW && wHeight > tempH) {
+                    tempWidth = tempW;
+                    tempHeidht = tempH;
+                }
+            }
+            Log.d(TAG, "<------11--wWidth > pWidth && wHeight > pHeight------>");
+        } else {
+            while (tempWidth > wWidth || tempHeidht > wHeight) {
+                x--;
+                Log.d(TAG, "---xx----->" + x / 100.0);
+                tempWidth = (int) (pWidth * x / 100.0);
+                tempHeidht = (int) (pHeight * x / 100.0);
+            }
+            Log.d(TAG, "<-----22---tempWidth > wWidth || tempHeidht > wHeight------>");
+        }
 
-		Log.d(TAG, tempWidth + "<--------W----setParameters-----H------->" + tempHeidht);
-		// tempWidth = 854;
-		// tempHeidht = 480;
-		ViewGroup.LayoutParams lp = sv_preview.getLayoutParams();
-		lp.width = tempWidth;
-		lp.height = tempHeidht;
-		sv_preview.getHolder().setFixedSize(tempWidth, tempHeidht);
-		sv_preview.setLayoutParams(lp);
+        Log.d(TAG, tempWidth + "<--------W----setParameters-----H------->" + tempHeidht);
+        // tempWidth = 854;
+        // tempHeidht = 480;
+        ViewGroup.LayoutParams lp = sv_preview.getLayoutParams();
+        lp.width = tempWidth;
+        lp.height = tempHeidht;
+        sv_preview.getHolder().setFixedSize(tempWidth, tempHeidht);
+        sv_preview.setLayoutParams(lp);
 
-		surfaceHolder = sv_preview.getHolder();
-		surfaceHolder.addCallback(CameraActivity.this);
-		surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
+        surfaceHolder = sv_preview.getHolder();
+        surfaceHolder.addCallback(CameraActivity.this);
+        surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
 
-		float[] img = finderView.initFinder(tempWidth, tempHeidht, mHandler, typeFront);
+        float[] img = finderView.initFinder(tempWidth, tempHeidht, mHandler, typeFront);
 
-		imgTips.setY(img[0]);
-		imgTips.setX(img[1]);
+        imgTips.setY(img[0]);
+        imgTips.setX(img[1]);
 
-	}
+    }
 
-	private void initView() {
-		sv_preview = (SurfaceView) findViewById(R.id.camera_sv);
-		finderView = (ViewfinderView) findViewById(R.id.camera_finderView);
-		tvTips = (TextView) findViewById(R.id.tv_tips);
-		btnCancel = (Button) findViewById(R.id.bt_cancel);
-		btnFlash = (Button) findViewById(R.id.bt_flash);
-		imgTips = (ImageView) findViewById(R.id.iv_tips);
-		switch (typeFront) {
-		case 0:
-			imgTips.setVisibility(View.GONE);
-			break;
-		case 1:
-			imgTips.setBackgroundResource(R.mipmap.people_face);
-			break;
-		case 2:
-			imgTips.setBackgroundResource(R.mipmap.emblem);
-			break;
+    private void initView() {
+        sv_preview = (SurfaceView) findViewById(R.id.camera_sv);
+        finderView = (ViewfinderView) findViewById(R.id.camera_finderView);
+        tvTips = (TextView) findViewById(R.id.tv_tips);
+        btnCancel = (Button) findViewById(R.id.bt_cancel);
+        btnFlash = (Button) findViewById(R.id.bt_flash);
+        imgTips = (ImageView) findViewById(R.id.iv_tips);
+        switch (typeFront) {
+            case 0:
+                imgTips.setVisibility(View.GONE);
+                break;
+            case 1:
+                imgTips.setBackgroundResource(R.mipmap.people_face);
+                break;
+            case 2:
+                imgTips.setBackgroundResource(R.mipmap.emblem);
+                break;
 
-		default:
-			break;
-		}
+            default:
+                break;
+        }
 
-		btnFlash.setOnClickListener(listener);
-		btnCancel.setOnClickListener(listener);
-	}
+        btnFlash.setOnClickListener(listener);
+        btnCancel.setOnClickListener(listener);
+    }
 
-	private boolean isFlashOn = false;
+    private boolean isFlashOn = false;
 
-	private OnClickListener listener = new OnClickListener() {
+    private OnClickListener listener = new OnClickListener() {
 
-		@Override
-		public void onClick(View v) {
-			// TODO Auto-generated method stub
-			switch (v.getId()) {
-			case R.id.bt_cancel:
-				setResult(998);
-				finish();
-				break;
-			case R.id.bt_flash:
-				if (isFlashOn) {
-					try {
-						if (cameraManager.closeFlashlight()) {
-							btnFlash.setBackgroundDrawable(getResources().getDrawable(R.mipmap.flash_on_s));
-							isFlashOn = false;
-						}
-					} catch (Exception e) {
-						// TODO: handle exception
-					}
+        @Override
+        public void onClick(View v) {
+            // TODO Auto-generated method stub
+            switch (v.getId()) {
+                case R.id.bt_cancel:
+                    setResult(998);
+                    finish();
+                    break;
+                case R.id.bt_flash:
+                    if (isFlashOn) {
+                        try {
+                            if (cameraManager.closeFlashlight()) {
+                                btnFlash.setBackgroundDrawable(getResources().getDrawable(R.mipmap.flash_on_s));
+                                isFlashOn = false;
+                            }
+                        } catch (Exception e) {
+                            // TODO: handle exception
+                        }
 
-				} else {
-					try {
-						if (cameraManager.openFlashlight()) {
-							btnFlash.setBackgroundDrawable(getResources().getDrawable(R.mipmap.flash_off_s));
-							isFlashOn = true;
-						}
-					} catch (Exception e) {
-						// TODO: handle exception
-					}
+                    } else {
+                        try {
+                            if (cameraManager.openFlashlight()) {
+                                btnFlash.setBackgroundDrawable(getResources().getDrawable(R.mipmap.flash_off_s));
+                                isFlashOn = true;
+                            }
+                        } catch (Exception e) {
+                            // TODO: handle exception
+                        }
 
-				}
-				break;
+                    }
+                    break;
 
-			default:
-				break;
-			}
-		}
-	};
+                default:
+                    break;
+            }
+        }
+    };
 
-	private Handler mHandler = new Handler() {
+    private Handler mHandler = new Handler() {
 
-		@Override
-		public void handleMessage(Message msg) {
-			// TODO Auto-generated method stub
-			super.handleMessage(msg);
-			switch (msg.what) {
-			case OcrConstant.TAKE_PREVIEW_DATA_OK:
+        @Override
+        public void handleMessage(Message msg) {
+            // TODO Auto-generated method stub
+            super.handleMessage(msg);
+            switch (msg.what) {
+                case OcrConstant.TAKE_PREVIEW_DATA_OK:
+                    Log.d("yxl", "TAKE_PREVIEW_DATA_OK");
+                    if (ocrManager == null) {
+                        ocrManager = new OcrManager(mHandler, CameraActivity.this);
+                        try {
+                            rect = cameraManager.getViewfinder(finderView.getFinder());
+                        } catch (Exception e) {
+                            // TODO: handle exception
+                            return;
+                        }
 
-				if (ocrManager == null) {
-					ocrManager = new OcrManager(mHandler, CameraActivity.this);
-					try {
-						rect = cameraManager.getViewfinder(finderView.getFinder());
-					} catch (Exception e) {
-						// TODO: handle exception
-						return;
-					}
+                    }
 
-				}
-
-				byte[] data_p = (byte[]) msg.obj;
-				if (data_p != null && data_p.length > 0) {
-					// if(over){
-					// return;
-					// }
-					ocrManager.recognIDCard(data_p, cameraManager.getPreviewWidth(), cameraManager.getPreviewHeight(),
-							rect, 0, typeFront);
-					mHandler.sendEmptyMessageDelayed(OcrConstant.START_AUTOFOCUS, 100);
-				} else {
-					finderView.setLineRect(0);
-					Toast.makeText(getBaseContext(), "鐩告満鍑虹幇闂锛岃閲嶅惎鎵嬫満锛�", Toast.LENGTH_SHORT).show();
-					mHandler.sendEmptyMessageDelayed(OcrConstant.START_AUTOFOCUS, 500);
-				}
-				break;
-			case OcrConstant.RECOGN_OK:
-				mHandler.removeMessages(OcrConstant.TAKE_PREVIEW_DATA_OK);
-				mHandler.removeMessages(OcrConstant.START_AUTOFOCUS);
+                    byte[] data_p = (byte[]) msg.obj;
+                    if (data_p != null && data_p.length > 0) {
+                        // if(over){
+                        // return;
+                        // }
+                        ocrManager.recognIDCard(data_p, cameraManager.getPreviewWidth(), cameraManager.getPreviewHeight(),
+                                rect, 0, typeFront);
+                        mHandler.sendEmptyMessageDelayed(OcrConstant.START_AUTOFOCUS, 100);
+                    } else {
+                        finderView.setLineRect(0);
+                        Toast.makeText(getBaseContext(), "鐩告満鍑虹幇闂锛岃閲嶅惎鎵嬫満锛�", Toast.LENGTH_SHORT).show();
+                        mHandler.sendEmptyMessageDelayed(OcrConstant.START_AUTOFOCUS, 500);
+                    }
+                    break;
+                case OcrConstant.RECOGN_OK:
+                    Log.d("yxl", "RECOGN_OK");
+                    mHandler.removeMessages(OcrConstant.TAKE_PREVIEW_DATA_OK);
+                    mHandler.removeMessages(OcrConstant.START_AUTOFOCUS);
 //				String imgPath = "/sdcard/aidtest.jpg";
 //				String headPath = "/sdcard/aidheadtest.jpg";
 
-				byte[] headPath = new byte[2048 * 1024 * 3];
-				byte[] imgPath = new byte[2048 * 1024 * 3];
-				int[] headRect = new int[8];
-				int[] imgRect = new int[8];
+                    byte[] headPath = new byte[2048 * 1024 * 2];
+                    byte[] imgPath = new byte[2048 * 1024 * 2];
+                    int[] headRect = new int[8];
+                    int[] imgRect = new int[8];
 
-				IdCardInfoNew idCardInfo = ocrManager.getResultToByte(imgPath, imgRect, headPath, headRect);
+                    IdCardInfoNew idCardInfo = ocrManager.getResultToByte(imgPath, imgRect, headPath, headRect);
+                    try {
+                        String OCRResult = new String(idCardInfo.getCharInfo(), "gbk");
+                        Intent intent = new Intent();
+                        intent.putExtra("OCRResult", OCRResult);
+                        setResult(RESULT_OK, intent);
+                    } catch (UnsupportedEncodingException e) {
+                        throw new RuntimeException(e);
+                    }
 //				IdCardInfo idCardInfo = ocrManager.getResult(imgPath, headPath);
-				Intent data2 = new Intent();
-				data2.putExtra("idcardinfo", idCardInfo);
-				setResult(200, data2);
+//				AppDemo.setResult(idCardInfo);
+//				Intent data2 = new Intent();
+//				data2.putExtra("idcardinfo", idCardInfo);
+//				setResult(200, data2);
+                    finish();
+                    break;
+                case OcrConstant.REPEAT_AUTOFOCUS:
+                    Log.d("yxl", "REPEAT_AUTOFOCUS");
 
-				finish();
+                    cameraManager.autoFoucs();
+                    mHandler.sendEmptyMessageDelayed(OcrConstant.REPEAT_AUTOFOCUS, 2000);
+                    break;
+                case OcrConstant.RECOGN_EG_TIME_OUT:
+                    Log.d("yxl", "RECOGN_EG_TIME_OUT");
+                    Toast.makeText(getBaseContext(), "寮曟搸杩囨湡锛岃灏藉揩鏇存柊锛�", Toast.LENGTH_LONG).show();
+                    finish();
+                    break;
+                case OcrConstant.RECOGN_EG_LICENSE:
+                    Log.d("yxl", "RECOGN_EG_LICENSE");
 
-				break;
-			case OcrConstant.REPEAT_AUTOFOCUS:
-				cameraManager.autoFoucs();
-				mHandler.sendEmptyMessageDelayed(OcrConstant.REPEAT_AUTOFOCUS, 2000);
-				break;
-			case OcrConstant.RECOGN_EG_TIME_OUT:
-				Toast.makeText(getBaseContext(), "寮曟搸杩囨湡锛岃灏藉揩鏇存柊锛�", Toast.LENGTH_LONG).show();
-				finish();
-				break;
-			case OcrConstant.RECOGN_EG_LICENSE:
-				int ret = -1;
-				if (msg.obj != null) {
-					ret = (Integer) msg.obj;
-				}
-				Toast.makeText(getBaseContext(), "鎺堟潈澶辫触-->" + ret, Toast.LENGTH_LONG).show();
-				finish();
-				break;
-			case OcrConstant.RECOGN_EG_INIT_ERROR:
-				Toast.makeText(getBaseContext(), "寮曟搸鍒濆鍖栧け璐ワ紒", Toast.LENGTH_LONG).show();
-				finish();
-				break;
-			case OcrConstant.START_AUTOFOCUS:
-				if (autoFoucs) {
-					cameraManager.autoFoucs();
-					autoFoucs = false;
-					mHandler.sendEmptyMessageDelayed(OcrConstant.START_AUTOFOCUS, 500);
-					mHandler.sendEmptyMessageDelayed(OcrConstant.REPEAT_AUTOFOCUS, 1500);
-				} else {
-					cameraManager.autoFocusAndPreviewCallback();
-				}
-				break;
-			case OcrConstant.RECOGN_LINE_IN_RECT:
-				int restult = (Integer) msg.obj;
-				finderView.setLineRect(restult);
-				break;
-			case OcrConstant.RECOGN_TIPS:
-				int tips = (Integer) msg.obj;
-				switch (tips) {
-				case 1000:
-					tvTips.setText("璇峰皢韬唤璇佺疆浜庢鍖哄煙\r\n灏濊瘯瀵归綈杈圭紭");
-					break;
-				case 1001:
-					tvTips.setText("璺濈绋嶈繎锛岃灏濊瘯杩滅偣");
-					break;
-				case 1002:
-					tvTips.setText("璺濈绋嶈繙锛岃灏濊瘯闈犺繎");
-					break;
-				case 1003:
-					// tvTips.setText("鍥惧儚妯$硦锛岃璋冩暣璺濈");
-					break;
-				case 1004:
-					tvTips.setText("鍥惧儚鍊炬枩锛岃淇濇寔姘村钩鎷嶆憚");
-					break;
-				case 1005:
-					tvTips.setText("璇峰皢韬唤璇佺疆浜庢鍖哄煙\r\n灏濊瘯瀵归綈杈圭紭");
-					break;
-				case 1006:
-					tvTips.setText("璇峰皢韬唤璇佹闈㈣嚦浜庢鍖哄煙");
-					break;
-				case 1007:
-					tvTips.setText("璇峰皢韬唤璇佸弽闈㈣嚦浜庢鍖哄煙");
-					break;
+                    int ret = -1;
+                    if (msg.obj != null) {
+                        ret = (Integer) msg.obj;
+                    }
+                    Toast.makeText(getBaseContext(), "鎺堟潈澶辫触-->" + ret, Toast.LENGTH_LONG).show();
+                    finish();
+                    break;
+                case OcrConstant.RECOGN_EG_INIT_ERROR:
+                    Log.d("yxl", "RECOGN_EG_INIT_ERROR");
 
-				default:
-					break;
-				}
+                    Toast.makeText(getBaseContext(), "寮曟搸鍒濆鍖栧け璐ワ紒", Toast.LENGTH_LONG).show();
+                    finish();
+                    break;
+                case OcrConstant.START_AUTOFOCUS:
+                    Log.d("yxl", "START_AUTOFOCUS");
 
-				break;
-			default:
-				cameraManager.initDisplay();
-				mHandler.sendEmptyMessageDelayed(OcrConstant.START_AUTOFOCUS, 500);
-				Toast.makeText(getBaseContext(), "<>" + msg.what, Toast.LENGTH_SHORT).show();
-				break;
-			}
-		}
+                    if (autoFoucs) {
+                        cameraManager.autoFoucs();
+                        autoFoucs = false;
+                        mHandler.sendEmptyMessageDelayed(OcrConstant.START_AUTOFOCUS, 500);
+                        mHandler.sendEmptyMessageDelayed(OcrConstant.REPEAT_AUTOFOCUS, 1500);
+                    } else {
+                        cameraManager.autoFocusAndPreviewCallback();
+                    }
+                    break;
+                case OcrConstant.RECOGN_LINE_IN_RECT:
+                    Log.d("yxl", "RECOGN_LINE_IN_RECT");
 
-	};
+                    int restult = (Integer) msg.obj;
+                    finderView.setLineRect(restult);
+                    break;
+                case OcrConstant.RECOGN_TIPS:
+                    Log.d("yxl", "RECOGN_TIPS");
+                    int tips = (Integer) msg.obj;
+                    switch (tips) {
+                        case 1000:
+                            tvTips.setText("璇峰皢韬唤璇佺疆浜庢鍖哄煙\r\n灏濊瘯瀵归綈杈圭紭");
+                            break;
+                        case 1001:
+                            tvTips.setText("璺濈绋嶈繎锛岃灏濊瘯杩滅偣");
+                            break;
+                        case 1002:
+                            tvTips.setText("璺濈绋嶈繙锛岃灏濊瘯闈犺繎");
+                            break;
+                        case 1003:
+                            // tvTips.setText("鍥惧儚妯$硦锛岃璋冩暣璺濈");
+                            break;
+                        case 1004:
+                            tvTips.setText("鍥惧儚鍊炬枩锛岃淇濇寔姘村钩鎷嶆憚");
+                            break;
+                        case 1005:
+                            tvTips.setText("璇峰皢韬唤璇佺疆浜庢鍖哄煙\r\n灏濊瘯瀵归綈杈圭紭");
+                            break;
+                        case 1006:
+                            tvTips.setText("璇峰皢韬唤璇佹闈㈣嚦浜庢鍖哄煙");
+                            break;
+                        case 1007:
+                            tvTips.setText("璇峰皢韬唤璇佸弽闈㈣嚦浜庢鍖哄煙");
+                            break;
 
-	@Override
-	public void surfaceCreated(SurfaceHolder holder) {
-		// TODO Auto-generated method stub
-		Log.d(TAG, "surfaceCreated");
-		if (!cameraManager.cameraOpened()) {
-			cameraManager.openCamera();
-			setParameters();
-		}
-	}
+                        default:
+                            break;
+                    }
 
-	@Override
-	public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
-		// TODO Auto-generated method stub
-		if (holder.getSurface() == null) {
-			Log.d(TAG, "holder.getSurface() == null");
-			return;
-		}
-		Log.v(TAG, "surfaceChanged. w=" + width + ". h=" + height);
-		surfaceHolder = holder;
-		cameraManager.setPreviewDisplay(surfaceHolder);
-		cameraManager.initDisplay();
-		mHandler.sendEmptyMessageDelayed(OcrConstant.START_AUTOFOCUS, 500);
+                    break;
+                default:
+                    Log.d("yxl", "default");
+                    cameraManager.initDisplay();
+                    mHandler.sendEmptyMessageDelayed(OcrConstant.START_AUTOFOCUS, 500);
+                    Toast.makeText(getBaseContext(), "<>" + msg.what, Toast.LENGTH_SHORT).show();
+                    break;
+            }
+        }
 
-	}
+    };
 
-	@Override
-	public void surfaceDestroyed(SurfaceHolder holder) {
-		// TODO Auto-generated method stub
-		Log.d(TAG, "surfaceDestroyed");
-		try {
-			cameraManager.closeCamera();
-		} catch (Exception e) {
-			// TODO: handle exception
-		}
+    @Override
+    public void surfaceCreated(SurfaceHolder holder) {
+        // TODO Auto-generated method stub
+        Log.d(TAG, "surfaceCreated");
+        if (!cameraManager.cameraOpened()) {
+            cameraManager.openCamera();
+            setParameters();
+        }
+    }
 
-		surfaceHolder = null;
-	}
+    @Override
+    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
+        // TODO Auto-generated method stub
+        if (holder.getSurface() == null) {
+            Log.d(TAG, "holder.getSurface() == null");
+            return;
+        }
+        Log.v(TAG, "surfaceChanged. w=" + width + ". h=" + height);
+        surfaceHolder = holder;
+        cameraManager.setPreviewDisplay(surfaceHolder);
+        cameraManager.initDisplay();
+        mHandler.sendEmptyMessageDelayed(OcrConstant.START_AUTOFOCUS, 500);
 
-	private void finishAll() {
-		if (cameraManager != null) {
-			try {
-				cameraManager.closeCamera();
-			} catch (Exception e) {
-				// TODO: handle exception
-			}
+    }
 
-		}
+    @Override
+    public void surfaceDestroyed(SurfaceHolder holder) {
+        // TODO Auto-generated method stub
+        Log.d(TAG, "surfaceDestroyed");
+        try {
+            cameraManager.closeCamera();
+        } catch (Exception e) {
+            // TODO: handle exception
+        }
 
-	}
+        surfaceHolder = null;
+    }
 
-	@Override
-	protected void onDestroy() {
-		// TODO Auto-generated method stub
-		super.onDestroy();
-		mHandler.removeMessages(OcrConstant.TAKE_PREVIEW_DATA_OK);
-		mHandler.removeMessages(OcrConstant.START_AUTOFOCUS);
-		finishAll();
+    private void finishAll() {
+        if (cameraManager != null) {
+            try {
+                cameraManager.closeCamera();
+            } catch (Exception e) {
+                // TODO: handle exception
+            }
 
-	}
+        }
+
+    }
+
+    @Override
+    protected void onDestroy() {
+        // TODO Auto-generated method stub
+        super.onDestroy();
+        mHandler.removeMessages(OcrConstant.TAKE_PREVIEW_DATA_OK);
+        mHandler.removeMessages(OcrConstant.START_AUTOFOCUS);
+        finishAll();
+
+    }
 
 }

--
Gitblit v1.8.0