BaseArFragment

public abstract class BaseArFragment
已知的直接子类

AR fragment 引入了常见的 AR 功能所需的视图布局和控制器。

嵌套类

接口 BaseArFragment.OnSessionInitializationListener 初始化 ARCore 会话时调用。
接口 BaseArFragment.OnTapArPlaneListener 点按 ARCore 平面时调用。

公共构造函数

公共方法

抽象 String[]
getAdditionalPermissions()
除 ARCore 需要的 Manifest.permission.CAMERA 之外,还会返回应用所需的一系列危险权限。
ArSceneView
getArSceneView()
获取此 fragment 的 ArSceneView。
PlaneDiscoveryController
getPlaneDiscoveryController()
获取平面发现控制器,该面板显示有关如何扫描平面的说明。
TransformationSystem
getTransformationSystem()
获取转换系统,供 TransformableNode 用于检测手势和协调所选的节点。
抽象布尔值
isArRequired()
如果该应用是 AR 必备,则返回 true;如果 AR 可选,则返回 false。
查看
onCreateViewLayoutInflater 膨胀器、ViewGroup 容器、Bundle savedInstanceState)
无效
无效
无效
无效
onPeekTouch(HitTestResulthitTestResult, MotionEvent motionEvent)
在将触摸事件分派给场景时调用。
无效
onRequestPermissionsResult(int requestCode, String[] permissions, int[] results)
接收权限请求的结果。
无效
无效
onUpdate(FrameTime frameTime)
在场景更新前每帧调用一次。
无效
setOnSessionInitializationListener(BaseArFragment.OnSessionInitializationListener onSessionInitializationListener)
注册要在初始化 ARCore 会话时调用的回调。
无效
setOnTapArPlaneListener(BaseArFragment.OnTapArPlaneListener onTapArPlaneListener)
注册在点按 ARCore 平面时要调用的回调。

受保护的方法

布尔值
getCanRequest 危险权限()
如果为 true,则 requestDangerousPermissions() 会返回而不执行任何操作(如果将请求 false 权限)
抽象配置
abstract Set<Session.Feature>
getSessionFeatures()
指定用于创建 ARCore Session 的其他功能。
抽象 无效
final void
initializeSession()
初始化 ARCore 会话。
TransformationSystem
makeTransformationSystem()
创建此 fragment 使用的转换系统。
无效
onWindowFocusChanged(布尔值 hasFocus)
无效
requestriskPermissions()
开始请求危险权限的过程。
final 布尔值
无效
setCanRequest 危险权限布尔值 canRequest 危险权限)
如果为 true,则 requestDangerousPermissions() 会返回而不执行任何操作(如果将请求 false 权限)
无效

继承的方法

公共构造函数

public BaseArFragment ()

公共方法

public abstract String[] getAdditionalPermissions ()

除 ARCore 需要的 Manifest.permission.CAMERA 之外,还会返回应用所需的一系列危险权限。如果不需要其他权限,则应返回空数组。

public ArSceneView getArSceneView ()

获取此 fragment 的 ArSceneView。

public PlaneDiscoveryController getPlaneDiscoveryController ()

获取平面发现控制器,该面板显示有关如何扫描平面的说明。

public TransformationSystem getTransformationSystem ()

获取转换系统,供 TransformableNode 用于检测手势和协调所选的节点。

public abstract boolean isArRequired ()

如果该应用是 AR 必备,则返回 true;如果 AR 可选,则返回 false。系统会在初始化应用和会话时调用此方法。

public View onCreateView (LayoutInflater 膨胀器, ViewGroup 容器, Bundle savedInstanceState)

参数
膨胀器
容器
savedInstanceState

public void onDestroy ()

public void onDestroyView ()

public void onPause ()

public void onPeekTouch (HitTestResulthitTestResult, MotionEvent motionEvent)

在将触摸事件分派给场景时调用。该回调将在调用 Scene.OnTouchListener 之前调用。即使使用了相应手势,系统也会调用此方法,以便观察分派给场景的所有动作事件。即使触摸操作未超出节点也是如此,在这种情况下,getNode() 将为 null。

参数
命中结果 表示触摸的节点
motionEvent [动作事件] 动作事件

public void onRequestPermissionsResult (int requestCode, String[] permissions, int[] results)

接收权限请求的结果。

打开一个对话框以请求权限。该对话框可以将用户转到“设置”应用,或结束 activity。

参数
请求代码
权限
结果

public void onResume ()

public void onUpdate (FrameTime frameTime)

在场景更新前每帧调用一次。

参数
帧时间 提供当前帧的时间信息

public void setOnSessionInitializationListener (BaseArFragment.OnSessionInitializationListener onSessionInitializationListener)

注册要在初始化 ARCore 会话时调用的回调。该回调仅在会话初始化后和恢复之前调用一次。

参数
onSessionInitializationListener 要附加的 BaseArFragment.OnSessionInitializationListener

public void setOnTapArPlaneListener (BaseArFragment.OnTapArPlaneListener onTapArPlaneListener)

注册在点按 ARCore 平面时要调用的回调。仅当未点按 Node 时,系统才会调用回调。

参数
onTapArPlaneListener 要附加的 BaseArFragment.OnTapArPlaneListener

受保护的方法

保护 布尔值 getCanRequest 危险权限 ()

如果为 true,则 requestDangerousPermissions() 会返回而不执行任何操作(如果将请求 false 权限)

受保护的抽象配置 getSessionConfiguration 会话会话)

参数
session

Protected abstract Set <Session.Feature> getSessionFeatures ()

指定用于创建 ARCore Session 的其他功能。请参阅 Session.Feature

Protected abstract void handleSessionException (UnavailableException sessionException)

参数
sessionException

受保护的 final void initializeSession ()

初始化 ARCore 会话。在检查 ARCore 的安装状态之前,系统会检查 CAMERA 权限。权限和安装成功后,系统会调用 #getSessionConfiguration(Session session) 方法来获取要使用的会话配置。Sceneform 要求使用 LATEST_CAMERA_IMAGE 更新 ARCore 会话以避免在绘制时发生阻塞。此模式是在从子类返回的配置对象上设置的。

受保护的 TransformationSystem makeTransformationSystem ()

创建此 fragment 使用的转换系统。可替换以创建自定义转换系统。

Protect void onWindowFocusChanged (布尔值 hasFocus)

参数
hasFocus

Protect void request 危险权限 ()

开始请求危险权限的过程。这结合了 ARCore 所需的 CAMERA 权限和 getAdditionalPermissions() 返回的所有权限。系统不会对请求结果进行特定处理。如果需要进行其他处理,子类可以替换 onRequestPermissionsResult()。

setCanRequestDangerousPermissions(Boolean) 可阻止此函数执行任何操作。

受保护的最终布尔值 requestInstall ()

Protect void setCanRequest 危险权限 (布尔值 canRequest 危险权限)

如果为 true,则 requestDangerousPermissions() 会返回而不执行任何操作(如果将请求 false 权限)

参数
可以申请危险权限

Protect void setupSelectionRenderable (FootprintSelectionVisualizer selectionVisualizer)

参数
selectionVisualizer