Список Bluetooth на выбор Android - PullRequest
0 голосов
/ 27 марта 2019

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

        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
        if (mBluetoothAdapter == null) {
            // No bluetooth support on device
        }

        if (mBluetoothAdapter != null)
        {
            if (!mBluetoothAdapter.isEnabled()) {
                Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
                startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
            }
            String[] btarray;
            List<String> btlist = new ArrayList<String>();

            BTArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);

            // get paired devices
            pairedDevices = mBluetoothAdapter.getBondedDevices();

            // put it's one to the adapter
            for(BluetoothDevice device : pairedDevices) {
                btlist.add(device.getAddress());
            }


            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("BT")
                    .setItems(btlist2, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            // The 'which' argument contains the index position
                            // of the selected item
                        }
                    });
            builder.create();


    }
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("BT")
                    .setItems(btlist2, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            // The 'which' argument contains the index position
                            // of the selected item
                        }
                    });
            builder.create();

Это не сработало

1 Ответ

0 голосов
/ 27 марта 2019

Хорошо, предоставленная вами информация является неполной, так что вот мои догадки.

  1. У вас есть экземпляр адаптера BTArrayAdapter, но вы его не используете.
  2. Похоже, у вас есть btlist но вы пытаетесь использовать btlist2
  3. Вы создаете AlertDialog, но не отображаете его.
  4. Не уверены, правильно ли вы запрашиваете разрешения Bluetooth, поскольку не предоставили информацию

Итак, вот что вам нужно проверить:

  1. После того, как вы создали свой адаптер, вам нужно как-то заполнить его данными, например, BTArrayAdapter.addAll(btlist);
  2. Makeубедитесь, что вы используете список данных, который вы фактически заполняете (btlist)
  3. После того, как вы построили свой диалог, обязательно покажите его (builder.create().show();)
  4. Убедитесь, что у вас есть <uses-permission android:name="android.permission.BLUETOOTH" /> в манифесте и убедитесь, что вы запрашиваете разрешения на местоположение динамически (лучше попробуйте заполнить список вручную и посмотреть, отображается ли он, тогда вы поймете, что что-то не так с запросом разрешений)
  5. Iдумать вместо setItemsAlertDialog.Builder вы должны использовать:

                .setAdapter(BTArrayAdapter, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
    
                    }
                });
    

PS: на самом деле вы не обнаруживаете, поэтому вам, вероятно, не нужно запрашивать разрешения на местоположение.

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