如何在 ARCore 中序列化会话对象?



我在项目中使用 ARCore,需要从 ARCore 中保存状态才能在以后的阶段使用它。问题是 ARCore 没有提供任何函数来设置状态。然后的想法是序列化会话对象,然后在需要时对其进行反序列化。

我首先尝试创建一个实现Serializable的Session子类,但这给出了多个NotSerializableException错误。现在我正在尝试使用 Gson 解决这个问题,使用其排除策略来排除不可序列化的类。我不确定如何处理这个问题。

在主活动中:

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;
}

我希望序列化为 JSON 对象的会话对象能够存储它。

我认为您将无法序列化会话并在以后恢复它。您可以做的是存储定位点信息以供以后使用。AR 核心云定位点和 Azure 空间定位点等服务可以帮助你做到这一点。

最新更新