Re: BLE connection to device on iOS 7 only partially succeeds
Re: BLE connection to device on iOS 7 only partially succeeds
- Subject: Re: BLE connection to device on iOS 7 only partially succeeds
- From: Don Clark <email@hidden>
- Date: Mon, 26 Aug 2013 16:25:02 -0400
- Acceptlanguage: en-US
- Thread-topic: BLE connection to device on iOS 7 only partially succeeds
After further investigation and a timely suggestion from CK at Apple, as
well as a suggestion from EK here in this forum, I tried my command to the
device with my app running on iOS 7 and found that if I changed the write
option to CBCharacteristicWriteWithResponse from
CBCharacteristicWriteWithoutResponse that the write to the characteristic
does in fact occur and complete. Apparently Core Bluetooth on iOS 7 is
being more stringent about operations on characteristics and the setting
of the properties on those characteristics. I have to review the
properties as they are set in the service in the firmware that implements
the service.
Regarding the "missing services", it also appears that Core Bluetooth on
iOS 7 is not exposing the GAP and GATT services in the NSArray holding the
discovered services in a CBPeripheral object - the apparent rationale is
that these are services the client can do nothing with, and so there is no
need to enumerate them. The fact that there were four services enumerated
on iOS 6 and only two on iOS 7 is an artifact and of little consequence.
Don
On 8/22/13 7:50 PM, "email@hidden"
<email@hidden> wrote:
>Date: Thu, 22 Aug 2013 17:15:45 -0400
>From: Don Clark <email@hidden>
>To: "email@hidden" <email@hidden>
>Subject: Re: Bluetooth-dev Digest, Vol 10, Issue 218
>Message-ID: <CE3BF5C4.387F1%email@hidden>
>Content-Type: text/plain; charset=utf-8
>
>I have not. On iOS 6 the notifications have been working well.
>
>Since I wrote the first post I have noticed something. I'm asking the
>device for the services that the device provides, using the
>discoverServices method on the CBPeripheral object. When scanning from an
>iOS 6 device the BLE device is reporting four services, including GAP,
>GATT, Device Information Service and my custom service. I see this in my
>app, as well as in the Light Blue app. However, when running on iOS 7
>both my app and Light Blue are reporting only two services, 0x180A and my
>own custom service. The GATT service, 0x1801, is critical – without that
>the accessing of a characteristic isn't going to happen. So I believe
>that Core Bluetooth isn't acting on my write request because that service
>appears to be missing.
>
>So now the question is why Core Bluetooth isn't detecting the GATT and the
>GAP services? So it would seem that either there is an issue with Core
>Bluetooth on iOS 7, or maybe there has been some change that expects
>something different from the devices. Hopefully someone out there can
>shed some light on this.
>
>
>Don
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Bluetooth-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden