내 앱이 블루투스 LE 주변 기기로 실행 중이고 광고에 맞춤 데이터 몇 개만 보내려고합니다. CBAdvertisementDataManufacturerDataKey에서 데이터 세트가 밖으로 제거와 라디오를 통해 내 보내지 않습니다되고처럼iOS의 광고에서 블루투스 LE 데이터 보내기
func btStartBroadcasting(peripheral: CBPeripheralManager!) {
// create an array of bytes to send
var byteArray = [UInt8]()
byteArray.append(0b11011110); // 'DE'
byteArray.append(0b10101101); // 'AD'
// convert that array into an NSData object
var manufacturerData = NSData(bytes: byteArray,length: byteArray.count)
// define a UIUD for the service
let theUUid = CBUUID(NSUUID: uuid)
// build the bundle of data
let dataToBeAdvertised:[String: AnyObject!] = [
CBAdvertisementDataLocalNameKey : "I wish this worked",
CBAdvertisementDataManufacturerDataKey : manufacturerData,
CBAdvertisementDataServiceUUIDsKey : [theUUid],
]
peripheral.startAdvertising(dataToBeAdvertised)
}
는하지만 보인다. 나는 Apple의 설명서와 온라인에서이 모든 것을 발견 할 수있는 작은 조각들을 읽었습니다. CBAdvertisementDataLocalNameKey 및 CBAdvertisementDataServiceUUIDsKey 만 지원되므로 코어 블루투스는 데이터를 무시합니다. 위의 컴파일 및 실행 잘, 내 BT 스캐너 응용 프로그램에서 "나는이 일을"좋겠지 만, 내 두 비트의 사용자 지정 데이터가 작동하지 않는 것처럼 보입니다.
이 문제를 피하는 방법이 있습니까? CoreBluetooth 또는 내가 모르는 완전히 바보 같은 것에 대한 수용 가능한 대안?
감사합니다,
댄
iBeacon 형식의 광고를 보낼 수 있습니까? 주/부 필드에서 4 바이트의 데이터를 얻습니다. –
iOS 8에서 변경된 사항이 없으면 제조업체 데이터를 수정할 수 없습니다. http://stackoverflow.com/a/23790973/2128900 –