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: 안경의 마이크를 사용하여 오디오를 캡처합니다.