Android フレームワークで座標を使用してタッチ イベントを取得すると、ioctl を使用してユーザー イベントをカーネルに送信し、ドライバーにシステム入力イベントに変換させることができます (使用: input_sync、input_report_key、input_report_abs など)。
問題は:
私が知っているように、アンドロイドスワイプイベントは次のようになります:(スワイプダウン) {タイプ、コード、値}
{3,48,5}, {3,50,1}, {3,53,240}, {3,54,400},
{1,330,1},
{3,58,255}, {3,57,0},
{0,2,0},{0,0,0},
{3,48,0},{3,50,1},{3,53,240},{3,54,450},{3,58,255},{3,57,0},
{0,2,0},{0,0,0},
{3,0,0},{3,1,450},{3,57,15},
{0,0,0},{1,330,0},
{3,48,0},{3,50,1},{3,53,240},{3,54,450},{3,58,0},
{0,2,0},{0,0,0}
type=0、同期を表します
type=1、キーを表す
タイプ=3、コード=53,54、値は座標を表します
type=3、code=48、50、57、58、値はタッチ ツールのプロパティを表します。
そのため、type=3、code=53,54、または type=1 のみが入力パラメーターであり、その他はユーザー イベントからシステム イベントへの変換に挿入する必要があります。
次のようにコーディングする必要があります。
// in driver
if ( get an event )
{
report touch tool event;
report the x,y/key event; // from input params
report the sync event;
}
またはより良い方法がありますか?
ありがとうございました。