Device Class
Visual Studio 2008
Represents a device or emulator that is based on Windows Embedded CE and provides methods to provision, get information, and connect to a device.
Assembly: Microsoft.SmartDevice.Connectivity (in Microsoft.SmartDevice.Connectivity.dll)
In the Datastore, every device belongs to a platform. For example, the Windows Mobile 5.0 Pocket PC R2 Square Emulator belongs to the Windows Mobile 5.0 Pocket PC platform.
This class does not have any constructors. To get an instance, use GetDevice or GetDevices.
This example connects to an emulator, writes information about the emulator to the console, queries the emulator for current security policies, and then provisions the emulator with two-tier prompt security configuration.
using System; using System.Collections.ObjectModel; using Microsoft.SmartDevice.Connectivity; class source { static void Main(string[] args) { // Get the datastore object DatastoreManager dsmgr = new DatastoreManager(1033); // Get the platform object Platform platform = GetPlatformByName("Windows Mobile 5.0 Pocket PC SDK", dsmgr); try { // Get the default device in the platform, usually an emulator. Device device = platform.GetDevice(platform.GetDefaultDeviceId()); // Output information about the device. Console.WriteLine("Name: " + device.Name + "\r\n" + "Platform: " + device.Platform + "\r\n" + "ID: " + device.Id); if (device.IsEmulator()) { Console.WriteLine("Device is an Emulator"); } // Output device properties Console.WriteLine("\r\nDevice Properties:"); Console.WriteLine(" OS_Version: " + device.GetProperty("OS_Version")); // Connect to the device. device.Connect(); // If the device is connected, retrieve system information and output to console. if (device.IsConnected()) { SystemInfo info = device.GetSystemInfo(); Console.WriteLine("Total Page File: " + info.TotalPageFile.ToString()); Console.WriteLine("Available Page File: " + info.AvailPageFile.ToString()); Console.WriteLine("Page Size: " + info.PageSize.ToString() + "\r\n"); Console.WriteLine("Total RAM: " + info.TotalPhys.ToString()); Console.WriteLine("Available RAM: " + info.AvailPhys.ToString() + "\r\n"); Console.WriteLine("Total Virtual Memory: " + info.TotalVirtual.ToString()); Console.WriteLine("Available Virtual Memory: " + info.AvailVirtual.ToString() + "\r\n"); if (info.ACLineStatus == 1) { Console.WriteLine("AC Line plugged in."); } else if(info.ACLineStatus == 0) { Console.WriteLine("AC Line unplugged."); } Console.WriteLine("Main Battery Flag: " + info.BatteryFlag.ToString()); Console.WriteLine(" Capacity: " + info.BatteryFullLifetime.ToString()); Console.WriteLine(" Percent: " + info.BatteryLifePercent.ToString()); Console.WriteLine(" Life: " + info.BatteryLifetime.ToString()); Console.WriteLine("Device Time: " + info.CurrentTime.ToString()); Console.WriteLine("Processor Architecture: " + info.ProcessorArchitecture.ToString()); Console.WriteLine("Instruction Set: " + info.InstructionSet.ToString()); Console.WriteLine("Number of CPU: " + info.NumberOfProcessors.ToString()); Console.WriteLine("OS: " + info.OSMajor.ToString() + "." + info.OSMinor.ToString() + "." + info.OSBuildNo.ToString()); Console.WriteLine("Locale ID: " + info.SystemDefaultLocaleId.ToString()); // Query Device for current security policies string readxml = @" <wap-provisioningdoc> <characteristic type=""SecurityPolicy""> <parm-query name=""4123""/> <parm-query name=""4122""/> <parm-query name=""4101""/> <parm-query name=""4102""/> <parm-query name=""4097""/> </characteristic> </wap-provisioningdoc>"; Console.WriteLine(device.ProvisionDevice(readxml, Device.ConfigActions.ProcessInput)); // Deploy two-tier prompt security configuration to device and see changes string provisionxml = @" <wap-provisioningdoc> <characteristic type=""SecurityPolicy""> <parm name=""4123"" value=""0"" /> <parm name=""4122"" value=""0"" /> <parm name=""4101"" value=""16"" /> <parm name=""4102"" value=""1"" /> <parm name=""4097"" value=""2"" /> </characteristic> </wap-provisioningdoc>"; Console.WriteLine(device.ProvisionDevice(provisionxml, Device.ConfigActions.ProcessInput)); // Read metadata about the policies Console.WriteLine(device.ProvisionDevice(readxml, Device.ConfigActions.ReadMetadata)); device.Disconnect(); Console.ReadLine(); } } catch (System.Exception e) { Console.WriteLine(e.Message); Console.ReadLine(); } } // Returns a platform if the supplied name can be found in the datastore. // Returns null pointer if platform cannot be found private static Platform GetPlatformByName(string p, DatastoreManager dsmgr) { // Get all platforms in the datastore. Collection<Platform> platforms = dsmgr.GetPlatforms(); // Find the platform whose name matches the parameter. foreach (Platform platform in platforms) { if (platform.Name == p) return platform; } return null; } }