问题描述
正如标题所说,我升级到 API 31。我有一个执行振动的功能,但在线
val vib = this.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
VIBRATOR_SERVICE 现在显示为已弃用。我怎样才能更换它?或者至少,API 31 及更高版本的现代解决方案是什么?
编辑:正如 Joachim Sauer 所写,替代方案是 VibrationManager。我现在需要的是使用 VibrationManager 的等效代码行。
解决方法
此常量在 API 级别 31 中已弃用。
使用 VibratorManager
检索默认系统振动器。
需要 Vibrator
实例的代码的最直接翻译是这样的:
val vibratorManager = this.getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as Vibrator
val vibrator = vibratorManager.getDefaultVibrator();
一般来说,每当类/方法/字段像这样被弃用时,您应该首先检查文档。几乎每一次它都会告诉你该用什么代替(或者在某些情况下它没有替代品)。