3

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

MyNotification.setPriority(Notification.PRIORITY_MIN);

我的问题是我收到编译错误: “方法 setPriority (int) is undefined for the type Notification”

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

4

3 回答 3

15

Android 会自动处理这个问题。无需对特定版本号进行额外标记。当涉及到您的编译错误时,我很幸运能够使用下面的代码。您要确保使用NotificationCompat并确保您也导入android.support.v4.app.NotificationCompat;

此代码应该可以工作:

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

在此处输入图像描述


在此处输入图像描述

于 2012-12-10T20:53:01.630 回答
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

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

墨菲定律

于 2017-08-06T14:44:35.923 回答
-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

于 2020-07-23T15:25:49.707 回答