android - Android 在应用加载时强制更新位置 - fusedlocationproviderclient
问题描述
我面临一个问题,因为在加载另一个应用程序(例如 Google 地图)并触发位置更新之前,我无法在我的应用程序中获取任何位置信息。
为了解决这个问题,我想在 onCreate() 触发时开始位置更新,然后在收到位置时立即停止它。我在 onCreate() 方法中使用以下代码:
// Location client
final FusedLocationProviderClient locationClient = getFusedLocationProviderClient(this);
if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
locationClient.requestLocationUpdates(new LocationRequest().setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY).setInterval(500).setFastestInterval(500), new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
super.onLocationResult(locationResult);
locationClient.removeLocationUpdates(new LocationCallback() {
});
}
@Override
public void onLocationAvailability(LocationAvailability locationAvailability) {
super.onLocationAvailability(locationAvailability);
}
}, null);
}
在此之后仍然没有存储任何位置,直到我运行谷歌地图。任何建议表示赞赏!
解决方案
推荐阅读
- android - 如何一键设置不同时间的闹钟?
- autohotkey - WinActivate 根据特定条件(包括/排除窗口)
- c++ - MITM 代理,TLS 1.2 证书验证失败
- android - 从 CMake 获取并构建 libpng-android
- tcl - Tcl 过程如何访问它之外的几十个常量?
- csv - csv 中的 Hive 结果
- android - 将底部卡片视图转换为顶部卡片视图
- elasticsearch - fluent-bit 无法解析 kubernetes 日志
- javascript - Do i need to print PHP form validation Errors to user?
- javascript - 为什么这个 POST 方法没有在 Node 的 Postgres 数据库中插入数据?