iOS-获取蓝牙Mac地址
来源:互联网 发布:淘宝u站哪个好 编辑:程序博客网 时间:2024/04/28 09:59
多谢MacPu大神的分享,原文下载地址:
http://blog.csdn.net/macpu/article/details/49805763/
主要思路
虽然苹果官方的API没有获取Mac地址的方法,但是当我翻看蓝牙的文档的时候,我发现蓝牙有提供一个设备信息的service[service UUID:0x180A],里面提供了两个characteristic:获取芯片的Mac地址(0x2A23 )和获取软件的版本号(0x2A26)。如下图所示:
实现
根据这个思路:
[peripheral discoverServices:@[[CBUUID UUIDWithString:@"180A"]]];[service discoverCharacteristics:@[[CBUUID UUIDWithString:@"2A23"]]];[peripheral readValueForCharacteristic:characteristic]NSString *value = [NSString stringWithFormat:@"%@",characteristic.value];NSMutableString *macString = [[NSMutableString alloc] init];[macString appendString:[[value substringWithRange:NSMakeRange(16, 2)] uppercaseString]];[macString appendString:@":"];[macString appendString:[[value substringWithRange:NSMakeRange(14, 2)] uppercaseString]];[macString appendString:@":"];[macString appendString:[[value substringWithRange:NSMakeRange(12, 2)] uppercaseString]];[macString appendString:@":"];[macString appendString:[[value substringWithRange:NSMakeRange(5, 2)] uppercaseString]];[macString appendString:@":"];[macString appendString:[[value substringWithRange:NSMakeRange(3, 2)] uppercaseString]];[macString appendString:@":"];[macString appendString:[[value substringWithRange:NSMakeRange(1, 2)] uppercaseString]];//00:E0:4C:3F:14:DE
这里可一个大家推荐一个非常好用的蓝牙开发的库,跟CoreBluetooth的接口一摸一样,只是数据是用过block返回的,用起来更加的方便。
MPBluetoothKit
下面是写的MPBluetoothKit 获取Mac地址的代码
CBUUID *macServiceUUID = [CBUUID UUIDWithString:@"180A"]; CBUUID *macCharcteristicUUID = [CBUUID UUIDWithString:@"2A23"]; [mPeripheral discoverServices:@[macServiceUUID] withBlock:^(MPPeripheral *peripheral, NSError *error) { if(peripheral.services.count){ MPService *service = [peripheral.services objectAtIndex:0]; [service discoverCharacteristics:@[macCharcteristicUUID] withBlock:^(MPPeripheral *peripheral, MPService *service, NSError *error) { for(MPCharacteristic *characteristic in service.characteristics){ if([characteristic.UUID isEqual:macCharcteristicUUID]){ [characteristic readValueWithBlock:^(MPPeripheral *peripheral, MPCharacteristic *characteristic, NSError *error){ NSString *value = [NSString stringWithFormat:@"%@",characteristic.value]; NSMutableString *macString = [[NSMutableString alloc] init]; [macString appendString:[[value substringWithRange:NSMakeRange(16, 2)] uppercaseString]]; [macString appendString:@":"]; [macString appendString:[[value substringWithRange:NSMakeRange(14, 2)] uppercaseString]]; [macString appendString:@":"]; [macString appendString:[[value substringWithRange:NSMakeRange(12, 2)] uppercaseString]]; [macString appendString:@":"]; [macString appendString:[[value substringWithRange:NSMakeRange(5, 2)] uppercaseString]]; [macString appendString:@":"]; [macString appendString:[[value substringWithRange:NSMakeRange(3, 2)] uppercaseString]]; [macString appendString:@":"]; [macString appendString:[[value substringWithRange:NSMakeRange(1, 2)] uppercaseString]]; NSLog(@"macString:%@",macString); }]; } } }]; } }];
Github地址
https://github.com/MacPu/BluetoothMacAddressDemo
BluetoothMacAddressDemo
多多star
0 0
- iOS-获取蓝牙Mac地址
- iOS如果获取蓝牙Mac地址
- iOS如果获取蓝牙Mac地址
- 获取蓝牙MAC地址
- ios_获取蓝牙mac地址
- IOS 获取MAC地址
- ios 获取mac 地址
- IOS获取mac地址
- ios Mac 地址获取
- ios获取mac地址
- ios Mac 地址获取
- 获取外设蓝牙设别的MAC地址
- android6.0获取蓝牙mac地址
- Android7.0 获取手机蓝牙MAC地址
- Android获取蓝牙地址(非mac地址)
- 获取ios的MAC地址
- 获取ios的MAC地址
- IOS的mac地址获取
- 如何用PHP获取百度地图
- 怎样用swift制作一个滑出的导航控制面板
- 212.Space Replacement-空格替换(容易题)
- 将java项目导出为jar包+导出第三方jar包+使用命令行调用+传参
- 树、森林和二叉树的转换
- iOS-获取蓝牙Mac地址
- MySQL二进制安装
- NFA/DFA
- 【GLSL教程】(二)在OpenGL中使用GLSL
- Mysql 5.7主主备份配置(原创)
- 注解 @interface
- Android Rxjava单事件订阅
- SpringMVC的几种返回方式
- tjut 3591