Документация для Android naviar SDK
Установка
Откройте
build.gradle
вашего проекта. ДобавьтеmavenCentral
репозиторий, если он отсутствует:allprojects {
repositories {
mavenCentral()
...
}
}В
build.gradle
вашего модуля добавьте зависимость:dependencies {
...
implementation "io.naviar:vps-sdk:0.7.0"
}Синхронизируйте проект с файлами Gradle
Пример
Пример приложения можно найти в репозитории. Склонируйте репозиторий и сбилдите, как обычное приложение для Android. Убедитесь, что целевое устройство поддерживает ARCore.
Видео инструкция по запуску тестового проекта:
Выбор локации
В данной версии сервиса VPS вам доступно 7 тестовых локаций. Для переключения между ними в example проекте используйте поле location в SceneFragment
Использование
Android Manifest
Добавьте в AndroidManifest.xml
эту строку, если android min sdk меньше 24:
<uses-sdk tools:overrideLibrary="io.naviar.vps_sdk, com.google.ar.sceneform.ux" />
По умолчанию VPS SDK
имеет ограниченную видимость в Google Play Store для устройств с поддержкой ARCore
<uses-feature
android:name="android.hardware.camera.ar"
android:required="true" />
Чтобы переопределить видимость, добавьте следующие строки в AndroidManifest.xml
вашего приложения
<uses-feature
android:name="android.hardware.camera.ar"
android:required="false"
tools:replace="android:required" />
Использование VpsArFragment
Вы можете использовать встроенный VpsArFragment
. Вы можете добавить его в xml или в коде:
res/layout/main_activity.xml
<androidx.fragment.app.FragmentContainerView
android:id="@+id/vFragmentContainer"
android:name="io.naviar.vps_sdk.ui.VpsArFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
или
src/main/java/…/MainActivity.kt
supportFragmentManager.beginTransaction()
.replace(R.id.vFragmentContainer, VpsArFragment())
.commit()
Установка VpsService
Создайте конфигурацию для VpsService
:
val vpsConfig = VpsConfig.getIndoorConfig(<locationIds>)
или
val vpsConfig = VpsConfig.getOutdoorConfig(<locationIds>)
Установите VpsService
:
val vpsService = vpsArFragment.vpsService
vpsService.setVpsConfig(vpsConfig)
//optional
vpsService.setVpsCallback(object : VpsCallback {
override fun onSuccess() {
}
override fun onFail() {
}
override fun onStateChange(state: State) {
}
override fun onError(error: Throwable) {
}
})
Для запуска VpsService
:
vpsService.startVpsService()
Для остановки VpsService
:
vpsService.stopVpsService()
VpsService в пользовательском ArFragment
Для инициализации VPS SDK в классе вашего приложения добавьте следующий код:
VpsSdk.init(this)
Создание нового instance для VpsService
:
VpsService.newInstance(): VpsService
Вам также потребуется синхронизировать жизненный цикл VpsService
с жизненным циклом вашего ArFragment
:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
vpsService.bindArSceneView(arSceneView)
}
override fun onResume() {
super.onResume()
vpsService.resume()
}
override fun onPause() {
super.onPause()
vpsService.pause()
}
override fun onDestroy() {
super.onDestroy()
vpsService.destroy()
}
После этого вы можете использовать VpsService
, как указано выше.
Размещение 3D моделей
Вы можете добавлять свои 3D модели используя worldNode
в VpsService
vpsService.worldNode
Все объекты, размещенные под worldNode
, будут иметь правильную глобальную позицию после локализации.