Android模拟键盘跟键盘监听的一些调研

Android模拟键盘和键盘监听的一些调研1??????????键盘监控分析LinearLayoutxmlns:androidhttp://schema

Android模拟键盘和键盘监听的一些调研
1??????????键盘监控分析

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"?
??? androidrientation="vertical"?
??? android:layout_width="fill_parent"?
??? android:layout_height="fill_parent"?
??? >?
<Button? id="@+id/cmd_simulate_key"?
??? android:layout_width="fill_parent"?
??? android:layout_height="wrap_content"?
??? android:text="Simulate Menu Key Press"?
??? />?
</LinearLayout>

可以看到已经重新签名完成。

将updated.apk安装到手机上。

然后经过我们测试,能够在打电话的界面上模拟按键。在模拟器和G2手机上都可以实现。

这也有一个问题,就是这样生成的程序只有在原始的Android系统或者是自己编译的系统中才可以用,因为这样的系统才可以拿到 platform.pk8和platform.x509.pem两个文件。要是别家公司做的Android上连安装都安装不了。

???? 我们测试的环境是HTC G2手机,然后在MOTO的MILESTONE手机上不能安装,应该是签名的key不一致。

?

?

结论: 由于采用injectKeyEvent不能跨进程,只能放到被模拟按键进程中使用被模拟按键密钥签名后才可以使用。由此可见,要实现在别人程序中发送模拟键盘按键,需要我们的程序跟别人用相同的签名,然后使用同一个shareduserid即可。如果要在系统的程序中模拟按键,我们只需要获得系统的签名的key进行签名。不同的厂商的Android系统有不同的key。只要获得这个key就能够在相对应的程序里进行按键模拟