From bd6a8872438a35d47821c5d5da7fe149e5fed3ab Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期三, 21 六月 2023 09:53:36 +0800
Subject: [PATCH] 处理收不到广播

---
 app/src/main/java/com/okgoincar/base/MainBroadCastReceiver.kt |   90 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 88 insertions(+), 2 deletions(-)

diff --git a/app/src/main/java/com/okgoincar/base/MainBroadCastReceiver.kt b/app/src/main/java/com/okgoincar/base/MainBroadCastReceiver.kt
index e4c67bb..54057fb 100644
--- a/app/src/main/java/com/okgoincar/base/MainBroadCastReceiver.kt
+++ b/app/src/main/java/com/okgoincar/base/MainBroadCastReceiver.kt
@@ -3,10 +3,96 @@
 import android.content.BroadcastReceiver
 import android.content.Context
 import android.content.Intent
+import android.os.Handler
+import android.os.Looper
+import android.util.Log
+import cn.sinata.rxnetty.netStatus.NetUtils
 import cn.sinata.xldutils.utils.toast
+import com.google.gson.Gson
+import com.okgoincar.bean.LoginBean
+import com.okgoincar.netUtls.Api
+import com.okgoincar.netUtls.callNet
+import com.okgoincar.netUtls.getMapByAny
+import com.okgoincar.netUtls.getToken
+import com.okgoincar.slab.SlabLoginActivity
+import com.okgoincar.slab.SlabMainActivity
+import com.okgoincar.utils.Cache.CacheKey
+import com.okgoincar.utils.Cache.CacheUtil
+import org.greenrobot.eventbus.EventBus
+import org.jetbrains.anko.startActivity
+import java.lang.Exception
 
 class MainBroadCastReceiver : BroadcastReceiver() {
-    override fun onReceive(context: Context?, intent: Intent?) {
-        toast("获取的action="+intent!!.getStringExtra("isLogin"))
+    override fun onReceive(contexts: Context?, intent: Intent?) {
+        MyApplication.upLog("收到广播,Action:${intent?.action}")
+        Log.e("MoneyBroadCastReceiver","收到广播,Action:${intent?.action}")
+        if (intent == null) {
+            toast("内容获取为空,广播接收消息错误")
+            return
+        }
+        try {
+            Handler(Looper.getMainLooper()).post {
+                val b = intent.getBooleanExtra("isLogin", true)
+                if (!b) {
+                    loginOut(contexts)
+                    CacheUtil.get().clear()
+                    EventBus.getDefault().post(BaseEvent(BaseEvent.OUT_APP))
+                } else {
+                    if (getToken().isNullOrEmpty()) {
+                        Handler(Looper.getMainLooper()).post {
+//                            toast("开始登录")
+                        }
+                        var driverCertificate = intent.getStringExtra("driverCertificate")
+                        if (driverCertificate == null) {
+//                            toast("身份证获取失败")
+                        } else {
+                            MyApplication.upLog("广播参数:driverCertificate:${driverCertificate},开始登录")
+                            if (contexts == null) {
+//                                toast("上下文为空,使用全局跳转")
+                                toLoginActivity(MyApplication.getInstance(), driverCertificate)
+                            } else {
+                                toLoginActivity(MyApplication.getInstance(), driverCertificate)
+                            }
+                        }
+
+                    }
+                }
+            }
+        } catch (e: Exception) {
+
+        }
+
+    }
+
+    private fun loginOut(context: Context?) {
+        var map = getMapByAny()
+        callNet(context!!, Api.loginOut, map) {
+            toast("Ok退签")
+        }
+    }
+
+    private fun toLoginActivity(context: Context?, driverCertificate: String?) {
+        var map = getMapByAny()
+        if (driverCertificate.isNullOrEmpty()){
+            toast("资格证号:空")
+            return
+        }
+        map["taxiAptitudeCard"] = driverCertificate
+        callNet(context!!, Api.loginByTaxiAptitudeCard, map) {
+            toast("登录成功")
+            var bean = Gson().fromJson<LoginBean>(it, LoginBean::class.java)
+            CacheKey.putKeyStr("identification", driverCertificate)
+            CacheKey.putKeyStr("appid", bean.data.appid)
+            CacheKey.putKeyStr("token", bean.data.token)
+            CacheKey.putKeyStr("userId", bean.data.id.toString())
+            CacheKey.putKeyStr("serverId", bean.data.serverId.toString())
+            CacheKey.putKeyStr("terminalName", bean.data.terminalId.toString())
+            Handler(Looper.getMainLooper()).post {
+                var intent = Intent()
+                intent.setClass(context, SlabMainActivity::class.java)
+                intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
+                context.startActivity(intent)
+            }
+        }
     }
 }
\ No newline at end of file

--
Gitblit v1.7.1