как имитировать Bluetooth в эмуляторе Android

#android #bluetooth

#Android #bluetooth

Вопрос:

Я использовал этот проект для имитации Bluetooth в эмуляторе Android.
У меня есть 2 класса, один из которых включает Bluetooth

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    BluetoothAdapter.SetContext(this);

    BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
    if(adapter==null) { 
        System.out.println("nBluetooth NOT supported. Aborting.");
      return;
    }

    if (!adapter.isEnabled()) {
        adapter.enable();
    }
    }
  

еще одно сканирование устройств и составление их списка

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        BluetoothAdapter.SetContext(this);

        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
        System.out.println("nAdapter: "   adapter);

        if(adapter==null) { 
            System.out.println("nBluetooth NOT supported. Aborting.");
          return;
        }

        if (!adapter.isEnabled()) {
            adapter.enable();
        }

        if (adapter.getScanMode() != BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
            adapter.startDiscovery();
        }


        Set<BluetoothDevice> devices = adapter.getBondedDevices();
        for (BluetoothDevice device : devices) {
            System.out.println("Found device: "   device);
        }
    }
  

второе устройство не обнаруживает никаких устройств, так что же не так с моим кодом?
заранее спасибо.

Комментарии:

1. Вам нужно ввести некоторый выход из системы в свой код, чтобы увидеть, что происходит, какие методы выполняются и т. Д

2. я сделал это и понял, что «устройства» устанавливают его длину равной нулю!

Ответ №1:

BluetoothAdapter.getDefaultAdapter() возвращает локальный адаптер по умолчанию. Он возвращает значение null, если устройство не имеет возможности Bluetooth, и поскольку вы используете эмулятор, который не поддерживает Bluetooth, он вернет значение null.