Files
iTartanas/DEBUG_MOVIMIENTOS.md
T
2026-03-09 22:23:07 +01:00

176 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🔧 Actualización - Debug de Movimientos
## Problema Reportado
Los movimientos no se estaban mostrando en la aplicación, solo el número de tarjeta y el saldo.
## ✅ Cambios Implementados
### 1. Mejorado el Manejo de Errores
- **Antes**: Los errores al leer movimientos se "tragaban" silenciosamente
- **Ahora**: Se capturan y muestran en la UI para debugging
### 2. Comandos APDU Múltiples
He implementado 3 intentos diferentes para leer los registros de eventos:
```kotlin
// Intento 1: SFI 0x08 (file 8)
0x80 0x2B [record] 0x45 0x1D
// Intento 2: SFI 0x07
0x80 0x2B [record] 0x3D 0x1D
// Intento 3: Comando simplificado
0x80 0x2B [record] 0x05 0x1D
```
Esto aumenta las posibilidades de éxito con diferentes implementaciones de tarjetas Calypso.
### 3. Status Words Flexibles
Ahora la app reconoce:
- `9000` - Éxito
- `6A83` - Registro no encontrado (normal si no hay movimientos)
- `6A82` - Archivo no encontrado (tarjeta sin historial)
### 4. UI con Información de Debug
Ahora verás uno de estos escenarios:
#### Caso A: Movimientos Encontrados ✅
```
┌─────────────────────────────┐
│ Últimos Movimientos │
│ │
│ Carga +10.00 € │
│ 15/03/2026 14:30 │
│ Línea 12 │
│ ... │
└─────────────────────────────┘
```
#### Caso B: Sin Movimientos (con debug) 🔍
```
┌─────────────────────────────┐
│ Últimos Movimientos │
│ │
│ No se pudieron leer los │
│ movimientos │
│ │
│ Debug: Registro no │
│ encontrado │
└─────────────────────────────┘
```
## 🧪 Qué Probar Ahora
1. **Reinstala la app** con el nuevo APK:
```
app\build\outputs\apk\debug\app-debug.apk
```
2. **Lee tu tarjeta nuevamente**
3. **Observa la sección "Últimos Movimientos"**:
- Si ves movimientos: ¡Perfecto! ✅
- Si ves "No se pudieron leer...": Lee el mensaje de debug
## 📊 Posibles Resultados
### Resultado 1: Funciona Ahora ✅
Si los movimientos aparecen, significa que uno de los nuevos comandos funcionó.
### Resultado 2: "Debug: Registro no encontrado" ⚠️
**Significado**: La tarjeta no tiene registros de eventos disponibles para leer.
**Posibles causas**:
- La tarjeta es nueva y no tiene movimientos todavía
- Los registros de eventos están en un archivo diferente
- La tarjeta Millennium usa un formato propietario diferente
**Solución**: Es normal. Algunas tarjetas no almacenan historial localmente.
### Resultado 3: Otro mensaje de error 🔍
Si ves otro error, por favor compártelo conmigo para investigar más.
## 🔬 Próximos Pasos según el Resultado
### Si Funciona:
- ✅ Ya está todo listo
- Puedes usar la app normalmente
- Los movimientos se mostrarán cuando estén disponibles
### Si No Funciona:
Necesitaré más información:
1. **¿Qué dice el mensaje de debug?**
- El texto exacto que aparece en rojo
2. **¿Es una tarjeta usada o nueva?**
- Si es nueva, puede no tener historial
3. **¿Puedes leer movimientos en la app oficial de iTranvias?**
- Esto confirmaría que los datos existen
## 💡 Información Técnica
### Por qué pueden faltar los movimientos:
1. **Formato Propietario**: Algunas ciudades usan extensiones propietarias del formato Calypso
2. **Archivo Diferente**: Los eventos pueden estar en un SFI (Short File Identifier) diferente
3. **Sin Historial Local**: Algunas tarjetas no almacenan historial en el chip, solo en servidores
4. **Encriptación**: Algunos campos pueden estar encriptados y requerir claves específicas
### Comandos que estamos probando:
Las tarjetas Calypso usan el comando READ RECORD (`0x2B`) con diferentes parámetros:
- **P1**: Número de registro (1, 2, 3)
- **P2**: SFI × 8 + modo (ej: `0x45` = SFI 8, modo 5)
- **Le**: Longitud esperada (`0x1D` = 29 bytes)
Estamos probando los SFI más comunes:
- SFI 7 (típico para eventos de validación)
- SFI 8 (típico para log de transacciones)
- Modo directo sin SFI
## 📱 Instalación del APK Actualizado
El nuevo APK está en:
```
app\build\outputs\apk\debug\app-debug.apk
```
Para instalar:
1. Transfiere el APK a tu teléfono
2. Abre el APK y permite la instalación
3. Si ya tenías la app instalada, se actualizará automáticamente
## ✅ Build Exitoso
```
BUILD SUCCESSFUL ✅
35 tareas ejecutadas
7 cambios aplicados
```
---
## 🎯 Resumen
He mejorado significativamente la lectura de movimientos:
- ✅ Múltiples comandos APDU (3 intentos)
- ✅ Mejor manejo de errores
- ✅ Información de debug visible
- ✅ Status words más flexibles
**Próximo paso**: Prueba la app actualizada y cuéntame qué mensaje ves en la sección de movimientos.
---
**Actualización**: 9 de Marzo, 2026
**Versión**: 1.1 (Debug Build)
**Estado**: Listo para probar