通过智能设备连接 API 控制设备

更新:2007 年 11 月

Microsoft Visual Studio 包括智能设备连接 API,使得开发人员可以在其应用程序中利用某些核心连接功能。核心连接是一种通信框架,供 Microsoft Visual Studio、Microsoft Visual Studio 远程工具以及 Microsoft Platform Builder 等产品用来在智能设备上部署文件、启动进程、刷写设备以及调试应用程序。

通常情况下,智能设备连接 API 用于编写设备项目的远程工具等类似的程序。其优点在于,开发人员可以将精力更多地放在编程逻辑上,因为有关如何连接和管理设备的细节已经被抽取出去。智能设备连接 API 可实现下列任务:

  • 列出可用的平台和设备。

  • 在本地台式计算机与目标设备之间建立连接。

  • 将应用程序、程序包和文件部署到目标设备。

  • 启动、停止和枚举目标设备上的进程。

  • 在台式机与目标设备之间交换数据。

使用智能设备连接 API,可以编写远程工具并自动完成设备管理任务。

智能设备连接应用程序的典型体系结构

若要了解智能设备连接 API,最佳方式是完整地运行使用智能设备连接 API 的典型桌面应用程序。

  1. 为了使用 Microsoft.SmartDevice.Connectivity 命名空间,台式机应用程序会添加对 驱动器:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\Bin\Microsoft.Smartdevice.Connectivity.dll 的引用。

  2. 该应用程序将创建 DatastoreManager 并将其用于枚举 Platform 对象的集合。每个 Platform 都表示台式计算机数据存储中安装的一个平台,例如 Windows Mobile 5.0 Pocket PC。

  3. 该应用程序将使用 Platform 枚举 Device 对象的集合。每个 Device 都表示一个属于该平台的设备或仿真程序,例如 Windows Mobile 5.0 Pocket PC 仿真程序。

  4. 该应用程序将使用 Device 访问有关设备的信息,并在配置设备后连接至设备。

  5. 在连接至设备后,该应用程序可以使用 FileDeployer 将文件部署到设备,或使用 RemoteProcess 启动或停止设备上的进程。

  6. 如果应用程序必须执行 FileDeployerRemoteProcessDevice 中未提供的自定义任务,它可以创建一个 RemoteAgent 来将设备代理部署到设备并与之交换数据。设备代理是用户创作的一种智能设备应用程序,它使用 Microsoft.SmartDevice.DeviceAgentTransport 命名空间(针对 Visual C# 或 Visual Basic 设备代理)或 DeviceAgentTransport.dll 库(针对 Visual C++ 设备代理)。若要通过 RemoteAgent 部署设备代理,必须在台式计算机的数据存储中将设备代理注册为加载项包。有关更多信息,请参见加载项包概述。为部署设备代理并与之进行通信,应用程序将执行下列步骤:

    1. 台式机应用程序调用 RemoteAgent.Start 部署并启动设备代理。

    2. 当设备代理在设备上运行后,它会调用 IDeviceAgentTransport.AcknowledgeLaunch 确认连接。

    3. 设备代理调用 IDeviceAgentTransport.AcceptConnectionEx 接受来自台式机的数据包流请求。

    4. 台式机应用程序调用 RemoteAgent.CreatePacketStream 获取用于数据传输的 DevicePacketStream

    5. 此后,远程应用程序和设备代理会通过将 PacketIPacket 对象读写到各自的设备数据包流中来交换数据。

    由于设备代理在设备上运行,因此它具有完全的编程访问权限来收集信息和操作设备。

    说明:

    本主题前面介绍的设备代理使用 Microsoft.SmartDevice.DeviceAgentTransport 和 .NET Compact Framework。另外,您也可以使用非托管设备端的智能设备连接 API 创建非托管的设备代理。

有关如何创建这种应用程序的分步指南,请参见演练:在台式机应用程序与设备应用程序之间交换数据

智能设备连接 API 中的文件和命名空间

智能设备连接 API 包括下列内容:

  • 供台式机应用程序使用的 Microsoft.SmartDevice.Connectivity 命名空间((驱动器:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\Bin\Microsoft.Smartdevice.Connectivity.dll)。

  • 用于创建 Visual C# 或 Visual Basic 设备代理应用程序的 Microsoft.SmartDevice.DeviceAgentTransport 命名空间(驱动器:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\Target\Microsoft.Smartdevice.DeviceAgentTransport.dll)。

  • 用于创建 Visual C++ 设备代理应用程序的非托管设备端的智能设备连接 API(驱动器:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\Target\wce400\CPU\DeviceAgentTransport.dll)。

什么是数据存储?

数据存储区是台式计算机上的一组 XML 文件,包含有关此计算机上安装的平台、设备、仿真程序和程序包的信息。数据存储是核心连接的一部分,它随 Microsoft Visual Studio 或 Microsoft Platform Builder 一起安装。每次安装基于 Windows CE 的 SDK(例如 Windows Mobile)时,就会修改数据存储的内容。

数据存储位于 驱动器:\Users\All Users\Microsoft\corecon\1.0 (Windows Vista) 或 驱动器:\Documents and Settings\All Users\Application Data\Microsoft\corecon\1.0 (Windows XP) 中。

说明:

修改数据存储文件夹中的任何文件之前,都应该先对数据存储进行备份。格式不正确的文件将损坏数据存储,进而导致 Visual Studio 无法运行。

您只应修改数据存储中的 addons 文件夹。有关更多信息,请参见加载项包概述

请参见

其他资源

Smart Device Connectivity API Samples(智能设备连接 API 示例)