共用方式為


Device 類別

更新:2007 年 11 月

表示以 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 平台。

這個類別沒有任何建構函式 (Constructor)。若要取得執行個體 (Instance),請使用 GetDeviceGetDevices

範例

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

執行緒安全

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。

請參閱

參考

Device 成員

Microsoft.SmartDevice.Connectivity 命名空間