Práctica 70 min 22 preguntas
PrácticaPaso 1 de 9

Manifest y permiso BLUETOOTH_CONNECT

La Activity nueva se llama BluetoothActivity y su interfaz es XML con vistas clásicas, como la de ContadorVistas. La novedad es que algunos eventos ya no vienen de la pantalla, sino del socket.

Solo un permiso

XML
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
  • BLUETOOTH_CONNECT: necesario para hablar con dispositivos ya emparejados. Es un permiso peligroso, así que además de declararlo se pide en tiempo de ejecución.
  • Sin BLUETOOTH_SCAN: no buscamos dispositivos nuevos; usamos los ya emparejados (paso 5 del laboratorio).
Kotlin
private val REQ_BT = 1

private fun pedirPermiso() {
    val concedido = ContextCompat.checkSelfPermission(
        this, Manifest.permission.BLUETOOTH_CONNECT
    ) == PackageManager.PERMISSION_GRANTED
    if (concedido) cargarEmparejados()
    else ActivityCompat.requestPermissions(
        this, arrayOf(Manifest.permission.BLUETOOTH_CONNECT), REQ_BT
    )
}

override fun onRequestPermissionsResult(
    requestCode: Int, permissions: Array<out String>, grantResults: IntArray
) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults)
    if (requestCode == REQ_BT && grantResults.firstOrNull() == PackageManager.PERMISSION_GRANTED) {
        cargarEmparejados()
    }
}

Fíjate en que la respuesta del usuario al diálogo de permisos también es un evento: onRequestPermissionsResult es un callback que el sistema invoca cuando el usuario decide.

Responde para continuar

0/2
TAREA 1
¿Qué permiso declaras en el manifest y pides en tiempo de ejecución para usar los dispositivos emparejados?
Escribe la respuesta
Formato de respuesta: *********_*******
TAREA 2
¿Por qué la práctica no pide BLUETOOTH_SCAN?
Elige una respuesta