<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 閱讀(5944) 評論(0)  編輯  收藏 所屬分類: Android
    主站蜘蛛池模板: 亚洲精品无码永久在线观看| 久久精品免费一区二区| 日韩精品视频免费观看| 亚洲第一区视频在线观看| 最近免费mv在线电影| 亚洲专区一路线二| 曰批视频免费30分钟成人| 亚洲国产精品线观看不卡| 国产免费av片在线看| 亚洲国产精品无码久久九九大片| 免费激情视频网站| 国产成人+综合亚洲+天堂| 在线观看午夜亚洲一区| 免费网站看av片| 亚洲乱码在线视频| 日韩a级毛片免费视频| 一区免费在线观看| 国产AV无码专区亚洲A∨毛片| 四虎影视在线影院在线观看免费视频| 亚洲日本中文字幕| 成人毛片免费网站| 特级毛片在线大全免费播放| 久久亚洲国产午夜精品理论片| 3d动漫精品啪啪一区二区免费 | 日本在线看片免费人成视频1000| 亚洲天天做日日做天天看| 亚洲成人免费网站| 小说专区亚洲春色校园| 亚洲色无码专区在线观看| 4444www免费看| 老司机午夜免费视频| 国产亚洲真人做受在线观看| 2020久久精品国产免费| 美女免费视频一区二区三区| 久久久久亚洲AV片无码| 在线观看视频免费国语| 在线免费播放一级毛片| 97久久国产亚洲精品超碰热| 中文字幕久久亚洲一区| 久草在视频免费福利| 皇色在线免费视频|