由于某些原因,我需要能够访问 Windows Mobile 智能手机的内部调制解调器(带有 WM 版本 6.1 的 HTC s740)。我想要的是能够像串行端口一样访问它,以便提供 AT 命令。
我有使用 TAPI Line 接口和 lineGetID() 的代码来获得一个“句柄”,我应该能够在该句柄上执行 ReadFile()/WriteFile()。可悲的是我还没有让它工作。
我目前做的是:
使用 lineInitializeEx() 初始化 TAPI
用 lineOpen() 打开线
遍历每个可用设备并获取信息。目前我正在选择“UNIMODEM”/“在 COM1 上兼容 Hayes”设备。但也许我应该选择“TAPI 蜂窝服务”/“蜂窝线路”?我尝试了“蜂窝线”设备,结果相同。
在所选设备上使用 lineGetID() 来获取句柄。
执行 WriteFile("AT\r"),然后直接执行 ReadFile(),如果它确实是我访问的调制解调器,它应该会给我一个“OK”回复。
意识到它不起作用并生气......
但到目前为止,这一直是行不通的。
有人知道怎么做吗?
我在 Windows Mobile 6 SDK 上的 Native WIN32 C++ 中执行此操作。
更新:到目前为止,我已经设法使用 RIL 在两部手机之间建立数据连接,这给了我一个串行端口句柄来读写。但是,我仍然希望能够直接与调制解调器交互以发送 AT 命令。所以,我开始的赏金只涉及直接访问调制解调器以提供 AT 命令。到目前为止,我的调查表明这在以前版本的 Windows Mobile 中是可能的(通过打开 COM2 和/或 COM9 并杀死 RIL 或类似的东西),但我还没有看到适用于 WM6 的代码。