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

            try
            {
                communicationStatus = await _NotificationSource.SubscribeAsync();

                if (communicationStatus == GattCommunicationStatus.Success)
                {
                    communicationStatus = await _DataSource.SubscribeAsync();
                }
            }
            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);
        }