能否模拟 ,你按了机器的back button的keycode给发出去?
解决方案 »
- 如何用代码修改androidmanifest.xml中application的属性
- eclipse导入不了方法,这是怎么回事?求解!!!
- LayoutInflater对象的创建
- 这样写为什么从A界面无法跳转到B界面?
- android半成品平板电脑(有图) 有前途吗?
- 论坛问问题的几个窍门!~!~~~~~~题目长才有人看~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Android 4.4源码中platform.xml文件中定义的应用程序权限怎么这么少
- 0x41b79c68异常
- Android访问https不成功
- 关于的android动态升级,动态加载的技术疑问?求解决
- android关于权限的问题
- 如何调试程序
private void sendKeyEvent(String event) {
int eventCode = Integer.parseInt(event);
long now = SystemClock.uptimeMillis();
Log.i("SendKeyEvent", event);
try {
KeyEvent down = new KeyEvent(now, now, KeyEvent.ACTION_DOWN, eventCode, 0);
KeyEvent up = new KeyEvent(now, now, KeyEvent.ACTION_UP, eventCode, 0);
(IWindowManager.Stub
.asInterface(ServiceManager.getService("window")))
.injectKeyEvent(down, true);
(IWindowManager.Stub
.asInterface(ServiceManager.getService("window")))
.injectKeyEvent(up, true);
} catch (RemoteException e) {
Log.i("Input", "DeadOjbectException");
}
}补理解~这个~再看看
看看AP层有没其他方法直接重写onKeyDown?呵呵
import android.view.IWindowManager;
import android.view.KeyEvent;响应事件可以: private final void updateIconKeyAction(Intent intent){
int keycode = intent.getIntExtra("keycode", -1);
if(keycode != -1){
long now = SystemClock.uptimeMillis(); try {
KeyEvent down = new KeyEvent(now, now, KeyEvent.ACTION_DOWN, keycode, 0);
KeyEvent up = new KeyEvent(now, now, KeyEvent.ACTION_UP, keycode, 0);
(IWindowManager.Stub
.asInterface(ServiceManager.getService("window")))
.injectKeyEvent(down, false);
(IWindowManager.Stub
.asInterface(ServiceManager.getService("window")))
.injectKeyEvent(up, false);
} catch (RemoteException e) {
Log.i("Input", "DeadOjbectException");
}
}
}
我的问题跟你的一样,在收到intent后,可以进入updateIconKeyAction
从keyevent也发送了KeyEvent.KEYCODE_BACK消息
但是logcat上一直打印timeout,不知道是什么原因引起的。
楼主可否发一部分共享代码给我,小弟不胜感激。
mail:[email protected]
我用的codebase是Eclair,
在收到broadcast的時候,
會作類似sendkeyevent的方式,
keyCode代入"KEYCODE_BACK",
從DDMS的log會發現
"Key dispatching timed out sending to StatusBarExpanded",
請問樓主有代碼可參考嗎?感激不盡~
mail: [email protected]