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/MyApplication.kt |   86 +++++++++++++++++++++++++++++--------------
 1 files changed, 58 insertions(+), 28 deletions(-)

diff --git a/app/src/main/java/com/okgoincar/base/MyApplication.kt b/app/src/main/java/com/okgoincar/base/MyApplication.kt
index 1524573..147ba26 100644
--- a/app/src/main/java/com/okgoincar/base/MyApplication.kt
+++ b/app/src/main/java/com/okgoincar/base/MyApplication.kt
@@ -3,25 +3,23 @@
 import android.app.Activity
 import android.app.Application
 import android.content.Context
-import android.location.Location
-import android.os.Build
 import android.os.Bundle
 import android.os.Handler
 import android.os.Looper
 import android.util.Log
-import androidx.annotation.RequiresApi
 import androidx.multidex.MultiDex
 import cn.sinata.rxnetty.NettyClient
 import cn.sinata.xldutils.BaseApplication
+import cn.sinata.xldutils.utils.TimeUtils
 import cn.sinata.xldutils.utils.sysErr
+import cn.sinata.xldutils.utils.toast
 import com.amap.api.location.AMapLocation
 import com.amap.api.track.AMapTrackClient
 import com.amap.api.track.ErrorCode
-import com.amap.api.track.OnTrackLifecycleListener
 import com.amap.api.track.TrackParam
-import com.amap.api.track.query.model.*
-import com.okgoincar.netUtls.getUserId
-import com.okgoincar.utils.Cache.CacheKey
+import com.amap.api.track.query.model.AddTerminalRequest
+import com.amap.api.track.query.model.QueryTerminalRequest
+import com.amap.api.track.query.model.QueryTerminalResponse
 import com.google.gson.Gson
 import com.okgoincar.base.gpsnav.util.TTSController
 import com.okgoincar.bean.CarLocationBean
@@ -29,11 +27,13 @@
 import com.okgoincar.bean.OrderSimpleData
 import com.okgoincar.bean.websocket.HeartBean
 import com.okgoincar.netUtls.Api
+import com.okgoincar.netUtls.callNet
+import com.okgoincar.netUtls.getMapByAny
+import com.okgoincar.netUtls.getUserId
 import com.okgoincar.slab.MySlabBaseActivity
-import com.okgoincar.slab.SlabLoginActivity
-import com.okgoincar.utils.Cache.CacheUtil
-import org.greenrobot.eventbus.EventBus
-import org.jetbrains.anko.startActivity
+import com.okgoincar.utils.Cache.CacheKey
+import com.okgoincar.utils.LogUtils
+import com.tencent.bugly.crashreport.CrashReport
 import org.jetbrains.anko.toast
 import org.json.JSONObject
 import java.security.SecureRandom
@@ -73,13 +73,16 @@
         registerActivityLifecycleCallbacks(this)
 //        PlatformConfig.setWeixin("wx65d2c03f04352f90", "7a3a57f9ba78c1f400b75298eec4c7c0")
 //        PlatformConfig.setQQZone("101877032", "eab94b262bf9789eec770cde42a6e71e") //qq互联
-//        LogUtils.OpenLog(true)
+        LogUtils.OpenLog(true)
+        CrashReport.initCrashReport(applicationContext, "666d35fada", false)
         initUpPoint()
         initSocket()
