XR_ANDROID_geospatial_anchor
Name String
XR_ANDROID_geospatial_anchor
Loại tiện ích
Phần mở rộng thực thể
Số máy lẻ đã đăng ký
798
Bản sửa đổi
1
Trạng thái phê chuẩn
Chưa được phê chuẩn
Phần phụ thuộc của tiện ích và phiên bản
XR_ANDROID_geospatial
và
XR_EXT_future
và
XR_EXT_spatial_entity
và
XR_EXT_spatial_anchor
Ngày sửa đổi gần đây nhất
2025-10-30
Trạng thái IP
Không có tuyên bố nào về tài sản trí tuệ.
Cộng tác viên
John Ullman, Google
Ben King, Google
Nihav Jain, Google
Jared Finder, Google
Tổng quan
Tiện ích này cung cấp Điểm neo không gian địa lý và Điểm neo bề mặt dựa trên tiện ích Không gian địa lý cơ bản. Điểm neo không gian địa lý là các điểm neo được đặt trong không gian tương ứng với Trái Đất ở một vĩ độ, kinh độ và độ cao nhất định. Điểm neo bề mặt là điểm neo tương ứng với Trái Đất, được đặt ở một vĩ độ, kinh độ và cao độ nhất định so với một bề mặt mà Dịch vụ định vị trực quan biết. Khi độ chính xác của vị trí của thời gian chạy so với Trái đất được cải thiện, tư thế của Điểm neo sẽ điều chỉnh cho phù hợp.
Khả năng của hệ thống đối với neo không gian địa lý
Cấu trúc XrSystemGeospatialAnchorPropertiesANDROID được định nghĩa như sau:
typedef struct XrSystemGeospatialAnchorPropertiesANDROID {
XrStructureType type;
void* next;
uint32_t maxSurfaceAnchorCount;
} XrSystemGeospatialAnchorPropertiesANDROID;
Nội dung mô tả về thành viên
typelà XrStructureType của cấu trúc này.nextlàNULLhoặc con trỏ trỏ đến cấu trúc tiếp theo trong chuỗi cấu trúc. Không có cấu trúc nào như vậy được xác định trong OpenXR cốt lõi hoặc tiện ích này.maxSurfaceAnchorCountlà mộtuint32_tcho biết số lượng neo bề mặt tối đa có thể tạo.
Ứng dụng có thể kiểm tra các chức năng neo không gian địa lý của hệ thống bằng cách liên kết cấu trúc XrSystemGeospatialAnchorPropertiesANDROID với XrSystemProperties khi gọi xrGetSystemProperties .
Nếu XrSystemGeospatialPropertiesANDROID :: supportsGeospatial là XR_TRUE , thì maxSurfaceAnchorCount cho biết số lượng neo bề mặt tối đa mà thời gian chạy hỗ trợ. Trong trường hợp này, giới hạn phải lớn hơn 0.
Nếu XrSystemGeospatialPropertiesANDROID :: supportsGeospatial không phải là XR_TRUE , thì maxSurfaceAnchorCount phải là 0.
Cách sử dụng hợp lệ (Ngầm ẩn)
- Bạn phải bật tiện ích
XR_ANDROID_geospatial_anchortrước khi sử dụng XrSystemGeospatialAnchorPropertiesANDROID -
typephải làXR_TYPE_SYSTEM_GEOSPATIAL_ANCHOR_PROPERTIES_ANDROID -
nextphải làNULLhoặc một con trỏ hợp lệ đến cấu trúc tiếp theo trong chuỗi cấu trúc
Theo dõi mặt phẳng cho neo
Cấu trúc XrGeospatialTrackerAnchorTrackingInfoANDROID được định nghĩa như sau:
typedef struct XrGeospatialTrackerAnchorTrackingInfoANDROID {
XrStructureType type;
const void* next;
XrBool32 shouldTrackPlanes;
} XrGeospatialTrackerAnchorTrackingInfoANDROID;
Nội dung mô tả về thành viên
typelà XrStructureType của cấu trúc này.nextlàNULLhoặc con trỏ trỏ đến cấu trúc tiếp theo trong chuỗi cấu trúc.shouldTrackPlaneslà mộtXrBool32cho biết liệu trình theo dõi không gian địa lý có theo dõi các mặt phẳng để cải thiện vị trí của các neo bị khoá trên bề mặt hay không.
Bạn có thể bật tính năng theo dõi mặt phẳng để cải thiện vị trí của các neo được khoá trên bề mặt.
Nếu muốn bật tính năng theo dõi mặt phẳng để cải thiện tư thế neo bề mặt, ứng dụng có thể liên kết cấu trúc XrGeospatialTrackerAnchorTrackingInfoANDROID với XrGeospatialTrackerCreateInfoANDROID khi gọi xrCreateGeospatialTrackerANDROID .
Cách sử dụng hợp lệ (Ngầm ẩn)
- Bạn phải bật tiện ích
XR_ANDROID_geospatial_anchortrước khi sử dụng XrGeospatialTrackerAnchorTrackingInfoANDROID -
typephải làXR_TYPE_GEOSPATIAL_TRACKER_ANCHOR_TRACKING_INFO_ANDROID -
nextphải làNULLhoặc một con trỏ hợp lệ đến cấu trúc tiếp theo trong chuỗi cấu trúc
Điểm neo không gian địa lý
Hàm xrCreateGeospatialAnchorANDROID được định nghĩa như sau:
XrResult xrCreateGeospatialAnchorANDROID(
XrSpatialContextEXT spatialContext,
const XrGeospatialAnchorCreateInfoANDROID* createInfo,
XrSpatialEntityIdEXT* anchorEntityId);
Nội dung mô tả về tham số
spatialContextlà XrSpatialContextEXT để tạo neo. Bối cảnh phải được định cấu hình choXR_SPATIAL_CAPABILITY_ANCHOR_EXT, nếu không, thời gian chạy phải trả vềXR_ERROR_VALIDATION_FAILURE.createInfolà con trỏ đến XrGeospatialAnchorCreateInfoANDROID chứa các tham số tạo điểm neo.anchorEntityIdlà con trỏ đếnXrSpatialEntityIdEXT, trong đó mã nhận dạng thực thể neo được trả về.
Nếu XrGeospatialTrackerANDROID được chỉ định trong XrGeospatialAnchorCreateInfoANDROID :: geospatialTracker không ở trạng thái XR_GEOSPATIAL_TRACKER_STATE_RUNNING_ANDROID, thì thời gian chạy phải trả về XR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROID .
Cách sử dụng hợp lệ (Ngầm ẩn)
- Tiện ích
XR_ANDROID_geospatial_anchorphải được bật trước khi gọi xrCreateGeospatialAnchorANDROID -
spatialContextphải là một tay điều khiển XrSpatialContextEXT hợp lệ -
createInfophải là một con trỏ đến cấu trúc XrGeospatialAnchorCreateInfoANDROID hợp lệ -
anchorEntityIdphải là một con trỏ đến giá trịXrSpatialEntityIdEXT
Mã trả về
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_GEOSPATIAL_COORDINATES_INVALID_ANDROIDXR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROIDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_LIMIT_REACHEDXR_ERROR_OUT_OF_MEMORYXR_ERROR_POSE_INVALIDXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_VALIDATION_FAILURE
Cấu trúc XrGeospatialAnchorCreateInfoANDROID được định nghĩa như sau:
typedef struct XrGeospatialAnchorCreateInfoANDROID {
XrStructureType type;
const void* next;
XrGeospatialTrackerANDROID geospatialTracker;
XrGeospatialPoseANDROID geospatialPose;
} XrGeospatialAnchorCreateInfoANDROID;
Nội dung mô tả về thành viên
typelà XrStructureType của cấu trúc này.nextlàNULLhoặc con trỏ trỏ đến cấu trúc tiếp theo trong chuỗi cấu trúc.geospatialTrackerlà XrGeospatialTrackerANDROID dùng để tạo điểm neo.geospatialPoselà con trỏ đến XrGeospatialPoseANDROID xác định vị trí và hướng của neo.
Cách sử dụng hợp lệ (Ngầm ẩn)
- Tiện ích
XR_ANDROID_geospatial_anchorphải được bật trước khi sử dụng XrGeospatialAnchorCreateInfoANDROID -
typephải làXR_TYPE_GEOSPATIAL_ANCHOR_CREATE_INFO_ANDROID -
nextphải làNULLhoặc một con trỏ hợp lệ đến cấu trúc tiếp theo trong chuỗi cấu trúc -
geospatialTrackerphải là một tên người dùng XrGeospatialTrackerANDROID hợp lệ -
geospatialPosephải là một cấu trúc XrGeospatialPoseANDROID hợp lệ
Điểm neo trên bề mặt
Điểm neo bề mặt là điểm neo được đặt tương ứng với một bề mặt, chẳng hạn như địa hình hoặc mái nhà.
Kiểu liệt kê XrSurfaceAnchorTypeANDROID được định nghĩa như sau:
typedef enum XrSurfaceAnchorTypeANDROID {
XR_SURFACE_ANCHOR_TYPE_TERRAIN_ANDROID = 1,
XR_SURFACE_ANCHOR_TYPE_ROOFTOP_ANDROID = 2,
XR_SURFACE_ANCHOR_TYPE_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrSurfaceAnchorTypeANDROID;
Kiểu liệt kê XrSurfaceAnchorTypeANDROID chỉ định loại bề mặt mà một neo liên quan đến.
Các giá trị liệt kê có các giá trị sau:
Nội dung mô tả enum
XR_SURFACE_ANCHOR_TYPE_TERRAIN_ANDROID
Loại neo được đặt tương ứng với mặt đất.
XR_SURFACE_ANCHOR_TYPE_ROOFTOP_ANDROID
Loại điểm neo được đặt tương ứng với tầng thượng hoặc mặt đất nơi không có toà nhà.
Hàm xrCreateSurfaceAnchorAsyncANDROID được định nghĩa như sau:
XrResult xrCreateSurfaceAnchorAsyncANDROID(
XrSpatialContextEXT spatialContext,
const XrSurfaceAnchorCreateInfoANDROID* createInfo,
XrFutureEXT* future);
Nội dung mô tả về tham số
spatialContextlà XrSpatialContextEXT để tạo neo.createInfolà con trỏ đến XrSurfaceAnchorCreateInfoANDROID chứa các tham số tạo điểm neo.futurelà một con trỏ trỏ đếnXrFutureEXTsẽ lưu giữ kết quả của hoạt động không đồng bộ.
Hàm xrCreateSurfaceAnchorAsyncANDROID bắt đầu một thao tác không đồng bộ để tạo neo bề mặt. Không giống như các neo không gian địa lý tiêu chuẩn, thời gian chạy có thể tìm nạp dữ liệu địa hình để xác định độ cao chính xác. Thời gian chạy phải trả về XR_ERROR_LIMIT_REACHED nếu ứng dụng cố gắng tạo nhiều hơn XrSystemGeospatialAnchorPropertiesANDROID :: maxSurfaceAnchorCount neo bề mặt cùng một lúc. Nếu XrGeospatialTrackerANDROID được chỉ định trong XrSurfaceAnchorCreateInfoANDROID :: geospatialTracker không ở trạng thái XR_GEOSPATIAL_TRACKER_STATE_RUNNING_ANDROID, thì thời gian chạy phải trả về XR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROID . Thao tác này có thể không đồng bộ với kết quả XR_ERROR_SURFACE_ANCHOR_LOCATION_UNSUPPORTED_ANDROID nếu không có dữ liệu bề mặt cho vị trí đã cho. Thời gian chạy phải trả về XR_ERROR_VALIDATION_FAILURE nếu XR_SPATIAL_CAPABILITY_ANCHOR_EXT chưa được định cấu hình cho spatialContext .
Cách sử dụng hợp lệ (Ngầm ẩn)
- Phải bật tiện ích
XR_ANDROID_geospatial_anchortrước khi gọi xrCreateSurfaceAnchorAsyncANDROID -
spatialContextphải là một tay điều khiển XrSpatialContextEXT hợp lệ -
createInfophải là một con trỏ đến cấu trúc XrSurfaceAnchorCreateInfoANDROID hợp lệ -
futurephải là một con trỏ đến giá trịXrFutureEXT
Mã trả về
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_GEOSPATIAL_COORDINATES_INVALID_ANDROIDXR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROIDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_LIMIT_REACHEDXR_ERROR_OUT_OF_MEMORYXR_ERROR_POSE_INVALIDXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_VALIDATION_FAILURE
Cấu trúc XrSurfaceAnchorCreateInfoANDROID được định nghĩa như sau:
typedef struct XrSurfaceAnchorCreateInfoANDROID {
XrStructureType type;
const void* next;
XrGeospatialTrackerANDROID geospatialTracker;
XrSurfaceAnchorTypeANDROID surfaceAnchorType;
XrQuaternionf eastUpSouthOrientation;
double latitude;
double longitude;
double altitudeRelativeToSurface;
} XrSurfaceAnchorCreateInfoANDROID;
Nội dung mô tả về thành viên
typelà XrStructureType của cấu trúc này.nextlàNULLhoặc con trỏ trỏ đến cấu trúc tiếp theo trong chuỗi cấu trúc.geospatialTrackerlà XrGeospatialTrackerANDROID cần sử dụng.surfaceAnchorTypelà XrSurfaceAnchorTypeANDROID cho điểm neo.eastUpSouthOrientationlà hướng liên quan đến hệ toạ độ trong đó +X=Đông, +Y=Lên và +Z=Nam.latitudelà vĩ độ tính bằng độ, trong khoảng từ -89,9 đến +89,9.longitudelà kinh độ tính bằng độ, từ -180 đến +180.altitudeRelativeToSurfacelà cao độ tính bằng mét so với bề mặt được chỉ định bởisurfaceAnchorType.
Cách sử dụng hợp lệ (Ngầm ẩn)
- Tiện ích
XR_ANDROID_geospatial_anchorphải được bật trước khi sử dụng XrSurfaceAnchorCreateInfoANDROID -
typephải làXR_TYPE_SURFACE_ANCHOR_CREATE_INFO_ANDROID -
nextphải làNULLhoặc một con trỏ hợp lệ đến cấu trúc tiếp theo trong chuỗi cấu trúc -
geospatialTrackerphải là một tên người dùng XrGeospatialTrackerANDROID hợp lệ -
surfaceAnchorTypephải là một giá trị XrSurfaceAnchorTypeANDROID hợp lệ -
latitudephải là một giá trịdoublehợp lệ -
longitudephải là một giá trịdoublehợp lệ -
altitudeRelativeToSurfacephải là một giá trịdoublehợp lệ
Hàm xrCreateSurfaceAnchorCompleteANDROID được định nghĩa như sau:
XrResult xrCreateSurfaceAnchorCompleteANDROID(
XrSpatialContextEXT spatialContext,
XrFutureEXT future,
XrSurfaceAnchorCreateCompletionANDROID* completion);
Nội dung mô tả về tham số
spatialContextlà XrSpatialContextEXT dùng để tạo.futurelàXrFutureEXTdo xrCreateSurfaceAnchorAsyncANDROID trả về.completionlà con trỏ đến XrSurfaceAnchorCreateCompletionANDROID nhận kết quả.
Cách sử dụng hợp lệ (Ngầm ẩn)
- Tiện ích
XR_ANDROID_geospatial_anchorphải được bật trước khi gọi xrCreateSurfaceAnchorCompleteANDROID -
spatialContextphải là một tay điều khiển XrSpatialContextEXT hợp lệ -
completionphải là một con trỏ đến cấu trúc XrSurfaceAnchorCreateCompletionANDROID
Mã trả về
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_FUTURE_INVALID_EXTXR_ERROR_FUTURE_PENDING_EXTXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_LIMIT_REACHEDXR_ERROR_OUT_OF_MEMORYXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_VALIDATION_FAILURE
Cấu trúc XrSurfaceAnchorCreateCompletionANDROID lưu giữ kết quả của quá trình tạo neo bề mặt không đồng bộ.
typedef struct XrSurfaceAnchorCreateCompletionANDROID {
XrStructureType type;
void* next;
XrResult futureResult;
XrSpatialEntityIdEXT anchorEntityId;
} XrSurfaceAnchorCreateCompletionANDROID;
Nội dung mô tả về thành viên
typelà XrStructureType của cấu trúc này.nextlàNULLhoặc con trỏ trỏ đến cấu trúc tiếp theo trong chuỗi cấu trúc.futureResultlà XrResult của thao tác tạo. NếufutureResultlàXR_ERROR_GEOSPATIAL_CLOUD_AUTH_FAILED_ANDROID, thì một cấu trúc trong chuỗinextcó thể cung cấp thêm thông tin về lỗi.anchorEntityIdlàXrSpatialEntityIdEXTcủa neo đã tạo hoặc XR_NULL_SPATIAL_ENTITY_ID_EXT nếufutureResultkhông phải làXR_SUCCESS.
Mã trả về trong tương lai
Giá trị futureResult:
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_RUNTIME_FAILUREXR_ERROR_INSTANCE_LOSTXR_ERROR_SESSION_LOSTXR_ERROR_OUT_OF_MEMORYXR_ERROR_LIMIT_REACHEDXR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROIDXR_ERROR_SURFACE_ANCHOR_LOCATION_UNSUPPORTED_ANDROIDXR_ERROR_GEOSPATIAL_CLOUD_AUTH_FAILED_ANDROID
Cách sử dụng hợp lệ (Ngầm ẩn)
- Bạn phải bật tiện ích
XR_ANDROID_geospatial_anchortrước khi sử dụng XrSurfaceAnchorCreateCompletionANDROID -
typephải làXR_TYPE_SURFACE_ANCHOR_CREATE_COMPLETION_ANDROID -
nextphải làNULLhoặc một con trỏ hợp lệ đến cấu trúc tiếp theo trong chuỗi cấu trúc -
futureResultphải là một giá trị XrResult hợp lệ
Ví dụ
Tạo neo địa hình
PFN_xrCreateSpatialContextAsyncEXT xrCreateSpatialContextAsyncEXT;
PFN_xrCreateSpatialContextCompleteEXT xrCreateSpatialContextCompleteEXT;
PFN_xrCreateSurfaceAnchorAsyncANDROID xrCreateSurfaceAnchorAsyncANDROID;
PFN_xrPollFutureEXT xrPollFutureEXT;
PFN_xrCreateSurfaceAnchorCompleteANDROID xrCreateSurfaceAnchorCompleteANDROID;
XrInstance instance;
XrSession session;
XrGeospatialTrackerANDROID geospatialTracker;
// Create a spatial context
XrSpatialContextEXT spatialContext{};
{
std::vector<XrSpatialComponentTypeEXT> enabledComponents = {
XR_SPATIAL_COMPONENT_TYPE_ANCHOR_EXT,
};
XrSpatialCapabilityConfigurationAnchorEXT
anchorConfig{XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_ANCHOR_EXT};
anchorConfig.capability = XR_SPATIAL_CAPABILITY_ANCHOR_EXT;
anchorConfig.enabledComponentCount = enabledComponents.size();
anchorConfig.enabledComponents = enabledComponents.data();
std::array<XrSpatialCapabilityConfigurationBaseHeaderEXT*, 1> capabilityConfigs = {
reinterpret_cast<XrSpatialCapabilityConfigurationBaseHeaderEXT*>(&anchorConfig),
};
XrSpatialContextCreateInfoEXT spatialContextCreateInfo{XR_TYPE_SPATIAL_CONTEXT_CREATE_INFO_EXT};
spatialContextCreateInfo.capabilityConfigCount = capabilityConfigs.size();
spatialContextCreateInfo.capabilityConfigs = capabilityConfigs.data();
XrFutureEXT createContextFuture;
CHK_XR(xrCreateSpatialContextAsyncEXT(session, &spatialContextCreateInfo, &createContextFuture));
// ... wait until future is ready ...
XrCreateSpatialContextCompletionEXT contextCompletion{XR_TYPE_CREATE_SPATIAL_CONTEXT_COMPLETION_EXT};
CHK_XR(xrCreateSpatialContextCompleteEXT(session, createContextFuture, &contextCompletion));
if (contextCompletion.futureResult != XR_SUCCESS) {
return;
}
spatialContext = contextCompletion.spatialContext;
}
XrSurfaceAnchorCreateInfoANDROID anchorCreateInfo{
XR_TYPE_SURFACE_ANCHOR_CREATE_INFO_ANDROID};
anchorCreateInfo.surfaceAnchorType = XR_SURFACE_ANCHOR_TYPE_TERRAIN_ANDROID;
anchorCreateInfo.eastUpSouthOrientation = {0, 0, 0, 1};
anchorCreateInfo.latitude = 37.7749;
anchorCreateInfo.longitude = -122.4194;
anchorCreateInfo.altitudeRelativeToSurface = 0;
anchorCreateInfo.geospatialTracker = geospatialTracker;
XrFutureEXT anchorFuture = XR_NULL_FUTURE_EXT;
CHK_XR(xrCreateSurfaceAnchorAsyncANDROID(spatialContext, &anchorCreateInfo, &anchorFuture));
XrFuturePollInfoEXT anchorPollInfo{XR_TYPE_FUTURE_POLL_INFO_EXT};
XrFuturePollResultEXT anchorPollResult{XR_TYPE_FUTURE_POLL_RESULT_EXT};
anchorPollInfo.future = anchorFuture;
anchorPollResult.state = XR_FUTURE_STATE_PENDING_EXT;
while (anchorPollResult.state == XR_FUTURE_STATE_PENDING_EXT) {
// Do in render loop/state loop.
CHK_XR(xrPollFutureEXT(instance, &anchorPollInfo, &anchorPollResult));
}
XrSurfaceAnchorCreateCompletionANDROID anchorCompletion{
XR_TYPE_SURFACE_ANCHOR_CREATE_COMPLETION_ANDROID};
CHK_XR(xrCreateSurfaceAnchorCompleteANDROID(spatialContext, anchorFuture, &anchorCompletion));
if (anchorCompletion.futureResult == XR_SUCCESS) {
// Use completion.anchorEntityId.
XrSpatialEntityIdEXT anchorId = anchorCompletion.anchorEntityId;
// Query in UpdateSnapshot.
}
Lệnh mới
- xrCreateGeospatialAnchorANDROID
- xrCreateSurfaceAnchorAsyncANDROID
- xrCreateSurfaceAnchorCompleteANDROID
Cấu trúc mới
- XrGeospatialAnchorCreateInfoANDROID
- XrSurfaceAnchorCreateCompletionANDROID
- XrSurfaceAnchorCreateInfoANDROID
Mở rộng XrGeospatialTrackerCreateInfoANDROID :
Mở rộng XrSystemProperties :
Enum mới
Hằng số enum mới
XR_ANDROID_GEOSPATIAL_ANCHOR_EXTENSION_NAMEXR_ANDROID_geospatial_anchor_SPEC_VERSIONMở rộng XrResult :
XR_ERROR_SURFACE_ANCHOR_LOCATION_UNSUPPORTED_ANDROID
Mở rộng XrStructureType :
XR_TYPE_GEOSPATIAL_ANCHOR_CREATE_INFO_ANDROIDXR_TYPE_GEOSPATIAL_TRACKER_ANCHOR_TRACKING_INFO_ANDROIDXR_TYPE_SURFACE_ANCHOR_CREATE_COMPLETION_ANDROIDXR_TYPE_SURFACE_ANCHOR_CREATE_INFO_ANDROIDXR_TYPE_SYSTEM_GEOSPATIAL_ANCHOR_PROPERTIES_ANDROID
Vấn đề
Nhật ký phiên bản
Bản sửa đổi 1, 30/10/2025 (Ben King)
- Bản nháp ban đầu.