Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
936 views
in Technique[技术] by (71.8m points)

android - Inject motion event via windowmanger?

i want to simulate touch event . I am using this code

MotionEvent.PointerCoords[] coords = { new MotionEvent.PointerCoords() };
coords[0].x = 200;
coords[0].y = 200;
int[] ptrs = { 0 };
MotionEvent event =MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis(), action, 1, ptrs, coords, 0, 1, 1, 0, 0,    InputDevice.SOURCE_TOUCHPAD, 0);
windowManager.injectPointerEvent(event, false);

the problem is with this line

windowManager.injectPointerEvent(event, false);

that i am unable to get access to WindowManger . When i try to use this

 WindowManager windowmanager=(WindowManager) Context.getSystemService(Context.WINDOW_SERVICE);

I received an error message . "Cannot make a static reference to the non-static method getSystemService(String) from the type Context"

Can anyone help me !!

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

This error: I received an error message . "Cannot make a static reference to the non-static method getSystemService(String) from the type Context" is your problem.

You need to get a reference to the context. Either the application context or the activity.

once you have a Context instance, you can call the .getSystemService method on it.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...