Skip to content

Commit 1d8ee67

Browse files
authored
Merge pull request didi#1027 from didi/module_optimistic_gps_mock
feat(Android):抽离位置模拟模块;完善位置模拟功能。
2 parents 9b49cb2 + e01324b commit 1d8ee67

File tree

160 files changed

+4689
-931
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

160 files changed

+4689
-931
lines changed

Android/app/doraemonkit.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ if (runType == 0) {
1111
// debugImplementation project(":dokit-weex")
1212
// debugImplementation project(":dokit-rpc")
1313
// debugImplementation project(":dokit-rpc-mc")
14-
// debugImplementation project(":dokit-dmap")
14+
debugImplementation project(":dokit-gps-mock")
1515
releaseImplementation project(":dokit-no-op")
1616
}
1717
} else if (runType == 1) {
@@ -23,6 +23,7 @@ if (runType == 0) {
2323
debugImplementation "io.github.didi.dokit:dokitx-ft:${rootProject.ext.publish_config["version"]}"
2424
debugImplementation "io.github.didi.dokit:dokitx-mc:${rootProject.ext.publish_config["version"]}"
2525
debugImplementation "io.github.didi.dokit:dokitx-weex:${rootProject.ext.publish_config["version"]}"
26+
debugImplementation "io.github.didi.dokit:dokit-gps-mock:${rootProject.ext.publish_config["version"]}"
2627
releaseImplementation "io.github.didi.dokit:dokitx-no-op:${rootProject.ext.publish_config["version"]}"
2728
}
2829
}

Android/app/src/debug/java/com/didichuxing/doraemondemo/amap/FloatGpsMockRouteKitView.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
import com.didichuxing.doraemondemo.R;
1313
import com.didichuxing.doraemondemo.dokit.SimpleDoKitView;
14-
import com.didichuxing.doraemonkit.kit.lbs.route.FloatGpsRouteMockCache;
14+
import com.didichuxing.doraemonkit.gps_mock.lbs.route.FloatGpsRouteMockCache;
1515

