Vad*_*ler 8 android google-fit-sdk google-fit
我想使用我的Android应用程序实时从我的mi band 2请求传感器数据。我对此有些困难。我使用权限BLUETOOTH和BLUETOOTH_ADMIN。我检查了是否可以通过Bluetooth le默认API看到我的设备。我正在尝试使用此示例https://developers.google.com/fit/android/ble-sensors?hl=ru,而且每次我都处于onScanStopped且此回调没有任何解释时,所以我没有了解失败的原因。我的代码:
GoogleApiClient client = new GoogleApiClient.Builder(this)
.addApi(Fitness.SENSORS_API)
.addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ))
.addScope(new Scope(Scopes.FITNESS_BODY_READ))
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
client.connect();
Run Code Online (Sandbox Code Playgroud)
在onConnected上,我有:
Fitness.getBleClient(this, GoogleSignIn.getLastSignedInAccount(this))
.startBleScan(Arrays.asList(DataType.TYPE_ACTIVITY_SEGMENT), 60, bleScanCallbacks)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Log.d("TAG_F", "onComplete: " + task.isSuccessful());
}
});
Run Code Online (Sandbox Code Playgroud)
在这里,我还尝试了所有这些数据类型 DataType.TYPE_STEP_COUNT_DELTA, DataType.TYPE_HEART_RATE_BPM
这表明我的扫描成功。但是在60秒后进行回调时,我得到onScanStopped:
private BleScanCallback bleScanCallbacks = new BleScanCallback() {
@Override
public void onDeviceFound(BleDevice bleDevice) {
Log.d("TAG_F", "onDeviceFound: " + bleDevice.getDataTypes());
}
@Override
public void onScanStopped() {
Log.d("TAG_F", "onScanStopped: ");
}
};
Run Code Online (Sandbox Code Playgroud)
onScanStopped()当指定的超时时间被调用
startBleScan(List<DataType> dataTypes, int timeoutSecs, BleScanCallback callback)
已到期。
尝试增加/减少方法中指定的时间(60'):
Fitness.getBleClient(this, GoogleSignIn.getLastSignedInAccount(this))
.startBleScan(Arrays.asList(DataType.TYPE_ACTIVITY_SEGMENT), 60, bleScanCallbacks)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
175 次 |
| 最近记录: |