首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Android上设置mocklocaiton的最佳方式

在Android上设置mocklocaiton的最佳方式
EN

Stack Overflow用户
提问于 2021-10-13 16:58:09
回答 1查看 37关注 0票数 0

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

使用FusedLocationProviderClient的一种方法:

代码语言:javascript
运行
复制
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
mFusedLocationClient.setMockMode(true);
mFusedLocationClient.setMockLocation(createLocation(LAT, LNG, ACCURACY));

另一个使用LocationManager的方法:

代码语言:javascript
运行
复制
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);

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

EN

回答 1

Stack Overflow用户

发布于 2021-10-13 17:04:55

区别在于LocationManager和LocationServices。

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

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

两种不同的系统,两种不同的模拟定位方式。如果你通过谷歌Play服务获得位置,你最上面的一个可以工作,如果你通过LocationManager,你可以在底部找到位置。使用与您通常获取位置的方式相匹配的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69559461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档