Я нацелен на API Level 31+ (Android 12/13) и я знаю, что разрешения изменились, но я сочетаю, но MySe Inse Arrs Inslows или Phrows. />
What I'm trying to do:
- Use Bluetooth Classic (not BLE) to connect two devices
- Send and receive a simple string message like "Hello World"
- Run this on Android 12+ with proper runtime permissions
Я использую этот упрощенный код сервера, чтобы принять соединение: < /p>
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
BluetoothServerSocket serverSocket = bluetoothAdapter.listenUsingRfcommWithServiceRecord("MyApp", MY_UUID);
BluetoothSocket socket = serverSocket.accept();
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
And client side:
BluetoothDevice device = bluetoothAdapter.getRemoteDevice(deviceAddress);
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(MY_UUID);
socket.connect();
OutputStream out = socket.getOutputStream();
out.write("Hello".getBytes());
Problems:
Sometimes .connect() throws IOException
Even if it connects, getInputStream() returns nothing on the server
Unsure if I’m using the right UUID or socket type for Android 12+
I do have the following permissions in AndroidManifest.xml:
And I request BLUETOOTH_CONNECT at runtime.
My Question:
What's the correct way to send and receive messages via Bluetooth Classic on Android 12+ using Java, and do I need to handle UUID or socket differently than on older Android versions?
Please help with working examples or point out what I'm doing wrong in the code above.
Thanks!
Подробнее здесь: https://stackoverflow.com/questions/797 ... pi-31-java