Android適配8.0遇到的一些坑

剛進(jìn)新公司的時(shí)候華為市場(chǎng)對(duì)APP提示的是不兼容android8.0,查看了下原代碼發(fā)現(xiàn)項(xiàng)目基本還停留在6.0的適配上,所以就大致適配了7.0、8.0,先記錄幾個(gè)主要的問題點(diǎn),后續(xù)更新。首先必須的把SdkVersion提升到26把(華為市場(chǎng)提示不兼容8.0也是這個(gè)原因),然后google了一圈。

大致google+百度了一大圈,基本鎖定會(huì)導(dǎo)致程序異常+功能失效的幾個(gè)點(diǎn)。

①:通知(會(huì)收不到通知)

②:懸浮窗(7.0、8.0)(會(huì)崩潰)

③:自適應(yīng)圖標(biāo)(圖標(biāo)終于有所關(guān)注)


一:通知渠道

Android O版本對(duì)通知做了規(guī)范性的控制,強(qiáng)制用戶在發(fā)送通知的時(shí)候,對(duì)通知進(jìn)行系統(tǒng)性的管理,新增了channel渠道功能,貌似Android P版本對(duì)與這一點(diǎn)也做了強(qiáng)調(diào),使用戶能夠更好的管理通知,做到有目的性的屏蔽通知。下面上相關(guān)性的代碼

NotificationChannel mChannel =new NotificationChannel("channel_01","消息推送", NotificationManager.IMPORTANCE_DEFAULT);

notificationManager.createNotificationChannel(mChannel);//創(chuàng)建一個(gè)通知渠道

其他和原設(shè)置一樣即可。

二:懸浮窗

在一些廣播中需要彈出對(duì)話框的應(yīng)用場(chǎng)景,沒有依附的activity,這個(gè)時(shí)候就可以用懸浮窗,相關(guān)適配以及源碼有注釋自行查看。附申請(qǐng)權(quán)限源碼

懸浮窗dialog
另外需在AndroidManifest.xml文件中加入"SYSTEM_ALERT_WINDOW"權(quán)限

三:自適應(yīng)圖標(biāo)?

Android O版本對(duì)圖標(biāo)做了修改,總體上來講使Android APP從桌面就開始高大上起來了,加入了一些列動(dòng)畫,詳細(xì)的可以看這篇博文。

Android O自適應(yīng)圖標(biāo)

????????另外:設(shè)計(jì)到一些需要訪問清單文件,或者是pakageManager類的時(shí)候,適配8.0需要加入新的權(quán)限,安裝權(quán)限。

? ??? ??<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>


以上基本就是8.0中著重需要注意的點(diǎn),其實(shí)通知渠道設(shè)置在7.0中就已經(jīng)開始出現(xiàn),如果適配了7.0的話,8.0基本也已經(jīng)可以了。如果還出現(xiàn)8.0崩潰的情況,看看崩潰日志應(yīng)該都可以解決了,還是不行的話請(qǐng)私發(fā)我崩潰信息。對(duì)此再做出更新。

最后給大家介紹一款比較好的申請(qǐng)權(quán)限的第三方庫,強(qiáng)烈推薦。一句話解決問題并且可以直接跳轉(zhuǎn)到相關(guān)權(quán)限授權(quán)頁,適配率比較高。簡(jiǎn)潔!

一句話解決6.0權(quán)限申請(qǐng)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容