Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

shinehand/HealthPass

Repository files navigation

HealthPass

Health Connect에서 건강 데이터를 읽어 문자(SMS)로 공유하는 안드로이드 앱입니다.

이 프로젝트는 현재 문자 전송 중심으로 정리되어 있습니다.

  • 특정 날짜 건강 데이터 조회
  • 저장된 수신자에게 문자 전송
  • 예약 시각에 백그라운드 자동 문자 발송
  • 연락처에서 전화번호 선택
  • PDF 공유

빠른 요약

  • 수신자 저장은 문자(SMS)만 지원합니다.
  • 예약 전송 시점에 앱이 Health Connect 데이터를 다시 읽고 자동 문자를 보냅니다.
  • 최근 앱 목록에서 앱을 닫아도 일반적으로 예약 문자는 동작합니다.
  • 다만 강제 종료, 제조사 절전 정책, 권한 누락 시 예약 전송이 실패할 수 있습니다.

주요 기능

  • Health Connect 데이터 조회
    • 걸음 수
    • 심박수
    • 수면
    • 체중
    • 혈압
    • 혈당
    • 산소포화도
    • 이동 거리
    • 소모 칼로리
  • 문자 직접 전송
  • 예약 문자 자동 전송
  • 수신자 관리
  • 연락처에서 전화번호 선택
  • PDF 공유

권한

앱에서 사용하는 핵심 권한은 아래와 같습니다.

  • android.permission.SEND_SMS
  • android.permission.READ_CONTACTS
  • android.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 26
  • targetSdk 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.jks
    • keystore.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 권한 상태, 제조사 배터리 정책의 영향을 받습니다.

About

건강정보 보내기

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /