ソースを参照

1.修改拦截器数据,防止拦截器崩溃。

2.添加区域码保存。
3.修改百度定位逻辑。
20241218TB223FC(测试jar包)
wangwanlei 10ヶ月前
コミット
2e005d99e2

+ 1
- 1
app/src/main/java/com/xhly/manageapp/ManageApplication.kt ファイルの表示

@@ -521,7 +521,7 @@ class ManageApplication : MultiDexApplication() {
521 521
          */
522 522
         fun disableStatusBarPanel(enableFlag: Boolean) {
523 523
             if (ModelNameUtils.IS_LianxX505f()||ModelNameUtils.IS_LianxX6e6f()) {
524
-                csdkManager?.disableStatusBarPanel(enableFlag)
524
+                csdkManager?.disableStatusBarPanel(false)
525 525
             }
526 526
         }
527 527
 

+ 6
- 0
app/src/main/java/com/xhly/manageapp/ui/login/activity/LoginActivity.kt ファイルの表示

@@ -88,6 +88,10 @@ class LoginActivity : BaseActivity<LoginViewModel, ActivityLoginBinding>() {
88 88
         viewModel.regionCodeData.observe(this){
89 89
            if (!it){
90 90
                regioncode=""
91
+           }else{
92
+               if (regioncode.isNotBlank()){
93
+                   currentSpUtils.setParam(Const.REGIONCODEKEY,regioncode)
94
+               }
91 95
            }
92 96
         }
93 97
       /*  val exitControlFlag = currentSpUtils.getParam(Const.EXIT_CONTROL, false) as Boolean
@@ -277,6 +281,8 @@ class LoginActivity : BaseActivity<LoginViewModel, ActivityLoginBinding>() {
277 281
                     val cancelTv = v.findViewById<TextView>(R.id.dialog_cancel_tv)
278 282
                     val editText = v.findViewById<EditText>(R.id.dialog_et)
279 283
                     val titleTv=v.findViewById<TextView>(R.id.dialog_title_tv)
284
+                    regioncode = currentSpUtils.getParam(Const.REGIONCODEKEY, regioncode) as String
285
+                    editText.setText(regioncode)
280 286
                     enterTv.setOnClickListener {
281 287
                         dialog.dismiss()
282 288
                         val text = editText.text

+ 59
- 42
app/src/main/java/com/xhly/manageapp/ui/main/activity/MainActivity.kt ファイルの表示

@@ -921,52 +921,66 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),Download
921 921
 
922 922
     private fun baiduLocation(){
923 923
         LocationClient.setAgreePrivacy(true)
924
-        locationClient = LocationClient(application)
925
-        val option = LocationClientOption()
926
-        option.locationMode=LocationClientOption.LocationMode.Hight_Accuracy
927
-        option.setCoorType("bd09ll")
928
-        option.setFirstLocType(LocationClientOption.FirstLocType.ACCURACY_IN_FIRST_LOC)
929
-        option.setScanSpan(1000*60*5)
930
-        option.setOpenGnss(true)
931
-        option.setLocationNotify(true)
932
-        option.setEnableSimulateGnss(false)
933
-        option.setNeedNewVersionRgc(true)
934
-        option.setIsNeedAddress(true)
935
-        locationClient?.locOption=option
936
-        locationClient?.registerLocationListener(object :BDAbstractLocationListener(){
937
-            override fun onReceiveLocation(bdLocation: BDLocation) {
938
-                //此处的BDLocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果
939
-                val latitude: Double = bdLocation.getLatitude() //获取纬度信息
940
-
941
-                val longitude: Double = bdLocation.getLongitude() //获取经度信息
942
-                val addrStr = bdLocation.addrStr
943
-                val location = PadLocationConst.currentLocation
944
-                location.lat=latitude
945
-                location.lon=longitude
946
-                location.address=addrStr
947
-                try {
948
-                    val lastLocation = PadLocationConst.lastLocation
949
-                    if (location.lat!=null&&location.lon!=null&&(lastLocation.lon!=location.lon&&lastLocation.lat!=location.lat)){
950
-                        lastLocation.lat=location.lat
951
-                        lastLocation.lon=location.lon
952
-                        ManageApplication.getDeviceInfo()?.let {
953
-                            location.sn=it
954
-                        }
955
-                        userBean?.let {
956
-                            location.userid=it.userid
924
+        if (locationClient!=null){
925
+            LogShow("开始定位")
926
+            locationClient?.start()
927
+        }else{
928
+            LogShow("重新定位")
929
+            locationClient = LocationClient(application)
930
+            val option = LocationClientOption()
931
+            option.locationMode=LocationClientOption.LocationMode.Hight_Accuracy
932
+            //可选,设置返回经纬度坐标类型,默认gcj02
933
+            //gcj02:国测局坐标;
934
+            //bd09ll:百度经纬度坐标;
935
+            option.setCoorType("bd09ll")
936
+            option.setFirstLocType(LocationClientOption.FirstLocType.ACCURACY_IN_FIRST_LOC)
937
+            //可选,设置发起定位请求的间隔,int类型,单位ms,改为由定时任务动态调用
938
+            /*  option.setScanSpan(1000*60*5)*/
939
+            //设置是否使用卫星定位
940
+            option.setOpenGnss(true)
941
+            //设置是否当卫星定位有效时按照1S/1次频率输出卫星定位结果
942
+            option.setLocationNotify(true)
943
+            //设置是否需要过滤卫星定位仿真结果,默认需要,即参数为false
944
+            option.setEnableSimulateGnss(false)
945
+            //可选,设置是否需要最新版本的地址信息。默认需要,即参数为true
946
+            option.setNeedNewVersionRgc(true)
947
+            option.setIsNeedAddress(true)
948
+            locationClient?.locOption=option
949
+            locationClient?.registerLocationListener(object :BDAbstractLocationListener(){
950
+                override fun onReceiveLocation(bdLocation: BDLocation) {
951
+                    //此处的BDLocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果
952
+                    val latitude: Double = bdLocation.getLatitude() //获取纬度信息
953
+
954
+                    val longitude: Double = bdLocation.getLongitude() //获取经度信息
955
+                    val addrStr = bdLocation.addrStr
956
+                    val location = PadLocationConst.currentLocation
957
+                    location.lat=latitude
958
+                    location.lon=longitude
959
+                    location.address=addrStr
960
+                    try {
961
+                        val lastLocation = PadLocationConst.lastLocation
962
+                        if (location.lat!=null&&location.lon!=null&&!location.address.isNullOrBlank()&&(lastLocation.lon!=location.lon&&lastLocation.lat!=location.lat)){
963
+                            lastLocation.lat=location.lat
964
+                            lastLocation.lon=location.lon
965
+                            ManageApplication.getDeviceInfo()?.let {
966
+                                location.sn=it
967
+                            }
968
+                            userBean?.let {
969
+                                location.userid=it.userid
970
+                            }
971
+                            viewModel.postPadLocation((location))
972
+                            LogShow("真没有位置")
973
+                        }else{
974
+                            LogShow("没有位置")
957 975
                         }
958
-                        viewModel.postPadLocation((location))
959
-                        LogShow("真没有位置")
960
-                    }else{
961
-                        LogShow("没有位置")
976
+                    }catch (e:Exception){
977
+                        LogShow("没有位置问题"+e.toString())
962 978
                     }
963
-                }catch (e:Exception){
964
-                    LogShow("没有位置问题"+e.toString())
965 979
                 }
966
-            }
967 980
 
968
-        })
969
-        locationClient?.start()
981
+            })
982
+            locationClient?.start()
983
+        }
970 984
     }
