访问已安装应用的列表

我需要安装Windows Phone的已安装应用程序。 你知道这是否可以从SDK获得?

可以列出手机上安装的第三方应用程序,但仅限于您的桌面计算机(即,不是来自设备上运行的应用程序),因此可能不是您所追求的。

首先,您需要添加对此程序集的引用:

c:\ Program Files(x86)\ Common Files \ microsoft shared \ Phone Tools \ CoreCon \ 10.0 \ Bin \ Microsoft.Smartdevice.Connectivity.dll

然后,以下代码将连接到模拟器(设备的useEmulator = false ),并将安装的所有应用程序的产品ID写入控制台。

 int locale = CultureInfo.CurrentCulture.LCID; bool useEmulator = true; var datastoreManager = new DatastoreManager(locale); var phonePlatform = datastoreManager.GetPlatforms() .Single(p => p.Name == "Windows Phone 7"); var phoneDevice = phonePlatform.GetDevices() .First(d => d.IsEmulator() == useEmulator); phoneDevice.Connect(); var apps = phoneDevice.GetInstalledApplications(); foreach(RemoteApplication app in apps) { Console.WriteLine(app.ProductID.ToString()); } phoneDevice.Disconnect(); 

一些警告:

  • 如前所述,此代码在桌面上的.NET上运行,而不是在手机本身上运行
  • 只有ProductID可供您使用,访问GenreTitle将抛出NotImplementedException
  • 我没有包含任何error handling
  • 据我所知,这不是官方支持的API,可能会有所变化。

我认为这不可能以合法的方式进行。

每个应用程序都位于其沙箱中,无法访问父文件夹或其他应用程序。

也许您可以解释为什么要获取此信息。 在某些情况下可以制定解决方案,例如,如果您想知道设备上是否安装了其他应用程序。 (这不太可能是设备上的,可能依赖于Web服务来跟踪您的安装基础)。

当然,拥有这些知识并不一定会对你有所帮助。 您无法启动其他应用程序,也无法直接与其进行交互,因此可能只是浪费时间。

此时,没有此类API来获取已安装应用程序的列表。 限制更多事情以维护用户数据的安全性。 🙂