91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

台江县| 上蔡县| 西峡县| 民和| 山丹县| 定安县| 大英县| 团风县| 平乡县| 越西县| 尚志市| 台山市| 咸阳市| 永州市| 务川| 大安市| 晋州市| 莱州市| 马公市| 肃宁县| 绥芬河市| 牡丹江市| 姜堰市| 和林格尔县| 屯昌县| 兴业县| 衡南县| 明光市| 交城县| 日土县| 秭归县| 白山市| 临潭县| 大竹县| 永修县| 诸暨市| 潞西市| 铜山县| 丽江市| 甘南县| 赤壁市|