亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android開發懸浮窗踩坑問題怎么解決

發布時間:2023-03-17 09:46:28 來源:億速云 閱讀:179 作者:iii 欄目:開發技術

這篇文章主要講解了“Android開發懸浮窗踩坑問題怎么解決”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Android開發懸浮窗踩坑問題怎么解決”吧!

1、懸浮窗中EditText無法獲得彈出鍵盤

主要是沒有明白下面兩個屬性的作用,在網上搜索之后直接設置了。

WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE

設置FLAG_NOT_FOCUSABLE,懸浮窗外的點擊才有效,會把事件分發給懸浮窗底層的其他應用Activity。如果設置了FLAG_NOT_FOCUSABLE,那么屏幕上彈窗之外的地方能夠點擊、但是彈窗上的EditText鍵盤也不會彈出來。

此時懸浮窗外的事件是不會觸發懸浮窗內ViewonToucheEvent函數,可以通過添加WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH標志位,但無法攔截事件。

WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL

屏幕上彈窗之外的地方能夠點擊、彈窗上的EditText也可以輸入、鍵盤能夠彈出來。

所以根據業務需要,我只需要添加WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL標志位即可。

2、懸浮窗無法錄音

通過Activity調起Service,然后在Service通過WindowManager進行添加懸浮窗。在進行沒有任何操作,可以正常調起科大訊飛進行錄音。

問題點一:同事為了解決我還沒來得及修復的windowManger.removeView改成exitProcess問題,強行各種修改,最終還調用了activityfinish函數,把activity干掉。最終導致無法調起科大訊飛的語音識別。總是報錄音權限問題,找不到任何的問題點,最后代碼回退,定位到Activity被干掉,同事也承認他的愚蠢行為。

問題點二:在進行一些操作,例如授權跳轉到設置之后,退出設置回到原先界面,調不錄音,還是權限。定位答應透明Activity的生命周期,發現onResume函數沒有被調用到,所以應用現在在后臺運行。

所以就一頓頓頓搜索,官方文檔: Android 9 對后臺運行的應用增加了權限限制。

Android開發懸浮窗踩坑問題怎么解決

解決方法:

  • 聲明為系統應用,沒問題。但我們想做通用軟件。

  • 增加前臺服務。實測沒效果。

  • 在2的基礎上,再添加一個屬性:android:foregroundServiceType="microphone"。完美。

<service android:name=".ui.service.AiService"
    android:foregroundServiceType="microphone"
    />

Android開發懸浮窗踩坑問題怎么解決

感謝各位的閱讀,以上就是“Android開發懸浮窗踩坑問題怎么解決”的內容了,經過本文的學習后,相信大家對Android開發懸浮窗踩坑問題怎么解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青田县| 溆浦县| 武鸣县| 濮阳县| 萨嘎县| 精河县| 广灵县| 许昌县| 沾化县| 宾川县| 加查县| 安国市| 南安市| 顺平县| 施甸县| 遵义市| 嘉善县| 江口县| 钟祥市| 财经| 二连浩特市| 长岭县| 玛沁县| 丰原市| 怀安县| 凤翔县| 襄城县| 上虞市| 新乐市| 军事| 临高县| 栾川县| 大名县| 信宜市| 大安市| 临泽县| 三明市| 长沙县| 昌江| 延津县| 都匀市|