仅从 GPRS 网络提供商 Android 获取位置

Posted

技术标签:

【中文标题】仅从 GPRS 网络提供商 Android 获取位置【英文标题】:get location just from GPRS Network Provider Android 【发布时间】:2014-09-06 22:36:39 【问题描述】:

我开发了一个从 GPS_PROVIDER 和 NETWORK_PROVIDER 接收位置的应用程序,但是 NETWORK_PROVIDER 返回从 WIFI 和 GPRS 检索到的最佳值,而无法对其进行任何控制。即使您启用了 WIFI,我也需要获取 GPRS 位置侦听器返回的值,因此我可以使用它来消除其他应用程序中的虚假位置。 可以这样做吗?

目前我正在测试此解决方案 Disable / Check for Mock Location (prevent gps spoofing) ,如果它解决了我的问题,我会通知您

【问题讨论】:

你怎么会出错?? 没有错误,我只需要WIFI和GPRS的位置,所以我可以单独处理它们。我需要知道我是否可以这样做 欺骗检测有效,但是“removeTestProvider(LocationManager.GPS_PROVIDER);”它的一部分不起作用,至少在带有 2.3.6 非自定义 ROM 的三星 GT-S5300 上。 【参考方案1】:

很遗憾,这是不可能的,不。

你可以这样做:

final LocationManager locationManager = getLocationManager();
final List<String> providers = locationManager.getProviders(true);
if (providers.size() > 1) 
  providers.remove(LocationManager.NETWORK_PROVIDER);

但您无法区分手机还是 wifi 网络提供商!

此提供商根据手机信号塔的可用性确定位置 和 WiFi 接入点。通过网络检索结果 查找。

常数值:“网络”

来源:http://developer.android.com/reference/android/location/LocationManager.html#NETWORK_PROVIDER

您可以尝试使用this solution。但是,由于这似乎没有记录在案,我会小心依赖它,因为它可能会在未来的操作系统版本中中断,或者可能无法在所有设备上运行。

【讨论】:

以上是关于仅从 GPRS 网络提供商 Android 获取位置的主要内容,如果未能解决你的问题,请参考以下文章

向 Android 添加新的网络承载

无线通信模块GPRS DTU不稳定和容易掉线原因

android 网络连接 wifi gprs的连接

isProviderEnabled()永远不会被称为android

android怎样调用webService

仅从 GPS 获取位置更新,而不是从网络获取