Instrumentation:
在做东西的时候,有时候要模拟一个按键的操作,如按下menu,home,back键,这个时,Instrumentation能完成这个操作
import android.os.Bundle;
import android.app.Activity;
import android.app.Instrumentation;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;public class InstrumentationActivity extends Activity implements OnClickListener {
private Button testKeyMenu;
private Button testKeyHome;
private Button testKeyBack;
private Instrumentation instrumentation;protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_instrumentation);
testKeyMenu = (Button)findViewById(R.id.testKeyMenu);
testKeyHome = (Button)findViewById(R.id.testKeyHome);
testKeyBack = (Button)findViewById(R.id.testKeyBack);
testKeyMenu.setOnClickListener(this);
testKeyHome.setOnClickListener(this);
testKeyBack.setOnClickListener(this);
instrumentation = new Instrumentation();
}public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.instrumentation, menu);
return true;
}public void onClick(View view) {
// TODO Auto-generated method stub
int id = view.getId();
switch(id){
case R.id.testKeyMenu:
sendKey(KeyEvent.KEYCODE_MENU);
break;
case R.id.testKeyHome:
sendKey(KeyEvent.KEYCODE_HOME);
break;
case R.id.testKeyBack:
sendKey(KeyEvent.KEYCODE_BACK);
break;
}
}private void sendKey(final int keycode) {
// TODO Auto-generated method stub
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
instrumentation.sendKeyDownUpSync(keycode);
}
}).start();
}}

本文介绍了一种在Android应用中通过Instrumentation发送虚拟按键的方法。该方法能够模拟按下menu、home和back等按键,适用于自动化测试场景。文章提供了一个具体的实现示例,包括创建按钮并为其设置点击监听器,当触发时将调用sendKeyDownUpSync方法来模拟按键。
7123

被折叠的 条评论
为什么被折叠?



