无法使用回调 onXyzIjAvailable 获取点云

Cannot get Point Cloud using callback onXyzIjAvailable

我知道在 Whosebug 上有一些关于这个问题的帖子,但其中 none 有答案(Google 你在哪里?)。

当我测试示例中的增强现实示例应用时 google 已发布 一切都很好。我正在获取姿势和云点。

但是当我将相同的代码、gradle 配置等复制到我的应用程序中时,我只获得了姿势,没有点云。

相反,logcat 中有以下消息。

tango-xyzij-callback.cc:125 No points in point cloud.

我好像遗漏了一些项目构建配置,但我仔细检查了十几次却一无所获。

以下是我配置 Tango 对象的方式:

  TangoConfig config = mTango.getConfig(TangoConfig.CONFIG_TYPE_DEFAULT);
    config.putBoolean(TangoConfig.KEY_BOOLEAN_LOWLATENCYIMUINTEGRATION, true);
    config.putBoolean(TangoConfig.KEY_BOOLEAN_COLORCAMERA, true);
    config.putBoolean(TangoConfig.KEY_BOOLEAN_DEPTH, true); // for getting point cloud
    config.putBoolean(TangoConfig.KEY_BOOLEAN_AUTORECOVERY, true);

    mTango.connect(config);

    ArrayList<TangoCoordinateFramePair> framePairs = new ArrayList();
    framePairs.add(TANGO_WORLD_T_DEVICE);

    mTango.connectListener(framePairs, new OnTangoUpdateListener() { ... }

应用的外部库参考 Gradle:

def external_lib_prefix = null
if (project.hasProperty("Tango.catkin_devel_prefix")) {
    external_lib_prefix = project.property("Tango.catkin_devel_prefix")
 } else {
    // Building in standalone sample form.
    external_lib_prefix = "../../TangoReleaseLibs"
}

在Manifest中的application节点中:

  <uses-library
        android:name="com.projecttango.libtango_device"
        android:required="true" />

我敢肯定这种行为可能有很多原因,在我的例子中是我使用了来自不同组件的相机对象并且没有实现它。 tango core 正在使用相机,如果它无法获取它,则结果是 tango core 发生故障。