当前位置:首页 > Java

java如何获取蓝牙

2026-03-20 20:15:33Java

获取蓝牙设备的基本步骤

在Java中获取蓝牙设备通常涉及使用Android的蓝牙API。以下是基本操作流程:

启用蓝牙适配器 通过BluetoothAdapter检查设备是否支持蓝牙,并启用它。需要检查BluetoothAdapter.getDefaultAdapter()是否为null。

请求蓝牙权限 在AndroidManifest.xml中添加必要权限:

java如何获取蓝牙

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

发现蓝牙设备

启动设备发现 调用startDiscovery()方法开始扫描附近的蓝牙设备。需要注册BroadcastReceiver来接收发现的设备信息。

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter != null && !bluetoothAdapter.isDiscovering()) {
    bluetoothAdapter.startDiscovery();
}

处理发现结果 通过广播接收器获取发现的设备信息:

java如何获取蓝牙

private final BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (BluetoothDevice.ACTION_FOUND.equals(action)) {
            BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
            String deviceName = device.getName();
            String deviceAddress = device.getAddress();
        }
    }
};

配对和连接设备

配对蓝牙设备 使用createBond()方法发起配对请求:

BluetoothDevice device = ...; // 获取目标设备
if (device.getBondState() != BluetoothDevice.BOND_BONDED) {
    device.createBond();
}

建立蓝牙连接 对于客户端连接,使用BluetoothSocket

BluetoothSocket socket = device.createRfcommSocketToServiceRecord(MY_UUID);
socket.connect();
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();

处理运行时权限

对于Android 6.0及以上版本,需要动态请求位置权限:

if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) 
    != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(this, 
        new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 
        REQUEST_LOCATION_PERMISSION);
}

最佳实践建议

  • 扫描完成后及时调用cancelDiscovery()以节省电量
  • 在Android 12及以上版本需要额外声明BLUETOOTH_SCANBLUETOOTH_CONNECT权限
  • 考虑使用BluetoothLeScanner进行低功耗蓝牙(BLE)设备扫描
  • 处理各种蓝牙状态变化和异常情况

标签: 蓝牙java
分享给朋友:

相关文章

如何安装java

如何安装java

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK下载页面,选择适合操作系统的版本(Windows、macOS或Linux)。推荐下载最新的长期支持(LTS)版本,如Java…

如何编写java程序

如何编写java程序

安装开发环境 下载并安装JDK(Java Development Kit),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME和PATH正确设置。 选…

如何学好java

如何学好java

理解基础概念 掌握Java的核心概念是学习的基础。包括数据类型、变量、运算符、控制流(如循环和条件语句)、数组等。理解面向对象编程(OOP)的四大特性:封装、继承、多态和抽象。 实践编程练习 通过实…

java如何创建项目

java如何创建项目

使用IDE创建Java项目(以IntelliJ IDEA为例) 打开IntelliJ IDEA,选择“New Project”。 在左侧菜单中选择“Java”,确保已配置JDK(若无需手动添加)。 勾…

java如何生成随机数

java如何生成随机数

生成随机数的方法 在Java中生成随机数可以通过多种方式实现,以下是几种常见的方法: 使用Math.random()方法 Math.random()方法返回一个double类型的伪随机数,范围在[0…

java如何产生随机数

java如何产生随机数

使用 Math.random() 方法 Math.random() 生成一个范围在 [0.0, 1.0) 的伪随机 double 值。通过缩放和偏移可以生成指定范围的随机数。 double ra…