码迷,mamicode.com
首页 > 移动开发 > 详细

Android模拟键盘输入功能的实现

时间:2014-11-12 10:35:45      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:android   instrumentation   sendkeydownupsync   

        在做关于输入框的操作指引时,用动态的输入效果比用静态的图片指示效果会好很多,本文结合最近需要实现的一个搜索输入操作指引的功能介绍一下android平台模拟键盘输入的实现。

        在android上不知道怎么录制gif的动态图,直接截图看一下效果吧,具体看demo就行啦。

bubuko.com,布布扣

       实现起来很简单,开一个线程,通过sleep控制输入字符的间隔时间,封装一个模拟键盘输入的方法,最终代码是这样子的:

public class TypeInActivity extends BaseActivity {
	@Override
	public void setContentView() {
		setContentView(R.layout.activity_type_in_layout);
	}

	@Override
	public void findViews() {
		
	}

	@Override
	public void getData() {
		
	}

	@Override
	public void showConent() {
		showGuide( );
	}
	
	public void onClick( View v ){
		switch( v.getId( ) ){
		case R.id.searchBtnId:{
			
		}
		break;
		default:{
			
		}
		break;
		}
	}
	
	private void showGuide( ){
		new Thread( new Runnable( ) {
			@Override
			public void run() {
				try {
					Thread.sleep( 1000 );
				} catch (InterruptedException e1) {
					e1.printStackTrace();
				}
				
				// “旋转”的拼音
				int[] keyCodeArray = new int[]{KeyEvent.KEYCODE_X,KeyEvent.KEYCODE_U,KeyEvent.KEYCODE_A,KeyEvent.KEYCODE_N,KeyEvent.KEYCODE_SPACE,KeyEvent.KEYCODE_Z,KeyEvent.KEYCODE_H,KeyEvent.KEYCODE_U,KeyEvent.KEYCODE_A,KeyEvent.KEYCODE_N};
				for( int keycode : keyCodeArray ){
					try {
						typeIn( keycode );
						Thread.sleep( 200 );
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			}
		}).start( );
	}
	
	private void typeIn( final int KeyCode ){
		try {
			Instrumentation inst = new Instrumentation();
			inst.sendKeyDownUpSync( KeyCode );
		} catch (Exception e) {
			Log.e("Exception when sendKeyDownUpSync", e.toString());
		}
	}
}

BaseActivity.java:(个人已经习惯这样写了。。。)

public abstract class BaseActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		init( );
	}
	
	private void init( ){
		setContentView( );
		findViews( );
		getData( );
		showConent( );
	}
	
	public abstract void setContentView( );
	public abstract void findViews( );
	public abstract void getData( );
	public abstract void showConent( );
}
        再找一个模拟打字的音效,在模拟输入的时候播放打字音效,效果还是可以的。。。


Android模拟键盘输入功能的实现

标签:android   instrumentation   sendkeydownupsync   

原文地址:http://blog.csdn.net/ekeuy/article/details/41038997

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!