Share via


ContactsContract.Intents.ActionVoiceSendMessageToContacts Campo

Definición

Acción de actividad: inicia un mensaje a alguien por voz.

[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

Valor de campo

Atributos

Comentarios

Acción de actividad: inicia un mensaje a alguien por voz. El mensaje podría ser texto, audio, vídeo o imagen(foto). Esta acción admite la mensajería con un contacto específico, independientemente del protocolo de mensajería subyacente usado.

La acción podría originrse en el Asistente para voz como una interacción de voz. En tal caso, una actividad receptora que admita android.content.Intent#CATEGORY_VOICE podría comprobar el valor devuelto de antes de android.app.Activity#isVoiceInteractionRoot continuar. Al hacer esta comprobación, la actividad comprueba que el Asistente de voz inició la acción y podría enviar un mensaje inmediatamente, sin ninguna otra entrada del usuario. Esto permite una experiencia de usuario fluida al enviar un mensaje por voz. Nota: esta actividad también debe admitir para android.content.Intent#CATEGORY_DEFAULT que la pueda encontrar android.service.voice.VoiceInteractionSession#startVoiceActivity.

Cuando el Asistente de voz no inició la acción o cuando la actividad receptora no admite android.content.Intent#CATEGORY_VOICE, la actividad debe confirmar con el usuario antes de enviar el mensaje (porque en este caso es desconocido qué aplicación envió la intención, podría ser malintencionada).

Para permitir que el Asistente de voz ayude a los usuarios con la desambiguación de contactos, la aplicación de mensajería puede optar por integrarse con el proveedor de contactos. Tendrás que especificar un nuevo tipo MIME para almacenar los identificadores de contacto únicos de la aplicación y etiquetas legibles humanas opcionales en la tabla Datos. El Asistente para voz debe conocer este tipo MIME y RawContacts#ACCOUNT_TYPE que está usando para proporcionar la experiencia de usuario sin problemas de desambiguación de contacto. Se debe cumplir la siguiente convención al realizar dicha integración: <ul><li>Esta actividad debe tener un campo de metadatos de cadena asociado, #METADATA_ACCOUNT_TYPE, que define RawContacts#ACCOUNT_TYPE para la implementación del proveedor de contactos. El tipo de cuenta debe ser único globalmente, por ejemplo, puede usar el nombre del paquete de la aplicación como tipo de cuenta.</li li>><Esta actividad debe tener un campo de metadatos de cadena asociado, #METADATA_MIMETYPE, que define DataColumns#MIMETYPE para la implementación del proveedor de contactos. Por ejemplo, puede usar "vnd.android.cursor.item/vnd. {$app_package_name}.profile" como tipo MIME.</li li><>Al rellenar la fila de la tabla de datos para METADATA_MIMETYPE, la columna DataColumns#DATA1 debe almacenar el identificador de contacto único según lo entienda la aplicación. Este valor se usará en .#EXTRA_RECIPIENT_CONTACT_CHAT_ID</li><>opcionalmente, al rellenar la fila tabla de datos para METADATA_MIMETYPE, la columna DataColumns#DATA3 podría almacenar una etiqueta legible humana para el identificador. Por ejemplo, podría ser el número de teléfono o el nombre de usuario o user_id legibles como "a_super_cool_user_name". Esta etiqueta puede mostrarse debajo del nombre de contacto por el Asistente para voz, ya que el usuario completa la acción de voz. Si DATA3 está vacío, el identificador de DATA1 se puede mostrar en su lugar.</li><><em>Nota: No use DATA3 para almacenar el nombre de contacto. El Asistente para voz ya obtendrá el nombre de contacto del display_name de RawContact.</em></li><><em>Nota: algunas aplicaciones pueden optar por usar el número de teléfono como identificador de contacto único en DATA1. Si esto se aplica a usted y desea que el número de teléfono se muestre debajo del nombre de contacto por el Asistente para voz, puede dejar DATA3 vacío.</em></li><><em>Nota: Si la aplicación también usa DATA3 para mostrar los detalles de contacto en la aplicación contactos, asegúrese de que no incluye texto de prefijo como "Mensaje +<teléfono" o "Mensaje gratuito +<teléfono>>", etc. Si debe mostrar el texto del prefijo en la aplicación contactos, use otra columna DATA# y actualice el contacts.xml para que apunte a esta nueva columna. </em></li></ul> Si la aplicación decide no integrarse con el proveedor de contactos (en concreto, cuando falte METADATA_ACCOUNT_TYPE o METADATA_MIMETYPE campo), el Asistente para voz usará entradas de número de teléfono existentes como identificador de contacto para dicha aplicación.

Entrada: android.content.Intent#getType es el tipo MIME de los datos que se envían. El remitente de la intención siempre colocará el tipo mime concreto en el tipo de intención, como "text/plain" o "audio/wav", por ejemplo. Si el tipo MIME es "text/plain", el mensaje que se envía se proporcionará a través android.content.Intent#EXTRA_TEXT de como charSequence con estilo. De lo contrario, el contenido del mensaje se proporcionará a través android.content.Intent#setClipData(ClipData) de como identificadores URI del proveedor de contenido. En este último caso, EXTRA_TEXT todavía podría suministrarse opcionalmente; por ejemplo, para los mensajes de audio ClipData contendrán un URI de una grabación y EXTRA_TEXT podría contener la transcripción de texto de esta grabación.

El mensaje puede tener n destinatarios. El destinatario nº del mensaje se proporcionará como n elementos de #EXTRA_RECIPIENT_CONTACT_URIy #EXTRA_RECIPIENT_CONTACT_CHAT_ID#EXTRA_RECIPIENT_CONTACT_NAME (como consecuencia, EXTRA_RECIPIENT_CONTACT_URI, EXTRA_RECIPIENT_CONTACT_CHAT_ID y EXTRA_RECIPIENT_CONTACT_NAME deben ser de longitud n). Si no se proporciona ninguno de estos tres elementos (por ejemplo, los 3 son null) para el destinatario o si la información proporcionada es ambigua, la actividad debe solicitar al usuario que envíe el mensaje.

Salida: nada

Documentación de Java para android.provider.ContactsContract.Intents.ACTION_VOICE_SEND_MESSAGE_TO_CONTACTS.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código Project y que se usan según los términos Creative Commons 2.5 Attribution License.

Se aplica a