在进行Bluetooth设备扫描时,应确保已启用权限和正确的方式来检测设备。以下是示例代码:
private BluetoothAdapter mAdapter;
// 确认已启用Bluetooth
if (mAdapter == null || !mAdapter.isEnabled()) {
Intent enableBluetooth = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBluetooth, REQUEST_ENABLE_BT);
}
// 启动设备扫描
mAdapter.startDiscovery();
// 创建BroadcastReceiver来获取扫描结果
private final BroadcastReceiver mDeviceFoundReceiver = 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);
Log.d(TAG, "Device found: " + device.getName() + " (" + device.getAddress() + ")");
}
}
};
// 注册BroadcastReceiver来接收扫描结果
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(mDeviceFoundReceiver, filter);