在安卓系统中获取所有可用蓝牙设备的地址和名称

4
我能够检索到已配对设备的名称和地址,但我不知道如何检索可用蓝牙设备的名称和地址?
   String outV="";
   b1=(Button)findViewById(R.id.button1);
    b2=(Button)findViewById(R.id.button2);
    tv=(TextView)findViewById(R.id.textView1);
    b1.setOnClickListener(new View.OnClickListener() {

        BluetoothAdapter Badap = BluetoothAdapter.getDefaultAdapter();



        @Override
        public void onClick(View arg0) {




            Set<BluetoothDevice> pairedDevices= Badap.getBondedDevices();

            if (pairedDevices.size() > 0) {

                for (BluetoothDevice device : pairedDevices) {

                    outV+= device.getName() + " ::" + device.getAddress()+"\n";


                }
                tv.setText(outV);







            }

这是配对设备的代码...
1个回答

7
在我的OnCreate方法中,我正在执行以下操作:
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND); 
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
registerReceiver(MydeviceReceiver, filter);  

MydeviceReceiver是指

    private final BroadcastReceiver deviceReceiver = new BroadcastReceiver() 
        {
            @Override
            public void onReceive(Context context, Intent intent) 
            {
                String action = intent.getAction();
            // When discovery finds a device
            if (BluetoothDevice.ACTION_FOUND.equals(action)) 
            {
                // Get the BluetoothDevice object from the Intent
                BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

                if( !PairedDeviceNames.contains(device) && !newDevices.contains(device))
                    newDevices.add(device);                
            }
            else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) 
            {
                Log.v(" ","discovery Finished ");
                if(newDevices.size() != 0)
                {                   
                    deviceList.invalidateViews();
                    sectionAdapter.notifyDataSetChanged();
                }
                else
                {
                    Toast.makeText(YourActivity.this, "No New Devices Found", Toast.LENGTH_LONG).show();
                }
            }
        }
    };

什么是PaireddeviceNam? - Nouman Ch
使用这种方法,我可以在不进行配对的情况下获取MAC地址和设备名称吗?@SSS - Sunny

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接