使用AccessibilityService模拟点击事件的方法:
AccessibilityNodeInfo.performAction(AccessibilityNodeInfo.ACTION_CLICK);
但是前提是这个AccessibilityNodeInfo具有Onclick能力,也就是isClickable()为true。
问题在于控件的点击效果不一定非得通过onClick方法实现,也可以通过onTouchEvent方法实现。当通过onTouchEvent方法实现的时候,就无法通过AccessibilityNodeInfo.performAction(AccessibilityNodeInfo.ACTION_CLICK)方法模拟这个控件的点击事件了。
一、点击效果通过onClick方法实现
id_btn_openFloatWindow.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Log.i("onClick", "onClick"); } });
二、点击效果通过onTouchEvent方法实现
id_btn_openFloatWindow.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { onTouchEvent(event,v); return true;