Health Connect에서 건강 데이터를 읽어 문자(SMS)로 공유하는 안드로이드 앱입니다.
이 프로젝트는 현재 문자 전송 중심으로 정리되어 있습니다.
- 특정 날짜 건강 데이터 조회
- 저장된 수신자에게 문자 전송
- 예약 시각에 백그라운드 자동 문자 발송
- 연락처에서 전화번호 선택
- PDF 공유
- 수신자 저장은
문자(SMS)만 지원합니다. - 예약 전송 시점에 앱이 Health Connect 데이터를 다시 읽고 자동 문자를 보냅니다.
- 최근 앱 목록에서 앱을 닫아도 일반적으로 예약 문자는 동작합니다.
- 다만 강제 종료, 제조사 절전 정책, 권한 누락 시 예약 전송이 실패할 수 있습니다.
- Health Connect 데이터 조회
- 걸음 수
- 심박수
- 수면
- 체중
- 혈압
- 혈당
- 산소포화도
- 이동 거리
- 소모 칼로리
- 문자 직접 전송
- 예약 문자 자동 전송
- 수신자 관리
- 연락처에서 전화번호 선택
- PDF 공유
앱에서 사용하는 핵심 권한은 아래와 같습니다.
android.permission.SEND_SMSandroid.permission.READ_CONTACTSandroid.permission.POST_NOTIFICATIONS- Health Connect 읽기 권한
android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND
예약 문자 자동 발송을 정상적으로 사용하려면 아래가 모두 필요합니다.
- SMS 권한 허용
- Health Connect 읽기 권한 허용
- Health Connect 백그라운드 읽기 권한 허용
- 전송 화면에서 저장된 수신자를 선택하거나 전화번호를 직접 입력합니다.
- 선택한 건강 데이터를 문자 내용으로 구성해 문자 앱으로 전송합니다.
- 수신자별로 여러 개의 예약 시각을
시:분기준으로 저장할 수 있습니다. - 예약 시각이 되면 앱이 백그라운드에서 실행됩니다.
- 그 시점의 Health Connect 데이터를 다시 읽습니다.
- 읽은 데이터를 문자 형식으로 정리해 저장된 번호로 자동 발송합니다.
- Kotlin
- Android Gradle build
minSdk 26targetSdk 36
./gradlew assembleDebug
디버그 APK:
app/build/outputs/apk/debug/app-debug.apk
./gradlew assembleRelease
서명된 릴리즈 APK:
app/build/outputs/apk/release/app-release.apk
현재 프로젝트에는 로컬 배포용 릴리즈 서명 설정이 연결되어 있습니다.
- keystore 파일:
app/healthpass-release.jks - 설정 파일:
keystore.properties - alias:
healthpass-release
주의:
keystore.properties와*.jks는.gitignore에 포함되어 있어 GitHub에 올라가지 않습니다.- 서명 비밀번호와 keystore 파일은 공개 저장소에 절대 올리면 안 됩니다.
- 다른 환경에서도 동일 서명으로 릴리즈를 다시 빌드하려면 아래 두 파일을 안전한 곳에 별도로 보관해야 합니다.
app/healthpass-release.jkskeystore.properties
디버그 APK 설치:
adb install -r app/build/outputs/apk/debug/app-debug.apk
릴리즈 APK 설치:
adb install -r app/build/outputs/apk/release/app-release.apk
- 메인 화면:
app/src/main/java/com/healthpass/app/ui/MainActivity.kt - 전송 화면:
app/src/main/java/com/healthpass/app/ui/SendActivity.kt - 수신자 관리:
app/src/main/java/com/healthpass/app/ui/RecipientsActivity.kt - Health Connect 읽기:
app/src/main/java/com/healthpass/app/data/HealthConnectManager.kt - 수신자 저장소:
app/src/main/java/com/healthpass/app/data/RecipientStore.kt - 자동 예약:
app/src/main/java/com/healthpass/app/util/AutoSendScheduler.kt - 자동 발송 워커:
app/src/main/java/com/healthpass/app/util/AutoSendWorker.kt - SMS 발송 유틸:
app/src/main/java/com/healthpass/app/util/SmsSender.kt
- 메인 화면에서 건강 데이터를 불러온다.
- 전송 화면에서 저장된 수신자 또는 직접 입력 번호를 선택한다.
- 문자 버튼으로 전송한다.
- 수신자 관리에서 문자 번호를 등록한다.
- 예약 전송을 켠다.
- 예약 시각을 현재 시각보다 2~3분 뒤로 설정한다.
- 앱을 닫아 둔 상태에서 예약 시각을 기다린다.
- 문자 수신 여부를 확인한다.
- Play Store 배포용 구조는 아닙니다.
- 현재 릴리즈 서명은 로컬 공유 및 수동 설치를 위한 용도입니다.
- 자동 문자 발송 기능은 단말 문자 환경, Health Connect 권한 상태, 제조사 배터리 정책의 영향을 받습니다.