由于某些原因,我需要能够访问Windows Mobile智能手机的内部调制解调器(带有WM版本6.1的HTC s740)。我想要的是能够访问它,就像它是一个串口,以便给出AT命令。
我有使用TAPI Line接口和lineGetID()的代码来获取一个“句柄”,我可以在其上执行ReadFile()/ WriteFile()。可悲的是,我没有让它发挥作用。
我目前所做的是:
使用lineInitializeEx()
使用lineOpen()
遍历每个可用设备并获取信息。目前我正在选择“UNIMODEM”/“Hayes兼容COM1”设备。但也许我应该选择“TAPI蜂窝服务”/“Cellular Line”呢?我尝试过“Cellular Line”设备,效果相同。
在所选设备上使用lineGetID()来获取句柄。
执行WriteFile(“AT \ r”)然后直接执行ReadFile(),如果它真的是我访问的调制解调器,它应该给我一个“OK”。
意识到它不起作用并且生气...
但到目前为止,这是不可取的。
有没有人知道怎么做?
我在Windows Mobile 6 SDK上使用Native WIN32 C ++进行此操作。
更新: 到目前为止,我设法使用RIL在两部手机之间建立数据连接,这为我提供了一个串行端口句柄来写入和读取。但是,我仍然希望能够直接与调制解调器交互以发送AT命令。因此,我开始的赏金只涉及直接访问调制解调器以提供AT命令。到目前为止,我的调查表明,在以前版本的Windows Mobile中可以实现这一点(通过打开COM2和/或COM9并杀死RIL,或类似的东西),但我还没有看到适用于WM6的代码。
答案 0 :(得分:1)
你可能做不到这一点。收音机的接口不一定是COM端口 - 通常模拟AT命令。即使您可以获得COM端口的句柄,您将如何与内置连接管理器正在执行的活动同步。
答案 1 :(得分:0)
我不确定您是否可以使用lineGetID
/ WriteFile
函数来处理来自ReadFile
的句柄。这些是低级函数,(可能)不能与TAPI一起使用。
我会尝试使用CreateFile
打开COM端口,获取句柄,然后使用WriteFile
和ReadFile
函数。 MSDN中有一篇旧的经典文章(Serial Communications in Win32),它描述了这种技术。
但是,我对Windows Mobile编程没有经验,所以我不确定它是否适合您。