This is the standard android BLE Gatt example modified for reading multiple Services and their Characteristics along with notification enabled. Notification enabling is straight forward for a single characteristic. But when multiple Services are invloved BLE protocol allows only one to be read at a time. Hence a system of callbacks and loops to read the next characteristic only after the previous characteristic is read is implemented.