public static final class ContactsContract.Intents
extends Object
java.lang.Object | |
↳ | android.provider.ContactsContract.Intents |
包含用于创建或管理涉及联系人的 Intents
助手类。
Nested classes |
|
---|---|
class |
ContactsContract.Intents.Insert 便捷类包含用于创建联系人的字符串常量 |
Public constructors |
|
---|---|
ContactsContract.Intents() |
Inherited methods |
|
---|---|
From class java.lang.Object
|
String ACTION_VOICE_SEND_MESSAGE_TO_CONTACTS
活动行动:通过语音向某人发起消息。 消息可以是文本,音频,视频或图像(照片)。 无论使用的基础消息协议如何,此操作都支持与特定联系人的消息传递。
该动作可以来自语音助理作为语音交互。 在这种情况下,支持CATEGORY_VOICE
的接收活动在继续之前可能会检查返回值isVoiceInteractionRoot()
。 通过这样做来检查活动是否确实确实是由Voice Assistant启动的,并且可以立即发送消息,而无需用户进一步输入。 这可以在通过语音发送消息时实现流畅的用户体验。 注意:此活动还必须支持CATEGORY_DEFAULT
因此可以通过startVoiceActivity(Intent)
找到startVoiceActivity(Intent)
。
当语音助手未启动该操作或接收活动不支持 CATEGORY_VOICE
,活动必须在发送消息之前与用户确认(因为在这种情况下,未知哪个应用程序发送了意图,这可能是恶意的)。
为了允许Voice Assistant帮助用户消除联系人,消息传递应用程序可以选择与联系人提供程序集成。 您需要指定一个新的MIME类型,才能在数据表中存储应用程序的唯一联系人ID和可选的人员可读标签。 Voice Assistant需要知道您正在使用的MIME类型和ACCOUNT_TYPE
,以便提供平滑的联系人消歧用户体验。 执行此类集成时应满足以下约定:
METADATA_ACCOUNT_TYPE
, which defines ACCOUNT_TYPE
for your Contacts Provider implementation. The account type should be globally unique, for example you can use your app package name as the account type.METADATA_MIMETYPE
, which defines MIMETYPE
for your Contacts Provider implementation. For example, you can use "vnd.android.cursor.item/vnd.{$app_package_name}.profile" as MIME type.DATA1
should store the unique contact ID as understood by the app. This value will be used in the EXTRA_RECIPIENT_CONTACT_CHAT_ID
.DATA3
could store a human readable label for the ID. For example it could be phone number or human readable username/user_id like "a_super_cool_user_name". This label may be shown below the Contact Name by the Voice Assistant as the user completes the voice action. If DATA3 is empty, the ID in DATA1 may be shown instead.TIMES_CONTACTED
entry through DataUsageFeedback class. Doing this will allow Voice Assistant to bias speech recognition to contacts frequently contacted, this is particularly useful for contact names that are hard to pronounce.输入: getType()
是要发送的数据的MIME类型。 意图发送者将总是将具体的MIME类型置于意图类型中,例如“text / plain”或“audio / wav”。 如果MIME类型是“text / plain”,则发送的消息将通过EXTRA_TEXT
作为样式化的CharSequence提供。 否则,邮件内容将通过setClipData(ClipData)
作为内容提供商URI提供。 在后一种情况下,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为空),或者如果提供的信息不明确,则活动应提示用户让收件人发送消息。
输出:没有
也可以看看:
常量值:“android.provider.action.VOICE_SEND_MESSAGE_TO_CONTACTS”
String ATTACH_IMAGE
开始一个活动,让用户选择一个联系人来附加图像。 挑选联系人后,它会以人脸检测模式启动图像裁剪器。
常量值:“com.android.contacts.action.ATTACH_IMAGE”
String CONTACTS_DATABASE_CREATED
这是联系人数据库创建时触发的意图。
READ_CONTACT权限需要接收这些广播。
常量值:“android.provider.Contacts.DATABASE_CREATED”
String EXTRA_CREATE_DESCRIPTION
与 SHOW_OR_CREATE_CONTACT
用于指定在提示用户创建新联系人时显示的确切描述。
类型:STRING
常量值:“com.android.contacts.action.CREATE_DESCRIPTION”
String EXTRA_FORCE_CREATE
如果未找到匹配的联系人,请与SHOW_OR_CREATE_CONTACT
一起使用以强制创建新联系人。 否则,默认行为是在创建之前用对话框提示用户。
类型:BOOLEAN
常量值:“com.android.contacts.action.FORCE_CREATE”
String EXTRA_RECIPIENT_CONTACT_CHAT_ID
此额外信息为联系人指定了消息传递应用程序的唯一ID,与ACTION_VOICE_SEND_MESSAGE_TO_CONTACTS
用于提供给收件人。 这个额外的价值是String[]
。 阵列中元素的数量应该等于收件人的数量(并且与EXTRA_RECIPIENT_CONTACT_URI
和EXTRA_RECIPIENT_CONTACT_NAME
一致)。 当特定收件人的元素值不存在时,它将被设置为空。
元素的值来自联系人提供程序中的DATA1
列, MIMETYPE
与METADATA_MIMETYPE
(如果应用程序指定了METADATA_ACCOUNT_TYPE
和METADATA_MIMETYPE
;否则该值将是电话号码),并且应该是明确的联系人终端节点。 该值是特定于应用程序的,可能是某个专有ID或电话号码。
常量值:“android.provider.extra.RECIPIENT_CONTACT_CHAT_ID”
String EXTRA_RECIPIENT_CONTACT_NAME
此额外指定联系人姓名(联系人提供程序中的全名),与ACTION_VOICE_SEND_MESSAGE_TO_CONTACTS
用于提供给收件人。 这个额外的价值是String[]
。 数组中元素的数量应该等于收件人的数量(并且与EXTRA_RECIPIENT_CONTACT_URI
和EXTRA_RECIPIENT_CONTACT_CHAT_ID
一致)。 当特定收件人的元素值不存在时,它将被设置为空。
元素的值来自RawContact的display_name列。
示例值:{“Jane Doe”}
常量值:“android.provider.extra.RECIPIENT_CONTACT_NAME”
String EXTRA_RECIPIENT_CONTACT_URI
此额外信息指定联系人的内容提供者URI(如果联系人位于联系人提供程序中),与ACTION_VOICE_SEND_MESSAGE_TO_CONTACTS
用于提供给收件人。 这个额外的价值是String[]
。 阵列中元素的数量应等于收件人的数量(并且与EXTRA_RECIPIENT_CONTACT_CHAT_ID
和EXTRA_RECIPIENT_CONTACT_NAME
一致)。 当特定收件人的元素值不存在时,它将被设置为空。
注意:一个联系人可能在特定的消息传递平台上有多个帐户(例如聊天ID),因此这可能不明确。 例如,一个联系人“John Smith”可能在同一个消息应用程序上有两个帐户。
示例值:{“content://com.android.contacts/contacts/16”}
常量值:“android.provider.extra.RECIPIENT_CONTACT_URI”
String INVITE_CONTACT
这是当用户点击联系人的“邀请到网络”按钮时触发的意图。 只发送给支持“邀请到网络”功能的联系人提供商明确注册的活动。
getData()
包含联系人的查找URI。
常量值:“com.android.contacts.action.INVITE_CONTACT”
String METADATA_ACCOUNT_TYPE
与描述 ACCOUNT_TYPE
的 ACTION_VOICE_SEND_MESSAGE_TO_CONTACTS
活动关联的字符串,用于相应的联系人提供程序实现。
常量值:“android.provider.account_type”
String METADATA_MIMETYPE
与描述 MIMETYPE
的 ACTION_VOICE_SEND_MESSAGE_TO_CONTACTS
活动关联的字符串,用于相应的联系人提供程序实现。
常量值:“android.provider.mimetype”
String SEARCH_SUGGESTION_CLICKED
这是在点击搜索建议时触发的意图。
常量值:“android.provider.Contacts.SEARCH_SUGGESTION_CLICKED”
String SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED
这是在点击创建联系人的搜索建议时触发的意图。
常量值:“android.provider.Contacts.SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED”
String SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED
这是当点击拨号的搜索建议时触发的意图。
常量值:“android.provider.Contacts.SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED”
String SHOW_OR_CREATE_CONTACT
以mailto:或tel:scheme作为输入数据URI。 如果一个联系人存在给定的数据,它会显示。 如果没有联系人存在,对话框会询问用户是否想要创建一个新的联系人并填写所提供的详细信息。如果多个联系人共享数据,则会提示用户选择他们想要查看的联系人。
对于 mailto:
URI,方案特定部分必须是原始电子邮件地址,例如使用 fromParts(String, String, String)
构建的电子邮件地址。
对于tel:
URI,使用标准呼叫者ID查找算法将方案特定部分与现有号码进行比较。 该号码必须正确编码,例如使用fromParts(String, String, String)
。
如果没有要显示的联系人,则 ContactsContract.Intents.Insert
类中的任何附加内容都将传递给创建活动。
如果 EXTRA_FORCE_CREATE
,则传递true会在联系人不存在时跳过提示用户。
常量值:“com.android.contacts.action.SHOW_OR_CREATE_CONTACT”