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