I am trying to automate keyboard strokes on my Android. The idea is to automate creating a new contact in the phone, saving it and then dialing the number. Here is the code:
#include "DigiKeyboard.h"
#define KEY_ARROW_DOWN 0x51
#define KEY_TAB 0xB3
#define KEY_RETURN 0xB0
void setup() {
//empty
}
int var = 0;
void loop() {
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(0);
DigiKeyboard.sendKeyStroke(KEY_C, MOD_GUI_LEFT);
DigiKeyboard.delay(1000);
while (var < 300) {
DigiKeyboard.sendKeyStroke(KEY_ARROW_DOWN, 0);
var++;
}
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_ARROW_DOWN, 0);
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_ARROW_DOWN, 0);
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_RETURN);
DigiKeyboard.delay(1000);
DigiKeyboard.delay(1000);
DigiKeyboard.print(F("Soandso"));
DigiKeyboard.delay(300);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_RETURN);
DigiKeyboard.delay(100);
DigiKeyboard.print("7078675309");
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_RETURN);
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_TAB);
DigiKeyboard.delay(100);
DigiKeyboard.sendKeyStroke(KEY_RETURN);
for (;
{
/empty/
}
}
It opens contacts by pressing windows key + C, it scrolls down using arrow down, and then it delays for a moment to wait for the +, or rather the "add contact" button to appear. This is where it gets strange. It skips over 15 lines of code and enters the phone number in the "name" field.
Could this be due to a faulty board? Did I solder it incorrectly? Is there something wrong with my code? Any help would be appreciated.