Android 앱에 다중 감각 피드백 추가

이 페이지에서는 다중 감각 디자인 시스템 (MSDS)의 가이드라인에 따라 오디오 햅틱 피드백으로 애플리케이션을 보강하는 방법을 설명합니다. keywords_public: > 햅틱, 진동, 오디오, 피드백, Android, UI, UX, 디자인, 다중 감각, msds

Android를 실행하는 기기에서 실행되는 앱은 일관된 오디오 및 햅틱을 위한 토큰화된 구성요소 라이브러리인 다중 감각 디자인 시스템 (MSDS)을 준수하는 다중 감각 오디오 햅틱 피드백을 제공할 수 있습니다.

MSDS를 사용하는 이유

MSDS는 오디오 및 햅틱 피드백을 개선하기 위한 중앙 집중식 디자인 시스템입니다. MSDS를 사용하면 일반적인 사용자 상호작용을 위한 촉각 또는 청각 피드백을 직접 설계, 선택 또는 제작할 필요가 없습니다.

또한 MSDS는 기기 전반에서 일관되게 작동하며 기기 기능에 따라 오디오와 햅틱을 최적으로 동기화합니다.

MSDS는 언제 사용해야 하나요?

MSDS는 일반적인 활성 사용자 상호작용에 대한 피드백을 제공합니다. 이 피드백은 시스템이나 앱에 영향을 미치는 사용자 작업에 대한 응답으로 트리거되며 두 가지 카테고리로 나뉩니다.

  • 동작 피드백: 직접적인 사용자 동작에서 UI 요소의 실시간 물리적 조작을 확인합니다.

  • 시맨틱 피드백: 실시간 상태 변경, 선택 또는 사용자 진행 상황을 확인합니다.

MSDS를 어떻게 사용하나요?

MultisensoryManager API는 MSDS 의견을 전송하는 진입점입니다. playToken() 메서드를 사용하여 토큰화된 피드백을 재생할 수 있습니다.

사용 가능한 토큰을 보려면 MultisensoryManager의 공개 정수 상수를 읽어보세요. 앱에서 관리자를 사용하려면 시스템 서비스로 쿼리하고 토큰을 재생합니다.

@RequiresApi(Build.VERSION_CODES_FULL.CINNAMON_BUN_2)
@Composable
fun MultisensorySwitch() {
    val context = LocalContext.current
    val multisensoryManager =
        remember(context) { context.getSystemService(MultisensoryManager::class.java) }
    var checked by remember { mutableStateOf(false) }
    Switch(
        checked = checked,
        onCheckedChange = { isChecked ->
            checked = isChecked
            if (isChecked) {
                multisensoryManager?.playToken(MultisensoryManager.TOKEN_SWITCH_ON)
            } else {
                multisensoryManager?.playToken(MultisensoryManager.TOKEN_SWITCH_OFF)
            }
        }
    )
}

ViewModel에서 MultisensoryManager에 대한 참조를 유지하여 메서드 호출 또는 UI 상태 변경에 대한 응답으로 MSDS 재생을 트리거할 수도 있습니다.

추천

MSDS 의견은 활성 사용자 상호작용에서 트리거되므로 일반적으로 애니메이션 또는 사용자 동작과 함께 재생됩니다. 시각, 오디오, 햅틱이 최대한 동시에 트리거되도록 적절한 시점에 피드백을 재생합니다.

앱 구조에 따라 이 권장사항은 UI 컴포저블 콜백 내의 재생 호출 (이전 Switch 예시 참고), UI State 또는 StateFlow 변경, 애니메이션 프레임 또는 직접 사용자 입력에 대한 UI 응답을 초래할 수 있습니다.

모든 경우에 사용자가 시스템에서 자신의 작업 결과를 인식할 수 있게 되면 의견을 제공하는 것이 일반적인 권장사항입니다.