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

时间:2015-03-19 23:29:08

标签: java android google-play-services google-fit

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

  

错误:(87,21)错误:没有为addApi找到合适的方法(Void)   方法Builder.addApi(Api,O)不适用   (无法从参数实例化,因为实际和形式参数列表的长度不同)   方法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();

1 个答案:

答案 0 :(得分:11)

根据Google Play services 7.0 blog post

  

您传递到GoogleApiClient的上一个Fitness.API现已更换为多个API,与Google Fit Android API的高级别设置相匹配:

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

因此,您应该更新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的应用程序以利用此更改。