【发布时间】:2012-11-20 13:53:27
【问题描述】:
我正在尝试允许用户以这种方式从“人脉”应用中选择联系人:
private async Task<System.Collections.Generic.KeyValuePair<string, string>> SelectAContactForASlot()
{
KeyValuePair<string, string> kvp; // = new KeyValuePair<string, string>();
var contactPicker = new Windows.ApplicationModel.Contacts.ContactPicker();
contactPicker.CommitButtonText = "Select";
var contact = await contactPicker.PickSingleContactAsync();
if (contact != null)
{
kvp = new KeyValuePair<string, string>(contact.Name, contact.Emails[0].ToString());
return kvp;
}
return kvp = new KeyValuePair<string, string>("No Name found", "No email found");
}
People 应用确实被调用了,但它看起来像这样:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ 人v
出了点问题,此应用目前无法选择联系人。
再次尝试选择该应用。
| Select | | Cancel |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
我昨天添加了几个联系人,所以它确实包含联系人。我的代码有问题吗,或者我该如何解决这个问题?
【问题讨论】:
-
您是否在清单文件 (
WMAppManifest.xml) 中添加了ID_CAP_CONTACTS功能? -
清单文件名为 Package.appxmanifest(所有 Windows 应用商店应用程序都相同); Package.appxmanifest 的 Declarations 部分有一个“Contact Picker”项,但我完全不确定这对于简单地调用本机 People 应用程序是必需的;它的描述是“将应用程序注册为人员选择器,使应用程序中的联系人详细信息可用于其他 Windows 8 应用程序......”
-
抱歉,我将标签误读为 Windows Phone 8。您是否尝试过启用它只是为了看看它是否有效?
-
如果我添加“Contact Picker”声明,它还想知道Executable,入口点和Start page(我不知道我应该放什么;我真的不认为这个适用于我的场景)。
标签: c# windows-8 windows-runtime windows-store-apps