2015-09-06 81 views
2

我已經加入:添加addGpsStatusListener的融合位置API

implements GoogleApiClient.ConnectionCallbacks, LocationListener, GpsStatus.Listener 

和:

 mGoogleApiClient = new GoogleApiClient.Builder(context) 
      .addApi(LocationServices.API) 
      .addApi(Wearable.API) 
      .addConnectionCallbacks(this) 
      .build(); 
    mGoogleApiClient.connect(); 

    locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); 
    locationManager.addGpsStatusListener(this); 

和:

@Override 
public void onGpsStatusChanged(int event) { 
    Log.d(TAG, "GPS status change: " + event); 

    switch(event) { 
     case GpsStatus.GPS_EVENT_FIRST_FIX:       
      break;           
     case GpsStatus.GPS_EVENT_SATELLITE_STATUS: 
      break; 
    } 
} 

但onGpsStatusChanged不叫的一體化位置API 。這可能嗎?

+0

你解決呢? – mklimek

+0

不,我爲Wear製作了一個應用程序,所以我在移動端添加了一個服務,並使用普通的GPS API而無需融合位置(獲取GPS狀態更改)。然後傳回給Wear(在Wear側,我仍然使用Fused位置API,即混合兩者)。 – powder366

回答

0

它對我來說工作正常。我可以在onGpsStatusChanged()方法中接收事件。如果你想看我的代碼。

我使用以下版本的播放服務gradle這個扶養

compile 'com.google.android.gms:play-services-location:8.4.0' 

器具

class FusedLocationProviderService extends Service implements 
     GpsStatus.Listener, 
     LocationListener, 
     GoogleApiClient.ConnectionCallbacks, 
     GoogleApiClient.OnConnectionFailedListener, 
     ResultCallback<LocationSettingsResult> { 

    public void initialize() { 
     googleApiClient = new GoogleApiClient.Builder(context) 
          .addConnectionCallbacks(this) 
          .addOnConnectionFailedListener(this) 
          .addApi(LocationServices.API).build(); 

     locationManager = (LocationManager) context 
         .getSystemService(LOCATION_SERVICE); 

     locationManager.addGpsStatusListener(this); 
    } 
} 
+0

您是否在Wear設備中嘗試過它? – powder366

相關問題