I am developing an Android application that controls the PC keyboard and mouse. I wanted to add a new feature (using your mobile as a game controller). I am using java.awt.Robot.
It works fine in controlling the keyboard and mouse. But when I used it with games, java.awt.Robot doesn't press buttons. When I go outside the game, it works fine again.
For example:
if (senderPropertyOne.equalsIgnoreCase("l")) {
robot.keyPress(KeyEvent.VK_LEFT);
robot.keyRelease(KeyEvent.VK_LEFT);
} else if (senderPropertyOne.equalsIgnoreCase("r")) {
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
} else if (senderPropertyOne.equalsIgnoreCase("u")) {
robot.keyPress(KeyEvent.VK_UP));
robot.keyRelease(KeyEvent.VK_UP);
} else if (senderPropertyOne.equalsIgnoreCase("d")) {
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
This works fine in Flash games on the internet, but when I launch a normal game on my PC (like pro evolution soccer), it doesn't work.
解決方案
Thank you all for not assisting me. I managed to fix the issue, published Android app with 100000 downloads :)
I was developing an android app that let Android phone control PC and use Android phone as a game controller for PC. I was using TCP and faced thae issue that I cant control games.
When I used UDP instead, the issue fixed. I dont know TCP was the root cause or not but my issue fixed now and my app published on Android market :)