模拟器的位置模拟无法正常工作

时间:2016-07-07 13:54:45

标签: android android-studio gps android-emulator

我想将应用程序的最低API级别从5.0(Lollipop)降低到4.4(KitKat)

可悲的是,我无法获得任何真实的设备所以我必须使用模拟器。

我的应用严重依赖于用户的位置,因此主要测试必须定位位置更改功能。

我尝试使用官方Google Android模拟器进行位置模拟。 (86)

我已经制作了 4.4模拟器并且工作正常,我的应用程序正常但是当我尝试通过扩展控制面板发送位置时没有任何反应。

如果我加载GPX文件,则位置会显示在GPS数据播放内的扩展控制面板的表格中,但设备无法获取任何位置。

enter image description here

我填写纬度和经度点击" SEND"但没有任何反应。

我还试图通过 Android设备监视器"模拟器控制" 标签

模拟位置变化

"发送"按钮根本无法点击,长和lat字段被禁用,我无法填充任何内容。 " GPX"和" KML"选项卡也被禁用。

enter image description here

我还尝试使用Gps Emulator插件,如下所示:

enter image description here

进度条确实增加了,所以不像我尝试的前两种方法最终看起来实际上做了一些,但模拟器仍未获得位置更改。完全没有。

我通过命令行尝试了第四种方法:

telnet localhost 5554

但我有Connection refused错误消息。

所以我无法尝试通过以下方式发送位置:

geo fix <longitude value> <latitude value>

(在我的Windows上启用了Telnet)

13 个答案:

答案 0 :(得分:66)

我遇到了同样的问题,但我设法解决了这个问题。

运行Google地图并至少接受一次确认,直到您看到地图为止。不要忘记将您的位置设置设置为开/高精度,如下面的屏幕截图所示。

Google Maps Settings

答案 1 :(得分:8)

SDK Tools 25.1.7版本遇到了同样的问题。我已将它们更新为25.2 rc1,现在可以使用了。

请注意,您无法从Android Studio安装RC版本。您必须启动单独的Android SDK Manager才能看到它。

Android SDk Manager with RC android SDK tools

重新启动模拟器并检查您确实在扩展控件窗口的“帮助/关于”屏幕中使用了最新版本。

Extended controls window

答案 2 :(得分:7)

在我的情况下,原因是在“省电”设置的手机设置中的位置设置。 将其切换为“高精度”并且有效。

答案 3 :(得分:5)

使用OS XAndroid Studio,遇到了同样的问题,对我有用的是:转到实际的手机(模拟器)设置,位置,关闭位置并重新打开。再次测试,并开始工作。

我认为它并不重要,但仿真器版本:26.0.3-3965150.

答案 4 :(得分:3)

简单的模拟器重新启动为我完成了工作(长按关闭按钮并选择重新启动)

答案 5 :(得分:1)

enter image description here

我必须在模拟器上将位置设置为仅设备才能工作。有时必须在模式之间切换。设备仅强制使用GPS而不是WiFi,蓝牙等

答案 6 :(得分:1)

模拟器用户:

如果您尝试从扩展控制器传递经度和纬度值,则必须在MainActivity中添加此代码。

String LOCATION_PROVIDER = LocationManager.GPS_PROVIDER;

在AndroidManifest中

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

答案 7 :(得分:1)

在一个Android模拟器@Emre的答案上起作用,在另一个上,它也使用模拟器的“电源”按钮重新启动 enter image description here

答案 8 :(得分:0)

  

我还试图通过Android设备监视器的“仿真器控制”选项卡模拟位置更改   “发送”按钮根本不可点击,长和lat字段被禁用,我无法填充任何内容。 “GPX”和“KML”标签也被禁用。

我注意到了同样的事情,但后来我查看了模拟器本身的扩展菜单。您可以通过模拟器菜单更新位置。 enter image description here

答案 9 :(得分:0)

我也遇到过这个问题,我从别人手中接过了一个骨架项目,无法让模拟器拿起GPS位置。

在我的情况下,问题是默认情况下在Android Studio中使用的项目中选择的LocationManager,该项目使用的是网络而不是GPS

答案 10 :(得分:0)

我在FusedLocationProviderClient中也遇到了同样的问题,我通过将代码添加到SettingsClient对象的addOnFailureListener中来解决此问题,该对象公开了ResolvableApiException对象。我只是打了个电话到:

(resolvableApiException as ResolvableApiException).startResolutionForResult(mainActivity, 6)

这显示了一个弹出窗口,我单击“确定”后,AVD问题已解决。 希望这会有所帮助。

答案 11 :(得分:0)

对我来说,只需打开Goggle映射并跳过配置即可。从默认位置开始,然后更改为我配置的位置

信息:

模拟的设备:像素3A

仿真器版本:30.0.12-6466327

Android版本:10.0(Q)-API 29

答案 12 :(得分:0)

尽力而为:清除仿真器数据,然后重试。这是在Android Studio更新了AVD之后为我解决的问题。