问题标签 [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 投票
2 回答
3560 浏览

android - Which targetSDK to use for BLE?

I’m building an Android app which should run on every device with Bluetooth Low Energy, which means a minSDK of 18. I’m not sure as to which targetSDK I should use however. I read online that it is good practice to always use the latest version for this (API 22). Is this the case, or should I build my application with every targetSDK that I support, i.e. build with the SDK 18 for applications that run API 18, build with SDK 19 for devices with API 19, …?

I’m confused since to start a BLE discovery I can use either startScan() or startLeScan(). The Android documentation tells me: "startLeScan() was deprecated in API level 21, use startScan() instead". I’m unsure what impact this has on which targetSDK I should use to compile my app with. Will devices running API 18 will be able to run my app if I compile with SDK 22 and use startScan(), and will devices running API 22 be able to run my app if I compile with API 18 and use startLeScan()? Or should I really just build my application with every targetSDK that I support like mentioned above?

0 投票
1 回答
8914 浏览

android - Android BLE readCharacteristic 失败

当我连接到 BLE 设备时,我正在尝试读取它的初始状态。这是我必须尝试这样做的代码:

但是每次读取都失败!稍后,如果我基于 UI 交互启动读取,它读取就好了!关于这里发生了什么的任何想法?

0 投票
1 回答
3136 浏览

android - bluetoothGatt writeCharacteristic 返回 false

我创建了一个具有 WRITE_TYPE_NO_RESPONSE 特性的外围设备。在另一个应用程序中,我在特性上写了,但我偶尔会遇到带有棒棒糖 5.1.1 的三星 Galaxy nexus i9250 的问题:有时 BluetoothGatt.writeCharacteristic 函数返回 false 并且写入未完成。

会是什么呢 ?可能是 cyanogenmod 的错吗?我可以通过什么方式修补这个问题?

在外围设备上:

编辑:这个问题只发生在 android >= 5.0.2

从来没有在 kitkat 和 android 5.0.1 上发生过,是偶然的吗?

0 投票
2 回答
229 浏览

android - Android:自动连接到心率传感器 ble

我开发了一个连接到 Polar 心脏监测器的应用程序。我使用以下方法连接到它: device.connectGatt(this, false, mGattCallback); 如果我失去了连接,我会重新扫描设备并重新连接到同一个监听器。

我想知道我是否可以通过 using 获得这种行为:

device.connectGatt(this, true, mGattCallback);

无需重新扫描设备。

哪个是更好的方法?

0 投票
1 回答
459 浏览

android - 如何使用信号量进行正确的 android ble 通信?

我对来自我的 Android 应用程序和一个外围设备的 ble 通信有一个疑问。该外围设备通过通知某个特性“A”发送数据,我可以在另一个特定特性“B”上写入数据。为此,我这样做:

我使用了信号量,因为如果我在调用 ondescriptorwrite 之前进行写入,则写入失败,但我想知道这样我是否会丢失一些通知。

信号量是否以正确的方式使用?或者它会给我带来一些问题?

0 投票
1 回答
1963 浏览

android - Android BluetoothGatt 未收到特征通知 BluetoothGatt#writeDescriptor(desc) 返回 false

我正在开发一个需要与蓝牙 LE 设备通信的应用程序。

这是我用来设置 CharacteristicNotification 的代码

在此代码中“mBluetoothGatt.writeDescriptor(desc);” 有时返回 false 这就是我无法从 BluetoothGatt 获得任何通知的原因。我不知道如何解决这个问题。

这个问题只发生在 LG G2 的 OS 5.02 之前,它有 4.4 问题不是那么频繁,但在更新之后,除了第一次之外,我每次都得到“假”。如果我们在连接后第一次尝试设置通知,它会起作用,一旦我断开连接并尝试连接,它总是会返回 False。我需要杀死并重新启动应用程序才能再次工作。有谁知道为什么这不起作用?提前致谢

0 投票
1 回答
4139 浏览

android - 蓝牙 GATT onConnectionState Change 对 Lollipop 不起作用

我目前有一种方法可以写入 BLE 设备以发出哔哔声。我的蓝牙回调如下:

此代码在运行 Kitkat 及以下的设备上完美运行。但是在运行 Lollipop 的设备上,此代码在第一个实例中运行良好。但是从下一个实例开始,无论我是断开连接还是关闭连接并重试,它都不起作用。它在 onConnectionStateChange 方法中不断给我一个状态码 257。据我所知,kitkat 和 Lollipop 设备的蓝牙 GATT 方法是相同的。

令我惊讶的是,当我使用旧的 BLE API 即 startLeScan(例如 - mBluetoothAdapter.startLeScan(mLeScanCallback);)时,此代码在 Lollipop 设备上运行良好。仅当我使用新的 BLE API 即 BluetoothLeScanner ( ) 时才会出现此问题 scanner.startScan(filters, settings, new scancallback());。使用旧 BLE API 的 Lollipop 设备的扫描速度非常慢,因此我无法使用它。我只是不明白如何解决这个问题。有没有人遇到同样的问题并找到了解决方案?任何帮助将不胜感激。

0 投票
1 回答
372 浏览

android - 如何在多个 Textview 中显示来自 BLE 设备的数据?

我有一个湿度传感器,它在固定时间间隔后将最后十个值作为单个数组广播。我想以十Textview的形式显示这些值。

我当前的代码在一个中显示所有值,TextView我该如何修改它?怎么可能?

0 投票
3 回答
1133 浏览

android-bluetooth - 如何将音频 HEX 文件发送到 Ble 设备

我有一个带有 android 的工作 ble 设备。它通过Android应用程序很好地发送和接收数据。但现在我的问题是我想将一些音频 HEX 文件发送到我的 BLE 设备。并且它大于 20 个字节。我怎样才能将这样的数据发送到 BLE 设备。??

0 投票
2 回答
697 浏览

android-5.0-lollipop - Android BLE 特性读/写在 Lollipop 中失败,但在 Kitkat 中工作

根据标题,我能够在下面的棒棒糖中成功地读取/写入数据,但在棒棒糖中我多次读取/写入失败。

这就是我读/写数据的方式:

在棒棒糖设备中,我多次将 isRead 视为错误,但它在非棒棒糖操作系统上完美运行。

有没有人遇到过这样的问题?答案将不胜感激。谢谢。