Re: How to get the updated advertisementData (kCBAdvDataManufacturerData) value?
Re: How to get the updated advertisementData (kCBAdvDataManufacturerData) value?
- Subject: Re: How to get the updated advertisementData (kCBAdvDataManufacturerData) value?
- From: Christopher Cotton <email@hidden>
- Date: Fri, 16 Jan 2015 09:32:49 -0600
I'll have to write a short simple app to demonstrate. But, we change
our manufacturer data and haven't had any issue with caching. The
change shows up almost immediately. We don't have to connect to it
either.
Which part of the data are you changing?
On Fri, Jan 16, 2015 at 9:20 AM, Zach Dennis <email@hidden> wrote:
> iOS caching will be problematic for purely advertisement data changes. We
> have seen related issues as well where it will cache advertisement data
> based on the advertiser's address in the advertisement. We have a switch
> that causes a BLE device to act as different devices when toggled, but iOS
> caching causes an issue.
>
> Our resolution so far is to have the user toggle wifi on and off which seems
> to force the iOS BLE cache to be cleared.
>
> One thing to try if you own the firmware code on the BLE device is to change
> the advertiser address whenever you change advertising data, then iOS will
> think it sees a new device. But, that may defeat whatever it is you're
> trying to do. I'm assuming you're trying to avoid making the device
> connectable.
>
> Zach
>
> On Fri, Jan 16, 2015 at 6:09 AM, David Chu <email@hidden>
> wrote:
>>
>> Hey Hank,
>>
>> I believe this is the problem.
>>
>> CoreBluetooth only discovers a device once and then caches the data to
>> save energy. In order to keep getting the updated data you would need to do
>> one of two things.
>>
>> - Connect to the device and then ask for an update of the advertising
>> data.
>> It seems this is what you are avoiding.
>>
>> - Stop stop and restart your scan. (perhaps on a time delay? I have never
>> stopped and restarted a scan right after each other. But I can confirm that
>> restarting the scan will make the device discoverable again).
>>
>> Dave
>>
>>
>> On Jan 16, 2015, at 10:52 AM, Hank Li <email@hidden> wrote:
>>
>> The peripheral is saved. the issue is that when the advertisement data is
>> changed on the device, the ios app could not get the updated value. It seems
>> the ios cached the advertisementdata.
>>
>>
>> Thanks,
>> Hank Li
>>
>>
>>
>> On Thu, Jan 15, 2015 at 5:05 PM, Christopher Cotton
>> <email@hidden> wrote:
>>>
>>> We use changing advertisement data just fine in our iOS app. Are you
>>> keeping a reference to the peripheral that is given to you? you should
>>> get a ton of logs. You need to keep a reference otherwise it discards
>>> that peripheral as per the docs in the header:
>>>
>>>
>>> * @discussion This method is invoked while
>>> scanning, upon the discovery of <i>peripheral</i> by <i>central</i>. A
>>> discovered peripheral must
>>>
>>> * be retained in order to use it;
>>> otherwise, it is assumed to not be of interest and will be cleaned up
>>> by the central manager.
>>>
>>>
>>>
>>>
>>> On Thu, Jan 15, 2015 at 6:33 PM, Hank Li <email@hidden> wrote:
>>> > For my IOS app (on ios8), once it get the advertisementData, it will
>>> > stay
>>> > the same, even the data has been changed on the BLE device. How can I
>>> > get
>>> > the updated advertisementData in my ios app?
>>> >
>>> > Here is the code, the startScan is called every 5 seconds.
>>> >
>>> > func startScan() {
>>> > let opts = [CBCentralManagerScanOptionAllowDuplicatesKey:true];
>>> > centralManager.scanForPeripheralsWithServices(nil, options:opts);
>>> > }
>>> >
>>> > func centralManager(central: CBCentralManager!, didDiscoverPeripheral
>>> > peripheral: CBPeripheral!, advertisementData: [NSObject : AnyObject]!,
>>> > RSSI:
>>> > NSNumber!) {
>>> > println("\(advertisementData)");
>>> > }
>>> >
>>> > Here is the output,
>>> > [kCBAdvDataLocalName: MyDevice001, kCBAdvDataIsConnectable: 1,
>>> > kCBAdvDataManufacturerData: <11e467f7 7ec2ed>]
>>> >
>>> > the output will never change. how to get the updated advertisementData
>>> > value?
>>> >
>>> > Thanks,
>>> > Hank Li
>>> >
>>> >
>>> >
>>> > _______________________________________________
>>> > 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
>>>
>>>
>>>
>>> --
>>> Christopher
>>
>>
>> _______________________________________________
>> 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
>
>
>
>
> --
> @zachdennis
> http://www.continuousthinking.com
> http://www.mutuallyhuman.com
--
Christopher
_______________________________________________
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