Mar*_*yrZ 4 android bluetooth ios core-bluetooth bluetooth-lowenergy
我必须制作一个应用程序来配对iOS和Android设备(iPhone 5,iPad 3,Galaxy S3,Nexus 7,它们都使用蓝牙4.0),然后相互发送数据.
我已经完成配对并使用CoreBluetooth和Apple BTLE_Transfer的示例代码在2个iOS设备之间发送数据
根据我的理解,外围设备(服务器)可以向中央(客户端)发布广告.这个中心是自己扫描,然后通过查找所通告服务的UUID来尝试查找服务器.
当我在Android上制作服务器时,它正在等待连接(监听),我知道我的服务器的UUID和mac地址.但是当我用我的iPhone扫描(当然扫描相同的UUID)时,我找不到服务器.
You*_*eed 10
问:这些数据量是否有限?我们可以发送照片或PDF等内容吗?
蓝牙低功耗未针对发送大量数据进行优化,也未针对流进行优化.它更适合定期发送小块数据(例如温度读数,时间等).请查看此答案,了解BLE传输与传统蓝牙的不同之处.话虽这么说,你仍然可以通过BLE发送大量数据,并且数据量是无限的.但是,这可能最终变得不可靠且相对缓慢.
问:那么Android服务器是否有可能像iOS上的Peripheral一样做广告?
作为服务器/客户端与外围/中心完全不同: -
外围/中央决定了连接的方式.中央设备应该启动连接.外围设备应该通告并等待连接请求.
客户端/服务器决定数据的分发方式.Gatt服务器保存数据.Gatt客户端可以读取,写入或通知(获得连续的读数流)此数据.在大多数情况下,服务器也是外围设备,但这不是强制性的.
所以回答你的问题,是的,服务器可以像iOS上的外设一样做广告.但是,对于Android,此功能尚不可用,并且将成为下一版本(Android L)版本的一部分.有关更多信息,请参阅此答案.
问:或者我的iPhone客户端可能使用服务器的mac地址进行连接?
据我所知,在coreBluetooth中,您需要连接外围设备的UUID而不是MAC地址.您无需知道从外围设备公布的服务.您最好的选择是扫描外围设备,然后连接到具有UUID和/或您知道属于您的外围设备的广告数据的设备.
我希望这有帮助.
| 归档时间: |
|
| 查看次数: |
5493 次 |
| 最近记录: |