【发布时间】:2017-07-26 16:26:20
【问题描述】:
我正在构建将使用用户 GPS 位置的 Android 和 IOS 应用。我担心用户伪造他们的 GPS 位置,因为我听说有人在使用 Uber。
是否有防止或检测这种情况的编程方式?
【问题讨论】:
标签: android ios gps location coordinates
我正在构建将使用用户 GPS 位置的 Android 和 IOS 应用。我担心用户伪造他们的 GPS 位置,因为我听说有人在使用 Uber。
是否有防止或检测这种情况的编程方式?
【问题讨论】:
标签: android ios gps location coordinates
几乎没有办法验证您的 GPS 读数的正确性。但是,您可以使用一些变通方法来检测可能的欺骗:
首先,您可以检测他们是否启用了模拟位置设置(这通常由 GPS 伪造应用程序使用)。为此,请查找 Settings.Secure.ALLOW_MOCK_LOCATION) 设置并检查它是否已启用。然后检查哪些应用程序具有该权限(即android.permission.ACCESS_MOCK_LOCATION)。如果存在使用该权限的应用并且该设置处于开启状态,则它们可能会伪造用户的位置信息。
您也可以尝试使用Location.isFromMockProvider,尽管我不确定结果是否准确。如果您正在检查的位置是通过 GPS 伪造应用获取的,则该函数返回 true。
【讨论】:
我不确定,但如果有人想提供假 GPS 位置,他需要有 root 手机。所以你可以检查一下,如果有人已经root了电话,那么不要相信他/她的位置。检查手机是否root:link
【讨论】: