found a new api in ezxappbase-xscale-r.so
QCString GetHardKeyChannelName();
it return a const string "/hardkey/bc"
now, we can get keypad event when keypad is locked .
when ZMainWidget create:
{
....
QCString HardKeyChannelName = GetHardKeyChannelName();
qWarning("HardKeyChannel: %s\n", (const char *)HardKeyChannelName);
QCopChannel * cch;
// get vol+ vol- key press event
cch = new QCopChannel(QCString("/EZX/Volume"), this);
connect(cch, SIGNAL(received(const QCString &, const QByteArray &)), SLOT ( myhkc(const QCString &, const QByteArray &)) );
// get HOME LOCK key press event
cch = new QCopChannel(HardKeyChannelName, this);
connect(cch, SIGNAL(received(const QCString &, const QByteArray &)), SLOT ( myhkc(const QCString &, const QByteArray &)) );
....
}
// and the public slots of your MainWidget receive events
void MainWidget::myhkc( const QCString & msg, const QByteArray & /*data*/ )
{
qWarning("HardKey event: %s\n", (const char *)msg);
}
now , we can got RKeyPress、LKeyPress、HOME、FLIP events when keypad is locked like FM Radio and Realplayer.
