添加振动权限:从Android 6.0开始,需要在AndroidManifest.xml文件中声明振动权限,如果没有声明,则振动可能无法正常工作。在这种情况下,应在文件末尾添加以下内容:
更改振动通道:在Android 10及以上版本中,默认通知渠道不支持振动。要使通知振动,请在创建通道时调用setVibrationPattern()方法,并将具有振动节奏的长整型数组传递给它。例如:
NotificationChannel channel = new NotificationChannel(CHANNEL_ID, CHANNEL_NAME, Importance.DEFAULT); long[] pattern = {0, 100, 1000, 100, 500}; channel.enableVibration(true); channel.setVibrationPattern(pattern); notificationManager.createNotificationChannel(channel);
这将创建一个具有定义的振动节奏的通道。
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { vibrator.vibrate(VibrationEffect.createWaveform(pattern, -1)); } else { vibrator.vibrate(pattern, -1); }
这将创建一种震动模式(在旧的API级别上),并将其传递给设备的振动器。