在Google Play Services 7.0中删除了Fitness.API?

升级到Google Play Services 7.0后,我用于连接Google Fit的GoogleApiClient代码不再有效:它说:

错误:(87,21)错误:没有为addApi(Void)方法找到合适的方法Builder.addApi(Api,O)不适用(无法从参数实例化,因为实际和forms参数列表的长度不同)方法Builder.addApi( Api)不适用(实际参数Void不能通过方法调用转换转换为Api)其中O是类型变量:O扩展方法addApi(Api,O)中声明的HasOptions

我构建GoogleApiClient代码是:

 mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(Fitness.API) .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE)) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .build(); 

根据Google Play服务7.0博客文章 :

您之前传入GoogleApiClient现已被大量API替换,与高级Google Fit Android API相匹配:

  • SENSORS_API通过SensorsApi访问原始传感器数据
  • RECORDING_API通过RecordingApi记录数据
  • HISTORY_API用于通过HistoryApi插入,删除或读取数据
  • SESSIONS_API用于通过SessionsApi管理会话
  • BLE_API通过BleApi与蓝牙低功耗设备进行交互
  • CONFIG_API通过ConfigApi访问Google Fit的自定义数据类型和设置

因此,您应该更新GoogleApiClient以添加您使用的所有相应API。 例如,如果同时使用SensorsApiRecordingApi ,则代码应如下所示:

 mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(Fitness.SENSORS_API) .addApi(Fitness.REPORTING_API) .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE)) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .build(); 

注意:针对旧版Google Play服务编译的应用程序将继续有效,但不会获得Google Play服务7.0中拆分API附带的内存优势,如同一篇博文中所述:

此更改会显着降低在后台运行的Google Fit启用的应用程序的内存要求。 与往常一样,基于以前版本的Google Play服务构建的应用程序将继续有效,但我们强烈建议您重建启用Google Fit的应用程序以利用此更改。