|
|
|
@ -16,6 +16,7 @@ import io.flutter.plugin.common.MethodChannel |
|
|
|
import kotlinx.coroutines.CoroutineScope |
|
|
|
import kotlinx.coroutines.Dispatchers |
|
|
|
import kotlinx.coroutines.launch |
|
|
|
import org.json.JSONObject |
|
|
|
|
|
|
|
|
|
|
|
object LocationService { |
|
|
|
@ -115,6 +116,15 @@ object LocationService { |
|
|
|
} |
|
|
|
|
|
|
|
initialized = true |
|
|
|
//首次请求一次定位 |
|
|
|
requestLocation(object : LocationCallback { |
|
|
|
override fun onLocationSuccess(latitude: Double, longitude: Double) { |
|
|
|
} |
|
|
|
|
|
|
|
override fun onLocationError(errorCode: Int, errorMessage: String) { |
|
|
|
} |
|
|
|
}) |
|
|
|
|
|
|
|
Log.d(TAG, "定位服务初始化完成 - 优化高精度模式") |
|
|
|
} catch (e: Exception) { |
|
|
|
Log.e(TAG, "高德定位初始化失败: ${e.message}", e) |
|
|
|
@ -173,14 +183,6 @@ object LocationService { |
|
|
|
} |
|
|
|
|
|
|
|
Log.d(TAG, "定位结果: 来源=${location.provider}, 精度=${location.accuracy}米, 坐标=(${location.latitude}, ${location.longitude})") |
|
|
|
|
|
|
|
// 检查定位来源,只接受GPS定位 |
|
|
|
if (location.provider != "gps") { |
|
|
|
Log.w(TAG, "拒绝非GPS定位,当前来源: ${location.provider}") |
|
|
|
// 继续等待GPS定位,不回调 |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
if (location.errorCode == AMapLocation.LOCATION_SUCCESS) { |
|
|
|
val accuracy = location.accuracy |
|
|
|
Log.d(TAG, "GPS定位成功: 精度=${accuracy}米") |
|
|
|
|