افزودن بازخورد چندحسی به برنامه‌های Android

این صفحه نحوه غنی‌سازی برنامه‌ها با بازخورد صوتی-لمسی را طبق دستورالعمل‌های «سیستم طراحی چندحسی» (MSDS) شرح می‌دهد. keywords_public: > haptics, vibration, audio, feedback, Android, UI, UX, design, multisensory, msds

برنامه‌هایی که در دستگاه‌های دارای Android اجرا می‌شوند می‌توانند بازخورد صوتی-لمسی چندحسی ارائه دهند که با «سیستم طراحی چندحسی» (MSDS) مطابقت دارد. MSDS یک کتابخانه مؤلفه نشان‌گذاری‌شده برای صدا و لمس سازگار است.

چرا باید از MSDS استفاده کرد؟

MSDS یک سیستم طراحی متمرکز برای بهبود بازخورد صوتی و لمسی است. با MSDS، نیازی به طراحی، انتخاب، یا ساختن بازخورد لمسی یا شنیداری خودتان برای تعامل‌های رایج کاربر ندارید.

علاوه‌براین، MSDS به‌طور مداوم در دستگاه‌های مختلف کار می‌کند و صدا و لمس را به‌طور بهینه براساس قابلیت‌های دستگاه همگام‌سازی می‌کند.

چه زمانی باید از MSDS استفاده کنید؟

MSDS برای تعاملات رایج کاربر فعال بازخورد ارائه می‌دهد. این بازخورد در پاسخ به کنش کاربر که باعث ایجاد تأثیری در سیستم یا برنامه می‌شود راه‌اندازی می‌شود و به دو دسته تقسیم می‌شود:

  • بازخورد اشاره: دستکاری فیزیکی هم‌زمان عناصر میانای کاربر را ازطریق اشاره‌های مستقیم کاربر تأیید می‌کند.

  • بازخورد معنایی: تغییرات وضعیت هم‌زمان، انتخاب‌ها، یا پیشرفت کاربر را تأیید می‌کند.

چگونه از 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)
            }
        }
    )
}

همچنین می‌توانید مرجعی به MultisensoryManager در ViewModel نگه دارید تا بازپخش MSDS را در پاسخ به فراخوانی‌های روش یا تغییرات وضعیت رابط کاربری راه‌اندازی کنید.

توصیه‌ها

بازخورد MSDS معمولاً درکنار پویانمایی‌ها یا اشاره‌های کاربر پخش می‌شود زیرا از تعاملات فعال کاربر راه‌اندازی می‌شود. بازخورد را در زمان مناسب پخش کنید تا عناصر دیداری، صوتی، و لمسی تا حد امکان نزدیک به هم فعال شوند.

بسته به ساختار برنامه شما، این توصیه می‌تواند منجر به تماس‌های بازپخش در داخل callbacks قابل ترکیب UI (مانند مثال قبلی Switch)، تغییرات در UI State یا StateFlow، فریم‌های انیمیشن، یا پاسخ‌های UI به ورودی مستقیم کاربر شود.

در همه موارد، توصیه کلی این است که بازخورد زمانی ارائه شود که کاربر بتواند پیامد کنش خود را در سیستم درک کند.