Android용 Cloud Anchors 빠른 시작

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

어떤 샘플 앱을 사용해야 할까요?

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

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

기본 요건

요구사항

하드웨어

소프트웨어

  • 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_javapersistent_cloud_anchor_java 샘플 앱을 제공합니다. Android 스튜디오에서 앱을 열려면 다음 단계를 따르세요.

영구 클라우드 앵커

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

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

클라우드 앵커

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

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

클라우드 앵커 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 스튜디오에서 프로젝트의 app 디렉터리에 google-services.json 파일을 추가합니다.

ARCore API 호출 승인

ARCore API 호출을 승인하여 프로젝트의 클라우드 앵커를 호스팅하고 확인합니다. 있습니다. Google에서 ARCore API 사용 CloudKeyless'를 승인 또는 영구 클라우드 앵커 광고의 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

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


앵커 배치

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

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

앵커 해결

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

다음 단계