【问题标题】:Best way of setting mocklocaiton on Android在 Android 上设置 mocklocaiton 的最佳方式
【发布时间】:2021-10-13 16:58:09
【问题描述】:

显然有两种方法可以在 Android 中设置模拟位置(目前正在使用 Android 11)

使用 FusedLocationProviderClient 的一种方式:

mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
mFusedLocationClient.setMockMode(true);
mFusedLocationClient.setMockLocation(createLocation(LAT, LNG, ACCURACY));

另一个使用 LocationManager:

LocationManager lm = (LocationManager) ctx.getSystemService(
                    Context.LOCATION_SERVICE);
lm.addTestProvider(providerName, false, false, false, false, false,
                    true, true, 1, 1);
lm.setTestProviderEnabled(providerName, true);
Location mockLocation = createLocation(LAT, LNG, ACCURACY);
lm.setTestProviderLocation(providerName, mockLocation);

想知道什么是正确的方法。 对我来说,第二个工作正常,第一个不(仍在调查) 但我想知道正确的方法是什么? 还想知道为什么有两种不同的方式?

【问题讨论】:

    标签: android location mock-location


    【解决方案1】:

    区别在于 LocationManager 与 LocationServices。

    LocationManager 是内置的 Android 定位功能。它通过 GPS 或网络识别提供对位置的访问。每个设备都有这个。

    LocationServices 是一项 Google Play 服务功能。它的主要价值是使用网络、轻微 GPS 使用和其他数据源来提供位置的“融合”提供商。它往往比电池电量低于 GPS 的网络更准确(但不如 GPS 准确/精确)。只有 OEM 为访问 Google Play 服务而向 Google 付费的设备才有此功能(这主要是亚洲和非洲的问题)。

    两种不同的系统,两种不同的模拟位置方式。如果您通过 Google Play 服务获取位置,则您的顶部有效,如果通过 LocationManager 获取底部有效。使用与您通常获取位置的方式相匹配的一种。

    【讨论】:

      猜你喜欢
      • 2015-10-15
      • 1970-01-01
      • 1970-01-01
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 2014-10-19
      • 1970-01-01
      相关资源
      最近更新 更多