关于statusBAR添加back按钮实现问题 能否模拟 ,你按了机器的back button的keycode给发出去? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该用模拟按键吧~ 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层无法获得 IWindowManager对象。楼主还是framework层看看,看看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"); } } } 谢谢你~ 把return事件发给系统~ 恩~明白了 ~~谢谢~ 楼主的问题已经解决了吗?我的问题跟你的一样,在收到intent后,可以进入updateIconKeyAction从keyevent也发送了KeyEvent.KEYCODE_BACK消息但是logcat上一直打印timeout,不知道是什么原因引起的。楼主可否发一部分共享代码给我,小弟不胜感激。mail:[email protected] 有个情况:我这边一点击statusBAR 就会再最左边显示时间,再点击就会出现对应的记事本类的东东 我想是补是这个影响了 我们自己定制的 软件按钮的事件 造成 超时 哇,搞这个的很多啊!我也timeout,是broadcast的时候出现的!你们broadcast的时候没问题么? 請問樓主解決這個問題了嗎?我用的codebase是Eclair,在收到broadcast的時候,會作類似sendkeyevent的方式,keyCode代入"KEYCODE_BACK",從DDMS的log會發現"Key dispatching timed out sending to StatusBarExpanded",請問樓主有代碼可參考嗎?感激不盡~mail: [email protected] Camera4.0.3导入eclipse-------有android4.0.3源码朋友帮帮忙 安装时出现解析包错误有人知道为什么 导入一个Android 项目后,注释中文乱码,怎么办? 有做过vlc移植到android的吗 还是没有能运行我的HelloAndroid 帮帮新手 Android Eclipse 调试步进不进入JAR包和Android包的问题。 listview控件太多导致重回程序时异常 服务器端的数据只能给自己的android APPS访问,其他人截取不到 要什么标识 Activity 中的变量问题 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]