中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

梨树县| 平顶山市| 惠东县| 页游| 浮山县| 阳高县| 梁河县| 阳曲县| 磐安县| 怀柔区| 会昌县| 大宁县| 繁昌县| 维西| 平顶山市| 丰原市| 卢湾区| 都昌县| 称多县| 清流县| 汶上县| 岑溪市| 屯昌县| 元江| 阜康市| 商都县| 邯郸市| 繁峙县| 仪征市| 临漳县| 镶黄旗| 白水县| 普安县| 含山县| 和静县| 济源市| 罗源县| 亚东县| 延寿县| 内丘县| 巢湖市|