1. 程式人生 > >【Android應用開發】Instrumentation簡單的模擬按鍵傳送訊息

【Android應用開發】Instrumentation簡單的模擬按鍵傳送訊息

   前段時間做了一個PSTN通話的應用程式,PAD連線座機實現通話功能。座機上有上翻、下翻通訊錄的功能。通訊錄用的是Google預設的。在不改動通訊錄的情況下只有使用模擬按鍵來發送訊息。程式碼很簡單,共享下!!

  1. publicclass MenuDemoActivity extends Activity {  
  2.     protectedstaticfinal String TAG = "MenuDemoActivity";  
  3.     @Override
  4.     publicvoid onCreate(Bundle savedInstanceState) {  
  5.         requestWindowFeature(Window.FEATURE_NO_TITLE);  
  6.         super.onCreate(savedInstanceState);  
  7.         setContentView(R.layout.main);  
  8.         final Button button = (Button) findViewById(R.id.button1);  
  9.         button.setOnClickListener(new OnClickListener() {  
  10.             @Override
  11.             publicvoid onClick(View v) {  
  12.                 sendKeyCode(KeyEvent.KEYCODE_DPAD_DOWN);  
  13.             }  
  14.         });  
  15.         final Button button2 = (Button) findViewById(R.id.button2);  
  16.         button2.setOnClickListener(new OnClickListener() {  
  17.             @Override
  18.             publicvoid onClick(View v) {  
  19.                 sendKeyCode(KeyEvent.KEYCODE_DPAD_DOWN);  
  20.             }  
  21.         });  
  22.     }  
  23.     /** 
  24.      * 傳入需要的鍵值即可 
  25.      * @param keyCode 
  26.      */
  27.     privatevoid sendKeyCode(finalint keyCode){  
  28.         new Thread () {  
  29.             publicvoid run() {  
  30.                 try {  
  31.                     Instrumentation inst = new Instrumentation();  
  32.                     inst.sendKeyDownUpSync(keyCode);  
  33.                 } catch (Exception e) {  
  34.                     Log.e("Exception when sendPointerSync", e.toString());  
  35.                 }  
  36.             }  
  37.         }.start();  
  38.     }  
  39.   }  

加入許可權:

  1. <uses-permissionandroid:name="android.permission.INJECT_EVENTS"/></span>