Доступ к списку установленных приложений

2

Мне нужно установить установленные приложения на Windows Phone. Знаете ли вы, есть ли это в SDK?

Теги:
windows-phone-7
windows-phone-7.1

4 ответа

3
Лучший ответ

Можно указать список сторонних приложений, установленных на телефоне, но только с вашего настольного компьютера (т.е. не из приложения, запущенного на устройстве), и, возможно, это не так, как вы.

Во-первых, вам нужно добавить ссылку на эту сборку:

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();

Некоторые оговорки:

  • Как упоминалось ранее, этот код работает на .NET на рабочем столе, а не на самом телефоне
  • Доступен только ProductID, доступ к Genre или Title приведет к выбросу NotImplementedException
  • Я не включил обработку ошибок
  • Это не официально поддерживаемый API, и я могу его изменить.
  • 0
    Здорово! С этим решением мне просто нужно найти способ передачи результатов (приложения, установленные на телефоне) на телефон (когда он все еще подключен к рабочему столу). Есть идеи? :) Спасибо много!
  • 0
    Вы можете использовать изолированное хранилище для передачи файла непосредственно в хранилище приложения или разместить веб-сервер на хост-компьютере и подключиться к нему с помощью ResourceIntensiveTask (запускается после включения питания + Wi-Fi в течение 10 минут) на Телефон.
6

Я думаю, что это невозможно по-законному.

Каждое приложение живет в своей песочнице и не имеет доступа к родительским папкам или другим приложениям.

  • 0
    Правильно, невозможно получить список установленных приложений.
0

Возможно, вы могли бы объяснить, почему вы хотите получить эту информацию. В некоторых случаях может быть возможно выработать решение, например, если вы хотите узнать, установлено ли на устройстве другое ваше приложение. (Это вряд ли будет на устройстве и может полагаться на веб-службу для отслеживания вашей базы установки).

Конечно, знание не обязательно поможет вам. Вы не сможете запускать другое приложение или напрямую взаимодействовать с ним, так что это может быть просто пустая трата времени.

0

В этот момент нет такого API для получения списка установленного приложения. Больше вещей ограничено для обеспечения безопасности для пользовательских данных.:)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню