Configuración de permisos en Android
El SDK de Get Mini Android requiere permisos específicos de Android para comunicarse con los dispositivos PIN pad Bluetooth y conectarse a los servicios web de Redsys. Esta guía explica qué permisos son necesarios y cómo declararlos en el manifiesto de tu aplicación.
Permisos requeridos
El SDK Android requiere los siguientes permisos para funcionar correctamente:
Permisos de Bluetooth
Para gestionar y establecer conexiones Bluetooth con el PIN pad de Get Mini:
android.permission.BLUETOOTHandroid.permission.BLUETOOTH_ADMIN
Permisos de red
Para enviar solicitudes de autorización a los servicios web de Redsys:
android.permission.INTERNETandroid.permission.ACCESS_NETWORK_STATE
Declarar permisos en AndroidManifest.xml
Añade los siguientes permisos a tu archivo AndroidManifest.xml dentro de la etiqueta <manifest>:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Permisos de Bluetooth para comunicación con el PIN pad -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!-- Permisos de red para los servicios web -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application ...>
<!-- Configuración de tu aplicación -->
</application>
</manifest>Estos son los permisos mínimos requeridos según lo especificado en la documentación del SDK iTPV-PC. Sin estos permisos, el SDK no podrá:
- Descubrir y conectarse a dispositivos PIN pad Bluetooth
- Transmitir datos de transacciones a los servicios web de Redsys
- Recibir respuestas de autorización
Comportamiento de permisos por versión de Android
Android 5.1 y anteriores (API 22 y anteriores)
Todos los permisos se otorgan automáticamente en el momento de la instalación. No se requieren solicitudes de permisos en tiempo de ejecución.
Android 6.0 y posteriores (API 23+)
Los permisos peligrosos deben solicitarse en tiempo de ejecución. Para el SDK iTPV-PC:
- Permisos de Bluetooth (
BLUETOOTH,BLUETOOTH_ADMIN) se consideran permisos normales y se otorgan automáticamente. - Permisos de red (
INTERNET,ACCESS_NETWORK_STATE) también son permisos normales y se otorgan automáticamente.
Como resultado, no se requieren solicitudes de permisos en tiempo de ejecución para la funcionalidad principal del SDK iTPV-PC en cualquier versión de Android, ya que todos los permisos requeridos están clasificados como permisos normales por la plataforma Android.
Consideraciones adicionales para versiones modernas de Android
Android 12+ (API 31+)
Si tu aplicación tiene como objetivo Android 12 o superior, puede encontrar nuevos requisitos de permisos de Bluetooth introducidos por la plataforma:
BLUETOOTH_SCAN: Requerido para descubrir dispositivos Bluetooth cercanos.BLUETOOTH_CONNECT: Requerido para conectarse a dispositivos Bluetooth vinculados.
Aunque la documentación del SDK iTPV-PC (versión 2.5.3) no requiere explícitamente estos permisos, los dispositivos Android 12+ pueden exigirlos dependiendo de su versión de SDK objetivo y los detalles de implementación.
Si encuentras problemas de conectividad Bluetooth en dispositivos Android 12+, considera añadir estos permisos a tu manifiesto:
<!-- Opcional: Permisos de Bluetooth para Android 12+ -->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />Y solicítalos en tiempo de ejecución antes de inicializar la conexión con el PIN pad:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
val permissions = arrayOf(
Manifest.permission.BLUETOOTH_SCAN,
Manifest.permission.BLUETOOTH_CONNECT
)
requestPermissions(permissions, BLUETOOTH_PERMISSION_REQUEST_CODE)
}Permiso de ubicación (Android 6.0 - 11)
En las versiones de Android 6.0 a 11, el escaneo de Bluetooth LE puede requerir el permiso de ubicación (ACCESS_FINE_LOCATION) aunque el SDK no utilice la funcionalidad GPS. Este es un requisito de la plataforma, no un requisito del SDK.
Si encuentras problemas de escaneo Bluetooth en dispositivos Android 6.0-11, es posible que debas añadir:
<!-- Opcional: Requerido para escaneo Bluetooth LE en Android 6-11 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
android:maxSdkVersion="30" />Y solicítalo en tiempo de ejecución en las versiones de Android afectadas.
Solución de problemas
Fallo en la conexión Bluetooth
- Verifica que los cuatro permisos requeridos estén declarados en el
AndroidManifest.xml. - Asegúrate de que el Bluetooth esté activado en el dispositivo Android.
- Confirma que el PIN pad esté encendido y en modo de emparejamiento.
- Comprueba que el número de serie del PIN pad coincida con la configuración.
Fallo en la autorización de red
- Verifica que el permiso
INTERNETesté declarado. - Comprueba la conectividad de red en el dispositivo.
- Confirma que el entorno configurado sea el correcto (integración, certificación o producción).
- Verifica que las credenciales del terminal sean válidas.
Problemas específicos de Android 12+
- Añade los permisos
BLUETOOTH_SCANyBLUETOOTH_CONNECT. - Solicita estos permisos en tiempo de ejecución antes de la inicialización del PIN pad.
- Asegúrate de que los usuarios otorguen el permiso de “Dispositivos cercanos” cuando se les solicite.
Próximos pasos
- Añadir el SDK a tu Proyecto: Incluye la biblioteca iTPV-PC en tu aplicación Android.
- Inicio Rápido: Tu Primera Venta: Inicializa el SDK y procesa una transacción de prueba.
- Ciclo de Vida de la Transacción: Comprende las etapas del flujo de pago.