AR 기반 건강 체크 앱 개발 방법
6253 단어 javaandroidaugmentedrealit
다행스럽게도 AR 엔진은 이를 매우 쉽게 해줍니다. 얼굴 추적 기능이 제공되며 곧 신체 추적도 지원할 예정입니다. 핵심 AR 알고리즘 덕분에 AR Engine은 운동 중 심박수, 호흡수, 얼굴 건강 상태 및 심박수 파형 신호를 실시간으로 모니터링할 수 있습니다. 예를 들어 실시간 운동 상태를 추적하거나 환자의 실시간 건강 검진을 수행하거나 노인이나 장애인과 같은 취약한 사용자의 실시간 건강 지표를 모니터링하는 등의 앱을 구축하는 데 사용할 수도 있습니다. AR 엔진을 사용하면 건강 또는 피트니스 앱을 가능하다고 생각했던 것보다 더 매력적이고 시각적으로 몰입하게 만들 수 있습니다.
장점 및 장치 모델 제한
데모 소개
간단한 데모를 통해 AR 엔진을 통합하고 인체 및 얼굴 추적 기능을 사용하는 방법을 파악할 수 있습니다.
ENABLE_HEALTH_DEVICE: 헬스 체크 활성화 여부를 나타냅니다.
HealthParameter: 심박수, 호흡수, 얼굴 특징을 기반으로 한 연령 및 성별 확률 및 심박수 파형 신호를 포함하는 건강 검진 매개변수입니다.
FaceDetectMode: 건강 상태 확인, 호흡 수 확인, 실시간 건강 확인 및 위의 세 가지 모두를 포함하는 얼굴 감지 모드입니다.
효과
다음은 소스 코드를 사용하여 데모를 실행하는 방법을 자세히 설명합니다.
주요 단계
1. Huawei Maven 리포지토리를 프로젝트 수준 build.gradle 파일에 추가합니다.
buildscript {
repositories {
maven { url 'http://developer.huawei.com/repo/'}
}
dependencies {
...
// Add the AppGallery Connect plugin configuration.
classpath 'com.huawei.agconnect:agcp:1.4.2.300'
}
}allprojects {
repositories {
maven { url 'http://developer.huawei.com/repo/'}
}
}
2. 앱 수준 build.gradle 파일에 SDK의 종속성을 추가합니다.
implementation 'com.huawei.hms:arenginesdk:3.7.0.3'
3. AndroidManifest.xml 파일에서 시스템 권한을 선언합니다.
<uses-permission android:name="android.permission.CAMERA" />
4.현재 기기에 AR Engine이 설치되어 있는지 확인합니다. 그렇다면 앱이 제대로 실행될 수 있습니다. 그렇지 않은 경우 앱은 자동으로 사용자를 AppGallery로 리디렉션하여 AR 엔진을 설치합니다.
boolean isInstallArEngineApk = AREnginesApk.isAREngineApkReady(this);
if (!isInstallArEngineApk && isRemindInstall) {
Toast.makeText(this, "Please agree to install.", Toast.LENGTH_LONG).show();
finish();
}
if (!isInstallArEngineApk) {
startActivity(new Intent(this, ConnectAppMarketActivity.class));
isRemindInstall = true;
}
return AREnginesApk.isAREngineApkReady(this);
키 코드
1.ARFaceTrackingConfig를 호출하고 ARSession 객체를 생성합니다. 그런 다음 사람 얼굴 감지 모드를 설정하고 동작 추적을 위한 AR 매개변수를 구성하고 동작 추적을 활성화합니다.
mArSession = new ARSession(this);
mArFaceTrackingConfig = new ARFaceTrackingConfig(mArSession);
mArFaceTrackingConfig.setEnableItem(ARConfigBase.ENABLE_HEALTH_DEVICE);
mArFaceTrackingConfig
.setFaceDetectMode(ARConfigBase.FaceDetectMode.HEALTH_ENABLE_DEFAULT.getEnumValue());
2.FaceHealthServiceListener를 호출하여 앱을 추가하고 상태 확인 상태 및 진행 상황을 전달합니다. 상태 확인 진행 상황을 가져오려면 handleProcessProgressEvent()를 호출하십시오.
mArSession.addServiceListener(new FaceHealthServiceListener() {
@Override
public void handleEvent(EventObject eventObject) {
if (!(eventObject instanceof FaceHealthCheckStateEvent)) {
return;
}
final FaceHealthCheckState faceHealthCheckState =
((FaceHealthCheckStateEvent) eventObject).getFaceHealthCheckState();
runOnUiThread(new Runnable() {
@Override
public void run() {
mHealthCheckStatusTextView.setText(faceHealthCheckState.toString());
}
});
}
@Override
public void handleProcessProgressEvent(final int progress) {
mHealthRenderManager.setHealthCheckProgress(progress);
runOnUiThread(new Runnable() {
@Override
public void run() {
setProgressTips(progress);
}
});
}
});
private void setProgressTips(int progress) {
String progressTips = "processing";
if (progress >= MAX_PROGRESS) {
progressTips = "finish";
}
mProgressTips.setText(progressTips);
mHealthProgressBar.setProgress(progress);
}
실시간으로 데이터를 업데이트하고 상태 확인 결과를 표시합니다.
mActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
mHealthParamTable.removeAllViews();
TableRow heatRateTableRow = initTableRow(ARFace.HealthParameter.PARAMETER_HEART_RATE.toString(),
healthParams.getOrDefault(ARFace.HealthParameter.PARAMETER_HEART_RATE, 0.0f).toString());
mHealthParamTable.addView(heatRateTableRow);
TableRow breathRateTableRow = initTableRow(ARFace.HealthParameter.PARAMETER_BREATH_RATE.toString(),
healthParams.getOrDefault(ARFace.HealthParameter.PARAMETER_BREATH_RATE, 0.0f).toString());
mHealthParamTable.addView(breathRateTableRow);
}
});
참조
AR 엔진 official website
AR 엔진 Development Guide
Reddit 개발자 토론에 참여하려면
GitHub 샘플 코드를 다운로드하려면
Stack Overflow 통합 문제를 해결하기 위해
Reference
이 문제에 관하여(AR 기반 건강 체크 앱 개발 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hmscore/how-to-develop-an-ar-based-health-check-app-4n49텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)