@Keep
		public void onServiceChanged(@NonNull final BluetoothGatt gatt) {
			log(Log.INFO, () -> "Service changed, invalidating services");

			// Forbid enqueuing more operations.
			operationInProgress = true;
			// Invalidate all services and characteristics
			manager.onServicesInvalidated();
			onDeviceDisconnected();
			// Clear queues, services are no longer valid.
			emptyTasks(FailCallback.REASON_NULL_ATTRIBUTE);
			// And discover services again
			serviceDiscoveryRequested = true;
			servicesDiscovered = false;
			log(Log.VERBOSE, () -> "Discovering Services...");
			log(Log.DEBUG, () -> "gatt.discoverServices()");
			gatt.discoverServices();
		}
Callback indicating service changed event is received.
<p>
Receiving this event means that the GATT database is out of sync with the remote device.
<p>
Requires API 31+.
ble/src/main/java/no/nordicsemi/android/ble/BleManagerHandler.java