Android용 Cloud Anchors 빠른 시작

cloud_anchor_javapersistent_cloud_anchor_java 샘플 앱에서 클라우드 앵커를 호스팅하고 확인해 보세요.

어떤 샘플 앱을 사용해야 하나요?

클라우드 앵커는 ARCore API 클라우드 엔드포인트에서 호스팅되는 앵커입니다. 이 API를 사용하면 사용자는 동일한 앱에서 환경을 공유할 수 있습니다. 영구 클라우드 앵커는 24시간 이상 호스팅할 수 있는 클라우드 앵커입니다.

  • persistent_cloud_anchor_java는 공동작업 프로젝트 사용 사례의 구현입니다. 키 없는 승인을 사용하여 ARCore API 호출을 승인합니다. 기기 간에 클라우드 앵커 ID를 공유하는 데 Firebase 백엔드를 사용하지 않으므로 훨씬 쉽게 시작하고 실행할 수 있습니다.
  • cloud_anchor_java는 멀티플레이어 사용 사례의 구현입니다. API 키를 사용하여 ARCore API 호출을 승인합니다.

기본 요건

요구사항

하드웨어

소프트웨어

  • Android SDK 플랫폼 버전 7.0 (API 수준 24) 이상이 설치된 Android 스튜디오 버전 3.0 이상
  • Android용 ARCore SDK: 다음 두 가지 방법 중 하나로 다운로드할 수 있습니다.
    • GitHub에서 다운로드하여 머신에 압축을 풉니다.
    • 다음 명령어로 저장소를 클론합니다.
      git clone https://github.com/google-ar/arcore-android-sdk.git

Android 스튜디오에서 샘플 앱 열기

ARCore SDK는 클라우드 앵커 기능을 보여주는 cloud_anchor_javapersistent_cloud_anchor_java 샘플 앱을 제공합니다. 다음 단계에 따라 Android 스튜디오에서 앱을 엽니다.

영구 클라우드 앵커

  1. Android 스튜디오에서 Open을 클릭합니다.

  2. 시스템에서 arcore-android-sdk 디렉터리가 저장된 위치로 이동합니다. 전체 SDK 폴더를 열지 마세요. 대신 samples > persistent_cloud_anchor_java로 이동하여 Open을 클릭합니다.

클라우드 앵커

  1. Android 스튜디오에서 Open을 클릭합니다.

  2. 시스템에서 arcore-android-sdk 디렉터리가 저장된 위치로 이동합니다. 전체 SDK 폴더를 열지 마세요. 대신 samples > cloud_anchor_java로 이동하여 Open을 클릭하세요.

클라우드 앵커 ID 공유 설정

클라우드 앵커 ID는 호스팅된 클라우드 앵커를 식별하는 문자열입니다. 앵커는 호스팅된 앵커에 첨부된 3D 객체를 결정하거나 렌더링하는 데 사용됩니다.

영구 클라우드 앵커

클라우드 앵커 ID 공유는 앱에서 로컬로 유지 관리되며 여기에서는 아무 작업도 수행할 필요가 없습니다.

클라우드 앵커

cloud_anchor_java 샘플 앱은 Firebase의 실시간 데이터베이스를 사용하여 기기 간에 클라우드 앵커 ID를 공유합니다. 자체 앱에서 다른 솔루션을 사용할 수 있습니다.

  1. 수동으로 앱에 Firebase를 추가합니다. cloud_anchor_java 패키지 이름은 com.google.ar.core.examples.java.cloudanchor입니다. main/AndroidManifest.xml에서 찾을 수 있습니다.
  2. 앱에 Firebase를 추가할 때 생성한 google-services.json 파일을 다운로드합니다.
  3. Firebase로 실시간 데이터베이스 만들기
  4. Android 스튜디오에서 google-services.json 파일을 프로젝트의 app 디렉터리에 추가합니다.

ARCore API 호출 승인

ARCore API 호출을 승인하여 앱의 클라우드 앵커를 호스팅하고 확인합니다. Google Cloud에서 ARCore API 사용 단계를 따르고 영구 클라우드 앵커의 키 없는 승인 또는 클라우드 앵커의 API 키 승인을 사용합니다.

