Android 8.0 版本更新的適配

最近代碼君在測試公司的項目時候,發(fā)現(xiàn)項目在Android 8.0機型上運行的時候,版本更新功能會出現(xiàn)異常,啟動下載的時候Android通知欄報錯 : Failed to post notification on channel "null",根據(jù)字面意思應(yīng)該是Notification中的channel為空

Notification Channels 是什么

這個是從Android 8.0 引入的概念,目的是提供統(tǒng)一的系統(tǒng)來幫助用戶管理通知药薯,開發(fā)者可以為需要發(fā)送的每個不同的通知類型創(chuàng)建一個通知渠道。還可以創(chuàng)建通知渠道來反映應(yīng)用的用戶做出的選擇救斑。例如童本,可以為聊天應(yīng)用的用戶創(chuàng)建的每個聊天組建立單獨的通知渠道。

Android 8.0 的用戶可以使用一致的系統(tǒng) UI 管理大多數(shù)與通知有關(guān)的設(shè)置脸候,用過iPhone的就可以很好理解這個功能穷娱,就是以后Android的app,不能隨意提示通知欄啦运沦,用戶可以設(shè)置消息在鎖屏上顯示泵额、免打擾、消息震動提示携添、聲音提示等嫁盲,換句話說如果用戶禁止在通知欄提示,那么apk就無法在通知欄提示了烈掠,這點對于Android用戶來說是好事羞秤,省的一些app亂用權(quán)限,給用戶一直彈消息

如何使用Notification Channels

一左敌、創(chuàng)建通知渠道

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

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

NotificationChannel 方法有三個參數(shù)channel_id瘾蛋、channel_name、channel_importce,這幾個參數(shù)的代表的是channel的ID母谎,名字以及消息的重要等級瘦黑,id和name都可以誰便起京革,id保證唯一就好奇唤,重要等級代碼君就填寫默認的啦

二、創(chuàng)建完channel匹摇,調(diào)用Notification.Builder.build()

        Context context = DJApplication.getInstance();
        Notification.Builder builder = new Notification.Builder(context);
        builder.setTicker("開始下載");
        builder.setSmallIcon(R.mipmap.ic_launcher);
        builder.setLargeIcon(BitmapFactory.decodeResource(DJApplication.getInstance().getResources(), R.mipmap.ic_launcher));
        builder.setAutoCancel(true);
        PendingIntent pIntent = PendingIntent.getActivity(context, 0, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT);
        builder.setContentTitle("下載中");
        builder.setContentIntent(pIntent);
        builder.setContentText(text);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            builder.setChannelId("channel_01");
        }
        manager.notify(1,  builder.build());

builder.setChannelId 設(shè)置有效的通知渠道 ID咬扇,這個ID要和之前創(chuàng)建時候的Channel_ID相同,運行之后就不好報上面的錯誤啦

Android 8.0 安裝權(quán)限問題

版本更新后,正常是需要通過Intent廊勃,調(diào)用apk文件路徑懈贺,進行自動安裝的经窖,但是8.0 下載完文件,并沒有調(diào)用成功梭灿,bug排查之后發(fā)現(xiàn)的問題是:

在 Android 8.0 中画侣,安裝未知應(yīng)用權(quán)限提高了安裝未知來源應(yīng)用時的安全性。此權(quán)限與其他運行時權(quán)限一樣堡妒,會與應(yīng)用綁定配乱,在安裝時進行提示,確保用戶授予使用安裝來源的權(quán)限后皮迟,此權(quán)限才會提示用戶安裝應(yīng)用搬泥。在運行 Android 8.0 或更高版本的設(shè)備上使用此權(quán)限時,惡意下載程序?qū)o法騙取用戶安裝未獲得預(yù)先授權(quán)的應(yīng)用伏尼,所以我們需要加入安裝apk文件的權(quán)限

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

總結(jié)

目前發(fā)現(xiàn)Android 8.0 的坑就這些忿檩,如果讀者發(fā)現(xiàn)有其他8.0 的坑,或者遇到8.0 的坑爆阶,歡迎留言交流

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末燥透,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子辨图,更是在濱河造成了極大的恐慌兽掰,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件徒役,死亡現(xiàn)場離奇詭異孽尽,居然都是意外死亡,警方通過查閱死者的電腦和手機忧勿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門杉女,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鸳吸,你說我怎么就攤上這事熏挎。” “怎么了晌砾?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵坎拐,是天一觀的道長。 經(jīng)常有香客問我养匈,道長哼勇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任呕乎,我火速辦了婚禮积担,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘猬仁。我一直安慰自己帝璧,他們只是感情好先誉,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著的烁,像睡著了一般褐耳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上渴庆,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天漱病,我揣著相機與錄音,去河邊找鬼把曼。 笑死杨帽,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嗤军。 我是一名探鬼主播注盈,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼叙赚!你這毒婦竟也來了老客?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤震叮,失蹤者是張志新(化名)和其女友劉穎胧砰,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苇瓣,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡尉间,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了击罪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哲嘲。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖媳禁,靈堂內(nèi)的尸體忽然破棺而出眠副,到底是詐尸還是另有隱情,我是刑警寧澤竣稽,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布囱怕,位于F島的核電站,受9級特大地震影響毫别,放射性物質(zhì)發(fā)生泄漏娃弓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一拧烦、第九天 我趴在偏房一處隱蔽的房頂上張望忘闻。 院中可真熱鬧,春花似錦恋博、人聲如沸齐佳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽炼吴。三九已至,卻和暖如春疫衩,著一層夾襖步出監(jiān)牢的瞬間硅蹦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工闷煤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留童芹,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓鲤拿,卻偏偏與公主長得像假褪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子近顷,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355