Мне нужно установить установленные приложения на Windows Phone. Знаете ли вы, есть ли это в SDK?
Можно указать список сторонних приложений, установленных на телефоне, но только с вашего настольного компьютера (т.е. не из приложения, запущенного на устройстве), и, возможно, это не так, как вы.
Во-первых, вам нужно добавить ссылку на эту сборку:
c:\Program Files (x86)\Common Files\microsoft shared\Phone Tools\CoreCon\10.0\Bin\Microsoft.Smartdevice.Connectivity.dll
Затем следующий код подключается к эмулятору (useEmulator = false
для устройства) и записывает идентификаторы продуктов всех приложений, установленных на консоль.
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();
Некоторые оговорки:
Genre
или Title
приведет к выбросу NotImplementedException
Я думаю, что это невозможно по-законному.
Каждое приложение живет в своей песочнице и не имеет доступа к родительским папкам или другим приложениям.
Возможно, вы могли бы объяснить, почему вы хотите получить эту информацию. В некоторых случаях может быть возможно выработать решение, например, если вы хотите узнать, установлено ли на устройстве другое ваше приложение. (Это вряд ли будет на устройстве и может полагаться на веб-службу для отслеживания вашей базы установки).
Конечно, знание не обязательно поможет вам. Вы не сможете запускать другое приложение или напрямую взаимодействовать с ним, так что это может быть просто пустая трата времени.
В этот момент нет такого API для получения списка установленного приложения. Больше вещей ограничено для обеспечения безопасности для пользовательских данных.:)