3

由于某些原因,我需要能够访问 Windows Mobile 智能手机的内部调制解调器(带有 WM 版本 6.1 的 HTC s740)。我想要的是能够像串行端口一样访问它,以便提供 AT 命令。

我有使用 TAPI Line 接口和 lineGetID() 的代码来获得一个“句柄”,我应该能够在该句柄上执行 ReadFile()/WriteFile()。可悲的是我还没有让它工作。

我目前做的是:

  1. 使用 lineInitializeEx() 初始化 TAPI

  2. 用 lineOpen() 打开线

  3. 遍历每个可用设备并获取信息。目前我正在选择“UNIMODEM”/“在 COM1 上兼容 Hayes”设备。但也许我应该选择“TAPI 蜂窝服务”/“蜂窝线路”?我尝试了“蜂窝线”设备,结果相同。

  4. 在所选设备上使用 lineGetID() 来获取句柄。

  5. 执行 WriteFile("AT\r"),然后直接执行 ReadFile(),如果它确实是我访问的调制解调器,它应该会给我一个“OK”回复。

  6. 意识到它不起作用并生气......

但到目前为止,这一直是行不通的。

有人知道怎么做吗?

我在 Windows Mobile 6 SDK 上的 Native WIN32 C++ 中执行此操作。

更新:到目前为止,我已经设法使用 RIL 在两部手机之间建立数据连接,这给了我一个串行端口句柄来读写。但是,我仍然希望能够直接与调制解调器交互以发送 AT 命令。所以,我开始的赏金只涉及直接访问调制解调器以提供 AT 命令。到目前为止,我的调查表明这在以前版本的 Windows Mobile 中是可能的(通过打开 COM2 和/或 COM9 并杀死 RIL 或类似的东西),但我还没有看到适用于 WM6 的代码。

4

2 回答 2

1

你可能无法做到这一点。无线电接口不一定是 COM 端口 - AT 命令经常被模拟。即使您可以获得 COM 端口的句柄,您将如何与内置连接管理器正在执行的活动同步。

于 2010-04-11T12:51:00.640 回答
0

我不确定您是否可以使用 lineGetID带有WriteFile/ReadFile功能的句柄。这些是(可能)不能与 TAPI 一起使用的低级函数。

我会尝试打开 COM 端口CreateFile,获取句柄,然后使用WriteFileReadFile功能。MSDN( Win32中的串行通信)中有一篇古老的经典文章,描述了这种技术。

但是,我没有使用 Windows Mobile 编程的经验,所以我不确定它是否适合您。

于 2009-06-15T23:39:50.670 回答