When create 128byte length's CHARACTERISTIC and read with NRFCONNECT on Android.
NRFCONNECT returns GATT_READ_NOT_PERMIT even though sd_ble_gatts_rw_authorize_reply() completes normally.
code is folowing,
Why sd_ble_gatts_rw_authorize_reply return SUCCESS?
#define BUFFER_LENGTH (128) attr_md.vloc = BLE_GATTS_VLOC_STACK; attr_md.rd_auth = 1; attr_md.wr_auth = 1; attr_md.vlen = 0; memset(&attr_char_value, 0, sizeof(attr_char_value)); attr_char_value.p_uuid = uuid; attr_char_value.p_attr_md = &attr_md; attr_char_value.init_offs = 0; attr_char_value.init_len = BUFFER_LENGTH; attr_char_value.max_len = BUFFER_LENGTH; attr_char_value.p_value = nullptr; APP_ERROR_CHECK(sd_ble_gatts_characteristic_add(service_handle, &char_md, &attr_char_value, char_param->p_handle)); ........... ........... case BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST: if ( p_ble_evt->evt.gatts_evt.params.authorize_request.type == BLE_GATTS_AUTHORIZE_TYPE_READ ) { reply.params.read.len = BUFFER_LENGTH; reply.params.read.offset = 0; reply.params.read.p_data = buffer; reply.params.read.update = 1; reply.params.read.gatt_status = BLE_GATT_STATUS_SUCCESS; APP_ERROR_CHECK(sd_ble_gatts_rw_authorize_reply(m_conn_handle, &reply)); }