From b31b21f740ead3b3c12b21361bc3201fcc37af0a Mon Sep 17 00:00:00 2001 From: liuyang Date: Wed, 2 Jan 2019 22:04:26 +0800 Subject: [PATCH] =?UTF-8?q?APK=E5=9B=BE=E7=89=87=E6=8A=93=E5=8F=96?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E5=8F=8A=E8=BD=AE=E6=92=AD=E6=B5=81=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=E6=8A=93=E5=8F=96,=20=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=94=B5=E8=AF=9D=E5=8F=B7=E7=A0=81=E8=AF=86?= =?UTF-8?q?=E5=88=AB=20#BYLSERVER-1438?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 2 +- app/libs/aip-java-sdk-4.8.0.jar | Bin 0 -> 76778 bytes app/proguard-rules.pro | 3 + .../java/com/duolebo/blyrobot/data/Task.kt | 21 +++++ .../blyrobot/service/BylRobotService.kt | 2 + .../com/duolebo/blyrobot/tools/OcrManager.kt | 84 ++++++++++++++++++ .../java/com/duolebo/blyrobot/util/AppUtil.kt | 24 +++-- 7 files changed, 128 insertions(+), 8 deletions(-) create mode 100644 app/libs/aip-java-sdk-4.8.0.jar create mode 100644 app/src/main/java/com/duolebo/blyrobot/tools/OcrManager.kt diff --git a/app/build.gradle b/app/build.gradle index a6c77a8..ebd47b3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -46,7 +46,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation(name: 'appbase-release', ext: 'aar') - implementation 'com.android.volley:volley:1.1.0' + implementation 'com.android.volley:volley:1.1.1' implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'org.nanohttpd:nanohttpd:2.2.0' implementation(name: 'vpnadaptercore-release', ext: 'aar') diff --git a/app/libs/aip-java-sdk-4.8.0.jar b/app/libs/aip-java-sdk-4.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..339cf2152f8608d34720e67bc9ebb8d86f047788 GIT binary patch literal 76778 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�d$Re1Vt0~OacYVj&jLO`p7A^y92r> z8+c&BPmd>&U}Zc?#0FP@bE8kv{-ZCOF06zW76ETDi^oZrJMc~?V*yBBVY}PPxLQyn z*WnReLBMT2gW@FP03L(Jh4G`raeGSc<>BjA8h+gcuZDR`N8=Goa}WuB$&`l&3rxs? z+^Xmi%s5+|kFv*4hLNW%dWJ0yq+BEg%ARP8Hc<53O&pn7K#GKdJB**giPF&1Z*W@B zHBuUeA~_2O<)UYe;9QS#lq(rCgO-lS$s;HejYN$zyG2ibWKMu292qm#2{7Ks$N9eLb?S2*){2Bf~+f1R{CI zgMR$PSuYjISTdhN@v_R!qheoVMw2pSWaN8g1$;tO`h5nU)k7y?@pnQ@_<^i2yfP8K z*G!JWhiDi|RYgV*B5K0-8!40g3y!pOIfAY4%^drlgPU!1ngpFam!d@iE4BAk7enK7 X>F(5NFb<+noZznwUWW#NL!tZ+2oa8+ literal 0 HcmV?d00001 diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index f1b4245..216210b 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -19,3 +19,6 @@ # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile + +-keep class com.baidu.ocr.sdk.**{*;} +-dontwarn com.baidu.ocr.** diff --git a/app/src/main/java/com/duolebo/blyrobot/data/Task.kt b/app/src/main/java/com/duolebo/blyrobot/data/Task.kt index 4d4b359..8af51b8 100644 --- a/app/src/main/java/com/duolebo/blyrobot/data/Task.kt +++ b/app/src/main/java/com/duolebo/blyrobot/data/Task.kt @@ -10,6 +10,7 @@ import com.duolebo.appbase.IAppBaseCallback import com.duolebo.appbase.IProtocol import com.duolebo.blyrobot.protocol.ApkReportProtocol import com.duolebo.blyrobot.tools.FtpManager +import com.duolebo.blyrobot.tools.OcrManager import com.duolebo.blyrobot.util.AdbUtil import com.duolebo.blyrobot.util.AppUtil import com.duolebo.blyrobot.util.Config @@ -20,6 +21,7 @@ import java.text.SimpleDateFormat import java.util.* import kotlin.collections.ArrayList + /** * 任务类 */ @@ -137,6 +139,7 @@ class Task : Thread, IAppBaseCallback { // 退出应用 AdbUtil.stopApp(this.apkInfo.packageName) + imageOcrToNumber(); // 上报数据,上传图片在后台进行 report() } @@ -427,6 +430,24 @@ class Task : Thread, IAppBaseCallback { this.uploadTask = uploadTask } + + private fun imageOcrToNumber() { + + val channelArr = this.reportJson.optJSONArray("channels") + for ( i in 0..channelArr.length()) { + try { + val channelJson = channelArr.optJSONObject(i) + val imagePath = this.taskPath + "/" + channelJson.optString("channelImage") + val newImagePath = AppUtil.cropImage(imagePath) + val phoneNumber = OcrManager.instance.imageOcr(newImagePath) + channelJson.putOpt("phoneNumber", phoneNumber) + } catch (e : java.lang.Exception) { + e.printStackTrace() + } + } + } + + /** * 先上报数据,截图上传继续在后台进行 */ diff --git a/app/src/main/java/com/duolebo/blyrobot/service/BylRobotService.kt b/app/src/main/java/com/duolebo/blyrobot/service/BylRobotService.kt index 4cb7741..ab29b19 100644 --- a/app/src/main/java/com/duolebo/blyrobot/service/BylRobotService.kt +++ b/app/src/main/java/com/duolebo/blyrobot/service/BylRobotService.kt @@ -17,6 +17,7 @@ import com.duolebo.blyrobot.data.AppInfoData import com.duolebo.blyrobot.data.Task import com.duolebo.blyrobot.protocol.GetAppInfoProtocol import com.duolebo.blyrobot.tools.FtpManager +import com.duolebo.blyrobot.tools.OcrManager import com.duolebo.blyrobot.tools.TaskManager import com.duolebo.blyrobot.util.AppUtil import com.duolebo.blyrobot.util.Config @@ -46,6 +47,7 @@ class BylRobotService: Service(), IAppBaseCallback { override fun onCreate() { super.onCreate() + OcrManager.instance.init(this) FtpManager.instance.start() initBroadcast() // requestAppList() diff --git a/app/src/main/java/com/duolebo/blyrobot/tools/OcrManager.kt b/app/src/main/java/com/duolebo/blyrobot/tools/OcrManager.kt new file mode 100644 index 0000000..c147e73 --- /dev/null +++ b/app/src/main/java/com/duolebo/blyrobot/tools/OcrManager.kt @@ -0,0 +1,84 @@ +package com.duolebo.blyrobot.tools + +import android.annotation.SuppressLint +import android.content.Context +import android.text.TextUtils +import com.baidu.aip.ocr.AipOcr +import java.io.File + + +class OcrManager { + companion object { + @SuppressLint("StaticFieldLeak") + val instance = OcrManager() + val TAG = "RobotOcrManager" + const val AK = "zy4gq9vvYa0UF133COi2ITHI" + const val SK = "cGG1wblcyMfpKjo8bG68lZYeysrEVOFq" + + const val APP_ID = "11067709" + const val API_KEY = "APMf6m40GKnZK74ArXYmdMCf" + const val SECRET_KEY = "KfiA2R9BTWo5xN4R9gHeztMQ6h3seyZL" + + const val CONN_TIMEOUT = 2000 + const val SOCKET_TIMEOUT = 60000 + } + + private lateinit var context: Context + private lateinit var aipOcr: AipOcr + + fun init(context: Context) { + this.context = context + initOcr() + } + + // 初始化百度ocr调用 + private fun initOcr() { + this.aipOcr = AipOcr(APP_ID, API_KEY, SECRET_KEY) + aipOcr.setConnectionTimeoutInMillis(CONN_TIMEOUT); + aipOcr.setSocketTimeoutInMillis(SOCKET_TIMEOUT); + } + + fun imageOcr(filePath: String) : String { + var res = "" + try { + val options = HashMap() + options["recognize_granularity"] = "big" + options["detect_direction"] = "true" + + // 先用简单识别,每天有5w次免费额度 + var result = aipOcr.basicGeneral(filePath, options) + res = getOcrWords(result) + + // 如果无法识别,调用高精度识别,每天500次额度 + if (!TextUtils.isDigitsOnly(res)) { + result = aipOcr.basicAccurateGeneral(filePath, options) + res = getOcrWords(result) + } + + val imageFile = File(filePath) + imageFile.delete() + } catch (e: Exception) { + e.printStackTrace() + } + + return res + } + + private fun getOcrWords(result: org.json.JSONObject): String { + var words = "" + val wordsResult = result.getJSONArray("words_result") + val num = result.getInt("words_result_num") + if (wordsResult != null && num > 0) { + val wordsObject = wordsResult.getJSONObject(0) + words = wordsObject.getString("words") + words = words.replace("-", "") + } + + return words + } + + interface OcrListener { + fun onResult(result: String) + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/duolebo/blyrobot/util/AppUtil.kt b/app/src/main/java/com/duolebo/blyrobot/util/AppUtil.kt index 84162a1..e3e7fb2 100644 --- a/app/src/main/java/com/duolebo/blyrobot/util/AppUtil.kt +++ b/app/src/main/java/com/duolebo/blyrobot/util/AppUtil.kt @@ -96,20 +96,30 @@ object AppUtil { } } - fun pngToJpg2(pngFilePath: String, jpgFilePath: String) { - val bitmap: Bitmap? = BitmapFactory.decodeFile(pngFilePath) + fun cropImage(imagePath: String) : String { + val bitmap = BitmapFactory.decodeFile(imagePath) + val cropBitmap = Bitmap.createBitmap(bitmap, 0, 905, 1024, 100) + val index = imagePath.lastIndexOf('.') + val partName = imagePath.substring(0, index) + val newPath = partName + "_ocr.jpg" + val file = File(newPath) try { - val bos = BufferedOutputStream(FileOutputStream(jpgFilePath)) - bitmap?.run { - compress(Bitmap.CompressFormat.JPEG, 100, bos) - bos.flush() + val fos = FileOutputStream(file) + BufferedOutputStream(fos).use { bos -> + if (cropBitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos)) { + bos.flush() + } + bos.close() } - bos.close() + fos.close() } catch (e: IOException) { e.printStackTrace() } finally { bitmap!!.recycle() + cropBitmap!!.recycle() } + + return newPath } fun readFromLocal(file: File): String { -- 2.21.0