androidevent事件錄制回放--2touch事件分析


二、touch事件分析

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)蓋州免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。


1、機(jī)器touch設(shè)備的具體信息
android event事件錄制回放  --2 touch事件分析android event事件錄制回放  --2 touch事件分析
分析:此設(shè)備名字:mtk-tpd

          支持:key abs

          支持abs的type:0000 0001 0018...

          type0035支持的最大取值為480


2、touch 事件 

觸摸事件的type:

#define SYN_REPORT 0

#define SYN_CONFIG 1

#define SYN_MT_REPORT 2

……………………… ...

#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */

#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */

#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */

#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */

#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */

#define ABS_MT_POSITION_X 0x35 /* Center X ellipse position */

#define ABS_MT_POSITION_Y 0x36 /* Center Y ellipse position */

#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */

#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */

區(qū)分手機(jī)設(shè)備單點(diǎn)還是多點(diǎn):

int EventHub::open_device(const char *deviceName)

{

………………………

if (test_bit(ABS_MT_TOUCH_MAJOR, abs_bitmask)

&& test_bit(ABS_MT_POSITION_X, abs_bitmask)

&& test_bit(ABS_MT_POSITION_Y, abs_bitmask)) {

device->classes |= CLASS_TOUCHSCREEN | CLASS_TOUCHSCREEN_MT;

// LOGI("It is a multi-touch screen!");

//single-touch?

else if (test_bit(BTN_TOUCH, key_bitmask)

&& test_bit(ABS_X, abs_bitmask) 

&& test_bit(ABS_Y, abs_bitmask)) {

device->classes |= CLASS_TOUCHSCREEN;

// LOGI("It is a single-touch screen!");

}

……………… ..

}

對(duì)于一個(gè)Touch事件,不同機(jī)型會(huì)有不同的組成,你用getevent顯示出來(lái)的也不一樣??梢酝ㄟ^(guò)下面幾點(diǎn)去組成一個(gè)touch事件:

1、是否支持BTN_TOUCH,通過(guò)判斷該abs設(shè)備是否還支持key事件來(lái)判斷是否需要BTN_TOUCH,像

android event事件錄制回放  --2 touch事件分析

android event事件錄制回放  --2 touch事件分析這個(gè)就是支持key事件的,而且持之BTN_TOUCH(014a :十進(jìn)制為330)。對(duì)于這種設(shè)備,

在發(fā)送touchdown事件的時(shí)候需要添加 eventX 0001 014a 1的事件,對(duì)應(yīng)在touchUp的時(shí)候需要添加 eventX 0001 014a 0。

當(dāng)不支持BTN_TOUCH的時(shí)候,就要省去該事件語(yǔ)句

2、判斷多點(diǎn)觸摸的協(xié)議類型,根據(jù)判斷是否支持ABS_MT_SLOT。

多點(diǎn)觸摸協(xié)議可以參考http://blog.csdn.net/droidphone/article/details/8434768

文章中詳細(xì)說(shuō)明了多點(diǎn)觸摸協(xié)議的兩種類型,還有兩種類型分別的事件語(yǔ)句組成

A:有狀態(tài)類型 

ABS_MT_TRACKING_ID touchDown必須要有值,touchUp的時(shí)候值為-1

同步語(yǔ)句只要SYN_REPORT

B:無(wú)狀態(tài)類型

ABS_MT_TRACKING_ID touchDown必須要有值,touchUp的時(shí)候值為0

同步語(yǔ)句要包括:SYN_REPORT 、SYN_MT_REPORT

3、對(duì)于touchDown,還必須包括:ABS_MT_POSITION_X

                           ABS_MT_POSITION_Y

                           SYN_REPORT

                           ABS_MT_TOUCH_MAJOR

                           ABS_MT_PRESSURE

                                         

4、對(duì)于touchMove,還必須包括: ABS_MT_POSITION_X

                                ABS_MT_POSITION_Y

                                SYN_REPORT

                                (無(wú)狀態(tài))ABS_MT_TRACKING_ID、SYN_MT_REPORT

                                ABS_MT_TOUCH_MAJOR

5、對(duì)于touchUP,還必須包括:

          有狀態(tài):ABS_MT_TRACKING_ID -1
                       BTN_TOUCH  0
                       SYN_REPORT
          無(wú)狀態(tài):ABS_MT_TRACKING_ID 0
                       ABS_MT_TOUCH_MAJOR 0
                       BTN_TOUCH  0
                       SYN_MT_REPORT
                       SYN_REPORT

當(dāng)前文章:androidevent事件錄制回放--2touch事件分析
轉(zhuǎn)載源于:http://muchs.cn/article28/pipjcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、搜索引擎優(yōu)化、網(wǎng)站設(shè)計(jì)公司網(wǎng)站收錄、小程序開(kāi)發(fā)定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)