【问题标题】:Android location updates & cell locationAndroid 位置更新和手机位置
【发布时间】:2016-04-03 14:00:57
【问题描述】:

我正在开发一个应用程序,一旦用户进入预定义区域,即使 GPS 关闭或不可用,它也会执行一些操作。

问题:如何识别用户已进入该区域(半径或精度为 500 到 700 米)。

利弊的可能解决方案:

  1. 地理围栏:只有在 GPS 开启时才会起作用,否则即使 GPS 开启但没有与卫星连接,这很可能根据我的应用程序的用例(在地下室,在地下或隧道中行驶),地理围栏将不会触发。所以不能完全依赖 GPS。

优点

一个。如果 GPS 已打开且能够与卫星连接,则可以工作。

b.即使手机屏幕关闭(即睡眠模式)也能正常工作

缺点: 一种。如果 GPS 关闭,将无法工作。

b.在地下室、隧道等连接问题的情况下将无法使用。

  1. addProximityAlert:谁能解释一下 addProximityAlert 和地理围栏有什么区别?哪一个更好?在以下情况下是否触发接近警报:

一个。当屏幕关闭但 GPS 开启时。

b. GPS 关闭时。

  1. 来自 onCellLocationChanged() 的小区 ID:因为不能完全依赖 GPS(可以关闭或没有连接)考虑使用 cellLocation。所以我实现了 MyPhoneStateListener 扩展了PhoneStateListener,将它注册到PhoneStateListener.LISTEN_CELL_LOCATION 的电话服务并覆盖onCellLocationChanged 方法。

我知道我希望在进入时执行操作的区域的小区 ID 或塔 ID,因此当调用 onCellLocationChanged 方法时,我从 cellLocationobject 获取 cid 并将其与存储的小区 ID 进行比较。

问题onCellLocationChanged方法不调用屏幕如果关闭。发现这个方法也被在来电和去电的情况下调用,不知道为什么只有在小区位置改变时才调用它。谁知道原因?

优点

一个。即使 GPS 关闭也可以工作。

缺点

一个。如果屏幕关闭(即睡眠模式),则不会调用 onCellLocationChanged 方法。在来电和去电的情况下也会调用它。

尝试保持部分唤醒锁定仍然此方法未调用。有人编写了启动服务并请求从网络更新位置,即使屏幕关闭,也会调用 onCellLocationChanged 方法。尝试过但屏幕关闭时仍然不会调用 onCellLocationChanged。

  1. 创建的服务每 2 分钟后从网络请求位置更新,最小距离为 500 米。

    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000 *60 *2,500,this);
    

第四点查询:

一个。如果屏幕关闭,我们是否会从网络获取位置更新。

b.当 GPS 正在从网络获取位置更新但当 GPS 关闭时不会从网络获取位置更新。不是 100% 确定这一点需要进一步检查。请让我知道当我们从网络请求位置更新并且 GPS 关闭时的行为。

在一篇文章中问了太多问题,但在探索了 10-12 天的各种选项后,即使没有 GPS,也无法找到可靠的解决方案。

谢谢。

【问题讨论】:

    标签: android gps geolocation android-geofence


    【解决方案1】:

    披露:我为 Pathsense 工作。

    虽然我没有在没有 GPS 的情况下测试过 Google 的地理围栏或 Android 的地理围栏 (addProximityAlert()),但我已经广泛测试了 Pathsense 地理围栏,我知道它可以在没有 GPS 的情况下工作(虽然不准确)。

    但是,如果无法使用第三方库,您可以设置 minTime 至少为 30 秒的位置更新请求 (LocationManager.requestUpdates())。这将降低功耗,您可以在您正在监控的位置和 LocationManager 提供的位置之间执行distance calculation,如果它大于您的监控区域,则执行您想要的任何操作。

    【讨论】:

    • 感谢您的回复@Pablo。 PathSense 是免费的还是付费的? Pathsense 的精度半径是多少。如果它在没有 GPS 的情况下具有 700 到 800 米的精度对我有用。
    • 是的,它是免费的,我认为在这种大小的地理围栏上工作没有问题。我们支持小至 50 米的地理围栏,但我建议在这种情况下开启 GPS。
    • 感谢您的努力@Pablo。在将答案标记为有用之前会尝试 PathSense。实际上,即使在 700-800 米附近没有 GPS 的情况下,正在制作的应用程序也应该可以工作。希望解决方案有效。干杯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    相关资源
    最近更新 更多