如何将“geo fix”命令发送到 Android 的真实设备?
Posted
技术标签:
【中文标题】如何将“geo fix”命令发送到 Android 的真实设备?【英文标题】:How to send "geo fix" command to real device of Android? 【发布时间】:2011-08-08 08:12:05 【问题描述】:首先,感谢您对我的问题的关注
我正在计划设计一个 android GPS 定位应用程序
这是我的困难和情况
(1)我的电脑硬件已经过时了,运行一个android模拟器调试真的很费时间,所以我一周前买了一个真正的设备(android手机),目的是更换调试中的模拟器
(2)我知道如何通过“DDMS/Emulator Control/Location Controls”将位置数据发送到模拟器,但是对于真实设备它是禁用的
(3)我在室内编程,所以不能使用物理gps定位功能(即使我打开“a-gps”)
(4)我在这里找到了另一个话题:Android mock location on device? 但是,我无法打开详细链接,例如“安德鲁斯链接”、“http://dehuysser.appspot.com/blog/android-developer-shell-released”
我猜这些网站是我国禁止的......
这是我的问题:
(A)我找到了一些制作模拟定位数据的代码,但是这些代码无法激活“onLocationChanged”功能
但是,我想知道是否有一种方法可以通过 USB 端口将定位数据从 PC 发送到真实设备(我处于 USB 调试模式),就像从 DDMS 发送位置到模拟器一样?
(B)我得到的信息是,可以通过“telnet localhost”向模拟器和真实设备发送“geo fix”命令,但是如何检查被占用的端口号我的真实设备?
我知道5554端口是用来做模拟器的,但是真机呢?
我尝试在终端中命令“netstat”,但很遗憾我不知道我的安卓手机是哪个端口......
(C)如果我的(A)(B)问题不实用,那么“设置/应用程序/开发/允许模拟位置”是做什么用的?
请帮帮我,谢谢你的回答!
【问题讨论】:
【参考方案1】:我为此编写了一个应用程序(默认情况下,此功能在手机上不可用)-它是open source,并提供与模拟器完全相同的界面(telnet 到:5554 并运行“geo fix ...”或“geo nmea”):在应用商店MockGeoFix
【讨论】:
【参考方案2】:使用模拟数据的最简单方法是使用模拟测试位置提供程序 API。它位于documentation page 的底部。我已经尝试过了,并且在 onLocationChanged 回调中收到了位置。 Here 是一些您可以尝试的代码。
adb使用的端口一般是5037。
【讨论】:
以上是关于如何将“geo fix”命令发送到 Android 的真实设备?的主要内容,如果未能解决你的问题,请参考以下文章
Geo Fix 在 Android SDK 2.2 中不起作用
如何将虚拟相机发送到 Ubuntu 中的 Genymotion 或 Android Studio Emulator?