解決通知欄權(quán)限禁止時(shí),不彈出Toast問題

解決通知欄權(quán)限禁止時(shí),不彈出Toast問題

項(xiàng)目里使用Toast時(shí)不知道有木有遇到跟我同樣困惑的童鞋?

1、自定義系統(tǒng)Toast彈入,彈出動(dòng)畫

2、某些品牌手機(jī)里,如果權(quán)限管理上禁止了“通知欄消息”權(quán)限時(shí),Toast顯示不出來。(這里以魅族手機(jī)為例,不同廠家手機(jī)可能權(quán)限名不一樣,但大概意思差不多)


下面是個(gè)人對(duì)這解決這兩個(gè)問題的一個(gè)總結(jié)。



1、自定義Toast動(dòng)畫

關(guān)于Taost的自定義動(dòng)畫,google官方其實(shí)是沒有直接暴露更改動(dòng)畫的api。通過查看源碼,可以知道系統(tǒng)Toast的動(dòng)畫代碼是TN里面實(shí)現(xiàn)的,遺憾的是TN被私有了。那么想要直接通過這個(gè)方法來更改動(dòng)畫是不行了,只有使用反射去實(shí)現(xiàn)了

Toast  mToast = Toast.makeText(context, "", Toast.LENGTH_SHORT);
    try {
        Object mTN = null;
        mTN = getField(mToast, "mTN");
        if (mTN != null) {
            Object mParams = getField(mTN, "mParams");
            if (mParams != null
                    && mParams instanceof WindowManager.LayoutParams) {
                WindowManager.LayoutParams params = (WindowManager.LayoutParams) mParams;
                params.windowAnimations = R.style.custom_animation_toast;
            }
        }
    } catch (Exception e) {
    }

2、權(quán)限限制Toast彈出

主要感謝csdn上大神提供的解決方案

http://blog.csdn.net/a3676212/article/details/51830299

Demo代碼量有點(diǎn)多,已放到github

https://github.com/cenxiaoping/ToastDemo

最后編輯于
?著作權(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)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,856評(píng)論 25 709
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實(shí)...
    香橙柚子閱讀 24,718評(píng)論 8 183
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,126評(píng)論 4 61
  • 文/孤鳥差魚 生活里的主力軍 變成愛期待不期待的魚
    孤鳥差魚閱讀 175評(píng)論 0 3
  • 山一程,水一程,身向榆關(guān)那畔行,夜深千帳燈。風(fēng)一更,雪一更,聒碎鄉(xiāng)心夢(mèng)不成,故園無此聲。 元宵快樂!
    遲慕良閱讀 157評(píng)論 0 0

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