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

android - Android BluetoothDevice connectGatt 不适用于 HTC M8 与 Android 6.0

我有一个 BLE 应用程序,在各种设备上拥有数百名满意的用户。我的大部分测试都是在 Nexus 设备上完成的,但一位用户报告了 HTC M8 的问题,所以我只买了一个。果然,由于某种原因connectGatt不起作用。它不会抛出任何异常,并且它返回的 BluetoothGatt 对象不为空。但是onConnectionStateChange在我传入的 BluetoothGattCallback 中永远不会被调用。

我发现一些报告说一些手机需要在 UI 线程上调用 connectGatt,所以我尝试了,但没有任何改变。

这是我得到的日志:

然后沉默...

有任何想法吗?谢谢!

0 投票
0 回答
186 浏览

android - Android BLE 在设备仍处于连接状态时收到 STATE_DISCONNECTED

我正在开发使用本机 BLE API 与 BLE 设备连接的 Android 应用程序。很多时候,当蓝牙设备仍处于连接状态并且可以从中读取数据时,我在 BluetoothGattCallback 中收到 STATE_DISCONNECTED。

此问题主要发生在 Android 5.0 及更高版本上,而不发生在早期版本(例如 4.4)上。在更早的版本中,当收到 STATE_DISCONNECTED 时,是真正的断开连接。

0 投票
0 回答
1871 浏览

android - 如何获取 BluetoothGattCharacteristic 值格式类型?

在为 IOT 开发应用程序时,尝试与 BLE 外围设备进行通信。使用 BLE Lollipop API。

每个BluetoothGattService 可以提供不同的BluetoothGattCharacteristic,每个代表一个特定的值,可以是Read、Write 或Notified。

价值以各种形式传达。但是没有办法知道特定特征的编码格式。

我认为这个 mKeySize 可能是一个解决方案,但是它既不能访问也不能在 BluetoothGattCharacteristic 中用于确定任何值输出。

我利用以下功能来检查所需的输出。

但它们仅在通信数据不复杂的某些情况下有用,例如

设备名称-> (getStringValue)

BatteryLevel ->(getIntValue(BluetoothGattCharacteristic.FORMAT_UINT8,0))

它们很容易成为诱饵,但 外围首选连接参数等特性却无处可寻。

我已经使用静态哈希图根据分配的编号检索规范名称,该编号似乎越来越大,以包括所有适应的 BLE 配置文件。

我想知道是否有更好的方法可以适当地获取 BluetoothGattCharacteristics 值?

另外,有不同的方式来写特征值和在某些地方特定值,我应该如何处理这种不确定性?

看看这个 android 应用程序BLEScanner,在很大程度上可以执行读写。

0 投票
0 回答
108 浏览

android - BLE API >= 21 处于深度睡眠状态

我在 Android 中有以下服务

  1. 问题:如果我使用 API < 21,它有时会在后台工作,但如果我在显示关闭时使用新的 API > 21 (MLEScanner),它就不起作用。为什么?这是一个错误吗?

  2. 问题:在我的 StartHandler 中,我想获取 3 秒的唤醒锁并释放。认为, StartHandler 重复。Wakelock 只在第一次工作。如何解决这个问题?有一个在 startlescan 上获取唤醒锁并在 stoplescan 中释放它的解决方案吗?

我不想使用 AlarmManager 为什么我需要延迟处理程序。谢谢

0 投票
0 回答
759 浏览

android - 睡眠模式下的 BLE 扫描

我正在使用 ble 开发一个 android 应用程序。我想每 10 秒安排一次扫描。它可以工作,但是当我的设备在后台时,它不起作用。

在 Oncreate() 我调用 StartHandler();

并从谷歌扫描LeDevice

  • 这是设备未处于睡眠状态时的工作。我曾尝试使用 AlarmManager,但重复警报的最短时间为 1 分钟。
  • TimerTask 在睡眠模式下不起作用。
  • 处理程序在睡眠模式下不起作用。

我想使用 WakeLock 但如果我在这里获得它:

并在 scanLeDevice 中释放我的唤醒锁

它只在第一次工作。在我读过的各种帖子中:“不可能多次获取唤醒锁并释放”。谢谢你。

0 投票
0 回答
290 浏览

android - Android BLE disconnect every 40 seconds and reconnects again after 20 seconds

I am implementing an Android app the connects to BLE device. Every time the device is connected to the mobile, it automatically disconnects after 40 seconds and then auto-reconnect after 20 seconds. This issue is very significant on Samsung Galaxy Tab 4 running Android 4.4.2.

Why this auto-disconnect happens? and how to fix it?

0 投票
3 回答
799 浏览

java - BluetoothLescan() not finding any devices

I've been having some problems getting Bluetooth to scan for devices with my Samsung Galaxy s5.

I'm on Android 6.0 and have set up permissions for my app to scan like so:

I assume this is working correctly because I got the pop-up asking for permissions which I accepted.

My scan function:

Now it stops and starts scanning correctly since Logcat is giving me logs. But it's just not finding any devices which is really weird because I'm sitting next to my laptop and a second phone both with Bluetooth enabled.

Here's my callback by the way, if anyone is interested:

Now as you can see the scan is not failing since Logcat is not giving me a scan failed log, but apperantly its also not finding any devices...

Logcat:

I've added the correct permissions to my Manifest:

I've tried almost every possibility and am starting to think the Bluetooth on my phone might be broken somehow, which is weird because I can manually detect and connect to devices in the Android settings.

0 投票
1 回答
219 浏览

android - startScan() 中的 Android BLE OutOfMemoryError

在使用 扫描 BLE 设备BluetoothLeScanner#startScan()时,OutOfMemoryError当我通过过滤器和ScanResult. 如果我只通过,错误不会出现ScanCallback

扫码:

错误:

0 投票
1 回答
624 浏览

android - 设备配对时,Android BLE 读取数据速率很慢

我正在开发一个每秒发送多个读取请求(约 10 个样本/秒)的 Android BLE 应用程序。我注意到当 ble 设备与手机配对(绑定)时,读取速度很慢(~ 1 个样本/秒),而当蓝色设备未配对时,读取率很好(~ 10 个样本/秒)(未绑定)。

这有什么理由吗?!!配对会影响数据速率吗?如果是这样,为什么?

0 投票
1 回答
1340 浏览

android - 如何使用 Android SDK 检测来自蓝牙设备的活动连接

我正在开发一个使用蓝牙连接的 Android 应用程序,我想将设备中的数据读取到应用程序中,但在读取数据之前需要知道我是否已连接到设备。

下面是我拥有的启动蓝牙设置的代码,我可以在其中配对设备。如何验证我已配对的设备是否与应用程序建立了活动连接并准备好发送数据?