По некоторым причинам мне нужно иметь доступ к внутреннему модему смартфона Windows Mobile (HTC s740 с WM версии 6.1). Я хочу иметь доступ к нему, как к последовательному порту, для подачи AT-команд.
У меня есть код, который использует интерфейс TAPI Line и lineGetID (), чтобы получить «дескриптор», с которым я должен иметь возможность выполнять ReadFile () / WriteFile (). К сожалению, я не получил его на работу.
Что я делаю в настоящее время:
Инициализация TAPI с помощью lineInitializeEx ()
Открыть строку с помощью lineOpen ()
Перебирать каждое доступное устройство и получать информацию. В настоящее время я выбираю устройство "UNIMODEM" / "Hayes, совместимое с COM1". Но, может быть, мне стоит вместо этого выбрать «TAPI сотовая связь» / «Сотовая линия»? Я попробовал устройство "Сотовая линия" с тем же результатом.
Используйте lineGetID () на выбранном устройстве, чтобы получить дескриптор.
Выполните WriteFile ("AT \ r"), а затем непосредственно выполните ReadFile (), которое должно вернуть мне "OK", если это действительно был модем, к которому я обращался.
Поймите, что это не работает, и раздражайтесь ...
Но до сих пор это было запрещено.
Кто-нибудь знает, как это сделать?
Я делаю это в Native WIN32 C ++ в Windows Mobile 6 SDK.
UPDATE:
До сих пор мне удалось получить соединение для передачи данных между двумя телефонами, используя RIL, что дает мне дескриптор последовательного порта для записи и чтения. НО, я все еще хотел бы иметь возможность напрямую взаимодействовать с модемом для отправки AT-команд. Итак, награда, которую я начинаю, касается только получения прямого доступа к модему для предоставления AT-команд. Мои исследования пока показывают, что это было возможно в предыдущих версиях Windows Mobile (открыв COM2 и / или COM9 и убив RIL, или что-то подобное), но я еще не видел код, который работает на WM6.