Adroid 觸控螢幕裝置

2021-06-06 16:31:55 字數 2477 閱讀 2061

滿足以下兩個條件為多點觸控裝置:

1)輸入裝置驅動報告了abs_mt_position_xabs_mt_position_y存在

2)輸入裝置沒有任何手柄按鈕

滿足以下兩個條件為單點觸控裝置:

1)輸入裝置不被歸類為多點觸控裝置

2)輸入裝置報告存在abs_x和abs_y絕對軸,以及存在btn_touch按鍵碼

所有內建的觸控裝置應該有輸入裝置的配置檔案(.idc, input device configuration files).如果輸入裝置配置檔案不存在,系統將選擇乙個通用的觸控裝置配置做為預設配置。這些預設配置不是專門為內建觸控裝置設計的,有可能導致工作不正常。

當輸入裝置配置(idc)被載入之後,系統將把輸入裝置分為觸控螢幕(touch screen),觸控板(touch pad)或指標裝置(pointer device).

1)觸控螢幕:使用它,可以直接操作螢幕上的物件。

2)觸控板:它提供絕對的定位資訊給觸控區域內的應用程式。

3)指標裝置:使用它,通過游標間接操作螢幕上的物件。手指為多點觸控指標手勢,其它工具,如鐵筆,被解釋為使用絕對位置。

以上三類裝置的分類規則如下:

1)如果.idc中設定了touch.devicetype屬性,則裝置型別被設定為它所指定的裝置型別(如:touchscreen)

2)如果輸入裝置通過eviocgprop ioctl報告了存在input_prop_direct輸入屬性,則此裝置型別被設定為觸控螢幕。

3)如果輸入裝置通過eviocgprop ioctl報告了存在input_prop_pointer輸入屬性,則此裝置型別被設定為指標裝置。

4)如果輸入裝置報告了存在rel_x和rel_y相對軸,則裝置型別被設定為觸控板。

5)如果不滿足以上條件,則裝置型別被設定為指標裝置。

按鈕是可選控制,應用程式使用它執行其這功能。觸控裝置上的按鈕功能類似於滑鼠按鈕,主要被指標觸控裝置或鐵筆使用。

支援的按鈕如下:

btn_left: 被對映為: motionevent.button_primary.

btn_right: 被對映為: motionevent.button_secondary.

btn_middle: 被對映為: motionevent.button_middle.

btn_back and btn_side:被對映為:motionevent.button_back. 按此按鈕也生成乙個按鍵:keyevent.keycode_back.

btn_forward and btn_extra: 被對映為: motionevent.button_forward. 按此按鈕也生成乙個按鍵:keyevent.keycode_forward.

btn_stylus: 被對映為:motionevent.button_secondary.

btn_stylus2: 被對映為:motionevent.button_tertiary.

乙個工具是乙個用於與觸控裝置進行互動的手指、鐵筆或其它裝置。一些觸控裝置可以區別不同的觸控工具型別。android支援以下觸控工具型別:

3) 多點觸控(multi-touch)裝置支援以下linux輸入事件:

4) 如果單點觸控和多點觸控的軸都定義了,則只有多點協議的軸被使用,單點觸控的軸則被忽略。

5)abs_x,abs_y,abs_mt_position_xandabs_mt_position_y軸的最小值和最大值以裝置表面具體的單位(如畫素)定義了活動區域的邊界。對於觸控螢幕,活動區域描述了觸控裝置真正覆蓋顯示部分的區域。

6) 在android4.0中,觸控螢幕驅動需要修改以與linux輸入協議規範相容。

下列變化可能需要:

1) 當乙個工具變成不活動時(如手指抬起) ,在隨後的multi-touch sync report它不應該出現;當所有的工具不活動時(如所有的手指抬起),驅動應該傳送乙個空的sync report包,如:syn_mt_report緊跟乙個syn_report。

以前的android版本期望報告乙個up事件(通過傳送乙個pressure值為0) 。舊的操作方式與linux input協議規範不相容,所以不再使用。             

2) 物理壓力或訊號強度資訊應該使用abs_mt_pressure報告。

以前的android版本從abs_mt_touch_major獲取壓力資訊。舊的操作方式與linux input協議規範不相容,所以不再使用。

3) 觸控尺寸資訊通過abs_mt_touch_major報告。

以前的android版本從abs_mt_tool_major獲取觸控尺寸資訊。舊的操作方式與linux input協議規範不相容,所以不再使用。

觸控裝置驅動不再需要android定製化。通過標準的linux input協議,android可以支援大量的觸控裝置,且不用修改驅動。

linux觸控螢幕輸入裝置,觸控螢幕校驗方法

本文拋開技術層次上來說說linux觸控螢幕裝置驅動原理 觸控螢幕,就是用一塊ad轉換晶元來將螢幕上的觸控訊號轉成數碼訊號。觸控螢幕常用的是四線電阻,ad轉換晶元 常用的是7843,7846,ts2003等。當觸控時候,這些晶元會將模擬訊號轉換成數碼訊號,就是通常說的ad轉換。在linux中,通常是通...

觸控螢幕開發 觸控螢幕甩屏互動系統

這是南京酷牛科技最新開發的一款上下屏聯動觸控螢幕軟體。比較獨特的是,玩家可以通過控制乙個下屏,與上屏五個顯示屏進行展示的互動。軟體組成 軟體特點 1 一台大的顯示器 支援led屏,投影儀,拼接屏 可以和多個觸控螢幕組成區域網實現觸屏資料飛至大屏,不限制觸控螢幕的個數。如果只有1個觸控螢幕也可以用擴充...

觸控螢幕設定

1.srcpnd,intpnd 暫存器的意義 一直不明白為什麼中斷服務程式最後要把 srcpnd,intpnd 相應位置 1,還把這個過程稱為 cleaningpend 既然叫清除為什麼不是清零呢?查了手冊 當有中斷源請求中斷服務時,srcpnd 相應位置 1,裁決 判斷是否響應中斷 時 intpn...