最近,我买了一台iBeacon设备,打算创建Android应用程序,以便识别和使用它。我是一个在Android应用程序中使用蓝牙的新手,有很多事情我还不知道。在互联网和本论坛中,我找到了使用Radius Networks的Android IBeacon库的建议,但是,唉,现在它不再可用了:
https://github.com/RadiusNetworks/android-ibeacon-service
因此,我开始使用Android开发者指南中关于蓝牙低能耗的代码:https://developer.android.com/guide/topics/connectivity/bluetooth-le.html
使用此代码,我可以检测设备,甚至连接到它,但我不知道如何获取接近度Uuid以及主要值和次要值:应用程序显示了大量来自服务和设备特性的Uuid,但没有一个是设备的接近度Uuid。
任何人都可以告诉我如何使用Android Bluetooth LE API获取这些数据,或者帮助我获取Radius Networks针对Eclipse的Android iBeacon库和使用指南,或者显示如何使用它的示例?
谢谢你。
以下两个是完全不同的东西,尽管它们都被称为UUID。
关于“关贸总协定服务的UUID”,您应该了解:
你应该知道什么"接近UUID的iBeacon":
因此,要获得iBeacon信息(接近度UUID、major、minor、power),您必须做如下操作。
如果您使用nv蓝牙,您可以从广告数据包中提取iBeacon,如下所示:
public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord)
{
// Parse the payload of the advertising packet.
List<ADStructure> structures =
ADPayloadParser.getInstance().parse(scanRecord);
// For each AD structure contained in the advertising packet.
for (ADStructure structure : structures)
{
if (structure instanceof IBeacon)
{
// iBeacon was found.
IBeacon iBeacon = (IBeacon)structure;
// Proximity UUID, major number, minor number and power.
UUID uuid = iBeacon.getUUID();
int major = iBeacon.getMajor();
int minor = iBeacon.getMinor();
int power = iBeacon.getPower();
........
详见“iBeacon作为一种广告结构”。
编辑/更新:
它会变得更好。。阿尔特比肯
检查备降信标规格
AltBeacon为信标传输的内容以及这些数据如何被Android、视窗和其他设备使用带来了更大的透明度。
RadiusNetworks提供的Android iBeacon库不再可用的原因:
供应商已经开始遵守苹果公司制定的指导方针,因此,他们被迫“清除”其产品中Android设备与iBeacon协议检测之间的任何引用或连接。
阅读更多:苹果公司打击Android系统的iBeacon
我认为最好的选择似乎是来自一直在使用它的人,已经有了它,可以和你分享它,因为从以前的提交中,你可能不会得到每一个组件库、样本,服务
另外:Android iBeacon Lib RadiusNetworks首席执行官的说明
现在,说到接近UUID和主要UUID和次要UUID:
我还没有找到一种直接的方法来获取它,就参数而言,尽管您可以使用iBeacon技术查看android和SensorTag中信标的读取主要UUID、次要UUID。在后一种情况下,iBeacon服务后会显示主要、次要、uuid,但TI仪器可能是限制因素。
在android中,作为标识符。。您可以通过设备恢复
设备地址。每个
蓝牙设备的信标/的getAddress()
。
每当设备断开连接时,我确保对BluetoothGatt对象调用close()并将其设置为null。有什么见解吗? 编辑: 日志转储:对于这些日志,我将我的电话根目录化,并提高了/etc/bluetooth/bt_stack.conf中相关项的跟踪级别 成功连接-重新启动手机并安装应用程序后的第一次尝试。我能够连接,发现所有的服务/特性,并读/写。
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设备。 要扫描设备,
我目前正在编写一个应用程序,使用在2个或更多的手机之间传递小字符串的数据。 当前在前台,我正在传递:和。当应用程序位于前台时,我能够恢复(通过NSLog)通过CBAdvertisementDataLocalNameKey传递的字符串。 但是,当应用程序位于后台时,不会被传递。仍然与整数、和一起传递。 在梳理了一个似乎永无止境的叫做苹果文档的圈子后,我发现没有办法在应用程序处于后台时传递一个小字符串
问题内容: 我正在编写一个Android BLE应用程序,并且试图获得某个特性的权限。我已经设法通过character.getProperties()获取特征属性,并且它返回非零值,但是,即使我确定特征具有PERMISSION_WRITE_ENCRYPTED_MITM(0x00000040,当我使用getPermission()方法时,它也会返回0。 )。 这是一个代码片段 难道我做错了什么?是否