0

プロジェクトのある時点で立ち往生しています。

私は1つのBike Trackingプロジェクトに取り組んでいます。これは、Bikeが実行されているときに継続的にパスを描画することです。パスはそこに問題はありませんが、その時点でアクティビティがenter code here失われるか最小化されると、トラックはバックグラウンドで動作し、ユーザーが戻ってきたときに彼はトラック全体を見つけることができる活動に。

そのために、サービスを使用しましたが、Google マップに問題があります。

サービスでは、場所マネージャーの方法を使用して緯度と経度を取得しましたが、正確ではなく、毎回異なります。

しかし、その時点で Google マップの onMyLocationChangeListener を使用したアクティビティの前に、データはポイントごとに正確になります。

これは、LocationManager を使用してサービス内の場所を取得するためのコードです。

 mLocManager = (LocationManager)  getSystemService(TrackService.this.LOCATION_SERVICE);

 mListner = new LocationListner();

 if (mLocManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER))

 mLocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,

 0, 0, mListner);

 else {

 Toast.makeText(TrackService.this, "GPS is not on",
 Toast.LENGTH_SHORT).show();

 onDestroy();

 }

 try {

 mlocManager = (LocationManager)

 getSystemService(getApplicationContext().LOCATION_SERVICE);

 mListner = new LocationListner();

try {

 mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,

 0, mListner);

 } catch (Throwable e) {

 e.printStackTrace();

 }
 try {

 mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,

 0, 0, mListner);

 } catch (Throwable e) {

 e.printStackTrace();

 }

 } catch (Throwable e) {

 e.printStackTrace();

 }

リスナーでは、コードを実行しました。

そのため、サービスで Google マップを使用するか、サービスでアクセスするためのGoogle マップonMyLocationChangeメソッドが必要か、バックグラウンドでこれを処理するにはどうすればよいでしょうか。

4

1 に答える 1

2

少し前に、Google が新しいLocations APIを発表しました。この新しい API を使用することを強くお勧めします。これは、バッテリーの使用に関してより正確で効率的であるためです。

したがって、ユーザーの位置を追跡するサービス コードをこの API に置き換えることから始めます。Android マップ v2 はこの API を使用して現在地を取得するため、より正確なデータを取得できる可能性が高くなります。

于 2013-07-05T06:56:46.590 に答える