26

是否可以在 android 模拟器上激活网络位置提供程序?也许用假细胞?

4

4 回答 4

18

我相信你想要达到的目标目前是不可能的。您不能将模拟位置数据放入模拟器的网络位置提供程序。

“提供模拟位置数据作为 GPS 位置数据注入,因此您必须从 GPS_PROVIDER 请求位置更新,以便模拟位置数据工作。” (引自Android,文档,提供模拟位置数据

我能想到的最接近的事情是从 位置管理器创建一个“测试提供者”

public void addTestProvider (String name, boolean requiresNetwork, boolean requiresSatellite, boolean requiresCell, boolean hasMonetaryCost, boolean supportsAltitude, boolean supportsSpeed, boolean supportsBearing, int powerRequirement, int accuracy)

并相应地设置参数requiresNetworkrequiresCellrequiresSatellite。然后,您可以将虚假位置发送给该提供商:

public void setTestProviderLocation (String provider, Location loc)

这接近但不完全符合您的要求。

于 2011-02-06T21:55:21.733 回答
3

您需要将位置信息发送到模拟器吗?如果你想这样做,你可以通过 adb 控制台和地理命令将位置发送到模拟器http://developer.android.com/guide/developing/tools/emulator.html#geo

我不知道是否可以发送假 cellid,但如果您的应用程序监听任何 gps 提供商,则可以使用 gps 坐标

于 2010-11-24T23:58:53.227 回答
1

也许您可以在模拟器中安装UnifiedNlp网络位置提供程序,那么您至少一个NETWORK位置提供程序,即使它不带任何数据。

该提供程序是模块化的,所以也许²您可以为它编写一个后端来注入您的模拟位置。

于 2019-05-23T10:35:39.793 回答
-2

转到您的模拟器设置>位置访问并检查“Wi-Fi和移动网络位置”

于 2014-11-15T17:22:12.617 回答