剛進新公司的時候華為市場對APP提示的是不兼容android8.0,查看了下原代碼發(fā)現(xiàn)項目基本還停留在6.0的適配上,所以就大致適配了7.0、8.0,先記錄幾個主要的問題點,后續(xù)更新。首先必須的把SdkVersion提升到26把(華為市場提示不兼容8.0也是這個原因),然后google了一圈。
大致google+百度了一大圈,基本鎖定會導(dǎo)致程序異常+功能失效的幾個點。
①:通知(會收不到通知)
②:懸浮窗(7.0、8.0)(會崩潰)
③:自適應(yīng)圖標(biāo)(圖標(biāo)終于有所關(guān)注)
一:通知渠道
Android O版本對通知做了規(guī)范性的控制,強制用戶在發(fā)送通知的時候,對通知進行系統(tǒng)性的管理,新增了channel渠道功能,貌似Android P版本對與這一點也做了強調(diào),使用戶能夠更好的管理通知,做到有目的性的屏蔽通知。下面上相關(guān)性的代碼
NotificationChannel mChannel =new NotificationChannel("channel_01","消息推送", NotificationManager.IMPORTANCE_DEFAULT);
notificationManager.createNotificationChannel(mChannel);//創(chuàng)建一個通知渠道
其他和原設(shè)置一樣即可。
二:懸浮窗
在一些廣播中需要彈出對話框的應(yīng)用場景,沒有依附的activity,這個時候就可以用懸浮窗,相關(guān)適配以及源碼有注釋自行查看。附申請權(quán)限源碼


三:自適應(yīng)圖標(biāo)?
Android O版本對圖標(biāo)做了修改,總體上來講使Android APP從桌面就開始高大上起來了,加入了一些列動畫,詳細的可以看這篇博文。
????????另外:設(shè)計到一些需要訪問清單文件,或者是pakageManager類的時候,適配8.0需要加入新的權(quán)限,安裝權(quán)限。
? ??? ??<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
以上基本就是8.0中著重需要注意的點,其實通知渠道設(shè)置在7.0中就已經(jīng)開始出現(xiàn),如果適配了7.0的話,8.0基本也已經(jīng)可以了。如果還出現(xiàn)8.0崩潰的情況,看看崩潰日志應(yīng)該都可以解決了,還是不行的話請私發(fā)我崩潰信息。對此再做出更新。
最后給大家介紹一款比較好的申請權(quán)限的第三方庫,強烈推薦。一句話解決問題并且可以直接跳轉(zhuǎn)到相關(guān)權(quán)限授權(quán)頁,適配率比較高。簡潔!