เพิ่มการตอบสนองแบบมัลติเซนเซอร์ลงในแอป Android

หน้านี้อธิบายวิธีปรับปรุงแอปพลิเคชันด้วยการตอบสนองด้วยเสียงและการสัมผัสตามหลักเกณฑ์จากระบบการออกแบบ Multisensory (MSDS) keywords_public: > การสัมผัส, การสั่น, เสียง, การตอบสนอง, Android, UI, UX, การออกแบบ, Multisensory, MSDS

แอปที่ทำงานบนอุปกรณ์ที่ใช้ Android สามารถส่งการตอบสนองแบบเสียงและระบบสัมผัสที่ใช้ประสาทสัมผัสหลายด้านซึ่งเป็นไปตามระบบการออกแบบที่ใช้ประสาทสัมผัสหลายด้าน (MSDS) ซึ่งเป็นไลบรารีคอมโพเนนต์ที่ใช้โทเค็นสำหรับเสียงและระบบสัมผัสที่สอดคล้องกัน

เหตุผลที่ควรใช้ MSDS

MSDS เป็นระบบการออกแบบแบบรวมศูนย์เพื่อปรับปรุงการตอบสนองด้วยเสียงและการสัมผัส เมื่อใช้ MSDS คุณไม่จำเป็นต้องออกแบบ เลือก หรือสร้างการตอบสนองด้วยการสัมผัสหรือเสียงของคุณเองสำหรับการโต้ตอบของผู้ใช้ทั่วไป

นอกจากนี้ MSDS ยังทำงานได้อย่างสม่ำเสมอในอุปกรณ์ต่างๆ โดยซิงค์เสียงและการโต้ตอบการสัมผัสอย่างเหมาะสมตามความสามารถของอุปกรณ์

คุณควรใช้ MSDS เมื่อใด

MSDS จะให้การตอบสนองต่อการโต้ตอบของผู้ใช้ที่ใช้งานอยู่ทั่วไป การตอบสนองนี้จะทริกเกอร์เพื่อตอบสนองต่อการดำเนินการของผู้ใช้ที่ทำให้เกิดผลลัพธ์ในระบบหรือแอป และแบ่งออกเป็น 2 หมวดหมู่ ดังนี้

  • การตอบสนองต่อท่าทางสัมผัส: ยืนยันการควบคุมองค์ประกอบ 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)
            }
        }
    )
}

นอกจากนี้ คุณยังเก็บข้อมูลอ้างอิงไปยัง MultisensoryManager ไว้ใน ViewModel เพื่อทริกเกอร์การเล่น MSDS เพื่อตอบสนองต่อการเรียกใช้เมธอดหรือการเปลี่ยนแปลงสถานะ UI ได้ด้วย

คำแนะนำ

การตอบสนองแบบ MSDS มักจะแสดงควบคู่ไปกับภาพเคลื่อนไหวหรือท่าทางผู้ใช้ เนื่องจากจะทริกเกอร์จากการโต้ตอบของผู้ใช้ที่ใช้งานอยู่ เล่นการตอบสนองในเวลาที่เหมาะสมเพื่อให้ภาพ เสียง และการโต้ตอบการสัมผัสทำงานพร้อมกันมากที่สุด

คำแนะนำนี้อาจส่งผลให้เกิดการเรียกใช้การเล่นภายใน Callback ที่ Composable ของ UI (เช่น ตัวอย่าง Switch ก่อนหน้านี้) การเปลี่ยนแปลง UI State หรือ StateFlow เฟรมภาพเคลื่อนไหว หรือการตอบสนองของ UI ต่อข้อมูลจากผู้ใช้โดยตรง ทั้งนี้ขึ้นอยู่กับโครงสร้างแอปของคุณ

ในทุกกรณี คำแนะนำทั่วไปคือให้แสดงความคิดเห็นเมื่อผู้ใช้รับรู้ถึงผลลัพธ์ของการดำเนินการในระบบได้