升级到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();
答案 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。例如,如果同时使用SensorsApi
和RecordingApi
,则代码应如下所示:
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的应用程序以利用此更改。