问题标签 [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.
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:实际上我需要一个在后台运行的服务......
android - android - 在 API 级别 22 中不推荐使用 stopLeScan() 和 startLeScan() - 如何用 stopScan() 和 startScan() 替换它?
我看到在 Android 5.1.1 中已弃用 stopLeScan() 和 startLeScan()。我在替换我的 stopLeScan() 和 startLeScan() 方法时遇到问题。这是我的以下代码:
这些是我遇到问题的行:
如何用 stopScan() 和 startScan() 方法替换这些 stopLeScan() 和 startLeScan() 方法?任何建议都会很棒!谢谢。
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,反之亦然。
android - 服务和三个activity,启动服务是正确的方式吗?
我开发了一个由三个活动和一个服务组成的 Ble Android 应用程序: - 第一个扫描设备 - 第二个连接到设备 - 第三个在屏幕上写入通信结果 - 服务内部有一些功能连接到设备,检查连接,自动重新连接等,这个服务是一个启动的服务并绑定到每个活动(第一个应用程序启动这个服务)
在一些教程中,我看到在这种情况下使用的是未启动的服务,而是绑定的服务。但我想知道,当我们在两个活动之间切换时,如果服务没有“启动”一个,是否存在可能从系统中关闭的风险,因为在活动之间的切换中服务是什么都没有绑定的?
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 检测器)的免费应用程序可以检测到此芯片组。
任何帮助将不胜感激。
谢谢你
android - BLE - 编写命令后如何获得响应?
我有一个带有“特定协议”的 BLE 设备。
我需要发送一个命令来检索心率测量值(使用通知)。
我的问题是:编写“发送命令”后如何获得响应?
我的步骤:
1)检查设备是否支持BLE
2) 启用蓝牙
3) 开始扫描设备
4)如果我找到我的设备(智能手表)然后我连接到它
5)一旦我连接,我开始“发现服务”
6)onServicesDiscovered()
我必须做什么?
我必须在通话之前写(发送命令),setCharacteristicNotification()
反之亦然?
java - 停止 BLE 扫描在 runnable 中开始
我正在开发一个应用程序,当用户显示应用程序的某个片段时,我将在其中连续搜索范围内的可用信标。为了做到这一点,我创建了一个Runnable
在其中调用开始扫描的方法。扫描结果Handler
使用Message
. 我遇到的问题是我不知道如何调用可以停止扫描的方法。我的代码:
我如何启动和停止可运行文件:
问题是我怎样才能不仅停止Runnable,而且在方法中调用mBleScan.stopBleScan()
方法onPause()
BleFragment
添加这样的方法是否可以:
到BleScanRunnable
并这样调用它onPause()
:
android - 如何为所有连接的设备同时执行 BluetoothGatt 读写请求?
我想连接多个 ble 设备并并行进行读写操作?
android - 保存可发现的蓝牙 LE 设备列表?
如何在 Android 中保存可发现的 BLE 设备列表?
按照我对startDeviceScan()方法的实现:
这是设备扫描回调:
另一个问题。如何等待扫描完成?