不同類型的 AI 眼鏡具備不同功能。舉例來說,所有 AI 眼鏡都提供語音音訊體驗,但部分 AI 眼鏡也具備螢幕,可顯示應用程式的 Jetpack Compose Glimmer 建構的 UI。
為確保使用者在各種 AI 眼鏡裝置上都能享有流暢體驗,請規劃Activity眼鏡,檢查不同裝置的功能。這種做法可讓您建構一個能調整行為的活動,而非針對特定裝置的多個活動,因此可簡化開發程序。
瞭解預測活動的生命週期
您為 AI 眼鏡建構的活動不會直接在裝置上執行,而是從主機裝置 (例如使用者的手機) 投影到裝置上。您為此目的建立的專屬活動是預估活動。投影活動的生命週期是以標準活動生命週期為基礎,但也有幾項重大差異,可支援不同類型 AI 眼鏡的功能。
以下是重要事件的細目,並標註預計在 AI 眼鏡上進行的活動專屬互動:
onCreate()- 投影活動建立時呼叫。
- 在此初始化應用程式的 Jetpack Compose Glimmer UI 和其他元件。
onStart()- 在投影活動開始時呼叫,且使用者知道應用程式。
onResume()- 當投影活動重新取得焦點時呼叫。活動處於焦點時,可進行互動,並可使用觸控板或按鈕輸入內容。
- 在先前從頭上取下眼鏡 (卸除) 後,當眼鏡重新戴上 (戴上) 時呼叫。
onPause()- 當投影活動失去焦點,但使用者仍知道您的應用程式時,系統會呼叫這個方法。活動失去焦點時,無法互動,且會停止接收輸入內容。
onStop()- 當系統認為使用者已不再注意您的應用程式時,就會呼叫這個方法。
- 當眼鏡從頭上取下 (脫下) 時呼叫。
onDestroy()- 即將刪除投影活動時呼叫。呼叫這個方法時,系統會釋出與活動相關的所有資源。
瞭解螢幕顯示狀態如何影響預計的活動生命週期
在標準 Activity 中,裝置螢幕關閉時,生命週期狀態會變更,通常會移至 onPause() 或 onStop()。相較之下,當 AI 眼鏡的螢幕開啟或關閉時,預計的活動生命週期不會改變。這表示即使螢幕關閉,預計的活動仍會繼續以「已啟動」或「已恢復」狀態執行,讓應用程式的音訊體驗不會中斷。
由不同系統和使用者事件觸發的其他活動狀態變更,則會照常運作。
瞭解使用者認知度對預估活動的影響
即使預計活動未顯示,使用者仍可得知。感知是指使用者感知及與應用程式體驗互動的所有方式,包括:
- 聆聽音訊、音效回饋或其他音效提示。
- 會觸發面向使用者的 LED 燈的應用程式動作,例如應用程式存取攝影機或麥克風時的隱私權指標。
在這些情況下,即使使用者沒有看著螢幕,也會知道 AI 眼鏡處於啟用狀態並做出回應:
- 預計活動的
onStart()狀態表示活動有效。 onResume()狀態表示活動可互動,且可接收觸控板輸入內容,或正在接收主要輸入內容調度。
只要使用者知道您的應用程式,您的活動就會保持有效並處於前景。如果系統在短時間內未偵測到任何意識信號,就會將活動從前景中移除,並最終觸發 onStop()。
瞭解預計活動和預計情境
AI 眼鏡視為連線裝置,可擴充使用者手機的功能。投影情境是裝置感知的 Context,可讓應用程式與連線眼鏡裝置上的硬體 (例如感應器、相機或麥克風) 互動,而非手機的硬體。為 AI 眼鏡開發體驗時,應用程式必須使用投影內容存取眼鏡硬體。
系統會根據呼叫活動的環境,自動將預測環境授予應用程式:
針對投影活動:如果應用程式的程式碼是從投影活動中執行,活動內容本身就是投影內容。在這種情況下,該活動內發出的呼叫已可存取眼鏡的硬體。
手機應用程式或服務:如果應用程式中投影活動以外的部分 (例如手機活動或服務) 需要存取智慧眼鏡的硬體,就必須明確取得投影內容。如要執行這項操作,請使用
createProjectedDeviceContext()方法。
詳情請參閱「使用投影情境存取 AI 眼鏡的硬體」。
瞭解裝置感知 API
部分標準 Android API 會根據呼叫活動的 Context,變更存取的裝置硬體。當這些 API 收到投影的內容時,會存取 AI 眼鏡的硬體,而不是主機手機裝置的硬體:
CameraManager:存取眼鏡上的攝影機。SensorManager:從眼鏡擷取感應器資料 (例如陀螺儀或加速計資料)。AudioManager:管理眼鏡上的音訊串流、音量和路徑。AudioRecord:使用眼鏡的麥克風擷取音訊。