9

私は融合ロケーションプロバイダを使用してアプリケーションを開発しています。私は疑問を持っています。一定間隔で位置を取得するために、requestLocationUpdates()を使用します。しかし、どのソースからWIFIかGPSかネットワークのいずれかに位置情報を取得できます。私のアプリでは、Wi-Fiがオンの場合にのみ一定間隔で位置情報を取得します。 WiFiがオフの状態では、GPSやネットワークのいずれかの他のソースから位置情報を取得するはずですが、GPSやネットワークのリスナーを作成する必要があります。私は何が問題なのか分からない。誰でも助けてくれますか?Androidの融合ロケーションプロバイダ

また、すべてのプロバイダ(Wi-Fi、GPS、ネットワーク)が利用可能な場合のみ動作するかどうかは関係ありません。

public void checkPlay(){ 

    int resp = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); 
    if (resp == ConnectionResult.SUCCESS) { 
     locationClient = new LocationClient(this, this, this); 
     locationClient.connect(); 
    } else { 
     Toast.makeText(this, "Google Play Service Error " + resp, 
       Toast.LENGTH_LONG).show(); 

    } 
} 


public void onConnected(Bundle arg0) { 
    // TODO Auto-generated method stub 


    if (locationClient != null && locationClient.isConnected()) { 

     locationRequest = LocationRequest.create(); 
     locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 
     locationRequest.setInterval(100); 
     locationClient.requestLocationUpdates(locationRequest, this); 

    } 
} 

     public void onLocationChanged(Location location) { 
    // TODO Auto-generated method stub 
    try { 
     if (location != null) { 
      lat = location.getLatitude(); 
          long = location.getLongitude(); 
     } 
    } catch (Exception e) { 
     Log.d(Fots.TAG, 
       "GpsTrackService.mGpsLocationListener.onLocationChanged", e); 

    }  
} 
+0

これはおそらく参考になりますhttp://wptrafficanalyzer.in/blog/gps-and-google-map-in-android-applications-series/ – Aravin

+0

位置情報の更新をテストするにはどうすればよいですか? –

+0

twntee ..私はサービス内でonLocationChanged()を書きます。私がアプリにログインすると、サービスは開始され、1分ごとにサービスが実行され、「locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);」を使用して5秒ごとに位置の更新が取得されます – Raja45

答えて

2

あなたの例のようにPRIORITY_HIGH_ACCURACYを使用している場合、それはすべての利用可能なソース(無線LAN、セル、GPS、および内部センサ)を使用します。無線LANをオフにして屋内にいる場合は、gpsロックを取得できない可能性があります(通常、ウィンドウに近いところではgpsは屋内では動作しません)。 wifi、cell、およびgpsが利用できない場合(設定が無効になっているか、特定の位置で利用できないため)、場所を返しません(内部センサーだけでは作成できません)最初からの場所)。

2

あなたが車内にいる場合、GPSはおそらく動作しません。だから、それはwifi/triangulationに戻ります。

6

融合APIには、3つのロケーションプロバイダが用意されています。

  1. HIGH_ACCURACY
  2. BALANCED_POWER
  3. NO_POWER

HIGH_ACCURACYモードは、すべての位置プロバイダを使用しかし、位置プロバイダと共にGPSを位置プロバイダを優先し、含みます。位置精度は約10メートル以内です。

BALANCED_POWERモードでは、ロケーションプロバイダのリストをGPSから除外し、セルタワー、Wi-Fiなどの他のプロバイダを使用します。この場合、位置精度は約40メートルです。

NO_POWERはロケーションプロバイダを使用せず、代わりに他のアプリケーションからロケーションを取得するパッシブモードです。精度は1マイル以上である可能性があります。これは、最近他のアプリケーションによってフェッチされた場所のみに基づいています。

関連する問題