From efefe99f9d3a699b4d80ce7dfbc1ef0897350d67 Mon Sep 17 00:00:00 2001 From: liuyang Date: Fri, 19 Oct 2018 17:47: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=EF=BC=8C=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=90=AF=E5=8A=A8=20#BYLSERVER-1438?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 6 +++ .../duolebo/blyrobot/data/ApkReportData.kt | 16 ++++++-- .../blyrobot/service/BootBroadcastReceiver.kt | 15 ++++++++ .../blyrobot/service/BylRobotService.kt | 37 ++++++++++++++++++- 4 files changed, 70 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/com/duolebo/blyrobot/service/BootBroadcastReceiver.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e45adee..4c84063 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -31,6 +31,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/duolebo/blyrobot/data/ApkReportData.kt b/app/src/main/java/com/duolebo/blyrobot/data/ApkReportData.kt index b670474..b27da51 100644 --- a/app/src/main/java/com/duolebo/blyrobot/data/ApkReportData.kt +++ b/app/src/main/java/com/duolebo/blyrobot/data/ApkReportData.kt @@ -1,12 +1,18 @@ package com.duolebo.blyrobot.data -import com.duolebo.appbase.IModel import com.duolebo.appbase.prj.XMLHelper +import com.duolebo.appbase.prj.bmtv.model.ModelBase import org.json.JSONArray import org.json.JSONObject -class ApkReportData: IModel { - override fun from(p0: JSONObject?): Boolean { +class ApkReportData: ModelBase() { + var result = -1 + + override fun from(json: JSONObject): Boolean { + val data = json.optJSONArray("data") + if (data != null) { + } + result = 0 return true } @@ -18,4 +24,8 @@ class ApkReportData: IModel { return false } + override fun getCode(): Int { + return result + } + } \ No newline at end of file diff --git a/app/src/main/java/com/duolebo/blyrobot/service/BootBroadcastReceiver.kt b/app/src/main/java/com/duolebo/blyrobot/service/BootBroadcastReceiver.kt new file mode 100644 index 0000000..d4b9243 --- /dev/null +++ b/app/src/main/java/com/duolebo/blyrobot/service/BootBroadcastReceiver.kt @@ -0,0 +1,15 @@ +package com.duolebo.blyrobot.service + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent + +class BootBroadcastReceiver : BroadcastReceiver() { + + override fun onReceive(context: Context, intent: Intent) { + if (intent.action == "android.intent.action.BOOT_COMPLETED") { + context.startService(Intent(context, BylRobotService::class.java)) + } + } + +} 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 1c941b0..a72945e 100644 --- a/app/src/main/java/com/duolebo/blyrobot/service/BylRobotService.kt +++ b/app/src/main/java/com/duolebo/blyrobot/service/BylRobotService.kt @@ -9,8 +9,13 @@ import android.content.IntentFilter import android.os.IBinder import android.support.v4.content.LocalBroadcastManager import android.util.Log +import com.duolebo.appbase.AppBaseHandler +import com.duolebo.appbase.IAppBaseCallback +import com.duolebo.appbase.IProtocol import com.duolebo.blyrobot.data.ApkInfo +import com.duolebo.blyrobot.data.AppInfoData import com.duolebo.blyrobot.data.Task +import com.duolebo.blyrobot.protocol.GetAppInfoProtocol import com.duolebo.blyrobot.tools.TaskManager import com.duolebo.blyrobot.util.AdbUtil import com.duolebo.blyrobot.util.AppUtil @@ -20,11 +25,14 @@ import org.json.JSONObject import java.util.* @SuppressLint("Registered") -class BylRobotService: Service() { +class BylRobotService: Service(), IAppBaseCallback { private val TAG = "BylRobotService" private var count = 0 + private lateinit var dataHandler: AppBaseHandler + private lateinit var apkInfoProtocol: GetAppInfoProtocol + private val broadcastReceiver = object : BroadcastReceiver() { override fun onReceive(p0: Context?, intent: Intent?) { if (intent != null) { @@ -48,6 +56,13 @@ class BylRobotService: Service() { LocalBroadcastManager.getInstance(this).registerReceiver(broadcastReceiver, intentFilter) } + private fun requestAppList() { + apkInfoProtocol = GetAppInfoProtocol(this, Config.instance) + this.dataHandler = AppBaseHandler(this) + apkInfoProtocol.execute(this.dataHandler) + } + + private fun loadTask() { Log.i(TAG, "loadTask...") @@ -77,4 +92,24 @@ class BylRobotService: Service() { super.onDestroy() LocalBroadcastManager.getInstance(this).unregisterReceiver(broadcastReceiver) } + + override fun onProtocolFailed(protocol: IProtocol?) { + } + + override fun onHttpFailed(protocol: IProtocol?) { + } + + override fun onProtocolSucceed(protocol: IProtocol?) { + if (protocol is GetAppInfoProtocol) { + val appInfoData = protocol.data as AppInfoData + + for (apkInfo in appInfoData.apkInfos) { + if (AppUtil.isAppInstalled(this, apkInfo.packageName)) { + val task = Task(this.applicationContext) + task.from(apkInfo) + TaskManager.instance.add(task) + } + } + } + } } \ No newline at end of file -- 2.21.0