#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.