(Java, Bluetooth-Lowenergy, BLE), как получить данные с Android-устройства через BLE - PullRequest
0 голосов
/ 01 июля 2019

enter image description here

Я новичок в BLE (Bluetooth-LowEnergy). Я хотел получить данные с устройства Android через BLE.

Я уже читал о характеристике в Документе Google. и я уже искал в Google тоже.

мое устройство не ответило на мой байт-код запроса. Я думаю, это потому, что я установил неправильные характеристики. Потому что я думаю, что не совсем понял характеристики.

Кто-нибудь помогает мне установить правильные характеристики, пожалуйста?

Вот пользовательский Uuid (лучше видеть добавленные изображения сверху.)

CUSTOM SERVICE
0783b03e-8535-b5a0-7140-a304d2495cb7

NOTIFY Uuid : 0783B03E-8535-B5A0-7140-A304D2495CB8
Read Uuid : 00002a19-0000-1000-8000-00805f9b34fb
Write Uuid : 0783b03e-8535-b5a0-7140-a304d2495cba

и вот Uuid я установил

    public final UUID serviceUuid = UUID.fromString("0783b03e-8535-b5a0-7140-a304d2495cb7");
    public final UUID notifyUuid = UUID.fromString("0783b03e-8535-b5a0-7140-a304d2495cb8");
    public final UUID readUuid = UUID.fromString("00002902-0000-1000-8000-00805f9b34fb");
    public final UUID writeUuid = UUID.fromString("0783b03e-8535-b5a0-7140-a304d2495cba");

и вот мой код

BluetoothHandler.java
 targetGattCharacteristic = targetGattService.getCharacteristic(Define.GetInstance().notifyUuid);
        BluetoothGattCharacteristic readGattCharacteristic = targetGattService.getCharacteristic(Define.GetInstance().notifyUuid);

        if (readGattCharacteristic != null) {
            mBleService.setCharacteristicNotification(readGattCharacteristic, true);

        } else {
            callInterface();
            return;
        }
(BluetoothService.java)
    public void setCharacteristicNotification(BluetoothGattCharacteristic characteristic,
                                              boolean enabled) {
        if (mBluetoothAdapter == null || mBluetoothGatt == null) {
            Log.w(TAG, "BluetoothAdapter not initialized");
            return;
        }

        mBluetoothGatt.setCharacteristicNotification(characteristic, enabled);

        BluetoothGattDescriptor gD = new BluetoothGattDescriptor(UUID.fromString(Define.GetInstance().readUuid.toString()),  BluetoothGattDescriptor.PERMISSION_WRITE | BluetoothGattDescriptor.PERMISSION_READ);
        characteristic.addDescriptor(gD);
        if (Define.GetInstance().notifyUuid.equals(characteristic.getUuid())) {
            BluetoothGattDescriptor descriptor = characteristic.getDescriptor(
                    UUID.fromString(Define.GetInstance().readUuid.toString()));
            descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
            mBluetoothGatt.writeDescriptor(descriptor);

        }
    }

1 Ответ

0 голосов
/ 02 июля 2019

Я решил это, обратившись к этому сайту. https://medium.com/@avigezerit/bluetooth-low-energy-on-android-22bc7310387a

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...