android - API 31 不推荐使用“VIBRATOR_SERVICE: String”
问题描述
正如标题所说,我升级到 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 VibratorManager
val vibrator = vibratorManager.getDefaultVibrator();
一般来说,每当像这样不推荐使用类/方法/字段时,您应该首先检查文档。几乎每一次它都会告诉你用什么来代替(或者在某些情况下它没有替代品)。
推荐阅读
- azure - 使用 Azure PowerShell 中的两个帐户在 kubernetes 上工作
- c# - 不要等待异步方法,但 VS 会发出警告
- heroku - 为什么 Heroku 构建缓存随着每个版本的发布而变得越来越大?
- elf - 按部分过滤 GNU nm 的输出
- php - 如何使用 arg 中未知数量的参数创建用于插入/更新/删除的 PDO 类方法
- sql - 根据条件从相同列中选择单个值
- flutter - 像 iBooks 一样翻页过渡
- c# - 是否可以从对象继承自同一基类的 2 个表中连接查询?
- vue.js - v-model 两次触发 change 事件
- postgresql - 仅保留第一列的第一个值并根据层次结构对其他两列进行排序