Re: Core Bluetooth > CBPeripheralManager > addService: only works a limited number of times
Re: Core Bluetooth > CBPeripheralManager > addService: only works a limited number of times
- Subject: Re: Core Bluetooth > CBPeripheralManager > addService: only works a limited number of times
- From: Etan Kissling <email@hidden>
- Date: Fri, 11 Jan 2013 20:17:24 +0000
- Thread-topic: Core Bluetooth > CBPeripheralManager > addService: only works a limited number of times
Allan,
Try to use a generic client like the BLExplr app for 3$ to
enumerate your peripheral app's services.
Do you find something special with such an app?
Normally, you should not run into issues with the service count.
Note that services can only be added while not advertising. Do you wait
For advertising to stop before adding / removing services?
Etan
On 11.01.2013, at 20:32, "Allan Young" <email@hidden> wrote:
> In Apple's "BTLE Transfer" sample app, and in a test app that I created, I have observed that if the following is performed multiple times as the app is used:
>
> addService
> startAdvertising
> stopAdvertising
>
> or even:
>
> addService
> startAdvertising
> stopAdvertising
> removeAllServices
>
> …then at some point (after roughly 3-7 iterations of the above), I will no longer get a call to:
>
> peripheralManager:didAddService:error:
>
> Thus, I have to assume that the service has not been added.
>
> To demonstrate this, using the "BTLE Transfer" sample app, add the following to BTLEPeripheralViewController.m:
>
> - (void) peripheralManager: (CBPeripheralManager*) peripheral didAddService: (CBService*) service error: (NSError*) error;
> {
> NSLog( @"didAddService" );
> }
>
> …then, run the app on a device that supports CPPeripheralManager. In the UI, repeatedly perform these two steps:
> 1. Click "Peripheral" on the first screen
> 2. Click "Back" on the second screen
>
> Observe in the console that "didAddService" gets logged for the first fews iterations of the above steps, but will eventually no longer appear:
>
> 2013-01-10 08:58:14.855 BTLE Transfer[3733:907] self.peripheralManager powered on.
> 2013-01-10 08:58:14.869 BTLE Transfer[3733:907] didAddService
> 2013-01-10 08:58:29.476 BTLE Transfer[3733:907] self.peripheralManager powered on.
> 2013-01-10 08:58:29.484 BTLE Transfer[3733:907] didAddService
> 2013-01-10 08:58:39.488 BTLE Transfer[3733:907] self.peripheralManager powered on.
> 2013-01-10 08:58:39.495 BTLE Transfer[3733:907] didAddService
> 2013-01-10 08:58:46.962 BTLE Transfer[3733:907] self.peripheralManager powered on.
> 2013-01-10 08:58:46.966 BTLE Transfer[3733:907] didAddService
> 2013-01-10 08:58:49.349 BTLE Transfer[3733:907] self.peripheralManager powered on.
> 2013-01-10 08:58:49.352 BTLE Transfer[3733:907] didAddService
> 2013-01-10 08:58:52.283 BTLE Transfer[3733:907] self.peripheralManager powered on.
> 2013-01-10 08:58:52.286 BTLE Transfer[3733:907] didAddService
> 2013-01-10 08:58:54.387 BTLE Transfer[3733:907] self.peripheralManager powered on.
> 2013-01-10 08:58:56.358 BTLE Transfer[3733:907] self.peripheralManager powered on.
> 2013-01-10 09:04:05.075 BTLE Transfer[3733:907] self.peripheralManager powered on.
> 2013-01-10 09:04:35.662 BTLE Transfer[3733:907] self.peripheralManager powered on.
>
> Should I be able to perform addService as many times as I like?
>
> Allan
> _______________________________________________
> 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