Подключение Bluetooth 2 устройства без сопряжения. Ошибка закрытия сокета

Я пытаюсь подключить два телефона без сопряжения с помощью createInsecureRfcommSocketToServiceRecord Метод не может подключиться к устройству и выдает IOException. System.err: java.io.IOException: socket closed

Вы можете увидеть мой код. В приложении появляется новый список сканирующих устройств Bluetooth, когда я нажимаю на этот конкретный элемент, он переходит ко второй активности и подключается к этому устройству.

Код:

Этот OnItemClick является списком списка найденных новых устройств.

  public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        bdDevice = arrayListBluetoothDevices.get(position);
        Intent intents = new Intent(Main_Activity.this, SecondActivity.class);
        intents.putExtra("deviceAddress", bdDevice.getAddress());
        startActivity(intents);
       }

SecondActivity.class:

@Override
    public void onResume() {
        super.onResume();
        Intent intent = getIntent();
        address = intent.getStringExtra("deviceAddress");
    BluetoothDevice device = bluetoothAdapter.getRemoteDevice(address);
    try {

   //I am creating   insecureRFcomm  because of  no pairing dialog required.

        socket = device.createInsecureRfcommSocketToServiceRecord(MY_UUID);
        socket.getRemoteDevice().getAddress();

    } catch (Exception e) {
        e.printStackTrace();
    }
    bluetoothAdapter.cancelDiscovery();
    Log.d(TAG, "...Connecting to Remote...");
    try {

        //Connection establish between BT-Device  and phone.
        socket.connect();


        counter = 0;
        Log.d(TAG, "...Connection established and data link opened...");
    } catch (IOException e) {
        try {
            //Connection close.
            socket.close();
            if (inStream!=null){
                inStream.close();
            }
        } catch (Exception e2) {
            e.printStackTrace();
            e2.printStackTrace();
        }
        finally {
            final AlertDialog alertDialog = new AlertDialog.Builder(SBLActivity.this).create();
            alertDialog.setMessage("Device is Non SBL.");
            alertDialog.setTitle("Device  Connection");
            alertDialog.setCancelable(false);
            alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    alertDialog.dismiss();
                    finish();
                }
            });
            alertDialog.show();
        }
    }
    }

Я получаю ошибку в Socket.connect(); и идет ловить блок. Как это исправить, ИЛИ любой другой способ подключить разъем Bluetooth без диалогового окна сопряжения или устройства Paring или с сопряженным устройством и без диалогового окна сопряжения

Спасибо.

0 ответов

Другие вопросы по тегам