我面临一个问题,因为在加载另一个应用程序(例如 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);
}
在此之后仍然没有存储任何位置,直到我运行谷歌地图。任何建议表示赞赏!