Android可选的蓝牙列表

时间:2019-03-26 23:03:57

标签: java android bluetooth

如何在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 :(得分:0)

好的,您提供的信息不完整,所以这是我的猜测。

  1. 您有适配器BTArrayAdapter实例,但是您没有使用它。
  2. 您似乎有btlist,但尝试使用btlist2
  3. 您正在构建AlertDialog,但未显示它。
  4. 不确定您是否正确请求了蓝牙权限,因为您没有提供信息

这些是您需要检查的事情:

  1. 创建适配器后,您需要以某种方式填充数据,例如BTArrayAdapter.addAll(btlist);
  2. 确保您使用的是实际填充的数据列表(btlist
  3. 建立对话框后,请确保显示它(builder.create().show();
  4. 确保清单中有<uses-permission android:name="android.permission.BLUETOOTH" />,并确保您动态地请求位置权限(最好尝试手动填充列表并查看列表是否显示,然后您会知道权限请求有问题)
  5. 我认为您应该使用setItems中的AlertDialog.Builder,而不是:

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

PS ::实际上您没有发现,因此您可能不需要询问位置权限。