在Android O之后应用发送通知必须要使用NotificationChannel来发送通知,但是会发现NotificationChannel在创建之后不管怎么修改设置都是无效的,查看源码才发现是因为NotificationChannel创建之后就无法主动修改铃声、震动等设置。
但是在设置>应用>通知管理里面是可以去对对应的NotificationChannel进行铃声、震动等设置的,查看设置源码发现设置里面是使用以下方法来对对应应用的NotificationChannel进行更新。
static INotificationManager sINM = INotificationManager.Stub.asInterface(
ServiceManager.getService(Context.NOTIFICATION_SERVICE));
try {
sINM.updateNotificationChannelForPackage(packageName, uid, channel);
} catch (Exception e) {
Log.w("Notification", "Error calling NoMan", e);
}
记得添加权限
<uses-permission android:name="android.permission.STATUS_BAR_SERVICE" />
好了,现在可以正常的更新NotificationChannel了。
网友评论