Conectar al dispositivo con la dirección Bluetooth en String

Estoy haciendo una aplicación de Android y donde tengo el MAC de otro dispositivo como una cadena (17 caracteres) y necesito usarlo para conectarme a ese dispositivo (hilo que inicia una conexión Bluetooth). He estado jugando con toda la tarde y no puedo averiguar cómo hacerlo. El problema es que no me permite establecer el BluetoothDevice igual a una cadena. ¿Hay una manera que esto puede / tiene que ser hecho?

(Decidimos no poner ninguno de mis intentos aquí como código, viendo cómo estaban llenos de errores)

Tiene que comunicarse con otra tableta que esté ejecutando la misma aplicación. Miré a través de esta página antes y la mayoría de mi aplicación se basa en eso. Mi principal problema es cuando se utiliza el ejemplo de ConnectThread,

Tengo una cadena con la dirección MAC, ¿cómo me conecto a ese MAC?

Cualquier ayuda sería muy apreciada,

Si entiendo correctamente, usted tiene una dirección MAC como una cadena, y desea conectarse al dispositivo, ¿verdad? Esto debería funcionar:

BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address); BluetoothSocket tmp = null; BluetoothSocket mmSocket = null; // Get a BluetoothSocket for a connection with the // given BluetoothDevice try { tmp = device.createRfcommSocketToServiceRecord(MY_UUID); Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class}); tmp = (BluetoothSocket) m.invoke(device, 1); } catch (IOException e) { Log.e(TAG, "create() failed", e); } mmSocket = tmp; 

Este es un extracto del código fuente de esta aplicación Android de código abierto: https://github.com/janosgyerik/bluetoothviewer

La aplicación es una herramienta sencilla para depurar conexiones Bluetooth y datos de protocolo sin procesar. (Por ahora sólo en ascii, planeo agregar características para depurar hexadecimal también.)

Primero tendrá que averiguar qué perfil soporta el dispositivo bluetooth, Por ejemplo, podría ser un dispositivo médico que podría utilizar el perfil HDP o podría estar utilizando un simple RS232 sobre bluetooth. Es importante entender cómo se establece la conexión Bluetooth para varios perfiles antes de empezar a escribir código.

Aquí hay un buen enlace para empezar. Android SDK también viene withe algunos ejemplos básicos que usted puede comenzar con.

http://developer.android.com/guide/topics/connectivity/bluetooth.html

EDITAR:

Si su dispositivo está sincronizado correctamente, verá la dirección MAC en la lista de dispositivos emparejados. Por ejemplo, puede hacer esto para encontrar el dispositivo que coincida con la dirección MAC de su dispositivo:

  Set<BluetoothDevice> pairedDevices = mBluetoothAdapter .getBondedDevices(); if (pairedDevices.isEmpty()) { Log.e(TAG, "No devices paired..."); return ; } for (BluetoothDevice device : pairedDevices) { Log.d(TAG, "Device : address : " + device.getAddress() + " name :" + device.getName()); if (MY_MAC_ADDR.equals(device.getAddress())) { mDevice = device; break; } } 

Espero que ayude.

  • ¿Se eliminan los paquetes si no recibo activamente un DatagramSocket?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.