轻松上手,从零开始:Android蓝牙开发实战教程全解析

2026-09-26 0 阅读

了解蓝牙技术

在开始Android蓝牙开发之前,我们先来了解一下蓝牙技术。蓝牙(Bluetooth)是一种无线技术标准,用于短距离数据交换。它允许电子设备之间进行通信,如手机、耳机、鼠标等。蓝牙技术具有低功耗、低成本、短距离传输等特点,因此在移动设备中得到了广泛应用。

开发环境搭建

1. 安装Android Studio

首先,您需要在电脑上安装Android Studio,这是Android开发的官方IDE。下载并安装完成后,打开Android Studio,创建一个新的项目。

2. 配置蓝牙模块

在创建项目时,选择“Empty Activity”模板。在项目结构中,找到“app/src/main/res/values/strings.xml”文件,添加以下代码:

<string name="bluetooth_not_supported">Your device does not support Bluetooth.</string>

这行代码用于检测设备是否支持蓝牙。

蓝牙开发基础

1. 蓝牙设备扫描

在Android中,可以使用BluetoothAdapter类来扫描附近的蓝牙设备。以下是一个简单的示例:

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter == null) {
    Toast.makeText(this, "Bluetooth not supported", Toast.LENGTH_SHORT).show();
} else {
    if (!bluetoothAdapter.isEnabled()) {
        Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
    } else {
        scanLeDevice(true);
    }
}

private void scanLeDevice(boolean enable) {
    if (enable) {
        mBluetoothLeScanner.startScan(mScanCallback);
    } else {
        mBluetoothLeScanner.stopScan();
    }
}

2. 连接蓝牙设备

找到目标设备后,可以使用BluetoothDevice类连接到它。以下是一个简单的示例:

BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(deviceAddress);
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(UUID.fromString(BluetoothSerialService.UUID));
try {
    socket.connect();
    Toast.makeText(this, "Connected to device", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
    e.printStackTrace();
}

3. 传输数据

连接到设备后,可以使用BluetoothSocket类发送和接收数据。以下是一个简单的示例:

OutputStream outputStream = socket.getOutputStream();
InputStream inputStream = socket.getInputStream();

// 发送数据
byte[] data = "Hello, Bluetooth!".getBytes();
outputStream.write(data);

// 接收数据
byte[] buffer = new byte[1024];
int bytesReceived = inputStream.read(buffer);
String receivedData = new String(buffer, 0, bytesReceived);
Toast.makeText(this, "Received: " + receivedData, Toast.LENGTH_SHORT).show();

蓝牙开发进阶

1. 蓝牙低功耗技术

蓝牙低功耗(BLE)是一种专为低功耗设备设计的蓝牙技术。在Android中,可以使用BluetoothGatt类进行BLE通信。以下是一个简单的示例:

BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter();
BluetoothDevice device = bluetoothAdapter.getRemoteDevice(deviceAddress);

BluetoothGatt gatt = device.connectGatt(this, false, gattCallback);

private final BluetoothGattCallback gattCallback = new BluetoothGattCallback() {
    @Override
    public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
        if (newState == BluetoothProfile.STATE_CONNECTED) {
            // 连接成功,开始扫描服务
            gatt.discoverServices();
        }
    }

    @Override
    public void onServicesDiscovered(BluetoothGatt gatt, int status) {
        if (status == BluetoothGatt.GATT_SUCCESS) {
            // 找到服务后,获取特征值
            BluetoothGattService service = gatt.getService(UUID.fromString(serviceUUID));
            BluetoothGattCharacteristic characteristic = service.getCharacteristic(UUID.fromString(characteristicUUID));
            gatt.readCharacteristic(characteristic);
        }
    }

    @Override
    public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
        if (status == BluetoothGatt.GATT_SUCCESS) {
            // 读取特征值数据
            byte[] value = characteristic.getValue();
            String receivedData = new String(value);
            Toast.makeText(this, "Received: " + receivedData, Toast.LENGTH_SHORT).show();
        }
    }
};

2. 蓝牙安全

在蓝牙通信过程中,安全是一个非常重要的考虑因素。Android提供了多种安全机制,如加密、认证等。您可以根据实际需求选择合适的安全方案。

总结

本文从零开始,详细介绍了Android蓝牙开发的实战教程。通过学习本文,您应该能够掌握蓝牙开发的基本知识和技能。在实际开发过程中,请根据项目需求选择合适的技术方案,并注意安全性和性能优化。祝您在蓝牙开发领域取得成功!

分享到: