Для принятия данных по Bluetooth в Android вы можете использовать BluetoothAdapter и BluetoothSocket. Вот пошаговая инструкция, как это сделать:
Шаг 1: Проверьте наличие разрешения Bluetooth в манифесте приложения. Добавьте следующую строку в блок <manifest>:
<uses-permission android:name="android.permission.BLUETOOTH"/>
Шаг 2: Включите Bluetooth на устройстве и получите экземпляр BluetoothAdapter:
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Шаг 3: Проверьте, подключено ли устройство Bluetooth, и запросите разрешение у пользователя, если оно не включено:
if (bluetoothAdapter == null || !bluetoothAdapter.isEnabled()) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); }
Шаг 4: Найдите устройство Bluetooth, с которым хотите установить соединение, используя BluetoothDevice:
BluetoothDevice device = bluetoothAdapter.getRemoteDevice(deviceAddress);
Шаг 5: Установите соединение с устройством Bluetooth, создав экземпляр BluetoothSocket:
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(MY_UUID); socket.connect();
Шаг 6: Прочтите данные, полученные по Bluetooth, с помощью InputStream:
InputStream inputStream = socket.getInputStream(); byte[] buffer = new byte[1024]; int bytesRead = inputStream.read(buffer); String receivedData = new String(buffer, 0, bytesRead);
Вы также можете использовать BufferedReader для чтения данных по строкам:
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String line = reader.readLine();
Шаг 7: Закройте соединение и освободите ресурсы после чтения данных:
inputStream.close(); socket.close();
Убедитесь, что вы выполняете эти действия в отдельном потоке, а не в основном UI потоке, чтобы не блокировать пользовательский интерфейс.
Надеюсь, эта информация была полезной. Удачи в вашем проекте!