Я разработал приложение Ar и использую методы hostCloudAnchor() иsolveCloudAnchor() для работы с облачными привязками в своем приложении. Теперь Google упомянул, что мы должны перейти на новую точку привязки ArCoreAPI до сентября 2023 года.
Старая конечная точка облачного API ARCore Cloud Anchor устарела и не будет поддерживаться после 31 августа 2023 г. Если ваше приложение использует этот API, вам необходимо как можно скорее обновить его, чтобы использовать новую конечную точку облака ARCore API.
Итак, я планирую переместить новый ArCoreAPI и использовать методы hostCloudAnchorAsync() и методыsolveCloudAnchorAsync(), но не могу четко понять использование этих методов и не могу найти последние примеры Cloud Anchor.
Вот как я пока создаю облачные привязки с помощью устаревших методов.
public class CloudAnchorActivity extends AppCompatActivity implements
BaseArFragment.OnSessionConfigurationListener {
private ArFragment anchorArFragment;
private enum AppCloudAnchorState{
NONE,
HOSTING,
HOSTED
}
private AppCloudAnchorState appCloudAnchorState = AppCloudAnchorState.NONE;
private Anchor anchor;
private boolean isPlaced;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_cloud_anchor);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
anchorArFragment = (ArFragment) getSupportFragmentManager().findFragmentById(R.id.cloudAnchorArFragment);
anchorArFragment.setOnSessionConfigurationListener(this);
anchorArFragment.setOnTapArPlaneListener((hitResult, plane, motionEvent) -> {
if (!isPlaced) {
anchor = anchorArFragment.getArSceneView().getSession().hostCloudAnchor(hitResult.createAnchor());
appCloudAnchorState = AppCloudAnchorState.HOSTING;
Toast.makeText(this, "Hosting Cloud Anchor...", Toast.LENGTH_SHORT).show();
createModel(anchor);
isPlaced = true;
}
});
anchorArFragment.getArSceneView().getScene().addOnUpdateListener(frameTime -> {
if (appCloudAnchorState != AppCloudAnchorState.HOSTING)
return;
Anchor.CloudAnchorState cloudAnchorState = anchor.getCloudAnchorState();
if (cloudAnchorState.isError()){
Toast.makeText(this, cloudAnchorState.toString(), Toast.LENGTH_SHORT).show();
} else if (cloudAnchorState == Anchor.CloudAnchorState.SUCCESS) {
appCloudAnchorState = AppCloudAnchorState.HOSTED;
String cloudAnchorId = anchor.getCloudAnchorId();
Toast.makeText(this, "Anchor Hosted Successfully, Anchor Id: "+cloudAnchorId, Toast.LENGTH_SHORT).show();
}
});
}
private void createModel(Anchor anchor) {
ModelRenderable.builder()
.setSource(this, R.raw.andy)
.setIsFilamentGltf(true)
.setAsyncLoadEnabled(true)
.build()
.thenAccept(modelRenderable -> placeModel(anchor,modelRenderable))
.exceptionally(throwable -> {
Toast.makeText(
this, "Unable to load model Andy", Toast.LENGTH_LONG).show();
return null;
});
}
private void placeModel(Anchor anchor, ModelRenderable modelRenderable) {
AnchorNode anchorNode = new AnchorNode(anchor);
anchorNode.setRenderable(modelRenderable);
anchorArFragment.getArSceneView().getScene().addChild(anchorNode);
}
@Override
public void onSessionConfiguration(Session session, Config config) {
config.setCloudAnchorMode(Config.CloudAnchorMode.ENABLED);
}
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... orasync-me
Метод хоста CloudAnchor() устарел. Как использовать новый метод хоста CloudAnchorAsync()? ⇐ Android
Форум для тех, кто программирует под Android
1719651098
Anonymous
Я разработал приложение Ar и использую методы hostCloudAnchor() иsolveCloudAnchor() для работы с облачными привязками в своем приложении. Теперь Google упомянул, что мы должны перейти на новую точку привязки ArCoreAPI до сентября 2023 года.
Старая конечная точка облачного API ARCore Cloud Anchor устарела и не будет поддерживаться после 31 августа 2023 г. Если ваше приложение использует этот API, вам необходимо как можно скорее обновить его, чтобы использовать новую конечную точку облака ARCore API.
Итак, я планирую переместить новый ArCoreAPI и использовать методы hostCloudAnchorAsync() и методыsolveCloudAnchorAsync(), но не могу четко понять использование этих методов и не могу найти последние примеры Cloud Anchor.
Вот как я пока создаю облачные привязки с помощью устаревших методов.
public class CloudAnchorActivity extends AppCompatActivity implements
BaseArFragment.OnSessionConfigurationListener {
private ArFragment anchorArFragment;
private enum AppCloudAnchorState{
NONE,
HOSTING,
HOSTED
}
private AppCloudAnchorState appCloudAnchorState = AppCloudAnchorState.NONE;
private Anchor anchor;
private boolean isPlaced;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_cloud_anchor);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
anchorArFragment = (ArFragment) getSupportFragmentManager().findFragmentById(R.id.cloudAnchorArFragment);
anchorArFragment.setOnSessionConfigurationListener(this);
anchorArFragment.setOnTapArPlaneListener((hitResult, plane, motionEvent) -> {
if (!isPlaced) {
anchor = anchorArFragment.getArSceneView().getSession().hostCloudAnchor(hitResult.createAnchor());
appCloudAnchorState = AppCloudAnchorState.HOSTING;
Toast.makeText(this, "Hosting Cloud Anchor...", Toast.LENGTH_SHORT).show();
createModel(anchor);
isPlaced = true;
}
});
anchorArFragment.getArSceneView().getScene().addOnUpdateListener(frameTime -> {
if (appCloudAnchorState != AppCloudAnchorState.HOSTING)
return;
Anchor.CloudAnchorState cloudAnchorState = anchor.getCloudAnchorState();
if (cloudAnchorState.isError()){
Toast.makeText(this, cloudAnchorState.toString(), Toast.LENGTH_SHORT).show();
} else if (cloudAnchorState == Anchor.CloudAnchorState.SUCCESS) {
appCloudAnchorState = AppCloudAnchorState.HOSTED;
String cloudAnchorId = anchor.getCloudAnchorId();
Toast.makeText(this, "Anchor Hosted Successfully, Anchor Id: "+cloudAnchorId, Toast.LENGTH_SHORT).show();
}
});
}
private void createModel(Anchor anchor) {
ModelRenderable.builder()
.setSource(this, R.raw.andy)
.setIsFilamentGltf(true)
.setAsyncLoadEnabled(true)
.build()
.thenAccept(modelRenderable -> placeModel(anchor,modelRenderable))
.exceptionally(throwable -> {
Toast.makeText(
this, "Unable to load model Andy", Toast.LENGTH_LONG).show();
return null;
});
}
private void placeModel(Anchor anchor, ModelRenderable modelRenderable) {
AnchorNode anchorNode = new AnchorNode(anchor);
anchorNode.setRenderable(modelRenderable);
anchorArFragment.getArSceneView().getScene().addChild(anchorNode);
}
@Override
public void onSessionConfiguration(Session session, Config config) {
config.setCloudAnchorMode(Config.CloudAnchorMode.ENABLED);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78685511/hostcloudanchor-method-is-depricated-how-to-use-new-hostcloudanchorasync-me[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия