android - 使用 fused 的 Android 位置更新返回 null。如何确保我从前台活动中获得它?
问题描述
我在前台活动中需要该位置一次。但我得到一个空响应。
奇怪的是,一旦我打开谷歌地图,位置回调就会返回一个有效对象。谷歌地图在做什么而我不是?如何确保前台活动中的值不为空?
代码:
@SuppressLint("MissingPermission")
fun getLastLocation(): LiveData<Location> {
registerLocationUpdates()
try {
this.getFusedLocationProviderClient(context).lastLocation.addOnSuccessListener { loc: Location? ->
if (loc != null) {
util.toast(util.getStringRes(R.string.fetching_location, "${loc.latitude}, ${loc.longitude}"))
postValue(loc)
} else util.toast(util.getStringRes(R.string.null_location))
}.addOnFailureListener { e: Exception ->
Log.e(LocationModule::class.java.canonicalName, e.toString())
}
} catch (ex: Exception) {
Log.e(LocationModule::class.java.canonicalName, ex.toString())
}
return this
}
private fun getFusedLocationProviderClient(context: Context): FusedLocationProviderClient {
if (fusedLocationProviderClient == null) fusedLocationProviderClient =
LocationServices.getFusedLocationProviderClient(context)
return fusedLocationProviderClient!!
}
解决方案
推荐阅读
- sql - 从同一个表sql中获取不同列的最新和最早值
- sonarqube - 如果我在同一个项目中有多个目标文件夹的子目录,如何设置声纳属性
- php - 我如何使用 CURL ( Laravel ) 传递 SSL 证书
- react-native - 使用 JSC/Hermes/V8 增加调用堆栈大小 React Native
- dynamics-nav - SerialPort 读取扩展因 dotnet 错误而失败
- pandas - python - 如何在python中的另一个组上按组获得最小值?
- r - 国家标志在图表中显示不正确
- javascript - 有什么方法可以知道是否在 JavaScript 中的 div 元素内的某个位置按下了某个按钮?
- html - 如何删除html音频元素边框?
- java - 如何将默认构造函数输出存储在字符串中?