connectListener() 不适用于 Tango - 无法在系统上找到服务

connectListener() not working for Tango - Failed to find the service on the system

我在 google 的项目 Tango 开发方面比较陌生,我刚刚制作了我的第一个 Android 应用程序,它使用 Tango 服务来提取姿势数据。我正在关注 google 的开发人员指南。我的问题是关于本页指南中的 "Callback based" 方法:

https://developers.google.com/tango/apis/java/java-motion-tracking

我已经在那个页面上使用了 "Polling based" 方法,并且成功地让它工作了。然而,似乎为了能够从 Tango 中捕获点云数据,我需要使用回调方法,这对我来说不起作用。当应用程序运行函数 connectListener() 时,它崩溃并在 Android Studio 监视器中产生此输出:

I/ServiceManager: Waiting for service com.google.atap.tangoservice.ITango...

I/ServiceManager: Waiting for service com.google.atap.tangoservice.ITango...

I/ServiceManager: Waiting for service com.google.atap.tangoservice.ITango...

I/ServiceManager: Waiting for service com.google.atap.tangoservice.ITango...

I/ServiceManager: Waiting for service com.google.atap.tangoservice.ITango...

E/tango_client_api: TangoErrorType ConnectCallbackFunctionAndInitialize(const FunctionType*, const char*, va_list, FunctionType**, std::mutex*, void**) [with FunctionType = void(void*, const TangoPoseData*); va_list = __va_list]: (in TangoErrorType TangoService_initializeLOCKED(const char*)) Failed to find the service on the system.

有人知道这是什么原因吗?

终于解决了。问题是我在创建 Tango 对象并将其连接到 Tango 服务后尝试连接监听器,而你应该在传递给 Tango 构造函数的 Runnable 中连接监听器。