在项目调试过程中,发现有些手机的Bluetooth tethering用不了,不管是用做客户端还是服务端都一样用不了。 locat抓到的log显示如下:
<span style="font-size:14px;"> I/PPPOEService( 887): NetdCallbackReceiver onEvent 600600 Iface added bt-pan
D/BT_DUN ( 2007): Ignoring event PLATFORM_EVENT_RMNET_UP in EMB_DATA_CALL_CONNECTED
D/BT_DUN ( 2007): Moved to state(EMB_DATA_CALL_CONNECTED)
E/bt-btif ( 1776): Could not set bt address for interface:bt-pan, errno:Cannot assign requested address
E/bt-btif ( 1776): can not bring up tap interface:bt-pan
W/Netd ( 217): No subsystem found in netlink event
D/BT_DUN ( 2007): Ignoring event PLATFORM_EVENT_RMNET_UP in EMB_DATA_CALL_CONNECTED
D/BT_DUN ( 2007): Moved to state(EMB_DATA_CALL_CONNECTED)
D/NetlinkEvent( 217): Unexpected netlink message. type=0x11
I/PPPOEService( 887): NetdCallbackReceiver onEvent 600600 Iface linkstate bt-pan down
D/Tethering( 887): sendTet

本文分析了Bluetooth tethering无法使用的问题,关键在于设备的蓝牙MAC地址被错误地设置为了组播地址,导致SIOCSIFHWADDR操作失败。通过修改蓝牙地址的最后一位,使其符合单播地址规范,可以解决此问题。同时,文章解释了MAC地址的分类和如何判断其有效性,对理解蓝牙共享和MAC地址的关系提供了帮助。
4743

被折叠的 条评论
为什么被折叠?



