android上, 想实现点击任务栏上按钮, 实现软件关机功能.点击任务栏上的红框位置:
http://link2.youzhaopian.com/pplink/aVgSKcrYjDBmSCxW5hVlAXzM4a3hlCFoBuCiY/8gpl/KPcujXXxGmA==.jpg
标准系统上,点击任务栏上的红框位置出现以下:
http://link2.youzhaopian.com/pplink/aVgSKcrYjDDgTSOIlm2Sa9fJ2eAgx6tetkTI8dTqngV+q0uDr8Mk7g==.jpg
想实现点击任务栏上按钮(红框位置), 实现软件关机功能. 如何实现?
(首先系统能正常启动, 不使用时点击按钮(红框位置)关机)
(软关机代码已经有了)

解决方案 »

  1.   

    在点击这个按钮的代码中加入 关机 功能, 可正常关机.但这个按钮有其它作用. 想将关机代码加在 点击此按钮 事件处. 
    http://link2.youzhaopian.com/pplink/aVgSKcrYjDC+Ri3j19lzg/+7uQ6x7GTIFRXdtKEcM0aVIMQcJYsa2Q==.jpg总是不成功. (经常一开机,就自动关机)如何定位 点击此按钮 事件的位置?
      

  2.   

    如何定位 点击此按钮 事件的位置? @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode==KeyEvent.KEYCODE_MENU){
    System.out.println("定位 点击此按钮 事件的位置");
    }
    return super.onKeyDown(keyCode, event);
    }
      

  3.   

    谢谢. 请问 这段代码 加到 android 系统源码下什么文件中呢 ?
      

  4.   

    Launcher.java (packages\apps\launcher2\src\com\android\launcher2):      @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {        if (keyCode == KeyEvent.KEYCODE_MENU && event.isLongPress()) {
                      关机操作;
             }
    这样无效. 不知是不是要make clean--> make.
      

  5.   

    见我博客吧,大同小异。 改下system UI的布局,增加一个button,加一个事件就好了。关机建议扩展PowerManager的接口实现。
      

  6.   

    情况是这样的:
    android4.0 状态栏上已经存在了这个按钮. 找不到点击这个按钮的事件. (launcher2 中有一个这样的事件, 但是加了关机代码, 没见到效果.
    Launcher.java (packages\apps\launcher2\src\com\android\launcher2):   
      public boolean onKeyDown(int keyCode, KeyEvent event) {
      if (keyCode == KeyEvent.KEYCODE_MENU && event.isLongPress()) {
         增加关机操作;
      }
      )
      

  7.   

    看systemUI中的keyButtonView.java触摸后会inject一个按键事件过去。 你要借用menu键的话,在这里拦下来就可以了。
      

  8.   


    这里是可以拦下来. 但此处加关机功能后,编译不了. 不知是何原因?    Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);
        ....
        mContext.startActivity(intent);