多点蓝牙连接到非iOS设备

时间:2014-03-18 11:39:05

标签: ios bluetooth bluetooth-lowenergy core-bluetooth multipeer-connectivity

我目前正在尝试通过蓝牙连接Raspberry Pi和iOS设备。使用BTLE和CBCentralManager我能够做到这一点 - 我可以连接到Pi并共享数据。

我的问题是,为了我的目的,我需要设备有一个IP - 据我所知,只能使用PAN(个人局域网)蓝牙配置文件。 iOS确实支持使用新的Multipeer Connectivity Framework,并且在连接两个iOS设备时有效,一个使用MCNearbyServiceBrowser,另一个使用MCNearbyServiceAdvertiser。连接完成后,两个设备都具有带IP的网络接口。但现在我必须让Rasperry Pi进入这种情况 - 我找不到任何方法让Pi加入PAN。

有没有人有任何线索,如果这在某种程度上是可能的,从哪里开始寻找,如果有关于PAN或类似的通信的良好解释?甚至可能有一个类似的东西的框架?我很高兴任何线索和建议。

1 个答案:

答案 0 :(得分:5)

Multipeer Connectivity Framework可能基于专有协议,因为我无处可见它实现了PAN。它只与它相似。如您所述,支持的profiles列表包含PAN以及以下注释:

  

根据蓝牙配件的不同,您可能会遇到轻微的问题   配置文件功能的变化。这些变化受到   配件制造商,而不是iOS设备。

因此理论上支持PAN,您应该能够连接支持此配置文件的任意设备。我通过iPhone上的个人热点将我的Android手机连接到我的iPhone,Android可以使用共享的互联网连接而没有任何问题。

我找到了Raspberry Pi Bluetooth iPhone Tethering教程,似乎准确描述了您要做的事情。为了将来参考,请复制以下步骤:

安装蓝牙套件

sudo aptitude install bluetooth bluez-utils bluez-compat

配对设备,这是棘手的部分

pi@raspberrypi ~ $ hcitool scan
Scanning ...
    18:34:51:55:B0:D8   Fanboy ][
pi@raspberrypi ~ $
pi@raspberrypi ~ $ grep KeyboardDisplay /usr/bin/bluez-simple-agent 
    capability = "KeyboardDisplay"
pi@raspberrypi ~ $ sudo perl -i -pe 's/KeyboardDisplay/DisplayYesNo/' /usr/bin/bluez-simple-agent
pi@raspberrypi ~ $ grep DisplayYesNo /usr/bin/bluez-simple-agent
    capability = "DisplayYesNo"
pi@raspberrypi ~ $ 
pi@raspberrypi ~ $ sudo bluez-simple-agent hci0 18:34:51:55:B0:D8
RequestConfirmation (/org/bluez/18868/hci0/dev_18_34_51_55_B0_D8, 160178)
Confirm passkey (yes/no): yes
Release
New device (/org/bluez/18868/hci0/dev_18_34_51_55_B0_D8)
pi@raspberrypi ~ $
pi@raspberrypi ~ $ sudo bluez-test-device trusted 18:34:51:55:B0:D8 yes

开启个人热点

pi@raspberrypi ~ $ echo "echo 'iface bnep0 inet dhcp' >> /etc/network/interfaces" | sudo sh
pi@raspberrypi ~ 

$ sudo pand -c 18:34:51:55:B0:D8 -role PANU --persist 30

<强>享受

pi@raspberrypi ~ $ ifconfig bnep0
bnep0     Link encap:Ethernet  HWaddr e0:91:53:61:0f:74  
          inet addr:172.20.10.10  Bcast:172.20.10.15  Mask:255.255.255.240
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:14 errors:0 dropped:0 overruns:0 frame:0
      TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:4426 (4.3 KiB)  TX bytes:802 (802.0 B)

所有积分均转至http://www.wolfteck.com/以提供详细说明。