Ich denke folgendes.
Das Entscheidende bei der Suche nach Bluetooth Geräten ist die MAC Adresse.
Das Remote Device erhält man aus:
getRemoteDevice(javax.microedition.io.Connection conn)
Schaut man sich das Remote Device an, so stellt man fest, dass es sich formal um nichts anderes als einen Hash Code handelt.
getBluetoothAddress() macht eigentlich nichts anderes, als das 'gefundene Gerät' lesbar zu machen. getBluetoothAddress ist also sozusagen getRemoteDevice.
Ich habe z.B. eine Klasse 'myRemoteDevice' erzeugt, um aus einer MAC Adresse ein Remote Device zu errechnen.
getFriendlyName(boolean alwaysAsk) macht hingegen etwas anderes. Hier wird direkt noch einmal versucht, den Namen korrekt über die Luftschnittstelle zu erhalten.
Probiert man quasi getBluetoothAddress() und getFriendlyName(boolean alwaysAsk) in Konkurrenz, so stellt man fest, dass die MAC Adresse über getBluetoothAddress() sofort verfügbar ist, während der Name über getFriendlyName(boolean alwaysAsk) u.U. weitere 20 Sekunden benötigt.
Da der FDN nicht wirklich etwas aussagt, ist die Suche für mich nur ein Add On, um zu sehen, was sich wohlmöglich hinter der MAC verbirgt (Omas Rechner oder Papas Handy). Über Major und Minor Class ist ja schon vorab bekannt, um was für eine Gerät es sich genau handelt.
Wertet man MAC und die Classes aus, so kann man schön sehen, ob gerade eine Audi mit Bluetooth Schnittstelle an einem vorbeifährt, oder aber ein Handy spazieren geht, oder aber neben einem ein Laptop steht.