Метод хоста CloudAnchor() устарел. Как использовать новый метод хоста CloudAnchorAsync()?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Метод хоста CloudAnchor() устарел. Как использовать новый метод хоста CloudAnchorAsync()?

Сообщение 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);
}
}


Подробнее здесь: https://stackoverflow.com/questions/786 ... orasync-me
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»