샘플 앱 빌드 및 실행

영구 클라우드 앵커

앱 실행

  1. 기기에서 개발자 옵션과 USB 디버깅이 사용 설정되어 있는지 확인합니다.
  2. USB를 통해 기기를 개발 머신에 연결합니다.
  3. Android 스튜디오에서 기기를 배포 대상으로 선택하고 Run을 클릭합니다.

persistent_cloud_anchor_java가 기기에서 실행되고 ARCore에서 기기의 카메라 앞에 있는 비행기를 감지하도록 요청합니다.

Google Cloud 승인에 실패하면 문제 해결 단계를 참조하세요.

앵커 배치

  1. 앱에서 평면을 감지하기 시작하면 화면을 탭하여 감지된 평면 중 하나에 앵커를 배치합니다.
  2. 호스트 버튼을 탭하여 배치된 앵커를 호스팅합니다. 그러면 호스트 요청이 ARCore API로 전송되며, 이 API에는 앵커 근처의 시각적 지형지물을 기준으로 앵커의 위치를 나타내는 데이터가 포함됩니다.

호스트 요청이 성공하면 배치된 위치에 앵커를 설정하고 클라우드 앵커 ID를 할당합니다. 호스트 요청이 성공하면 앱에서 방 코드를 표시해야 합니다. 이 코드를 사용하여 어느 기기에서나 이 회의실에 대해 이전에 호스팅된 앵커에 액세스할 수 있습니다.

앵커 확인

  1. 확인을 탭하고 이전에 반환된 방 코드를 입력하여 이 회의실에서 호스팅되는 앵커에 액세스합니다. 그러면 ARCore API로 확인 요청이 전송되며, 이 API는 현재 방에서 호스팅되는 모든 앵커의 ID를 반환합니다. persistent_cloud_anchor_java는 이 ID를 사용하여 호스팅된 앵커에 연결된 3D 객체를 렌더링합니다.

클라우드 앵커

앱 실행

  1. 기기에서 개발자 옵션과 USB 디버깅이 사용 설정되어 있는지 확인합니다.
  2. USB를 통해 기기를 개발 머신에 연결합니다.
  3. Android 스튜디오에서 기기를 배포 대상으로 선택하고 Run을 클릭합니다.

cloud_anchor_java가 기기에서 실행되고 ARCore에서 기기의 카메라 앞에 있는 비행기를 감지하도록 요청합니다.

오류: com.google.firebase.database.DatabaseException: Failed to get FirebaseDatabase instance: Specify DatabaseURL within FirebaseApp or from your getInstance

이 오류가 발생하면 google-services.jsonfirebase_url 속성이 있는지 확인합니다. 실시간 데이터베이스가 생성되었는지 확인하고 google-services.json를 다운로드하면 이 속성의 올바른 값을 가져올 수 있습니다.


앵커 배치

  1. 앱에서 평면을 감지하기 시작하면 화면을 탭하여 감지된 평면 중 하나에 앵커를 배치합니다.
  2. 호스트 버튼을 탭하여 배치된 앵커를 호스팅합니다. 그러면 호스트 요청이 ARCore API로 전송되며, 이 API에는 앵커 근처의 시각적 지형지물을 기준으로 앵커의 위치를 나타내는 데이터가 포함됩니다.

호스트 요청이 성공하면 배치된 위치에 앵커를 설정하고 클라우드 앵커 ID를 할당합니다. 호스트 요청이 성공하면 앱에서 방 코드를 표시해야 합니다. 이 코드를 사용하여 어느 기기에서나 이 회의실에 대해 이전에 호스팅된 앵커에 액세스할 수 있습니다.

앵커 확인

  1. 확인을 탭하고 이전에 반환된 방 코드를 입력하여 이 회의실에서 호스팅되는 앵커에 액세스합니다. 그러면 ARCore API로 확인 요청이 전송되며, 이 API는 현재 방에서 호스팅되는 모든 앵커의 ID를 반환합니다. cloud_anchor_java는 이 ID를 사용하여 호스팅된 앵커에 연결된 3D 객체를 렌더링합니다.

다음 단계