Bluetooth - Presentación Final
Bluetooth - Presentación Final
Bluetooth - Presentación Final
Avanzados en
Android
Bluetooth
Contenido
• Introducción
• Contenido
• Tópicos avanzados Android: Bluetooth
• Permisos de Bluetooth
• Configuración de Bluetooth
• Búsqueda de Dispositivos
• Conexión como Servidor
• Conexión como Cliente
• Demostración
Tópicos avanzados Android –Bluetooth
Permisos Para usar las funciones de Bluetooth en tu
aplicación, debes declarar dos permisos. El
<manifest ... >
<uses-permission android:name="android.permission.BLUETOOTH" /> primero es BLUETOOTH. Necesitas este permiso
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" para establecer cualquier comunicación de
/> Bluetooth, como solicitar o aceptar una conexión
<!-- If your app targets Android 9 or lower, you can declare
y transferir datos.
ACCESS_COARSE_LOCATION instead. -->
<uses-permission El otro permiso que debes declarar es
android:name="android.permission.ACCESS_FINE_LOCATION" /> ACCESS_FINE_LOCATION. Tu app necesita
...
</manifest> este permiso porque es posible usar un escaneo de
Bluetooth para reunir información sobre la
ubicación del usuario. Esta información puede
obtenerse desde el dispositivo del usuario o desde
balizas Bluetooth en determinados lugares, como
tiendas y áreas de tránsito.
Tópicos avanzados Android –Bluetooth
Configuración de Bluetooth
• Para inicializar una conexión con un dispositivo Bluetooth, se necesita la dirección MAC
del objeto BluetoothDevice asociado, que se puede recuperar llamando a getAddress().
Tópicos avanzados Android - Conectar
Dispositivos
Se debe implementar los mecanismos del lado del servidor y del lado del cliente.
El servidor recibe la información del socket cuando se acepta una conexión entrante. El cliente
proporciona la información del socket cuando abre un canal RFCOMM hacia el servidor.
Para inicializar una conexión con el dispositivo remoto que acepta conexiones en un
socket de servidor abierto, primero debes obtener un objeto BluetoothDevice que
represente al dispositivo remoto. Para obtener información sobre cómo crear un
BluetoothDevice, consulta Cómo buscar dispositivos. Luego, debes usar el
BluetoothDevice para obtener un BluetoothSocket e inicializar la conexión.
Procedimiento para la Conexión como Cliente
Usando el BluetoothDevice, obtén un BluetoothSocket llamando
a createRfcommSocketToServiceRecord(UUID).
• Este método inicializa un objeto BluetoothSocket que le permite al cliente conectarse con un
BluetoothDevice. El UUID que se pasa aquí debe coincidir con el UUID empleado por el dispositivo del
servidor cuando hizo la llamada a listenUsingRfcommWithServiceRecord(String, UUID) para abrir su
BluetoothServerSocket. Para usar un UUID que coincida, codifica la cadena del UUID en tu aplicación y,
luego, haz referencia a ella en el código del servidor y el cliente.
Llama a connect() para inicializar la conexión. Ten presente que este método es una llamada de
bloqueo.
• Después de que el cliente llama a este método, el sistema realiza una búsqueda de SDP para encontrar un
dispositivo remoto que tenga el mismo UUID. Si la búsqueda es correcta y el dispositivo remoto acepta la
conexión, este último comparte el canal RFCOMM que se usará durante la conexión, y se devuelve el
método connect(). Si la conexión no funciona o si se agota el tiempo de espera del método connect(),
dicho método devuelve una IOException.
• Debido a que connect() es una llamada de bloqueo, siempre debes realizar este procedimiento de
conexión en un subproceso diferente del subproceso de la IU de la actividad principal.
Demostración