Я хочу приобрести устройство (диапазон / часы), которое может отображаться в моем базовом приложении Google Fit API, которое выполняет поиск устройств Bluetooth и считывает их данные (HEART_RATE, STEP_COUNT и т. П. c.) Через соединение Bluetooth. Я попытался использовать MI band 3 и MI band 4 для подключения к своему приложению через Bluetooth, но я не могу найти его, используя приведенный ниже код.
Я использовал следующий код:
FitnessOptions fitnessOptions = FitnessOptions.builder()
.addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_READ)
.addDataType(DataType.AGGREGATE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
.build();
if (!GoogleSignIn.hasPermissions(GoogleSignIn.getLastSignedInAccount(this), fitnessOptions)) {
LogUtils.e(TAG, "GoogleSignIn need Permissions");
GoogleSignIn.requestPermissions(
this, // your activity
GOOGLE_FIT_PERMISSIONS_REQUEST_CODE,
GoogleSignIn.getLastSignedInAccount(this),
fitnessOptions);
} else {
LogUtils.e(TAG, "GoogleSignIn hasPermissions already");
buildBLE();
}
private void buildBLE() {
LogUtils.e(TAG, "Bluetooth started scanning...");
BleScanCallback bleScanCallbacks = new BleScanCallback() {
@Override
public void onDeviceFound(BleDevice device) {
LogUtils.e(TAG," BleScanCallback onDeviceFound ");
// A device that provides the requested data types is available
Task<Void> response = Fitness.getBleClient(activity,
GoogleSignIn.getLastSignedInAccount(activity))
.claimBleDevice(device);
response.addOnCompleteListener(task -> {
if (task.isSuccessful()){
LogUtils.e(TAG,"claimBleDevice Device onComplete isSuccessful");
}else {
LogUtils.e(TAG,"claimBleDevice Device onComplete not success");
}
});
}
@Override
public void onScanStopped() {
LogUtils.e(TAG," BleScanCallback onScanStopped");
// The scan timed out or was interrupted
}
};
Task<Void> response = Fitness.getBleClient(this,
GoogleSignIn.getLastSignedInAccount(this))
.startBleScan(Arrays.asList(DataType.TYPE_STEP_COUNT_DELTA), 120, bleScanCallbacks);
response.addOnCompleteListener(task -> {
if (task.isSuccessful()){
LogUtils.e(TAG,"startBleScan Device onComplete isSuccessful");
}else {
LogUtils.e(TAG,"startBleScan Device onComplete not success");
}
});
}