linux获得蓝牙外设mac,iOS 与蓝牙操作如何获取MAC地址
因為小弟搞了很長時間關于藍牙設備得APP 所以對這邊比較了解
因為iOS自從7以后就無法或取設備的MAC地址 網上有人說把它加到藍牙的廣播包里但是這樣的話對硬件來說負擔很大 而且芯片會不穩定。我這邊是將藍牙的MAC地址寫在藍牙設備系統的sevrice 里
如圖:
一般的藍牙芯片了都有這個 Device information 系統服務 我們的是cc2541 ?里面的systemID 從右往左讀 比如cd aa 05 32 01 98 這個是出廠時的硬件唯一標識 用它來當MAC地址 這樣的話如果iOS操作過藍牙設備的話也能獲得了
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;
}
}
總結
以上是生活随笔為你收集整理的linux获得蓝牙外设mac,iOS 与蓝牙操作如何获取MAC地址的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Robust Initializatio
- 下一篇: linux获取sata端口,配置 SAT