Exemple #1
0
        /// <summary>
        /// Unsubscribe to the Apple Notification Center Service Caharacteristics
        /// </summary>
        /// <returns></returns>
        public async Task <GattCommunicationStatus> UnsubscribeAsync()
        {
            GattCommunicationStatus communicationStatus = GattCommunicationStatus.Unreachable;

            try
            {
                communicationStatus = await _NotificationSource.UnsubscribeAsync();

                if (communicationStatus == GattCommunicationStatus.Success)
                {
                    communicationStatus = await _DataSource.UnsubscribeAsync();
                }
            }
            catch (Exception e)
            {
                //if (_NotificationSource.Subscribed)
                //{
                //    // TODO: Unsubscribe
                //}
                throw e;
            }

            if (communicationStatus == GattCommunicationStatus.Success)
            {
                // Add events
                this._NotificationSource.NotificationAdded      -= _NotificationSource_NotificationAdded;
                this._NotificationSource.NotificationRemoved    -= _NotificationSource_NotificationRemoved;
                this._DataSource.NotificationAttributesReceived -= _DataSource_NotificationAttributesReceived;
            }

            return(communicationStatus);
        }