사이드프로젝트 slecs

결제 알림 앱의 Android 15 대응

목차

v1.0.5: 원격 지원 안정화 + 화면 상시 켜짐 + Android 15 대응

Android 앱(v1.0.5) 관련 작업을 진행했음.

결제 알림 수신·처리용 앱인데, 알림 캡처 → 파싱 → 서버 전송 흐름으로 동작함. 이번 작업에서는 안정성과 Android 버전 호환성을 중점적으로 개선했음.

주요 변경

항목 내용
Android 14/15 대응 MediaProjection API 변경사항 반영
원격 지원 안정화 WebSocket 연결 유지 및 재연결 로직 보강
FCM 처리 알림 수신 서비스 로직 개선

알림 캡처 로직은 NotificationListenerService를 기반으로 하고, 캡처한 텍스트를 정규식으로 파싱해서 금액·은행 정보를 추출함. 파싱 실패 시 AI 폴백으로 재시도하는 구조도 붙어 있음.

Android 버전마다 권한 처리 방식이 달라서, 특히 Android 13+ 이후 알림 권한이 런타임 요청으로 바뀐 부분을 처리하느라 손이 많이 갔음.

override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
    return START_STICKY
}

배포 시에는 keystore 서명 설정을 로컬 local.properties에 분리해서 레포에 올라가지 않게 관리 중임.

작업 규모는 크지 않았지만 운영 안정성을 위한 필요한 변경이었음. 이런 작은 수정들이 쌓여서 전체 시스템의 신뢰도를 높임.

주문 매칭 로직

입금 알림이 도착하면 금액, 발신자, 시간 조건으로 주문을 매칭함. 동일 금액 주문이 여러 건일 경우 가장 최근 주문을 우선 매칭함.

비회원 주문도 매칭 대상에 포함해야 했음. 회원 기반으로만 체크하면 비회원 주문이 누락됨. 이 부분이 버그로 발견돼서 쿼리 조건을 수정했음.

다음

댓글 0

첫 댓글 달아줘.