diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e45adee2b38c3cf5540b6bc68baadd3ac1f580b7..4c84063c1996914323c2019224daae41e5afeed4 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 b67047435fa4bd361a3b9329b8be5abe8e99a6cf..b27da51158c0464c12643e1f3a1f7cb7bff2fb73 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 0000000000000000000000000000000000000000..d4b92430d266831bf7bb431888465118bf33bf15 --- /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 1c941b043d521774a03e20df9ab971cc3b083bcd..a72945e4dbc56c91ffa526e83805921998677e24 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