971 985
 
972 986
     private fun useTimeStrategy() {
@@ -1274,6 +1288,9 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),Download
1274 1288
             Const.ACCOUNTLOGINOUTSUCESS->{
1275 1289
                 loginOutSucess()
1276 1290
             }
1291
+            Const.STARTLOCATION->{
1292
+                getLocation()
1293
+            }
1277 1294
         }
1278 1295
     }
1279 1296
 

+ 1
- 1
app/src/main/java/com/xhly/manageapp/workmanager/TimingWorker.kt ファイルの表示

@@ -81,7 +81,7 @@ class TimingWorker(context: Context, workerParams: WorkerParameters) :
81 81
             }catch (e:Exception){
82 82
                 LogShow("没有位置问题"+e.toString())
83 83
             }
84
-*/
84
+*/          UIEvent(Const.STARTLOCATION).post()
85 85
             userBean?.let {
86 86
                 val map=HashMap<String,Any>()
87 87
                 map["sn"]=ManageApplication.getDeviceInfo()?:""

+ 6
- 0
corelib/src/main/java/com/xhly/corelib/Const.kt ファイルの表示

@@ -65,6 +65,8 @@ object Const {
65 65
     //标记上次打开的包名,当连续打开同一包名时,不认为打开多次
66 66
     var LASTPKGNAME = ""
67 67
 
68
+    //存储区域码,存在则在弹窗出现时显示
69
+    const val REGIONCODEKEY="REGIONCODEKEY"
68 70
     //接口地址
69 71
     const val URL1: String = "https://mcapitest.xhkjedu.com/"
70 72
 
@@ -101,6 +103,10 @@ object Const {
101 103
      */
102 104
     const val ACCOUNTLOGINOUTSUCESS = "ACCOUNTLOGINOUTSUCESS"
103 105
 
106
+    /**
107
+     * 调用定位
108
+     */
109
+    const val STARTLOCATION = "STARTLOCATION"
104 110
 
105 111
     /**
106 112
      * 调用安装app方法

+ 2
- 2
corelib/src/main/java/com/xhly/corelib/network/ResponseInterceptor.kt ファイルの表示

@@ -59,12 +59,12 @@ class ResponseInterceptor : Interceptor {
59 59
     }
60 60
     fun createDefaultResponse(): Response {
61 61
         // 创建默认的响应体内容
62
-        val responseBody = "Default Response Body" // 替换为您想要返回的默认响应体内容
62
+        val responseBody = "{\"code\":0,\"msg\":\"\",\"obj\":false}" // 替换为您想要返回的默认响应体内容
63 63
 
64 64
         // 创建默认的响应对象
65 65
         val response = Response.Builder()
66 66
             .code(200) // 替换为您想要的响应码
67
-            .message("Default Response Message") // 替换为您想要的响应消息
67
+            .message("{\"code\":0,\"msg\":\"\",\"obj\":false}") // 替换为您想要的响应消息
68 68
             .protocol(okhttp3.Protocol.HTTP_1_1) // 替换为您想要的协议
69 69
             .request(okhttp3.Request.Builder().url("http://example.com").build()) // 替换为请求对象
70 70
             .body(responseBody.toResponseBody()) // 设置响应体

読み込み中…
キャンセル
保存