1

我遇到了一个小问题。我需要获取 WP8 包名称(使用 c++),但是当我使用记录的函数时,我只会得到未实现的异常。

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 Store 应用中运行良好

4

2 回答 2

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

于 2014-01-27T15:37:42.477 回答
1

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

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

于 2013-02-01T17:42:38.237 回答