Интернет-магазин

Просмотр корзины
В корзине:

товаров - 0 шт.



§ 30. Программа имитации нажатия кнопок телефона

Дмитрий Иванов, Январь 2007
Статья впервые опубликованна 14 Мая 2014

Файлы к статье скачать

О чем здесь идет речь? Что это за имитации нажатий? Дело вот в чем. Все более и менее современные телефоны поддерживают возможность программной имитации нажатий на свои кнопки. Т.е. если записать в порт спецальную команду с кодом клавиши телефона, например клавиши "Назад", то телефон выполнит это действие, как-будто ему действительно нажалии на эту клавишу. Это дает поистине потрясающие возможности по управлению сотовым, поскольку все что Вы могли сделать с ним с помощью нажатий кнопок, то же самое можно сделать программно!


Для этих целей предназначена специальная команда AT+CKPD="[код клавиши]". Например, ниже представлен перечень кодов клавиш для моего сотовго телефона SE T630.

Разве не впечатляет? Полный набор, делай что хочешь. В качастве примера к этой статье я хотел бы предложить простенькую но занятную программку, которая может управлять фотокамерой сотовго телефона, а именно делать снимки по нажатию на кнопку в программе. Замечу что это будет работать только для Sony Ericsoon`ов, поскольку клавиши и их коды точно разные для разных телефонов. Если у Вас другой телефон, то ни чего страшного нет, нужно просто посмотреть документацию на Ваш аппарат и узнать коды клавиш. Посмотрим что происходит при нажатии кнопки Make Foto в программе. Сначала отсылается команда с кодом клавиши :C - это специально выделенная на корпусе кнопка для фотоаппарата. При этом телефон перейдет в режим съемки. Задержка в 1 секунду нужна для того, что бы телефон успел перевестись в этот режим, пржде чем поступит следующая команда. Затем посылаем эту команду еще раз. При этом фотоаппарат сделает снимок, который будет некоторое время загружаться на экран телефона. После этого телефон на своем экране предложит сохранить этот снимок и вот тут то мы его и добиваем, отправляя команду с кодом :J - код кнопки джойстика. Тем самым мы соглашаемся сохранить снимок.

void CTelefonDlg::OnMakeFoto() 
{
	// TODO: Add your control notification handler code here
	DWORD lpdwBytesWritten;

	char sz[]="AT+CKPD=\":C\"\r";	
	WriteFile(m_hFile, sz, strlen(sz), &lpdwBytesWritten, NULL);
	Sleep(1000);

	char sz1[]="AT+CKPD=\":C\"\r";	
	WriteFile(m_hFile, sz1, strlen(sz1), &lpdwBytesWritten, NULL);	
	Sleep(7000);

	char sz2[]="AT+CKPD=\":J\"\r";	
	WriteFile(m_hFile, sz2, strlen(sz2), &lpdwBytesWritten, NULL);	
	Sleep(500);

	MessageBox("Foto Ok!", "Info", MB_ICONINFORMATION);	
}

Вот такой вот казалось бы простеникий пример, но обладающий удивительными возможностями.



© Дмитрий Иванов
Январь 2007
http://www.kernelchip.ru



© KERNELCHIP 2006 - 2023