Можно ли написать отличную характеристику без предварительного обнаружения качественных услуг?
Я хочу реализовать приложение, которое подключается к периферийному устройству, записывает характеристику и отключается, затем подключается к другому устройству и так далее ...
После отключения я вызываю команду gatt.close()
для освобождения всех ресурсов.
При первом подключении я создаю связь.
Если я жду обратного вызова onServicesDiscovered
и напишу характеристику:
BluetoothGattService mCustomService = mBluetoothGatt.getService(myUUID));
byte[] values = new byte[]{0x00, 0x01};
mWriteCharacteristic.setValue(values);
if(mBluetoothGatt.writeCharacteristic(mWriteCharacteristic) == false) {
Log.w(TAG, "Failed to write characteristic");
}
все отлично работает. Но я хочу улучшить и ускорить весь процесс.
Есть ли способ пропустить службы обнаружения и написать обычный символ после соединения с устройством связи?
BluetoothGattCharacteristic mCharacteristic = new BluetoothGattCharacteristic(UUID.fromString(GattAttributes.P1_MINI_POWER_CHARACTERISTIC), (BluetoothGattCharacteristic.PROPERTY_WRITE |BluetoothGattCharacteristic.PROPERTY_READ | BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE | BluetoothGattCharacteristic.PROPERTY_NOTIFY | BluetoothGattCharacteristic.PROPERTY_EXTENDED_PROPS), 0);
mCustomService.addCharacteristic(mCharacteristic);
byte[] values = new byte[]{0x00, 0x01};
mWriteCharacteristic.setValue(values);
if(mBluetoothGatt.writeCharacteristic(mWriteCharacteristic) == false) {
Log.w(TAG, "Failed to write characteristic");
}
Но безуспешно.