„Android“ imituoja klavišų paspaudimus

Kaip aš galiu modeliuoti „Droid“ programinius klavišus? Norėčiau imituoti rankinį klavišų paspaudimą (ant droido pasirodo, kad kažkas paspaudžia klavišą, bet tai daroma programiškai).

Yra sprendimų, susijusių su „ IWindowManager , tačiau tai nėra naujos SDK parinktis.

16
02 янв. calcrisk33 yra nustatytas 02 sausio. 2012-01-02 03:16 '12 at 3:16 2012-01-02 03:16
@ 2 atsakymai

Galite naudoti įrankius, t. Y. Šis kodas, vadinamas „jūsų veiklos kūrimu“, sukels meniu atidaryti ir uždaryti kelis kartus:

  new Thread(new Runnable() { @Override public void run() { try { Instrumentation inst = new Instrumentation(); for ( int i = 0; i < 10; ++i ) { inst.sendKeyDownUpSync(KeyEvent.KEYCODE_MENU); Thread.sleep(2000); inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK); Thread.sleep(2000); } } catch(InterruptedException e){ } } }).start(); 

... bet aš nesu įsitikinęs, kad būtent tai jūs esate

32
02 янв. atsakymas pateikiamas marcinj 02 jan. 2012-01-02 04:15 '12 at 4:15 2012-01-02 04:15

Jei turite vaizdą, kuris nori naudoti įvykį, galite naudoti „ BaseInputConnection“ klasę ir sendKeyEvent .

Norint jį naudoti, turėsite nurodyti tikslinį vaizdą (pvz., „EditText“), kurį KeyEvent gaus. Pavyzdžiui:

 EditText editText; BaseInputConnection inputConnection = new BaseInputConnection(editText, true); inputConnection.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_POUND)); 

To rezultatas yra tas, kad vartotojas faktiškai paspaudė mygtuką # (sutelkdamas redagavimo tekstą).

0
01 февр. Atsakymas suteiktas 01 vasario mėn. 2017-02-01 20:38 '17, 8:38 pm 2017-02-01 20:38

Žr. Kitus klausimus apie „ žymių „ arba užduoti klausimą