я сделал аналогично тому, как я получал x, y от пользователя во время видеовызова, это не совсем так, но это поможет вам. Создайте motionEvent, передавая любую точку на экране по умолчанию в x, у. если это вам помогло, то пометьте как ответ.
// MotionEvent parameters
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis();
int action = MotionEvent.ACTION_DOWN;
int metaState = 2;
// dispatch the event
MotionEvent event = MotionEvent.obtain(downTime, eventTime, action, x, y, metaState);
создайте событие попадания, используя
HitResult hit = frame.hitTest(event )
, а затем создайте привязку, используя его.
Trackable trackable = hit.getTrackable();
// Creates an anchor if a plane or an oriented point was hit.
if ((trackable instanceof Plane && ((Plane)
trackable).isPoseInExtents(hit.getHitPose()))
|| (trackable instanceof Point
&& (((Point) trackable).getOrientationMode()
== Point.OrientationMode.ESTIMATED_SURFACE_NORMAL || ((Point)
trackable).getOrientationMode()
== Point.OrientationMode.INITIALIZED_TO_IDENTITY))) {
// Hits are sorted by depth. Consider only closest hit on //a plane
// or oriented point.
// Cap the number of objects created. This avoids //overloading
// both the
// rendering system and ARCore.
if (anchors.size() >= 500) {
anchors.get(0).detach();
anchors.remove(0);
}
// Adding an Anchor tells ARCore that it should track //this
// position in
// space. This anchor is created on the Plane to place //the 3D
//model
// in the correct position relative both to the world and //to the
//plane.
anchors.add(hit.createAnchor());