如何在Android Studio模拟器中手动设置位置

19

我有一个项目需要将位置设置为印度,但是在我的模拟器上无法获取位置。

  • 我需要将位置设置为印度
  • 当我在模拟器上使用谷歌地图时,它显示的当前位置在海洋中央。

API level I am using is 27.
Emulator I use is Nexus 5x.

如何在模拟器和手动方式中获取当前位置。

我尝试编辑模拟器中的位置,尝试提供纬度和经度,但它不起作用。


你可以在这里找到答案。 - jorjSB
请检查以下链接:https://dev59.com/vVoT5IYBdhLWcg3wtRUR https://stackoverflow.com/questions/39204953/mock-location-does-not-work-in-android-studio-emulator https://dev59.com/jWMk5IYBdhLWcg3wywwU - Tomin B Azhakathu
8个回答

26
在 Android Studio 3.6 中,更改模拟器位置的方法与被接受的答案略有不同。以下是具体步骤:
第一步,
点击模拟器页面上的“更多选项”按钮。

click more on emulator

第二步,
在打开的菜单中,“位置”是第一个选项并已默认选择。你需要在地图上选择你要设置的位置,并且保存该点。

tap on map and set your location point

第三步,
选择刚才保存过的点,并点击右下角的“选择位置”按钮。

change emulator location

完成以上步骤后,关闭窗口即可。有时候你可能需要关闭模拟器并重新打开(非重启)才能生效。

4
如果我在我的应用程序中记录位置信息,即使您在可视化设置位置,经纬度仍将位于美国某个地方。 - yesIamFaded
4
好的,这是变更后的Mountain View位置。 - Neuron
5
无法正常工作,仍会显示Mountain View位置。 - Sriram Nadiminti
1
设置新位置后仍然无法工作,我尝试了重置也不行。 - A. Amini
1
对我来说,关闭“扩展控件”窗口使其正常工作。 - Rami Alloush
显示剩余6条评论

26

首先,

  • 重启你的模拟器。
  • 进入 更多 > 定位。输入你的纬度和经度 > 点击 发送

在此输入图片描述


9
尝试了很多次,但不起作用。在设置后查看谷歌地图时,仍然显示当前位置在美国。 - Martin j
1
截至本文撰写时,Android Studio Dolphin | 2021.3.1 Patch 1中已不再存在那些位置控件。 - Mike S.

4

您可以使用命令提示符或ADB设置位置。

在AndroidManifest.xml中设置权限:

查找Android模拟器的正确本地端口:

$ adb devices
  List of devices attached
  emulator-5554 device

我们需要的端口号是5554。现在通过telnet连接:
$ telnet localhost 5554
  Trying::1...
  Trying 127.0.0.1...
  Connected to localhost.
  Escape character is '^]'.
  Android Console: type 'help' for a list of commands

手动设置首选位置:您可以使用geo fix命令设置位置:

 geo fix $longitude $latitude

例如

geo fix 2.169919 41.387917
OK

另外一种简单的方式

从Android Studio中打开Android设备监视器

选择模拟器。

选择模拟器控制

在模拟器控制中选择位置控制

选择手动

在那里输入您的经度纬度


2
当我尝试输入命令 - geo fix 2.169919 41.387917 时,出现错误:Android控制台:需要身份验证 Android控制台:输入“auth <auth_token>”进行身份验证 Android控制台:您可以在'C:\ Users \ martin \ .emulator_console_auth_token'中找到<auth_token> 好的 - 如何处理@Tomin B这个错误 - Martin j
1
@Martinj 请尝试下一个方法。使用Android设备监视器。第二种方法一定会起作用。 - Tomin B Azhakathu
当我点击安卓设备监视器时,没有任何反应。 - Martin j
ADM中的模拟器控制所有内容都变灰了。模拟器可以让您输入和按下带有GPS坐标的按钮,但没有任何影响。 - FirefighterBlu3
@Martinj Ops,我忘了告诉你还需要重新启动模拟器。你重启了吗? - Blasanka

4
在我的情况下,只有在模拟器上登录Google账户后,位置才会改变。登录后,位置就会发生改变。我认为这与Google服务有关。

这对我有用,我只是在模拟器上用我的Google账号登录了。 - Dexter Fury Kombat Zone

0

我通过清除模拟器的数据并重新启动解决了这个问题。


0
在我的情况下,设置点并重新启动模拟器,然后登录Google帐户并直接在Chrome中检查我的位置是解决方案。

0
找到适合您的Android模拟器的正确本地端口:
$ adb devices
  List of devices attached
  emulator-5554 device

我们要找的端口是5554。现在通过telnet连接:
$ telnet localhost 5554
  Trying::1...
  Trying 127.0.0.1...
  Connected to localhost.
  Escape character is '^]'.
  Android Console: type 'help' for a list of commands

手动设置您的首选位置:您可以使用geo fix命令来设置位置:

 geo fix $longitude $latitude

例如
geo fix 2.169919 41.387917
OK

如果您遇到需要身份验证的问题,请按照以下步骤操作:
Android Console: Authentication required
Android Console: type 'auth <auth_token>' to authenticate
Android Console: you can find your <auth_token> in
'C:\Users\Administrator\.emulator_console_auth_token' <--you will find your auth code here
OK
auth PsL*******QML <---pass auth with your authentication code then enter 
Android Console: type 'help' for a list of commands
OK
geo fix your_desired_long your_desired_lat <--then this
OK

或者你也可以这样做:
adb -s emulator-5554 emu geo fix <longitude> <latitude>
your emulator name-> like emulator-5554
adb -s emulator-5554 emu geo fix -122.0838 37.4220

-1

将 Android 位置管理器的强制设置为 true。像这样 "position = await Geolocator.getCurrentPosition( desiredAccuracy: LocationAccuracy.low, forceAndroidLocationManager: true);" 然后您就可以在模拟器上获取位置了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接