Android 8.0的通知振动问题

问题描述 投票:5回答:3

我创建通知通道,以在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 notifications android-8.0-oreo
3个回答
17
投票

这是Android 8通知系统上的一个错误。我用enableVibrationsetVibrationPattern(null)的不同组合进行了修补,但它不起作用。

只有阻止振动的解决方案是:

mNotificationChannel.setVibrationPattern(new long[]{ 0 });
mNotificationChannel.enableVibration(true);

仅供参考,即使我将振动模式设置为0,但将enableVibration设置为false,它也会振动。


17
投票

除了Ahmadul Hoq's answer,它确实适合我,我想补充一点,你可能需要删除该应用程序,并在振动发生变化之前重新安装它。如果应用程序被终止,通道会保持其初始设置并保持活动状态 - 因此,如果您只是构建并运行,则可能无法应用更改。


1
投票

我最初使用NotificationManager.IMPORTANCE_DEFAULT并且无法让振动停止。使用NotificationManager.IMPORTANCE_LOW代替解决了这个问题。 NotificationManager.IMPORTANCE_MIN也会工作;看到这里:https://developer.android.com/training/notify-user/channels#importance

© www.soinside.com 2019 - 2024. All rights reserved.