ian*_*ake 4 java android google-play-services google-fit
升级到Google Play Services 7.0后,我GoogleApiClient连接Google Fit的代码不再有效:它说:
错误:(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();
Run Code Online (Sandbox Code Playgroud)
ian*_*ake 11
您之前传入的Fitness.API
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.例如,如果同时使用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();
Run Code Online (Sandbox Code Playgroud)
注意:针对旧版Google Play服务编译的应用程序将继续有效,但不会获得Google Play服务7.0中拆分API附带的内存优势,如同一篇博文中所述:
此更改会显着降低在后台运行的Google Fit启用的应用程序的内存要求.与往常一样,基于以前版本的Google Play服务构建的应用程序将继续有效,但我们强烈建议您重建启用Google Fit的应用程序以利用此更改.
| 归档时间: |
|
| 查看次数: |
959 次 |
| 最近记录: |