【问题标题】:Is there a way to access cell tower information without having to activate GPS?有没有办法在不激活 GPS 的情况下访问手机信号塔信息?
【发布时间】:2021-08-30 14:25:49
【问题描述】:

我是 Android 开发的新手,但我想知道是否有可能通过手机信号塔信息获得大致位置,而无需激活手机上的 GPS。手机不应该没有 GPS 就可以访问手机信号塔吗?

我尝试过使用 TelephonyManager 和方法 allCellInfo(),但它需要精细的位置权限,这反过来意味着我必须激活 GPS。但是,我认为在这种情况下,粗略的位置权限应该足够了,因为我只想访问手机信号塔信息而不是 GPS。 allCellInfo() 返回的列表始终为空,除非我激活 GPS,这是有意义的,因为该方法需要精细位置权限。我只是不明白为什么会出现这种情况,据我所知,粗略的位置权限对于蜂窝塔信息(和 wifi)应该足够了。

还有其他方法/类/包/库可以帮助解决这个问题吗?是否有可能在不打开 GPS 的情况下访问手机信号塔信息?也许只使用粗略的位置权限?

【问题讨论】:

  • The standard way to get location doesn't require GPS to be turned on. ??? @Tenfour04。获取位置的标准方法是使用 GPS。
  • 如果wifi或蜂窝网络打开,可以在没有GPS的情况下获得课程位置。
  • 可以,但获取位置的标准方法是使用 GPS。
  • 我已经很多年没有这样做了,但是当我在原生 Android 代码中这样做时,您没有指定使用了哪些传感器。您刚刚获得了位置更新。如果 GPS 碰巧打开,它们会更准确。现在看起来标准方法是使用 Google Play 服务,它也没有指定 GPS,而是指定所需的精度:developers.google.com/android/reference/com/google/android/gms/…“标准方法”是通过任何可用来源获取位置,GPS 或不是。
  • 那它是如何工作的呢?我可能遗漏了一些信息,但是您将如何访问手机信息?除了 TelephonyManager.allCellInfo() 之外的东西?因为有了这个,它似乎只适用于 GPS

标签: android kotlin gps location


【解决方案1】:

看起来您想要的是在不要求任何位置权限的情况下尝试找出位置。不,Android 不会让你这样做。或者至少,不是通过像手机信号塔信息这样明显的东西(他们在粗略的位置确定中使用这些信息)。

如果您只是想避开 GPS(例如出于电池原因),请请求粗略位置许可。这不会打开 GPS,但会使用网络信息来获取位置。这将允许您自己跳过所有信号强度数学(坦率地说,您不会像他们那样做,因为他们比您拥有更多关于网络位置的信息)。

【讨论】:

    【解决方案2】:

    您似乎在寻找the NETWORK_PROVIDER from LocationManager。引用文档,“如果存在,此提供商会根据附近的蜂窝塔和 WiFi 接入点确定位置”。

    【讨论】:

      猜你喜欢
      • 2014-05-18
      • 1970-01-01
      • 2020-04-27
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 2018-07-26
      • 2013-11-04
      • 2020-01-14
      相关资源
      最近更新 更多