2012-04-06 112 views
6

右鍵點擊插入到Android(ics)的USB鼠標總是指定爲'後退'按鈕?我沒有一臺平板電腦。Android的USB鼠標右鍵單擊正確的行爲(ICS)

我想刪除狀態欄,仍然可以使用帶有USB鼠標的平板電腦。

有誰知道在哪裏/如何配置在android中的行爲?

+0

請指定平板電腦的型號/品牌。 – 2012-04-10 18:19:52

+0

這是一個直接來自中國工廠的無名品牌。似乎他們犯了一個錯誤,當時我不知道標準行爲是什麼意思。因爲他們沒有立即承認它是一個錯誤。謝謝turbo。 – 2012-12-21 08:59:15

回答

9

遲到的答案,但答案是肯定的。我將提供一些關於此主題的更多詳細信息,因爲它是只有這種類型的Internet上的主題。

默認行爲: Android將此視爲後退按鈕,沒有可見的例外情況。

這是手機和普通應用的相當不錯的功能。但是,有兩種類型的人希望以不同的方式實現此功能。 Modders和應用程序開發人員。

遊戲模組修正:在一個根設備(和潛在的無根用於與解鎖ADB不少失敗者裝置),觀察Generic.kl/system/usr/keylayout下。搜索國旗KEY_BACK,可能有多個鏈接在它上面的多個鍵碼。對我來說,它是key 158WAKE_DROPPED國旗。對於通用的「右鍵單擊」功能,您需要交換後退鍵和菜單鍵的數字代碼,因此當鼠標發送後退鍵命令時,系統實際上將觸發菜單鍵命令,同時保留一些設備上的硬件鍵(標記爲菜單鍵)用於返回。是的,這將顛倒手機上的硬件按鍵,但它是最簡單的解決方案,無需重建整個ROM。如果這是爲了企業或專業事業,可能會看到這篇文章:Overriding Mouse Events Kernel-Level。我實際上建議創建一個覆蓋他們引用的過程的Xposed模塊。否則,請查看如何重新映射鍵碼,對不起,我無法在此處找到直接的文章。

應用程序開發人員的修復:非root:在您的應用程序中覆蓋回密鑰並返回true。在您的onBackPressed()覆蓋中,執行任何必要的右鍵單擊功能。簡單!由於您最想要的是類似PC的上下文菜單功能,因此您還需要通過應用於根視圖的MotionEvent偵聽器跟蹤鼠標所在的位置,其中event.getRawX()和RawY()調用將值存儲到全局變量。然後,您可以通過設置頂部和左側邊距將您的上下文菜單(大小爲ListView或VerticalLinearLayout)放置在光標下並將其設置爲可見。如果要通過右鍵單擊(例如刪除或複製)在佈局中的懸停對象上執行輔助功能,則必須手動確定存儲的鼠標座標懸停在哪個對象上。您可能必須在每個受影響的對象上添加MotionEvent.ACTION_HOVER_ENTER偵聽器,並將對象ID存儲在全局變量中,以便在調用onBackPressed()函數時使用。 (我會在有空的時候提供代碼!)

希望這有助於任何人探索這樣一個特定的主題! :)

+0

你也可以在你的activity類中覆蓋'boolean onKeyDown(int keyCode,final KeyEvent event)'和'onKeyUp',並檢查if(keyCode == KeyEvent.KEYCODE_BACK && event.GetSource()== InputDevice.SOURCE_MOUSE)。 ..'過濾由USB鼠標生成的按鍵,但通常處理您的手機後退鍵。 – pelya 2015-06-04 20:10:10

+0

這是一個更具體的方法。感謝分享! – 2015-06-05 03:00:40

相關問題