cloud_anchor_java
및 persistent_cloud_anchor_java
샘플 앱에서 클라우드 앵커를 호스팅하고 확인해 보세요.
어떤 샘플 앱을 사용해야 할까요?
클라우드 앵커는 ARCore API 클라우드 엔드포인트에서 호스팅되는 앵커입니다. 이 API를 사용하면 사용자가 동일한 앱에서 환경을 공유할 수 있습니다. 영구 클라우드 앵커는 24시간 이상 호스팅될 수 있는 클라우드 앵커입니다.
persistent_cloud_anchor_java
는 공동작업 프로젝트 사용 사례를 구현한 것입니다. 키 없는 승인을 사용하여 ARCore API 호출을 승인합니다. Firebase 백엔드를 사용하여 기기 간에 클라우드 앵커 ID를 공유하지 않기 때문에 훨씬 쉽게 시작하고 실행할 수 있습니다.cloud_anchor_java
는 멀티 플레이어 사용 사례를 구현한 것입니다. API 키를 사용하여 ARCore API 호출을 승인합니다.
기본 요건
요구사항
하드웨어
- 최신 버전의 Google Play AR 서비스가 설치된 ARCore 지원 기기
- 기기를 개발 머신에 연결하기 위한 USB 케이블
소프트웨어
- Android 스튜디오 버전 3.0 이상, Android SDK 플랫폼 버전 7.0 (API 수준 24) 이상
- 다음 두 가지 방법 중 하나로 다운로드할 수 있는 Android용 ARCore SDK
<ph type="x-smartling-placeholder">
- </ph>
- GitHub에서 다운로드하여 머신에 압축을 풉니다.
- 다음 명령어로 저장소를 클론합니다.
git clone https://github.com/google-ar/arcore-android-sdk.git
Android 스튜디오에서 샘플 앱 열기
ARCore SDK는 클라우드 앵커 기능을 보여주는 cloud_anchor_java
및 persistent_cloud_anchor_java
샘플 앱을 제공합니다. Android 스튜디오에서 앱을 열려면 다음 단계를 따르세요.
영구 클라우드 앵커
Android 스튜디오에서 Open을 클릭합니다.
시스템에서 arcore-android-sdk 디렉터리가 저장된 위치로 이동합니다. 전체 SDK 폴더를 열지 마세요. 대신 샘플 > persistent_cloud_anchor_java를 클릭하고 열기를 클릭합니다.
클라우드 앵커
Android 스튜디오에서 Open을 클릭합니다.
시스템에서 arcore-android-sdk 디렉터리가 저장된 위치로 이동합니다. 전체 SDK 폴더를 열지 마세요. 대신 샘플 > cloud_anchor_java를 클릭하고 열기를 클릭합니다.
클라우드 앵커 ID 공유 설정
클라우드 앵커 ID는 호스팅된 클라우드 앵커를 식별하는 문자열입니다. 앵커는 호스팅된 앵커에 연결된 3D 객체를 확인하거나 렌더링하는 데 사용됩니다.
영구 클라우드 앵커
클라우드 앵커 ID 공유는 앱에서 로컬로 유지됩니다. 이 경우 별도로 취해야 할 조치는 없습니다.
클라우드 앵커
cloud_anchor_java
샘플 앱은 Firebase의 실시간 데이터베이스를 사용하여 기기 간에 클라우드 앵커 ID를 공유합니다. 자체 앱에서 다른 솔루션을 사용할 수 있습니다.
- 앱에 Firebase를 직접 추가합니다.
cloud_anchor_java
패키지 이름은com.google.ar.core.examples.java.cloudanchor
입니다.main/AndroidManifest.xml
에서 찾을 수 있습니다. - 앱에 Firebase를 추가할 때 생성한
google-services.json
파일을 다운로드합니다. - Firebase로 실시간 데이터베이스 만들기
- Android 스튜디오에서 프로젝트의
app
디렉터리에google-services.json
파일을 추가합니다.
ARCore API 호출 승인
ARCore API 호출을 승인하여 프로젝트의 클라우드 앵커를 호스팅하고 확인합니다. 있습니다. Google에서 ARCore API 사용 Cloud와 Keyless'를 승인 또는 영구 클라우드 앵커 광고의 API 키 승인 클라우드 앵커
샘플 앱 빌드 및 실행
영구 클라우드 앵커
앱 실행
- 기기에 개발자 옵션과 USB 디버깅이 사용 설정되어 있는지 확인합니다.
- USB를 통해 기기를 개발 머신에 연결합니다.
- Android 스튜디오에서 기기를 배포 타겟으로 선택하고 Run을 클릭합니다.
persistent_cloud_anchor_java
가 기기에서 실행되면 ARCore에서 기기 카메라 앞에 있는 비행기를 감지하게 됩니다.
Google Cloud 승인에 실패하면 문제 해결 단계를 참조하세요.
앵커 배치
- 앱이 평면을 감지하기 시작하면 화면을 탭하여 감지된 평면 중 하나에 앵커를 배치합니다.
- 호스트 버튼을 탭하여 배치된 앵커를 호스팅합니다. 이렇게 하면 ARCore API로 호스트 요청이 전송됩니다. 이 API에는 근처의 시각적 요소를 기준으로 앵커의 위치를 나타내는 데이터가 포함됩니다.
호스트 요청이 성공하면 배치된 위치에 앵커가 설정되고 클라우드 앵커 ID가 할당됩니다. 호스트 요청이 성공하면 앱은 방 코드를 표시해야 합니다. 이 코드를 사용하여 모든 기기에서 이 회의실의 이전에 호스팅된 앵커에 액세스할 수 있습니다.
앵커 해결
- 확인을 탭하고 이전에 반환한 회의실 코드를 입력하여 이 채팅방에서 호스팅되는 앵커에 액세스합니다. 이렇게 하면 ARCore API로 확인 요청이 전송되고 이 API는 현재 방에서 호스팅되는 모든 앵커의 ID를 반환합니다.
persistent_cloud_anchor_java
는 이 ID를 사용하여 호스팅된 앵커에 연결된 3D 객체를 렌더링합니다.
클라우드 앵커
앱 실행
- 기기에 개발자 옵션과 USB 디버깅이 사용 설정되어 있는지 확인합니다.
- USB를 통해 기기를 개발 머신에 연결합니다.
- Android 스튜디오에서 기기를 배포 타겟으로 선택하고 Run을 클릭합니다.
cloud_anchor_java
가 기기에서 실행되면 ARCore에서 기기 카메라 앞에 있는 비행기를 감지하게 됩니다.
오류: com.google.firebase.database.DatabaseException: Failed to get FirebaseDatabase instance: Specify DatabaseURL within FirebaseApp or from your getInstance
이 오류가 발생하면 firebase_url
속성이 google-services.json
에 있는지 확인하세요. 실시간 데이터베이스가 생성되었는지 확인하고 google-services.json
를 다운로드하여 이 속성의 올바른 값을 가져올 수 있습니다.
앵커 배치
- 앱이 평면을 감지하기 시작하면 화면을 탭하여 감지된 평면 중 하나에 앵커를 배치합니다.
- 호스트 버튼을 탭하여 배치된 앵커를 호스팅합니다. 이렇게 하면 ARCore API로 호스트 요청이 전송됩니다. 이 API에는 근처의 시각적 요소를 기준으로 앵커의 위치를 나타내는 데이터가 포함됩니다.
성공적인 호스트 요청은 배치된 위치에 앵커를 설정하고 클라우드 앵커 ID를 할당합니다. 호스트 요청이 성공하면 앱은 방 코드를 표시해야 합니다. 이 코드를 사용하여 모든 기기에서 이 회의실의 이전에 호스팅된 앵커에 액세스할 수 있습니다.
앵커 해결
- 확인을 탭하고 이전에 반환한 회의실 코드를 입력하여 이 채팅방에서 호스팅되는 앵커에 액세스합니다. 이렇게 하면 ARCore API로 확인 요청이 전송되고 이 API는 현재 방에서 호스팅되는 모든 앵커의 ID를 반환합니다.
cloud_anchor_java
는 이 ID를 사용하여 호스팅된 앵커에 연결된 3D 객체를 렌더링합니다.
다음 단계
- 영구 클라우드 앵커가 포함된 ARCore 클라우드 앵커 Codelab을 사용하여 클라우드 앵커 앱을 만듭니다.
- 클라우드 앵커 개발자 가이드를 사용하여 앱에 클라우드 앵커를 통합하는 방법을 알아보세요.
- Cloud Anchors Management API를 사용하여 ARCore 앱 외부의 클라우드 앵커를 관리합니다.