Je crée une application pour communiquer des appareils mobiles Android avec des balises Bluetooth. Je l'ai réussi avec succès entre une balise (qui agit comme un client) et un appareil mobile Android (agit en tant que serveur, en écoutant la connexion). S'il vous plaît trouver le extrait de code ci-dessous,Connexion Android Bluetooth utilisant createInsecureRfcommSocketToServiceRecord sans adresse MAC
application client
BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(MACaddress);
BluetoothSocket socket = device.createInsecureRfcommSocketToServiceRecord(UUID.fromString("f3c74f47-1d38-49ed-8bbc-0369b3eb277c"));
mBluetoothAdapter.cancelDiscovery();
socket.connect();
app Server
mmServerSocket = mBluetoothAdapter.listenUsingInsecureRfcommWithServiceRecord("NAME", UUID.fromString("f3c74f47-1d38-49ed-8bbc-0369b3eb277c"));
socket = mmServerSocket.accept();
Cela fonctionne très bien avec un appareil mobile (serveur) où je suis en mesure d'obtenir son MACaddress
en scannant les périphériques Bluetooth à proximité. Mais considérons le cas quand il y a environ 20-25 dispositifs mobiles présents dans la gamme - le balayage prendrait beaucoup de temps. Je voudrais le faire sans effectuer d'analyse.
Existe-t-il un moyen d'y parvenir sans utiliser le MACaddress
du serveur? La connexion peut-elle être établie avec l'unique UUID seul? Veuillez noter que je ne veux pas jumeler les appareils.
Toute autre solution à cet égard est également la bienvenue. Merci!
Merci David! Je vais essayer les filtres d'analyse dans BLE. Cependant, en tant que travail temporaire, est-il possible de simuler/usurper l'adresse MAC du serveur via le code? De cette façon, j'ai pu éviter le scan puisque je connais le MAC à l'avance. J'ai trouvé plusieurs méthodes d'usurpation de MAC à travers l'enracinement de l'appareil et diverses applications tierces, mais aucune via le code java! – deadpool
Mon expérience est la même. Vous avez besoin d'un accès de bas niveau avec root pour usurper le MAC. – davidgyoung
J'ai créé un filtre d'analyse en utilisant UUID et il faut 3-4 secondes pour obtenir un résultat avec un seul serveur. Cela a soulevé un autre doute: le filtre ralentit-il le balayage? puisque le fragment du scanner doit vérifier l'UUID correspondant. J'espérais pouvoir numériser 1 appareil par seconde, est-ce possible? vos pensées s'il vous plaît .. @davidgyoung – deadpool