objective c - Identify iOS peripheral advertising in background -


i work on ios application acts bluetooth peripheral. need implement searching ios peripheral non ios centrals. i’m faced problem while ios application advertising in background mode. when advertising in foreground, central can read primary service uuid advertising data, when advertising in background, can’t see name or uuid of peripheral – there apple manufacturer data in advertising packet.

the essence of problem lies in fact non ios central can’t determinate – advertising peripheral in background or other peripheral in background. have connect every ios device advertising in background, enumerate services service uuid.

the documentation says during background advertising service uuids go special “overflow” area , ios devices can read specifying service in cbcentralmanager’s scanforperipherialwithservices method. looks apple have ability check background advertising packet data service uuid.

after searching on found interesting information service hashed uuid. background mode advertising packet contains apple manufacturer data (14 ff 4c 00 01) , undocumented 128 bit value, 1 of these 128 bits equals 1. tried change service uuid several times , found out 128 bit value after apple manufacturer data changes too.

  1. i’d use value filter peripherals around , reduce connections wrong (not mine) peripherals. can give information how value depends on service uuid? there hash function used on specified service uuid in scanforperipherialwithservices method?
  2. can sure background advertising packet same immutable service uuid never change?
  3. is there other way send custom information while advertising in background mode? maybe can add data ble scan response packet?

best regards, dezmond


Comments

Popular posts from this blog

Fail to load namespace Spring Security http://www.springframework.org/security/tags -

sql - MySQL query optimization using coalesce -

unity3d - Unity local avoidance in user created world -