Невозможно записать характеристику на BLE.Приложение способно подключаться к ГАТТ и читать характеристики.Первая мысль: я использую неправильный UUID для Tx.В противном случае моя характеристика по какой-то причине равна нулю.Вот скриншот из Nrf Connect
Атрибуты GATT:
public class RBLGattAttributes {
private static HashMap<String, String> attributes = new HashMap<String,
String>();
public static String CLIENT_CHARACTERISTIC_CONFIG = "00002902-0000-1000-
8000-00805f9b34fb";
public static String BLE_SHIELD_TX = "713d0002-503e-4c75-ba94-3148f18d941e";
public static String BLE_SHIELD_RX = "713d0002-503e-4c75-ba94-3148f18d941e";
public static String BLE_SHIELD_SERVICE = "713d0000-503e-4c75-ba94-
3148f18d941e";
static {
// RBL Services.
attributes.put("713d0000-503e-4c75-ba94-3148f18d941e",
"BLE Shield Service");
// RBL Characteristics.
attributes.put(BLE_SHIELD_TX, "BLE Shield TX");
attributes.put(BLE_SHIELD_RX, "BLE Shield RX");
}
public static String lookup(String uuid, String defaultName) {
String name = attributes.get(uuid);
return name == null ? defaultName : name;
}
BLE Service:
public void writeCharacteristic() {
BluetoothGattCharacteristic characteristic=null;
if (mBluetoothAdapter == null || mBluetoothGatt == null) {
Log.w(TAG, "BluetoothAdapter not initialized");
return;
}
if (UUID_BLE_SHIELD_TX.equals(characteristic.getUuid())) {
String ident="I";
byte[] arr={1};
try {
characteristic.setValue(arr);
} catch (NullPointerException e){Log.w(TAG,"sth is wrong");}
mBluetoothGatt.writeCharacteristic(characteristic);
Ошибка LogCat:java.lang.NullPointerException: попытка вызвать виртуальный метод int android.bluetooth.BluetoothGattCharacteristic.getProperties () для нулевой ссылки на объект
Характеристика равна нулю