<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Calvin's Tech Space

    成于堅忍,毀于浮躁

       :: 首頁 :: 聯系 :: 聚合  :: 管理
    2 
     3 import android.app.Activity; 
     4 import android.os.Bundle; 
     5 import android.os.DeadObjectException; 
     6 import android.os.ServiceManager; 
     7 import android.view.IWindowManager; 
     8 import android.view.KeyEvent; 
     9 import android.view.Menu; 
    10 import android.view.View; 
    11 import android.view.View.OnClickListener; 
    12 
    13 public class SimualteKeyInput extends Activity { 
    14 
    15      /* The WindowManager capable of injecting keyStrokes. */ 
    16      final IWindowManager windowManager = IWindowManager.Stub 
    17                .asInterface(ServiceManager.getService("window"
    )); 
    18 
    19      /** Called when the activity is first created. */ 
    20      @Override 
    21      public void onCreate(Bundle icicle) { 
    22           super.onCreate(icicle); 
    23           setContentView(R.layout.main); 
    24            
    25           /* Make the button do the menu-popup. */ 
    26           this.findViewById(R.id.cmd_simulate_key).setOnClickListener( 
    27                     new OnClickListener() { 
    28                          @Override 
    29                          public void onClick(View arg0) { 
    30                               /* Start the key-simulation in a thread 
    31                                * so we do not block the GUI. */ 
    32                               new Thread(new Runnable() { 
    33                                    public void run() { 
    34                                         /* Simulate a KeyStroke to the menu-button. */ 
    35                                         simulateKeystroke(KeyEvent.KEYCODE_SOFT_LEFT); 
    36                                    } 
    37                               }).start(); /* And start the Thread. */
     
    38                          } 
    39                     }); 
    40      } 
    41       
    42      /** Create a dummy-menu. */ 
    43      @Override 
    44      public boolean onCreateOptionsMenu(Menu menu) { 
    45           boolean supRetVal = super.onCreateOptionsMenu(menu); 
    46           menu.add(00"Awesome it works =)"); 
    47           return supRetVal; 
    48      } 
    49 
    50      /** Wrapper-function taking a KeyCode. 
    51       * A complete KeyStroke is DOWN and UP Action on a key! */ 
    52      private void simulateKeystroke(int KeyCode) { 
    53           doInjectKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyCode)); 
    54           doInjectKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyCode)); 
    55      } 
    56 
    57      /** This function actually handles the KeyStroke-Injection. */ 
    58      private void doInjectKeyEvent(KeyEvent kEvent) { 
    59           try { 
    60                /* Inject the KeyEvent to the Window-Manager. */ 
    61                windowManager.injectKeyEvent(kEvent, false);
    64           } catch (DeadObjectException e) { 
    65                e.printStackTrace(); 
    66           } 
    67      } 
    68 }

    注意:
    1.這個模擬的鍵盤敲擊事件只能作用于一個app之內,不能向全系統發送。
    2.需要添加INJECT-KEYEVENT權限。
    3.一個完整的鍵盤事件包括按下的彈起兩個事件。
    posted on 2010-03-18 13:35 calvin 閱讀(5946) 評論(0)  編輯  收藏 所屬分類: Android
    主站蜘蛛池模板: 四色在线精品免费观看| 中国精品一级毛片免费播放| 亚洲AV午夜成人影院老师机影院 | 亚洲爆乳成av人在线视菜奈实| 亚洲视频在线观看免费视频| 在线免费观看毛片网站| 亚洲日本va在线观看| 美女啪啪网站又黄又免费| 免费人成在线观看视频高潮| 亚洲精品乱码久久久久久中文字幕 | 亚洲人成网站免费播放| 精品亚洲国产成人| a高清免费毛片久久| 亚洲日韩国产精品乱| 亚洲精品**中文毛片| 欧洲一级毛片免费| 亚洲精品中文字幕无乱码麻豆| 免费中文熟妇在线影片| 亚洲国产精品日韩av不卡在线| 又粗又硬又大又爽免费视频播放| 国产亚洲精品精华液| 99re在线精品视频免费| 亚洲国产精品激情在线观看| 中文字幕免费在线播放| 色婷婷六月亚洲婷婷丁香| 日韩毛片在线免费观看| 黑人大战亚洲人精品一区| 日本中文字幕免费高清视频| 亚洲国产精品成人久久久| 无码国模国产在线观看免费| 一级毛片免费毛片毛片| va亚洲va日韩不卡在线观看| 亚洲AV无码乱码在线观看代蜜桃| 在线观看免费为成年视频| 亚洲第一视频在线观看免费| 亚洲五月六月丁香激情| 日韩视频在线免费观看| 华人在线精品免费观看| 亚洲一区二区三区影院| 一级毛片免费播放视频| 久久精品蜜芽亚洲国产AV|