安卓通知如何通过编程打开横幅设置

9
有没有什么方法可以通过编程来打开应用程序通知中的横幅设置(在状态栏顶部显示)?
<pre><code>
// send notification to NotificationManager   
Notification.Builder notificationBuilder =new Notification.Builder(context);  
notificationBuilder.setSmallIcon(R.drawable.icon_32x32)  
.setLargeIcon(bitmap)  
.setContentTitle("title")  
.setContentText("content")  
.setContentIntent(contentIntent)  
.setAutoCancel(true)  
.setDefaults(Notification.DEFAULT_ALL)        
.setPriority(Notification.PRIORITY_HIGH)  
.setCategory(Notification.CATEGORY_MESSAGE);  

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){                             
notificationBuilder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC);  
}  

NotificationManager notificationManager =  
(NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);  
notificationManager.notify(id, notificationBuilder.build());
</code></pre>

还没有解决方案吗?即使使用.setDefaults(Notification.DEFAULT_ALL).setPriority(NotificationCompat.PRIORITY_HIGH)并将通道设置为IMPORTANCE_MAX,我仍然遇到相同的问题。 - Matthieu Smith
你解决了这个问题吗?@cwai? - Prajwal Waingankar
2个回答

3

遇到了同样的问题。 我通过在AndroidManifest.xml中添加ACCESS_NOTIFICATION_POLICY权限来简单解决了这个问题:

<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />

对我来说,不需要更多(至少是这样)。


如果添加了上述权限,那么是否保证在Activity上会出现举手通知。如果用户更改了通知设置,我们如何知道设置的更改。 - Chetan Joshi

1
通常,对于设置,您需要获得用户的许可,您可以在Java类中执行此操作。 您可以将用户发送到设置页面,以便他们可以授予您所需的权限。但是,我认为您正在寻找悬浮通知。如果是这种情况:

https://developer.android.com/guide/topics/ui/notifiers/notifications.html#Heads-up

在简单的话中,将您的通知管理器类中的优先级设置为高。

1
通知管理器已经设置了高优先级。只有当我的应用程序通知打开横幅时,才会显示弹出式通知。因此,我想知道是否有任何方法可以打开横幅设置。 - cwai
那么请上传你的通知管理器代码。另外,你是在寻找悬浮通知吗? - dfabiano
当我的应用程序通知打开横幅设置时,才会显示浮动通知。这是特殊设备的设置吗? - cwai
不需要任何特殊设置,即可在任何 Android 版本上使用 heads-up 通知。将通知优先级设置为高或最大是触发此类通知的一种方式。您的通知构建器中可能存在其他问题。 - dfabiano
变量"id"是唯一的吗?如果不是,那就是你的问题了。如果你想要独特的通知,你必须使通知ID唯一,否则你只是在更新以前的一个。同样,请确保在您的清单中包含:<uses-permission android:name="android.permission.VIBRATE" /> - dfabiano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接