模拟器的位置模拟不起作用
Emulator's Location simulation not working
我想将我的应用程序的最低 API 级别从 5.0(Lollipop)
降低到 4.4(KitKat)
遗憾的是我无法获得任何真实设备所以我必须使用模拟器工作。
我的应用很大程度上基于用户的位置,因此主要测试必须针对位置更改功能。
我尝试使用 官方 Google Android 模拟器使用位置模拟。 (x86)
我制作了一个 4.4 模拟器并且工作正常,我的 应用工作正常 但是当我尝试 通过扩展控制面板发送位置没有任何反应。
如果我加载 GPX 文件 位置显示在 GPS 数据播放内的扩展控制面板的 table 上,但 设备显示没有得到任何位置。
我填写了纬度和经度点击"SEND"但是没有任何反应。
我还尝试从 Android 设备监视器的 "Emulator Control" 选项卡
模拟位置更改
"Send" 按钮根本无法点击,经度和纬度字段被禁用,我无法填写任何内容。 "GPX" 和 "KML" 选项卡也被禁用。
我也试过使用 Gps Emulator 插件,如下所示:
进度条确实增加了,所以不像我尝试过的前两种方法这最终看起来像是在做一些事情但是模拟器仍然没有得到位置改变了。 完全没有。
我已经通过命令行尝试了第四种方法:
telnet localhost 5554
但是我有 Connection refused
错误消息。
所以我无法尝试通过以下方式发送位置:
geo fix <longitude value> <latitude value>
(我的 Windows 启用了 Telnet)
我在使用 SDK 工具版本 25.1.7 时遇到了同样的问题。我已将它们更新为 25.2 rc1,现在可以使用了。
请注意,您无法从 Android Studio 安装 RC 版本。您必须启动单独的 Android SDK 管理器才能看到它。
重新启动模拟器并检查您确实在扩展控件 Help/About 屏幕中使用的是最新版本 windows。
I have also tried to simulate location changing from the Android Device Monitor's "Emulator Control" tab
The "Send" button is not clickable at all, the long and lat fields are disabled and I cannot fill anything. The "GPX" and "KML" tabs are also disabled.
我注意到了同样的事情,但后来我查看了模拟器本身的扩展菜单。您可以通过模拟器菜单更新位置。
就我而言,原因是 "Battery saving" 上设置的 phone 设置中的位置设置。
将其切换为 "High accuracy" 并且有效。
我遇到了同样的问题,但我设法解决了。
运行 Google 地图并至少接受一次确认,直到您看到地图。不要忘记将您的位置设置设置为 ON/High 准确度,如下面的屏幕截图所示。
使用 OS X
和 Android Studio
,有同样的问题,对我有用的是:转到实际的 phone(模拟器)设置,位置,然后关闭位置并将其重新打开。再次测试,并开始工作。
我觉得没关系,但是模拟器版本:26.0.3-3965150.
我也有这个问题,我从别人那里接手了一个框架项目,但无法让模拟器获取 GPS 位置。
在我的例子中,问题是在 Android Studio 的项目中默认选择的 LocationManager,它使用的是网络而不是 GPS
我必须在模拟器上将位置设置为 Device Only 才能正常工作。有时必须在模式之间切换。设备仅强制使用 GPS 而不是 WiFi、蓝牙等
一个简单的模拟器重启就完成了我的工作(长按关机按钮并 select 重启)
模拟器用户:
如果您尝试从扩展控制器传递经度和纬度值,则必须在 MainActivity 中添加此代码。
String LOCATION_PROVIDER = LocationManager.GPS_PROVIDER;
在 AndroidManifest 中
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
在一个 Android 模拟器上 @Emre 的答案有效,在另一个上它也使用模拟器电源按钮重新启动
我遇到了与 FusedLocationProviderClient 相同的问题,我通过向公开 ResolvableApiException 对象的 SettingsClient 对象中的 addOnFailureListener 添加代码来解决它。我只是打电话给:
(resolvableApiException as ResolvableApiException).startResolutionForResult(mainActivity, 6)
这显示了一个弹出窗口,我用它来响应 'OK' 并且 AVD 问题已解决。
我制作了一个项目,您可以从 bitbucket 下载。
https://bitbucket.org/warwick/avd-location-fix/src/master/
repo 包含一个 zip 文件 'AvdLocationFix.zip'。此文件包含一个 Android 项目。只需在 Android Studio 中打开它,然后在导致问题的 AVD 上 运行 打开它。
运行安装应用程序后,您可能必须禁用并重新启用 AVD 中的位置才能使其正常工作。
希望对您有所帮助。
对我来说,只需打开 Goggle 地图并跳过配置即可。从默认位置开始,然后更改为我配置的位置
信息:
模拟的设备:Pixel 3A
模拟器版本:30.0.12-6466327
Android 版本:10.0 (Q) - API 29
最后的努力:擦除模拟器数据并重试。这是 Android Studio 进行 AVD 更新后为我修复的问题。
我通过删除 Android 图像并从 AVD 管理器安装最新的 Android 系统解决了我的问题。
在那之后,我使用了一个使用该系统的新设备,最终让事情对我有用。
希望这对某人有所帮助。
我想将我的应用程序的最低 API 级别从 5.0(Lollipop)
降低到 4.4(KitKat)遗憾的是我无法获得任何真实设备所以我必须使用模拟器工作。
我的应用很大程度上基于用户的位置,因此主要测试必须针对位置更改功能。
我尝试使用 官方 Google Android 模拟器使用位置模拟。 (x86)
我制作了一个 4.4 模拟器并且工作正常,我的 应用工作正常 但是当我尝试 通过扩展控制面板发送位置没有任何反应。
如果我加载 GPX 文件 位置显示在 GPS 数据播放内的扩展控制面板的 table 上,但 设备显示没有得到任何位置。
我填写了纬度和经度点击"SEND"但是没有任何反应。
我还尝试从 Android 设备监视器的 "Emulator Control" 选项卡
模拟位置更改"Send" 按钮根本无法点击,经度和纬度字段被禁用,我无法填写任何内容。 "GPX" 和 "KML" 选项卡也被禁用。
我也试过使用 Gps Emulator 插件,如下所示:
进度条确实增加了,所以不像我尝试过的前两种方法这最终看起来像是在做一些事情但是模拟器仍然没有得到位置改变了。 完全没有。
我已经通过命令行尝试了第四种方法:
telnet localhost 5554
但是我有 Connection refused
错误消息。
所以我无法尝试通过以下方式发送位置:
geo fix <longitude value> <latitude value>
(我的 Windows 启用了 Telnet)
我在使用 SDK 工具版本 25.1.7 时遇到了同样的问题。我已将它们更新为 25.2 rc1,现在可以使用了。
请注意,您无法从 Android Studio 安装 RC 版本。您必须启动单独的 Android SDK 管理器才能看到它。
重新启动模拟器并检查您确实在扩展控件 Help/About 屏幕中使用的是最新版本 windows。
I have also tried to simulate location changing from the Android Device Monitor's "Emulator Control" tab The "Send" button is not clickable at all, the long and lat fields are disabled and I cannot fill anything. The "GPX" and "KML" tabs are also disabled.
我注意到了同样的事情,但后来我查看了模拟器本身的扩展菜单。您可以通过模拟器菜单更新位置。
就我而言,原因是 "Battery saving" 上设置的 phone 设置中的位置设置。 将其切换为 "High accuracy" 并且有效。
我遇到了同样的问题,但我设法解决了。
运行 Google 地图并至少接受一次确认,直到您看到地图。不要忘记将您的位置设置设置为 ON/High 准确度,如下面的屏幕截图所示。
使用 OS X
和 Android Studio
,有同样的问题,对我有用的是:转到实际的 phone(模拟器)设置,位置,然后关闭位置并将其重新打开。再次测试,并开始工作。
我觉得没关系,但是模拟器版本:26.0.3-3965150.
我也有这个问题,我从别人那里接手了一个框架项目,但无法让模拟器获取 GPS 位置。
在我的例子中,问题是在 Android Studio 的项目中默认选择的 LocationManager,它使用的是网络而不是 GPS
我必须在模拟器上将位置设置为 Device Only 才能正常工作。有时必须在模式之间切换。设备仅强制使用 GPS 而不是 WiFi、蓝牙等
一个简单的模拟器重启就完成了我的工作(长按关机按钮并 select 重启)
模拟器用户:
如果您尝试从扩展控制器传递经度和纬度值,则必须在 MainActivity 中添加此代码。
String LOCATION_PROVIDER = LocationManager.GPS_PROVIDER;
在 AndroidManifest 中
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
在一个 Android 模拟器上 @Emre 的答案有效,在另一个上它也使用模拟器电源按钮重新启动
我遇到了与 FusedLocationProviderClient 相同的问题,我通过向公开 ResolvableApiException 对象的 SettingsClient 对象中的 addOnFailureListener 添加代码来解决它。我只是打电话给:
(resolvableApiException as ResolvableApiException).startResolutionForResult(mainActivity, 6)
这显示了一个弹出窗口,我用它来响应 'OK' 并且 AVD 问题已解决。
我制作了一个项目,您可以从 bitbucket 下载。 https://bitbucket.org/warwick/avd-location-fix/src/master/
repo 包含一个 zip 文件 'AvdLocationFix.zip'。此文件包含一个 Android 项目。只需在 Android Studio 中打开它,然后在导致问题的 AVD 上 运行 打开它。 运行安装应用程序后,您可能必须禁用并重新启用 AVD 中的位置才能使其正常工作。
希望对您有所帮助。
对我来说,只需打开 Goggle 地图并跳过配置即可。从默认位置开始,然后更改为我配置的位置
信息:
模拟的设备:Pixel 3A
模拟器版本:30.0.12-6466327
Android 版本:10.0 (Q) - API 29
最后的努力:擦除模拟器数据并重试。这是 Android Studio 进行 AVD 更新后为我修复的问题。
我通过删除 Android 图像并从 AVD 管理器安装最新的 Android 系统解决了我的问题。
在那之后,我使用了一个使用该系统的新设备,最终让事情对我有用。