zuerst: Es gibt zwei Themen in hier, die ziemlich ähnlich sind, aber man endete mit dem Gerät fehlerhaft, andere sind auf der C-API ... deshalb eine neue Frage zu öffnen .Google Tango Update-Listener onXyzIjAvailable Callback nie ruft
Ich verwende das Google Tango SDK mit jMonkeyEngine für eine wissenschaftliche Augmented Reality-Anwendung. Bis jetzt hat alles super geklappt. Aber jetzt möchte ich die Point Cloud Data aus dem Tango verwenden, die einem Listener gegeben wird (Klasse: OnTangoUpdateListener). (Tango Depth Perception) Es gibt 4-Methoden:
- onPoseAvailable (TangoPoseData Pose)
- onXyzIjAvailable (TangoXyzIjData xyzIj)
- onTangoEvent (TangoEvent arg0)
- onFrameAvailable (int arg0)
ein 3 von ihnen werden regelmäßig genannt. Das Problem ist: onXyzIjAvailable wird nie aufgerufen, so dass ich nicht auf die Punktwolkendaten zugreifen kann. Hier ist mein Code-Snippet, weißt du, was ich falsch mache oder was ich ausprobieren könnte? Pastebin
Vielen Dank für Ihre Hilfe:
public class TangoUpdateListener implements OnTangoUpdateListener {
@Override
public void onXyzIjAvailable(TangoXyzIjData xyzIj)
{
System.out.println("POINT CLOUD AVAILABLE");
Log.e("CLOUD", "CLOUD AVAILABLE");
}
}
Die ganze Datei kann hier bestellt werden!
PS: Das Gerät funktioniert einwandfrei mit dem Beispielprojekt. Es ist kein Hardware-Problem.
waren Sie es lösen verwaltet? Werfen Sie einen Blick auf http://stackoverflow.com/questions/31981756/project-tango-ne-called-the-onxyzijavailable-callback als Referenz. – Nativ
Dieser Thread endete mit dem Thread-Öffner, der seinen Tango zurückgab, weil er fehlerhaft war. Ich habe jedoch herausgefunden, welcher Teil den Rückruf verhindert. Es scheint, dass PointCloudSensor die Kamera benötigt. Ich gebe der Kamera eine zweite Aktivität, um das Kamerabild im Hintergrund für eine Augmented-Reality-App zu haben. Das Problem ist, nur eine Aktivität scheint in der Lage zu sein, auf die Kamera sofort zugreifen ... Hoffe jemand kann helfen :) – Gem
ja die Kamera ist eine einzelne Instanz und nur eine App/Service/Aktivität und so weiter kann es verwenden. Für das, was ich bekommen habe, kann man den Point Clould nur erhalten, wenn man das Tango-Objekt mit einem Renderer verbindet (und diesen Renderer mit der Surface verbindet). Ich bin mir nicht sicher, ob ich daran denke, da ich diese Annahme nur von meiner Erfahrung und nicht von der Weisheit der Menge abhängig mache. – Nativ