Android 如何阻止mlastnownlocation在app';模拟器上的第一次加载

Android 如何阻止mlastnownlocation在app';模拟器上的第一次加载,android,google-maps-android-api-2,Android,Google Maps Android Api 2,我正在使用模拟器测试我的应用程序。 如果我清除模拟器上的所有数据并启动应用程序,然后使用android开发者文档中的以下方法: getLocationPermission(); updateLocationUI(); getDeviceLocation(); 引发错误,因为首次使用应用程序mLastKnownLocation时为null 我读过很多关于这方面的帖子,问题似乎是在从未使用过其位置服务的设备上打开应用程序似乎是个问题,因为没有记录过最后一个位置 这很酷,但我正在努力实现一

我正在使用模拟器测试我的应用程序。 如果我清除模拟器上的所有数据并启动应用程序,然后使用android开发者文档中的以下方法:

 getLocationPermission();

 updateLocationUI();

 getDeviceLocation();
引发错误,因为首次使用应用程序mLastKnownLocation时为null

我读过很多关于这方面的帖子,问题似乎是在从未使用过其位置服务的设备上打开应用程序似乎是个问题,因为没有记录过最后一个位置

这很酷,但我正在努力实现一个简单的解决方案。有一些关于mGoogleApiClient的帖子

GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(this)
    .enableAutoManage(this /* FragmentActivity */,
                      this /* OnConnectionFailedListener */)
    .addApi(Drive.API)
    .addScope(Drive.SCOPE_FILE)
    .build();
但不确定这是如何解决问题的

我想知道在getLocationPermission为真之后,是否有一种简单的方法来强制locationservices打开并获取设备位置


谢谢。

要使其变得简单,请尝试使用此库。你只能得到一次

如果你想一次得到一个位置,你只需要输入这个代码

SmartLocation.with(context).location()
    .oneFix()
    .start(new OnLocationUpdatedListener() { ... });

谢谢@Deni,但我不是真的想要图书馆。我只是不介意用一个简单的解决方案来解决我认为很简单的问题。@Mike如果您不想一次获得位置SmartLocation.with(context.location().oneFix().start(new OnLocationUpdatedListener(){…}),您只需输入此代码即可;