我希望自动化触控事件,如ontouch和双击。
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis() + 100;
this.getWindow().getDecorView().dispatchTouchEvent(getMotionEvent(downTime, eventTime, MotionEvent.ACTION_DOWN));
public static MotionEvent getMotionEvent(long downTime,long eventTime,int eventType){
float x = 0.0f;
float y = 0.0f;
// List of meta states found here: developer.android.com/reference/android/view/KeyEvent.html#getMetaState()
int metaState = 0;
MotionEvent motionEvent = MotionEvent.obtain(
downTime,
eventTime,
eventType,
x,
y,
metaState
);
return motionEvent;
}
。 它工作正常,当我在后台服务中调用它 这就是我得到的
{ action=ACTION_DOWN, id[0]=0, x[0]=0.0, y[0]=0.0, toolType[0]=TOOL_TYPE_UNKNOWN, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=4827157, downTime=4827057, deviceId=0, source=0x0 }
ToolType为TOOL_TYPE_UNKNOWN。我想将其设置为TOOL_TYPE_FINGER。 我已经去了thourgh widgetevent.java文件我fount getToolType方法但是有
没有setToolType方法。 我的问题是,是否可以设置工具类型,如果是这样的话?
删除 - 不需要的代码格式化程序
答案 0 :(得分:2)
我自己找到了答案。 没有直接的方法来更新或更改工具类型。但是我们可以使用所需的工具类型来获取其中一个获取运动事件对象。
echo "<form method='post' action='' name='sfp_popup' id='sf-popup' >";
echo "<input type='text' name='sf_name' id='sf_name' placeholder='Name' class='col-xs-12 col-md-6 sfname'>";
echo "<input type='text' name='sf_phone' id='sf_phone' placeholder='98765-43210' class='col-xs-12 col-md-offset-1 col-md-5 sfphone'>";
echo "<input type='text' name='sf_email' id='sf_email' placeholder='noreply@example.com' class='col-md-12 sfemail'>";
echo "<textarea name='sf_message' id='sf_message' placeholder='Enter Your Query' class='col-md-12'></textarea>";
echo "</form>";
echo "<button id='sfpsubmit' class='btn btn-primary sfp_btn' name='sfpsubmit' disabled>Submit</button>";
我们可以利用pointerproperties来改变运动事件对象的属性。 ref.