You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何替代已废弃的LocationRequest创建位置请求?

LocationRequest.Builder 替代废弃API的解决方案

直接替换示例

把你原来的废弃写法换成LocationRequest.Builder的标准用法,以下是Kotlin代码示例:

废弃写法(不可用)

// 旧的废弃代码
val locationRequest = LocationRequest.create().apply {
    interval = 10000
    fastestInterval = 5000
    priority = LocationRequest.PRIORITY_HIGH_ACCURACY
}

新的替代写法

// 基于Builder的新写法
val locationRequest = LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, 10000)
    .setMinUpdateIntervalMillis(5000)
    // 可选:适合天气应用的延迟设置,允许系统批量更新节省电量
    .setMaxUpdateDelayMillis(15000)
    .build()

关键参数说明

  • 优先级:用Priority枚举替代旧的常量,常用选项:
    • PRIORITY_HIGH_ACCURACY:高精度定位(GPS+网络),适合首次获取用户当前位置
    • PRIORITY_BALANCED_POWER_ACCURACY:平衡精度与功耗(网络定位为主),适合天气应用后续低频率更新
  • 构造函数第二个参数:updateIntervalMillis,即期望的位置更新间隔(毫秒)
  • setMinUpdateIntervalMillis():设置系统允许的最快更新间隔,防止频繁更新耗电,数值需小于等于更新间隔
  • setMaxUpdateDelayMillis():设置最大延迟时间,系统会在这个时间段内批量处理位置更新,适合非实时场景(比如天气应用)

天气应用适配建议

因为天气应用不需要实时高频更新位置,推荐两种配置:

  • 首次启动获取当前位置:设置间隔为0,只获取一次后停止
    val oneTimeLocationRequest = LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, 0)
        .build()
    
  • 后续低功耗更新:用平衡精度+长间隔,比如30分钟更新一次
    val lowPowerLocationRequest = LocationRequest.Builder(Priority.PRIORITY_BALANCED_POWER_ACCURACY, 30 * 60 * 1000)
        .setMinUpdateIntervalMillis(25 * 60 * 1000)
        .setMaxUpdateDelayMillis(35 * 60 * 1000)
        .build()
    

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 03:15:39