How to find the devices in the range by using bluetooth?

后端 未结 3 1691
广开言路
广开言路 2021-02-03 14:17

I am new to android.I want to develop an application to find the devices in the range by using Bluetooth programmatically.If any one has idea please give some sample code to me.

相关标签:
3条回答
  • 2021-02-03 14:49

    Create Broad cast receiver something like the following and add the device information

        private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
    
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
    ArrayList<HashMap<String, String> arl = new ArrayList<HashMap<String, String>();    
                // 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 it's already paired, skip it, because it's been listed already
                    HashMap<String, String> deviceMap = new HashMap<String, String>();
                    deviceMap.put(device.getName(), device.getAddress());
                    arl.add(deviceMap);
    
                // When discovery is finished, change the Activity title
                } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
                    setProgressBarIndeterminateVisibility(false);
                    setTitle(R.string.select_device);
                    if (mNewDevicesArrayAdapter.getCount() == 0) {
                        String noDevices = getResources().getText(R.string.none_found).toString();
                        mNewDevicesArrayAdapter.add(noDevices);
                    }
                }
            }
    
    
        };
    
    0 讨论(0)
  • 2021-02-03 15:01

    you might want to use method startDiscovery() .

    I dont have a sample code right now but you might want to have a look at : http://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html#startDiscovery%28%29

    Hope it helps!

    0 讨论(0)
  • 2021-02-03 15:02

    Find The Devices in the Range by using Bluetooth programmatically.

    Yes you can do this using BroadcastReceiver, check out below code, it will help you.

    Starting search

    mBluetoothAdapter.startDiscovery(); 
    mReceiver = new BroadcastReceiver() {
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
    

    Finds a device

        if (BluetoothDevice.ACTION_FOUND.equals(action)) 
        {
            // Get the BluetoothDevice object from the Intent
            BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
            // Add the name and address to an array adapter to show in a ListView
           mArrayAdapter.add(device.getName() + "\n" + device.getAddress());
        }
      }
    };
    
    IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND); 
    registerReceiver(mReceiver, filter);
    
    0 讨论(0)
提交回复
热议问题