Android7.0出来时间已经不短了,最近公司同事的华为P9手机(7.0系统)反馈了个问题,说是收到消息状态栏没有通知。
借了他的手机试了下,调试了之后发下是Notification build的时候报错了:
java.lang.SecurityException: You need MANAGE_USERS permission to: check if specified user a managed profile outside your profile group
7.0以下的手机是没问题的,根据异常信息搜索了半天也没有解决方法,后然实在不行就新建了demo app尝试了下,最简单的发送通知功能,是OK的,这时我就知道
我又一次被这大而杂的项目给坑了,因为意识到这个已经从早上到下午查了快1天了!
剧透下,其实直到写此博文的时候还未找到问题发生的根本原因,在这里只描述下我这边为啥会发生这个异常的原因:
项目里面在子线程接收消息,然后构建notification的Context用的是Application的单列对象(static的,看客请勿吐槽 ,历史问题),就是因为这个Application不知道做了啥(有5个父类),导致抛出上述异常,如果改用Activity的Context就不会出错了,由于bug还有很多,就不去深究原因了,在此记录,希望有人知道了告诉下。