app/build.gradle
@@ -10,11 +10,10 @@ targetSdk 26 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" ndk{ abiFilters 'armeabi-v7a' abiFilters "arm64-v8a","armeabi","armeabi-v7a" } } @@ -50,6 +49,8 @@ //room数据库 implementation "androidx.room:room-runtime:2.3.0" implementation "androidx.room:room-ktx:2.3.0" implementation files('libs\\ccimg_20170424.jar') implementation files('libs\\ccidcard_20211231.jar') runtimeOnly("androidx.room:room-common:2.3.0") annotationProcessor "androidx.room:room-compiler:2.3.0" app/src/androidTest/java/com/dayu/recharge/ExampleInstrumentedTest.java
File was deleted app/src/main/AndroidManifest.xml
@@ -33,6 +33,7 @@ <!--用于申请调用A-GPS模块--> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission> <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" /> <application android:name=".MyApplication" @@ -117,7 +118,9 @@ <activity android:name=".activity.IdentifyingActivity" /> <activity android:name=".activity.ReplacementActivity" /> <activity android:name=".activity.RechargeDetail" /> <activity android:name=".activity.CameraActivity"/> <activity android:name=".activity.CameraActivity" android:screenOrientation="landscape" /> <meta-data app/src/main/java/com/dayu/recharge/MyApplication.java
@@ -74,6 +74,9 @@ /** * 初始化EasySocket * * @param isCreate 当前已连接服务器后是否重新连接 * @param createBack */ public void initEasySocket(boolean isCreate, SocketNet.CreateBack createBack) { try { @@ -84,6 +87,7 @@ ipBean.setIp("dayuyanjiuyuan.top"); ipBean.setPort(8888); } if (ipBean != null) { try { //处理当连接上IP后修改ip不生效问题 @@ -193,7 +197,7 @@ ToastUtil.show("充值管理注册报文获取成功"); } else { //校验CRC错误 ToastUtil.show("确认收到注册报文状态失败"); // ToastUtil.show("确认收到注册报文状态失败"); } } else { //校验CRC错误 app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
@@ -13,6 +13,7 @@ import com.dayu.recharge.dbBean.AdminDataBean; import com.dayu.recharge.dbBean.IpBean; import com.dayu.recharge.utils.TipUtil; import com.easysocket.EasySocket; import com.example.pickerviewlibrary.picker.TeaPickerView; import com.example.pickerviewlibrary.picker.entity.PickerData; import com.example.pickerviewlibrary.picker.listener.OnPickerClickListener; 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,14 +29,16 @@ 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"; @@ -53,7 +56,7 @@ private Button btnFlash, btnCancel; private ImageView imgTips; private ImageView iv, ivHead; private int typeFront = 1;// 0不区分 ,1正面,2背面 private int typeFront = 0;// 0不区分 ,1正面,2背面 @Override protected void onCreate(Bundle savedInstanceState) { @@ -240,7 +243,7 @@ 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 { @@ -267,34 +270,47 @@ } 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]; 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); 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"); 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"); int ret = -1; if (msg.obj != null) { ret = (Integer) msg.obj; @@ -303,10 +319,14 @@ finish(); break; case OcrConstant.RECOGN_EG_INIT_ERROR: Log.d("yxl", "RECOGN_EG_INIT_ERROR"); Toast.makeText(getBaseContext(), "引擎初始化失败!", Toast.LENGTH_LONG).show(); finish(); break; case OcrConstant.START_AUTOFOCUS: Log.d("yxl", "START_AUTOFOCUS"); if (autoFoucs) { cameraManager.autoFoucs(); autoFoucs = false; @@ -317,10 +337,13 @@ } 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: @@ -354,6 +377,7 @@ break; default: Log.d("yxl", "default"); cameraManager.initDisplay(); mHandler.sendEmptyMessageDelayed(OcrConstant.START_AUTOFOCUS, 500); Toast.makeText(getBaseContext(), "<>" + msg.what, Toast.LENGTH_SHORT).show(); app/src/main/java/com/dayu/recharge/activity/LoginActivity.java
@@ -54,7 +54,8 @@ } private void getPermission() { PermissionX.init(LoginActivity.this).permissions(Manifest.permission.READ_PHONE_STATE, PermissionX.init(LoginActivity.this).permissions( Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE) .onExplainRequestReason((scope, deniedList) -> { app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java
@@ -62,6 +62,7 @@ setData(); initView(); // LibraryInitOCR.initOCR(NewCardActivity.this); // registerForActivityResult() } private void initView() { @@ -135,7 +136,7 @@ private void startCamera() { Intent intent = new Intent(NewCardActivity.this, CameraActivity.class); intent.putExtra("typeFront", 1); startActivityForResult(intent, 110); startActivityForResult(intent, SCAN_IDCARD_REQUEST); } @Override @@ -160,9 +161,17 @@ // sb.append(String.format("整体照片 = %s\n", jo.opt("imgPath"))); // sb.append(String.format("头像路径 = %s\n", jo.opt("headPath"))); newCardBinding.newCardName.setText(jo.opt("name").toString()); newCardBinding.newCardId.setText(jo.opt("num").toString()); String name = jo.getJSONObject("Name").opt("value").toString(); String idNumber = jo.getJSONObject("Num").opt("value").toString(); this.runOnUiThread(new Runnable() { @Override public void run() { newCardBinding.newCardName.setText(name); newCardBinding.newCardId.setText(idNumber); newCardBinding.newCardIdTip.setVisibility(View.VISIBLE); } }); } catch (JSONException e) { throw new RuntimeException(e); app/src/main/jniLibs/arm64-v8a/libIDCardengine.soBinary files differ
app/src/main/jniLibs/arm64-v8a/libimageengine.soBinary files differ
app/src/main/jniLibs/armeabi-v7a/libIDCardengine.soBinary files differ
app/src/main/jniLibs/armeabi-v7a/libimageengine.soBinary files differ
app/src/main/jniLibs/armeabi/libIDCardengine.soBinary files differ
app/src/main/jniLibs/armeabi/libimageengine.soBinary files differ
app/src/main/res/layout/activity_new_card.xml
@@ -101,7 +101,7 @@ style="@style/newCardLL" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="扫描后请核对身份信息无误" android:text="请核对身份信息无误" android:textColor="#FF4500" android:visibility="gone" />