es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede solicitar permiso de Bluetooth en Wear OS Samsung Galaxy Watch 4.

He creado una muestra de aplicación de Wear OS, que debería descubrir dispositivos BLE, pero mi código requiere permiso de Bluetooth. Cuando pongo estas líneas en el manifiesto:


<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

el permiso correspondiente no se muestra en configuración/aplicaciones/permisos y cada solicitud de permiso no hace nada. Por cierto, mis dispositivos BLE (un altavoz y un esp-32) tampoco se muestran en configuración/Bluetooth.

¿Cómo puedo otorgar permisos de Bluetooth para mi aplicación o cómo puedo conectar un dispositivo BLE a mi reloj?

Actualización:
He intentado esto:

        if (checkSelfPermission(Manifest.permission.BLUETOOTH) != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(arrayOf<String>(Manifest.permission.BLUETOOTH), 1001)
        }

<pre><code>    if (checkSelfPermission(Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {
        requestPermissions(arrayOf<String>(Manifest.permission.BLUETOOTH_CONNECT), 1001)
    }

    if (checkSelfPermission(Manifest.permission.BLUETOOTH_SCAN) != PackageManager.PERMISSION_GRANTED) {
        requestPermissions(arrayOf<String>(Manifest.permission.BLUETOOTH_SCAN), 1001)
    }

    if (checkSelfPermission(Manifest.permission.BLUETOOTH_ADMIN) != PackageManager.PERMISSION_GRANTED) {
        requestPermissions(arrayOf<String>(Manifest.permission.BLUETOOTH_ADMIN), 1001)
    }
</code></pre>

Pero las ventanas de diálogo aún no se muestran.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que tu aplicación no puede solicitar permisos de Bluetooth al usuario. Para poder solicitar permisos, necesitas incluir código para manejar las solicitudes de permisos.

    Primero, asegúrate de haber agregado los permisos necesarios al archivo “manifest” de tu aplicación, lo cual ya has hecho.

    A continuación, necesitas manejar las solicitudes de permisos en el código de tu aplicación. Puedes usar el método requestPermissions() para mostrar el diálogo de solicitud de permisos.

    if (checkSelfPermission(Manifest.permission.BLUETOOTH) != PackageManager.PERMISSION_GRANTED) {
        requestPermissions(arrayOf(Manifest.permission.BLUETOOTH), 1001)
    }
    

    Asegúrate de manejar el resultado de la solicitud de permisos en el método onRequestPermissionsResult().

    Si tu aplicación aún no puede descubrir dispositivos BLE incluso después de que se otorgan los permisos, es posible que debas verificar si tus dispositivos BLE son compatibles con Wear OS y si están anunciando correctamente sus servicios. Además, es posible que desees probar tu aplicación en otros dispositivos para asegurarte de que no sea un problema solo con el Samsung Galaxy Watch 4.

Comments are closed.