【问题标题】:Which LocationProvider in Android costs money to use?Android 中的哪个 LocationProvider 需要花钱使用?
【发布时间】:2012-01-15 14:17:43
【问题描述】:

Android 中的LocationManager 可以在特定的Criteria 上选择LocationProviders。 Criteria 类有一个方法 isCostAllowed 和 setCostAllowed。哪个 LocationProvider 花费了用户的钱?它只是网络位置提供者,因为它创建了网络流量,还是只是因为未来的一些可能性而实施?

【问题讨论】:

    标签: android location


    【解决方案1】:

    一个可能需要花钱的例子是位置提供商,它访问手机信号塔位置或 wifi 接入点位置的远程数据库。这些提供商将使用您的部分数据限额。

    我不认为有任何位置提供商本质上要花钱 - 成本在于使用您的数据限额。

    【讨论】:

    • 我也是这么认为的,但是在 Criteria 中将 costAllowed 设置为 false 时,locationmanager 仍将网络提供者作为最佳可用提供者返回。我的猜测是,这是为未来的本地化可能性而构建的,尚未使用。
    【解决方案2】:

    GPS 本身不需要任何费用,因为您的智能手机中有一个内置接收器。网络位置将花费您的钱,因为需要从远程数据库进行往返查找。本质上,与使用网络位置进行修复相关的数据成本。

    【讨论】:

      【解决方案3】:

      我只是运行一个简单的测试来确认 NetworkProvider 是否被认为是花钱的提供者:

      LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
      Criteria criteria = new Criteria();
      criteria.setAccuracy(Criteria.ACCURACY_COARSE);
      criteria.setCostAllowed(false);
      
      String provider = manager.getBestProvider(criteria, false);
      Log.d(getClass().getSimpleName(), "Best Provider is: " + provider);
      

      如果我将 cost allowed 设置为 false 或 true,结果没有区别:

      08-06 14:52:25.375: DEBUG/LocationPlaygroundActivity(30782): Best Provider is: network
      08-06 14:52:39.860: DEBUG/LocationPlaygroundActivity(30848): Best Provider is: network
      

      最好的供应商总是网络。目前,似乎没有任何提供商会花费用户的钱。也许这只是为了未来的位置提供者的可能性而内置的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-12
        • 1970-01-01
        • 2011-07-09
        • 1970-01-01
        • 2014-12-16
        • 2010-11-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多