蓝牙技术简介
蓝牙(Bluetooth)是一种无线技术标准,旨在实现固定和移动设备之间的短距离通信。它广泛应用于手机、耳机、鼠标、键盘等设备。Android系统作为全球最受欢迎的移动操作系统之一,自然也支持蓝牙功能。本教程将带你一步步入门Android蓝牙开发。
开发环境准备
在开始开发之前,请确保以下环境已准备好:
- Android Studio:Android官方集成开发环境,支持Android应用开发。
- Android SDK:包含Android操作系统、工具和API。
- 虚拟设备或真实设备:用于测试和运行蓝牙应用。
创建新项目
- 打开Android Studio,点击“Start a new Android Studio project”。
- 选择“Empty Activity”模板,点击“Next”。
- 输入项目名称、保存位置等信息,点击“Finish”。
添加蓝牙权限
在AndroidManifest.xml文件中添加以下权限:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
配置蓝牙扫描
- 在
MainActivity.java文件中,创建一个BluetoothAdapter对象:
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
- 创建一个
BluetoothDevice对象数组,用于存储扫描到的设备:
ArrayList<BluetoothDevice> devices = new ArrayList<>();
- 创建一个
BluetoothAdapter的BroadcastReceiver,用于接收蓝牙扫描结果:
private final BroadcastReceiver bluetoothReceiver = 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);
devices.add(device);
// 更新UI,显示扫描到的设备
}
}
};
- 注册
BroadcastReceiver:
registerReceiver(bluetoothReceiver, new IntentFilter(BluetoothDevice.ACTION_FOUND));
- 开始扫描蓝牙设备:
if (bluetoothAdapter != null) {
if (!bluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
} else {
bluetoothAdapter.startDiscovery();
}
}
连接蓝牙设备
- 在扫描结果中,选择要连接的设备,获取其
BluetoothDevice对象。 - 创建一个
BluetoothSocket对象,用于连接设备:
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"));
- 连接设备:
socket.connect();
- 创建一个
InputStream和OutputStream,用于传输数据:
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
传输数据
- 发送数据:
byte[] data = "Hello, Bluetooth!".getBytes();
outputStream.write(data);
- 接收数据:
byte[] buffer = new byte[1024];
int bytes = inputStream.read(buffer);
String receivedData = new String(buffer, 0, bytes);
断开连接
- 关闭
InputStream和OutputStream:
inputStream.close();
outputStream.close();
- 关闭
BluetoothSocket:
socket.close();
总结
通过以上步骤,你已经成功入门Android蓝牙开发。在实际开发过程中,你可能需要根据具体需求调整代码。希望本教程能帮助你更好地了解Android蓝牙开发,祝你学习愉快!