-
     }
 
     private fun initSocket() {
+        Handler(Looper.getMainLooper()).post {
+//            toast("websocket初始化")
+        }
         NettyClient.getInstance().init(this, Api.SOCKET_SERVER, Api.SOCKET_PORT, true)
         NettyClient.getInstance()
             .addOnMessageListener { message: String? ->
@@ -89,9 +92,12 @@
                     currentTime = System.currentTimeMillis()
                     val json = JSONObject(message)
                     val method = json.optString("method")
-//                    Handler(Looper.getMainLooper()).post {
+                    if (method!= "OK"&&method!= "PONG")
+                        upLog("收到服务端推送,method:${method}")
+
+                    Handler(Looper.getMainLooper()).post {
 //                        toast("收到websocket=$method")
-//                    }
+                    }
                     val data = json.optString("data")
                     val code = json.optInt("code", -1)
                     if (code == 200) {
@@ -100,10 +106,15 @@
                                 testReceiveNum++
                             }
                             Const.SOCKET_METHOD.OFFLINE -> {
-                                CacheUtil.get().clear()
-                                NettyClient.getInstance().stopService()
-                                EventBus.getDefault().post(BaseEvent(BaseEvent.OUT_APP))
-                                toast("您的账号已在其他平台登录")
+//                                CacheUtil.get().clear()
+//                                NettyClient.getInstance().stopService()
+//                                var intent = Intent()
+//                                intent.setClass(this, SlabLoginActivity::class.java)
+//                                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+//                                startActivity(intent)
+//                                Handler(Looper.getMainLooper()).post {
+//                                    toast("您的账号已在其他平台登录")
+//                                }
                             }
                             Const.SOCKET_METHOD.ORDER_STATUS -> {
                                 val orderSimpleData =
@@ -158,6 +169,7 @@
             .setOnConnectListener {
                 sendHeart()
             }
+        sendHeart()
     }
 
     override fun attachBaseContext(base: Context?) {
@@ -259,13 +271,13 @@
             NettyClient.getInstance()
                 .sendMessage(Gson().toJson(bean))
             Handler(Looper.getMainLooper()).post {
-                toast("发送location --> $dataBean")
+//                toast("发送location --> $dataBean")
             }
             sysErr(dataBean.toString())
         }
     }
 
-    private fun sendHeart() {
+    open fun sendHeart() {
         if (getUserId() != -1) {
             Log.i(TAG, "sendHeart: userId === " + getUserId())
             val bean = HeartBean()
@@ -281,7 +293,13 @@
             if ((System.currentTimeMillis() - currentTime) / 1000 > 30) {
                 sysErr("sendHeart_websocket 重新连接")
                 currentTime = System.currentTimeMillis()
-                NettyClient.getInstance().checkNettyState()
+//                var s = CacheUtil.get().getAsString("reConnect")
+//                s = "$s###初始化重连"
+//                CacheUtil.get().put("reConnect", s)
+//                NettyClient.getInstance().checkNettyState()
+                NettyClient.getInstance().checkNettyStateNull() //reconnect
+
+//                initSocket()
                 heartHandler!!.postDelayed({ sendHeart() }, 5000)
             } else {
                 sysErr("sendHeart_websocket 发送心跳")
@@ -306,8 +324,8 @@
             return appContext
         }
 
-        fun getTTsManager():TTSController{
-            if (mTtsManager == null){
+        fun getTTsManager(): TTSController {
+            if (mTtsManager == null) {
                 mTtsManager = TTSController.getInstance(getInstance())
                 mTtsManager?.init()
             }
@@ -321,8 +339,8 @@
                     return Gson().fromJson(locationStr, AMapLocation::class.java)
                 } else {
                     val amap = AMapLocation("")
-                    amap.latitude = -1.0
-                    amap.longitude = -1.0
+                    amap.latitude = 0.0
+                    amap.longitude = 0.0
                     return amap
                 }
             } else {
@@ -374,6 +392,16 @@
         fun removeOrderView(view: OrderStatueView?) {
             orderStatueViews.remove(view)
         }
+
+
+        fun upLog(msg:String){
+//            val map = getMapByAny()
+//            map["content"] = "${TimeUtils.getCurrentTime()}:=====》$msg"
+//            if (appContext!=null)
+//                callNet(appContext!!,Api.saveVehicleTerminalLog,map,{}){
+//                    toast("丢失一条日志")
+//                }
+        }
     }
 
     private val activities = ArrayList<Activity?>()
@@ -399,14 +427,16 @@
     override fun onActivityStopped(activity: Activity?) {
         showNum--
         Handler(Looper.getMainLooper()).postDelayed({
-            if (showNum == 0){
+            if (showNum == 0) {
                 getTTsManager().setVideoText("OK出行司机已置于后台,可能会导致听单异常,里程计费差异,请勿切换。")
             }
-        },600)
+        }, 600)
 
     }
 
     override fun onActivityCreated(activity: Activity?, savedInstanceState: Bundle?) {
         activities.add(activity)
     }
+
+
 }
\ No newline at end of file

--
Gitblit v1.7.1