Поделиться через


Device - класс

Обновлен: Ноябрь 2007

Представляет устройство или эмулятор на основе платформы Windows Embedded CE и предоставляет методы для контроля использования, получения информации и подключения к устройству.

Пространство имен:  Microsoft.SmartDevice.Connectivity
Сборка:  Microsoft.SmartDevice.Connectivity (в Microsoft.SmartDevice.Connectivity.dll)

Синтаксис

'Декларация
Public Class Device
'Применение
Dim instance As Device
public class Device
public ref class Device
public class Device

Заметки

В хранилище данных каждое устройство принадлежит платформе. Например, эмулятор Windows Mobile 5.0 Pocket PC R2 Square Emulator принадлежит платформе Windows Mobile 5.0 Pocket PC.

Этот класс не имеет каких-либо конструкторов. Для получения экземпляра используется метод GetDevice или GetDevices.

Примеры

Imports System
Imports System.Collections.ObjectModel
Imports Microsoft.SmartDevice.Connectivity



Class [source]

    Shared Sub Main(ByVal args() As String) 
        ' Get the datastore object
        Dim dsmgr As New DatastoreManager(1033)

        ' Get the platform object
        Dim platform As Platform = GetPlatformByName("Windows Mobile 5.0 Pocket PC SDK", dsmgr)

        Try
            ' Get the default device in the platform, usually an emulator.
            Dim device As Device = platform.GetDevice(platform.GetDefaultDeviceId())

            ' Output information about the device.
            Console.WriteLine("Name:  " + device.Name + vbCr + vbLf + "Platform:  " & _
                              device.Platform.ToString() + vbCr + vbLf + "ID:  " + _
                              device.Id.ToString())

            If device.IsEmulator() Then
                Console.WriteLine("Device is an Emulator")
            End If

            ' Output device properties
            Console.WriteLine(vbCr + vbLf + "Device 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() Then
                Dim info As SystemInfo = 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() + vbCr + vbLf)

                Console.WriteLine("Total RAM:  " + info.TotalPhys.ToString())
                Console.WriteLine("Available RAM:  " + info.AvailPhys.ToString() + vbCr + vbLf)

                Console.WriteLine("Total Virtual Memory:  " + info.TotalVirtual.ToString())
                Console.WriteLine("Available Virtual Memory:  " + _
                                  info.AvailVirtual.ToString() + vbCr + vbLf)

                If info.ACLineStatus = 1 Then
                    Console.WriteLine("AC Line plugged in.")
                ElseIf info.ACLineStatus = 0 Then
                    Console.WriteLine("AC Line unplugged.")
                End If

                Console.WriteLine("Main Battery:  " + 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 
                Dim readxml As String = "<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
                Dim provisionxml As String = "<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()
            End If


        Catch e As System.Exception
            Console.WriteLine(e.Message)
            Console.ReadLine()
        End Try

    End Sub 'Main



    ' Returns a platform if the supplied name can be found in the datastore.
    ' Returns null pointer if platform cannot be found
    Private Shared Function GetPlatformByName(ByVal p As String, _
                                              ByVal dsmgr As DatastoreManager) As Platform
        ' Get all platforms in the datastore.
        Dim platforms As Collection(Of Platform) = dsmgr.GetPlatforms()

        ' Find the platform whose name matches the parameter.
        Dim platform As Platform
        For Each platform In platforms
            If platform.Name = p Then
                Return platform
            End If
        Next platform
        Return Nothing

    End Function 'GetPlatformByName
End Class '[source]
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;
    }
}

Иерархия наследования

System.Object
  Microsoft.SmartDevice.Connectivity.Device

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

Device - члены

Microsoft.SmartDevice.Connectivity - пространство имен