Как подключить устройство Bluetooth, щелкнув элемент списка? - PullRequest
0 голосов
/ 17 февраля 2020

Итак, я создал список, в котором перечислены некоторые устройства. Проблема в том, что я хочу щелкнуть одно из этих устройств в списке и подключиться к нему, но я не знаю, как это сделать. Я сделал некоторый код, чтобы попытаться подключиться к этим устройствам, но он не будет работать. Надеюсь, что кто-нибудь может мне помочь.

Мой код (упрощенный):

ListView lv;
ArrayList<String> devs = new ArrayList<String>();
ArrayAdapter<String> devsadap;
Button mBotOn, mBotOff, mBotDescubrir, mBotEmparejar, mBotEmp;
BluetoothAdapter mBlueAdapter;
private BluetoothSocket mBtSocket;
private BluetoothDevice mBtDevice;
private static final UUID SPP_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

 lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
            WifiInfo wInfo = wifiManager.getConnectionInfo();
            String macAddress = wInfo.getMacAddress();
            connectToDevice(macAddress);
        }
    });
}


    //probando funciones
    private boolean connectToDevice (String macAddress){
        try {
            if (mBlueAdapter == null) {
                mBlueAdapter = BluetoothAdapter.getDefaultAdapter();
            }
            mBtDevice = mBlueAdapter.getRemoteDevice(macAddress);
            mBtSocket = mBtDevice.createRfcommSocketToServiceRecord(SPP_UUID);
            mBtSocket.connect();
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
    //Metodo que descubre los dispositivos anteriormente emparejados(del case)
    private void pairdevs() {
        mBotDescubrir.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Set<BluetoothDevice> bta = mBlueAdapter.getBondedDevices();
                String[] strings = new String[bta.size()];
                int index = 0;

                if (bta.size() > 0) {
                    for (BluetoothDevice device : bta) {
                        strings[index] = device.getName();
                        index++;
                    }
                    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, strings);
                    lv.setAdapter(arrayAdapter);
                }
            }
        });
    }

Заранее спасибо

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