디지털헬스 플랫폼 기업인 주식회사 라이프시맨틱스(대표 송승재)는 경험 기반 치료여정 공유 서비스인 오하(OHA, ‘오늘 하루 어땠나요’)의 안드로이드 버전 모바일 앱을 출시했다
이번 오하는 라이프시맨틱스가 지난 해, 베타 버전으로 출시한 커뮤니티 기반 암환자 예후관리 서비스인 에필케어의 상용 버전이다. 암 환자는 자신의 진단정보와 치료단계에 대한 정보를 서비스에 입력하면 수술부터 퇴원 후 통원치료, 회복 재활 등 치료여정 전반을 예측한 리포트를 받아볼 수 있다.
최근 신종 코로나 바이러스 감염증(코로나19)로 원격의료, 비대면 의료가 부각되고, 이와 동시에 관련 디지털 의료기기 시장이 급성장하며,
특히 휴노이, 삼성, 애플의 스마트워치가 식품의약품안전처(이하 식약처) 품목허가를 받으면서 관심을 모으고 있다.
단순 심박수 확인을 넘어 혈압측정, 부정맥 유무 판별, 퍼스널 트레이닝 등 심혈관 질환 진단 및 건강관리를 병원에 직접 방문하지 않아도 일상생활에서 가능하게 해준다.
다만, 이전 웨어러블 혹은 정보통신기술(ICT)를 이용한 의료기기에 대한 안전성·유효성에 대한 우려는 계속 나오고 있다.
식약처 의료기기심사부 디지털헬스기기팀은 정보통신기술(ICT)을 이용한 의료기기의 안전성과 유효성을 보다 더 확보하기 위해 최근 모든 의료기기에 사이버보안을 확보하도록 고시 개정('19.11월)한 바 있으며, '의료용 모바일 앱 안전관리 지침', '인공지능 의료기기 허가심사 가이드라인' 등 각종 민원인 안내서를 발간하여 과학적이고 명확하게 허가와 안전 관리하도록 노력하고 있다는 입장이다.
◇ 코로나-19에 대응한 신(新)수출동력 창출과 상품 중심 무역구조 혁신을 위해 「K-서비스 해외진출 활성화 방안」 마련(11개 관계부처 합동) → 한류·K-방역으로 높아진 국가브랜드를 바탕으로, ’25년 서비스 10대 수출 강국(’19년 16위) 도약을 위해 3대 지원체계(기업・시장・인프라) 혁신 및 콘텐츠·헬스케어 등 6대 유망 K-서비스 집중 육성
❶ 디지털 수출 플랫폼 전면 구축, 자금지원 확대, 트랙레코드 확보 등 서비스 기업들이 해외진출 과정에서 당면하는 현장애로 밀착 해소
❷ 제조·서비스연계, K-브랜드 활용, 전략적 ODA 강화 등 코로나-19에 대응한 전략적 수출 지원으로 글로벌 시장 경쟁력 제고
❸ 해외 지재권 보호, 서비스 무역통계 혁신, 범부처 총력지원체계 구축 등 제조업에 못지않은 수출인프라 구축
2020년 4월 16일이후에 게시되는 신규 앱 또는 업데이트에는 모두 최신 버전의 개발자 프로그램 정책이 바로 적용됩니다.2020년 4월 16일자로 Google Play에 게재된 앱은이 날짜로부터 60일이내에 정책을 준수해야 합니다.
정기 결제
개발자는 앱 내에서 제공하는 정기 결제 서비스나 콘텐츠에 관해 사용자를 오도해서는 안 됩니다. 모든 인앱 프로모션 또는 스플래시 화면에서 명확한 정보를 전달하는 것이 중요합니다.
앱 내에서는혜택에 관해 투명하게 설명해야 합니다. 여기에는 정기 결제 가격, 결제 주기 빈도, 앱을 사용하려면 정기 결제가 필요한지 등 혜택의 조건을 명확하게 설명하는 것이 포함됩니다. 사용자가 추가적인 조치를 취하지 않아도 이러한 정보를 검토할 수 있어야 합니다.
다음은 자주 발생하는 위반 사례입니다.
월별 정기 결제에서 사용자에게 정기 결제가 자동 갱신되어 매달 요금이 청구된다는 사실을 알리지 않습니다.
연간 정기 결제에서 월간 정기 결제 가격을 가장 두드러지게 표시합니다.
정기 결제 가격 및 약관이 완전히 현지화되어 있지 않습니다.
인앱 프로모션에서 정기 결제 없이도 콘텐츠에 액세스할 수 있다는 점(가능한 경우)을 명확하게 설명하지 않습니다.
SKU 이름이 정기 결제의 성격을 정확하게 전달하지 않습니다. 예를 들어 자동으로 반복 요금이 청구되는 정기 결제의 이름이 '무료 체험판'인 경우가 있습니다.
① 닫기 버튼이 명확하게 보이지 않으며 사용자가 정기 결제 혜택을 수락하지 않아도 기능에 액세스할 수 있다는 사실을 이해할 수 없습니다.
② 혜택에 월별 가격만 표시되어 있어 사용자가 정기 결제를 신청할 때 6개월 가격이 청구된다는 사실을 이해할 수 없습니다.
③ 혜택에 신규 할인 가격만 표시되어 있어 신규 할인 기간이 종료된 후 어떤 가격이 자동으로 청구되는지 사용자가 이해할 수 없습니다.
④ 혜택은 사용자가 혜택의 전체 내용을 이해할 수 있도록 이용약관과 동일한 언어로 현지화되어 있어야 합니다.
무료 체험판 및 신규 할인 혜택
사용자가 정기 결제에 등록하기 전:기간, 가격, 사용 가능한 콘텐츠 또는 서비스 설명 등 제안의 조건을 명확하고 정확하게 설명해야 합니다. 무료 체험판이 유료 정기 결제로 전환되는 시점과 방식, 유료 정기 결제의 가격, 유료 정기 결제로 전환하고 싶지 않은 경우 정기 결제를 취소할 수 있음을 사용자에게 알려야 합니다.
다음은 자주 발생하는 위반 사례입니다.
무료 체험판 기간 또는 신규 할인 가격의 적용 기간을 명확하게 설명하지 않습니다.
제안 기간이 끝나면 유료 정기 결제로 자동 전환된다는 사실을 사용자에게 명확하게 설명하지 않습니다.
체험판 없이도 콘텐츠를 사용할 수 있다는 점(가능한 경우)을 명확하게 설명하지 않습니다.
현지화가 완료되지 않은 가격 및 약관을 제공합니다.
① 닫기 버튼이 명확하게 보이지 않아서 사용자가 무료 체험판에 가입하지 않아도 기능에 액세스할 수 있다는 사실을 알 수 없습니다.
② 제안에서 무료 체험판임을 강조해서 사용자는 체험 기간이 종료되면 자동으로 요금이 청구된다는 사실을 알 수 없습니다.
③ 제안에 체험 기간이 명시되어 있지 않아서 사용자가 정기 결제 콘텐츠에 언제까지 무료로 액세스할 수 있는지 알 수 없습니다.
④ 제안은 사용자가 제안의 전체 내용을 이해할 수 있도록 이용약관과 동일한 언어로 현지화되어 있어야 합니다.
정기 결제 관리 및 취소
개발자는 사용자가 정기 결제를 관리 또는 취소하는 방법이 앱에 명확하게 설명되어 있는지 확인해야 합니다.
Google Play 정책에 따르면 사용자가 Google Play의 앱에서 신청한 정기 결제를 취소할 경우 현재 결제 기간에 해당하는 요금을 환불받을 수 없지만, 취소일과 관계없이 현재 결제 기간에서 남은 기간 동안 정기 결제 콘텐츠를 계속해서 이용할 수 있습니다. 사용자의 정기 결제 취소는 현재 결제 기간이 지난 이후 적용됩니다.
개발자는 콘텐츠 또는 액세스 권한 제공자로서 사용자에게 더 유리한 환불 정책을 직접 적용할 수 있습니다. 사용자에게 정기 결제, 취소, 환불 정책의 변경사항을 알리고 정책이 관련 법규를 준수하도록 할 의무는 개발자에게 있습니다.
DisplayMetricsDisplayMetrics구조체에서 디스플레이에 대한 정보를 얻을 수 있다.
Android는 직접 픽셀 매핑을 사용하지 않지만 소수의 Density Independent Pixel 값을 사용하여 실제 화면 크기에 맞게 조정한다.
| 방법1. 밀도 상수로 구분
DisplayMetrics metrics = getResources().getDisplayMetrics();
int density = metrics.densityDpi
// DENSITY_xxx 상수 (120, 160, 213, 240, 320, 480 또는 640 dpi) 중 하나
** 실제lcd 픽셀 밀도가 필요한 경우
수평 및 수직 밀도 각각에 대해metrics.xdpi및metrics.ydpi속성에서 가져올 수 있다.
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
// will either be DENSITY_LOW, DENSITY_MEDIUM or DENSITY_HIGH
int dpiClassification = dm.densityDpi;
// these will return the actual dpi horizontally and vertically
float xDpi = dm.xdpi;
float yDpi = dm.ydpi;
// 4이전의 API 수준을 대상으로 지정하는 경우 : metrics.density = 참조밀도(160dpi)의 소수점 배율 인수
int densityDpi = (int)(metrics.density * 160f);
| Sample Code
int densityDpi = getResources().getDisplayMetrics().densityDpi;
switch (densityDpi)
{
case DisplayMetrics.DENSITY_LOW:
// LDPI : density == 0.75f
break;
case DisplayMetrics.DENSITY_MEDIUM:
// MDPI : density >= 1.0f && density < 1.5f
break;
case DisplayMetrics.DENSITY_TV:
case DisplayMetrics.DENSITY_HIGH:
// HDPI : density == 1.5f
break;
case DisplayMetrics.DENSITY_XHIGH:
case DisplayMetrics.DENSITY_280:
// XHDPI : density > 1.5f && density <= 2.0f
break;
case DisplayMetrics.DENSITY_XXHIGH:
case DisplayMetrics.DENSITY_360:
case DisplayMetrics.DENSITY_400:
case DisplayMetrics.DENSITY_420:
// XXHDPI : density > 2.0f && density <= 3.0f
break;
case DisplayMetrics.DENSITY_XXXHIGH:
case DisplayMetrics.DENSITY_560:
// XXXHDPI : density > 4.0f
break;
}
There are some predefined system sounds, for the system sound ID in the range 1000 to 2000 (decimal), as shown below (from 2.0 to 5.0 beta). The system sounds are all stored in/System/Library/Audio/UISounds/.
Sound ID
File name (iPhone)
File name(iPod Touch)
Category
Note
1000
new-mail.caf
new-mail.caf
MailReceived
1001
mail-sent.caf
mail-sent.caf
MailSent
1002
Voicemail.caf
Voicemail.caf
VoicemailReceived
1003
ReceivedMessage.caf
ReceivedMessage.caf
SMSReceived
1004
SentMessage.caf
SentMessage.caf
SMSSent
1005
alarm.caf
sq_alarm.caf
CalendarAlert
1006
low_power.caf
low_power.caf
LowPower
1007
sms-received1.caf
sms-received1.caf
SMSReceived_Alert
1008
sms-received2.caf
sms-received2.caf
SMSReceived_Alert
1009
sms-received3.caf
sms-received3.caf
SMSReceived_Alert
1010
sms-received4.caf
sms-received4.caf
SMSReceived_Alert
1011
-
-
SMSReceived_Vibrate
1012
sms-received1.caf
sms-received1.caf
SMSReceived_Alert
1013
sms-received5.caf
sms-received5.caf
SMSReceived_Alert
1014
sms-received6.caf
sms-received6.caf
SMSReceived_Alert
1015
Voicemail.caf
Voicemail.caf
-
Available since 2.1
1016
tweet_sent.caf
tweet_sent.caf
SMSSent
Available since 5.0
1020
Anticipate.caf
Anticipate.caf
SMSReceived_Alert
Available since 4.2
1021
Bloom.caf
Bloom.caf
SMSReceived_Alert
Available since 4.2
1022
Calypso.caf
Calypso.caf
SMSReceived_Alert
Available since 4.2
1023
Choo_Choo.caf
Choo_Choo.caf
SMSReceived_Alert
Available since 4.2
1024
Descent.caf
Descent.caf
SMSReceived_Alert
Available since 4.2
1025
Fanfare.caf
Fanfare.caf
SMSReceived_Alert
Available since 4.2
1026
Ladder.caf
Ladder.caf
SMSReceived_Alert
Available since 4.2
1027
Minuet.caf
Minuet.caf
SMSReceived_Alert
Available since 4.2
1028
News_Flash.caf
News_Flash.caf
SMSReceived_Alert
Available since 4.2
1029
Noir.caf
Noir.caf
SMSReceived_Alert
Available since 4.2
1030
Sherwood_Forest.caf
Sherwood_Forest.caf
SMSReceived_Alert
Available since 4.2
1031
Spell.caf
Spell.caf
SMSReceived_Alert
Available since 4.2
1032
Suspense.caf
Suspense.caf
SMSReceived_Alert
Available since 4.2
1033
Telegraph.caf
Telegraph.caf
SMSReceived_Alert
Available since 4.2
1034
Tiptoes.caf
Tiptoes.caf
SMSReceived_Alert
Available since 4.2
1035
Typewriters.caf
Typewriters.caf
SMSReceived_Alert
Available since 4.2
1036
Update.caf
Update.caf
SMSReceived_Alert
Available since 4.2
1050
ussd.caf
ussd.caf
USSDAlert
1051
SIMToolkitCallDropped.caf
SIMToolkitCallDropped.caf
SIMToolkitTone
1052
SIMToolkitGeneralBeep.caf
SIMToolkitGeneralBeep.caf
SIMToolkitTone
1053
SIMToolkitNegativeACK.caf
SIMToolkitNegativeACK.caf
SIMToolkitTone
1054
SIMToolkitPositiveACK.caf
SIMToolkitPositiveACK.caf
SIMToolkitTone
1055
SIMToolkitSMS.caf
SIMToolkitSMS.caf
SIMToolkitTone
1057
Tink.caf
Tink.caf
PINKeyPressed
1070
ct-busy.caf
ct-busy.caf
AudioToneBusy
There was no category for this sound before 4.0.
1071
ct-congestion.caf
ct-congestion.caf
AudioToneCongestion
There was no category for this sound before 4.0.
1072
ct-path-ack.caf
ct-path-ack.caf
AudioTonePathAcknowledge
There was no category for this sound before 4.0.
1073
ct-error.caf
ct-error.caf
AudioToneError
There was no category for this sound before 4.0.
1074
ct-call-waiting.caf
ct-call-waiting.caf
AudioToneCallWaiting
There was no category for this sound before 4.0.
1075
ct-keytone2.caf
ct-keytone2.caf
AudioToneKey2
There was no category for this sound before 4.0.
1100
lock.caf
sq_lock.caf
ScreenLocked
1101
unlock.caf
sq_lock.caf
ScreenUnlocked
1102
-
-
FailedUnlock
1103
Tink.caf
sq_tock.caf
KeyPressed
1104
Tock.caf
sq_tock.caf
KeyPressed
1105
Tock.caf
sq_tock.caf
KeyPressed
1106
beep-beep.caf
sq_beep-beep.caf
ConnectedToPower
1107
RingerChanged.caf
RingerChanged.caf
RingerSwitchIndication
1108
photoShutter.caf
photoShutter.caf
CameraShutter
1109
shake.caf
shake.caf
ShakeToShuffle
Available since 3.0
1110
jbl_begin.caf
jbl_begin.caf
JBL_Begin
Available since 3.0
1111
jbl_confirm.caf
jbl_confirm.caf
JBL_Confirm
Available since 3.0
1112
jbl_cancel.caf
jbl_cancel.caf
JBL_Cancel
Available since 3.0
1113
begin_record.caf
begin_record.caf
BeginRecording
Available since 3.0
1114
end_record.caf
end_record.caf
EndRecording
Available since 3.0
1115
jbl_ambiguous.caf
jbl_ambiguous.caf
JBL_Ambiguous
Available since 3.0
1116
jbl_no_match.caf
jbl_no_match.caf
JBL_NoMatch
Available since 3.0
1117
begin_video_record.caf
begin_video_record.caf
BeginVideoRecording
Available since 3.0
1118
end_video_record.caf
end_video_record.caf
EndVideoRecording
Available since 3.0
1150
vc~invitation-accepted.caf
vc~invitation-accepted.caf
VCInvitationAccepted
Available since 4.0
1151
vc~ringing.caf
vc~ringing.caf
VCRinging
Available since 4.0
1152
vc~ended.caf
vc~ended.caf
VCEnded
Available since 4.0
1153
ct-call-waiting.caf
ct-call-waiting.caf
VCCallWaiting
Available since 4.1
1154
vc~ringing.caf
vc~ringing.caf
VCCallUpgrade
Available since 4.1
1200
dtmf-0.caf
dtmf-0.caf
TouchTone
1201
dtmf-1.caf
dtmf-1.caf
TouchTone
1202
dtmf-2.caf
dtmf-2.caf
TouchTone
1203
dtmf-3.caf
dtmf-3.caf
TouchTone
1204
dtmf-4.caf
dtmf-4.caf
TouchTone
1205
dtmf-5.caf
dtmf-5.caf
TouchTone
1206
dtmf-6.caf
dtmf-6.caf
TouchTone
1207
dtmf-7.caf
dtmf-7.caf
TouchTone
1208
dtmf-8.caf
dtmf-8.caf
TouchTone
1209
dtmf-9.caf
dtmf-9.caf
TouchTone
1210
dtmf-star.caf
dtmf-star.caf
TouchTone
1211
dtmf-pound.caf
dtmf-pound.caf
TouchTone
1254
long_low_short_high.caf
long_low_short_high.caf
Headset_StartCall
1255
short_double_high.caf
short_double_high.caf
Headset_Redial
1256
short_low_high.caf
short_low_high.caf
Headset_AnswerCall
1257
short_double_low.caf
short_double_low.caf
Headset_EndCall
1258
short_double_low.caf
short_double_low.caf
Headset_CallWaitingActions
1259
middle_9_short_double_low.caf
middle_9_short_double_low.caf
Headset_TransitionEnd
1300
Voicemail.caf
Voicemail.caf
SystemSoundPreview
1301
ReceivedMessage.caf
ReceivedMessage.caf
SystemSoundPreview
1302
new-mail.caf
new-mail.caf
SystemSoundPreview
1303
mail-sent.caf
mail-sent.caf
SystemSoundPreview
1304
alarm.caf
sq_alarm.caf
SystemSoundPreview
1305
lock.caf
sq_lock.caf
SystemSoundPreview
1306
Tock.caf
sq_tock.caf
KeyPressClickPreview
The category was SystemSoundPreview before 3.2.
1307
sms-received1.caf
sms-received1.caf
SMSReceived_Selection
1308
sms-received2.caf
sms-received2.caf
SMSReceived_Selection
1309
sms-received3.caf
sms-received3.caf
SMSReceived_Selection
1310
sms-received4.caf
sms-received4.caf
SMSReceived_Selection
1311
-
-
SMSReceived_Vibrate
1312
sms-received1.caf
sms-received1.caf
SMSReceived_Selection
1313
sms-received5.caf
sms-received5.caf
SMSReceived_Selection
1314
sms-received6.caf
sms-received6.caf
SMSReceived_Selection
1315
Voicemail.caf
Voicemail.caf
SystemSoundPreview
Available since 2.1
1320
Anticipate.caf
Anticipate.caf
SMSReceived_Selection
Available since 4.2
1321
Bloom.caf
Bloom.caf
SMSReceived_Selection
Available since 4.2
1322
Calypso.caf
Calypso.caf
SMSReceived_Selection
Available since 4.2
1323
Choo_Choo.caf
Choo_Choo.caf
SMSReceived_Selection
Available since 4.2
1324
Descent.caf
Descent.caf
SMSReceived_Selection
Available since 4.2
1325
Fanfare.caf
Fanfare.caf
SMSReceived_Selection
Available since 4.2
1326
Ladder.caf
Ladder.caf
SMSReceived_Selection
Available since 4.2
1327
Minuet.caf
Minuet.caf
SMSReceived_Selection
Available since 4.2
1328
News_Flash.caf
News_Flash.caf
SMSReceived_Selection
Available since 4.2
1329
Noir.caf
Noir.caf
SMSReceived_Selection
Available since 4.2
1330
Sherwood_Forest.caf
Sherwood_Forest.caf
SMSReceived_Selection
Available since 4.2
1331
Spell.caf
Spell.caf
SMSReceived_Selection
Available since 4.2
1332
Suspense.caf
Suspense.caf
SMSReceived_Selection
Available since 4.2
1333
Telegraph.caf
Telegraph.caf
SMSReceived_Selection
Available since 4.2
1334
Tiptoes.caf
Tiptoes.caf
SMSReceived_Selection
Available since 4.2
1335
Typewriters.caf
Typewriters.caf
SMSReceived_Selection
Available since 4.2
1336
Update.caf
Update.caf
SMSReceived_Selection
Available since 4.2
1350
-
-
RingerVibeChanged
1351
-
-
SilentVibeChanged
4095
-
-
Vibrate
There was no category for this sound before 2.2. In the SDK this is the constantkSystemSoundID_Vibrate.