ToastCompat_Deprecated icon indicating copy to clipboard operation
ToastCompat_Deprecated copied to clipboard

Toast 显示的判断 和 MIUI 8 上 TYPE_TOAST 权限导致的崩溃

Open ongakuer opened this issue 8 years ago • 2 comments

Hi,原来代码里是否使用自定义Toast,是根据MIUI系统判断的。实际上在 Android 的设置里关闭应用通知,就不能弹出Toast。

Android Support v4 24.0.0 包里提供了是否允许通知的检测(Android 4.4 以上能使用)。考虑到现在小米、魅族、华为的系统基本都是 4.4 以上了。 用这个判断兼容范围更广泛。

另外发现,MIUI 8开发版,如果禁用通知, TYPE_TOAST 会提示没有权限,然后崩溃(不知道小米什么时候会变更)。所以在 show 和 hide 的时候都 Try 一下,防止崩溃。

具体的修改在这里。 https://github.com/ongakuer/ToastCompat/commit/cbc111d4b71e5aefc84b819352a2ef15883773b9

如果需要,我可以Pull Request

ongakuer avatar Jul 11 '16 05:07 ongakuer

HI,我发现,在miui8开发版上,后台又能够使用原生Tosat.但是在之前的miui还是不可以的.建议使用时对miui的版本做一个判断.如果是miui8就使用原生的Toast,不是的话就使用你的这个.

Mran avatar Aug 01 '16 15:08 Mran

@Mran 如 @ongakuer 所说,原生的 Toast 在通知权限被禁用的情况下,是弹不出来的。

@ongakuer 根源是缺少了权限声明 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> ,作者已在 README 中说明

shaobin0604 avatar Oct 22 '16 03:10 shaobin0604