如何在Windows Phone 8中获取软件包名称

时间:2013-02-01 13:46:28

标签: c++ visual-c++ windows-runtime windows-phone-8

我遇到了一个小问题。我需要获取WP8包名称(使用c ++),但是当我使用documented函数时,我只获得Not Implemented Exception。

Windows::ApplicationModel::Package^ package = Windows::ApplicationModel::Package::Current;
Windows::ApplicationModel::PackageId^ packageId = package->Id;
Platform::String^ output = "Name: \"" + packageId->Name + "\"\n"

这应该可行,但属性 package-> Id 在WP8中不可用,但最低支持的手机是Windows Phone 8.例如 fullName 属性备注这不是在WP8 API中实现的。

你能帮帮我吗? 谢谢

PS此功能在Windows应用商店应用解决方案

中正常工作

2 个答案:

答案 0 :(得分:3)

您可以尝试使用以下代码在 C ++ 中获取PackageId

Windows::ApplicationModel::PackageId^ packageId = Windows::Phone::Management::Deployment::InstallationManager::FindPackagesForCurrentPublisher()->First()->Current->Id;
Platform::String^ output = "Name: \"" + packageId->Name + "\"\n"

<强> C#

Windows.Phone.Management.Deployment.InstallationManager.FindPackagesForCurrentPublisher().First().Id

FindPackagesForCurrentPublisher()返回的包似乎已实现Current->Id

答案 1 :(得分:1)

并非所有属性都在WP8上实现,正如文档所述并且您已经找到了。它在MSDN上有点令人困惑,因为在某些情况下,表中说API可用,但上面的注释表明它没有在WP8上实现。

看起来FullName不可用,但Name可用。如果需要,还可以使用仅限Windows Phone的属性ProductId来唯一地标识您的应用。