Articles of bluetooth lowenergy

是否可以直接连接Android Wear设备和其他BLE设备,而无需与手机设备互动?

我正在寻找建议将两个BLE设备直接相互连接而不受电话设备的干扰。我知道在正常情况下,手表将连接移动设备的蓝牙,然后它将用于正常的数据传输过程。 在我的情况下,我希望这个东西直接在两个BLE之间。我有一个BLE设备是Android Watch(索尼,MOTO或任何Android Wear),另一个是BLE腰带或Strap。 现在在当前情况下,如果手表与手机配对,事情正常工作,Strap可以通过它传递数据,观看将接收这些数据。 但无论如何,我可以跳过移动设备配对部分,并将Android手表和表带直接相互连接。 您的智慧和想法非常受欢迎,感谢阅读!

Android 6.0 Marshmallow BLE连接问题

我遇到了Android 6.0和一些蓝牙低功耗设备的严重问题。 其中一个冲突的设备是这一个: DEVICE INFO: Name: Samsung Galaxy SV Model number: SM-G900V Android vers: 6.0.1 Patch level: May 1, 2016 Hard. vers: G900V.05 如果我根据连接和断开应用程序与BLE外围设备进行一些压力测试,则成功率几乎不会达到50%。 阅读Android的最新文档,他们建议在connectGatt方法的最后一个参数中指定传输模式,以强制执行BLE传输连接而不是BR / EDR: device.connectGatt(this, false, mGattCallback, BluetoothDevice.TRANSPORT_LE); 这种改进没有任何改变。 根据一些建议以及有关BLE连接问题的阅读,我发现了三星Galaxy S6的几个相关问题, 其中一个建议他们提出了一系列修复BLE连接问题的步骤。 关键的一个是清除蓝牙共享系统应用数据。 这样做,连接率几乎立即增加了100%。 但是,如果您等待并使用其他一些BLE应用程序并连接到其他外围设备,问题迟早会回来。 Google Play中有一些应用尝试修复这些BLE问题,他们基本上做的是: /system/bin/rm -r /data/misc/bluetoothd/* /system/bin/rm -r /data/misc/hcid/* 虽然这是一种清除蓝牙缓存的方法,但它要求设备根植,这对专业应用来说不是一个合理的解决方案。 我研究的私有Android API都没有帮助我解决这个问题,我发现的唯一类似的是强制执行服务发现缓存清理 ,这与问题无关。 使用BLE数据包嗅探器,我发现ADV_CONNECT_REQ甚至没有从设备发送到外设,过了一段时间Android堆栈触发了BluetoothGattCallback的STATE_DISCONNECTED事件。 我不知道为什么在某些6.0设备中出现此问题而在其他设备中没有,因为蓝牙共享缓存似乎是问题所在。 什么是那里存储的? 刚刚连接/配对的设备? 我是唯一一个遇到这个问题的人吗? […]

java中的蓝牙低功耗API

我正在使用Bluetooth Low energy。 在Java中是否有针对BLE的API或开源SDK? 我的目标是将我的电脑作为BLE外设运行。 我试过的是,只搜索了API一段时间,我发现了这一点 。 但不知道如何实施。 编辑:我在这里也有一些东西,我认为哪些用于创建特征和服务。 根据我的理解,window8中没有驱动程序,因为它具有内置支持。 但我很困惑要添加哪个库来运行此代码。

Android中的BLE数据包格式

根据BLE专利 ,BLE包中的数据大小为47字节。 但是,Android只暴露了20个字节的数据。 这是为什么? 在剩余的27个字节中传输什么? Android BLE数据包的确切格式是什么? Android BLE数据包中是否可以使用超过20个字节? 但不是在多个数据包中,如在如何在android中发送超过20个字节的数据? 。

蓝牙低功耗传感器模拟器

首先,我花了超过10个小时在Google上搜索解决方案…… 我正在为运动员制作一个应用程序,做跑步或骑自行车等运动。 它应该基于蓝牙LowEnergy。 我有一个真正的心跳传感器设备,有问题。 问题是,如果我想测试扫描或其他东西,传感器并不总是有效。 我的手机无法一直find传感器,它只能在30次尝试中使用一次。 所以我想问的是, 有没有办法模拟像心跳传感器这样的BLE传感器设备(例如通过PC)? 我有运行4.3及更高版本的设备(三星,LG和索尼智能手机),所以这应该不是问题。 此外,我已经成功连接到BLE-Heartbeat传感器,但是为了测试它真的很难使用真正的传感器设备(因为我无法一直find它的问题)。 希望我的问题是可以理解的,有人可以帮助我!

BTLE(蓝牙低功耗)开发套件 – 必须具有接近配置文件

任何人都可以指向一个经过试验和测试的蓝牙低功耗开发套件(板)吗? 我对邻近配置文件以及与智能手机(尤其是iPhone和Android设备 – 以及任何其他具有BTLE的设备)的兼容性特别感兴趣。 另外,你能告诉我哪些智能手机会支持邻近配置文件吗?

如何在尝试查找BLE设备时使用LeDeviceListAdapter?

我正在研究Android中的应用程序,并且我遵循Android 开发者页面中的Codesuggestion 当我输入代码时: private LeDeviceListAdapter mLeDeviceListAdapter; 它有错误消息: LeDeviceListAdapter无法解析为某种types 我该怎么办才能解决这个错误?

用Greenrobot Eventbus替换广播接收器以触发基于事件的function和从服务到活动的数据传输是否合适?

我已经实现了一个服务,我处理状态更改(连接,断开连接,onServiceDiscoverd,onCharacteristicChange等)并通过gatt服务器从另一个设备接收数据。 我的问题是,使用Greenrobot Eventbus替换服务和活动之间的广播接收器能否有效地处理事件?

Android BLE-如何在ScanCallback中调用onScanResult方法?

这是我第一次在Android项目中进行蓝牙低功耗。 我正在做的项目基本上是检测所有蓝牙LE设备并连接它们以发现它们的服务。 我想问一下是否有人知道如何在ScanCallback中调用onScanResult(),onBatchScanResults()和onScanFailed()方法? 首先,运行scanLeDevice()方法。 BluetoothLeScanner mLEScanner = mBluetoothAdapter.getBluetoothLeScanner(); ScanSettings settings = new ScanSettings.Builder() .setScanMode(ScanSettings.SCAN_MODE_LOW_POWER) .setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES) .build(); List filters = new ArrayList(); scanLeDevice(true); 在这种方法中,它将启动扫描。 所以我假设扫描结果是使用这些回调传递的。 @TargetApi(21) private void scanLeDevice(final boolean enable) { if (enable) { //stops scanning after a pre-defined scan period mHandler.postDelayed(new Runnable() { @Override public void run() { System.out.println(“BLE// mLEScanner.stopScan(mScanCallback) “); mLEScanner.stopScan(mScanCallback); } } […]

Android:蓝牙低功耗扫描程序接收空数据

这是广告商(通知data作为AdvertiseDatatypes传递) private void advertise() { BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); BluetoothLeAdvertiser advertiser = bluetoothAdapter.getBluetoothLeAdvertiser(); AdvertiseSettings settings = new AdvertiseSettings.Builder() .setAdvertiseMode(AdvertiseSettings.ADVERTISE_MODE_BALANCED) .setTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_MEDIUM) .setConnectable(false) .build(); ParcelUuid pUuid = new ParcelUuid(UUID.fromString(“cf2c82b6-6a06-403d-b7e6-13934e602664”)); AdvertiseData data = new AdvertiseData.Builder() //.setIncludeDeviceName(true) .addServiceUuid(pUuid) .addServiceData(pUuid, “123456”.getBytes(Charset.forName(“UTF-8”))) .build(); AdvertiseCallback advertiseCallback = new AdvertiseCallback() { @Override public void onStartSuccess(AdvertiseSettings settingsInEffect) { Log.i(tag, “Advertising onStartSuccess”); super.onStartSuccess(settingsInEffect); } @Override […]