【问题标题】:Using Android internal API to turn on GPS使用 Android 内部 API 开启 GPS
【发布时间】:2013-11-16 00:24:50
【问题描述】:

是否有任何隐藏的(内部)API 函数用于打开/关闭 GPS?使用 android 内部 API 是否是有效的解决方案(合法且安全)?如果它无效,我如何获得使用这些 API 的许可证/签名?

我已经尝试过使用 SDK/NDK 的方法,并且我知道使用 SDK/NDK 无法打开 GPS(我知道我们可以调出设置屏幕)。我想知道是否有任何隐藏/内部 API 可以做到这一点。此外,我对使用 Android 中的任何漏洞作为解决方案不感兴趣。

【问题讨论】:

  • 在没有用户明确同意的情况下打开定位服务的能力有些问题。虽然我不知道有什么方法可以按照您的要求执行此操作,但我会质疑您是否应该/愿意这样做?

标签: android gps


【解决方案1】:

您需要 root 权限。强制的。期间。

是的,有 API 可以启用/禁用 GPS。但应用程序必须获得 SuperAdmin 权限。要获得它,需要 root 或自定义 ROM。

示例:https://github.com/sms2000/GPSToggler

【讨论】:

  • 是的,这就是我想知道的。非常感谢。
【解决方案2】:

没有用于控制 GPS 的隐藏 API。没有有效的解决方案。

(就像你提到的),正确的做法是让用户打开它。如果一个应用程序可以覆盖用户选项,那么它作为一个选项是没有意义的,这将是一个巨大的安全漏洞。

如果用户选择关闭 GPS,那么您的应用应该执行与 GPS 已打开但无法锁定时相同的操作。即使您不打算对数据做任何道德上的错误,不尊重他们希望阻止它的意愿也是恶意的。

如果您有一些客户希望他们的员工无法关闭 GPS,那么您需要为他们提供带有自定义 ROM 的手机。

如果您正在尝试制作一个报告位置的安全应用,除了 GPS 之外,您还可以使用 wifi 位置和最后已知位置。

【讨论】:

  • 非常感谢您的回答。但我还有一个疑问。 android控制面板是怎么开启GPS的,也是一个activity吧?
  • 它内置在 rom 中。如果您需要对 GPS 进行更多控制,则需要为手机制作自定义 rom。您将无法制作可以在 google play 上发布并控制 GPS 的应用
  • 好的,感谢您澄清这一点。
  • 好吧。实际上,您可以发布 GPS 控制器,并且已经发布了很多类型的控制器。但“root”是强制性的。
  • 哦,我忘了root
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-04
  • 2019-01-29
相关资源
最近更新 更多