Android アプリにマルチセンサリー フィードバックを追加する

このページでは、マルチセンサリー デザイン システム(MSDS)のガイドラインに沿って、オーディオ ハプティクス フィードバックでアプリを強化する方法について説明します。 keywords_public: > ハプティクス、振動、オーディオ、フィードバック、Android、UI、UX、デザイン、マルチセンサリー、 msds

Android を搭載したデバイスで動作するアプリは、マルチセンサリー デザイン システム(MSDS)に準拠したマルチセンサリー オーディオ ハプティクス フィードバックを提供できます。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)
            }
        }
    )
}

ViewModel に MultisensoryManager への参照を保持して、メソッド呼び出しや UI 状態の変化に応じて MSDS 再生をトリガーすることもできます。

推奨事項

MSDS フィードバックは、アクティブなユーザー操作によってトリガーされるため、通常はアニメーションやユーザー ジェスチャーとともに再生されます。視覚、音声、触覚が可能な限り同時にトリガーされるように、適切なタイミングでフィードバックを再生します。

アプリの構造によっては、この推奨事項により、UI コンポーザブル コールバック内の再生呼び出し(前述の Switch の例など)、UI の State または StateFlow の変更、アニメーション フレーム、直接的なユーザー入力に対する UI レスポンスが発生する可能性があります。

いずれの場合も、ユーザーがシステムでの操作の結果を認識できるようになったら、フィードバックを提供することをおすすめします。