@Override
 public void onServicesDiscovered(BluetoothGatt gatt, int status) {
   super.onServicesDiscovered(gatt, status);
   connectCallback.invoke();
   connectCallback = null;
   connectFailCallback = null;
 }
 @Override
 public void onServicesDiscovered(BluetoothGatt gatt, int status) {
   super.onServicesDiscovered(gatt, status);
   LogTool.d(TAG, "on services discovered success ? " + (status == BluetoothGatt.GATT_SUCCESS));
   if (status == BluetoothGatt.GATT_SUCCESS) {
     displayGattServices(gatt.getServices());
     if (gatt.getServices() == null || gatt.getServices().isEmpty()) {
       LogTool.e(TAG, "No gatt service found!");
       onServicesDiscoveredFailed(gatt);
       return;
     }
     if (!checkCloudWatchServiceSupported(gatt)) {
       LogTool.e(TAG, "Clouder watch services does not support!");
       onServicesDiscoveredFailed(gatt);
       gatt.disconnect();
       return;
     }
     onServicesDiscoveredSuccess(gatt);
   } else {
     LogTool.e(TAG, "Can not found gatt services!");
     onServicesDiscoveredFailed(gatt);
   }
 }