gpt4 book ai didi

java - 使用 Java 的蓝牙设备的电池电量

转载 作者:行者123 更新时间:2023-12-03 11:04:14 29 4
gpt4 key购买 nike

我正在尝试构建一个简单的 java 程序,它显示 中连接的蓝牙设备的电池状态 window .请参见下面的示例图像。
enter image description here
首先我从 BlueCove 开始并且实现了BlueCove只提供了地址、简单名称等基本信息。经过进一步调查,发现读取特征的唯一方法是通过BLE GATT服务。
于是开始写基于tinyb的测试代码这是在 GitHub 中找到的 Bluetooth-manager项目并导致异常
到目前为止,我已经尝试过这段代码

import org.sputnikdev.bluetooth.URL;
import org.sputnikdev.bluetooth.manager.CharacteristicGovernor;
import org.sputnikdev.bluetooth.manager.impl.BluetoothManagerBuilder;

import java.io.IOException;
import java.util.concurrent.ExecutionException;

public class B2 {

public static void main(String[] args) throws IOException, ExecutionException, InterruptedException {

new BluetoothManagerBuilder()
.withTinyBTransport(true)
.withBlueGigaTransport("^*.$")
.build()
.getCharacteristicGovernor(new URL("/XX:XX:XX:XX:XX:XX/F7:EC:62:B9:CF:1F/"
+ "0000180f-0000-1000-8000-00805f9b34fb/00002a19-0000-1000-8000-00805f9b34fb"), true)
.whenReady(CharacteristicGovernor::read)
.thenAccept(data -> {
System.out.println("Battery level: " + data[0]);
}).get();

}
}
Maven
<dependencies>
<dependency>
<groupId>org.sputnikdev</groupId>
<artifactId>bluetooth-manager</artifactId>
<version>1.5.3</version>
</dependency>
<dependency>
<groupId>org.sputnikdev</groupId>
<artifactId>bluetooth-manager-tinyb</artifactId>
<version>1.3.3</version>
</dependency>
</dependencies>
异常(exception)
Exception in thread "main" java.lang.IllegalStateException: java.lang.IllegalStateException: Native libraries for TinyB transport could not be loaded.
at org.sputnikdev.bluetooth.manager.impl.BluetoothManagerBuilder.loadTinyBTransport(BluetoothManagerBuilder.java:225)
at org.sputnikdev.bluetooth.manager.impl.BluetoothManagerBuilder.build(BluetoothManagerBuilder.java:190)
at B2.main(B2.java:15)
Caused by: java.lang.IllegalStateException: Native libraries for TinyB transport could not be loaded.
at org.sputnikdev.bluetooth.manager.impl.BluetoothManagerBuilder.loadTinyBTransport(BluetoothManagerBuilder.java:218)
... 2 more
我的问题->
有没有其他方法可以使用 JAVA 获取蓝牙设备的电池电量?

笔记 :
  • 在 android 和 python 中有很多可用的示例,但不适用于 Java/windows
  • 还发现未回答的类似 C# 问题
    Get Bluetooth Device Battery Level
  • 最佳答案

    有两种类型的适配器,它们各有优缺点。

  • 通用适配器(由 TinyB 传输支持)。这些是最常见的适配器,很可能您已经拥有或嵌入到您的 PC/笔记本电脑中。然而,有一个主要的缺点——它只适用于 Linux 基于环境,更准确地说,它需要 Bluez 安装在您的操作系统中的软件。
  • BlueGiga 串行适配器(受 BlueGiga Transport 支持)。这是一种非常罕见的特殊类型的蓝牙适配器。最常见的一种是 Bluegiga BLED112 .选择 BlueGiga 适配器的主要标准是它必须支持 BGAPI .

  • 下表显示了每种适配器类型支持的一些主要功能。
    major features supported by each adapter type
    笔记:
    使用 蓝牙管理器tinyb , 您必须将 Bluez 软件升级到 5.43+。这是由于 Bluez 5.43v 中 DBus API 的一些更改。 (首选Bluez 5.44v、Bluez 5.45v、Bluez 5.46v、Bluez 5.47v)
    最后说明: TinyB transport 不支持 Windows 操作系统.对于 Windows 操作系统,您需要获取 BlueGiga适配器。您只能在 Linux 环境中使用英特尔无线适配器。

    关于java - 使用 Java 的蓝牙设备的电池电量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65492179/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com