android - 在 motionevent 中找不到 settooltype 方法

标签 android

我想自动化触摸事件,例如 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 }

工具类型是 TOOL_TYPE_UNKNOWN 。我想将它设置为 TOOL_TYPE_FINGER 。 我已经遍历了 widgetevent.java 文件,我找到了 getToolType 方法,但是有

没有 setToolType 方法。 我的问题是是否可以设置工具类型,如果可以的话如何设置?


删除 - 不需要的代码格式化程序

最佳答案

我自己找到了答案。 没有直接的方法来更新或更改工具类型。但是我们可以使用其中一种获取方法来获取具有所需工具类型的运动事件对象。

public static MotionEvent obtain (long downTime, long eventTime, int action, int pointerCount, PointerProperties[] pointerProperties, PointerCoords[] pointerCoords, int metaState, int buttonState, float xPrecision, float yPrecision, int deviceId, int edgeFlags, int source, int flags)

我们可以利用指针属性来改变运动事件对象的属性。 ref.

关于android - 在 motionevent 中找不到 settooltype 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35473750/

相关文章:

android - DrawableCompat setTint 不适用于 API 19

android - 无法从 LocationListener 获取当前位置

java - 试图显示从相机 Intent 中拍摄的图像

android - 谷歌支付使用 Stripe : Getting an unexpected developer error in Android

android - 当 View 在 Android 屏幕上可见时如何获得回调

android - 使用类似于全局状态的 redux/flux

Android LinearLayout 不拉伸(stretch)全屏

android - OnSingleTapUp 事件触发两次

安卓布局 : Why is my button always UNDERNEATH the ListView?

android - 在 Android 中写入 SQLite 数据库的推荐设计模式