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 | 111 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 94 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/okgoincar/base/MyApplication.kt b/app/src/main/java/com/okgoincar/base/MyApplication.kt index dd2a56c..147ba26 100644 --- a/app/src/main/java/com/okgoincar/base/MyApplication.kt +++ b/app/src/main/java/com/okgoincar/base/MyApplication.kt @@ -3,31 +3,37 @@ 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 +import com.okgoincar.bean.OrderResData 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.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 @@ -67,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? -> @@ -83,15 +92,29 @@ 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) { when (method) { Const.SOCKET_METHOD.OK -> { testReceiveNum++ + } + Const.SOCKET_METHOD.OFFLINE -> { +// 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 = @@ -106,7 +129,9 @@ val act = activities[activities.size - 1] (act as MySlabBaseActivity).showOrder( orderSimpleData.orderId.toString(), - orderSimpleData.orderType.toString() + orderSimpleData.orderType.toString(), + orderSimpleData.time, + 1 ) } if (orderSimpleData.status == 2) { @@ -116,6 +141,21 @@ orderSimpleData.orderType.toString() ) } + } + + Const.SOCKET_METHOD.REASSIGN -> { + val orderSimpleData = + Gson().fromJson( + data, + OrderResData::class.java + ) + val act = activities[activities.size - 1] + (act as MySlabBaseActivity).showOrder( + orderSimpleData.orderId.toString(), + orderSimpleData.orderType.toString(), + 30, + 2 + ) } } } else { @@ -129,6 +169,7 @@ .setOnConnectListener { sendHeart() } + sendHeart() } override fun attachBaseContext(base: Context?) { @@ -230,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() @@ -252,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 发送心跳") @@ -268,12 +315,21 @@ companion object { private const val TAG = "MyApplication" public var appContext: MyApplication? = null + protected var mTtsManager: TTSController? = null fun getInstance(): MyApplication? { if (appContext == null) { appContext = MyApplication() } return appContext + } + + fun getTTsManager(): TTSController { + if (mTtsManager == null) { + mTtsManager = TTSController.getInstance(getInstance()) + mTtsManager?.init() + } + return mTtsManager!! } fun getLocation(): AMapLocation { @@ -283,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 { @@ -336,9 +392,20 @@ 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?>() + private var showNum = 0 override fun onActivityPaused(activity: Activity?) { } @@ -347,6 +414,7 @@ } override fun onActivityStarted(activity: Activity?) { + showNum++ } override fun onActivityDestroyed(activity: Activity?) { @@ -357,9 +425,18 @@ } override fun onActivityStopped(activity: Activity?) { + showNum-- + Handler(Looper.getMainLooper()).postDelayed({ + if (showNum == 0) { + getTTsManager().setVideoText("OK出行司机已置于后台,可能会导致听单异常,里程计费差异,请勿切换。") + } + }, 600) + } override fun onActivityCreated(activity: Activity?, savedInstanceState: Bundle?) { activities.add(activity) } + + } \ No newline at end of file -- Gitblit v1.7.1