ContactsContract.Intents.ActionVoiceSendMessageToContacts フィールド

定義

アクティビティ アクション: 音声で他のユーザーへのメッセージを開始します。

[Android.Runtime.Register("ACTION_VOICE_SEND_MESSAGE_TO_CONTACTS", ApiSince=24)]
public const string ActionVoiceSendMessageToContacts;
[<Android.Runtime.Register("ACTION_VOICE_SEND_MESSAGE_TO_CONTACTS", ApiSince=24)>]
val mutable ActionVoiceSendMessageToContacts : string

フィールド値

属性

注釈

アクティビティ アクション: 音声で他のユーザーへのメッセージを開始します。 メッセージには、テキスト、オーディオ、ビデオ、または画像 (写真) を指定できます。 このアクションでは、基になるメッセージング プロトコルに関係なく、特定の連絡先を使用したメッセージングがサポートされます。

このアクションは、音声操作として音声アシスタントから生成される可能性があります。 このような場合、 をサポートandroid.content.Intent#CATEGORY_VOICEする受信アクティビティは、続行する前に のandroid.app.Activity#isVoiceInteractionRoot戻り値チェック可能性があります。 このチェックを行うことで、アクティビティは、アクションが実際に音声アシスタントによって開始され、ユーザーからのそれ以上の入力なしで、すぐにメッセージを送信できることを確認します。 これにより、音声でメッセージを送信するときのスムーズなユーザー エクスペリエンスが可能になります。 注: このアクティビティは、 でandroid.service.voice.VoiceInteractionSession#startVoiceActivity見つけることができるように もandroid.content.Intent#CATEGORY_DEFAULTサポートする必要があります。

アクションが音声アシスタントによって開始されなかった場合、または受信アクティビティで がサポート android.content.Intent#CATEGORY_VOICEされていない場合、アクティビティはメッセージを送信する前にユーザーに確認する必要があります (この場合、意図を送信したアプリが不明であるため、悪意のある可能性があるため)。

Voice Assistant が連絡先のあいまいさを解消できるように、メッセージング アプリは連絡先プロバイダーとの統合を選択できます。 アプリの一意の連絡先 ID とオプションの人間が読み取り可能なラベルをデータ テーブルに格納するには、新しい MIME の種類を指定する必要があります。 音声アシスタントは、この MIME の種類を認識し、 RawContacts#ACCOUNT_TYPE スムーズな連絡先のあいまいさを解消するユーザー エクスペリエンスを提供するために使用している必要があります。 このような統合を実行する場合は、次の規則を満たす必要があります。 <ul><li>このアクティビティには、 #METADATA_ACCOUNT_TYPE連絡先プロバイダーの実装用に定義 RawContacts#ACCOUNT_TYPE される文字列メタデータ フィールドが関連付けられている必要があります。 アカウントの種類はグローバルに一意である必要があります。たとえば、アカウントの種類としてアプリ パッケージ名を使用できます。</li li>><このアクティビティには、#METADATA_MIMETYPE連絡先プロバイダーの実装を定義DataColumns#MIMETYPEする文字列メタデータ フィールドが関連付けられている必要があります。 たとえば、"vnd.android.cursor.item/vnd" を使用できます。MIME の種類として {$app_package_name}.profile" を指定します。</li li><>METADATA_MIMETYPEのデータ テーブル行を入力する場合、列DataColumns#DATA1にはアプリで理解されている一意の連絡先 ID を格納する必要があります。 この値は、 で#EXTRA_RECIPIENT_CONTACT_CHAT_ID使用されます。</li li><>必要に応じて、METADATA_MIMETYPEの Data テーブル行を入力すると、列DataColumns#DATA3に ID の人間が判読できるラベルを格納できます。 たとえば、「a_super_cool_user_name」のような電話番号や人間が判読できるユーザー名/user_idなどです。 このラベルは、ユーザーが音声アクションを完了すると、音声アシスタントによる連絡先名の下に表示される場合があります。 DATA3 が空の場合は、代わりに DATA1 の ID が表示される場合があります。</li li><><em>注: DATA3 を使用して連絡先名を格納しないでください。 音声アシスタントは、RawContact のdisplay_nameから連絡先名を既に取得します。</em></li li><em>><注: 一部のアプリでは、DATA1 の一意の連絡先 ID として電話番号を使用することを選択できます。 これが適用され、音声アシスタントの連絡先名の下に電話番号を表示する場合は、DATA3 を空のままにすることができます。</em></li li<>em>><注: アプリで DATA3 も使用して連絡先アプリに連絡先の詳細を表示する場合は、"Message +phone" や "Free Message +<<phone>>" などのプレフィックス テキストが含まれていないことを確認します。連絡先アプリでプレフィックス テキストを表示する必要がある場合は、別の DATA# 列を使用し、この新しい列を指すように contacts.xml を更新してください。 </em></li></ul> アプリが連絡先プロバイダーと統合しないことを選択した場合 (特に、METADATA_ACCOUNT_TYPEまたはMETADATA_MIMETYPE フィールドがない場合)、Voice Assistant は既存の電話番号エントリを、そのようなアプリの連絡先 ID として使用します。

入力: android.content.Intent#getType 送信されるデータの MIME の種類です。 意図の送信者は、"text/plain" や "audio/wav" などの具象 MIME の種類を常に意図の種類に配置します。 MIME の種類が "text/plain" の場合、送信されるメッセージはスタイル付きの CharSequence として経由で android.content.Intent#EXTRA_TEXT 提供されます。 それ以外の場合、メッセージ コンテンツは、コンテンツ プロバイダー URI として を介して android.content.Intent#setClipData(ClipData) 提供されます。 後者の場合、EXTRA_TEXTは必要に応じて提供できます。たとえば、オーディオ メッセージの場合、ClipData には記録の URI が含まれており、EXTRA_TEXTにはこの記録のテキスト文字起こしが含まれる可能性があります。

メッセージには n 個の受信者を含めることができます。 メッセージの n 番目の受信者は、 の n 番目の#EXTRA_RECIPIENT_CONTACT_URI#EXTRA_RECIPIENT_CONTACT_CHAT_ID#EXTRA_RECIPIENT_CONTACT_NAME 要素として提供されます (結果として、EXTRA_RECIPIENT_CONTACT_URI、EXTRA_RECIPIENT_CONTACT_CHAT_ID、EXTRA_RECIPIENT_CONTACT_NAMEはすべて長さ n である必要があります)。 受信者に対してこれらの 3 つの要素のいずれも指定されていない場合 (たとえば、3 つすべてが null の場合)、または指定された情報があいまいな場合、アクティビティは受信者にメッセージの送信先を求めるメッセージをユーザーに求める必要があります。

出力: 何もない

android.provider.ContactsContract.Intents.ACTION_VOICE_SEND_MESSAGE_TO_CONTACTSJava ドキュメント。

このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。

適用対象