Android給通知channel靜音的方法實例

前言

目前各個市場都要求targetsdkversion要不低於26,也就是android 8.0。 相應的影響很多功能,比如通知。

當targetsdkversion >= 26,需要為通知添加channel,如

manager = (NotificationManager) BaseApp.getAppContext()
        .getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    NotificationChannel channel = new NotificationChannel("update", "update", NotificationManager.IMPORTANCE_DEFAULT);
    manager.createNotificationChannel(channel);
}
builder = new NotificationCompat.Builder(BaseApp.getAppContext(), "update");

首先要新建一個NotificationChannel,並調用NotificationManager的createNotificationChannel啟用該通道。

然後在創建buidler的時候設置同樣的channelid即可。

靜音

那麼如果想讓通知靜音怎麼處理?

  • 可以在channel上設置,setSound(null, null)。註意如果已經安裝且這個channel已經存在,再覆蓋安裝不能生效,需要卸載重裝。
  • 也可以對builder進行設置,setOnlyAlertOnce(true)。註意這個並不是完全靜音,而是讓這個通知隻響一次,比如顯示下載進度時,就不會一直響。
manager = (NotificationManager) BaseApp.getAppContext()
        .getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    NotificationChannel channel = new NotificationChannel("update", "update", NotificationManager.IMPORTANCE_DEFAULT);
    channel.setSound(null, null);
    manager.createNotificationChannel(channel);
}
builder = new NotificationCompat.Builder(BaseApp.getAppContext(), "update");
...
builder.setOnlyAlertOnce(true);

總結

到此這篇關於Android給通知channel靜音的文章就介紹到這瞭,更多相關Android給通知channel靜音內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: