Re: Not receiving BLE events in background
Re: Not receiving BLE events in background
- Subject: Re: Not receiving BLE events in background
- From: Michael Kroll <email@hidden>
- Date: Thu, 16 Aug 2012 23:06:57 +0200
Hi Andras,
are you running iOS5.1.1 or are you already using an iOS6 beta seed to achieve successful background scanning?
Kind Regards/Mit freundlichen Grüssen,
Dr. Michael Kroll
---
Blog: http://www.mkroll.mobi
Forum: http://forum.mkroll.mobi
On 16.08.2012, at 21:58, Andras Kovi <email@hidden> wrote:
> Hi,
>
> It seems the scanning is really happening in the background but it is ridiculously slow. It took about 1 minute to find the accessory. Anyway, at least I received the didDiscover and didConnect callbacks. didDisconnect is immediately called if the accessory is powered off. So it's more or less Ok on this side.
>
> However, I also use the peripheral manager and implement an attribute that is updated by the accessory. Now, this does no happen at all. I left it hanging for minutes and the app did not receive any attribute write requests.
>
> What do I miss?
>
> Thanks,
> Andras
>
> On Aug 16, 2012, at 11:32 AM, András Kövi <email@hidden> wrote:
>
>> Hi Arthur,
>>
>> thank you for the response. I'll try what you suggest. However, it
>> seems to be odd that my app does not (or with significant delay)
>> receive attribute write requests while connected in the background.
>> This would not be good at all. A few hundred milliseconds delay is ok
>> but 10s is intolerable.
>>
>> The reason why I think something is still missing from the whole
>> picture is that heart rate monitors and similar are also target
>> applications. Those devices send the data at a constant pace and I
>> can't think that the framework would buffer it for my app.
>>
>> Anyway, it would be good to hear the official Apple opinion as well.
>>
>> Best regards,
>> Andras
>>
>> 2012/8/16 Arturs Vonda <email@hidden>:
>>> Hi,
>>>
>>> I have done some tests in recent days and here is what I've found:
>>>
>>> 1) It takes a while to discover devices in background mode. Usually it takes
>>> 10-30 seconds till first discovery, but can be a more. If you allow
>>> duplicate peripherals (notification for each ad package), it interval
>>> between those notifications can be minutes.
>>> 2) I haven't tested this, but as far as I understand, you can only scan for
>>> specific services in background mode. If you scan for all devices, this
>>> might not work.
>>>
>>> I did the tests with two iPhones 4s -- one as peripheral and on as central.
>>>
>>> Also I noticed that events in background more might take a while to execute.
>>> I had timer to fire 10 seconds after the peripheral was found and the events
>>> in method took couple of minutes to execute (including making request to
>>> server).
>>>
>>> Hope this helps somehow.
>>>
>>> Sincerely,
>>> Arthur
>>>
>>> On Aug 16, 2012, at 10:41, "m.kroll" <email@hidden> wrote:
>>>
>>> Hi Andras,
>>> I have the same issues here.
>>>
>>> In my app delegates method:
>>>
>>> - (void)applicationDidEnterBackground:(UIApplication *)application
>>>
>>> I'm calling:
>>>
>>> - (void)scanForPeripheralsWithServices:(NSArray *)serviceUUIDs
>>> options:(NSDictionary *)options;
>>>
>>> But the delegate method:
>>>
>>>
>>> - (void)centralManager:(CBCentralManager *)central
>>> didDiscoverPeripheral:(CBPeripheral *)peripheral
>>> advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI;
>>>
>>>
>>>
>>> Seems to be never called.
>>> "bluetooth-central" is in my UIBackgroundModes array as well.
>>>
>>> I changed the ADV Interval of my peripherals to 20ms in order to meet the
>>> Apple BLE Peripheral recommendations but this changed nothing.
>>>
>>> Kind Regards,
>>> Dr. Michael Kroll.
>>>
>>>
>>> On Aug 16, 2012, at 09:24 AM, Andras Kovi <email@hidden> wrote:
>>>
>>> Hi!
>>>
>>> Do I have to add anything to the app to indicate iOS that BLE events must be
>>> delivered to it while backgrounded? I declared the UIBackgroundModes /
>>> bluetooth-central in the info.plist file, so in theory I should be able to
>>> receive the events.
>>>
>>> 1. The app scans for the BLE accessory and connects to it. Connection is
>>> reestablished automatically if the didDisconnect is received.
>>> 2. Go back to the home screen.
>>> 3. No callbacks while the app is in the background.
>>> 4. Bring the app back to foreground, and the didConnect, didDiscover and
>>> other callbacks are immediately called.
>>>
>>> Thanks in advance,
>>> Andras
>>> _______________________________________________
>>> 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
>>>
>>> _______________________________________________
>>> 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
>>>
>>>
>
_______________________________________________
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