public override void OnServicesDiscovered(BluetoothGatt gatt, GattStatus status)
            {
                if (status == GattStatus.Success)
                {
                    Debug.WriteLine(TAG, "mBluetoothGatt = " + Service.Gatt);
                    BluetoothGattCharacteristic TxChar;
                    BluetoothGattService        RxService = Service.Gatt.GetService(RX_SERVICE_UUID2);
                    if (RxService == null)
                    {
                        Service.ShowMessage("mBluetoothGatt null" + Service.Gatt);
                        Service.ShowMessage("Rx service not found!");
                        Service.BroadcastUpdate(DEVICE_DOES_NOT_SUPPORT_UART);
                        return;
                    }
                    TxChar = RxService.GetCharacteristic(TX_CHAR_UUID2);
                    if (TxChar == null)
                    {
                        Service.ShowMessage("Rx charateristic not found!");
                        Service.BroadcastUpdate(DEVICE_DOES_NOT_SUPPORT_UART);
                        return;
                    }
                    Debug.WriteLine(TAG, "RxChar = " + TX_CHAR_UUID2.ToString());
                    Service.Gatt.SetCharacteristicNotification(TxChar, true);

                    BluetoothGattDescriptor descriptor = TxChar.GetDescriptor(CCCD);
                    var ilistValue = BluetoothGattDescriptor.EnableNotificationValue;
                    var arrayValue = new byte[ilistValue.Count];
                    for (int index = 0; index < arrayValue.Length; index++)
                    {
                        arrayValue[index] = ilistValue[index];
                    }
                    descriptor.SetValue(arrayValue);
                    Service.Gatt.WriteDescriptor(descriptor);

                    Service.BroadcastUpdate(ACTION_GATT_SERVICES_DISCOVERED);
                }
                else
                {
                    Debug.WriteLine(TAG, "onServicesDiscovered received: " + status);
                }
            }