📅  最后修改于: 2023-12-03 14:39:10.605000             🧑  作者: Mango
在 Android 开发中,使用蓝牙连接其他设备是一项非常常见的任务,而与外部设备进行连接之前,必须先建立配对关系。具体的示例代码如下:
在 AndroidManifest.xml 文件中添加以下权限声明:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
在 Activity 中初始化蓝牙适配器:
private BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
private void getPairedDevices() {
Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();
if (!pairedDevices.isEmpty()) {
// 迭代已配对设备列表
for (BluetoothDevice device : pairedDevices) {
String deviceName = device.getName();
String deviceAddress = device.getAddress();
// TODO: 处理设备信息
}
}
}
private final BroadcastReceiver pairingReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(BluetoothDevice.ACTION_BOND_STATE_CHANGED)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
int bondState = intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE, BluetoothDevice.ERROR);
if (bondState == BluetoothDevice.BOND_BONDED) {
// 配对成功
// TODO: 处理配对成功结果
} else if (bondState == BluetoothDevice.BOND_NONE) {
// 配对失败
// TODO: 处理配对失败结果
}
}
}
};
private void startPairing(BluetoothDevice device) {
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_BOND_STATE_CHANGED);
registerReceiver(pairingReceiver, filter);
device.createBond();
}
以上是一个非常基本的蓝牙配对设备示例,可以根据实际需求进行调整。注意,在具体开发中,需要注意蓝牙状态的变化,防止出现无法配对或连接的情况。