linux获得蓝牙外设mac,iOS 与蓝牙操作如何获取MAC地址
因?yàn)樾〉芨懔撕荛L(zhǎng)時(shí)間關(guān)于藍(lán)牙設(shè)備得APP 所以對(duì)這邊比較了解
因?yàn)閕OS自從7以后就無(wú)法或取設(shè)備的MAC地址 網(wǎng)上有人說(shuō)把它加到藍(lán)牙的廣播包里但是這樣的話對(duì)硬件來(lái)說(shuō)負(fù)擔(dān)很大 而且芯片會(huì)不穩(wěn)定。我這邊是將藍(lán)牙的MAC地址寫(xiě)在藍(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)識(shí) 用它來(lái)當(dāng)MAC地址 這樣的話如果iOS操作過(guò)藍(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;
}
}
總結(jié)
以上是生活随笔為你收集整理的linux获得蓝牙外设mac,iOS 与蓝牙操作如何获取MAC地址的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Robust Initializatio
- 下一篇: allegro 走线切换层_多层板走线时