Android,访问所有通知

时间:2015-03-08 03:26:38

标签: android notifications

在Android中,如果用户设置"显示通知"一个特定的应用程序关闭,是否仍然创建通知?如果是,是否可以访问这些已创建但未显示的通知?

1 个答案:

答案 0 :(得分:0)

例如,考虑创建状态栏通知,使用下面的代码:

NotificationCompat.Builder mBuilder =
        new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.notification_icon)
        .setContentTitle("My notification")
        .setContentText("Hello World!");

要发布此通知,请使用以下代码:

NotificationManager mNotificationManager =
    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);    
mNotificationManager.notify(mId, mBuilder.build());

但由于“显示通知”为OFF,上面的代码不显示状态栏上的通知。
正如您所看到的,尽管NotificationCompat.Builder已创建了通知对象/实例,填写了其他详细信息,如标题或文本等,由于用户的偏好设置不允许按系统发布,因此无法访问它。

此外,从Android 4.1开始,用户可以从应用程序管理器关闭应用程序的通知,但是没有API可以从应用程序代码中实现相同的功能(在非root设备上)。并且无法禁用其他应用的通知,您只能控制自己的应用生成的通知。

你必须考虑的几点指示:
1.作为开发人员,我们无法知道通知电话是否有效。因此,如果我真的需要检查当前应用程序是否禁用了通知,那么API中没有这样的设置 你真的不应该关心它。假设您的通知成功。如果用户明确禁用了您的通知,那么他/她可能有充分的理由这样做,而您的应用程序不应该关心通知是否显示