关于Notification无法显示:NotificationService﹕ Suppressing toast from package xxx by user request.

来源:互联网 发布:suse linux 安装ssh 编辑:程序博客网 时间:2024/05/16 19:03

    刚学习广播接收者,就摸索着做了一个监测手机开机启动的软件,备份手机联系人等信息。

为了确保广播在手机启动完成后确实启动了该软件,就在广播接收者内部添加了一个通知Notification,即当运行了广播接收者后在任务栏弹出"开机成功"的通知。

通知代码如下:

            Notification.Builder builder = new Notification.Builder(context);            builder.setSmallIcon(R.drawable.ic_launcher)                    .setContentTitle("通知")                    .setContentText("开机成功");            Notification notification = builder.build();            NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);            manager.notify(1024, notification);

然而,奇怪的事情出现了,本程序在手机上测试时没有通知弹出。但,查看日志发现弹出通知的代码确实执行了,但报了一个不该出现的异常:
01-29 12:41:36.535    2594-2594/? E/NotificationService﹕ Suppressing notification from package com.qianfeng.gl4study.contactbackup by user request.

研究发现,Notification.Builder使用的最低版本是 API 11。而手机是API 19,完全满足了。

       各种折腾之后,最后却发现在手机设置中有一项通知栏推送的设置,这一项设置一定不能关闭,允许该应用推送信息,这样就能正常弹出通知了。其实很简单的问题却浪费了很长时间,一直在代码上找原因,最后却发现问题不在代码。

       这不算什么技术,只是不同厂商定制系统不同,设置也不一样。安卓的定制化对开发带来了很多的麻烦,但也为使用者带来了方便,所以不能简单的说是好还是坏吧。出现问题要调试的时候,就从各方面来考虑会出现问题的地方,先从代码入手,若代码没有错误,就要考虑不同厂商定制制系统的原因了。可以换一部手机或者使用虚拟机来测试程序。一步一步找寻原因,找错的过程就是一个探索的过程。用平常心看待,一切都很容易解决。

     最后一句,加油!

0 0
原创粉丝点击