我创建通知通道,以在Android 8.0中显示通知,如下所示
NotificationChannel uploadChannel = new NotificationChannel(Constants.NOTIFICATION_CHANNEL_UPLOAD_ID,"Uploads", NotificationManager.IMPORTANCE_LOW);
uploadChannel.enableLights(false);
uploadChannel.setDescription("Uploads Channel");
notificationManager.createNotificationChannel(uploadChannel);
每当我显示通知手机振动很多次。我从通知通道禁用振动,如下所示
uploadChannel.enableVibration(false);
我创建如下通知
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, Constants.NOTIFICATION_CHANNEL_UPLOAD_ID);
但它不工作电话随着每个通知振动。
这是Android 8通知系统上的一个错误。我用enableVibration
与setVibrationPattern(null)
的不同组合进行了修补,但它不起作用。
只有阻止振动的解决方案是:
mNotificationChannel.setVibrationPattern(new long[]{ 0 });
mNotificationChannel.enableVibration(true);
仅供参考,即使我将振动模式设置为0,但将enableVibration
设置为false
,它也会振动。
除了Ahmadul Hoq's answer,它确实适合我,我想补充一点,你可能需要删除该应用程序,并在振动发生变化之前重新安装它。如果应用程序被终止,通道会保持其初始设置并保持活动状态 - 因此,如果您只是构建并运行,则可能无法应用更改。
我最初使用NotificationManager.IMPORTANCE_DEFAULT
并且无法让振动停止。使用NotificationManager.IMPORTANCE_LOW
代替解决了这个问题。 NotificationManager.IMPORTANCE_MIN
也会工作;看到这里:https://developer.android.com/training/notify-user/channels#importance