对于类型Notification,方法setPriority(int)未定义

时间:2012-12-10 20:46:24

标签: android notifications

自Jelly Bean以来,可以为通知设置优先级。这样您甚至可以设置PRIORITY_MIN,这将隐藏状态栏上的通知图标。 我读到了它,它很简单,你只需要使用它:

MyNotification.setPriority(Notification.PRIORITY_MIN);

我的问题是我收到了编译错误: “方法setPriority(int)未定义类型通知”

我的应用程序必须在不同版本的Android中运行,所以,我知道JellyBean下没有这个功能,所以有没有办法包含编译器标签或类似的东西,根据Android版本添加该功能。 我希望你明白我的意思。

3 个答案:

答案 0 :(得分:14)

Android将自动处理此问题。无需为特定版本号添加额外标记。当你遇到编译错误时,我已经幸运地遇到了类似我的代码。您希望确保使用NotificationCompat,并确保同时导入android.support.v4.app.NotificationCompat;

此代码应该有效:

int pri = 0;
NotificationCompat.Builder MyNotification = new NotificationCompat.Builder(ctx);
MyNotification.setPriority(pri);

enter image description here


enter image description here

答案 1 :(得分:1)

我只想添加一些改进 @EGHDK 的答案。

这是很好的代码:

int pri = 0;
NotificationCompat.Builder MyNotification = new NotificationCompat.Builder(ctx);
MyNotification.setPriority(pri);

稍有改进:

NotificationCompat.Builder MyNotification = new NotificationCompat.Builder(ctx);
MyNotification.setPriority(NotificationCompat.PRIORITY_DEFAULT); // or any priority

更少错误 - 倾向方法。因为我使用Notification.PRIORITY_DEFAULT必须NotificationCompat.PRIORITY_DEFAULT

  

任何可能出错的事都会出错

Murphy's law

答案 2 :(得分:-1)

它不能运行超过26个android API 所以检查条件:

if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
val notificationBuilder:Notification.Builder=Notification.Builder(this,CHANNEL_Id)
                .setContentText("Big Text Notification")
                .setSmallIcon(R.drawable.ic_launcher_background)
                .setLargeIcon(ic)
                .setStyle(bigTextNotification)
                .setContentText("this is Big Text Notification..")
            
}
else{
         .setContentText(" big text")
                .setSmallIcon(R.drawable.ic_launcher_background)
                .setLargeIcon(ic)
                .setStyle(bigText)
                .setPriority(NotificationCompat.PRIORITY_DEFAULT)
       
}

您可以使用NotificationCompat.PRIORITY_DEFAULT