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

Android中的哪个LocationProvider要花钱使用?,android,location,Android,Location,Android中的用户可以在特定的平台上进行选择。Criteria类有一个方法isCostAllowed和setCostAllowed。哪一个LocationProvider需要用户付费?它仅仅是网络位置提供商,是因为它创建了网络流量,还是仅仅因为未来的一些可能性而实现了这一点?一个可能会花钱的例子是位置提供商,它访问基站位置或wifi接入点位置的远程数据库。这些提供商将使用您的部分数据 我不相信有任何位置提供商本质上是花钱的-费用是在使用您的数据津贴。GPS本身不花钱,因为您的智能手机中有内置

Android中的用户可以在特定的平台上进行选择。Criteria类有一个方法isCostAllowed和setCostAllowed。哪一个LocationProvider需要用户付费?它仅仅是网络位置提供商,是因为它创建了网络流量,还是仅仅因为未来的一些可能性而实现了这一点?

一个可能会花钱的例子是位置提供商,它访问基站位置或wifi接入点位置的远程数据库。这些提供商将使用您的部分数据


我不相信有任何位置提供商本质上是花钱的-费用是在使用您的数据津贴。

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

我只是运行了一个简单的测试,以确认网络提供商是否被视为需要付费的提供商:

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

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

我也这么认为,但是当costAllowed在条件中设置为false时,locationmanager仍然返回networkprovider作为最佳可用的提供者。我的猜测是,这是为未来本地化可能性而构建的,尚未使用。