Android中的Bluetooth通信可以通過多種方式實現,包括使用Android Bluetooth API或者第三方庫。以下是一個簡單的示例,展示如何使用Android Bluetooth API實現設備之間的通信:
確保設備支持藍牙:首先,確保你的Android設備支持藍牙,并且用戶已經啟用了藍牙功能。
獲取必要的權限:在AndroidManifest.xml文件中添加必要的權限和特性聲明。
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-feature android:name="android.hardware.bluetooth" android:required="true" />
<uses-feature android:name="android.hardware.bluetooth_le" android:required="false" />
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter == null) {
// 設備不支持藍牙
return;
}
startDiscovery()
方法來發現附近的藍牙設備。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 = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
// 可以在這里進行設備的配對和連接
}
}
};
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(bluetoothReceiver, filter);
BluetoothAdapter
的getBond()
方法來建立與設備的連接。BluetoothDevice device = // 從發現列表中選擇設備
BluetoothSocket socket = null;
try {
socket = device.createRfcommSocketToServiceRecord(MY_UUID);
socket.connect();
// 連接成功,可以進行數據傳輸
} catch (IOException e) {
// 連接失敗
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
// 關閉連接失敗
}
}
}
BluetoothSocket
的getInputStream()
和getOutputStream()
方法來發送和接收數據。InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
// 發送數據
byte[] sendData = "Hello, Bluetooth!".getBytes();
outputStream.write(sendData);
outputStream.flush();
// 接收數據
byte[] buffer = new byte[1024];
int bytesRead = inputStream.read(buffer);
String receivedData = new String(buffer, 0, bytesRead);
inputStream.close();
outputStream.close();
socket.close();
unregisterReceiver(bluetoothReceiver);
請注意,這只是一個基本的示例,實際應用中可能需要處理更多的細節,例如配對設備、處理連接失敗的情況、管理多個設備連接等。此外,如果你需要更高級的功能,可以考慮使用第三方庫,如Android Bluetooth LE Library (Android-BLE-Library) 或 GreenDAO。