我在项目中使用了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对象才能存储它。
答案 0 :(得分:0)
我认为您将无法序列化Session并在以后恢复它。您可以做的是存储锚点信息,以便以后使用。 AR Core Cloud Anchors和Azure Spatial Anchors之类的服务可以帮助您做到这一点。