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

时间:2019-04-11 11:49:00

标签: java android arcore

我在项目中使用了ARCore,需要保存ARCore的状态以在以后使用。问题在于ARCore没有提供任何设置状态的功能。然后的想法是序列化Session对象,然后在需要时反序列化。

我首先尝试创建一个Session的子类,该子类实现了Serializable,但是却给出了多个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对象才能存储它。

1 个答案:

答案 0 :(得分:0)

我认为您将无法序列化Session并在以后恢复它。您可以做的是存储锚点信息,以便以后使用。 AR Core Cloud Anchors和Azure Spatial Anchors之类的服务可以帮助您做到这一点。