因?yàn)樾〉芨懔撕荛L時(shí)間關(guān)于藍(lán)牙設(shè)備得APP 所以對這邊比較了解
因?yàn)閕OS自從7以后就無法或取設(shè)備的MAC地址 網(wǎng)上有人說把它加到藍(lán)牙的廣播包里但是這樣的話對硬件來說負(fù)擔(dān)很大 而且芯片會不穩(wěn)定。我這邊是將藍(lán)牙的MAC地址寫在藍(lán)牙設(shè)備系統(tǒng)的sevrice 里?
如圖:
一般的藍(lán)牙芯片了都有這個(gè) Device information 系統(tǒng)服務(wù) 我們的是cc2541 ?里面的systemID 從右往左讀 比如cd aa 05 32 01 98 這個(gè)是出廠時(shí)的硬件唯一標(biāo)識 用它來當(dāng)MAC地址 這樣的話如果iOS操作過藍(lán)牙設(shè)備的話也能獲得了
Device information 的UUID是180A? systemID 的UUID 2A23
獲得方法連接上之后直接讀取
-(void)peripheral:(CBPeripheral*)peripheral didUpdateValueForCharacteristic:(CBCharacteristic*)characteristic error:(NSError*)error
{
if([characteristic.UUIDisEqual:[CBUUIDUUIDWithString:@"2A23"]])
{
NSString*value = [NSStringstringWithFormat:@"%@",characteristic.value];
NSMutableString*macString = [[NSMutableStringalloc]init];
[macStringappendString:[[valuesubstringWithRange:NSMakeRange(16,2)]uppercaseString]];
[macStringappendString:@":"];
[macStringappendString:[[valuesubstringWithRange:NSMakeRange(14,2)]uppercaseString]];
[macStringappendString:@":"];
[macStringappendString:[[valuesubstringWithRange:NSMakeRange(12,2)]uppercaseString]];
[macStringappendString:@":"];
[macStringappendString:[[valuesubstringWithRange:NSMakeRange(5,2)]uppercaseString]];
[macStringappendString:@":"];
[macStringappendString:[[valuesubstringWithRange:NSMakeRange(3,2)]uppercaseString]];
[macStringappendString:@":"];
[macStringappendString:[[valuesubstringWithRange:NSMakeRange(1,2)]uppercaseString]];
NSLog(@"MAC地址是macString:%@",macString);
_MacAddress= macString;
}
}