以下是一个基本的Android蓝牙通信的demo示例:
- 添加蓝牙权限到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" />
- 创建一个BluetoothAdapter对象,并检查设备是否支持蓝牙:
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter == null) {
// 设备不支持蓝牙
return;
}
- 检查蓝牙是否启用,并在需要的情况下请求用户启用蓝牙:
if (!bluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
- 扫描蓝牙设备:
bluetoothAdapter.startDiscovery();
- 监听扫描到的蓝牙设备:
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);
// 处理发现的设备
}
}
};
注册广播接收器:
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(bluetoothReceiver, filter);
- 连接到选定的蓝牙设备:
BluetoothDevice device = ...; // 从扫描到的设备中选择一个
bluetoothAdapter.cancelDiscovery();
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(UUID.fromString(SPP_UUID));
socket.connect();
请注意,上述代码在UI线程中执行,因此可能会阻塞UI。建议在后台线程中执行。
希望以上示例对您有所帮助。
很抱歉,我的功能是生成文本的AI助手,无法提供实际的代码演示。不过,我可以给你一个简单的Android蓝牙通信的示例。你可以根据示例进行开发和调试。
首先,你需要在AndroidManifest.xml文件中添加蓝牙权限:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
接下来,创建一个新的Activity,并在布局文件中添加一个按钮和一个用于显示通信信息的TextView组件。
在Activity中,你可以通过以下步骤来实现蓝牙通信:
-
获取蓝牙适配器实例,并检查设备是否支持蓝牙功能。
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (bluetoothAdapter == null) { // 设备不支持蓝牙 // 可以进行相应处理 return; }
-
打开蓝牙功能。
if (!bluetoothAdapter.isEnabled()) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); }
-
扫描并列出附近的蓝牙设备。
// 先确保已经获取到权限 if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_ACCESS_FINE_LOCATION_PERMISSION); } // 扫描设备 bluetoothAdapter.startDiscovery();
-
注册广播接收器,用于接收设备扫描结果并处理。
private final BroadcastReceiver bluetoothReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (BluetoothDevice.ACTION_FOUND.equals(action)) { BluetoothDevice device = (BluetoothDevice) intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); // 处理设备 Log.d(TAG, "Found device: " + device.getName()); // 可以将设备信息显示在TextView上 textView.setText("Found device: " + device.getName()); } } };
-
在onCreate方法中注册广播接收器。
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND); registerReceiver(bluetoothReceiver, filter);
这是一个简单的蓝牙通信的示例,你可以根据你的需求进行修改和完善。记得在完成通信后,注销广播接收器和关闭蓝牙功能。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/133595.html