BLE获取iphone|BLE获取iphone mac地址的方法--【原创】
本人用的BLE是TIcc2541,1.3.2协议栈
1、首先要说明的是,iphone手机将信息保护了,BLE设备读到的iphone地址是随机的,每次连接都会不同
2、下面我就具体说明如何查看手机的mac地址
首先我的程序是作为从机的,从机配好开始广播,事件SBP_START_DEVICE_EVT ---> GAPRole_StartDevice( &simpleBLEPeripheral_PeripheralCBs );
然后进入peripheral.c中的GAPRole_ProcessEvent函数(关于回调函数我就不提了),
由事件SYS_EVENT_MSG --->gapRole_ProcessOSALMsg( (osal_event_hdr_t *)pMsg );
---> GAP_MSG_EVENT ---> gapRole_ProcessGAPMsg( (gapEventHdr_t *)pMsg );
---> GAP_LINK_ESTABLISHED_EVENT --->
#define GAP_LINK_ESTABLISHED_EVENT0x05
//!< Sent when the Establish Link Request is complete. This event is sent as an OSAL message defined as gapEstLinkReqEvent_t.
uint8 devAddr[B_ADDR_LEN];
//!< Device address of link
typedef struct
{
osal_event_hdr_t hdr;
//!< GAP_MSG_EVENT and status
uint8 opcode;
//!< GAP_LINK_ESTABLISHED_EVENT
uint8 devAddrType;
//!< Device address type: @ref GAP_ADDR_TYPE_DEFINES
uint8 devAddr[B_ADDR_LEN];
//!< Device address of link
uint16 connectionHandle;
//!< Connection Handle from controller used to ref the device
uint16 connInterval;
//!< Connection Interval
uint16 connLatency;
//!< Conenction Latency
uint16 connTimeout;
//!< Connection Timeout
uint8 clockAccuracy;
//!< Clock Accuracy
} gapEstLinkReqEvent_t;
gapEstLinkReqEvent_t *pPkt = (gapEstLinkReqEvent_t *)pMsg;
DEBUG_PRINT("address: %s(%d)\r\n", bdAddr2Str(pPkt->devAddr), __LINE__);
此时address就是你手机蓝牙的mac地址了,安卓和ios都可以,亲测
欢迎交流,如有转载请注明出处
【BLE获取iphone|BLE获取iphone mac地址的方法--【原创】】新浪博客:http://blog.sina.com.cn/u/2049150530
博客园:http://www.cnblogs.com/sky-heaven/
知乎:http://www.zhihu.com/people/zhang-bing-hua
推荐阅读
- 基于|基于 antd 风格的 element-table + pagination 的二次封装
- 杭电oj——2030汉字统计
- tableView|tableView 头视图下拉放大 重写
- EditText默认不获取焦点弹出键盘
- Android|Android BLE蓝牙连接异常处理
- whlie循环和for循环的应用
- 前端代码|前端代码 返回顶部 backToTop
- 【译】Rails|【译】Rails 5.0正式发布(Action Cable,API模式等)
- 【实用教程】4种获取无水印视频素材的方法
- #12-UITableView|#12-UITableView 优化方案