Разъем соединения с устройством Bluetooth после ACTION_ACL_CONNECTED Android - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь получить данные от соединения Bluetooth после получения ACTION_ACL_CONNECTED на BroadcastReceiver. Этот пример кода не работает:

private final BroadcastReceiver discoveryFinishReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();

        if (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)) {
            device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

            BluetoothSocket socket = null;
            String data = "/0";
            byte[] bytes = data.getBytes();
            try {
                BluetoothServerSocket bluesocketserver = bluetoothAdapter.listenUsingRfcommWithServiceRecord("", MY_UUID);
                socket = bluesocketserver.accept(3000);
                if(socket.isConnected())
                    socket.getInputStream().read(bytes);
            } catch (IOException e) {
                Log.d("Test", e.getMessage());
                e.printStackTrace();
            }
        }

    }
};

Я постоянно получаю сообщение об ошибке "java .io.IOException: Попробуйте снова" на socket = bluesocketserver.accept (3000). Кроме того, я использую UCID RFCOM по умолчанию "00001101-0000-1000-8000-00805F9B34FB"

Возможно ли просто создать BluetoothServerSocker в состоянии ACTION_ACL_CONNECTED? Я пытаюсь получить данные с принтера externak, подключенного через Bluetooth.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...