SMGhost
SMGhost

Reputation: 4037

Android BluetoothDevice type DUAL

When using ScanCallback for LE devices I get following condition as true:

bluetoothDevice.getType() == BluetoothDevice.DEVICE_TYPE_DUAL

Device supposedly should only support BLE, then how come I get type dual?

Does that mean, that I can use classic bluetooth connection logic on this device? (It fails if I try)

Upvotes: 2

Views: 1909

Answers (1)

Youssif Saeed
Youssif Saeed

Reputation: 13285

That is correct, a dual type device means that it supports classic Bluetooth (BR/EDR) as well as Low Energy (LE) Bluetooth. You can find more about this here.

Almost all Android devices (phones/tablets) would support dual type by default. This is because these devices (as well as desktops and laptops and other devices) have enough resources to support all the subsets of Bluetooth. Please note that a common pitfall is to assume that a device can be LE or classic, but not both. This is clarified in this answer:-

Can a Bluetooth LE powered device discover a classic Bluetooth device and vice-versa?

LE only devices tend to be sensors and battery-powered devices that are resource constrained and therefore cannot support classic Bluetooth.

As to why your phone is failing to connect over classic Bluetooth, this may be a separate issue. Please try using different apps or connecting from the Android settings. A good method would be to use two other classic devices to connect to each other (proving there is no issue with any of the devices), and if that succeeds, you can try and connect your phone to one of them.

Finally, please note that there is a difference between dual mode device and dual role device. A dual mode device is when both classic and LE are supported, whereas a dual role device is a feature of LE only and it means that a device can be a master/slave simultaneously.

I hope this helps.

Upvotes: 2

Related Questions