不同类型的 AI 眼镜具有不同的功能。例如,虽然所有 AI 眼镜都通过语音提供音频体验,但有些 AI 眼镜还配备了显示屏,您的应用可以在其中显示使用 Jetpack Compose Glimmer 构建的界面。
为了在各种 AI 眼镜设备上打造顺畅无缝的用户体验,请规划眼镜的 Activity,以检查不同的设备功能。这种方法可让您构建一个能够调整自身行为的 activity,而不是构建多个针对特定设备的 activity,从而简化开发流程。
了解投影活动的生命周期
您为 AI 眼镜构建的 activity 不会直接在设备上运行,而是从主机设备(例如用户的手机)投影到设备上。您为此目的而构建的专用 activity 称为预计 activity。投影 activity 的生命周期基于标准 activity 生命周期构建,但它还包含几个关键差异,以支持不同类型的 AI 眼镜的功能。
以下是关键事件的细分,其中标注了 AI 眼镜特有的活动互动:
onCreate()- 在创建投影 activity 时调用。
- 在此处初始化应用的 Jetpack Compose Glimmer 界面和其他组件。
onStart()- 当投影的 activity 开始且用户知道应用时调用。
onResume()- 在投影的 activity 重新获得焦点时调用。当 activity 处于焦点状态时,它是可互动的,并且可以接收触控板或按钮输入。
- 在眼镜之前从头上取下(脱下)后,重新戴上(戴上)时调用。
onPause()- 当投影的 activity 失去焦点,但用户仍然知道您的应用时,系统会调用此方法。当 activity 失去焦点时,它无法互动,并且停止消耗输入。
onStop()- 当系统认为用户不再感知您的应用时调用。
- 在眼镜从头部摘下时(脱下)调用。
onDestroy()- 在即将销毁投影 activity 时调用。调用此方法时,系统会释放与 activity 关联的所有资源。
了解显示状态如何影响预计的 activity 生命周期
在标准 Activity 中,当设备的屏幕关闭时,生命周期状态会发生变化,通常会变为 onPause() 或 onStop()。相比之下,当 AI 眼镜的显示屏开启或关闭时,投影 activity 的生命周期不会发生变化。此行为意味着,即使显示屏处于关闭状态,投影 activity 也会继续以“已启动”或“已恢复”状态运行,从而让应用能够不间断地提供音频体验。
由不同系统和用户事件触发的其他活动状态变化会以常规方式运行。
了解用户认知度如何影响您的预期活动
即使投影的 activity 不可见,用户也可以感知到。 感知是指用户感知和互动应用体验的所有方式,包括:
- 聆听音频、声音反馈或其他声音提示。
- 触发面向用户的 LED 的应用操作,例如当应用访问摄像头或麦克风时,触发隐私指示标志。
在以下情况下,即使不看显示屏,用户也会知道 AI 眼镜处于有效状态并正在响应:
- 对于投影的 activity,
onStart()状态表示 activity 处于活跃状态。 onResume()状态表示 activity 可互动,可以接收触控板输入,或者正在接收主要输入调度。
只要用户知道您的应用,您的 activity 就会保持活跃状态并位于前台。如果系统在短时间内未检测到任何感知信号,则会将相应 activity 从前台移除,并最终触发 onStop()。
了解预测的活动和预测的情境
AI 眼镜被视为可扩展用户手机功能的联网设备。投影上下文是一种设备感知型 Context,可让应用与所连接眼镜设备上的硬件(例如传感器、摄像头或麦克风)进行交互,而不是与手机的硬件进行交互。在为 AI 眼镜开发体验时,您的应用必须使用投影上下文来访问眼镜的硬件。
系统可以根据调用 activity 的上下文自动向您的应用授予投影上下文:
对于投影的 activity:如果您的应用代码是从投影的 activity 内部运行的,则其自身的 activity 上下文已是投影的上下文。在此场景中,在该 activity 内进行的调用已可访问眼镜的硬件。
对于手机应用或服务:如果应用的某个部分(例如手机 activity 或服务)需要访问眼镜的硬件,但该部分不在投影 activity 中,则必须明确获取投影上下文。为此,请使用
createProjectedDeviceContext()方法。
如需了解详情,请参阅使用投影的上下文访问 AI 眼镜的硬件。
了解设备感知型 API
某些标准 Android API 会根据调用 activity 的 Context 更改其访问的设备硬件。当这些 API 接收到投影的上下文时,它们会访问 AI 眼镜的硬件,而不是宿主手机设备上的硬件:
CameraManager:访问眼镜上的摄像头。SensorManager:从眼镜中检索传感器数据(例如,陀螺仪或加速度计数据)。AudioManager:管理眼镜上的音频流、音量和路由。AudioRecord:使用眼镜的麦克风捕获音频。