java - 如何在 ARCore 中序列化会话对象?
问题描述
我在一个项目中使用 ARCore,需要从 ARCore 中保存状态以供以后使用。问题是 ARCore 没有提供任何函数来设置状态。然后的想法是序列化 Session 对象,然后在需要时反序列化它。
我首先尝试创建一个实现 Serializable的Session的子类,但这给出了多个 NotSerializableException 错误。现在我正在尝试用 Gson 解决这个问题,使用它的 ExclusionStrategy 来排除不可序列化的类。我不确定如何解决这个问题。
在 MainActivity 中:
Gson gson = new GsonBuilder()
.addSerializationExclusionStrategy(new Strategy())
.create();
String jsonString = gson.toJson(session);
战略:
@Override
public boolean shouldSkipField(FieldAttributes field) {
return field.getDeclaredType().equals(** WHAT TO PUT HERE **.class);
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
return false;
}
我希望将 Session 对象序列化为 JSON 对象以便能够存储它。
解决方案
我认为您将无法序列化您的 Session 并在以后恢复它。您可以做的是存储锚信息以供以后使用。AR Core Cloud Anchors 和 Azure Spatial Anchors 等服务可以帮助您做到这一点。
推荐阅读
- python-3.x - 保存和加载 Pytorch 模型检查点以进行推理不起作用
- c# - efcore 2.2 在使用 LazyLoadedProxies 时关闭特定查询的代理创建
- swift - 无法将类型“IndexPath”的值分配给类型“Int”
- ios - React Native xcode 项目“标头搜索路径”
- gmail - 在 Gmail 中转发电子邮件的唯一 URL
- sql-server - 选择必须包含某些值的行
- python - reticulate ImportError:Rstudio 1.2 版中没有名为 pandas 的模块
- python - 如何将 **kwargs 传递给另一个函数,该函数的值已更改?
- red - 如何使用红色语言创建一个从 1000 到 9999 的系列
- matlab - cd()之后删除类的matlab meta.class句柄