2016-04-02 15 views
2

Dokunmatik olayları/dev/input/eventX'e göndermesi gereken bir android uygulamasını geliştiriyorum. Böyle bir şey yapmak için C kod yapısı aşağıdaki biliyorum:/dev/input/eventX içine olay yazmak için gerekli komutlar nelerdir?

struct input_event { 
    struct timeval time; 
    unsigned short type; 
    unsigned short code; 
    unsigned int value; 
}; 

böyle bir kodu kullanmak için, ben NDK ayarlamanız gerekir. Bunun yerine, NDK kullanmak gerek kalmadan android Runtime.getRunTime.exec() kullanarak linux eşdeğerlerini çalıştırmak istiyorum. Bunu yapmanın bir yolu var mı?

Hayır, C kodunun kalanı etkinlik göndermek için ne gerekiyor? Örneğin, bir dokunma olayını x = 200 ve y = 300'de event0'a nasıl gönderebilirim? Aradım ve net bir çözüm bulamadım.

Teşekkürler.

+0

Köklü bir aygıtta veya kendi özel ROM'unuzda çalışmıyorsanız, uygulamanız sahte girdi verileri oluşturamaz. – CommonsWare

+0

@CommonsWare teşekkürler, cihazım köklendi, bunu nasıl yapabilirim? – Dania

+0

"Android rooted device fake user input" öğesini aramak için bir arama motoru kullandığında ne öğrendin? – CommonsWare

cevap

3

Doğrudan neden olayları /dev/input/eventX adresine göndermeniz gerektiği konusunda net değilim. Ancak, adb aracılığıyla gönderebiliyorsa, çok sayıda türde olayı cihaza enjekte edebilirsiniz.

adb shell input tap 200 300

Ya da bu android cihaz kabuğu üzerinde:

input tap 200 300

Ama bunun nedeni dışında enjeksiyon yüksek gecikme vardır

bilgisayarınızda bu deneyin.

input komutu hakkında daha fazla bilgi için bkz.

Usage: input [<source>] <command> [<arg>...] 

The sources are: 
     mouse 
     keyboard 
     joystick 
     touchnavigation 
     touchpad 
     trackball 
     stylus 
     dpad 
     touchscreen 
     gamepad 

The commands and default sources are: 
     text <string> (Default: touchscreen) 
     keyevent [--longpress] <key code number or name> ... (Default: keyboard) 
     tap <x> <y> (Default: touchscreen) 
     swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen) 
     press (Default: trackball) 
     roll <dx> <dy> (Default: trackball) 
İlgili konular