Cómo crear Insecure RFCOMM Socket en Android?
Estoy buscando manera de conectar sobre rfcomm socket insegura. Pude encontrar la manera mencionada abajo
Method m = device.getClass().getMethod("createInsecureRfcommSocket", new Class[] {int.class}); tmp = (BluetoothSocket) m.invoke(device, 1);
Esto por el momento es hacer lo que quiero. Incluso la documentación aquí dice que necesitamos usar createInsecureRfcommSocketToServiceRecord para conexiones inseguras. Pero no existe tal método. La única manera que encontré fue usando la reflexión como se muestra arriba. E incluso en que el método que se pasa en createInsecureRfcommSocket y no createInsecureRfcommSocketToServiceRecord. Sólo quería saber cuán confiable es esta manera. Si menciono createInsecureRfcommSocketToServiceRecord en el método de la conexión nunca sucede.
- Enviar datos desde bluetooth android a PC con bluecove
- Encuentra dispositivos bluetooth ya emparejados automáticamente, cuando están en rango
- Conexión Bluetooth entre Android y Lego Mindstorm NXT
- Android 2.1: ¿Cómo puedo consultar el valor RSSI de una conexión Bluetooth existente?
- Android Bluetooth - Cómo iniciar el emparejamiento
- Leer datos de dispositivos Bluetooth emparejados en Android
- No se puede cancelar el proceso de descubrimiento de Bluetooth
- ¿Por qué Android limita los tipos de archivos aceptables tan estrictamente mientras recibe a través de Bluetooth OPP?
- Reproducción de MediaPlayer de Android tartamudea sobre auriculares con cable, no sobre Bluetooth
- Arduino: uso Serial y Software Serial con módulo bluetooth
- Impresión Bluetooth de Android
- Cómo desemparejar dispositivo bluetooth con android 2.1 sdk
- Programe un par de dispositivos Bluetooth sin que el usuario introduzca el pin
createInsecureRfcommSocketToServiceRecord()
se incluyó a partir de Android API Level 10, por lo que la documentación le animará a utilizarlo ya que los documentos siempre siguen la última versión de la API. Si está apuntando a una API inferior a 10 (también conocida como 2.3.3 o Gingerbread), entonces ese método no está públicamente accesible para usted.
El método que está llamando a través de la reflexión createInsecureRfcommSocket()
es un método privado dentro de BluetoothDevice
que ha estado presente desde aproximadamente Android 2.0. El problema con la llamada de métodos ocultos es que no están garantizados para estar allí en todos los dispositivos, o en el futuro … por lo que está jugando un poco. Mi conjetura es que su método trabajará probablemente la mayor parte del tiempo en la mayoría de los dispositivos 2.0+, puesto que los servicios requeridos para poner su primo público createRfcommSocketToServiceRecord()
son tan similares en la capa de la pila.
En pocas palabras, si desea una compatibilidad universal garantizada con la implementación de Bluetooth, tendrá que orientar el nivel 2.3.3 (API Level 10) con su aplicación. Con una API pública ahora expuesta para RFCOMM insegura, es difícil decir si es más o menos probable que la implementación privada subyacente cambie.
Bueno, la mayoría de las respuestas respondidas aquí, son antes del 30 de marzo de 2011, en este post.
Mientras buscaba la solución de un problema similar en mi aplicación, he encontrado este blog escrito el 30 de marzo.
Ayudará a todos aquellos que todavía están buscando esta solución de problema en SO
http://mobisocial.stanford.edu/news/2011/03/bluetooth-reflection-and-legacy-nfc/
La solución se ha vuelto muy simple ahora. Solo incluye InsecureBluetooth.java en tu proyecto y cambia 2 líneas en BluetoothChatService.java.
tmp = InsecureBluetooth.listenUsingRfcommWithServiceRecord(mAdapter, NAME, MY_UUID, true);
y
tmp = InsecureBluetooth.createRfcommSocketToServiceRecord(device, MY_UUID, true);
Eso es !
¿Has visto este createInsecureRfcommSocketToServiceRecord
- Resolución Descripción Ruta de recursos Ruta de ubicación Errores de tipo
- ERROR: debe implementar OnFragmentInteractionListener