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)
- ¿Cómo crear socket Raw en Android?
- SSLSocket se bloquea en getInputStream cuando el dispositivo android está en wifi
- Transmisión de audio a través de socket TCP en Android
- Cómo utilizar archivos .key y .pem para crear un socket SSL en Android?
- La conexión TLS que usa SSLSocket es lenta en el sistema operativo Android
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,
- Cómo crear streaming de audio en vivo entre dos móviles con Android usando la programación de socket ..?
- ¿Cómo continuar un bucle for después de un tiempo determinado sin usar el método `try ... catch`?
- Asynchronous socket I / O en Android
- Tutorial de socket Bluetooth de Android para comunicación sin bloqueo
- Android e IPv6 en Java
- Soporte de Android HTTPS SNI mediante SSLCertificateSocketFactory
- ¿Mezclar dos corrientes audio en una sola corriente audio en android?
- ¿Cómo puedo acceder a una conexión SSL a través de Android?
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.
- Acción de programación de Android
- Instalar la aplicación de phonegap en el emulador de Android usando Windows CLI