private void ExecuteListInstalledAppsOperation(ParameterHelper parameters) { Task <AppPackages> packagesTask = _portal.GetInstalledAppPackagesAsync(); packagesTask.Wait(); var packages = packagesTask.Result; Console.Out.WriteLine(packages.ToString()); }
/// <summary> /// Click handler for the shutdownDevice button. /// </summary> /// <param name="sender">The caller of this method.</param> /// <param name="e">The arguments associated with this event.</param> private void ShutdownDevice_Click(object sender, RoutedEventArgs e) { bool reenableDeviceControls = false; this.ClearOutput(); this.EnableConnectionControls(false); this.EnableDeviceControls(false); StringBuilder sb = new StringBuilder(); Task shutdownTask = new Task( async() => { sb.Append(this.MarshalGetCommandOutput()); sb.AppendLine("Shutting down the device"); this.MarshalUpdateCommandOutput(sb.ToString()); try { Task <AppPackages> packagesTask = portal.GetInstalledAppPackagesAsync(); packagesTask.Wait(); foreach (var p in packagesTask.Result.Packages) { sb.AppendLine(p.FullName); } this.MarshalUpdateCommandOutput(sb.ToString()); await this.portal.TerminateApplicationAsync("Microsoft.RemoteDesktop_10.2.1636.0_x64__8wekyb3d8bbwe"); } catch (Exception ex) { sb.AppendLine("Failed to shut down the device."); sb.AppendLine(ex.GetType().ToString() + " - " + ex.Message); reenableDeviceControls = true; } this.MarshalUpdateCommandOutput(sb.ToString()); }); Task continuationTask = shutdownTask.ContinueWith( (t) => { this.MarshalEnableDeviceControls(reenableDeviceControls); this.MarshalEnableConnectionControls(true); }); shutdownTask.Start(); }
public async Task UpdateApplicationsAsync() { if (_devicePortal == null || !IsConnected) { Message = "Update app list failed."; return; } Applications.Clear(); // インストールされているアプリを取得 var appPackages = await _devicePortal.GetInstalledAppPackagesAsync(); var apps = appPackages.Packages.Select(x => new HoloLensApplication(x.AppId, x.Name, x.FullName)); foreach (var app in apps) { Applications.Add(app); } }
/// <summary> /// Main entry point for handling a Config operation /// </summary> /// <param name="portal">DevicePortal reference for communicating with the device.</param> /// <param name="parameters">Parsed command line parameters.</param> public static void HandleOperation(DevicePortal portal, ParameterHelper parameters) { if (parameters.HasFlag(ParameterHelper.HelpFlag)) { Console.WriteLine(AppUsageMessage); return; } string operationType = parameters.GetParameterValue("subop"); if (string.IsNullOrWhiteSpace(operationType)) { Console.WriteLine("Missing subop parameter"); Console.WriteLine(); Console.WriteLine(AppUsageMessage); return; } operationType = operationType.ToLowerInvariant(); try { if (operationType.Equals("list")) { Task <AppPackages> packagesTask = portal.GetInstalledAppPackagesAsync(); packagesTask.Wait(); Console.WriteLine(packagesTask.Result); } else { string packageFullName = parameters.GetParameterValue("pfn"); if (string.IsNullOrEmpty(packageFullName)) { Console.WriteLine("The Package Full Name is required as the /pfn<packageFullName> parameter for this operation."); Console.WriteLine(); Console.WriteLine(AppUsageMessage); return; } if (operationType.Equals("suspend")) { Console.WriteLine("Suspend isn't currently supported, but will be in the future."); } else if (operationType.Equals("resume")) { Console.WriteLine("Resume isn't currently supported, but will be in the future."); } else if (operationType.Equals("launch")) { string aumid = parameters.GetParameterValue("aumid"); if (string.IsNullOrEmpty(aumid)) { Console.WriteLine("The appId (AUMID) is required as the /aumid:<appId> parameter for the launch operation."); Console.WriteLine(); Console.WriteLine(AppUsageMessage); return; } Task launchTask = portal.LaunchApplicationAsync(aumid, packageFullName); launchTask.Wait(); Console.WriteLine("Application launched."); } else if (operationType.Equals("terminate")) { Task terminateTask = portal.TerminateApplicationAsync(packageFullName); terminateTask.Wait(); Console.WriteLine("Application terminated."); } else if (operationType.Equals("uninstall")) { Task uninstallTask = portal.UninstallApplicationAsync(packageFullName); uninstallTask.Wait(); Console.WriteLine("Application uninstalled."); } } } catch (AggregateException e) { if (e.InnerException is DevicePortalException) { DevicePortalException innerException = e.InnerException as DevicePortalException; Console.WriteLine(string.Format("Exception encountered: 0x{0:X} : {1}", innerException.HResult, innerException.Reason)); } else if (e.InnerException is OperationCanceledException) { Console.WriteLine("The operation was cancelled."); } else { Console.WriteLine(string.Format("Unexpected exception encountered: {0}", e.Message)); } return; } }