Secondo me l'audio è la soluzione migliore: un auricolare da 2 euro, e un firmware su arduino. Arduino ha una sensibilità di 5 mV, immagino che qualunque cellulare riesca a produrre almeno 5mV sull'uscita audio (anche se non so quanta corrente serva).
Non dovrebbe volerci molto a scrivere un programmino che scrive sul serialmonitor i valori che legge su un pin anaologico collegato a un auricolare, ora ci provo...

Qualcuno invece è in grado di scrivere un programmino scemo per Android che, premendo due o tre tasti diversi, invia tre "segnali" diversi?
Si potrebbero fare a frequenze diverse, ma in passato ho verificato quant'è difficile implementare la FastFourierTransformation per leggere lo spettro di un segnale audio, quindi preferirei evitare... Meglio puntare su un segnale audio digitale: suono/silenzio/suono/silenzio, con durate diverse.
Possiamo provare così:
segnale 1: 1 secondo on, 1 secondo off
segnale 2: 2 secondi on
Chi si offre volontario?
Io intanto medito sullo sketch di decodifica...