lmw
2025-06-24 27a5170d3aa384c5a3771c2923ef31d0c2c8ad90
save
1个文件已添加
9个文件已修改
201 ■■■■ 已修改文件
app/build.gradle 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/debug/output.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/debug/zhaoyangsiji-1.3-2025-05-26.apk 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/zhaoyang/driver/base/MyApplication.kt 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/zhaoyang/driver/netUtls/Api.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/zhaoyang/driver/netUtls/HttpManager.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/zhaoyang/driver/ui/main/GetOrderFragment.kt 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/zhaoyang/driver/ui/main/MainActivity.kt 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/zhaoyang/driver/ui/main/TripActivity.kt 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/zhaoyang/driver/utils/OSSUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/build.gradle
@@ -25,8 +25,8 @@
        applicationId "com.zhaoyang.driver"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        versionCode 4
        versionName "1.3"
        multiDexEnabled true
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        ndk {
@@ -128,4 +128,5 @@
    implementation 'com.tencent.bugly:crashreport:3.1.0'
    implementation 'com.tencent.bugly:nativecrashreport:3.1.0'
    implementation project(path: ':ChipsLayoutManager')
    implementation 'com.tencent.bugly:crashreport:latest.release' //tx bugly
}
app/debug/output.json
@@ -1 +1 @@
[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"app-debug.apk","fullName":"debug","baseName":"debug","dirName":""},"path":"app-debug.apk","properties":{}}]
[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":4,"versionName":"1.3","enabled":true,"outputFile":"zhaoyangsiji-1.3-2025-05-26.apk","fullName":"debug","baseName":"debug","dirName":""},"path":"zhaoyangsiji-1.3-2025-05-26.apk","properties":{}}]
app/debug/zhaoyangsiji-1.3-2025-05-26.apk
Binary files differ
app/src/main/java/com/zhaoyang/driver/base/MyApplication.kt
@@ -78,7 +78,7 @@
        registerActivityLifecycleCallbacks(this)
        PlatformConfig.setWeixin("wx6078319d54d38c66", "c3ef243fae93fb0fd093d457ada38b4c")
        PlatformConfig.setQQZone("102047428", "qcBXgbJo6B2f5HF0") //qq互联
//        CrashReport.initCrashReport(getApplicationContext(), "444bb776ed", false);
        CrashReport.initCrashReport(this, "219deebe7c", true)
        LogUtils.OpenLog(true)
//        initUpPoint()
        initSocket()
@@ -370,22 +370,34 @@
        }
    }
    private var errorCount = 0 //定位上传失败次数
    private fun sendLocation() {
        if (getUserId() != -1 && aMapLocation != null) {
            val bean = CarLocationBean()
            val dataBean = CarLocationBean.DataBean(
                getUserId(),
                currentOrderId,
                currentOrderType,
                aMapLocation!!.longitude,
                aMapLocation!!.latitude,
                aMapLocation!!.bearing.toDouble(),
                aMapLocation!!.altitude
            )
            bean.data = dataBean
            NettyClient.getInstance()
                .sendMessage(Gson().toJson(bean))
            sysErr(dataBean.toString())
        if (getUserId() != -1) {
            if (aMapLocation == null|| aMapLocation!!.latitude <= 0){
                errorCount++
                if (errorCount == 10){
                    Handler(Looper.getMainLooper()).postDelayed({
                        getTTsManager().setVideoText("司机定位异常,请检查手机网络定位并重启司机APP")
                        errorCount = 0
                    }, 600)
                }
            }else{
                errorCount = 0
                val bean = CarLocationBean()
                val dataBean = CarLocationBean.DataBean(
                    getUserId(),
                    currentOrderId,
                    currentOrderType,
                    aMapLocation!!.longitude,
                    aMapLocation!!.latitude,
                    aMapLocation!!.bearing.toDouble(),
                    aMapLocation!!.altitude
                )
                bean.data = dataBean
                NettyClient.getInstance()
                    .sendMessage(Gson().toJson(bean))
                sysErr(dataBean.toString())
            }
        }
    }
app/src/main/java/com/zhaoyang/driver/netUtls/Api.java
@@ -10,10 +10,10 @@
    //39.108.148.228 测试服务器
    public static final String BASE_URL = "https://www.zycx.ztrbkj.com/driver/";
//    public static final String BASE_URL = "https://0ifzoxq2516g.guyubao.com/driver/";
//    public static final String BASE_URL = "http://192.168.110.34:81/driver/";
    public static final String SOCKET_SERVER = "47.108.137.172";
//    public static final String SOCKET_SERVER = "192.168.110.50";
//    public static final String SOCKET_SERVER = "192.168.110.34";
    public static final int SOCKET_PORT = 8888;
    public static final int SUCCESS = 200;
app/src/main/java/com/zhaoyang/driver/netUtls/HttpManager.java
@@ -134,7 +134,6 @@
    /**
     * Get请求
     *
     * @param action   请求接口的尾址
     * @param params   请求参数
     * @param observer observer
app/src/main/java/com/zhaoyang/driver/ui/main/GetOrderFragment.kt
@@ -81,11 +81,22 @@
    override fun onPause() {
        super.onPause()
        map_view.onPause()
    }
    override fun onResume() {
        super.onResume()
        map_view.onResume()
    }
    override fun onLowMemory() {
        super.onLowMemory()
        map_view.onLowMemory()
    }
    override fun onDestroy() {
        super.onDestroy()
        map_view.onDestroy()
        time.cancel()
    }
app/src/main/java/com/zhaoyang/driver/ui/main/MainActivity.kt
@@ -2,16 +2,22 @@
import android.content.ActivityNotFoundException
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.os.Handler
import android.os.Looper
import android.provider.Settings
import android.util.Log
import android.widget.Toast
import cn.sinata.rxnetty.NettyClient
import cn.sinata.xldutils.utils.*
import com.amap.api.location.AMapLocation
import com.amap.api.location.AMapLocationListener
import com.amap.api.track.AMapTrackClient
import com.amap.api.track.query.entity.DriveMode
import com.amap.api.track.query.entity.Track
import com.amap.api.track.query.model.*
import com.google.gson.Gson
import com.lljjcoder.style.citylist.Toast.ToastUtils
import com.tencent.bugly.crashreport.CrashReport
import com.zhaoyang.driver.R
import com.zhaoyang.driver.base.BaseEvent
import com.zhaoyang.driver.base.MyApplication
@@ -32,8 +38,6 @@
import com.zhaoyang.driver.utils.DateUtil
import com.zhaoyang.driver.utils.MyUtils
import com.zhaoyang.driver.utils.download.DownloadUtil
import com.google.gson.Gson
import com.lljjcoder.style.citylist.Toast.ToastUtils
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.app_title.*
import org.greenrobot.eventbus.EventBus
@@ -55,7 +59,7 @@
    override fun initView() {
        setTitleText("昭阳出行司机")
        tv_up_avv.text = SpanBuilder.content("接单中\n点击收车").sizeSpan(0,3,16).build()
        tv_up_avv.text = SpanBuilder.content("接单中\n点击收车").sizeSpan(0, 3, 16).build()
        tv_Left.setDrawableLeft(R.mipmap.icon_nav_user)
        iv_right_title.setImageResource(R.mipmap.icon_nav_news)
        addFragment(mainFragment, R.id.rl_container)
@@ -168,9 +172,14 @@
        }
        if (!MyUtils.canBackgroundStart(this)&&SPUtils.getString("canBackground").isEmpty()) {
            DialogUtil.getDelAndSureDialog(this, "前往开启", "暂不开启", "您暂未开启手机权限“后台弹出界面”,可能导致无法接单,是否前往开启?", {
            }) {
                SPUtils.save("canBackground","can")
            DialogUtil.getDelAndSureDialog(
                this,
                "前往开启",
                "暂不开启",
                "您暂未开启手机权限“后台弹出界面”,可能导致无法接单,是否前往开启?",
                {
                }) {
                SPUtils.save("canBackground", "can")
                MyUtils.toSettingPro(this)
            }
        }
@@ -181,7 +190,7 @@
//        map["id"] = CacheKey.getUserId()
        callNet(Api.queryNewData, map) {
            var data = gson.fromJson<VersionBean>(it, VersionBean::class.java)
            if (data.data.version != "" && data.data.version != Utils.getAppVersion(this)) {
            if (data.data.version != "" && data.data.version > Utils.getAppVersion(this)) {
                if (data.data.mandatory == 2) {
                    DialogUtil.getDelAndSureDialog(this, "新版本更新", data.data.content, {}, {
                        DownloadUtil(this).downloadAPK(data.data.url, "昭阳出行司机端")
@@ -264,6 +273,76 @@
        }
    }
    //查询猎鹰轨迹  TEST
    private fun queryTrack() {
        val aMapTrackClient = AMapTrackClient(applicationContext)
        val queryTrackRequest = QueryTrackRequest(
            911918,
            941006601,
            6556,  // 轨迹id,传-1表示查询所有轨迹
            1722085800000, //debug开始时间
            System.currentTimeMillis(),
            0,  // 0不启用去噪 1:去噪
            0,  // 1绑路 0不绑路
            0,  // 0不进行精度过滤 1过滤
            DriveMode.DRIVING,
            1,  // 距离补偿 1补偿 0不补偿
            5000,  // 距离补偿,只有超过5km的点才启用距离补偿
            1,  // 结果应该包含轨迹点信息
            1,  // 返回第1页数据,由于未指定轨迹,分页将失效
            100 // 一页不超过100条
        )
        aMapTrackClient.queryTerminalTrack(queryTrackRequest, object : OnTrackListener {
            override fun onQueryTerminalCallback(p0: QueryTerminalResponse?) {
                Log.e("mmp", p0?.errorMsg)
            }
            override fun onCreateTerminalCallback(p0: AddTerminalResponse?) {
                Log.e("mmp", p0?.errorMsg)
            }
            override fun onDistanceCallback(p0: DistanceResponse?) {
                Log.e("mmp", p0?.errorMsg)
            }
            override fun onLatestPointCallback(p0: LatestPointResponse?) {
                Log.e("mmp", p0?.errorMsg)
            }
            override fun onHistoryTrackCallback(p0: HistoryTrackResponse?) {
                Log.e("mmp", p0?.errorMsg)
            }
            override fun onQueryTrackCallback(p0: QueryTrackResponse) {
                if (p0?.isSuccess == true) {
                    val tracks: List<Track> = p0.getTracks()
                    // 查询成功,tracks包含所有轨迹及相关轨迹点信息
                    if (tracks.isNotEmpty())
                        Log.e("mmp", "查询成功:${tracks[0].points.size},里程:${tracks[0].distance}")
                } else {
                    // 查询失败
                    Log.e("mmp", "查询失败:${p0!!.errorMsg}")
                }
            }
            override fun onAddTrackCallback(p0: AddTrackResponse?) {
                Log.e("mmp", p0?.errorMsg)
            }
            override fun onParamErrorCallback(p0: ParamErrorResponse?) {
                Log.e("mmp", p0?.errorMsg)
            }
        })
    }
    override fun setOnclick() {
        tv_server_ing.setOnClickListener {
@@ -283,6 +362,7 @@
        tv_Left.clickDelay {
            startActivity<MineActivity>()
//            queryTrack()
        }
        iv_right_title.clickDelay {
@@ -388,6 +468,7 @@
        if (p0?.errorCode == 0) {
            MyApplication.aMapLocation = p0
            CacheKey.putKeyStr("location", Gson().toJson(p0))
        }
        }else
            MyApplication.aMapLocation = null
    }
}
app/src/main/java/com/zhaoyang/driver/ui/main/TripActivity.kt
@@ -180,6 +180,20 @@
        handler?.postDelayed({ checkOrderStatue() }, 3000)
    }
    override fun onResume() {
        super.onResume()
        map_view.onResume()
    }
    override fun onPause() {
        super.onPause()
        map_view.onPause()
    }
    override fun onLowMemory() {
        super.onLowMemory()
        map_view.onLowMemory()
    }
    override fun onBackPressed() {
        EventBus.getDefault().post(BaseEvent(BaseEvent.UPDATA_MAIN_CAR))
@@ -306,8 +320,10 @@
                                    finish()
                                    aMapTrackClient.stopGather(this) //停止轨迹采集
                                    val trackParam = TrackParam(serviceIdS, terminalId)
                                    trackParam.trackId = orderBean.data.trackId.toLong()
                                    aMapTrackClient.stopTrack(trackParam,this)
                                    if (!orderBean.data.trackId.isNullOrEmpty()){
                                        trackParam.trackId = orderBean.data.trackId.toLong()
                                        aMapTrackClient.stopTrack(trackParam,this)
                                    }
                                }
                            }
                        }
@@ -432,13 +448,14 @@
     */
    private fun initMineLocation() {
        AMapKit.initLocation(this, AMapLocationListener {
            it?.let {
            if (it!=null&&it.errorCode == 0){
                MyApplication.aMapLocation = it
                carMarker?.position = LatLng(it.latitude, it.longitude)
                graylist.add(LatLng(it.latitude, it.longitude))
                grayline?.remove()
                grayline = AMapKit.drawLine(this,aMap,graylist,R.color.gray)
//                queryTrack() //debug调用
            }else{
                MyApplication.aMapLocation = null
            }
            orderBean.let {
                when (it.data.orderState) {
@@ -707,6 +724,12 @@
            handler?.removeCallbacksAndMessages(null)
        }
        closeTimeStart()
        map_view.onDestroy()
    }
    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        map_view.onSaveInstanceState(outState)
    }
app/src/main/java/com/zhaoyang/driver/utils/OSSUtil.java
@@ -72,7 +72,7 @@
        uploadManager.put(urls.get(CURRENT_COUNT), keys.get(CURRENT_COUNT), token.get(CURRENT_COUNT), new UpCompletionHandler() {
            @Override
            public void complete(String key, ResponseInfo info, JSONObject response) {
                URLs.add("https://qiniu.cdn.zhaoyangchuxing.com/"+key);
                URLs.add("https://qncdn.zhaoyangchuxing.com/"+key);
                if (info.isOK()){
                    mActivity.runOnUiThread(() -> {
                        if (isSingle) {