I'm trying to use ChimpChat for a project which includes injecting input events into a connected device.
There are methods 1. void press(PhysicalButton key, TouchPressType type); 2. void press(String keyName, TouchPressType type);
I'm able to use the 1st method properly through: iDevice.press(button, type);
However, I can't get the 2nd method to work. Trying something like iDevice.press ("A", type) does not type an "A" on the device, even though the following is logged:
Feb 27, 2012 4:58:36 PM com.android.chimpchat.ChimpManager sendMonkeyEventAndGetResponse INFO: Monkey Command: key down A.
I was able to work around this by using
Now my question is, how do I get the backspace key to work? Calling type("\b"); doesn't erase on the device.
Has anyone used the 2. void press(String keyName, TouchPressType type); method previously? If so, am I doing something wrong? I'm a bit confused by what keyName is supposed to be. If not, does any one know how to send the backspace character to the device?
Thanks a lot!
Last I looked ChimpManager
has a few more methods than the IDevice
exposes. You can access the other methods via device.getManager()
. One of those methods that might help you is press(PhysicalButton)
. So you should be able to get the backspace to work like this:
device.getManager().press(PhysicalButton.BACK)
Look at the source for more insight to how it all works.
UPDATE:
Oops, you're looking for the backspace! According to the monkey
README:
key [down|up] keycode
This command injects KeyEvent's into the input system. The keycode parameter refers to the KEYCODE list in the KeyEvent class (http://developer.android.com/reference/android/view/KeyEvent.html). The format of that parameter is quite flexible. Using the menu key as an example, it can be 82 (the integer value of the keycode), KEYCODE_MENU (the name of the keycode), or just menu (and the Monkey will add the KEYCODE part). Do note that this last part doesn't work for things like KEYCODE_1 for obvious reasons.
So looking at the KeyEvent class you should be able to use:
device.getManager().keyDown("KEYCODE_DEL") // Backspace according to KeyEvent
// OR
device.getManager().keyDown("67")