Проблема с подключением Google Fit API BLE

Я хочу подключить Mi Band 3 к своему приложению через Google Fit SDK. Я столкнулся с проблемой подключения группы через bluetooh. как указано в официальной документации Google Fit — датчик BLE. Я использую следующий код в Котлин

 var bleScanCallbacks: BleScanCallback = object : BleScanCallback() {
        override fun onDeviceFound(device: BleDevice?) {
            // A device that provides the requested data types is available
        }

        override fun onScanStopped() {
            // The scan timed out or was interrupted
        }
    }

    var response: Task<Void> = Fitness.getBleClient(
        this,
        GoogleSignIn.getLastSignedInAccount(this)!!
    )
        .startBleScan(
            Arrays.asList(DataType.TYPE_STEP_COUNT_DELTA),
            1000, bleScanCallbacks
        )

но это показывает, что

'getBleClient(Activity, GoogleSignInAccount): BleClient!' устарела. Устарело в Java

а также

'BleScanCallback' устарел. Устарело в Java

Он предлагает использовать BluetoothManager. Я новичок в Android-разработке. Решение Java также будет работать.


person ameya    schedule 11.09.2020    source источник
comment
Если вы нацелены на Android 8.0+, вам следует рассмотреть возможность использования Companion Device Pairing API для сопряжения вашего устройства. Для получения дополнительной информации: developer.android.com/guide/topics/connectivity/   -  person matdev    schedule 11.09.2020
comment
Спасибо @matdev, но в данный момент я подключил свой браслет напрямую, но столкнулся с проблемой подключения его к Google Fit, но это поможет мне в следующих модулях.   -  person ameya    schedule 11.09.2020
comment
Ну, если метод устарел, это не значит, что он не работает. В чем ваша проблема, кроме этого сообщения?   -  person matdev    schedule 11.09.2020
comment
Я пытался использовать это, но я не получаю точных данных, а также часто требую данные, но данные считываются с датчиков только один раз.   -  person ameya    schedule 11.09.2020
comment
Нужно ли вашему приложению подключаться к Mi Band, чтобы прочитать нужную вам информацию, или достаточно сканирования его рекламных данных? Если данных рекламы достаточно, пробовали ли вы непрерывно сканировать?   -  person matdev    schedule 14.09.2020
comment
Да да, хочу подключиться к mi band. Я работаю с Python, поэтому я новичок в разработке приложений. Можете подсказать, как мне поступить?   -  person ameya    schedule 14.09.2020


Ответы (1)


После того, как сканер BLE найдет ваше устройство, вы можете подключиться к его серверу GATT.

Чтобы подключиться к серверу GATT на устройстве BLE, вы используете метод connectGatt(). Этот метод принимает три параметра: объект Context, autoConnect (логическое значение, указывающее, следует ли автоматически подключаться к устройству BLE, как только оно становится доступным) и ссылку на BluetoothGattCallback:

BluetoothGatt bluetoothGatt = device.connectGatt(this, false, gattCallback);

Это подключается к серверу GATT, размещенному на устройстве BLE, и возвращает экземпляр BluetoothGatt, который затем можно использовать для выполнения клиентских операций GATT, таких как обнаружение сервисов, чтение и запись характеристик BLE.

Пример кода BluetoothGattCallback и другую информацию: https://developer.android.com/guide/topics/connectivity/bluetooth-le

person matdev    schedule 14.09.2020