1616
public class FloatGpsMockRouteKitView extends SimpleDoKitView {
1717
public static final String TAG = "FloatGpsMockRoutKitView";

Android/app/src/debug/java/com/didichuxing/doraemondemo/amap/FloatGpsPresetMockKitView.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99

1010
import com.didichuxing.doraemondemo.R;
1111
import com.didichuxing.doraemondemo.dokit.SimpleDoKitView;
12-
import com.didichuxing.doraemonkit.kit.lbs.common.LocInfo;
13-
import com.didichuxing.doraemonkit.kit.lbs.manual.FloatGpsMockCache;
14-
import com.didichuxing.doraemonkit.kit.lbs.preset.FloatGpsPresetMockCache;
15-
import com.didichuxing.doraemonkit.kit.lbs.preset.MockLocList;
12+
import com.didichuxing.doraemonkit.gps_mock.lbs.common.LocInfo;
13+
import com.didichuxing.doraemonkit.gps_mock.lbs.manual.FloatGpsMockCache;
14+
import com.didichuxing.doraemonkit.gps_mock.lbs.preset.FloatGpsPresetMockCache;
15+
import com.didichuxing.doraemonkit.gps_mock.lbs.preset.MockLocList;
1616
import com.google.android.flexbox.FlexboxLayout;
1717

1818
import java.util.ArrayList;

Android/app/src/main/java/com/didichuxing/doraemondemo/MainDebugActivityOkhttpV3.kt

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,13 @@ import androidx.recyclerview.widget.LinearLayoutManager
2323
import coil.imageLoader
2424
import coil.request.CachePolicy
2525
import coil.transform.CircleCropTransformation
26+
import com.amap.api.location.AMapLocationClient
27+
import com.amap.api.location.AMapLocationClientOption
2628
import com.amap.api.location.AMapLocationListener
29+
import com.amap.api.navi.AMapNavi
30+
import com.amap.api.navi.AMapNaviListener
31+
import com.amap.api.navi.enums.PathPlanningStrategy
32+
import com.amap.api.navi.model.*
2733
import com.blankj.utilcode.util.*
2834
import com.bumptech.glide.Glide
2935
import com.bumptech.glide.RequestBuilder
@@ -55,6 +61,7 @@ import retrofit2.converter.gson.GsonConverterFactory
5561
import retrofit2.converter.scalars.ScalarsConverterFactory
5662
import java.io.*
5763
import java.net.*
64+
import java.util.HashMap
5865
import kotlin.coroutines.resume
5966

6067
/**
@@ -106,6 +113,7 @@ class MainDebugActivityOkhttpV3 : BaseActivity(), View.OnClickListener, Coroutin
106113
"模拟内存泄漏",
107114
"函数调用耗时(TAG:MethodCostUtil)",
108115
"获取位置信息(系统)",
116+
"获取位置信息(高德)",
109117
"高德路径规划",
110118
"OkHttp Mock",
111119
"HttpURLConnection Mock",
@@ -220,6 +228,9 @@ class MainDebugActivityOkhttpV3 : BaseActivity(), View.OnClickListener, Coroutin
220228
"获取位置信息(系统)" -> {
221229
startNormaLocation()
222230
}
231+
"获取位置信息(高德)" ->{
232+
startAMapLocation()
233+
}
223234
"高德路径规划" -> {
224235
CommLauncher.startActivity(AMapRouterFragment::class.java, this)
225236
}
@@ -382,6 +393,36 @@ class MainDebugActivityOkhttpV3 : BaseActivity(), View.OnClickListener, Coroutin
382393
)
383394
}
384395

396+
/**
397+
* 启动高德定位
398+
*/
399+
private fun startAMapLocation() {
400+
// 确保调用SDK任何接口前先调用更新隐私合规updatePrivacyShow、updatePrivacyAgree两个接口并且参数值都为true,若未正确设置有崩溃风险
401+
AMapLocationClient.updatePrivacyShow(this, true, true)
402+
AMapLocationClient.updatePrivacyAgree(this, true)
403+
404+
//声明mLocationOption对象
405+
var mLocationOption: AMapLocationClientOption? = null
406+
val mlocationClient = AMapLocationClient(this)
407+
408+
//初始化定位参数
409+
mLocationOption = AMapLocationClientOption()
410+
//设置定位监听
411+
mlocationClient!!.setLocationListener(mapLocationListener)
412+
//设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式
413+
mLocationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy
414+
//设置定位间隔,单位毫秒,默认为2000ms
415+
mLocationOption.interval = 2000
416+
//设置定位参数
417+
mlocationClient!!.setLocationOption(mLocationOption)
418+
// 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗,
419+
// 注意设置合适的定位时间的间隔(最小间隔支持为1000ms),并且在合适时间调用stopLocation()方法来取消定位请求
420+
// 在定位结束后,在合适的生命周期调用onDestroy()方法
421+
// 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除
422+
//启动定位
423+
mlocationClient!!.startLocation()
424+
}
425+
385426
/**
386427
* 启动高德定位服务
387428
*/

Android/build.gradle

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -160,12 +160,6 @@ task checkUploadConfig4Maven() {
160160
if (!modules.contains("dokit-plugin")) {
161161
throw new RuntimeException("未找到dokit-plugin module。。。")
162162
}
163-
164-
// if (!modules.contains("dokit-dmap")) {
165-
// throw new RuntimeException("未找到dokit-dmap module。。。")
166-
// }
167-
168-
169163
}
170164
}
171165

@@ -202,11 +196,6 @@ task checkUploadConfig4Local() {
202196
if (!modules.contains("dokit-plugin")) {
203197
throw new RuntimeException("未找到dokit-plugin module。。。")
204198
}
205-
206-
// if (!modules.contains("dokit-dmap")) {
207-
// throw new RuntimeException("未找到dokit-dmap module。。。")
208-
// }
209-
210199
}
211200
}
212201

@@ -242,11 +231,6 @@ task checkUploadConfig4Didi() {
242231
if (!modules.contains("dokit-plugin")) {
243232
throw new RuntimeException("未找到dokit-plugin module。。。")
244233
}
245-
246-
// if (!modules.contains("dokit-dmap")) {
247-
// throw new RuntimeException("未找到dokit-dmap module。。。")
248-
// }
249-
250234
}
251235
}
252236

0 commit comments

Comments
 (0)