写一个基于java在android下运行的蓝牙连接代码
时间: 2023-03-29 11:03:08 浏览: 116
基于android的蓝牙开发
4星 · 用户满意度95%
好的,我可以回答这个问题。以下是一个基于 Java 在 Android 下运行的蓝牙连接代码示例:
首先,在 AndroidManifest.xml 文件中添加以下权限:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
然后,在你的 Activity 中添加以下代码:
// 获取 BluetoothAdapter 对象
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
// 如果设备不支持蓝牙,则退出应用
if (bluetoothAdapter == null) {
Toast.makeText(this, "设备不支持蓝牙", Toast.LENGTH_SHORT).show();
finish();
return;
}
// 如果蓝牙未开启,则请求开启蓝牙
if (!bluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
// 获取已配对的设备列表
Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();
// 如果已配对的设备列表不为空,则遍历列表并连接设备
if (pairedDevices.size() > ) {
for (BluetoothDevice device : pairedDevices) {
// 连接设备
connectToDevice(device);
}
}
// 连接设备的方法
private void connectToDevice(BluetoothDevice device) {
// 获取 BluetoothSocket 对象
BluetoothSocket socket = null;
try {
socket = device.createRfcommSocketToServiceRecord(MY_UUID);
} catch (IOException e) {
e.printStackTrace();
}
// 连接设备
try {
socket.connect();
} catch (IOException e) {
e.printStackTrace();
try {
socket.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
// 发送数据
OutputStream outputStream = null;
try {
outputStream = socket.getOutputStream();
outputStream.write("Hello, world!".getBytes());
} catch (IOException e) {
e.printStackTrace();
}
// 关闭连接
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
注意:上述代码仅为示例,实际使用时需要根据具体情况进行修改和完善。
阅读全文