问题标签 [android-ble]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
566 浏览

java - Android BLE - 根据 RSSI 值的振铃、振动和写入特性

我是 Android 和 Java 的新手,我还不想放弃。我正在为这个项目使用适用于 BLE 的 Android Studio 示例。 https://github.com/googlesamples/android-BluetoothLeGatt

如果有任何与我的目的相关的示例代码,以及任何建议,请务必指出正确的方向。:)

当 RSSI 值达到某个阈值时,我想让手机响铃、振动并写入自定义特征。它应该保持振铃、振动,除非我们按下 StopRing 或 StopVibrate 按钮。它应该写入特征(如果超出阈值),以便另一个 BLE 设备可以读取特征并通过发出蜂鸣器的声音来响应。

1)我阅读了一些示例代码,并了解了如何在单击按钮时使手机响铃、振动和书写(或停止这样做)。但是,现在我有一个计时器,可以帮助每隔 10 毫秒读取一次 RSSI 值,并且下面的 updateRssi 函数调用基本上会更新手机应用程序上显示的 RSSI 值。我可以在更新 RSSI 中添加振动或响铃函数调用(如果 RSSI < -threshold 条件),但它只会响铃/振动,然后在完成铃声/振动模式之前停止。

我们从 GATT 获取 RSSI 值是否满足条件后,如何继续检查,然后换成另一种无限响铃和振动的方法?我可以在 if (RSSI < -threshold) 条件中创建一个意图吗?然后让应该执行上述操作的方法接收意图?(下面是 DeviceControlActivity 中的消息处理程序片段)

2) 下面,我决定每次从 Gatt 服务器获取 RSSI 值时是否写入自定义特征。每 10 毫秒读取一次 RSSI 值,因此只要 RSSI 值保持在阈值以上,就可能会调用 writecharacteristic 函数。在论坛上搜索,听说Android BLE栈不是很稳定,特别是连续特征写入。在我的情况下可以吗?

非常感谢!

编辑:我决定我可以停止计时器(停止读取新的 RSSI 并调用处理程序),然后继续让手机振动和响铃(直到按下布局上的按钮)。

EDIT2:实际上我需要一个在后台运行的服务......

0 投票
1 回答
8397 浏览

android - android - 在 API 级别 22 中不推荐使用 stopLeScan() 和 startLeScan() - 如何用 stopScan() 和 startScan() 替换它?

我看到在 Android 5.1.1 中已弃用 stopLeScan() 和 startLeScan()。我在替换我的 stopLeScan() 和 startLeScan() 方法时遇到问题。这是我的以下代码:

这些是我遇到问题的行:

如何用 stopScan() 和 startScan() 方法替换这些 stopLeScan() 和 startLeScan() 方法?任何建议都会很棒!谢谢。

0 投票
1 回答
13139 浏览

android - 使用 BLE - 读取 GATT 特征

我正在尝试从蓝牙 LE 设备(心率手环)读取 GATT 特征值。它的规格是:

服务

特征

我还没有弄清楚如何“阅读”规范并将它们“翻译”成代码。

我需要在我的应用程序上显示设备检测到的心跳。读取 GATT 值的方法是什么?一个代码示例将不胜感激:)

按照我的实际源代码。


设置蓝牙连接


发现 BLE 设备并连接心率监测器

0 投票
1 回答
2032 浏览

ios-bluetooth - 我想知道如何获得将IOS应用程序连接到android中的BLE设备所需的BLE设备的UUID,反之亦然?

实际上,我是 BLE 和 Android 的新手,如果我正在搜索可用设备,那么我会得到一些地址,例如“8A:WS:YV:23:D7”,如果我正在搜索IOS中的同一设备,然后它给出一些UUID,例如“212C543B-9728-197D-B4F4-F4F74CABC963”,就像这样,两者都用于将我们的移动应用程序连接到BLE设备,所以我的问题是我想创建一个数据库,将在双方使用,我想将数据库存储到服务器中,当我通过 Android 上传它时,它会保存地址,如果我在 IOS 中从服务器打开相同的配置文件,所以它得到了地址而不是 UUID,所以我的设备根本无法连接它。所以我想知道如何获得将IOS应用程序连接到android中的BLE设备所需的BLE设备的UUID,反之亦然。

0 投票
1 回答
137 浏览

android - 服务和三个activity,启动服务是正确的方式吗?

我开发了一个由三个活动和一个服务组成的 Ble Android 应用程序: - 第一个扫描设备 - 第二个连接到设备 - 第三个在屏幕上写入通信结果 - 服务内部有一些功能连接到设备,检查连接,自动重新连接等,这个服务是一个启动的服务并绑定到每个活动(第一个应用程序启动这个服务)

在一些教程中,我看到在这种情况下使用的是未启动的服务,而是绑定的服务。但我想知道,当我们在两个活动之间切换时,如果服务没有“启动”一个,是否存在可能从系统中关闭的风险,因为在活动之间的切换中服务是什么都没有绑定的?

0 投票
1 回答
156 浏览

altbeacon - Android Beacon Library 版本 -- 2.3.5 未检测到 TI 传感器标签

移动设备型号和操作系统版本——Nexus 5,API 23

Android Beacon 库版本 -- 2.3.5

我有一个来自 TI(Texas Instruments)的传感器标签,固件是 TI 提供的。所有信标都使用相同的 2541 芯片组。我尝试使用这个库来检测它,它位于 didRangeBeaconsInRegion() 回调中,但它会将 beacons.size 打印为零大小。

现在,我需要做哪些更改才能检测到此芯片组?

只是为了获取更多信息,Playstore 中有名为(iBeacon 检测器)的免费应用程序可以检测到此芯片组。

任何帮助将不胜感激。

谢谢你

0 投票
0 回答
462 浏览

android - BLE - 编写命令后如何获得响应?

我有一个带有“特定协议”的 BLE 设备。

我需要发送一个命令来检索心率测量值(使用通知)。

我的问题是:编写“发送命令”后如何获得响应?

我的步骤:

1)检查设备是否支持BLE

2) 启用蓝牙

3) 开始扫描设备

4)如果我找到我的设备(智能手表)然后我连接到它

5)一旦我连接,我开始“发现服务”

6)onServicesDiscovered()我必须做什么?

我必须在通话之前写(发送命令),setCharacteristicNotification()反之亦然?

0 投票
1 回答
182 浏览

java - 停止 BLE 扫描在 runnable 中开始

我正在开发一个应用程序,当用户显示应用程序的某个片段时,我将在其中连续搜索范围内的可用信标。为了做到这一点,我创建了一个Runnable在其中调用开始扫描的方法。扫描结果Handler使用Message. 我遇到的问题是我不知道如何调用可以停止扫描的方法。我的代码:

我如何启动和停止可运行文件:

问题是我怎样才能不仅停止Runnable,而且在方法中调用mBleScan.stopBleScan()方法onPause()BleFragment

添加这样的方法是否可以:

BleScanRunnable并这样调用它onPause()

0 投票
4 回答
1309 浏览

android - 如何为所有连接的设备同时执行 BluetoothGatt 读写请求?

我想连接多个 ble 设备并并行进行读写操作?

0 投票
1 回答
116 浏览

android - 保存可发现的蓝牙 LE 设备列表?

如何在 Android 中保存可发现的 BLE 设备列表?

按照我对startDeviceScan()方法的实现:

这是设备扫描回调

另一个问题。如何等待扫描完成?