我有一個在服務中創建的浮動視圖,當我觸摸此視圖時,我需要調度關鍵事件。 我發現view.dispatchKeyEvent(
)需要前臺活動的上下文,而關鍵事件分派只在活動處於前臺時才起作用。 當您關閉/暫停活動並觸摸視圖時 - 沒有任何反應,即使LogCat
中沒有NPE。dispatchKeyEvent來自服務
有什麼方法可以在主要活動之外使用此方法嗎?
我有一個在服務中創建的浮動視圖,當我觸摸此視圖時,我需要調度關鍵事件。 我發現view.dispatchKeyEvent(
)需要前臺活動的上下文,而關鍵事件分派只在活動處於前臺時才起作用。 當您關閉/暫停活動並觸摸視圖時 - 沒有任何反應,即使LogCat
中沒有NPE。dispatchKeyEvent來自服務
有什麼方法可以在主要活動之外使用此方法嗎?
如果我理解正確(您沒有發佈任何源代碼),您需要在應用程序外部對所有應用程序接收關鍵事件進行浮動視圖。
有一些項目顯示這種能力。 (forum-threadandroidFloatingImage-repo)
嘗試使用此浮動視圖示例來創建對方,或使用完全相同。我認爲,使用我上面寫的東西,您可以正確使用關鍵事件的回調。希望能幫助到你;
這可能有點太晚了,但我找到了解決方案。 (假設OP仍然希望從浮動視圖或服務中觸發操作系統後退按鈕)。
如果您是註冊的Accessibility Service,似乎可以告訴Android按後退按鈕。 (一旦你的組件註冊了Android,用戶必須在系統設置中明確地啓用它,所以如果這僅僅是你的應用程序的一個小衆功能,而不是一個關鍵功能,它可能是一種矯枉過正)。完成註冊等。因此,你的後臺服務可以告訴輔助服務,從輔助服務調用
performGlobalAction(
GLOBAL_ACTION_BACK
)
執行後退按鈕,它可以做到的。
您確實需要API級別16或以上才能正常工作。
我還沒有得到測試這個,但根據文檔,這應該工作。
嘗試並在最近的一些設備上工作。 (Kitkat,Marshmellow和Nouget)
我發現應用程序Back Button (No root)在Play商店,似乎使用這種技術來繪製軟按鈕回來,回家.etc。 (它適用於LG Nexus 5X和三星Galaxy Tab A 2016)
HTH
任何運氣與此事? – Behnam
我找到了另一種方法。對不起,我沒有發佈,我會編輯問題或在週六或週日告訴你。 –
好的,謝謝,你可以收到我在behnam(點)heydarshahi(at_sgin)gmail(點)com – Behnam