2011-08-05 15 views
2

AndroidのLocationManagerは、CriteriaLocationProvidersを選択できます。 Criteriaクラスには、メソッドisCostAllowedとsetCostAllowedがあります。どちらのLocationProviderにユーザーの費用がかかりますか?ネットワークトラフィックを作成するのはネットワークロケーションプロバイダか、将来の可能性のために実装されただけなのか?AndroidのどのLocationProviderにお金を使うのですか?

答えて

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); 

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 

ベストプロバイダーは常にネットワークです。現時点では、ユーザーの費用を負担するプロバイダーが存在しないように見えます。たぶんこれは将来のロケーション・プロバイダーの可能性のために組み込まれているかもしれません。

5

コストのかかる例の1つは、セルタワーポジションまたは無線LANアクセスポイントの位置のリモートデータベースにアクセスするロケーションプロバイダです。これらのプロバイダは、あなたのデータ許容量の一部を使用します。

本来的にのコストがかかるロケーションプロバイダーは存在しません - 費用にはデータの許容量が使用されています。

+0

私もそうだと思っていましたが、costAllowedをCriteriaでfalseに設定した場合、locationmanagerはnetworkproviderを最良のプロバイダとして返します。私の推測では、これは将来のローカリゼーションの可能性のために構築されており、まだ使用されていないということです。 – Janusz

+0

@ヤヌズ:面白い - それを渡してくれてありがとう。 – RichieHindle

3

スマートフォンに受信機が内蔵されているため、GPS自体に費用はかかりません。ネットワークの場所は、リモートデータベースからのルックアップの往復があるので、お金を必要とします。基本的には、ネットワークの場所を使用して修正プログラムを入手することに関連するデータコストです。

関連する問題