Я установил чтение символов BLE, уведомление и запись:
char_props.broadcast = 0;
char_props.read = 1;
char_props.write_wo_resp = 0;
char_props.write = 1;
char_props.notify = 1;
char_props.indicate = 0;
char_props.auth_signed_wr = 0;
и:
BLE_GAP_CONN_SEC_MODE_SET_OPEN(&cccd_md.read_perm);
BLE_GAP_CONN_SEC_MODE_SET_OPEN(&cccd_md.write_perm);
cccd_md.vloc = BLE_GATTS_VLOC_STACK;
Я проверил свойства персонажа из Android, это 26, так что ядумаю, что это правильно.
I/System.out: mLockCharacteristic.getProperties(): 26
Android имеет следующие определения:
public static final int PERMISSION_WRITE = 16;
public static final int PERMISSION_WRITE_ENCRYPTED = 32;
public static final int PERMISSION_WRITE_ENCRYPTED_MITM = 64;
public static final int PERMISSION_WRITE_SIGNED = 128;
public static final int PERMISSION_WRITE_SIGNED_MITM = 256;
public static final int PROPERTY_BROADCAST = 1;
public static final int PROPERTY_EXTENDED_PROPS = 128;
public static final int PROPERTY_INDICATE = 32;
public static final int PROPERTY_NOTIFY = 16;
public static final int PROPERTY_READ = 2;
public static final int PROPERTY_SIGNED_WRITE = 64;
public static final int PROPERTY_WRITE = 8;
Но когда я пишу, я получаю сообщение об ошибке:
E/BleManager: onCharacteristicWrite error 3
public static final int GATT_WRITE_NOT_PERMITTED = 3;
Есть ли у кого-нибудьесть идеи?