gpt4 book ai didi

java - Android - 在没有应用程序上下文的情况下获取用户 GPS 位置

转载 作者:行者123 更新时间:2023-12-01 17:54:34 24 4
gpt4 key购买 nike

我试图在 Android 应用程序中按下按钮时简单地获取用户的位置。我的应用程序使用数据绑定(bind),这意味着我们有:

  • 单一主要 Activity
  • fragment ( View )
  • 与我的存储库交互的 View 模型

问题是我的按钮按下操作是在 Viewmodel 中处理的,但我只能在 View 中获取 GPS 位置。这就是我使用此类 https://github.com/Miserlou/Cop-Recorder-2/blob/master/src/org/ale/coprecord/MyLocation.java 在 fragment 中获取 GPS 位置的方法:

LocationResult locationResult = new LocationResult(){
@Override
public void gotLocation(Location location){
newSessionViewModel.getPositionObtained().postValue(location);
}
};

MyLocation myLocation = new MyLocation();
gotLocation = myLocation.getLocation(this.getContext(), locationResult);

问题是this.getContext()。 fragment 可以访问上下文,但我的 View 模型不能。

因此,要获取我的 View 模型中的位置,我必须从我的 View 模型转到我的 View ,然后返回我的 View 模型,如您在上面看到的,这很烦人和丑陋。

我发现的其他解决方案也需要传递上下文:

LocationManager locationManager = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new MyLocationListener();
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 5000, 10, locationListener);

所以我的问题是,在 Viewmodel 中获取当前用户位置的最简单、最快的方法是什么?或者我应该将上下文传递给静态类中的全局变量并在我的 View 模型中重用它?这可能会更快、更容易。

最佳答案

获取位置更新最快、最简单的方法是通过 Google Play Services 获取位置更新

希望这有帮助!

关于java - Android - 在没有应用程序上下文的情况下获取用户 GPS 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60743938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com