2012-04-23 9 views
6

Ich möchte Touch-Ereignis simulieren. Ich verwende diesen CodeBewegungsereignis über Windowmanger einspeisen?

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); 

das Problem mit dieser Linie ist

windowManager.injectPointerEvent(event, false); 

, dass ich nicht in der Lage bin Zugang zu WindowManger zu erhalten. Wenn ich versuche, dieses

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

zu verwenden, empfing ich eine Fehlermeldung. "Kann keine statische Referenz auf die nicht statische Methode getSystemService (String) vom Typ Kontext"

Kann mir jemand helfen !!

+0

Grundsätzlich können Sie dieses Ziel nur für Ihre App oder auf einem gerooteten Gerät erreichen –

Antwort

0

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

Sie müssen einen Verweis auf den Kontext erhalten. Entweder der Anwendungskontext oder die Aktivität. Wenn Sie eine Context-Instanz haben, können Sie die Methode .getSystemService darauf aufrufen.

Verwandte Themen