Android中的哪个LocationProvider需要花钱才能使用?

时间:2011-08-05 14:50:20

标签: android location

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

3 个答案:

答案 0 :(得分:5)

可能花钱的一个例子是位置提供商,它访问蜂窝塔位置或wifi接入点位置的远程数据库。这些提供商将使用您的一些数据限额。

我不相信有任何位置提供商本质上需要花钱 - 费用是使用您的数据限额。

答案 1 :(得分:3)

GPS本身不需要任何费用,因为智能手机中有内置接收器。网络位置将花费您的钱,因为远程数据库涉及往返的往返。本质上,它是与使用网络位置获取修复相关联的数据成本。

答案 2 :(得分: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);

如果我将成本设置为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

最好的提供商始终是网络。目前似乎没有提供商会花费用户的钱。也许这只是为未来的位置提供商可能性而构建的。