Я разработал приложение 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
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
PHP устарел: implode(): передача связующей строки после того, как массив устарел [закрыто]
Anonymous » » в форуме Php - 0 Ответы
- 83 Просмотры
-
Последнее сообщение Anonymous
-
-
-
«SCNetworkReachabilityCreateWithAddress» устарел: впервые устарел в iOS 17.4.
Anonymous » » в форуме IOS - 0 Ответы
- 44 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как исправить, что parser() устарел, а setSigningKey(java.security.Key) устарел?
Anonymous » » в форуме JAVA - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как исправить, что parser() устарел, а setSigningKey(java.security.Key) устарел?
Anonymous » » в форуме JAVA - 0 Ответы
- 21 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как исправить Parser () устарел, и SetSigningKey (java.security.key) устарел?
Anonymous » » в форуме JAVA - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-