在Android中,如果用户设置"显示通知"一个特定的应用程序关闭,是否仍然创建通知?如果是,是否可以访问这些已创建但未显示的通知?
答案 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中没有这样的设置
你真的不应该关心它。假设您的通知成功。如果用户明确禁用了您的通知,那么他/她可能有充分的理由这样做,而您的应用程序不应该关心通知是否显示