Dowiedz się, jak używać usług zakotwiczonych Cloud we własnych aplikacjach.
Wymagania wstępne
Upewnij się, że znasz podstawowe pojęcia związane z AR. i dowiedz się, jak skonfigurować sesję ARCore, zanim przejdziesz dalej.
Jeśli dopiero zaczynasz korzystać z Cloud Anchors:
- Upewnij się, że wiesz, jak działają kotwice i Cloud Anchor.
- Aby poznać wymagania systemowe oraz instrukcje konfiguracji i instalacji, przeczytaj krótki przewodnik dotyczący Cloud Anchors.
Włączanie interfejsu ARCore API
Zanim użyjesz w aplikacji punktów orientacyjnych w chmurze, musisz najpierw włączyć w niej interfejs ARCore API.
Włącz funkcje Cloud Anchor w konfiguracji sesji
Po włączeniu funkcji Cloud Anchors w aplikacji włącz funkcje Cloud Anchors w konfiguracji sesji AR, aby aplikacja mogła się komunikować z interfejsem ARCore API:
Java
Config config = new Config(session); config.setCloudAnchorMode(Config.CloudAnchorMode.ENABLED); session.configure(config);
Kotlin
val config = Config(session) config.cloudAnchorMode = Config.CloudAnchorMode.ENABLED session.configure(config)
Hostowanie Cloud Anchor
Gospodarz rozpoczyna rozmowę od połączenia z numerem hostCloudAnchorAsync()
. ARCore prześle dane wizualne, pozy urządzenia i pozy kotwicy do interfejsu ARCore API. Następnie interfejs API przetwarza te informacje, aby utworzyć mapę funkcji 3D, zwracając w końcu unikalny identyfikator Cloud Anchor dla kotwicy na urządzeniu.
Czas życia hostowanej kotwicy możesz też przedłużyć za pomocą interfejsu ARCore Cloud Anchor Management API.
Aby dokończyć hosting Cloud Anchor, Twoja aplikacja powinna wykonać te czynności:
- Zadzwoń pod numer
hostCloudAnchorAsync()
. - Poczekaj na połączenie zwrotne lub sprawdzaj stan Future, aż się zakończy.
- Sprawdzanie stanu wyniku , aby określić, czy operacja się powiodła, lub zinterpretować kod błędu, jeśli operacja się nie udała.
- Udostępnij wynikowy identyfikator Cloud Anchor innym klientom i użyj go do rozpoznania elementu Cloud Anchor z:
resolveCloudAnchorAsync()
Sprawdź jakość mapowania punktów obiektu
Session.FeatureMapQuality
wskazuje jakość punktów cech zarejestrowanych przez ARCore w ciągu ostatnich kilku sekund przy danej pozycji kamery. Punkty dokujące w chmurze hostowane przy użyciu funkcji o wyższej jakości są ogólnie bardziej dokładne. Użyj narzędzia Session.estimateFeatureMapQualityForHosting()
, aby uzyskać oszacowanie jakości mapy cech w przypadku danej pozycji aparatu.
Wartość | Opis |
---|---|
INSUFFICIENT |
Jakość punktów cech zidentyfikowanych na podstawie pozycji w ciągu ostatnich kilku sekund jest niska. Ten stan wskazuje, że ARCore prawdopodobnie będzie miało większe trudności z rozpoznaniem punktu Cloud Anchor. Zachęć użytkownika do przeniesienia urządzenia, aby można było wyświetlić wybraną pozycję uchwytu Cloud Anchor pod różnymi kątami. |
SUFFICIENT |
Jakość punktów cech zidentyfikowanych w pozycji w ciągu ostatnich kilku sekund jest prawdopodobnie wystarczająca do rozpoznania przez ARCore rozwiązania Cloud Anchor, choć dokładność ustalenia pozycji będzie prawdopodobnie mniejsza. Zachęć użytkownika do przeniesienia urządzenia, aby można było wyświetlić wybraną pozycję uchwytu Cloud Anchor pod różnymi kątami. |
GOOD |
Jakość punktów cech zidentyfikowanych w pozycji w ciągu ostatnich kilku sekund jest prawdopodobnie wystarczająca, aby ARCore mogła z dużą dokładnością rozpoznać punkt zakotwiczenia w chmurze. |
Rozwiązywanie problemów z hostowaną wcześniej kotwicą
Wywołaj resolveCloudAnchorAsync()
, aby rozpoznać hostowaną usługę Cloud Anchor. Interfejs ARCore API okresowo porównuje wizualne cechy sceny z mapą cech 3D kotwicy, aby określić pozycję i orientację użytkownika względem kotwicy. Po znalezieniu dopasowania interfejs API zwraca pozę hostowanego Cloud Anchora.
Możesz inicjować sekwencje dla wielu elementów Cloud Anchor. Możesz jednocześnie wykonywać maksymalnie 40 operacji Cloud Anchor.
Anulowanie operacji i usuwanie usługi Cloud Anchor
Aby anulować oczekującą operację Cloud Anchor, zadzwoń pod numer cancel()
.
Aby usunąć z aplikacji już rozwiązany punkt Cloud Anchor, wywołaj funkcję detach()
.
Sprawdzanie stanu wyniku operacji Cloud Anchor
Użyj Anchor.CloudAnchorState, aby sprawdzić stan operacji hostingu lub rozwiązywania, w tym błędów.
Wartość | Opis |
---|---|
ERROR_CLOUD_ID_NOT_FOUND |
Nie udało się rozwiązać problemu, ponieważ interfejs ARCore API nie mógł znaleźć podanego identyfikatora Cloud Anchor. |
ERROR_HOSTING_DATASET_PROCESSING_FAILED |
Nie udało się przeprowadzić hostingu, ponieważ serwer nie może przetworzyć zbioru danych w przypadku danej kotwicy. Spróbuj ponownie, gdy urządzenie zbierze więcej danych o środowisku. |
ERROR_HOSTING_SERVICE_UNAVAILABLE |
Nie udało się połączyć z interfejsem ARCore API. Możliwych jest kilka przyczyn takiej sytuacji. Urządzenie może być w trybie samolotowym lub nie mieć połączenia z internetem. żądanie wysłane na serwer mogło przekroczyć limit czasu bez odpowiedzi; Może to być spowodowane słabą jakością połączenia sieciowego, brakiem dostępu do DNS, problemami z zaporą sieciową lub innymi czynnikami, które mogą wpływać na możliwość połączenia urządzenia z interfejsem ARCore API. |
ERROR_INTERNAL |
Zadanie hostingu lub rozwiązywania tej kotwicy zakończyło się błędem wewnętrznym. Aplikacja nie powinna próbować naprawić tego błędu. |
ERROR_NOT_AUTHORIZED |
Upoważnienie podane w aplikacji jest nieprawidłowe. Zobacz Rozwiązywanie problemów z autoryzacją interfejsu ARCore API. |
ERROR_RESOLVING_SDK_VERSION_TOO_NEW |
Nie udało się rozwiązać problemu kotwicy Cloud, ponieważ wersja pakietu SDK użyta do rozwiązania kotwicy jest nowsza od wersji użytej do jej hostowania i niezgodna z nią. |
ERROR_RESOLVING_SDK_VERSION_TOO_OLD |
Nie udało się rozwiązać punktu Cloud Anchor, ponieważ wersja pakietu SDK używana do rozwiązywania punktu jest starsza i niezgodna z wersją używaną do jego hostowania. |
ERROR_RESOURCE_EXHAUSTED |
Aplikacja wyczerpała limit żądań przypisany do danego projektu Google Cloud. W Google Developers Console musisz poprosić o zwiększenie limitu dla interfejsu ARCore API w projekcie. |
SUCCESS |
Zadanie hostingu lub rozwiązywania tej kotwicy zostało ukończone. |
Limity interfejsu API dotyczące żądań hosta i rozwiązywania
Interfejs ARCore API ma następujące limity przepustowości żądań:
Typ limitu | Maksimum | Czas trwania | Dotyczy: |
---|---|---|---|
Liczba kotwic | bez ograniczeń | Nie dotyczy | projekt |
Prośby o zakotwiczenie hosta | 30 | minuta | Adres IP i projekt |
Anuluj prośby o rozwiązanie | 300 | minuta | Adres IP i projekt |
Sprawdzone metody zapewnienia wygody użytkowników
Poleć im, aby wykonali te czynności, by zapewnić wygodę korzystania z aplikacji:
- Zanim spróbujesz umieścić reklamę zakotwiczoną, odczekaj kilka sekund po rozpoczęciu sesji (umieszczając obiekt itp.). Dzięki temu śledzenie ustabilizuje się po pewnym czasie.
- Wybierając lokalizację, w której chcesz umieścić kotwicę, znajdź obszar z elementami wizualnymi, które są łatwe do odróżnienia od siebie. Aby uzyskać jak najlepszy wynik, unikaj powierzchni odbijających światło oraz bez elementów wizualnych, takich jak puste białe ściany.
Trzymaj kamerę tak, aby znalazł się w centrum zainteresowania, i poruszaj urządzeniem wokół siebie w centrum zainteresowania, aby nanieść na mapę środowisko pod różnymi kątami, zachowując przy tym podobną odległość fizyczną. Pomoże to rejestrować więcej danych wizualnych i ułatwi rozwiązywanie problemów.
Podczas hostowania i rozwiązywania punktów Cloud Anchors upewnij się, że w środowisku rzeczywistym jest wystarczające oświetlenie.
Zasady wycofywania
- Aplikacje z pakietem ARCore SDK 1.12.0 lub nowszym podlegają zasadom wycofywania interfejsu Cloud Anchor API.
- Aplikacje utworzone z pakietem SDK ARCore 1.11.0 lub starszym nie mogą hostować ani rozwiązywać punktów Cloud Anchors, ponieważ pakiet SDK korzysta ze starszego, przestarzałego interfejsu ARCore API.
Co dalej?
- Utwórz aplikację Cloud Anchors za pomocą poziomych punktów odniesienia Cloud Anchors w ARCore z trwałymi punktami odniesienia Cloud Anchors w usłudze Codelab.
- Zapoznaj się z procesem hostowania i rozwiązywania połączeń Cloud Anchors, korzystając z 2 przykładowych aplikacji w krótkim wprowadzeniu do Cloud Anchors.
- Możesz zarządzać kotwicami Cloud poza aplikacją ARCore za pomocą interfejsu Cloud Anchors Management API.
- Więcej informacji o korzystaniu z ARCore w aplikacji znajdziesz w dokumentacji referencyjnej Androida.