我目前正在编写一个应用程序,使用BTLE
在2个或更多的手机之间传递小字符串的数据。
当前在前台,我正在传递:CBAdvertisementDataLocalNameKey
和cbadvertisementdataserviceuidskey
。当应用程序位于前台时,我能够恢复(通过NSLog)通过CBAdvertisementDataLocalNameKey传递的字符串。
但是,当应用程序位于后台时,CBAdvertisementDataLocalNameKey
不会被传递。BTLE UUID
仍然与RSSI
整数、CBAdvDataChannel
和CBAdvDataIsConnectable
一起传递。
在梳理了一个似乎永无止境的叫做苹果文档的圈子后,我发现没有办法在应用程序处于后台时传递一个小字符串。在我看来,如果没有办法传递数据,他们就不会允许后台的BTLE。
我的问题是,是否有人知道一种在后台使用BTLE传递数据的解决方法,或者一种允许我这样做的方法?任何帮助或提示都将不胜感激。
编辑:我应该清楚,我正在尝试的库被称为邻近https://github.com/Instrument/Vicinity它使用Core蓝牙
来绕过CorePlace
的背景限制。
iBeacons不是为在两个设备之间传输数据而设计的。BLE信标用于确定iDevice的当前位置。为了唯一标识它广播广告数据的信标,它包含一个uuid(32个十六进制数字)、一个主要(4个十六进制数字)和一个次要数字(4个十六进制数字)。就这些。如果要传输数据,必须使用任何其他服务。
您可能会从这个项目中得到一些好处,它允许设备通过蓝牙LE共享字符串数组(如用户ID),即使是在后台:SimpleShare
当应用程序在后台时,它仍然可以共享数据,因为它只在设备订阅广告蓝牙特性时发送数据,方法是更改特性的值以发送每条数据。您不需要名称密钥来传输信息。
希望有帮助!
最近,我买了一台iBeacon设备,打算创建Android应用程序,以便识别和使用它。我是一个在Android应用程序中使用蓝牙的新手,有很多事情我还不知道。在互联网和本论坛中,我找到了使用Radius Networks的Android IBeacon库的建议,但是,唉,现在它不再可用了: https://github.com/RadiusNetworks/android-ibeacon-serv
jd.readBLECharacteristicValue(Object object) 读取低功耗蓝牙设备的特征值的二进制数据值。注意:必须设备的特征值支持 read 才可以成功调用。 参数名 类型 默认值 必填 说明 deviceId string 是 蓝牙设备 id serviceId string 是 蓝牙特征值对应服务的 uuid characteristicId string 是 蓝牙
我得到一些信息,Android设备现在可以在蓝牙低能耗(BLE)外围模式下运行。应用程序可以使用此功能从Android L中的New向附近的设备广播它们的存在。 我已经全部配置好了(即蓝牙LE广告和广告数据的设置要在广告包中进行广告),当我开始发送时,我发现我无法监听传入的连接。谁能帮我? 我是一个基于l-开发者-预览-参考的API(Added Package:android.bluetooth.
我目前正在开发一个应用程序,将使用蓝牙低能耗。 我正在使用以下链接, http://developer.android.com/samples/BluetoothLeGatt/src/com.example.android.bluetoothlegatt/DeviceScanActivity.html 我无法扫描周围的BLE设备。 要扫描设备,
每当设备断开连接时,我确保对BluetoothGatt对象调用close()并将其设置为null。有什么见解吗? 编辑: 日志转储:对于这些日志,我将我的电话根目录化,并提高了/etc/bluetooth/bt_stack.conf中相关项的跟踪级别 成功连接-重新启动手机并安装应用程序后的第一次尝试。我能够连接,发现所有的服务/特性,并读/写。
是否可以自动连接到蓝牙低能耗(BLE)设备? Android文档表明[](https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#connectGatt(android.content.Context,boolean,android.bluetooth.BluetoothGattCallback)