禁用通知震动功能

40

我正在编写一个使用通知的应用程序。谷歌开发者指南鼓励开发者提供设置以自定义通知(关闭震动,设置通知音...)。因此,如果用户将其设置为该方式,我正在尝试为通知禁用震动。

我正在使用 NotificationCompat.Builder 创建通知,代码如下:

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(Application.getContext())
            .setDefaults(Notification.DEFAULT_ALL)
            .setPriority(Notification.PRIORITY_MAX)
            .setSmallIcon(R.drawable.ic_launcher)
            .setLargeIcon(largeIconBitmap)
            .setAutoCancel(true)
            .setContentIntent(resultPendingIntent)
            .setContentTitle(title)
            .setContentText(content);

我尝试了不同的方法来禁用通知:

notificationBuilder.setVibrate(null);

notificationBuilder.setVibrate(new long[]{0l, 0l});

notificationBuilder.setDefaults(Notification.DEFAULT_ALL | ~Notification.DEFAULT_VIBRATE);

notificationBuilder.setDefaults(Notification.DEFAULT_LIGHTS | Notification.DEFAULT_SOUND);`

我也尝试构建通知并更改生成对象上的值:

Notification notification = notificationBuilder.build();
notification.vibrate = null;

但是当通知出现时,手机仍会震动。

我如何禁用通知的震动?

11个回答

0

setVibrate(new long[0]) 只适用于目标 API 28。我正在使用运行智能手机 Android ROM 的中国智能手表,因此在其他设备上应该可以正常工作。希望这有所帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接