0
私のアプリでBluetoothに問題があります。私は多くの特性を持っており、2だけ読むことができます。私がもっと読むことを試みるとき、私はコールバックを得ていません。私はキューを作成する必要があるが、それを行う方法を知らないことを読んだ。助けてください。ここでBluetoothがすべての特性を読み取っていない
は私の特性です:
private void registerParametersCharacteristics(List<BluetoothGattCharacteristic> characteristics) {
for (BluetoothGattCharacteristic characteristic : characteristics) {
UUID characteristicUuid = characteristic.getUuid();
if (Characteristics.EON_PARAMS_EDDYSTONE_UID_CHAR.equals(characteristicUuid)) {
euidCharacteristic = characteristic;
Log.e(TAG, "registerParametersCharacteristics: EUID");
}
else if (Characteristics.EON_PARAMS_EDDYSTONE_EID_CHAR.equals(characteristicUuid)) {
eeidCharacteristic = characteristic;}
else if (Characteristics.EON_PARAMS_EDDYSTONE_URL_CHAR.equals(characteristicUuid)) {
eurlCharacteristic = characteristic;}
else if (Characteristics.EON_PARAMS_EDDYSTONE_TLM_CHAR.equals(characteristicUuid)) {
etlmCharacteristic = characteristic;}
else if (Characteristics.EON_PARAMS_EDDYSTONE_UID_UUID.equals(characteristicUuid)) {
eUidUUidCharacteristic = characteristic;}
else if (Characteristics.EON_PARAMS_EDDYSTONE_URL_UUID.equals(characteristicUuid)) {
eUrlUuidCharacteristic = characteristic;
Log.e(TAG, "registerParametersCharacteristics: EurlUUID");
}
else if (Characteristics.MINOR_CHARACTERISTIC_UUID.equals(characteristicUuid)) {
minorCharacteristic = characteristic;}
else if (Characteristics.MAJOR_CHARACTERISTIC_UUID.equals(characteristicUuid)) {
majorCharacteristic = characteristic;
}
else if (Characteristics.UUID_CHARACTERISTIC_UUID.equals(characteristicUuid)){
uuidCharacteristic = characteristic;
}
else if (Characteristics.INTERVAL_CHARACTERISTIC_UUID.equals(characteristicUuid)) {
intervalCharacteristic = characteristic;
}
else if (Characteristics.TX_CHARACTERISTIC_UUID.equals(characteristicUuid)) {
txCharacteristic = characteristic;
}
else if (Characteristics.BATTERY_CHARACTERISTIC_UUID.equals(characteristicUuid)) {
batteryCharacteristic = characteristic;
Log.e(TAG, "registerParametersCharacteristics: BAT");
}
Log.e(TAG, "registerParametersCharacteristics: " + characteristic.getUuid().toString());
}
}
、これが私のonServicediscovered方法である:私はこのキューを書くために二日失い、それを行うことはできません
@Override
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
super.onServicesDiscovered(gatt, status);
if (status == BluetoothGatt.GATT_SUCCESS) {
List<BluetoothGattService> services = gatt.getServices();
for (BluetoothGattService service : services) {
registerService(service);
Log.e(TAG, "onServicesDiscovered: " + service.getUuid().toString());
}
callback.connectedStateChanged(true);
} else
disconnect();
}
@Override
public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
super.onCharacteristicRead(gatt, characteristic, status);
characteristicValueRead(characteristic);
BluetoothCommunicationManager.getInstance().processNext();
}
。すべての助けにあらかじめ感謝します。
アレックス任意の例を? – Bartos
確かに、https://en.wikipedia.org/wiki/Command_pattern#Java –